package org.overture.codegen.traces;
import org.overture.ast.analysis.AnalysisException;
import org.overture.ast.definitions.traces.ATraceDefinitionTerm;
import org.overture.ast.definitions.traces.PTraceDefinition;
import org.overture.codegen.ir.IRInfo;
import org.overture.codegen.ir.STermIR;
import org.overture.codegen.ir.STraceDeclIR;
import org.overture.codegen.ir.traces.ATraceDeclTermIR;
import org.overture.codegen.visitor.AbstractVisitorIR;
public class TermVisitorIR extends AbstractVisitorIR<IRInfo, STermIR>
{
@Override
public STermIR caseATraceDefinitionTerm(ATraceDefinitionTerm node,
IRInfo question) throws AnalysisException
{
ATraceDeclTermIR termCg = new ATraceDeclTermIR();
for (PTraceDefinition traceDef : node.getList())
{
STraceDeclIR traceDefCg = traceDef.apply(question.getTraceDeclVisitor(), question);
if (traceDefCg != null)
{
termCg.getTraceDecls().add(traceDefCg);
} else
{
return null;
}
}
return termCg;
}
}