inAMultiBindListDefinition(node, question); if(node.getName() != null ) node.getName().apply(this, question); if(node.getClassDefinition() != null && !_visitedNodes.contains(node.getClassDefinition())) node.getClassDefinition().apply(this, question); if(node.getAccess() != null && !_visitedNodes.contains(node.getAccess())) node.getAccess().apply(this, question); if(node.getType() != null && !_visitedNodes.contains(node.getType())) node.getType().apply(this, question); List<PMultipleBind> copy = new ArrayList<PMultipleBind>(node.getBindings()); for( PMultipleBind e : copy) List<PDefinition> copy = new ArrayList<PDefinition>(node.getDefs()); for( PDefinition e : copy)
@Override public PType caseAMultiBindListDefinition(AMultiBindListDefinition node, TypeCheckInfo question) throws AnalysisException { if (node.getType() != null) { question.assistantFactory.getTypeComparator().checkComposeTypes(node.getType(), question.env, false); } List<PDefinition> defs = new Vector<PDefinition>(); for (PMultipleBind mb : node.getBindings()) { PType type = mb.apply(THIS, question); defs.addAll(question.assistantFactory.createPMultipleBindAssistant().getDefinitions(mb, type, question)); } question.assistantFactory.createPDefinitionListAssistant().typeCheck(defs, THIS, question); node.setDefs(defs); return null; }
/** * Essentially this.toString().equals(o.toString()). **/ @Override public boolean equals(Object o) { if (o != null && o instanceof AMultiBindListDefinition) { return toString().equals(o.toString()); } return false; }
/** * Creates a new complete constructor {@code AMultiBindListDefinition} node with the given nodes as children. * @deprecated This method should not be used, use AstFactory instead. * The basic child nodes are removed from their previous parents. * @param bindings_ the {@link GraphNodeList} <b>graph</a> node for the {@code bindings} child of this {@link AMultiBindListDefinition} node. * <i>The parent of this {@code bindings } will not be changed by adding it to this node.</i> * @param defs_ the {@link GraphNodeList} <b>graph</a> node for the {@code defs} child of this {@link AMultiBindListDefinition} node. * <i>The parent of this {@code defs } will not be changed by adding it to this node.</i> */ public AMultiBindListDefinition(ILexLocation location_, ILexNameToken name_, NameScope nameScope_, Boolean used_, SClassDefinition classDefinition_, AAccessSpecifierAccessSpecifier access_, PType type_, Pass pass_, List<? extends PMultipleBind> bindings_, List<? extends PDefinition> defs_) { super(location_,name_,nameScope_,used_,classDefinition_,access_,type_,pass_); this.setBindings(bindings_); this.setDefs(defs_); }
@Override public PType caseAMultiBindListDefinition(AMultiBindListDefinition node) throws AnalysisException { PTypeList types = new PTypeList(); for (PDefinition definition : node.getDefs()) { types.add(definition.getType()); } AUnionType result = AstFactory.newAUnionType(node.getLocation(), types); return result; }
@Override public void caseALetBeStExp(ALetBeStExp node) throws AnalysisException { if (!proceed(node)) { return; } node.getDef().apply(this); DefinitionInfo defInfo = new DefinitionInfo(node.getDef().getDefs(), af); openScope(defInfo, node); if (node.getSuchThat() != null) { node.getSuchThat().apply(this); } node.getValue().apply(this); endScope(defInfo); }
/** * Called by the {@link ALetBeStBindingTraceDefinition} node from {@link ALetBeStBindingTraceDefinition#apply(IAnalysis)}. * @param node the calling {@link ALetBeStBindingTraceDefinition} node */ public void caseALetBeStBindingTraceDefinition(ALetBeStBindingTraceDefinition node, Q question) throws AnalysisException { _visitedNodes.add(node); inALetBeStBindingTraceDefinition(node, question); if(node.getBind() != null && !_visitedNodes.contains(node.getBind())) { node.getBind().apply(this, question); } if(node.getStexp() != null && !_visitedNodes.contains(node.getStexp())) { node.getStexp().apply(this, question); } if(node.getBody() != null && !_visitedNodes.contains(node.getBody())) { node.getBody().apply(this, question); } if(node.getDef() != null && !_visitedNodes.contains(node.getDef())) { node.getDef().apply(this, question); } outALetBeStBindingTraceDefinition(node, question); }
for (PMultipleBind mb : term.getDef().getBindings())
@Override public void caseALetBeStStm(ALetBeStStm node) throws AnalysisException { if (!proceed(node)) { return; } node.getDef().apply(this); DefinitionInfo defInfo = new DefinitionInfo(node.getDef().getDefs(), af); openScope(defInfo, node); if (node.getSuchThat() != null) { node.getSuchThat().apply(this); } node.getStatement().apply(this); endScope(defInfo); }
/** * Called by the {@link ALetBeStBindingTraceDefinition} node from {@link ALetBeStBindingTraceDefinition#apply(IAnalysis)}. * @param node the calling {@link ALetBeStBindingTraceDefinition} node */ public void caseALetBeStBindingTraceDefinition(ALetBeStBindingTraceDefinition node) throws AnalysisException { _visitedNodes.add(node); inALetBeStBindingTraceDefinition(node); if(node.getBind() != null && !_visitedNodes.contains(node.getBind())) { node.getBind().apply(this); } if(node.getStexp() != null && !_visitedNodes.contains(node.getStexp())) { node.getStexp().apply(this); } if(node.getBody() != null && !_visitedNodes.contains(node.getBody())) { node.getBody().apply(this); } if(node.getDef() != null && !_visitedNodes.contains(node.getDef())) { node.getDef().apply(this); } outALetBeStBindingTraceDefinition(node); }
for (PMultipleBind mb : binding.getBindings())
inAMultiBindListDefinition(node); if(node.getName() != null ) node.getName().apply(this); if(node.getClassDefinition() != null && !_visitedNodes.contains(node.getClassDefinition())) node.getClassDefinition().apply(this); if(node.getAccess() != null && !_visitedNodes.contains(node.getAccess())) node.getAccess().apply(this); if(node.getType() != null && !_visitedNodes.contains(node.getType())) node.getType().apply(this); List<PMultipleBind> copy = new ArrayList<PMultipleBind>(node.getBindings()); for( PMultipleBind e : copy) List<PDefinition> copy = new ArrayList<PDefinition>(node.getDefs()); for( PDefinition e : copy)
@Override public void caseALetBeStBindingTraceDefinition( ALetBeStBindingTraceDefinition node) throws AnalysisException { if (!proceed(node)) { return; } node.getDef().apply(this); DefinitionInfo defInfo = new DefinitionInfo(node.getDef().getDefs(), af); openScope(defInfo, node); if (node.getStexp() != null) { node.getStexp().apply(this); } node.getBody().apply(this); endScope(defInfo); }
/** * Called by the {@link ALetBeStBindingTraceDefinition} node from {@link ALetBeStBindingTraceDefinition#apply(IPOFAnalysis)}. * @param node the calling {@link ALetBeStBindingTraceDefinition} node */ public void caseALetBeStBindingTraceDefinition(ALetBeStBindingTraceDefinition node) throws AnalysisException { _visitedNodes.add(node); inALetBeStBindingTraceDefinition(node); if(node.getBind() != null && !_visitedNodes.contains(node.getBind())) { node.getBind().apply(this); } if(node.getStexp() != null && !_visitedNodes.contains(node.getStexp())) { node.getStexp().apply(this); } if(node.getBody() != null && !_visitedNodes.contains(node.getBody())) { node.getBody().apply(this); } if(node.getDef() != null && !_visitedNodes.contains(node.getDef())) { node.getDef().apply(this); } outALetBeStBindingTraceDefinition(node); }
@Override public PDefinition caseAMultiBindListDefinition( AMultiBindListDefinition node, Newquestion question) throws AnalysisException { if (node.getDefs() != null) { PDefinition def = af.createPDefinitionListAssistant().findName(node.getDefs(), question.sought, question.scope); if (def != null) { return def; } } return null; }
@Override public Boolean caseAMultiBindListDefinition(AMultiBindListDefinition node, Object other) throws AnalysisException { if (other instanceof AMultiBindListDefinition) { return node.toString().equals(other.toString()); } return false; }
inAMultiBindListDefinition(node); if(node.getName() != null ) node.getName().apply(this); if(node.getClassDefinition() != null && !_visitedNodes.contains(node.getClassDefinition())) node.getClassDefinition().apply(this); if(node.getAccess() != null && !_visitedNodes.contains(node.getAccess())) node.getAccess().apply(this); if(node.getType() != null && !_visitedNodes.contains(node.getType())) node.getType().apply(this); List<PMultipleBind> copy = new ArrayList<PMultipleBind>(node.getBindings()); for( PMultipleBind e : copy) List<PDefinition> copy = new ArrayList<PDefinition>(node.getDefs()); for( PDefinition e : copy)
/** * Called by the {@link ALetBeStExp} node from {@link ALetBeStExp#apply(IAnalysis)}. * @param node the calling {@link ALetBeStExp} node */ public void caseALetBeStExp(ALetBeStExp node, Q question) throws AnalysisException { _visitedNodes.add(node); inALetBeStExp(node, question); if(node.getType() != null && !_visitedNodes.contains(node.getType())) { node.getType().apply(this, question); } if(node.getBind() != null && !_visitedNodes.contains(node.getBind())) { node.getBind().apply(this, question); } if(node.getSuchThat() != null && !_visitedNodes.contains(node.getSuchThat())) { node.getSuchThat().apply(this, question); } if(node.getValue() != null && !_visitedNodes.contains(node.getValue())) { node.getValue().apply(this, question); } if(node.getDef() != null && !_visitedNodes.contains(node.getDef())) { node.getDef().apply(this, question); } outALetBeStExp(node, question); }