From 8d5377ccb1c89668d1c95314910455c12c9c4554 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Fri, 2 Aug 2019 01:24:28 +0200 Subject: Fix enum literal support for FAM --- .../logic2viatra/patterns/RelationDefinitionIndexer.xtend | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu') diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend index 9845560c..0ae28b66 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend @@ -34,7 +34,7 @@ class RelationDefinitionIndexer { this.base = base } - public def generateRelationDefinitions( + def generateRelationDefinitions( LogicProblem problem, Iterable relations, Map fqn2PQuery) { @@ -110,7 +110,7 @@ class RelationDefinitionIndexer { else return Modality::MUST } - def public referPattern(PQuery p, String[] variables, Modality modality, boolean positive, boolean transitive) ''' + def referPattern(PQuery p, String[] variables, Modality modality, boolean positive, boolean transitive) ''' «IF !positive»neg «ENDIF»find «IF transitive»twoParam_«ENDIF»«modality.name.toLowerCase»InRelation_pattern_«p.fullyQualifiedName.replace('.','_')»«IF transitive»+«ENDIF»(«IF !transitive»problem,interpretation,«ENDIF»«variables.join(',')»); ''' @@ -228,10 +228,11 @@ class RelationDefinitionIndexer { var String additionalDefinition; if(target instanceof EEnumLiteral) { targetString = '''const_«target.name»_«target.EEnum.name»''' - additionalDefinition = '''DefinedElement.name(«targetString»,"«target.name» «target.EEnum.name»"); //LogicProblem.elements(problem,«targetString»);''' + additionalDefinition = '''DefinedElement.name(«targetString»,"«target.name» literal «target.EEnum.name»"); //LogicProblem.elements(problem,«targetString»);''' } else if(target instanceof Enumerator) { + // XXX We should get the corresponding EEnum name instead of the java class name. targetString = '''const_«target.name»_«target.class.simpleName»''' - additionalDefinition = '''DefinedElement.name(«targetString»,"«target.name» «target.class.simpleName»"); //LogicProblem.elements(problem,«targetString»);''' + additionalDefinition = '''DefinedElement.name(«targetString»,"«target.name» literal «target.class.simpleName»"); //LogicProblem.elements(problem,«targetString»);''' } else if(target instanceof Integer) { targetString = '''const_«target»_Integer''' additionalDefinition = '''IntegerElement.value(«targetString»,«target»);''' -- cgit v1.2.3-54-g00ecf