Skip to content
Snippets Groups Projects
Commit f74c5200 authored by Sebastian Krings's avatar Sebastian Krings
Browse files

try to add unit pragmas to the translation, infrastructural work

parent c04588fb
Branches
Tags
No related merge requests found
package de.prob.eventb.translator;
import de.prob.core.translator.ITranslator;
public class UnitPragmaTranslator implements ITranslator {
}
......@@ -17,6 +17,7 @@ import org.rodinp.core.RodinDBException;
import de.prob.core.translator.TranslationFailedException;
import de.prob.eventb.translator.ContextTranslator;
import de.prob.eventb.translator.UnitPragmaTranslator;
import de.prob.prolog.output.IPrologTermOutput;
public final class EventBContextTranslator extends EventBTranslator {
......@@ -51,13 +52,16 @@ public final class EventBContextTranslator extends EventBTranslator {
private void constructTranslation(final IPrologTermOutput pto)
throws TranslationFailedException {
List<ContextTranslator> translators = new ArrayList<ContextTranslator>();
List<ContextTranslator> contextTranslators = new ArrayList<ContextTranslator>();
List<UnitPragmaTranslator> unitPragmaTranslators = new ArrayList<UnitPragmaTranslator>();
// translators.add(ContextTranslator.create(context));
if (context instanceof ISCContextRoot) {
ISCContextRoot root = (ISCContextRoot) context;
collectContexts(translators, new ArrayList<String>(), root);
collectContexts(contextTranslators, new ArrayList<String>(), root);
}
printProlog(new ArrayList<ModelTranslator>(), translators, pto);
printProlog(new ArrayList<ModelTranslator>(), contextTranslators,
unitPragmaTranslators, pto);
}
private void collectContexts(final List<ContextTranslator> translatorMap,
......
......@@ -16,6 +16,7 @@ import org.rodinp.core.RodinDBException;
import de.prob.core.translator.TranslationFailedException;
import de.prob.eventb.translator.ContextTranslator;
import de.prob.eventb.translator.UnitPragmaTranslator;
import de.prob.eventb.translator.flow.FlowAnalysis;
import de.prob.logging.Logger;
import de.prob.prolog.output.IPrologTermOutput;
......@@ -64,7 +65,8 @@ public final class EventBMachineTranslator extends EventBTranslator {
List<ISCMachineRoot> roots = collectRefinementChain();
final List<ModelTranslator> mchTranslators = getModelTranslators(roots);
final List<ContextTranslator> ctxTranslators = getContextTranslators(roots);
printProlog(mchTranslators, ctxTranslators, pto);
final List<UnitPragmaTranslator> unitPragmaTranslators = getUnitPragmaTranslators(roots);
printProlog(mchTranslators, ctxTranslators, unitPragmaTranslators, pto);
}
private List<ISCMachineRoot> collectRefinementChain()
......@@ -97,6 +99,13 @@ public final class EventBMachineTranslator extends EventBTranslator {
return mchTranslators;
}
private List<UnitPragmaTranslator> getUnitPragmaTranslators(
final List<ISCMachineRoot> roots) throws TranslationFailedException {
final List<UnitPragmaTranslator> translators = new ArrayList<UnitPragmaTranslator>();
// TODO: do something brilliant
return translators;
}
private List<ContextTranslator> getContextTranslators(
final List<ISCMachineRoot> models)
throws TranslationFailedException {
......
......@@ -25,6 +25,7 @@ import de.prob.core.translator.ITranslator;
import de.prob.core.translator.TranslationFailedException;
import de.prob.eventb.translator.AbstractComponentTranslator;
import de.prob.eventb.translator.ContextTranslator;
import de.prob.eventb.translator.UnitPragmaTranslator;
import de.prob.prolog.output.IPrologTermOutput;
public abstract class EventBTranslator implements ITranslator {
......@@ -127,6 +128,7 @@ public abstract class EventBTranslator implements ITranslator {
protected void printProlog(
final Collection<ModelTranslator> refinementChainTranslators,
final Collection<ContextTranslator> contextTranslators,
final Collection<UnitPragmaTranslator> unitPragmaTranslators,
final IPrologTermOutput pout) throws TranslationFailedException {
final ASTProlog prolog = createAstVisitor(refinementChainTranslators,
contextTranslators, pout);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment