/**
   * Método que lleva el control sobre el recorrido para el caso especial del If
   *
   * @param tmp Vertice Acual <code>Vertex<StructV></code>
   */
  private boolean ifCase(Vertex<StructV> tmp) {

    if (tmp.getValue().getSprite() instanceof SpriteIf) {
      if (ifList.size() != 0) {
        Sprite currentIf = ifList.get(ifList.size() - 1).getValue().getSprite();

        if (!currentIf.equals(tmp.getValue().getSprite())) {
          ifList.add(tmp);
        }
      } else {
        ifList.add(tmp);
      }
    }

    return false;
  }
  /**
   * M&eacute;todo que lleva el control sobre el recorrido para el caso especial del For
   *
   * @param tmp Vertice Acual <code>Vertex<StructV></code>
   */
  private boolean forCase(Vertex<StructV> tmp) {

    if (tmp.getValue().getSprite() instanceof SpriteFor) {
      if (forList.size() != 0) {
        Sprite currentFor = forList.get(forList.size() - 1);

        if (!currentFor.equals(tmp.getValue().getSprite())) {
          forList.add(tmp.getValue().getSprite());
        } else {
          forList.remove(forList.size() - 1);
          return true;
        }
      } else {
        forList.add(tmp.getValue().getSprite());
      }
    }

    return false;
  }
  /**
   * M&eacute;todo que lleva el control sobre el recorrido para el caso especial del While
   *
   * @param tmp Vertice Acual <code>Vertex<StructV></code>
   */
  private boolean whileCase(Vertex<StructV> tmp) {

    if (tmp.getValue().getSprite() instanceof SpriteWhile) {
      if (whileList.size() != 0) {
        Sprite currentWhile = whileList.get(whileList.size() - 1);

        if (!currentWhile.equals(tmp.getValue().getSprite())) {
          whileList.add(tmp.getValue().getSprite());
        } else {
          whileList.remove(whileList.size() - 1);
          return true;
        }
      } else {
        whileList.add(tmp.getValue().getSprite());
      }
    }

    return false;
  }