edu.cmu.cs.crystal.tac
Class SimpleInstructionVisitor
java.lang.Object
edu.cmu.cs.crystal.AbstractCrystalMethodAnalysis
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
direction
public final AnalysisDirection direction
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.
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
-