/** * Returns a deep clone of this {@link AModuleExportsIR} node. * @return a deep clone of this {@link AModuleExportsIR} node */ public AModuleExportsIR clone() { return new AModuleExportsIR( _sourceNode, _tag, _metaData, cloneListList(_exports) ); }
/** * Creates a deep clone of this {@link AModuleExportsIR} 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 AModuleExportsIR} node */ public AModuleExportsIR clone(Map<INode,INode> oldToNewMap) { AModuleExportsIR node = new AModuleExportsIR( _sourceNode, _tag, _metaData, cloneListList(_exports, oldToNewMap) ); oldToNewMap.put(this, node); return node; }
@Override public SExportsIR caseAModuleExports(AModuleExports node, IRInfo question) throws AnalysisException { AModuleExportsIR moduleExportsCg = new AModuleExportsIR(); for (List<PExport> export : node.getExports()) { List<SExportIR> exportCg = new LinkedList<SExportIR>(); for (PExport exportItem : export) { SExportIR exportItemCg = exportItem.apply(question.getExportVisitor(), question); if (exportItemCg != null) { exportCg.add(exportItemCg); } else { return null; } } moduleExportsCg.getExports().add(exportCg); } return moduleExportsCg; } }