public PatternMatcher execute() throws DataflowAnalysisException {
  workList.addLast(cfg.getEntry());
  while (!workList.isEmpty()) {
    BasicBlock basicBlock=workList.removeLast();
    visitedBlockMap.put(basicBlock,basicBlock);
    BasicBlock.InstructionIterator i=basicBlock.instructionIterator();
    while (i.hasNext()) {
      attemptMatch(basicBlock,i.duplicate());
      i.next();
    }
    Iterator<BasicBlock> succIterator=cfg.successorIterator(basicBlock);
    while (succIterator.hasNext()) {
      BasicBlock succ=succIterator.next();
      if (visitedBlockMap.get(succ) == null) {
        workList.addLast(succ);
      }
    }
  }
  return this;
}

public PatternMatcher execute ( ) throws DataflowAnalysisException { workList . addLast ( cfg . getEntry ( ) ) ; while ( ! workList . isEmpty ( ) ) { BasicBlock basicBlock = workList . removeLast ( ) ; visitedBlockMap . put ( basicBlock , basicBlock ) ; BasicBlock . InstructionIterator i = basicBlock . instructionIterator ( ) ; while ( i . hasNext ( ) ) { attemptMatch ( basicBlock , i . duplicate ( ) ) ; i . next ( ) ; } Iterator < BasicBlock > succIterator = cfg . successorIterator ( basicBlock ) ; while ( succIterator . hasNext ( ) ) { BasicBlock succ = succIterator . next ( ) ; if ( visitedBlockMap . get ( succ ) == null ) { workList . addLast ( succ ) ; } } } return this ; }
search for examples of the bytecodepattern .
