Class Hierarchy   Compound List   File List   Header Files   Compound Members   File Members  

SuifObject Class Reference

The base object for all IR nodes in the SUIF representation. More...

#include <suifkernel/suif_object.h>

Class diagram for SuifObject:

Object TestX SuifBrick EcrSetObject EcrAlphaSetObject CppVTableEntry CppObject AnnotableObject TestY SuifObjectBrick StringBrick OwnedSuifObjectBrick IntegerBrick EcrSetTauObject EcrSetLambdaObject SymbolTableObject SymbolTable ScopedObject InheritanceLink GlobalInformationBlock FileSetBlock Annote

List of all members.


Public Members

virtual SuifObject* deep_clone ( SuifEnv* suif_env = 0 ) const
use the default system cloner to clone this object and all objects in the OWNERSHIP tree rooted at this object.

virtual SuifObject* shallow_clone ( SuifEnv* suif_env = 0 ) const
use the default system cloner to clone this object only. More...

virtual SuifObject* get_parent () const
Get the object's parent in the OWNERSHIP tree. More...

virtual void set_parent ( SuifObject* object )
Set the object's parent. More...

virtual ObjectFactory* get_object_factory () const
Get the object factory that built this object.

virtual SuifEnv* get_suif_env () const
Get the suif enviroment that built this object.

virtual void print_to_default () const
output this object using the default system printer to the default system output.

virtual void print ( ostream& output ) const
output this object using the default system printer to the output stream.

virtual String print_to_string () const
output this object using the default system printer to a string.

virtual int replace ( SuifObject* original, SuifObject* new_object, bool fuse_if_possible = false )
replace this object with the new object. More...

virtual void verify_invariants ( ErrorSubSystem* message_destination )
A placeholder for a method that will verify various interal invariants on an object. More...

virtual void print (FormattedText &x) const
This is an old print method to be used when no system printer is installed.

virtual Walker::ApplyStatus walk (Walker &walk)

Static Public Members

const LString& get_class_name ()

Protected Members

SuifObject ()

Static Protected Members

void constructorFunction ( Address instance )

Friends

class SuifEnv

Detailed Description

The base object for all IR nodes in the SUIF representation.


Member Function Documentation

virtual SuifObject * SuifObject::deep_clone (SuifEnv * suif_env = 0) const [virtual]

use the default system cloner to clone this object and all objects in the OWNERSHIP tree rooted at this object.

virtual SuifObject * SuifObject::shallow_clone (SuifEnv * suif_env = 0) const [virtual]

use the default system cloner to clone this object only.

all references that this object has to other SUIFObjects will be copied to the new clone

virtual SuifObject * SuifObject::get_parent () const [virtual]

Get the object's parent in the OWNERSHIP tree.

it MUST be the case that the PARENT also has a reference to this object. Any object removed from the tree must set its parent to zero and remove the reference to it from the parent.

virtual void SuifObject::set_parent (SuifObject * object) [virtual]

Set the object's parent.

It is an error to set the parent to a new object if the parent is NOT NULL.

WARNING
using this method leaves the system in an invalid state until the parent object pointer to this object is removed. Use this method with EXTREME caution

virtual ObjectFactory * SuifObject::get_object_factory () const [virtual]

Get the object factory that built this object.

virtual SuifEnv * SuifObject::get_suif_env () const [virtual]

Get the suif enviroment that built this object.

virtual void SuifObject::print_to_default () const [virtual]

output this object using the default system printer to the default system output.

virtual void SuifObject::print (ostream & output) const [virtual]

output this object using the default system printer to the output stream.

virtual String SuifObject::print_to_string () const [virtual]

output this object using the default system printer to a string.

virtual int SuifObject::replace (SuifObject * original, SuifObject * new_object, bool fuse_if_possible = false) [virtual]

replace this object with the new object.

This method will replace the parent pointer in this object and set the reference from it's parent to the new object. The new object may be NULL

virtual void SuifObject::verify_invariants (ErrorSubSystem * message_destination) [virtual]

A placeholder for a method that will verify various interal invariants on an object.

Invariants are those like

Currently, this method is not implemented

virtual void SuifObject::print (FormattedText & x) const [virtual]

This is an old print method to be used when no system printer is installed.

