@Override public List<PDefinition> caseAImplicitFunctionDefinition( AImplicitFunctionDefinition node) throws AnalysisException { List<PDefinition> defs = new Vector<PDefinition>(); defs.add(node); if (node.getPredef() != null) { defs.add(node.getPredef()); } if (node.getPostdef() != null) { defs.add(node.getPostdef()); } if (node.getMeasureDef() != null && node.getMeasureName().getName().startsWith("measure_")) { defs.add(node.getMeasureDef()); } return defs; }
if (impdef.getPostdef() != null) postfv = af.createAExplicitFunctionDefinitionAssistant().getPolymorphicValue(af, impdef.getPostdef(), actualTypes); } else
@Override public PExp caseAImplicitFunctionDefinition( AImplicitFunctionDefinition def, Integer lineno) throws AnalysisException { if (def.getPredef() != null) { PExp found = def.getPredef().apply(THIS, lineno); if (found != null) { return found; } } if (def.getPostdef() != null) { PExp found = def.getPostdef().apply(THIS, lineno); if (found != null) { return found; } } return def.getBody() == null ? null : af.createPExpAssistant().findExpression(def.getBody(), lineno); }
if (node.getPostdef() != null) names.addAll(node.getPostdef().apply(this, local));
: new FunctionValue(def.getPredef(), null, null, free); FunctionValue postfunc = def.getPostdef() == null ? null : new FunctionValue(def.getPostdef(), null, null, free); if (def.getPostdef() != null) nvl.add(new NameValuePair(def.getPostdef().getName(), postfunc)); postfunc.uninstantiated = !def.getTypeParams().isEmpty();
@Override public PDefinition caseAImplicitFunctionDefinition( AImplicitFunctionDefinition node, Newquestion question) throws AnalysisException { if (af.createPDefinitionAssistant().findNameBaseCase(node, question.sought, question.scope) != null) { return node; } PDefinition predef = node.getPredef(); if (predef != null && predef.apply(this, question) != null)// PDefinitionAssistantTC.findName(predef, sought, // scope) != null) { return predef; } PDefinition postdef = node.getPostdef(); if (postdef != null && postdef.apply(this, question) != null) // PDefinitionAssistantTC.findName(postdef, // sought, scope) != null) { return postdef; } PDefinition measureDef = node.getMeasureDef(); if (measureDef != null && measureDef.apply(this, question) != null) { return measureDef; } return null; }
if(node.getPostdef() != null && !_visitedNodes.contains(node.getPostdef())) node.getPostdef().apply(this);
if(node.getPostdef() != null && !_visitedNodes.contains(node.getPostdef())) node.getPostdef().apply(this, question);
if(node.getPostdef() != null && !_visitedNodes.contains(node.getPostdef())) node.getPostdef().apply(this);
if(node.getPostdef() != null && !_visitedNodes.contains(node.getPostdef())) mergeReturns(retVal,node.getPostdef().apply(this, question));
if(node.getPostdef() != null && !_visitedNodes.contains(node.getPostdef())) mergeReturns(retVal,node.getPostdef().apply(this));
AApplyExp postApply = getApplyExp(getVarExp(func.getPostdef().getName(), func.getPostdef()), postArglist); postApply.setType(new ABooleanBasicType()); postApply.getRoot().setType(func.getPostdef().getType().clone()); existsExp.setPredicate(postApply);
@Override public void caseAImplicitFunctionDefinition( AImplicitFunctionDefinition node, Environment question) throws AnalysisException { if (node.getPrecondition() != null) { node.setPredef(af.createAImplicitFunctionDefinitionAssistant().getPreDefinition(node)); af.createPDefinitionAssistant().markUsed(node.getPredef()); // af.createPDefinitionAssistant().markUsed(node.getPredef()); } else { node.setPredef(null); } if (node.getPostcondition() != null) { node.setPostdef(af.createAImplicitFunctionDefinitionAssistant().getPostDefinition(node)); af.createPDefinitionAssistant().markUsed(node.getPostdef()); } else { node.setPostdef(null); } }
PExp pred = generatePredicate(func.getPredef(), func.getPostdef(), cloneListPExp(params), body); stitch = pred; valuetree.setPredicate(ctxt.getPredWithContext(pred));
func.setPreCond(preCondCg); AExplicitFunctionDefinition postCond = node.getPostdef(); SDeclIR postCondCg = postCond != null ? postCond.apply(question.getDeclVisitor(), question) : null;
node.getPostdef().apply(this, question);
if (node.getPostdef() != null) post.setEnclosingDefinition(node); post.setFunctional(true); b = node.getPostdef().getBody().apply(THIS, new TypeCheckInfo(question.assistantFactory, post, NameScope.NAMES)); post.unusedCheck(); } else b = node.getPostdef().getBody().apply(THIS, new TypeCheckInfo(question.assistantFactory, local, NameScope.NAMES));