@Override public LexNameSet caseASetMultipleBind(ASetMultipleBind node, FreeVarInfo info) throws AnalysisException { return node.getSet().apply(this, info); }
@Override public IProofObligationList caseASetMultipleBind(ASetMultipleBind node, IPOContextStack question) throws AnalysisException { try { return node.getSet().apply(this.pogExpVisitor, question); } catch (Exception e) { throw new POException(node, e.getMessage()); } }
@Override public LexNameList caseASetMultipleBind(ASetMultipleBind mb) throws AnalysisException { return af.createPExpAssistant().getOldNames(mb.getSet()); }
@Override public ValueList caseASetMultipleBind(ASetMultipleBind node, ObjectContext ctxt) throws AnalysisException { return af.createPExpAssistant().getValues(node.getSet(), ctxt); }
/** * Called by the {@link ASetMultipleBind} node from {@link ASetMultipleBind#apply(IAnalysis)}. * @param node the calling {@link ASetMultipleBind} node */ public void caseASetMultipleBind(ASetMultipleBind node) throws AnalysisException { _visitedNodes.add(node); inASetMultipleBind(node); { List<PPattern> copy = new ArrayList<PPattern>(node.getPlist()); for( PPattern e : copy) { if(!_visitedNodes.contains(e)) { e.apply(this); } } } if(node.getSet() != null && !_visitedNodes.contains(node.getSet())) { node.getSet().apply(this); } outASetMultipleBind(node); }
/** * Called by the {@link ASetMultipleBind} node from {@link ASetMultipleBind#apply(IAnalysis)}. * @param node the calling {@link ASetMultipleBind} node */ public void caseASetMultipleBind(ASetMultipleBind node, Q question) throws AnalysisException { _visitedNodes.add(node); inASetMultipleBind(node, question); { List<PPattern> copy = new ArrayList<PPattern>(node.getPlist()); for( PPattern e : copy) { if(!_visitedNodes.contains(e)) { e.apply(this, question); } } } if(node.getSet() != null && !_visitedNodes.contains(node.getSet())) { node.getSet().apply(this, question); } outASetMultipleBind(node, question); }
/** * Called by the {@link ASetMultipleBind} node from {@link ASetMultipleBind#apply(IPOFAnalysis)}. * @param node the calling {@link ASetMultipleBind} node */ public void caseASetMultipleBind(ASetMultipleBind node) throws AnalysisException { _visitedNodes.add(node); inASetMultipleBind(node); { List<PPattern> copy = new ArrayList<PPattern>(node.getPlist()); for( PPattern e : copy) { if(!_visitedNodes.contains(e)) { e.apply(this); } } } if(node.getSet() != null && !_visitedNodes.contains(node.getSet())) { node.getSet().apply(this); } outASetMultipleBind(node); }
/** * Called by the {@link ASetMultipleBind} node from {@link ASetMultipleBind#apply(IAnalysis)}. * @param node the calling {@link ASetMultipleBind} node */ public A caseASetMultipleBind(ASetMultipleBind node) throws AnalysisException { _visitedNodes.add(node); A retVal = createNewReturnValue(node); mergeReturns(retVal,inASetMultipleBind(node)); { List<PPattern> copy = new ArrayList<PPattern>(node.getPlist()); for( PPattern e : copy) { if(!_visitedNodes.contains(e)) { mergeReturns(retVal,e.apply(this)); } } } if(node.getSet() != null && !_visitedNodes.contains(node.getSet())) { mergeReturns(retVal,node.getSet().apply(this)); } mergeReturns(retVal,outASetMultipleBind(node)); return retVal; }
/** * Called by the {@link ASetMultipleBind} node from {@link ASetMultipleBind#apply(IAnalysis)}. * @param node the calling {@link ASetMultipleBind} node */ public A caseASetMultipleBind(ASetMultipleBind node, Q question) throws AnalysisException { _visitedNodes.add(node); A retVal = createNewReturnValue(node, question); mergeReturns(retVal,inASetMultipleBind(node, question)); { List<PPattern> copy = new ArrayList<PPattern>(node.getPlist()); for( PPattern e : copy) { if(!_visitedNodes.contains(e)) { mergeReturns(retVal,e.apply(this, question)); } } } if(node.getSet() != null && !_visitedNodes.contains(node.getSet())) { mergeReturns(retVal,node.getSet().apply(this, question)); } mergeReturns(retVal,outASetMultipleBind(node, question)); return retVal; }
PType type = node.getSet().apply(THIS, question); PType result = AstFactory.newAUnknownType(node.getLocation()); TypeCheckerErrors.report(3197, "Expression matching set bind is not a set", node.getSet().getLocation(), node.getSet()); TypeCheckerErrors.detail("Actual type", type); } else TypeCheckerErrors.report(3264, "At least one bind cannot match set", node.getSet().getLocation(), node.getSet()); TypeCheckerErrors.detail2("Binds", ptype, "Set of", st); TypeCheckerErrors.warning(5009, "Empty set used in bind", node.getSet().getLocation(), node.getSet());
@Override public SMultipleBindIR caseASetMultipleBind(ASetMultipleBind node, IRInfo question) throws AnalysisException { List<PPattern> patterns = node.getPlist(); PExp set = node.getSet(); LinkedList<SPatternIR> patternsCg = new LinkedList<SPatternIR>(); for (PPattern pattern : patterns) { SPatternIR patternTempCg = pattern.apply(question.getPatternVisitor(), question); if (patternTempCg != null) { patternsCg.add(patternTempCg); } else { return null; } } SExpIR setCg = set.apply(question.getExpVisitor(), question); ASetMultipleBindIR multipleSetBind = new ASetMultipleBindIR(); multipleSetBind.setPatterns(patternsCg); multipleSetBind.setSet(setCg); return multipleSetBind; }
ValueSet vs = node.getSet().apply(VdmRuntime.getExpressionEvaluator(), state.ctxt).setValue(state.ctxt); vs.sort();