From 28a7fda89898ec9d32d97efe7a0e111f36a8cf87 Mon Sep 17 00:00:00 2001 From: Oszkar Semerath Date: Thu, 7 May 2020 02:41:05 +0200 Subject: viatra parsing fixes --- .../patterns/UnitPropagationPreconditionGenerator.xtend | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'Solvers') diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/UnitPropagationPreconditionGenerator.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/UnitPropagationPreconditionGenerator.xtend index 6cd94657..f726a24f 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/UnitPropagationPreconditionGenerator.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/UnitPropagationPreconditionGenerator.xtend @@ -21,6 +21,7 @@ import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.Positi import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall import java.util.Comparator import java.util.ArrayList +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PDisjunction @Data class UnitPropagation { val PQuery q @@ -101,7 +102,7 @@ class UnitPropagationPreconditionGenerator { } def getOrGeneratePropagationRule(UnitPropagationPreconditionGenerationResult res, Relation relation, PQuery q, PConstraint c, PropagationModality pm, Modality m3) { - if(!res.contains(q,c,pm,m3)) { + if(res.contains(q,c,pm,m3)) { return res.getName(q,c,pm,m3) } else { res.generatePropagationRule(relation,q,c,pm,m3) @@ -121,8 +122,9 @@ class UnitPropagationPreconditionGenerator { def void generatePropagationRule(UnitPropagationPreconditionGenerationResult res, Relation relation, PQuery q, PConstraint c, PropagationModality pm, Modality m3) { val name = relationDefinitionName(res,relation,q,c,pm,m3) val constraintArity = c.arity + val bodies = (relation.annotations.filter(TransfomedViatraQuery).head.optimizedDisjunction as PDisjunction).bodies val generatedBodies = new LinkedList - for(body : q.disjunctBodies.bodies) { + for(body : bodies) { if(body.constraints.contains(c)) { if(pm === PropagationModality::UP) { generatedBodies += ''' -- cgit v1.2.3-54-g00ecf