aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-08-02 01:24:28 +0200
committerLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-08-02 01:24:28 +0200
commit8d5377ccb1c89668d1c95314910455c12c9c4554 (patch)
treeeb81bf87bdde429257d71443648c2ee2dbbceb12 /Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu
parentTrying to run generator in measurement environment (diff)
downloadVIATRA-Generator-8d5377ccb1c89668d1c95314910455c12c9c4554.tar.gz
VIATRA-Generator-8d5377ccb1c89668d1c95314910455c12c9c4554.tar.zst
VIATRA-Generator-8d5377ccb1c89668d1c95314910455c12c9c4554.zip
Fix enum literal support for FAM
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu')
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend9
1 files changed, 5 insertions, 4 deletions
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 {
34 this.base = base 34 this.base = base
35 } 35 }
36 36
37 public def generateRelationDefinitions( 37 def generateRelationDefinitions(
38 LogicProblem problem, 38 LogicProblem problem,
39 Iterable<RelationDefinition> relations, 39 Iterable<RelationDefinition> relations,
40 Map<String,PQuery> fqn2PQuery) { 40 Map<String,PQuery> fqn2PQuery) {
@@ -110,7 +110,7 @@ class RelationDefinitionIndexer {
110 else return Modality::MUST 110 else return Modality::MUST
111 } 111 }
112 112
113 def public referPattern(PQuery p, String[] variables, Modality modality, boolean positive, boolean transitive) ''' 113 def referPattern(PQuery p, String[] variables, Modality modality, boolean positive, boolean transitive) '''
114 «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(',')»); 114 «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(',')»);
115 ''' 115 '''
116 116
@@ -228,10 +228,11 @@ class RelationDefinitionIndexer {
228 var String additionalDefinition; 228 var String additionalDefinition;
229 if(target instanceof EEnumLiteral) { 229 if(target instanceof EEnumLiteral) {
230 targetString = '''const_«target.name»_«target.EEnum.name»''' 230 targetString = '''const_«target.name»_«target.EEnum.name»'''
231 additionalDefinition = '''DefinedElement.name(«targetString»,"«target.name» «target.EEnum.name»"); //LogicProblem.elements(problem,«targetString»);''' 231 additionalDefinition = '''DefinedElement.name(«targetString»,"«target.name» literal «target.EEnum.name»"); //LogicProblem.elements(problem,«targetString»);'''
232 } else if(target instanceof Enumerator) { 232 } else if(target instanceof Enumerator) {
233 // XXX We should get the corresponding EEnum name instead of the java class name.
233 targetString = '''const_«target.name»_«target.class.simpleName»''' 234 targetString = '''const_«target.name»_«target.class.simpleName»'''
234 additionalDefinition = '''DefinedElement.name(«targetString»,"«target.name» «target.class.simpleName»"); //LogicProblem.elements(problem,«targetString»);''' 235 additionalDefinition = '''DefinedElement.name(«targetString»,"«target.name» literal «target.class.simpleName»"); //LogicProblem.elements(problem,«targetString»);'''
235 } else if(target instanceof Integer) { 236 } else if(target instanceof Integer) {
236 targetString = '''const_«target»_Integer''' 237 targetString = '''const_«target»_Integer'''
237 additionalDefinition = '''IntegerElement.value(«targetString»,«target»);''' 238 additionalDefinition = '''IntegerElement.value(«targetString»,«target»);'''