scale.alias.steensgaard
Class AliasType

java.lang.Object
  extended by scale.alias.steensgaard.AliasType
Direct Known Subclasses:
FunctionType, FunctionTypeCat, LocationType, LocationTypeCat, ValueType, ValueTypeCat

public class AliasType
extends java.lang.Object

A class which implements the non-standard set of types used in Steensgaard's algorithm to represent abstract locations.

$Id: AliasType.java,v 1.12 2005-05-09 17:10:33 burrill Exp $

Copyright 2008 by the Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.

We never create objects of class AliasType. We only create objects that extend this class.

See Also:
ValueType, FunctionType, LocationType

Field Summary
static AliasType BOT
          A special type that represents bottom.
 
Constructor Summary
protected AliasType()
          Only allow subtypes to create these objects.
 
Method Summary
 void cleanup()
          Remove any un-needed stuff after analysis has been performed.
 int getNodeID()
           
 Vector<ECR> pointsTo()
          Return the list of ECRs that this type points-to.
 int pointsToSize()
          Return the number of ECRs that this type points-to.
 java.lang.String toString()
          Return a string representing the type id.
 java.lang.String toStringClass()
          Convert the class name of this node to a string representation.
 java.lang.String toStringShort()
          Return a string represnting the type id.
 java.lang.String toStringSpecial()
          Return information specific to the derived class.
 void unify(AliasType t)
          Recursively join two types.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

BOT

public static final AliasType BOT
A special type that represents bottom.

Constructor Detail

AliasType

protected AliasType()
Only allow subtypes to create these objects.

Method Detail

getNodeID

public int getNodeID()

pointsTo

public Vector<ECR> pointsTo()
Return the list of ECRs that this type points-to. This method should be redefined by a subclass.


pointsToSize

public int pointsToSize()
Return the number of ECRs that this type points-to. This method should be redefined by a subclass.


unify

public void unify(AliasType t)
Recursively join two types. This method should be redefined by a subclass.

Parameters:
t - the specifed type.

toStringClass

public final java.lang.String toStringClass()
Convert the class name of this node to a string representation.


toString

public final java.lang.String toString()
Return a string representing the type id.

Overrides:
toString in class java.lang.Object

toStringSpecial

public java.lang.String toStringSpecial()
Return information specific to the derived class.


toStringShort

public java.lang.String toStringShort()
Return a string represnting the type id. This routine is not overidden by a subclass (and toString is typically overidden).


cleanup

public void cleanup()
Remove any un-needed stuff after analysis has been performed.