public List<PDefinition> getDefinitions(AFromModuleImports ifm, AModuleModules from) { List<PDefinition> defs = new Vector<PDefinition>(); for (List<PImport> ofType : ifm.getSignatures()) { for (PImport imp : ofType) { defs.addAll(getDefinitions(imp, from)); } } return defs; }
/** * Returns a deep clone of this {@link AFromModuleImports} node. * @return a deep clone of this {@link AFromModuleImports} node */ public AFromModuleImports clone() { return new AFromModuleImports( cloneNode(_name), cloneListList(_signatures) ); }
/** * Creates a new complete constructor {@code AFromModuleImports} 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 name_ the {@link ILexIdentifierToken} node for the {@code name} child of this {@link AFromModuleImports} node * @param signatures_ the {@link NodeListList} node for the {@code signatures} child of this {@link AFromModuleImports} node */ public AFromModuleImports(ILexIdentifierToken name_, Collection<? extends List<PImport>> signatures_) { super(); this.setName(name_); this.setSignatures(signatures_); }
/** * Called by the {@link AFromModuleImports} node from {@link AFromModuleImports#apply(IAnalysis)}. * @param node the calling {@link AFromModuleImports} node */ public void caseAFromModuleImports(AFromModuleImports node) throws AnalysisException { _visitedNodes.add(node); inAFromModuleImports(node); if(node.getName() != null ) { node.getName().apply(this); } { List<List<PImport>> copy = new ArrayList<List<PImport>>(node.getSignatures()); for( List<PImport> list : copy) { for( PImport e : list) { if(!_visitedNodes.contains(e)) { e.apply(this); } } } } outAFromModuleImports(node); }
/** * Called by the {@link AModuleImports} node from {@link AModuleImports#apply(IAnalysis)}. * @param node the calling {@link AModuleImports} node */ public void caseAModuleImports(AModuleImports node) throws AnalysisException { _visitedNodes.add(node); inAModuleImports(node); if(node.getName() != null ) { node.getName().apply(this); } { List<AFromModuleImports> copy = new ArrayList<AFromModuleImports>(node.getImports()); for( AFromModuleImports e : copy) { if(!_visitedNodes.contains(e)) { e.apply(this); } } } outAModuleImports(node); }
public List<PDefinition> getDefinitions(AModuleImports imports, List<AModuleModules> allModules) { List<PDefinition> defs = new Vector<PDefinition>(); for (AFromModuleImports ifm : imports.getImports()) { if (ifm.getName().getName().equals(imports.getName())) { TypeCheckerErrors.report(3195, "Cannot import from self", ifm.getName().getLocation(), ifm); continue; } AModuleModules from = af.createAModuleModulesAssistant().findModule(allModules, ifm.getName()); if (from == null) { TypeCheckerErrors.report(3196, "No such module as " + ifm.getName(), ifm.getName().getLocation(), ifm); } else { defs.addAll(getDefinitions(ifm, from)); } } return defs; }
public static AFromModuleImports newAFromModuleImports( ILexIdentifierToken name, List<List<PImport>> signatures) { return new AFromModuleImports(name, signatures); }
/** * Called by the {@link AFromModuleImports} node from {@link AFromModuleImports#apply(IAnalysis)}. * @param node the calling {@link AFromModuleImports} node */ public void caseAFromModuleImports(AFromModuleImports node, Q question) throws AnalysisException { _visitedNodes.add(node); inAFromModuleImports(node, question); if(node.getName() != null ) { node.getName().apply(this, question); } { List<List<PImport>> copy = new ArrayList<List<PImport>>(node.getSignatures()); for( List<PImport> list : copy) { for( PImport e : list) { if(!_visitedNodes.contains(e)) { e.apply(this, question); } } } } outAFromModuleImports(node, question); }
/** * Called by the {@link AModuleImports} node from {@link AModuleImports#apply(IAnalysis)}. * @param node the calling {@link AModuleImports} node */ public void caseAModuleImports(AModuleImports node, Q question) throws AnalysisException { _visitedNodes.add(node); inAModuleImports(node, question); if(node.getName() != null ) { node.getName().apply(this, question); } { List<AFromModuleImports> copy = new ArrayList<AFromModuleImports>(node.getImports()); for( AFromModuleImports e : copy) { if(!_visitedNodes.contains(e)) { e.apply(this, question); } } } outAModuleImports(node, question); }
/** * Called by the {@link AFromModuleImports} node from {@link AFromModuleImports#apply(IPOFAnalysis)}. * @param node the calling {@link AFromModuleImports} node */ public void caseAFromModuleImports(AFromModuleImports node) throws AnalysisException { _visitedNodes.add(node); inAFromModuleImports(node); if(node.getName() != null ) { node.getName().apply(this); } { List<List<PImport>> copy = new ArrayList<List<PImport>>(node.getSignatures()); for( List<PImport> list : copy) { for( PImport e : list) { if(!_visitedNodes.contains(e)) { e.apply(this); } } } } outAFromModuleImports(node); }
/** * Called by the {@link AModuleImports} node from {@link AModuleImports#apply(IPOFAnalysis)}. * @param node the calling {@link AModuleImports} node */ public void caseAModuleImports(AModuleImports node) throws AnalysisException { _visitedNodes.add(node); inAModuleImports(node); if(node.getName() != null ) { node.getName().apply(this); } { List<AFromModuleImports> copy = new ArrayList<AFromModuleImports>(node.getImports()); for( AFromModuleImports e : copy) { if(!_visitedNodes.contains(e)) { e.apply(this); } } } outAModuleImports(node); }
public void typeCheck(AFromModuleImports ifm, ModuleEnvironment env) throws AnalysisException { TypeCheckVisitor tc = new TypeCheckVisitor(); TypeCheckInfo question = new TypeCheckInfo(af, env, null, null); for (List<PImport> ofType : ifm.getSignatures()) { for (PImport imp : ofType) { imp.apply(tc, question); } } }
/** * Creates a deep clone of this {@link AFromModuleImports} node while putting all * old node-new node relations in the map {@code oldToNewMap}. * @param oldToNewMap the map filled with the old node-new node relation * @return a deep clone of this {@link AFromModuleImports} node */ public AFromModuleImports clone(Map<INode,INode> oldToNewMap) { AFromModuleImports node = new AFromModuleImports( cloneNode(_name, oldToNewMap), cloneListList(_signatures, oldToNewMap) ); oldToNewMap.put(this, node); return node; }
String name = node.getName() != null ? node.getName().getName() : null; for (List<PImport> sig : node.getSignatures())
@Override public SImportsIR caseAModuleImports(AModuleImports node, IRInfo question) throws AnalysisException { String name = node.getName() != null ? node.getName().getName() : null; AModuleImportsIR moduleImportsCg = new AModuleImportsIR(); moduleImportsCg.setName(name); for (AFromModuleImports fromModuleImport : node.getImports()) { SImportsIR fromModuleImportCg = fromModuleImport.apply(question.getImportsVisitor(), question); if (fromModuleImportCg instanceof AFromModuleImportsIR) { moduleImportsCg.getImports().add((AFromModuleImportsIR) fromModuleImportCg); } else { log.error("Expected fromModuleImportCg to be of type '" + AFromModuleImportsIR.class.getSimpleName() + "'. Got: " + fromModuleImportCg); return null; } } return moduleImportsCg; }
/** * Called by the {@link AFromModuleImports} node from {@link AFromModuleImports#apply(IAnalysis)}. * @param node the calling {@link AFromModuleImports} node */ public A caseAFromModuleImports(AFromModuleImports node, Q question) throws AnalysisException { _visitedNodes.add(node); A retVal = createNewReturnValue(node, question); mergeReturns(retVal,inAFromModuleImports(node, question)); if(node.getName() != null ) { mergeReturns(retVal,node.getName().apply(this, question)); } { List<List<PImport>> copy = new ArrayList<List<PImport>>(node.getSignatures()); for( List<PImport> list : copy) { for( PImport e : list) { if(!_visitedNodes.contains(e)) { mergeReturns(retVal,e.apply(this, question)); } } } } mergeReturns(retVal,outAFromModuleImports(node, question)); return retVal; }
/** * Called by the {@link AModuleImports} node from {@link AModuleImports#apply(IAnalysis)}. * @param node the calling {@link AModuleImports} node */ public A caseAModuleImports(AModuleImports node, Q question) throws AnalysisException { _visitedNodes.add(node); A retVal = createNewReturnValue(node, question); mergeReturns(retVal,inAModuleImports(node, question)); if(node.getName() != null ) { mergeReturns(retVal,node.getName().apply(this, question)); } { List<AFromModuleImports> copy = new ArrayList<AFromModuleImports>(node.getImports()); for( AFromModuleImports e : copy) { if(!_visitedNodes.contains(e)) { mergeReturns(retVal,e.apply(this, question)); } } } mergeReturns(retVal,outAModuleImports(node, question)); return retVal; }
/** * Called by the {@link AFromModuleImports} node from {@link AFromModuleImports#apply(IAnalysis)}. * @param node the calling {@link AFromModuleImports} node */ public A caseAFromModuleImports(AFromModuleImports node) throws AnalysisException { _visitedNodes.add(node); A retVal = createNewReturnValue(node); mergeReturns(retVal,inAFromModuleImports(node)); if(node.getName() != null ) { mergeReturns(retVal,node.getName().apply(this)); } { List<List<PImport>> copy = new ArrayList<List<PImport>>(node.getSignatures()); for( List<PImport> list : copy) { for( PImport e : list) { if(!_visitedNodes.contains(e)) { mergeReturns(retVal,e.apply(this)); } } } } mergeReturns(retVal,outAFromModuleImports(node)); return retVal; }
/** * Called by the {@link AModuleImports} node from {@link AModuleImports#apply(IAnalysis)}. * @param node the calling {@link AModuleImports} node */ public A caseAModuleImports(AModuleImports node) throws AnalysisException { _visitedNodes.add(node); A retVal = createNewReturnValue(node); mergeReturns(retVal,inAModuleImports(node)); if(node.getName() != null ) { mergeReturns(retVal,node.getName().apply(this)); } { List<AFromModuleImports> copy = new ArrayList<AFromModuleImports>(node.getImports()); for( AFromModuleImports e : copy) { if(!_visitedNodes.contains(e)) { mergeReturns(retVal,e.apply(this)); } } } mergeReturns(retVal,outAModuleImports(node)); return retVal; }