Main Page   Packages   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

FGExpr Class Reference

Inheritance diagram for FGExpr:
[legend]
Collaboration diagram for FGExpr:
[legend]
List of all members.

Public Methods

FGNodeAST build (Value v, Stmt s)
void caseAddExpr (AddExpr v)
void caseAndExpr (AndExpr v)
void caseArrayRef (ArrayRef v)
void caseCastExpr (CastExpr v)
void caseCaughtExceptionRef (CaughtExceptionRef v)
void caseChooseExpr (ChooseExpr v)
void caseCmpExpr (CmpExpr v)
void caseCmpgExpr (CmpgExpr v)
void caseCmplExpr (CmplExpr v)
void caseComplementExpr (ComplementExpr expr)
void caseDivExpr (DivExpr v)
void caseDoubleConstant (DoubleConstant v)
void caseEqExpr (EqExpr v)
void caseFloatConstant (FloatConstant v)
void caseGeExpr (GeExpr v)
void caseGtExpr (GtExpr v)
void caseInExpr (InExpr v)
void caseInstanceFieldRef (InstanceFieldRef v)
void caseInstanceOfExpr (InstanceOfExpr v)
void caseIntConstant (IntConstant v)
void caseInterfaceInvokeExpr (InterfaceInvokeExpr v)
void caseLeExpr (LeExpr v)
void caseLengthExpr (LengthExpr v)
void caseLocal (Local v)
void caseLocalExpr (LocalExpr v)
void caseLocationTestExpr (LocationTestExpr e)
void caseLogicalAndExpr (LogicalAndExpr expr)
void caseLogicalOrExpr (LogicalOrExpr expr)
void caseLongConstant (LongConstant v)
void caseLtExpr (LtExpr v)
void caseMulExpr (MulExpr v)
void caseNeExpr (NeExpr v)
void caseNegExpr (NegExpr v)
void caseNewArrayExpr (NewArrayExpr v)
void caseNewExpr (NewExpr v)
void caseNewMultiArrayExpr (NewMultiArrayExpr v)
void caseNullConstant (NullConstant v)
void caseOrExpr (OrExpr v)
void caseParameterRef (ParameterRef v)
void caseRemExpr (RemExpr v)
void caseShlExpr (ShlExpr v)
void caseShrExpr (ShrExpr v)
void caseSpecialInvokeExpr (SpecialInvokeExpr v)
void caseStaticFieldRef (StaticFieldRef v)
void caseStaticInvokeExpr (StaticInvokeExpr v)
void caseStringConstant (StringConstant v)
void caseSubExpr (SubExpr v)
void caseThisRef (ThisRef v)
void caseUshrExpr (UshrExpr v)
void caseVirtualInvokeExpr (VirtualInvokeExpr v)
void caseXorExpr (XorExpr v)
void defaultCase (Object v)

Static Public Methods

 FGExpr (MethodVariant methodVariant, Map astNodes)

Protected Methods

Value getValue (String base)

Static Protected Methods

ClassTokenSimple getToken (String type)

Private Attributes

MethodVariant methodVariant
Map astNodes
Value value
Stmt stmt

Static Private Attributes

Hashtable commonTokens = new Hashtable()
Category cat

Detailed Description

This class provides methods to create various FGNodes for various expressions that may occur in the Jimple statment.

Author:
John Hatcliff , Venkatesh Prasad Ranganath
Version:
Name:
(
Revision:
1.1.1.1
)

Definition at line 64 of file FGExpr.java.


Constructor & Destructor Documentation

FGExpr::FGExpr MethodVariant   methodVariant,
Map   astNodes
[inline, static]
 

Constructor of the class.

Parameters:
methodVariant   the method enclosing the expression being processed.
astNodes   the map of AST nodes to flow graph nodes in the method.

Definition at line 114 of file FGExpr.java.


Member Function Documentation

FGNodeAST FGExpr::build Value   v,
Stmt   s
[inline]
 

Builds the flow graph node for the given expression.

Parameters:
v   the expression for which the flow graph node should be constructed.
s   the statement in which the expression occurs.
Returns:
the flow graph node associated with the expression.

Definition at line 131 of file FGExpr.java.

Referenced by FGStmt::caseAssignStmt(), FGStmt::caseEnterMonitorStmt(), FGStmt::caseExitMonitorStmt(), FGStmt::caseIdentityStmt(), FGStmt::caseIfStmt(), FGStmt::caseInvokeStmt(), FGStmt::caseReturnStmt(), and FGStmt::caseThrowStmt().

