SgExpression Class Reference

#include <Cxx_Grammar.h>

Inheritance diagram for SgExpression:

Inheritance graph
[legend]
Collaboration diagram for SgExpression:

Collaboration graph
[legend]
List of all members.

Detailed Description

This class represents the notion of an expression. Expressions are derived from SgLocatedNodes, since similar to statement, expressions have a concrete location within the user's source code.

There are no direct uses of this IR node anywhere. All expressions are derived from this IR node to build derived classes such as unary and binary operators, conditional expressions, delete expression, variable reference expressions, etc.

Note:
The SgExpression class has a virtual get_type() member function which returns the type associated with any expression. The get_type() support has the following properties:

get_type() vs. get_expression_type(). Note that there is of some IR nodes a get_expression_type() which is always a data access function to a stored type. The get_expression_type() function is for internal use only. Where used, this function can return NULL if the explicitly stored p_expression_type variable is not needed (this is to support it later being removed). Although the type should be computed most of the time, there are some IR nodes where it must be stored explicitly (detailed above; for example where the SgTypeDefault is used and for SgCastExp, etc.). The function get_expression_type() is not a part of the user interface and users should call get_type() instead.

For internal use only.

This is a base class for all expressions. As a design point IPR has an empty expression, not an empty statement. And empty statement can be built as an expression statement with an empty expression (which IPR does have). We should consider having such an empty expression. Currently we have and expression statement with a null pointer (none too elegant). Sage III now has both a SgNullStatement and a SgNullExpression.

Todo:
Consider placing the VARARGS expression nodes into a common base class derived from SgExpression.
Todo:
I have removed the access functions from the explicit storage of type information in SgExpression objects as phase 1 of a 2 phase approach to eliminate the storage of the type in the SgExpression IR nodes. This type should be computed where required. This would avoid it being held redundently. This mechanism is being redone internally. Some IR nodes will have likely have to store there type explicaitly (function expressions for example, though it might be better computed through the symbol). It is not clear it this computing of the type will be better than stroing of the type explicitly. It might be required for SgBinaryOp IR nodes to store the type if it is not clearly from either the lhs or rhs (if no simple rule exists).
Todo:
SgScopeOp is deprecated and will be removed in a future version of ROSE. It is a hold over from support for CC++ which is not supported in SAGE III anymore.
Todo:
SgRefExp is deprecated and will be removed in a future version of ROSE. It is not used anywhere within SAGE III and I don't know why it is there.
Todo:
Need to find an example of where SgClassNameRefExp is used. It is build in the EDG/Sage III translation, but not in a way that it is obvious that it is still used within Sage III. So this may have to be removed at a latr date.
Todo:
To support Fortran parser we need an IR node which will represent the ambiguity of an array access or function call expression. These are then resolved within the AST after parsing (requires AST Fixup rule).
Todo:
Fortran support requires support for function call using: "foo(temp=*<label>)" this might force the development of a label expression to support this. Code using this compiles with gfortran, so it appears to be F90.
See also:
Example of using a SgExpression object


Public Types

typedef SgLocatedNode base_node_type
 static_variant = V_SgExpression
enum  { static_variant = V_SgExpression }
 static variant value More...

Public Member Functions

virtual SgNodecopy (SgCopyHelp &help) const
virtual int replace_expression (SgExpression *oldChild, SgExpression *newChild)
 Replace an expression child of this node with another one.
virtual SgTypeget_type () const
 get the type associated with this expression
virtual int precedence () const
 return precedence (scale of 0-10, as I recall)
virtual unsigned int cfgIndexForEnd () const
 Determine the CFG index for the end of this construct.
virtual bool cfgIsIndexInteresting (unsigned int index) const
 Determine whether a particular CFG node index is "interesting" for this kind of node.
virtual unsigned int cfgFindChildIndex (SgNode *n)
 Find the index of n in this node's CFG children.
virtual unsigned int cfgFindNextChildIndex (SgNode *n)
 Find the index just after n in this node's CFG children.
