package org.overture.codegen.visitor;
import java.util.LinkedList;
import java.util.List;
import org.overture.ast.analysis.AnalysisException;
import org.overture.ast.modules.AModuleExports;
import org.overture.ast.modules.PExport;
import org.overture.codegen.ir.IRInfo;
import org.overture.codegen.ir.SExportIR;
import org.overture.codegen.ir.SExportsIR;
import org.overture.codegen.ir.declarations.AModuleExportsIR;
public class ExportsVisitorIR extends AbstractVisitorIR<IRInfo, SExportsIR>
{
@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;
}
}