code: private ScopeBlock findScopeBlockWithTarget(ScopeBlock sb, int start, int target) {
          ScopeBlock parentBlock = null;
          int finishLocation = sb.getFinish();
          if ((sb.getStart() < start) && (finishLocation >= start) && ((finishLocation <= target) || (sb.isGoto() && !sb.isLoop()))) {
              parentBlock = sb;
          }
  
          List<ScopeBlock> children = sb.getChildren();
          if (children != null) {
              for (ScopeBlock child : children) {
                  ScopeBlock targetBlock = findScopeBlockWithTarget(child, start, target);
                  if (targetBlock != null) {
                      return targetBlock;
                  }
              }
          }
  
          return parentBlock;
      }
docs: returns an existing scope block that has the same target as the one looked for
  
  @param sb
  the scope block to start with
  @param start
  the current pc
  @param target
  the target to look for
  
  @return the scope block found or null