Skip to content
Snippets Groups Projects
Verified Commit a2ec771b authored by Miles Vella's avatar Miles Vella
Browse files

Update usages of Prolog Library for Abstract Integer Representation

parent 27ae90fa
No related branches found
No related tags found
No related merge requests found
Pipeline #123617 failed
**/bin/ **/bin/
**/target/ **/target/
.idea/
.gradle/ .gradle/
.metadata/ .metadata/
**/pom.xml **/pom.xml
......
...@@ -14,7 +14,7 @@ import de.prob.core.Animator; ...@@ -14,7 +14,7 @@ import de.prob.core.Animator;
import de.prob.exceptions.ProBException; import de.prob.exceptions.ProBException;
import de.prob.parser.ISimplifiedROMap; import de.prob.parser.ISimplifiedROMap;
import de.prob.prolog.output.IPrologTermOutput; import de.prob.prolog.output.IPrologTermOutput;
import de.prob.prolog.term.IntegerPrologTerm; import de.prob.prolog.term.AIntegerPrologTerm;
import de.prob.prolog.term.ListPrologTerm; import de.prob.prolog.term.ListPrologTerm;
import de.prob.prolog.term.PrologTerm; import de.prob.prolog.term.PrologTerm;
...@@ -29,9 +29,16 @@ public final class ComputeCoverageCommand implements IComposableCommand { ...@@ -29,9 +29,16 @@ public final class ComputeCoverageCommand implements IComposableCommand {
private final List<String> nodes = new ArrayList<String>(); private final List<String> nodes = new ArrayList<String>();
private final List<String> uncovered = new ArrayList<String>(); private final List<String> uncovered = new ArrayList<String>();
@Deprecated
public ComputeCoverageResult(final IntegerPrologTerm totalNumberOfNodes, public ComputeCoverageResult(final IntegerPrologTerm totalNumberOfNodes,
final IntegerPrologTerm totalNumberOfTransitions, final ListPrologTerm ops, final ListPrologTerm nodes, final IntegerPrologTerm totalNumberOfTransitions, final ListPrologTerm ops, final ListPrologTerm nodes,
final ListPrologTerm uncovered) { final ListPrologTerm uncovered) {
this((AIntegerPrologTerm) totalNumberOfNodes, totalNumberOfTransitions, ops, nodes, uncovered);
}
public ComputeCoverageResult(final AIntegerPrologTerm totalNumberOfNodes,
final AIntegerPrologTerm totalNumberOfTransitions, final ListPrologTerm ops, final ListPrologTerm nodes,
final ListPrologTerm uncovered) {
this.totalNumberOfNodes = totalNumberOfNodes.getValue(); this.totalNumberOfNodes = totalNumberOfNodes.getValue();
this.totalNumberOfTransitions = totalNumberOfTransitions.getValue(); this.totalNumberOfTransitions = totalNumberOfTransitions.getValue();
for (PrologTerm op : ops) { for (PrologTerm op : ops) {
...@@ -83,8 +90,8 @@ public final class ComputeCoverageCommand implements IComposableCommand { ...@@ -83,8 +90,8 @@ public final class ComputeCoverageCommand implements IComposableCommand {
@Override @Override
public void processResult(final ISimplifiedROMap<String, PrologTerm> bindings) throws CommandException { public void processResult(final ISimplifiedROMap<String, PrologTerm> bindings) throws CommandException {
IntegerPrologTerm totalNodeNr = (IntegerPrologTerm) bindings.get("TotalNodeNr"); AIntegerPrologTerm totalNodeNr = (AIntegerPrologTerm) bindings.get("TotalNodeNr");
IntegerPrologTerm totalTransNr = (IntegerPrologTerm) bindings.get("TotalTransSum"); AIntegerPrologTerm totalTransNr = (AIntegerPrologTerm) bindings.get("TotalTransSum");
ListPrologTerm ops = (ListPrologTerm) bindings.get("OpStat"); ListPrologTerm ops = (ListPrologTerm) bindings.get("OpStat");
ListPrologTerm nodes = (ListPrologTerm) bindings.get("NodeStat"); ListPrologTerm nodes = (ListPrologTerm) bindings.get("NodeStat");
......
...@@ -11,8 +11,8 @@ import de.prob.core.domainobjects.Operation; ...@@ -11,8 +11,8 @@ import de.prob.core.domainobjects.Operation;
import de.prob.exceptions.ProBException; import de.prob.exceptions.ProBException;
import de.prob.parser.ISimplifiedROMap; import de.prob.parser.ISimplifiedROMap;
import de.prob.prolog.output.IPrologTermOutput; import de.prob.prolog.output.IPrologTermOutput;
import de.prob.prolog.term.AIntegerPrologTerm;
import de.prob.prolog.term.CompoundPrologTerm; import de.prob.prolog.term.CompoundPrologTerm;
import de.prob.prolog.term.IntegerPrologTerm;
import de.prob.prolog.term.ListPrologTerm; import de.prob.prolog.term.ListPrologTerm;
import de.prob.prolog.term.PrologTerm; import de.prob.prolog.term.PrologTerm;
...@@ -206,8 +206,7 @@ public final class LtlCheckingCommand implements IComposableCommand { ...@@ -206,8 +206,7 @@ public final class LtlCheckingCommand implements IComposableCommand {
loopEntry = -1; loopEntry = -1;
} else if (loopStatus.hasFunctor("loop", 1)) { } else if (loopStatus.hasFunctor("loop", 1)) {
pathType = PathType.INFINITE; pathType = PathType.INFINITE;
loopEntry = ((IntegerPrologTerm) loopStatus.getArgument(1)) loopEntry = ((AIntegerPrologTerm) loopStatus.getArgument(1)).intValueExact();
.getValue().intValue();
} else } else
throw new CommandException( throw new CommandException(
"LTL model check returned unexpected loop status: " "LTL model check returned unexpected loop status: "
......
...@@ -59,12 +59,9 @@ public final class ModelCheckingCommand implements IComposableCommand { ...@@ -59,12 +59,9 @@ public final class ModelCheckingCommand implements IComposableCommand {
CompoundPrologTerm term = (CompoundPrologTerm) bindings.get("Result"); CompoundPrologTerm term = (CompoundPrologTerm) bindings.get("Result");
CompoundPrologTerm stats = (CompoundPrologTerm) bindings.get("Stats"); CompoundPrologTerm stats = (CompoundPrologTerm) bindings.get("Stats");
int processedTotal = ((IntegerPrologTerm) stats.getArgument(3)) int processedTotal = ((AIntegerPrologTerm) stats.getArgument(3)).intValueExact();
.getValue().intValue(); int numStates = ((AIntegerPrologTerm) stats.getArgument(1)).intValueExact();
int numStates = ((IntegerPrologTerm) stats.getArgument(1)).getValue() int numTransitions = ((AIntegerPrologTerm) stats.getArgument(2)).intValueExact();
.intValue();
int numTransitions = ((IntegerPrologTerm) stats.getArgument(2))
.getValue().intValue();
result = new ModelCheckingResult<Result>(Result.class, term, result = new ModelCheckingResult<Result>(Result.class, term,
processedTotal, numStates, numTransitions); processedTotal, numStates, numTransitions);
......
...@@ -12,8 +12,8 @@ import java.util.HashMap; ...@@ -12,8 +12,8 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import de.prob.prolog.term.AIntegerPrologTerm;
import de.prob.prolog.term.CompoundPrologTerm; import de.prob.prolog.term.CompoundPrologTerm;
import de.prob.prolog.term.IntegerPrologTerm;
import de.prob.prolog.term.ListPrologTerm; import de.prob.prolog.term.ListPrologTerm;
import de.prob.prolog.term.PrologTerm; import de.prob.prolog.term.PrologTerm;
import de.prob.unicode.UnicodeTranslator; import de.prob.unicode.UnicodeTranslator;
...@@ -121,9 +121,8 @@ public final class Operation { ...@@ -121,9 +121,8 @@ public final class Operation {
public static Operation fromPrologTerm(final PrologTerm rawOpTerm) { public static Operation fromPrologTerm(final PrologTerm rawOpTerm) {
final CompoundPrologTerm opTerm = (CompoundPrologTerm) rawOpTerm; final CompoundPrologTerm opTerm = (CompoundPrologTerm) rawOpTerm;
final IntegerPrologTerm pInt = (IntegerPrologTerm) opTerm final AIntegerPrologTerm pInt = (AIntegerPrologTerm) opTerm.getArgument(ID);
.getArgument(ID); final long id = pInt.longValueExact();
final long id = pInt.getValue().longValue();
final String name = PrologTerm.atomicString(opTerm.getArgument(NAME)); final String name = PrologTerm.atomicString(opTerm.getArgument(NAME));
final EventType type = SPECIAL_EVENTS.get(name); final EventType type = SPECIAL_EVENTS.get(name);
final String destId = getIdFromPrologTerm(opTerm.getArgument(DST)); final String destId = getIdFromPrologTerm(opTerm.getArgument(DST));
...@@ -171,8 +170,8 @@ public final class Operation { ...@@ -171,8 +170,8 @@ public final class Operation {
.getArgument(ARGS_PRETTY)); .getArgument(ARGS_PRETTY));
this.hashCode = initHashCode(); this.hashCode = initHashCode();
final IntegerPrologTerm pInt = (IntegerPrologTerm) term.getArgument(ID); final AIntegerPrologTerm pInt = (AIntegerPrologTerm) term.getArgument(ID);
this.id = pInt.getValue().longValue(); this.id = pInt.longValueExact();
this.eventStack = createEventStack((ListPrologTerm) term this.eventStack = createEventStack((ListPrologTerm) term
.getArgument(INFOS)); .getArgument(INFOS));
} }
...@@ -244,10 +243,8 @@ public final class Operation { ...@@ -244,10 +243,8 @@ public final class Operation {
} }
private static String getIdFromPrologTerm(final PrologTerm destTerm) { private static String getIdFromPrologTerm(final PrologTerm destTerm) {
if (destTerm instanceof IntegerPrologTerm) { // integer terms have their string representation as functor
return ((IntegerPrologTerm) destTerm).getValue().toString(); return destTerm.atomicToString();
}
return ((CompoundPrologTerm) destTerm).getFunctor();
} }
public long getId() { public long getId() {
......
...@@ -9,8 +9,8 @@ import de.prob.core.command.LtlCheckingCommand.PathType; ...@@ -9,8 +9,8 @@ import de.prob.core.command.LtlCheckingCommand.PathType;
import de.prob.core.command.LtlCheckingCommand.Result; import de.prob.core.command.LtlCheckingCommand.Result;
import de.prob.core.domainobjects.Operation; import de.prob.core.domainobjects.Operation;
import de.prob.logging.Logger; import de.prob.logging.Logger;
import de.prob.prolog.term.AIntegerPrologTerm;
import de.prob.prolog.term.CompoundPrologTerm; import de.prob.prolog.term.CompoundPrologTerm;
import de.prob.prolog.term.IntegerPrologTerm;
import de.prob.prolog.term.ListPrologTerm; import de.prob.prolog.term.ListPrologTerm;
import de.prob.prolog.term.PrologTerm; import de.prob.prolog.term.PrologTerm;
...@@ -98,8 +98,7 @@ public class CounterExample { ...@@ -98,8 +98,7 @@ public class CounterExample {
.getArgument(3); .getArgument(3);
for (int i = 0; i < values.size(); i++) { for (int i = 0; i < values.size(); i++) {
int value = ((IntegerPrologTerm) values.get(i)).getValue() int value = ((AIntegerPrologTerm) values.get(i)).intValueExact();
.intValue();
// Doesn't have to be a 'predicateValues.get(index)' and not // Doesn't have to be a 'predicateValues.get(index)' and not
// 'predicateValues.get(i)' (predicateValues is a list of boolean lists) // 'predicateValues.get(i)' (predicateValues is a list of boolean lists)
//predicateValues.get(index).add(value == 0 ? false : true); //predicateValues.get(index).add(value == 0 ? false : true);
...@@ -140,9 +139,9 @@ public class CounterExample { ...@@ -140,9 +139,9 @@ public class CounterExample {
Arrays.asList(values)); Arrays.asList(values));
} else if (arity == 1) { } else if (arity == 1) {
if (functor.equals("ap") || functor.equals("tp")) { if (functor.equals("ap") || functor.equals("tp")) {
IntegerPrologTerm atomic = (IntegerPrologTerm) term AIntegerPrologTerm atomic = (AIntegerPrologTerm) term
.getArgument(1); .getArgument(1);
int atomicId = atomic.getValue().intValue(); int atomicId = atomic.intValueExact();
final String name = atomicFormulaNames[atomicId]; final String name = atomicFormulaNames[atomicId];
......
...@@ -12,7 +12,7 @@ import de.prob.core.command.IComposableCommand; ...@@ -12,7 +12,7 @@ import de.prob.core.command.IComposableCommand;
import de.prob.exceptions.ProBException; import de.prob.exceptions.ProBException;
import de.prob.parser.ISimplifiedROMap; import de.prob.parser.ISimplifiedROMap;
import de.prob.prolog.output.IPrologTermOutput; import de.prob.prolog.output.IPrologTermOutput;
import de.prob.prolog.term.IntegerPrologTerm; import de.prob.prolog.term.AIntegerPrologTerm;
import de.prob.prolog.term.PrologTerm; import de.prob.prolog.term.PrologTerm;
public class GenerateLocalTestcasesCommand implements IComposableCommand { public class GenerateLocalTestcasesCommand implements IComposableCommand {
...@@ -41,10 +41,8 @@ public class GenerateLocalTestcasesCommand implements IComposableCommand { ...@@ -41,10 +41,8 @@ public class GenerateLocalTestcasesCommand implements IComposableCommand {
public void processResult( public void processResult(
final ISimplifiedROMap<String, PrologTerm> bindings) final ISimplifiedROMap<String, PrologTerm> bindings)
throws CommandException { throws CommandException {
final int sat = ((IntegerPrologTerm) bindings.get("SAT")).getValue() final int sat = ((AIntegerPrologTerm) bindings.get("SAT")).intValueExact();
.intValue(); final int unsat = ((AIntegerPrologTerm) bindings.get("UNSAT")).intValueExact();
final int unsat = ((IntegerPrologTerm) bindings.get("UNSAT"))
.getValue().intValue();
result = new LocalTestcasesResult(sat, unsat); result = new LocalTestcasesResult(sat, unsat);
} }
......
...@@ -25,7 +25,7 @@ import de.prob.core.command.LoadEventBModelCommand; ...@@ -25,7 +25,7 @@ import de.prob.core.command.LoadEventBModelCommand;
import de.prob.exceptions.ProBException; import de.prob.exceptions.ProBException;
import de.prob.parser.ISimplifiedROMap; import de.prob.parser.ISimplifiedROMap;
import de.prob.prolog.output.IPrologTermOutput; import de.prob.prolog.output.IPrologTermOutput;
import de.prob.prolog.term.IntegerPrologTerm; import de.prob.prolog.term.AIntegerPrologTerm;
import de.prob.prolog.term.ListPrologTerm; import de.prob.prolog.term.ListPrologTerm;
import de.prob.prolog.term.PrologTerm; import de.prob.prolog.term.PrologTerm;
import de.prob.sap.exceptions.ParseProblemException; import de.prob.sap.exceptions.ParseProblemException;
...@@ -133,9 +133,9 @@ public class GenerateTestcaseCommand implements IComposableCommand { ...@@ -133,9 +133,9 @@ public class GenerateTestcaseCommand implements IComposableCommand {
public void processResult( public void processResult(
final ISimplifiedROMap<String, PrologTerm> bindings) final ISimplifiedROMap<String, PrologTerm> bindings)
throws CommandException { throws CommandException {
final IntegerPrologTerm pNumberTests = (IntegerPrologTerm) bindings final AIntegerPrologTerm pNumberTests = (AIntegerPrologTerm) bindings
.get(NUMBER_TESTCASES); .get(NUMBER_TESTCASES);
final int numberOfTests = pNumberTests.getValue().intValue(); final int numberOfTests = pNumberTests.intValueExact();
final ListPrologTerm pEvents = (ListPrologTerm) bindings final ListPrologTerm pEvents = (ListPrologTerm) bindings
.get(UNCOVERED_EVENTS); .get(UNCOVERED_EVENTS);
......
...@@ -35,8 +35,8 @@ import de.prob.core.command.GetPreferencesCommand; ...@@ -35,8 +35,8 @@ import de.prob.core.command.GetPreferencesCommand;
import de.prob.core.domainobjects.ProBPreference; import de.prob.core.domainobjects.ProBPreference;
import de.prob.exceptions.ProBException; import de.prob.exceptions.ProBException;
import de.prob.logging.Logger; import de.prob.logging.Logger;
import de.prob.prolog.term.AIntegerPrologTerm;
import de.prob.prolog.term.CompoundPrologTerm; import de.prob.prolog.term.CompoundPrologTerm;
import de.prob.prolog.term.IntegerPrologTerm;
import de.prob.prolog.term.ListPrologTerm; import de.prob.prolog.term.ListPrologTerm;
import de.prob.prolog.term.PrologTerm; import de.prob.prolog.term.PrologTerm;
...@@ -154,12 +154,12 @@ public class ProBGeneralPreferences extends FieldEditorPreferencePage implements ...@@ -154,12 +154,12 @@ public class ProBGeneralPreferences extends FieldEditorPreferencePage implements
BooleanFieldEditor.SEPARATE_LABEL, parent); BooleanFieldEditor.SEPARATE_LABEL, parent);
} else if (type.hasFunctor("range", 2)) { } else if (type.hasFunctor("range", 2)) {
final CompoundPrologTerm range = (CompoundPrologTerm) type; final CompoundPrologTerm range = (CompoundPrologTerm) type;
final BigInteger lower = ((IntegerPrologTerm) range.getArgument(1)) final BigInteger lower = ((AIntegerPrologTerm) range.getArgument(1))
.getValue(); .getValue();
final BigInteger upper = ((IntegerPrologTerm) range.getArgument(2)) final BigInteger upper = ((AIntegerPrologTerm) range.getArgument(2))
.getValue(); .getValue();
field = createIntField(name, desc, parent, lower.intValue(), upper field = createIntField(name, desc, parent, lower.intValueExact(), upper
.intValue()); .intValueExact());
} else if (type.isList()) { } else if (type.isList()) {
final ListPrologTerm typelist = (ListPrologTerm) type; final ListPrologTerm typelist = (ListPrologTerm) type;
final String[][] comboEntries = new String[typelist.size()][2]; final String[][] comboEntries = new String[typelist.size()][2];
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment