/** TODO: return set of all pending calls in case of InterproceduralSequentialComposition */ private String getCalledProcedure(int i) { if (super.getTrace().isCallPosition(i)) { final ICallAction call = (ICallAction) super.getTrace().getSymbolAt(i); return call.getSucceedingProcedure(); } else if (super.getTrace().isPendingReturn(i)) { final IReturnAction ret = (IReturnAction) super.getTrace().getSymbolAt(i); return ret.getPrecedingProcedure(); } else { throw new UnsupportedOperationException("only available for call and pending return"); } }
@Override protected UnmodifiableTransFormula getFormulaFromValidNonCallPos(int i) { if (super.getTrace().isReturnPosition(i)) { final IReturnAction ret = (IReturnAction) super.getTrace().getSymbolAt(i); return ret.getAssignmentOfReturn(); } else { final IInternalAction cb = (IInternalAction) super.getTrace().getSymbolAt(i); if (mWithBranchEncoders) { return ((CodeBlock) cb).getTransitionFormulaWithBranchEncoders(); } else { return cb.getTransformula(); } } }