@Override public void inAIfStmIR(AIfStmIR node) throws AnalysisException { ABoolBasicTypeIR expectedType = new ABoolBasicTypeIR(); correctTypes(node.getIfExp(), expectedType); LinkedList<AElseIfStmIR> elseIfs = node.getElseIf(); for (AElseIfStmIR currentElseIf : elseIfs) { correctTypes(currentElseIf.getElseIf(), expectedType); } }
AIfStmIR enclosingIf = elseIf.getAncestor(AIfStmIR.class); LinkedList<AElseIfStmIR> elseIfList = new LinkedList<AElseIfStmIR>(enclosingIf.getElseIf()); for (int i = 0; i < elseIfList.size(); i++) if (elseIf == currentElseIf) enclosingIf.getElseIf().remove(currentElseIf); AIfStmIR elsePart = new AIfStmIR(); elsePart.setIfExp(currentElseIf.getElseIf()); enclosingIf.getElseIf().remove(elseIfList.get(j)); elsePart.getElseIf().add(elseIfList.get(j));
List<AElseIfStmIR> copy = new ArrayList<AElseIfStmIR>(node.getElseIf()); for( AElseIfStmIR e : copy)
List<AElseIfStmIR> copy = new ArrayList<AElseIfStmIR>(node.getElseIf()); for( AElseIfStmIR e : copy)
List<AElseIfStmIR> copy = new ArrayList<AElseIfStmIR>(node.getElseIf()); for( AElseIfStmIR e : copy)
List<AElseIfStmIR> copy = new ArrayList<AElseIfStmIR>(node.getElseIf()); for( AElseIfStmIR e : copy)
List<AElseIfStmIR> copy = new ArrayList<AElseIfStmIR>(node.getElseIf()); for( AElseIfStmIR e : copy)
elseIf.setThenStm(castFieldObj); ifChecks.getElseIf().add(elseIf);
@Override public SStmIR caseAIfStm(AIfStm node, IRInfo question) throws AnalysisException { SExpIR ifExp = node.getIfExp().apply(question.getExpVisitor(), question); SStmIR thenStm = node.getThenStm().apply(question.getStmVisitor(), question); AIfStmIR ifStm = new AIfStmIR(); 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); AElseIfStmIR elseIfStm = new AElseIfStmIR(); elseIfStm.setElseIf(ifExp); elseIfStm.setThenStm(thenStm); ifStm.getElseIf().add(elseIfStm); } if (node.getElseStm() != null) { SStmIR elseStm = node.getElseStm().apply(question.getStmVisitor(), question); ifStm.setElseStm(elseStm); } return ifStm; }
elseIf.setThenStm(assignment); ifChecks.getElseIf().add(elseIf);
newBranch.setThenStm(ret.clone()); bodyif.getElseIf().add(newBranch);
elseIf.setThenStm(callCopy); ifChecks.getElseIf().add(elseIf);