Reimplemented in WhileStatement, VtblSlotNumberAnnote, VtblSlotCountAnnote, VtblSlotAnnote, VtblAnnote, VoidType, VaStartStatement, VaStartOldStatement, VariableSymbol, VariableDefinition, ValueBlock, VaEndStatement, VaArgExpression, UnionType, UndefinedValueBlock, UnaryExpression, TypeListRefAnnote, Type, TryStatement, ThrowStatement, ThrowsAnnote, ThrowExpression, TargetInformationBlock, SymbolXrefAnnote, SymbolTableObject, SymbolTable, SymbolListAnnote, SymbolAddressExpression, Symbol, SuifObjectBrick, SuifBrick, StructType, StringBrick, StoreVariableStatement, StoreStatement, StaticMethodType, StaticMethodSymbol, StaticMethodCallStatement, StaticMethodCallExpression, StaticFieldSymbol, StatementList, Statement, SingleInheritanceClassType, SelectExpression, ScSelectExpression, ScOrExpression, ScopeStatement, ScopedObject, ScAndExpression, ReturnStatement, RepeatValueBlock, ReferenceType, QualifiedType, ProcedureType, ProcedureSymbol, ProcedureDefinition, PointerType, PerClassSymbolTable, ParameterSymbol, OwnedSuifObjectBrick, NumericType, NoVtblAnnote, NestingVariableSymbol, MultiWayBranchStatement, MultiValueBlock, MultiDimArrayType, MultiDimArrayExpression, MethodType, MarkStatement, MainProcAnnote, LoadVariableExpression, LoadValueBlockExpression, LoadExpression, LabelType, LabelLocationStatement, JumpStatement, JumpIndirectStatement, JavaStaticMethodSymbol, JavaStaticFieldSymbol, JavaInterface, JavaInstanceMethodSymbol, JavaInstanceFieldSymbol, JavaInformationBlock, JavaClassAllocStatement, JavaClass, JavaCheckStatement, JavaArrayAllocStatement, JavaArray, JavaAllocStatement, JavaAbstractClassType, J2sInformationBlock, IntegerType, IntegerBrick, IntConstant, InstanceMethodType, InstanceMethodSymbolTable, InstanceMethodSymbol, InstanceMethodCallStatement, InstanceMethodCallExpression, InstanceFieldSymbolTable, InstanceFieldSymbol, InstanceFieldOffsetAnnote, InstanceFieldLayoutCompleteAnnote, InheritanceLink, IfStatement, GroupType, GroupSymbolTable, GlobalInformationBlock, GeneralAnnote, ForStatement, FloatingPointType, FloatConstant, FileSetBlock, FileBlock, FieldSymbol, FieldAccessExpression, ExpressionValueBlock, Expression, ExecutionObject, EvalStatement, EnumeratedType, EcrSetTauObject, EcrSetObject, EcrSetLambdaObject, EcrRefAnnote, EcrManagerAnnote, EcrAlphaSetObject, DoWhileStatement, DefinitionBlock, DataType, CStringConstant, CProcedureType, CppVTableType, CppVTableEntry, CppVariableDefinitionLocationStatement, CppVariableDefinition, CppUnionType, CppStructType, CppStaticMethodSymbol, CppObject, CppInstanceMethodSymbol, CppInheritanceLink, CppDerivedClassConvert, CppConstructorValueBlock, CppConstructorInitialization, CppConstructorDefinition, CppClassType, CppClassConvert, CppBaseClassConvert, Constant, CodeLabelSymbol, ClassType, CInformationBlock, CIAnnote, CheckStatement, CForStatement, CExpression, CatchStatement, CallTargetAnnote, CallStatement, CallExpression, ByteSizeOfExpression, ByteOffsetOfExpression, BytecodeIndexStatement, BytecodeIndexAnnote, ByteAlignmentOfExpression, BrickAnnote, BranchStatement, BooleanType, BitSizeOfExpression, BitOffsetOfExpression, BitAlignmentOfExpression, BinaryExpression, BasicSymbolTable, ArrayType, ArrayReferenceExpression, Annote, and AnnotableObject.

virtual Walker::ApplyStatus SuifObject::walk (Walker & walk) [virtual]

const LString & SuifObject::get_class_name () [static]

Reimplemented from Object.

Reimplemented in WhileStatement, VtblSlotNumberAnnote, VtblSlotCountAnnote, VtblSlotAnnote, VtblAnnote, VoidType, VaStartStatement, VaStartOldStatement, VariableSymbol, VariableDefinition, ValueBlock, VaEndStatement, VaArgExpression, UnionType, UndefinedValueBlock, UnaryExpression, TypeListRefAnnote, Type, TryStatement, ThrowStatement, ThrowsAnnote, ThrowExpression, TestY, TestX, TargetInformationBlock, SymbolXrefAnnote, SymbolTableObject, SymbolTable, SymbolListAnnote, SymbolAddressExpression, Symbol, SuifObjectBrick, SuifBrick, StructType, StringBrick, StoreVariableStatement, StoreStatement, StaticMethodType, StaticMethodSymbol, StaticMethodCallStatement, StaticMethodCallExpression, StaticFieldSymbol, StatementList, Statement, SingleInheritanceClassType, SelectExpression, ScSelectExpression, ScOrExpression, ScopeStatement, ScopedObject, ScAndExpression, ReturnStatement, RepeatValueBlock, ReferenceType, QualifiedType, ProcedureType, ProcedureSymbol, ProcedureDefinition, PointerType, PerClassSymbolTable, ParameterSymbol, OwnedSuifObjectBrick, NumericType, NoVtblAnnote, NestingVariableSymbol, MultiWayBranchStatement, MultiValueBlock, MultiDimArrayType, MultiDimArrayExpression, MethodType, MarkStatement, MainProcAnnote, LoadVariableExpression, LoadValueBlockExpression, LoadExpression, LabelType, LabelLocationStatement, JumpStatement, JumpIndirectStatement, JavaStaticMethodSymbol, JavaStaticFieldSymbol, JavaInterface, JavaInstanceMethodSymbol, JavaInstanceFieldSymbol, JavaInformationBlock, JavaClassAllocStatement, JavaClass, JavaCheckStatement, JavaArrayAllocStatement, JavaArray, JavaAllocStatement, JavaAbstractClassType, J2sInformationBlock, IntegerType, IntegerBrick, IntConstant, InstanceMethodType, InstanceMethodSymbolTable, InstanceMethodSymbol, InstanceMethodCallStatement, InstanceMethodCallExpression, InstanceFieldSymbolTable, InstanceFieldSymbol, InstanceFieldOffsetAnnote, InstanceFieldLayoutCompleteAnnote, InheritanceLink, IfStatement, GroupType, GroupSymbolTable, GlobalInformationBlock, GeneralAnnote, ForStatement, FloatingPointType, FloatConstant, FileSetBlock, FileBlock, FieldSymbol, FieldAccessExpression, ExpressionValueBlock, Expression, ExecutionObject, EvalStatement, EnumeratedType, EcrSetTauObject, EcrSetObject, EcrSetLambdaObject, EcrRefAnnote, EcrManagerAnnote, EcrAlphaSetObject, DoWhileStatement, DefinitionBlock, DataType, CStringConstant, CProcedureType, CppVTableType, CppVTableEntry, CppVariableDefinitionLocationStatement, CppVariableDefinition, CppUnionType, CppStructType, CppStaticMethodSymbol, CppObject, CppInstanceMethodSymbol, CppInheritanceLink, CppDerivedClassConvert, CppConstructorValueBlock, CppConstructorInitialization, CppConstructorDefinition, CppClassType, CppClassConvert, CppBaseClassConvert, Constant, CodeLabelSymbol, ClassType, CInformationBlock, CIAnnote, CheckStatement, CForStatement, CExpression, CatchStatement, CallTargetAnnote, CallStatement, CallExpression, ByteSizeOfExpression, ByteOffsetOfExpression, BytecodeIndexStatement, BytecodeIndexAnnote, ByteAlignmentOfExpression, BrickAnnote, BranchStatement, BooleanType, BitSizeOfExpression, BitOffsetOfExpression, BitAlignmentOfExpression, BinaryExpression, BasicSymbolTable, ArrayType, ArrayReferenceExpression, Annote, and AnnotableObject.

SuifObject::SuifObject () [protected]

void SuifObject::constructorFunction (Address instance) [static, protected]


Friends And Related Function Documentation

friend class SuifEnv [friend]


The documentation for this class was generated from the following files:
Generated at Wed Apr 25 17:35:07 2001 for NCI SUIF by doxygen  written by Dimitri van Heesch, © 1997-1999