SgType Class Reference

#include <Cxx_Grammar.h>

Inheritance diagram for SgType:

Inheritance graph
[legend]
Collaboration diagram for SgType:

Collaboration graph
[legend]
List of all members.

Detailed Description

This class represents the base class for all types.

There are no uses of this IR node anywhere. All SgType based IR nodes are derived from this SgType class.

Discussion of get_base_type() and findBaseType():

  1. fileBaseType() will recursively strip away all typedefs, reference, pointers, arrays, and modifiers
  2. get_base_type() is a member function on some IR nodes derived from SgType and returns the non-recursively striped (immediate) type under the typedefs, reference, pointers, arrays, modifiers, etc.

Note that the typedefs for which the current SgType is the base type are stored in a list. There is a special IR node (SgTypedefSeq) to maintain this list (which is internally an STL list). We could also store pointers to other SgType IR nodes where pointers and references have been taken to the current IR node, but currently only typedefs are stored explicitly. As a result of storing the typedefs, the builtin types store the list for most SgType IR nodes (since ther is only a single SgType IR node for most SgType derived classes). We could imagine storing the SgTypedefSeq as static data members of the derived SgType classes, but this would not work since then all SgNamedType IR nodes would share the same list of typedefs. So this is the correct location for this list.

For internal use only.

This is a base class for all SgType objects.

Todo:
Several classes derived from SgType are not used and can be removed:
  1. SgTypeUnknown (Used by SageInterface to specify references to undeclared variables)
  2. SgUnknownMemberFunctionType
Todo:
The signed types (except for signed char) are not used in SAGE III and do not exist in C or C++. These IR nodes should be removed, specifically SgTypeSignedShort, SgTypeSignedInt, SgTypeSignedLong.
Todo:
For Fortran support we need to add the kind, length data member to specify the width. To support handling of kind, length parameters we should use the information about the target backend compiler and map kind information to bit widths (not a high priority).
Todo:
Labels appear to be used as types in "foo(*,*)", see example from Chris (LANL, 4/19/2007).
See also:
Example of using a SgType object


Public Types

typedef SgNode base_node_type
 e_unknown_attribute_specifier = 0
 e_public_access
 e_private_access
 e_allocatable
 e_asynchronous
 e_bind
 e_data
 e_dimension
 e_intent
 e_optional
 e_parameter
 e_pointer
 e_protected
 e_save
 e_target
 e_value
 e_volatile
 e_last_attribute_specifier
 static_variant = V_SgType
enum  fortran_attribute_specifiers_enum {
  e_unknown_attribute_specifier = 0,
  e_public_access,
  e_private_access,
  e_allocatable,
  e_asynchronous,
  e_bind,
  e_data,
  e_dimension,
  e_intent,
  e_optional,
  e_parameter,
  e_pointer,
  e_protected,
  e_save,
  e_target,
  e_value,
  e_volatile,
  e_last_attribute_specifier
}
enum  { static_variant = V_SgType }
 static variant value More...

Public Member Functions

virtual SgNodecopy (SgCopyHelp &help) const
 SgType ()
 default constructor
 SgType (const SgType &X)
 copy constructor
virtual SgName get_mangled (void) const
virtual SgExpressionget_type_kind () const
virtual void set_type_kind (SgExpression *type_kind)
bool isUnsignedType () const
 Compute numerical properties of type. There are many sorts of unsigned types (this queries an arbitrary type).
bool isIntegerType () const
 There are many sorts of integer types (this queries an arbitrary type).
bool isFloatType () const
 There are several sorts of float types (this queries an arbitrary type).
bool containsInternalTypes ()
 Some types can hide other type IR nodes internally. This function is true if it can hide another type (pointer, array, etc.).
Rose_STL_Container< SgType * > getInternalTypes () const
 Generate a container of types hidden in the input type.
void reset_base_type (SgType *baseType)
 Reset the base type. This function resets the base type. It is an error to call it for types where containsInternalTypes() == false.
