Ejemplo n.º 1
0
  @Override
  public SStmCG caseAIfStm(AIfStm node, IRInfo question) throws AnalysisException {
    SExpCG ifExp = node.getIfExp().apply(question.getExpVisitor(), question);
    SStmCG thenStm = node.getThenStm().apply(question.getStmVisitor(), question);

    AIfStmCG ifStm = new AIfStmCG();

    ifStm.setIfExp(ifExp);
    ifStm.setThenStm(thenStm);

    LinkedList<AElseIfStm> elseIfs = node.getElseIf();

    for (AElseIfStm stm : elseIfs) {
      ifExp = stm.getElseIf().apply(question.getExpVisitor(), question);
      thenStm = stm.getThenStm().apply(question.getStmVisitor(), question);

      AElseIfStmCG elseIfStm = new AElseIfStmCG();
      elseIfStm.setElseIf(ifExp);
      elseIfStm.setThenStm(thenStm);

      ifStm.getElseIf().add(elseIfStm);
    }

    if (node.getElseStm() != null) {
      SStmCG elseStm = node.getElseStm().apply(question.getStmVisitor(), question);
      ifStm.setElseStm(elseStm);
    }

    return ifStm;
  }