void FGExpr::caseAddExpr AddExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   an AddExpr value

Reimplemented from ExprSwitch.

Definition at line 147 of file FGExpr.java.

void FGExpr::caseAndExpr AndExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   an AndExpr value

Reimplemented from ExprSwitch.

Definition at line 156 of file FGExpr.java.

void FGExpr::caseArrayRef ArrayRef   v [inline]
 

Handles the case when the expression is an array reference on RHS.

Parameters:
v   the expression for array reference.

Definition at line 165 of file FGExpr.java.

void FGExpr::caseCastExpr CastExpr   v [inline, virtual]
 

Handles a case when the expression is a cast expression.

Parameters:
v   the cast expression.

Reimplemented from ExprSwitch.

Definition at line 195 of file FGExpr.java.

void FGExpr::caseCaughtExceptionRef CaughtExceptionRef   v [inline]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   a CaughtExceptionRef value

Definition at line 212 of file FGExpr.java.

void FGExpr::caseChooseExpr ChooseExpr   v [inline, virtual]
 

This method was created in VisualAge by robbyjo.

Parameters:
v   edu.ksu.cis.bandera.jext.ChooseExpr

Reimplemented from AbstractBanderaValueSwitch.

Definition at line 220 of file FGExpr.java.

void FGExpr::caseCmpExpr CmpExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   a CmpExpr value

Reimplemented from ExprSwitch.

Definition at line 257 of file FGExpr.java.

void FGExpr::caseCmpgExpr CmpgExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   a CmpgExpr value

Reimplemented from ExprSwitch.

Definition at line 266 of file FGExpr.java.

void FGExpr::caseCmplExpr CmplExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   a CmplExpr value

Reimplemented from ExprSwitch.

Definition at line 275 of file FGExpr.java.

void FGExpr::caseComplementExpr ComplementExpr   expr [inline]
 

This method was created in VisualAge by robbyjo.

Parameters:
expr   edu.ksu.cis.bandera.jext.ComplementExpr

Reimplemented from AbstractBanderaValueSwitch.

Definition at line 283 of file FGExpr.java.

void FGExpr::caseDivExpr DivExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   a DivExpr value

Reimplemented from ExprSwitch.

Definition at line 291 of file FGExpr.java.

void FGExpr::caseDoubleConstant DoubleConstant   v [inline]
 

We do not handle double values.

Parameters:
v   a DoubleConstant value

Definition at line 305 of file FGExpr.java.

void FGExpr::caseEqExpr EqExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   an EqExpr value

Reimplemented from ExprSwitch.

Definition at line 314 of file FGExpr.java.

void FGExpr::caseFloatConstant FloatConstant   v [inline]
 

We do not handle float values.

Parameters:
v   a FloatConstant value

Definition at line 323 of file FGExpr.java.

void FGExpr::caseGeExpr GeExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   a GeExpr value

Reimplemented from ExprSwitch.

Definition at line 332 of file FGExpr.java.

void FGExpr::caseGtExpr GtExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   a GtExpr value

Reimplemented from ExprSwitch.

Definition at line 341 of file FGExpr.java.

void FGExpr::caseInExpr InExpr   v [inline]
 

This method was created in VisualAge by robbyjo.

Parameters:
v   edu.ksu.cis.bandera.jext.InExpr

Reimplemented from AbstractBanderaValueSwitch.

Definition at line 349 of file FGExpr.java.

void FGExpr::caseInstanceFieldRef InstanceFieldRef   v [inline]
 

Handles the case when the expression is an instance field reference expression.

Parameters:
v   the instance field reference expression.

Definition at line 369 of file FGExpr.java.

void FGExpr::caseInstanceOfExpr InstanceOfExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   an InstanceOfExpr value

Reimplemented from ExprSwitch.

Definition at line 385 of file FGExpr.java.

void FGExpr::caseIntConstant IntConstant   v [inline]
 

We do not handle integer values.

Parameters:
v   an IntConstant value

Definition at line 394 of file FGExpr.java.

void FGExpr::caseInterfaceInvokeExpr InterfaceInvokeExpr   v [inline, virtual]
 

Handles the case when the expression is an interface invoke expression.

Parameters:
v   the expression for the interface invocation

Reimplemented from ExprSwitch.

Definition at line 412 of file FGExpr.java.

void FGExpr::caseLeExpr LeExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   a LeExpr value

Reimplemented from ExprSwitch.

Definition at line 456 of file FGExpr.java.

void FGExpr::caseLengthExpr LengthExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   a LengthExpr value

Reimplemented from ExprSwitch.

Definition at line 465 of file FGExpr.java.

void FGExpr::caseLocal Local   v [inline]
 

Handles the case when the expression is an local variable reference expression.

Parameters:
v   the local variable reference expression.

Definition at line 475 of file FGExpr.java.

void FGExpr::caseLocalExpr LocalExpr   v [inline]
 

This method was created in VisualAge by robbyjo.

Parameters:
v   edu.ksu.cis.bandera.jext.LocalExpr

Reimplemented from AbstractBanderaValueSwitch.

Definition at line 488 of file FGExpr.java.

void FGExpr::caseLocationTestExpr LocationTestExpr   e [inline]
 

This method was created in VisualAge by robbyjo.

Parameters:
e   edu.ksu.cis.bandera.jext.LocationTestExpr

Reimplemented from AbstractBanderaValueSwitch.

Definition at line 495 of file FGExpr.java.

void FGExpr::caseLogicalAndExpr LogicalAndExpr   expr [inline]
 

This method was created in VisualAge by robbyjo.

Parameters:
expr   edu.ksu.cis.bandera.jext.LogicalAndExpr

Reimplemented from AbstractBanderaValueSwitch.

Definition at line 502 of file FGExpr.java.

void FGExpr::caseLogicalOrExpr LogicalOrExpr   expr [inline]
 

This method was created in VisualAge by robbyjo.

Parameters:
expr   edu.ksu.cis.bandera.jext.LogicalOrExpr

Reimplemented from AbstractBanderaValueSwitch.

Definition at line 510 of file FGExpr.java.

void FGExpr::caseLongConstant LongConstant   v [inline]
 

We do not handle long values.

Parameters:
v   a LongConstant value

Definition at line 518 of file FGExpr.java.

void FGExpr::caseLtExpr LtExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   a LtExpr value

Reimplemented from ExprSwitch.

Definition at line 527 of file FGExpr.java.

void FGExpr::caseMulExpr MulExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   a MulExpr value

Reimplemented from ExprSwitch.

Definition at line 536 of file FGExpr.java.

void FGExpr::caseNeExpr NeExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   a NeExpr value

Reimplemented from ExprSwitch.

Definition at line 545 of file FGExpr.java.

void FGExpr::caseNegExpr NegExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   a NegExpr value

Reimplemented from ExprSwitch.

Definition at line 554 of file FGExpr.java.

void FGExpr::caseNewArrayExpr NewArrayExpr   v [inline, virtual]
 

Handles the case when the expression is an new array object creation expression.

Parameters:
v   the array object creation expression.

Reimplemented from ExprSwitch.

Definition at line 564 of file FGExpr.java.

void FGExpr::caseNewExpr NewExpr   v [inline, virtual]
 

Handles the case when the expression is an new object creation expression.

Parameters:
v   the object creation expression.

Reimplemented from ExprSwitch.

Definition at line 634 of file FGExpr.java.

void FGExpr::caseNewMultiArrayExpr NewMultiArrayExpr   v [inline, virtual]
 

Handles the case when the expression is an new multidimensional array object creation expression.

Parameters:
v   the multidimensional array expression.

Reimplemented from ExprSwitch.

Definition at line 672 of file FGExpr.java.

void FGExpr::caseNullConstant NullConstant   v [inline]
 

Handles the case where the expression evaluates to a null object. This is necessary as reference types can evaluate to null values.

Parameters:
v   a NullConstant value

Definition at line 771 of file FGExpr.java.

void FGExpr::caseOrExpr OrExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   an OrExpr value

Reimplemented from ExprSwitch.

Definition at line 787 of file FGExpr.java.

void FGExpr::caseParameterRef ParameterRef   v [inline]
 

Handles the case when the expression is an parameter reference expression.

Parameters:
v   the parameter reference expression.

Definition at line 797 of file FGExpr.java.

void FGExpr::caseRemExpr RemExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   a RemExpr value

Reimplemented from ExprSwitch.

Definition at line 812 of file FGExpr.java.

void FGExpr::caseShlExpr ShlExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   a ShlExpr value

Reimplemented from ExprSwitch.

Definition at line 821 of file FGExpr.java.

void FGExpr::caseShrExpr ShrExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   a ShrExpr value

Reimplemented from ExprSwitch.

Definition at line 830 of file FGExpr.java.

void FGExpr::caseSpecialInvokeExpr SpecialInvokeExpr   v [inline, virtual]
 

Handles the case when the expression is an special invoke expression.

Parameters:
v   the expression for the special invocation.

Reimplemented from ExprSwitch.

Definition at line 839 of file FGExpr.java.

void FGExpr::caseStaticFieldRef StaticFieldRef   v [inline]
 

Handles the case when the expression is an static field reference expression.

Parameters:
v   the static field reference expression.

Definition at line 895 of file FGExpr.java.

void FGExpr::caseStaticInvokeExpr StaticInvokeExpr   v [inline, virtual]
 

Handles the case when the expression is an static invoke expression.

Parameters:
v   the expression for the invocation

Reimplemented from ExprSwitch.

Definition at line 921 of file FGExpr.java.

void FGExpr::caseStringConstant StringConstant   v [inline]
 

Handles the case where the expression evaluates to a string.

Parameters:
v   the string constant involved.

Definition at line 953 of file FGExpr.java.

void FGExpr::caseSubExpr SubExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   a SubExpr value

Reimplemented from ExprSwitch.

Definition at line 975 of file FGExpr.java.

void FGExpr::caseThisRef ThisRef   v [inline]
 

Handles the case when the expression is an "this" variable reference expression.

Parameters:
v   the "this" variable reference expression.

Definition at line 985 of file FGExpr.java.

void FGExpr::caseUshrExpr UshrExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   an UshrExpr value

Reimplemented from ExprSwitch.

Definition at line 999 of file FGExpr.java.

void FGExpr::caseVirtualInvokeExpr VirtualInvokeExpr   v [inline, virtual]
 

Handles the case when the expression is an virtual invoke expression.

Parameters:
v   the expression for the invocation

Reimplemented from ExprSwitch.

Definition at line 1008 of file FGExpr.java.

void FGExpr::caseXorExpr XorExpr   v [inline, virtual]
 

We donot handle expressions that do not evaluate to objects.

Parameters:
v   a XorExpr value

Reimplemented from ExprSwitch.

Definition at line 1047 of file FGExpr.java.

void FGExpr::defaultCase Object   v [inline, virtual]
 

Handles the cases which BOFA is not interested in.

Parameters:
v   an Object value

Reimplemented from ExprSwitch.

Definition at line 1056 of file FGExpr.java.

ClassTokenSimple FGExpr::getToken String   type [inline, static, protected]
 

Returns ClassTokenSimple object for the class, type. A New ClassToken is created if one doesnot exist of the given class and registered along with type. If a ClassToken already exists then it is returned.

Parameters:
type   the class for which the ClassToken is requested.
Returns:
the class token associated with the given type.

Definition at line 1068 of file FGExpr.java.

Value FGExpr::getValue String   base [inline, protected]
 

Returns the value representing the default initial values of type, base.

Parameters:
base   the type for which default value is requested.
Returns:
the default value for the given type.

Definition at line 1082 of file FGExpr.java.


Member Data Documentation

Map FGExpr::astNodes [private]
 

Maps AST nodes and flow graph nodes.

Definition at line 82 of file FGExpr.java.

Category FGExpr::cat [static, private]
 

Provides logging capabilities through log4j.

Definition at line 102 of file FGExpr.java.

Hashtable FGExpr::commonTokens = new Hashtable() [static, private]
 

Stores the common set of class tokens used during analysis. An example would be a class corresponding to null object.

Definition at line 71 of file FGExpr.java.

MethodVariant FGExpr::methodVariant [private]
 

Represents the method enclosing the expressions being processed by this object.

Definition at line 77 of file FGExpr.java.

Stmt FGExpr::stmt [private]
 

Represents the statement in which the expression being processed occurs. stmt is used to map the value to jimple statements

Definition at line 96 of file FGExpr.java.

Value FGExpr::value [private]
 

Represents the expression being processed. We shall use the the Jimple expression to denote the allocator site. This will be unique in terms of object involved and not the value of the object

Definition at line 89 of file FGExpr.java.


The documentation for this class was generated from the following file:
Generated at Thu Feb 7 07:11:04 2002 for Bandera by doxygen1.2.10 written by Dimitri van Heesch, © 1997-2001