#include <suifkernel/suif_object.h>
Class diagram for SuifObject:

[virtual]use the default system cloner to clone this object and all objects in the OWNERSHIP tree rooted at this object.
[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]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]Set the object's parent.
It is an error to set the parent to a new object if the parent is NOT NULL.
[virtual]Get the object factory that built this object.
[virtual]Get the suif enviroment that built this object.
[virtual]output this object using the default system printer to the default system output.
[virtual]output this object using the default system printer to the output stream.
[virtual]output this object using the default system printer to a string.
[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]A placeholder for a method that will verify various interal invariants on an object.
Invariants are those like
[virtual]This is an old print method to be used when no system printer is installed.
Reimplemented in WhileStatement, VoidType, VaStartStatement, VaStartOldStatement, VariableSymbol, VariableDefinition, ValueBlock, VaEndStatement, VaArgExpression, UnionType, UndefinedValueBlock, UnaryExpression, Type, TargetInformationBlock, SymbolTableObject, SymbolTable, SymbolAddressExpression, Symbol, SuifObjectBrick, SuifBrick, StructType, StringBrick, StoreVariableStatement, StoreStatement, StatementList, Statement, SelectExpression, ScSelectExpression, ScOrExpression, ScopeStatement, ScopedObject, ScAndExpression, ReturnStatement, RepeatValueBlock, ReferenceType, QualifiedType, ProcedureType, ProcedureSymbol, ProcedureDefinition, PointerType, ParameterSymbol, OwnedSuifObjectBrick, NumericType, NestingVariableSymbol, MultiWayBranchStatement, MultiValueBlock, MultiDimArrayType, MultiDimArrayExpression, MarkStatement, LoadVariableExpression, LoadValueBlockExpression, LoadExpression, LabelType, LabelLocationStatement, JumpStatement, JumpIndirectStatement, IntegerType, IntegerBrick, IntConstant, IfStatement, GroupType, GroupSymbolTable, GlobalInformationBlock, GeneralAnnote, ForStatement, FloatingPointType, FloatConstant, FileSetBlock, FileBlock, FieldSymbol, FieldAccessExpression, ExpressionValueBlock, Expression, ExecutionObject, EvalStatement, EnumeratedType, DoWhileStatement, DefinitionBlock, DataType, CProcedureType, Constant, CodeLabelSymbol, CInformationBlock, CForStatement, CExpression, CallStatement, CallExpression, ByteSizeOfExpression, ByteOffsetOfExpression, ByteAlignmentOfExpression, BrickAnnote, BranchStatement, BooleanType, BitSizeOfExpression, BitOffsetOfExpression, BitAlignmentOfExpression, BinaryExpression, BasicSymbolTable, ArrayType, ArrayReferenceExpression, Annote and AnnotableObject.
[virtual]
[static]
Reimplemented from Object.
Reimplemented in WhileStatement, VoidType, VaStartStatement, VaStartOldStatement, VariableSymbol, VariableDefinition, ValueBlock, VaEndStatement, VaArgExpression, UnionType, UndefinedValueBlock, UnaryExpression, Type, TargetInformationBlock, SymbolTableObject, SymbolTable, SymbolAddressExpression, Symbol, SuifObjectBrick, SuifBrick, StructType, StringBrick, StoreVariableStatement, StoreStatement, StatementList, Statement, SelectExpression, ScSelectExpression, ScOrExpression, ScopeStatement, ScopedObject, ScAndExpression, ReturnStatement, RepeatValueBlock, ReferenceType, QualifiedType, ProcedureType, ProcedureSymbol, ProcedureDefinition, PointerType, ParameterSymbol, OwnedSuifObjectBrick, NumericType, NestingVariableSymbol, MultiWayBranchStatement, MultiValueBlock, MultiDimArrayType, MultiDimArrayExpression, MarkStatement, LoadVariableExpression, LoadValueBlockExpression, LoadExpression, LabelType, LabelLocationStatement, JumpStatement, JumpIndirectStatement, IntegerType, IntegerBrick, IntConstant, IfStatement, GroupType, GroupSymbolTable, GlobalInformationBlock, GeneralAnnote, ForStatement, FloatingPointType, FloatConstant, FileSetBlock, FileBlock, FieldSymbol, FieldAccessExpression, ExpressionValueBlock, Expression, ExecutionObject, EvalStatement, EnumeratedType, DoWhileStatement, DefinitionBlock, DataType, CProcedureType, Constant, CodeLabelSymbol, CInformationBlock, CForStatement, CExpression, CallStatement, CallExpression, ByteSizeOfExpression, ByteOffsetOfExpression, ByteAlignmentOfExpression, BrickAnnote, BranchStatement, BooleanType, BitSizeOfExpression, BitOffsetOfExpression, BitAlignmentOfExpression, BinaryExpression, BasicSymbolTable, ArrayType, ArrayReferenceExpression, Annote and AnnotableObject.
[protected]
[static, protected]
[friend]
written by Dimitri van Heesch, © 1997-1999