edu.cmu.cs.crystal.tac
Class SimpleInstructionVisitor

java.lang.Object
  extended by edu.cmu.cs.crystal.AbstractCrystalMethodAnalysis
      extended by edu.cmu.cs.crystal.tac.SimpleInstructionVisitor
All Implemented Interfaces:
ICrystalAnalysis

public class SimpleInstructionVisitor
extends AbstractCrystalMethodAnalysis

Extend this class to visit every 3-address code instruction in a method exactly once. This class extends AbstractCrystalMethodAnalysis to make it easier to use as a standalone analysis. Use the method doAccept(MethodDeclaration) to visit a particular method explicitly.

Author:
Kevin Bierhoff

Field Summary
 AnalysisDirection direction
           
 
Constructor Summary
SimpleInstructionVisitor()
          Default constructor.
SimpleInstructionVisitor(AnalysisDirection direction)
          Construct a visitor with the given direction.
 
Method Summary
 void analyzeMethod(MethodDeclaration d)
          Invoked for each method or constructor in the class.
 void doAccept(MethodDeclaration d)
           
 void visit(ArrayInitInstruction instr)
           
 void visit(BinaryOperation binop)
           
 void visit(CastInstruction instr)
           
 void visit(ConstructorCallInstruction instr)
           
 void visit(CopyInstruction instr)
           
 void visit(DotClassInstruction instr)
           
 void visit(EnhancedForConditionInstruction instr)
           
 void visit(InstanceofInstruction instr)
           
 void visit(LoadArrayInstruction instr)
           
 void visit(LoadFieldInstruction instr)
           
 void visit(LoadLiteralInstruction instr)
           
 void visit(MethodCallInstruction instr)
           
 void visit(NewArrayInstruction instr)
           
 void visit(NewObjectInstruction instr)
           
 void visit(ReturnInstruction instr)
           
 void visit(SourceVariableDeclaration instr)
           
 void visit(SourceVariableReadInstruction instr)
           
 void visit(StoreArrayInstruction instr)
           
 void visit(StoreFieldInstruction instr)
           
 void visit(UnaryOperation unop)
           
 
Methods inherited from class edu.cmu.cs.crystal.AbstractCrystalMethodAnalysis
afterAllCompilationUnits, afterAllMethods, beforeAllCompilationUnits, beforeAllMethods, getInput, getName, getReporter, runAnalysis
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

direction

public final AnalysisDirection direction
Constructor Detail

SimpleInstructionVisitor

public SimpleInstructionVisitor()
Default constructor.


SimpleInstructionVisitor

public SimpleInstructionVisitor(AnalysisDirection direction)
Construct a visitor with the given direction.

Parameters:
direction - To specify whether we want to visit from beginning to end of the method, or from end to beginning.
Method Detail

analyzeMethod

public void analyzeMethod(MethodDeclaration d)
Description copied from class: AbstractCrystalMethodAnalysis
Invoked for each method or constructor in the class.

Specified by:
analyzeMethod in class AbstractCrystalMethodAnalysis

doAccept

public final void doAccept(MethodDeclaration d)

visit

public void visit(ArrayInitInstruction instr)
Parameters:
instr -

visit

public void visit(UnaryOperation unop)
Parameters:
unop -

visit

public void visit(SourceVariableReadInstruction instr)
Parameters:
instr -

visit

public void visit(SourceVariableDeclaration instr)
Parameters:
instr -

visit

public void visit(StoreFieldInstruction instr)
Parameters:
instr -

visit

public void visit(StoreArrayInstruction instr)
Parameters:
instr -

visit

public void visit(ReturnInstruction instr)
Parameters:
instr -

visit

public void visit(NewObjectInstruction instr)
Parameters:
instr -

visit

public void visit(NewArrayInstruction instr)
Parameters:
instr -

visit

public void visit(MethodCallInstruction instr)
Parameters:
instr -

visit

public void visit(LoadFieldInstruction instr)
Parameters:
instr -

visit

public void visit(LoadArrayInstruction instr)
Parameters:
instr -

visit

public void visit(LoadLiteralInstruction instr)
Parameters:
instr -

visit

public void visit(InstanceofInstruction instr)
Parameters:
instr -

visit

public void visit(CopyInstruction instr)
Parameters:
instr -

visit

public void visit(ConstructorCallInstruction instr)
Parameters:
instr -

visit

public void visit(DotClassInstruction instr)
Parameters:
instr -

visit

public void visit(CastInstruction instr)
Parameters:
instr -

visit

public void visit(BinaryOperation binop)
Parameters:
binop -

visit

public void visit(EnhancedForConditionInstruction instr)
Parameters:
instr -