package util.statemachine.implementation.prover.result; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import util.gdl.grammar.GdlConstant; import util.gdl.grammar.GdlPool; import util.gdl.grammar.GdlProposition; import util.gdl.grammar.GdlSentence; import util.gdl.grammar.GdlTerm; import util.statemachine.MachineState; import util.statemachine.Move; import util.statemachine.Role; import util.statemachine.implementation.prover.ProverMachineState; import util.statemachine.implementation.prover.ProverMove; import util.statemachine.implementation.prover.ProverRole; public final class ProverResultParser { private final static GdlConstant TRUE = GdlPool.getConstant("true"); public List<Move> toMoves(Set<GdlSentence> results) { List<Move> moves = new ArrayList<Move>(); for (GdlSentence result : results) { moves.add(new ProverMove(result.get(1).toSentence())); } return moves; } public List<Role> toRoles(List<GdlSentence> results) { List<Role> roles = new ArrayList<Role>(); for (GdlSentence result : results) { GdlProposition name = (GdlProposition) result.get(0).toSentence(); roles.add(new ProverRole(name)); } return roles; } public MachineState toState(Set<GdlSentence> results) { Set<GdlSentence> trues = new HashSet<GdlSentence>(); for (GdlSentence result : results) { trues.add(GdlPool.getRelation(TRUE, new GdlTerm[] { result.get(0) })); } return new ProverMachineState(trues); } }