virtual std::vector< VirtualCFG::CFGEdgecfgOutEdges (unsigned int index)
 Find the out edges of a CFG node -- internal version.
virtual std::vector< VirtualCFG::CFGEdgecfgInEdges (unsigned int index)
 Find the in edges of a CFG node -- internal version.
virtual bool isDefinable () const
 For Fortran. When called from a node of any other language, behavior is undefined (see SageInterface::is_Fortran_language). Returns a bool value which is true if the current expression is "almost definable". "Almost definable" here means as defined by the Fortran standard (2.5.5), with the caveat that allocatable variables are always called an lvalue. The Fortran standard dictates that an allocatable variable which has not been allocated is not definable. In the general case, it cannot be statically determined whether an allocatable variable has been allocated or not. Note: constants in Fortran are not lvalues, while in C and C++ lvalues may be const.
virtual bool isUsedAsDefinable () const
 For Fortran. When called from a node of any other language, behavior is undefined (see SageInterface::is_Fortran_language). Returns a bool value which is true if the current expression is used as a definable value. That is, it is definable (assigned to).
virtual bool isLValue () const
 For C and C++. When called from a node of any other language, behavior is undefined (see SageInterface::is_C*_language). Returns a bool value which is true if the current expression is an lvalue, as defined by the C++ standard.
virtual bool isUsedAsLValue () const
 For C and C++. When called from a node of any other language, behavior is undefined (see SageInterface::is_C*_language). Returns a bool value which is true if the current expression is used as an lvalue. That is, it is an lvalue and does not get converted to an rvalue by its parent expression.
virtual bool isChildUsedAsLValue (const SgExpression *child) const
virtual Sg_File_Infoget_file_info (void) const
 Interface function to implement original SAGE interface to SgFile_Info objects.
virtual void set_file_info (Sg_File_Info *X)
 Access function calls set_startingConstruct(Sg_File_Info*) member function.
virtual void fixupCopy (SgNode *copy, SgCopyHelp &help) const
SgName get_qualified_name_prefix () const
 This function generates the qualified name prefix to be used with the type referenced by this expression.
SgName get_qualified_name_prefix_for_referenced_type () const
 This function generates the qualified name prefix to be used with the type referenced by this expression.
virtual int get_name_qualification_length () const
virtual void set_name_qualification_length (int name_qualification_length)
virtual bool get_type_elaboration_required () const
virtual void set_type_elaboration_required (bool type_elaboration_required)
virtual bool get_global_qualification_required () const
virtual void set_global_qualification_required (bool global_qualification_required)
virtual SgExpressionget_originalExpressionTree () const
virtual void set_originalExpressionTree (SgExpression *X)
void post_construction_initialization ()
 Final initialization for constructors This function is called at the end of generated constructors to allow the specification writer to add special initialization functions or tests. Default is to do nothing. Otherwise it should be overridden in the spec file, in NewHeaderCode/NewOutlinedCode.
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.
 SgExpression (const SgExpressionStorageClass &source)
SgExpressionaddRegExpAttribute (std::string s, AstRegExAttribute *a)
 Support for AST matching using regular expression.
bool get_need_paren () const
 returns bool value if front-end considers parenthesis to be required.
void set_need_paren (bool need_paren)
 This function allows the p_need_paren flag to be set (used internally).
bool get_lvalue () const
 Returns a bool value if the current expression is assigned to.
void set_lvalue (bool lvalue)
 This function allows the p_lvalue flag to be set (used internally).
bool get_global_qualified_name () const
void set_global_qualified_name (bool global_qualified_name)
Sg_File_Infoget_operatorPosition () const
void set_operatorPosition (Sg_File_Info *operatorPosition)
virtual ~SgExpression ()
 This is the destructor.
 SgExpression (Sg_File_Info *startOfConstruct)
 This is the constructor.
 SgExpression ()

Static Public Member Functions

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.

Protected Attributes

bool p_need_paren
 This boolean value marks the current expression as requiring parenthises.
bool p_lvalue
 This boolean variable marks the current expression as a left hand side value (lvalue).
bool p_global_qualified_name
Sg_File_Infop_operatorPosition

Friends

class AST_FILE_IO
class SgExpressionStorageClass
class AstSpecificDataManagingClass
class AstSpecificDataManagingClassStorageClass
SgExpressionisSgExpression (SgNode *s)
 Casts pointer from base class to derived class.
const SgExpressionisSgExpression (const SgNode *s)
 Casts pointer from base class to derived class (for const pointers).
SgExpressionSgExpression_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 SgExpression_getNumberOfValidNodesAndSetGlobalIndexInFreepointer (unsigned long)
 Get the size of the memory pool.
void SgExpression_clearMemoryPool ()
void SgExpression_extendMemoryPoolForFileIO (unsigned long)
void SgExpression_getNextValidPointer (std::pair< SgExpression *, std::vector< unsigned char * >::const_iterator > &)
void SgExpression_resetValidFreepointers ()


Member Typedef Documentation

typedef SgLocatedNode SgExpression::base_node_type

Reimplemented from SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.


Member Enumeration Documentation

anonymous enum

static variant value

Enumerator:
static_variant 


Constructor & Destructor Documentation

SgExpression::SgExpression ( const SgExpressionStorageClass &  source  ) 

SgExpression::~SgExpression (  )  [virtual]

This is the destructor.

Only the Sg_File_Info object can be deleted in this object.

SgExpression::SgExpression ( Sg_File_Info startOfConstruct = NULL  ) 

This is the constructor.

This constructor builds the SgExpression base class.

Parameters:
startOfConstruct represents the position in the source code
See also:
Example:create an SgExpression object

SgExpression::SgExpression (  ) 


Member Function Documentation

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

Reimplemented from SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

virtual int SgExpression::replace_expression ( SgExpression oldChild,
SgExpression newChild 
) [virtual]

Replace an expression child of this node with another one.

It contains all the base functionality for the construction, manipulation, and unparsing support.

Reimplemented in SgUnaryOp, SgBinaryOp, SgExprListExp, SgCallExpression, SgSizeOfOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgOp, SgVarArgEndOp, and SgNaryOp.

SgExpression::get_type (  )  const [virtual]

get the type associated with this expression

This function is the correct user function to call to get the type (note that get_expression_type() is for internal use only).

Returns:
Returns pointer to SgType (base class for all possible types)

Reimplemented in SgUnaryOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgCastExp, SgThrowOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAndOp, SgOrOp, SgCommaOpExp, SgPntrArrRefExp, SgUserDefinedBinaryOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

virtual int SgExpression::precedence (  )  const [virtual]

return precedence (scale of 0-10, as I recall)

Reimplemented in SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgNaryBooleanOp, and SgNaryComparisonOp.

virtual unsigned int SgExpression::cfgIndexForEnd (  )  const [virtual]

Determine the CFG index for the end of this construct.

Reimplemented from SgNode.

Reimplemented in SgUnaryOp, SgThrowOp, SgBinaryOp, SgExprListExp, SgVarRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgFunctionCallExp, SgSizeOfOp, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgInitializer, SgConstructorInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgNullExpression, SgSubscriptExpression, SgAsteriskShapeExp, SgImpliedDo, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, and SgPseudoDestructorRefExp.

virtual bool SgExpression::cfgIsIndexInteresting ( unsigned int  index  )  const [virtual]

Determine whether a particular CFG node index is "interesting" for this kind of node.

Reimplemented from SgNode.

Reimplemented in SgAndOp, SgOrOp, and SgConditionalExp.

virtual unsigned int SgExpression::cfgFindChildIndex ( SgNode n  )  [virtual]

Find the index of n in this node's CFG children.

Reimplemented from SgNode.

Reimplemented in SgCastExp, SgConditionalExp, SgNewExp, and SgDesignatedInitializer.

virtual unsigned int SgExpression::cfgFindNextChildIndex ( SgNode n  )  [virtual]

Find the index just after n in this node's CFG children.

Reimplemented from SgNode.

virtual std::vector<VirtualCFG::CFGEdge> SgExpression::cfgOutEdges ( unsigned int  index  )  [virtual]

Find the out edges of a CFG node -- internal version.

Reimplemented from SgNode.

Reimplemented in SgUnaryOp, SgThrowOp, SgBinaryOp, SgAndOp, SgOrOp, SgExprListExp, SgVarRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgFunctionCallExp, SgSizeOfOp, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgNullExpression, SgSubscriptExpression, SgAsteriskShapeExp, SgImpliedDo, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, and SgPseudoDestructorRefExp.

virtual std::vector<VirtualCFG::CFGEdge> SgExpression::cfgInEdges ( unsigned int  index  )  [virtual]

Find the in edges of a CFG node -- internal version.

Reimplemented from SgNode.

Reimplemented in SgUnaryOp, SgThrowOp, SgBinaryOp, SgAndOp, SgOrOp, SgExprListExp, SgVarRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgFunctionCallExp, SgSizeOfOp, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgNullExpression, SgSubscriptExpression, SgAsteriskShapeExp, SgImpliedDo, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, and SgPseudoDestructorRefExp.

SgExpression::isDefinable ( void   )  const [virtual]

For Fortran. When called from a node of any other language, behavior is undefined (see SageInterface::is_Fortran_language). Returns a bool value which is true if the current expression is "almost definable". "Almost definable" here means as defined by the Fortran standard (2.5.5), with the caveat that allocatable variables are always called an lvalue. The Fortran standard dictates that an allocatable variable which has not been allocated is not definable. In the general case, it cannot be statically determined whether an allocatable variable has been allocated or not. Note: constants in Fortran are not lvalues, while in C and C++ lvalues may be const.

Returns:
Returns true if the current expression is almost definable.

Reimplemented in SgPointerAssignOp, and SgVarRefExp.

SgExpression::isUsedAsDefinable ( void   )  const [virtual]

For Fortran. When called from a node of any other language, behavior is undefined (see SageInterface::is_Fortran_language). Returns a bool value which is true if the current expression is used as a definable value. That is, it is definable (assigned to).

Returns:
Returns true if the current expression is used as a definable value.

SgExpression::isLValue ( void   )  const [virtual]

For C and C++. When called from a node of any other language, behavior is undefined (see SageInterface::is_C*_language). Returns a bool value which is true if the current expression is an lvalue, as defined by the C++ standard.

Returns:
Returns true if the current expression is an lvalue.

Reimplemented in SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgCastExp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgCommaOpExp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgCompoundAssignOp, SgVarRefExp, SgMemberFunctionRefExp, SgStringVal, SgFunctionCallExp, SgTypeIdOp, SgConditionalExp, and SgAssignInitializer.

SgExpression::isUsedAsLValue ( void   )  const [virtual]

For C and C++. When called from a node of any other language, behavior is undefined (see SageInterface::is_C*_language). Returns a bool value which is true if the current expression is used as an lvalue. That is, it is an lvalue and does not get converted to an rvalue by its parent expression.

Returns:
Returns true if the current expression is used as an lvalue.

virtual bool SgExpression::isChildUsedAsLValue ( const SgExpression child  )  const [virtual]

Reimplemented in SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgCastExp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgCommaOpExp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgCompoundAssignOp, SgExprListExp, SgVarRefExp, SgMemberFunctionRefExp, SgStringVal, SgFunctionCallExp, SgTypeIdOp, SgConditionalExp, and SgAssignInitializer.

virtual Sg_File_Info* SgExpression::get_file_info ( void   )  const [virtual]

Interface function to implement original SAGE interface to SgFile_Info objects.

This function is added explicitly to provide the older interface to the file_info pointer which has been removed and replaced with two Sg_File_Info pointers to mark the start and end of the located node object (previously we only stored the starting location). This function still returns the starting location of the construct.

Reimplemented from SgLocatedNode.

virtual void SgExpression::set_file_info ( Sg_File_Info X  )  [virtual]

Access function calls set_startingConstruct(Sg_File_Info*) member function.

Reimplemented from SgLocatedNode.

virtual void SgExpression::fixupCopy ( SgNode copy,
SgCopyHelp help 
) const [virtual]

Reimplemented from SgLocatedNode.

SgName SgExpression::get_qualified_name_prefix (  )  const

This function generates the qualified name prefix to be used with the type referenced by this expression.

SgName SgExpression::get_qualified_name_prefix_for_referenced_type (  )  const

This function generates the qualified name prefix to be used with the type referenced by this expression.

virtual int SgExpression::get_name_qualification_length (  )  const [virtual]

Reimplemented in SgCastExp, SgVarRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgEnumVal, SgSizeOfOp, SgTypeIdOp, SgNewExp, and SgConstructorInitializer.

virtual void SgExpression::set_name_qualification_length ( int  name_qualification_length  )  [virtual]

Reimplemented in SgCastExp, SgVarRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgEnumVal, SgSizeOfOp, SgTypeIdOp, SgNewExp, and SgConstructorInitializer.

virtual bool SgExpression::get_type_elaboration_required (  )  const [virtual]

Reimplemented in SgCastExp, SgVarRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgEnumVal, SgSizeOfOp, SgTypeIdOp, SgNewExp, and SgConstructorInitializer.

virtual void SgExpression::set_type_elaboration_required ( bool  type_elaboration_required  )  [virtual]

Reimplemented in SgCastExp, SgVarRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgEnumVal, SgSizeOfOp, SgTypeIdOp, SgNewExp, and SgConstructorInitializer.

virtual bool SgExpression::get_global_qualification_required (  )  const [virtual]

Reimplemented in SgCastExp, SgVarRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgEnumVal, SgSizeOfOp, SgTypeIdOp, SgNewExp, and SgConstructorInitializer.

virtual void SgExpression::set_global_qualification_required ( bool  global_qualification_required  )  [virtual]

Reimplemented in SgCastExp, SgVarRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgEnumVal, SgSizeOfOp, SgTypeIdOp, SgNewExp, and SgConstructorInitializer.

virtual SgExpression* SgExpression::get_originalExpressionTree (  )  const [virtual]

Reimplemented in SgCastExp, SgBinaryOp, SgVarRefExp, SgFunctionRefExp, and SgValueExp.

virtual void SgExpression::set_originalExpressionTree ( SgExpression X  )  [virtual]

Reimplemented in SgCastExp, SgBinaryOp, SgVarRefExp, SgFunctionRefExp, and SgValueExp.

void SgExpression::post_construction_initialization (  )  [virtual]

Final initialization for constructors This function is called at the end of generated constructors to allow the specification writer to add special initialization functions or tests. Default is to do nothing. Otherwise it should be overridden in the spec file, in NewHeaderCode/NewOutlinedCode.

Reimplemented from SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

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

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

Reimplemented from SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

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

returns new style SageIII enum values

Reimplemented from SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

void* SgExpression::operator new ( size_t  size  ) 

returns pointer to newly allocated IR node

Reimplemented from SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

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

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

Reimplemented from SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

void SgExpression::operator delete ( void *  pointer  ) 

Reimplemented from SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

static size_t SgExpression::numberOfNodes (  )  [static]

Returns the total number of IR nodes of this type.

Reimplemented from SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

static size_t SgExpression::memoryUsage (  )  [static]

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

Reimplemented from SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

virtual std::vector<SgNode*> SgExpression::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 SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

virtual std::vector<std::string> SgExpression::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 SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

virtual size_t SgExpression::get_numberOfTraversalSuccessors (  )  [virtual]

Reimplemented from SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

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

Reimplemented from SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

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

Reimplemented from SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

virtual RTIReturnType SgExpression::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 SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

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

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

Reimplemented from SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

void SgExpression::executeVisitorMemberFunction ( ROSE_VisitorPattern visitor  ) 

FOR INTERNAL USE Support for visitor pattern.

Reimplemented from SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

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

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

Reimplemented from SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

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

FOR INTERNAL USE Support for visitor pattern.

Reimplemented from SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

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

FOR INTERNAL USE Support for visitor pattern.

Reimplemented from SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

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

FOR INTERNAL USE Support for type-based traversal.

Reimplemented from SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

virtual bool SgExpression::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 SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

virtual void SgExpression::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 SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

virtual std::vector<std::pair<SgNode*,std::string> > SgExpression::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 SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp, SgClassNameRefExp, SgFunctionRefExp, SgMemberFunctionRefExp, SgValueExp, SgBoolValExp, SgStringVal, SgShortVal, SgCharVal, SgUnsignedCharVal, SgWcharVal, SgUnsignedShortVal, SgIntVal, SgEnumVal, SgUnsignedIntVal, SgLongIntVal, SgLongLongIntVal, SgUnsignedLongLongIntVal, SgUnsignedLongVal, SgFloatVal, SgDoubleVal, SgLongDoubleVal, SgComplexVal, SgUpcThreads, SgUpcMythread, SgCallExpression, SgFunctionCallExp, SgSizeOfOp, SgUpcLocalsizeofExpression, SgUpcBlocksizeofExpression, SgUpcElemsizeofExpression, SgJavaInstanceOfOp, SgTypeIdOp, SgConditionalExp, SgNewExp, SgDeleteExp, SgThisExp, SgRefExp, SgInitializer, SgAggregateInitializer, SgConstructorInitializer, SgAssignInitializer, SgDesignatedInitializer, SgVarArgStartOp, SgVarArgOp, SgVarArgEndOp, SgVarArgCopyOp, SgVarArgStartOneOperandOp, SgNullExpression, SgVariantExpression, SgSubscriptExpression, SgColonShapeExp, SgAsteriskShapeExp, SgImpliedDo, SgIOItemExpression, SgStatementExpression, SgAsmOp, SgLabelRefExp, SgActualArgumentExpression, SgUnknownArrayOrFunctionReference, SgPseudoDestructorRefExp, SgCAFCoExpression, SgCudaKernelCallExp, SgCudaKernelExecConfig, SgLambdaRefExp, SgDictionaryExp, SgKeyDatumPair, SgComprehension, SgListComprehension, SgSetComprehension, SgDictionaryComprehension, SgNaryOp, SgNaryBooleanOp, SgNaryComparisonOp, SgStringConversion, and SgYieldExpression.

virtual void SgExpression::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 SgLocatedNode.

Reimplemented in SgUnaryOp, SgExpressionRoot, SgMinusOp, SgUnaryAddOp, SgNotOp, SgPointerDerefExp, SgAddressOfOp, SgMinusMinusOp, SgPlusPlusOp, SgBitComplementOp, SgCastExp, SgThrowOp, SgRealPartOp, SgImagPartOp, SgConjugateOp, SgUserDefinedUnaryOp, SgBinaryOp, SgArrowExp, SgDotExp, SgDotStarOp, SgArrowStarOp, SgEqualityOp, SgLessThanOp, SgGreaterThanOp, SgNotEqualOp, SgLessOrEqualOp, SgGreaterOrEqualOp, SgAddOp, SgSubtractOp, SgMultiplyOp, SgDivideOp, SgIntegerDivideOp, SgModOp, SgAndOp, SgOrOp, SgBitXorOp, SgBitAndOp, SgBitOrOp, SgCommaOpExp, SgLshiftOp, SgRshiftOp, SgPntrArrRefExp, SgScopeOp, SgAssignOp, SgExponentiationOp, SgJavaUnsignedRshiftOp, SgConcatenationOp, SgPointerAssignOp, SgUserDefinedBinaryOp, SgCompoundAssignOp, SgPlusAssignOp, SgMinusAssignOp, SgAndAssignOp, SgIorAssignOp, SgMultAssignOp, SgDivAssignOp, SgModAssignOp, SgXorAssignOp, SgLshiftAssignOp, SgRshiftAssignOp, SgJavaUnsignedRshiftAssignOp, SgIntegerDivideAssignOp, SgExponentiationAssignOp, SgMembershipOp, SgNonMembershipOp, SgIsOp, SgIsNotOp, SgExprListExp, SgListExp, SgTupleExp, SgVarRefExp,