aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_ConstantMapper.xtend
diff options
context:
space:
mode:
Diffstat (limited to 'Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_ConstantMapper.xtend')
-rw-r--r--Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_ConstantMapper.xtend43
1 files changed, 43 insertions, 0 deletions
diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_ConstantMapper.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_ConstantMapper.xtend
new file mode 100644
index 00000000..22650a92
--- /dev/null
+++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_ConstantMapper.xtend
@@ -0,0 +1,43 @@
1package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder
2
3import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguageFactory
4import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDeclaration
5import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity
6import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDefinition
7import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.*
8
9class Logic2AlloyLanguageMapper_ConstantMapper {
10 private val extension AlloyLanguageFactory factory = AlloyLanguageFactory.eINSTANCE
11 private val Logic2AlloyLanguageMapper_Support support = new Logic2AlloyLanguageMapper_Support;
12 val Logic2AlloyLanguageMapper base;
13 public new(Logic2AlloyLanguageMapper base) {
14 this.base = base
15 }
16
17 def protected dispatch transformConstant(ConstantDeclaration constant, Logic2AlloyLanguageMapperTrace trace) {
18 if(!trace.constantDefinitions.containsKey(constant)) {
19 val c = createALSFieldDeclaration=> [
20 name = support.toID(constant.name)
21 it.type = base.transformTypeReference(constant.type,trace)
22 it.multiplicity = ALSMultiplicity.ONE
23 ]
24 trace.logicLanguageBody.fields+= c
25 trace.constantDeclaration2LanguageField.put(constant,c)
26 }
27 }
28
29 def protected dispatch transformConstant(ConstantDefinition constant, Logic2AlloyLanguageMapperTrace trace) {
30 val c = createALSFunctionDefinition=> [
31 name = support.toID(constant.name)
32 it.type = base.transformTypeReference(constant.type,trace)
33 // the value is set later
34 ]
35 trace.specification.functionDefinitions += c
36 trace.constantDefinition2Function.put(constant,c)
37 }
38
39 def protected transformConstantDefinitionSpecification(ConstantDefinition constant, Logic2AlloyLanguageMapperTrace trace) {
40 val definition = constant.lookup(trace.constantDefinition2Function)
41 definition.value = base.transformTerm(constant.value, trace,emptyMap)
42 }
43} \ No newline at end of file