final StackElement startStackElement) throws EnhanceException {
final Deque<OpcodeNode> toVisitQue = new LinkedList<OpcodeNode>();
final Deque<StackElement> stackElementQue = new LinkedList<StackElement>();
final Set<OpcodeNode> visited = new HashSet<OpcodeNode>();
OpcodeNode currentOpcodeNode = startOpcodeNode;
StackElement stackElement = startStackElement;
visited.add(currentOpcodeNode);
while (currentOpcodeNode != null) {
listener.currentOpcode(currentOpcodeNode);
currentOpcodeNode.setBeforeExecutionStackElement(stackElement);
stackElement = currentOpcodeNode.interprete();