diff options
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PConstraintTransformer.xtend')
-rw-r--r-- | Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PConstraintTransformer.xtend | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PConstraintTransformer.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PConstraintTransformer.xtend index 5ca78e97..423bb204 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PConstraintTransformer.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PConstraintTransformer.xtend | |||
@@ -28,6 +28,7 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.StringTypeReference | |||
28 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.BoolTypeReference | 28 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.BoolTypeReference |
29 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.IntTypeReference | 29 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.IntTypeReference |
30 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RealTypeReference | 30 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RealTypeReference |
31 | import java.util.Map | ||
31 | 32 | ||
32 | class PConstraintTransformer { | 33 | class PConstraintTransformer { |
33 | val extension RelationDefinitionIndexer relationDefinitionIndexer; | 34 | val extension RelationDefinitionIndexer relationDefinitionIndexer; |
@@ -226,6 +227,7 @@ class PConstraintTransformer { | |||
226 | throw new UnsupportedOperationException('''Only check expressions are supported "«e.class.name»"!''') | 227 | throw new UnsupportedOperationException('''Only check expressions are supported "«e.class.name»"!''') |
227 | } else { | 228 | } else { |
228 | val expression = expressionExtractor.extractExpression(e.evaluator) | 229 | val expression = expressionExtractor.extractExpression(e.evaluator) |
230 | val Map<PVariable, PrimitiveTypeReference> variable2Type = e.affectedVariables.toInvertedMap[v|variableMapping.filter[it.sourcePVariable === v].head.targetLogicVariable.range as PrimitiveTypeReference] | ||
229 | if(modality.isMay) { | 231 | if(modality.isMay) { |
230 | return ''' | 232 | return ''' |
231 | «FOR variable: e.affectedVariables» | 233 | «FOR variable: e.affectedVariables» |
@@ -234,7 +236,7 @@ class PConstraintTransformer { | |||
234 | check( | 236 | check( |
235 | «FOR variable: e.affectedVariables SEPARATOR " || "»!«variable.valueSetted»«ENDFOR» | 237 | «FOR variable: e.affectedVariables SEPARATOR " || "»!«variable.valueSetted»«ENDFOR» |
236 | || | 238 | || |
237 | («expressionGenerator.translateExpression(expression,e.affectedVariables.toInvertedMap[valueVariable])») | 239 | («expressionGenerator.translateExpression(expression,e.affectedVariables.toInvertedMap[valueVariable],variable2Type)») |
238 | ); | 240 | ); |
239 | ''' | 241 | ''' |
240 | } else { // Must or Current | 242 | } else { // Must or Current |
@@ -242,7 +244,7 @@ class PConstraintTransformer { | |||
242 | «FOR variable: e.affectedVariables» | 244 | «FOR variable: e.affectedVariables» |
243 | PrimitiveElement.valueSet(«variable.canonizeName»,true); «hasValueExpression(variableMapping,variable,variable.valueVariable)» | 245 | PrimitiveElement.valueSet(«variable.canonizeName»,true); «hasValueExpression(variableMapping,variable,variable.valueVariable)» |
244 | «ENDFOR» | 246 | «ENDFOR» |
245 | check(«expressionGenerator.translateExpression(expression,e.affectedVariables.toInvertedMap[valueVariable])»); | 247 | check(«expressionGenerator.translateExpression(expression,e.affectedVariables.toInvertedMap[valueVariable],variable2Type)»); |
246 | ''' | 248 | ''' |
247 | } | 249 | } |
248 | } | 250 | } |