SgTypefindBaseType () const
 Return the base type of the associated type. The base type is important when dealing with pointers, arrays, etc.
SgTypedereference ()
 Returns type hidden behind pointer of reference.
const SgTypedereference () const
 Returns type hidden behind pointer of reference.
SgTypestripType (unsigned char bit_array=STRIP_MODIFIER_TYPE|STRIP_REFERENCE_TYPE|STRIP_POINTER_TYPE|STRIP_ARRAY_TYPE|STRIP_TYPEDEF_TYPE) const
 Returns hidden type beneath layers of typedefs, pointers, references, modifiers, array representation, etc.
SgTypestripTypedefsAndModifiers () const
 This only strips away typedefs and modifiers (specialized usage).
SgDeclarationStatementgetAssociatedDeclaration () const
virtual void addNewAttribute (std::string s, AstAttribute *a)
 Add a new attribute represented by the named string.
virtual AstAttributegetAttribute (std::string s) const
 Returns attribute of name 's'.
virtual void updateAttribute (std::string s, AstAttribute *a)
 Replace existing attribute of name 's' with new AstAttribute.
virtual void setAttribute (std::string s, AstAttribute *a)
 This is a wrapper function with the following semantics: if no attribute of name 's' exists then addNewAttribute(s,a); is called, otherwise updateAttribute(s,a); is called.
virtual void removeAttribute (std::string s)
 Remove attribute of name 's' if present.
virtual bool attributeExists (std::string s) const
 Tests if attribute of name 's' is present.
virtual int numberOfAttributes () const
 Returns the number of attributes on this IR node.
virtual std::string class_name () const
 Copies AST (whole subtree, depending on the SgCopyHelp class returns a string representing the class name.
virtual VariantT variantT () const
 returns new style SageIII enum values
void * operator new (size_t size)
 returns pointer to newly allocated IR node
void operator delete (void *pointer, size_t size)
 deallocated memory for IR node (returns memory to memory pool for reuse)
void operator delete (void *pointer)
virtual std::vector< SgNode * > get_traversalSuccessorContainer ()
 FOR INTERNAL USE within ROSE traverals mechanism only.
virtual std::vector< std::string > get_traversalSuccessorNamesContainer ()
 FOR INTERNAL USE within ROSE traverals mechanism only.
virtual size_t get_numberOfTraversalSuccessors ()
virtual SgNodeget_traversalSuccessorByIndex (size_t idx)
virtual size_t get_childIndex (SgNode *child)
virtual RTIReturnType roseRTI ()
 FOR INTERNAL USE Access to Runtime Type Information (RTI) for this IR nodes.
virtual const char * sage_class_name () const ROSE_DEPRECATED_FUNCTION
void executeVisitorMemberFunction (ROSE_VisitorPattern &visitor)
 FOR INTERNAL USE Support for visitor pattern.
virtual void accept (ROSE_VisitorPattern &visitor)
 DXN (08/09/2010): support for the classic visitor pattern done in GoF.
virtual bool isInMemoryPool ()
 FOR INTERNAL USE This is used in internal tests to verify that all IR nodes are allocated from the heap.
virtual void checkDataMemberPointersIfInMemoryPool ()
 FOR INTERNAL USE This is used in internal tests to verify that all IR nodes are allocated from the heap.
virtual std::vector< std::pair<
SgNode *, std::string > > 
returnDataMemberPointers () const
 FOR INTERNAL USE Returns STL vector of pairs of SgNode* and strings for use in AST tools
virtual void processDataMemberReferenceToPointers (ReferenceToPointerHandler *)
 FOR INTERNAL USE Processes pairs of references to SgNode* and strings for use in AST tools
virtual long getChildIndex (SgNode *childNode) const
 FOR INTERNAL USE Returns a unique index value for the childNode in the list of children at this IR node.
 SgType (const SgTypeStorageClass &source)
SgTypeaddRegExpAttribute (std::string s, AstRegExAttribute *a)
 Support for AST matching using regular expression.
bool get_isCoArray () const
void set_isCoArray (bool isCoArray)
int get_substitutedForTemplateParam () const
void set_substitutedForTemplateParam (int substitutedForTemplateParam)
SgReferenceTypeget_ref_to () const
void set_ref_to (SgReferenceType *ref_to)
SgPointerTypeget_ptr_to () const
void set_ptr_to (SgPointerType *ptr_to)
SgModifierNodesget_modifiers () const
void set_modifiers (SgModifierNodes *modifiers)
SgTypedefSeqget_typedefs () const
void set_typedefs (SgTypedefSeq *typedefs)
AstAttributeMechanismget_attributeMechanism () const
 FOR INTERNAL USE Access function; if an attribute exists then a pointer to it is returned, else error.
void set_attributeMechanism (AstAttributeMechanism *attributeMechanism)
 FOR INTERNAL USE Access function; sets poiner to value AstAttributeMechanism.
virtual ~SgType ()
 This is the destructor.

Static Public Member Functions

static SgTypearithmetic_conversions (SgType *, SgType *)
 performs simple conversions
static SgTypeinteger_promotion (SgType *, SgType *)
 handles promotion to integer
static SgTypefloat_promotion (SgType *, SgType *)
 handles promotion to float
static bool handledUsingLocalTable (SgType *t)
static SgScopeStatementgetCurrentScope ()
static size_t numberOfNodes ()
 Returns the total number of IR nodes of this type.
static size_t memoryUsage ()
 Returns the size in bytes of the total memory allocated for all IR nodes of this type.
static void traverseMemoryPoolNodes (ROSE_VisitTraversal &visit)
 FOR INTERNAL USE Support for visitor pattern.
static void traverseMemoryPoolVisitorPattern (ROSE_VisitorPattern &visitor)
 FOR INTERNAL USE Support for visitor pattern.
static void visitRepresentativeNode (ROSE_VisitTraversal &visit)
 FOR INTERNAL USE Support for type-based traversal.

Static Public Attributes

static const unsigned char STRIP_MODIFIER_TYPE = ((unsigned char) 1 << 0)
static const unsigned char STRIP_REFERENCE_TYPE = ((unsigned char) 1 << 1)
static const unsigned char STRIP_POINTER_TYPE = ((unsigned char) 1 << 2)
static const unsigned char STRIP_ARRAY_TYPE = ((unsigned char) 1 << 3)
static const unsigned char STRIP_TYPEDEF_TYPE = ((unsigned char) 1 << 4)

Protected Member Functions

SgName mangledNameSupport (SgName &fname, SgUnparse_Info &info)

Protected Attributes

bool p_isCoArray
int p_substitutedForTemplateParam
 This boolean variable marks if the current type was originally a template parameter.
SgReferenceTypep_ref_to
 This holds the pointer to a SgReferenceType if this type is a reference to another type.
SgPointerTypep_ptr_to
 This holds the pointer to a SgPointerType if this type is a pointer to another type.
SgModifierNodesp_modifiers
 This points to any SgModifierNodes if this type contains type modifiers.
SgTypedefSeqp_typedefs
 This points to IR node which holds a list of typedefs where the base_type if this SgType.
SgExpressionp_type_kind
AstAttributeMechanismp_attributeMechanism

Friends

class SgPointerType
 provide access to private data
class SgReferenceType
 provide access to private data
class SgTypedefType
 provide access to private data
class AST_FILE_IO
class SgTypeStorageClass
class AstSpecificDataManagingClass
class AstSpecificDataManagingClassStorageClass
SgTypeisSgType (SgNode *s)
 Casts pointer from base class to derived class.
const SgTypeisSgType (const SgNode *s)
 Casts pointer from base class to derived class (for const pointers).
SgTypeSgType_getPointerFromGlobalIndex (unsigned long globalIndex)
 Constructor for use by AST File I/O MechanismTypedef used for low level memory access. Typedef used to hold memory addresses as values. Methods to find the pointer to a global and local index.
unsigned long SgType_getNumberOfValidNodesAndSetGlobalIndexInFreepointer (unsigned long)
 Get the size of the memory pool.
void SgType_clearMemoryPool ()
void SgType_extendMemoryPoolForFileIO (unsigned long)
void SgType_getNextValidPointer (std::pair< SgType *, std::vector< unsigned char * >::const_iterator > &)
void SgType_resetValidFreepointers ()


Member Typedef Documentation

typedef SgNode SgType::base_node_type

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.


Member Enumeration Documentation

enum SgType::fortran_attribute_specifiers_enum

Enumerator:
e_unknown_attribute_specifier 
e_public_access 
e_private_access 
e_allocatable 
e_asynchronous 
e_bind 
e_data 
e_dimension 
e_intent 
e_optional 
e_parameter 
e_pointer 
e_protected 
e_save 
e_target 
e_value 
e_volatile 
e_last_attribute_specifier 

anonymous enum

static variant value

Enumerator:
static_variant 


Constructor & Destructor Documentation

SgType::SgType (  ) 

default constructor

Default constructor and destructors are not documented in user interface Default Constructor Destructor Documentation Page.

See also:
Default Constructor Destructor Documentation Page

SgType::SgType ( const SgType X  ) 

copy constructor

The Copy constructor is provide to support the AST copy mechanism, where types are copied to support copying of named types.

SgType::SgType ( const SgTypeStorageClass &  source  ) 

SgType::~SgType (  )  [virtual]

This is the destructor.

There is nothing to delete in this object.


Member Function Documentation

virtual SgNode* SgType::copy ( SgCopyHelp help  )  const [virtual]

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

virtual SgName SgType::get_mangled ( void   )  const [virtual]

Returns a mangled string representation of this type. Equivalent types have the same mangled string.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

virtual SgExpression* SgType::get_type_kind (  )  const [virtual]

Reimplemented in SgTypeComplex, and SgTypeImaginary.

virtual void SgType::set_type_kind ( SgExpression type_kind  )  [virtual]

Reimplemented in SgTypeComplex, and SgTypeImaginary.

bool SgType::isUnsignedType (  )  const

Compute numerical properties of type. There are many sorts of unsigned types (this queries an arbitrary type).

name Numerical Modifiers

These define numeric properties of the type (e.g. int, float, etc.)

For internal use only.

Return type should be changed to "bool."

bool SgType::isIntegerType (  )  const

There are many sorts of integer types (this queries an arbitrary type).

bool SgType::isFloatType (  )  const

There are several sorts of float types (this queries an arbitrary type).

bool SgType::containsInternalTypes (  ) 

Some types can hide other type IR nodes internally. This function is true if it can hide another type (pointer, array, etc.).

Result is true if it can hide a one or more types, else false.

For internal use only.

True only if this is either a SgPointerType, SgArrayType, SgReferenceType, SgTypedefType, SgFunctionType, or SgModifierType.

Rose_STL_Container<SgType*> SgType::getInternalTypes (  )  const

Generate a container of types hidden in the input type.

Returns a vector of types hidden in the input type (pointer, array, etc.).

For internal use only.

Order of types in vector is not significant (e.g. for SgFunctionType IR nodes).

void SgType::reset_base_type ( SgType baseType  ) 

Reset the base type. This function resets the base type. It is an error to call it for types where containsInternalTypes() == false.

SgType* SgType::findBaseType (  )  const

Return the base type of the associated type. The base type is important when dealing with pointers, arrays, etc.

SgType* SgType::dereference (  ) 

Returns type hidden behind pointer of reference.

const SgType* SgType::dereference (  )  const

Returns type hidden behind pointer of reference.

SgType* SgType::stripType ( unsigned char  bit_array = STRIP_MODIFIER_TYPE|STRIP_REFERENCE_TYPE|STRIP_POINTER_TYPE|STRIP_ARRAY_TYPE|STRIP_TYPEDEF_TYPE  )  const

Returns hidden type beneath layers of typedefs, pointers, references, modifiers, array representation, etc.

SgType* SgType::stripTypedefsAndModifiers (  )  const

This only strips away typedefs and modifiers (specialized usage).

static SgType* SgType::arithmetic_conversions ( SgType ,
SgType  
) [static]

performs simple conversions

static SgType* SgType::integer_promotion ( SgType ,
SgType  
) [static]

handles promotion to integer

static SgType* SgType::float_promotion ( SgType ,
SgType  
) [static]

handles promotion to float

SgName SgType::mangledNameSupport ( SgName fname,
SgUnparse_Info info 
) [protected]

Deprecated:
by RV (2/2/2006)

static bool SgType::handledUsingLocalTable ( SgType t  )  [static]

static SgScopeStatement* SgType::getCurrentScope (  )  [static]

SgDeclarationStatement* SgType::getAssociatedDeclaration (  )  const

virtual void SgType::addNewAttribute ( std::string  s,
AstAttribute a 
) [virtual]

Add a new attribute represented by the named string.

Reimplemented from SgNode.

virtual AstAttribute* SgType::getAttribute ( std::string  s  )  const [virtual]

Returns attribute of name 's'.

Reimplemented from SgNode.

virtual void SgType::updateAttribute ( std::string  s,
AstAttribute a 
) [virtual]

Replace existing attribute of name 's' with new AstAttribute.

Reimplemented from SgNode.

virtual void SgType::setAttribute ( std::string  s,
AstAttribute a 
) [virtual]

This is a wrapper function with the following semantics: if no attribute of name 's' exists then addNewAttribute(s,a); is called, otherwise updateAttribute(s,a); is called.

Reimplemented from SgNode.

virtual void SgType::removeAttribute ( std::string  s  )  [virtual]

Remove attribute of name 's' if present.

Reimplemented from SgNode.

virtual bool SgType::attributeExists ( std::string  s  )  const [virtual]

Tests if attribute of name 's' is present.

Reimplemented from SgNode.

virtual int SgType::numberOfAttributes (  )  const [virtual]

Returns the number of attributes on this IR node.

Reimplemented from SgNode.

virtual std::string SgType::class_name (  )  const [virtual]

Copies AST (whole subtree, depending on the SgCopyHelp class returns a string representing the class name.

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

virtual VariantT SgType::variantT (  )  const [virtual]

returns new style SageIII enum values

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

void* SgType::operator new ( size_t  size  ) 

returns pointer to newly allocated IR node

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

void SgType::operator delete ( void *  pointer,
size_t  size 
)

deallocated memory for IR node (returns memory to memory pool for reuse)

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

void SgType::operator delete ( void *  pointer  ) 

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

static size_t SgType::numberOfNodes (  )  [static]

Returns the total number of IR nodes of this type.

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

static size_t SgType::memoryUsage (  )  [static]

Returns the size in bytes of the total memory allocated for all IR nodes of this type.

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

virtual std::vector<SgNode*> SgType::get_traversalSuccessorContainer (  )  [virtual]

FOR INTERNAL USE within ROSE traverals mechanism only.

This function builds and returns a copy of ordered container holding pointers to children of this node in a traversal. It is associated with the definition of a tree that is travered by the AST traversal mechanism; a tree that is embeded in the AST (which is a more general graph). This function is used within the implementation of the AST traversal and has a semantics may change in subtle ways that makes it difficult to use in user code. It can return unexpected data members and thus the order and the number of elements is unpredicable and subject to change.

Warning:
This function can return unexpected data members and thus the order and the number of elements is unpredicable and subject to change.
Returns:
Returns ordered STL Container of pointers to children nodes in AST.

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

virtual std::vector<std::string> SgType::get_traversalSuccessorNamesContainer (  )  [virtual]

FOR INTERNAL USE within ROSE traverals mechanism only.

This function builds and returns a copy of ordered container holding strings used to name data members that are traversed in the IR node. It is associated with the definition of a tree that is travered by the AST traversal mechanism; a tree that is embeded in the AST (which is a more general graph). This function is used within the implementation of the AST traversal and has a semantics may change in subtle ways that makes it difficult to use in user code. It can return unexpected data members and thus the order and the number of elements is unpredicable and subject to change.

Warning:
This function can return unexpected data members and thus the order and the number of elements is unpredicable and subject to change.
Each string is a name of a member variable holding a pointer to a child in the AST. The names are the same as used in the generated enums for accessing attributes in a traversal. The order is the same in which they are traversed and the same in which the access enums are defined. Therefore this method can be used to get the corresponding name (string) of an access enum which allows to produce more meaningful messages for attribute computations.

Returns:
Returns ordered STL container of names (strings) of access names to children nodes in AST.

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

virtual size_t SgType::get_numberOfTraversalSuccessors (  )  [virtual]

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

virtual SgNode* SgType::get_traversalSuccessorByIndex ( size_t  idx  )  [virtual]

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

virtual size_t SgType::get_childIndex ( SgNode child  )  [virtual]

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

virtual RTIReturnType SgType::roseRTI (  )  [virtual]

FOR INTERNAL USE Access to Runtime Type Information (RTI) for this IR nodes.

This function provides runtime type information for accessing the structure of the current node. It is useful for generating code which would dump out or rebuild IR nodes.

Returns:
Returns a RTIReturnType object (runtime type information).

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

virtual const char* SgType::sage_class_name (  )  const [virtual]

returns a C style string (char*) representing the class name

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

void SgType::executeVisitorMemberFunction ( ROSE_VisitorPattern visitor  ) 

FOR INTERNAL USE Support for visitor pattern.

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

virtual void SgType::accept ( ROSE_VisitorPattern visitor  )  [virtual]

DXN (08/09/2010): support for the classic visitor pattern done in GoF.

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

static void SgType::traverseMemoryPoolNodes ( ROSE_VisitTraversal visit  )  [static]

FOR INTERNAL USE Support for visitor pattern.

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

static void SgType::traverseMemoryPoolVisitorPattern ( ROSE_VisitorPattern visitor  )  [static]

FOR INTERNAL USE Support for visitor pattern.

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

static void SgType::visitRepresentativeNode ( ROSE_VisitTraversal visit  )  [static]

FOR INTERNAL USE Support for type-based traversal.

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

virtual bool SgType::isInMemoryPool (  )  [virtual]

FOR INTERNAL USE This is used in internal tests to verify that all IR nodes are allocated from the heap.

The AST File I/O depends upon the allocation of IR nodes being from the heap, stack based or global IR nodes should not appear in the AST if it will be written out to a file and read back in. To enforce this concept, this function implements a test to verify that the IR node can be found on the heap and is part of a larger test of the whole AST. This test must pass before the AST can be written out to a file. This is part of a compromise in the design of the AST File I/O to support binary streaming of data to files; for performance. It is also rather difficult, but possible, to build a useful AST with IR nodes allocated on the stack or frm global scope, this test filters out such cased from being used with the AST File I/O mechanism.

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

virtual void SgType::checkDataMemberPointersIfInMemoryPool (  )  [virtual]

FOR INTERNAL USE This is used in internal tests to verify that all IR nodes are allocated from the heap.

The AST File I/O depends upon the allocation of IR nodes being from the heap, stack based or global IR nodes should not appear in the AST if it will be written out to a file and read back in. To enforce this concept, this function implements a test to verify that the IR node can be found on the heap and is part of a larger test of the whole AST. This test must pass before the AST can be written out to a file. This is part of a compromise in the design of the AST File I/O to support binary streaming of data to files; for performance. It is also rather difficult, but possible, to build a useful AST with IR nodes allocated on the stack or frm global scope, this test filters out such cased from being used with the AST File I/O mechanism.

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

virtual std::vector<std::pair<SgNode*,std::string> > SgType::returnDataMemberPointers (  )  const [virtual]

FOR INTERNAL USE Returns STL vector of pairs of SgNode* and strings for use in AST tools

This functions is part of general support for many possible tools to operate on the AST. The forms a list of ALL IR node pointers used by each IR node, and is a supperset of the get_traversalSuccessorContainer(). It is (I think) less than the set of pointers used by the AST file I/O. This is part of work implemented by Andreas, and support tools such as the AST graph generation.

Warning:
This function can return unexpected data members and thus the order and the number of elements is unpredicable and subject to change.
Returns:
STL vector of pairs of SgNode* and strings

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

virtual void SgType::processDataMemberReferenceToPointers ( ReferenceToPointerHandler *   )  [virtual]

FOR INTERNAL USE Processes pairs of references to SgNode* and strings for use in AST tools

This functions similar to returnDataMemberPointers() except that it passes references to a handler object. As a result there is FAR more damage that can be done by using this function, but it is type-safe. This is provided for support of internal tools that operate on the AST, e.g the AST Merge mechanism.

Warning:
This function can return unexpected data members and thus the order and the number of elements is unpredicable and subject to change.

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

virtual long SgType::getChildIndex ( SgNode childNode  )  const [virtual]

FOR INTERNAL USE Returns a unique index value for the childNode in the list of children at this IR node.

This function returns a unique value for the input childNode in set of children at this IR node. Note that a negative value indicates that the input node is not a child. This is the basis for the implementation of the isChild(SgNode*) member function. Data members that are NULL in the IR node are counted internally (so that this function returns value that could be statically defined, and so are not dynamically determined).

Warning:
The mapping on children to integer values could change from release to release of ROSE.
Returns:
long

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

SgType* SgType::addRegExpAttribute ( std::string  s,
AstRegExAttribute a 
)

Support for AST matching using regular expression.

This support is incomplete and the subject of current research to define RegEx trees to support inexact matching.

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

bool SgType::get_isCoArray (  )  const

void SgType::set_isCoArray ( bool  isCoArray  ) 

int SgType::get_substitutedForTemplateParam (  )  const

void SgType::set_substitutedForTemplateParam ( int  substitutedForTemplateParam  ) 

SgReferenceType* SgType::get_ref_to (  )  const

void SgType::set_ref_to ( SgReferenceType ref_to  ) 

SgPointerType* SgType::get_ptr_to (  )  const

void SgType::set_ptr_to ( SgPointerType ptr_to  ) 

SgModifierNodes* SgType::get_modifiers (  )  const

void SgType::set_modifiers ( SgModifierNodes modifiers  ) 

SgTypedefSeq* SgType::get_typedefs (  )  const

void SgType::set_typedefs ( SgTypedefSeq typedefs  ) 

AstAttributeMechanism * SgType::get_attributeMechanism (  )  const [virtual]

FOR INTERNAL USE Access function; if an attribute exists then a pointer to it is returned, else error.

This is an access function used for getting the interally held pointer to a valid AstAttributeMechanism. It provides access to lower level functionality of the AstAttributeMechanism, put is mostly of use to internal tools.

Reimplemented from SgNode.

void SgType::set_attributeMechanism ( AstAttributeMechanism a  )  [virtual]

FOR INTERNAL USE Access function; sets poiner to value AstAttributeMechanism.

This is an access function used for setting the interally held pointer to a valid AstAttributeMechanism.

Reimplemented from SgNode.


Friends And Related Function Documentation

friend class SgPointerType [friend]

provide access to private data

friend class SgReferenceType [friend]

provide access to private data

friend class SgTypedefType [friend]

provide access to private data

friend class AST_FILE_IO [friend]

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

friend class SgTypeStorageClass [friend]

friend class AstSpecificDataManagingClass [friend]

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

friend class AstSpecificDataManagingClassStorageClass [friend]

Reimplemented from SgNode.

Reimplemented in SgTypeUnknown, SgTypeChar, SgTypeSignedChar, SgTypeUnsignedChar, SgTypeShort, SgTypeSignedShort, SgTypeUnsignedShort, SgTypeInt, SgTypeSignedInt, SgTypeUnsignedInt, SgTypeLong, SgTypeSignedLong, SgTypeUnsignedLong, SgTypeVoid, SgTypeGlobalVoid, SgTypeWchar, SgTypeFloat, SgTypeDouble, SgTypeLongLong, SgTypeSignedLongLong, SgTypeUnsignedLongLong, SgTypeLongDouble, SgTypeString, SgTypeBool, SgPointerType, SgPointerMemberType, SgReferenceType, SgNamedType, SgClassType, SgJavaParameterizedType, SgEnumType, SgTypedefType, SgModifierType, SgFunctionType, SgMemberFunctionType, SgPartialFunctionType, SgPartialFunctionModifierType, SgArrayType, SgTypeEllipse, SgTemplateType, SgQualifiedNameType, SgTypeComplex, SgTypeImaginary, SgTypeDefault, SgTypeCAFTeam, SgTypeCrayPointer, and SgTypeLabel.

SgType::isSgType ( SgNode s  )  [friend]

Casts pointer from base class to derived class.

This functions returns a SgType pointer for any input of a pointer to an object derived from a SgType.

Returns:
Returns valid pointer to SgType if input is derived from a SgLocatedNode.

SgType::isSgType ( const SgNode s  )  [friend]

Casts pointer from base class to derived class (for const pointers).

This functions returns a SgType pointer for any input of a pointer to an object derived from a SgType.

Returns:
Returns valid pointer to SgType if input is derived from a SgType node.

SgType* SgType_getPointerFromGlobalIndex ( unsigned long  globalIndex  )  [friend]

Constructor for use by AST File I/O MechanismTypedef used for low level memory access. Typedef used to hold memory addresses as values. Methods to find the pointer to a global and local index.

unsigned long SgType_getNumberOfValidNodesAndSetGlobalIndexInFreepointer ( unsigned  long  )  [friend]

Get the size of the memory pool.

It actually returns the size of the whole blocks allocated, no matter they contain valid pointers or not.

void SgType_clearMemoryPool (  )  [friend]

void SgType_extendMemoryPoolForFileIO ( unsigned  long  )  [friend]

void SgType_getNextValidPointer ( std::pair< SgType *, std::vector< unsigned char * >::const_iterator > &   )  [friend]

void SgType_resetValidFreepointers (  )  [friend]


Member Data Documentation

const unsigned char SgType::STRIP_MODIFIER_TYPE = ((unsigned char) 1 << 0) [static]

const unsigned char SgType::STRIP_REFERENCE_TYPE = ((unsigned char) 1 << 1) [static]

const unsigned char SgType::STRIP_POINTER_TYPE = ((unsigned char) 1 << 2) [static]

const unsigned char SgType::STRIP_ARRAY_TYPE = ((unsigned char) 1 << 3) [static]

const unsigned char SgType::STRIP_TYPEDEF_TYPE = ((unsigned char) 1 << 4) [static]

bool SgType::p_isCoArray [protected]

int SgType::p_substitutedForTemplateParam [protected]

This boolean variable marks if the current type was originally a template parameter.

For internal use only.

This mechanism is not fully implemented and might be modified when it is. Also, this variables type should have been bool.

SgReferenceType SgType::p_ref_to [protected]

This holds the pointer to a SgReferenceType if this type is a reference to another type.

SgPointerType SgType::p_ptr_to [protected]

This holds the pointer to a SgPointerType if this type is a pointer to another type.

SgReferenceType SgType::p_modifiers [protected]

This points to any SgModifierNodes if this type contains type modifiers.

SgTypedefSeq SgType::p_typedefs [protected]

This points to IR node which holds a list of typedefs where the base_type if this SgType.

See also:
SgTypedefSeq

SgExpression* SgType::p_type_kind [protected]

AstAttributeMechanism* SgType::p_attributeMechanism [protected]


The documentation for this class was generated from the following files:
Generated on Tue Jan 31 05:43:39 2012 for ROSE by  doxygen 1.4.7