From b77c6762fb0f784811614e2bd53d5a74cdf866c0 Mon Sep 17 00:00:00 2001 From: OszkarSemerath Date: Fri, 14 Sep 2018 16:39:37 +0200 Subject: Alloy support for string literals --- .../alloy/reasoner/builder/AlloyModelInterpretation.xtend | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation.xtend') diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation.xtend b/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation.xtend index abedf9e4..95216835 100644 --- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation.xtend +++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation.xtend @@ -177,6 +177,7 @@ class AlloyModelInterpretation implements LogicModelInterpretation{ else if(label == this.logicBooleanTrue) return true else if(label == this.logicBooleanFalse) return false else if(this.alloyAtom2LogicElement.containsKey(label)) return label.lookup(alloyAtom2LogicElement) + else if(label.isString) return parseString(label) else throw new IllegalArgumentException('''Unknown atom label: "«label»"!''') } def private isNumber(String s) { @@ -187,6 +188,12 @@ class AlloyModelInterpretation implements LogicModelInterpretation{ return false } } + def private isString(String label) { + label.startsWith("\"") && label.endsWith("\"") + } + def private parseString(String label) { + label.substring(1,label.length-1) + } override getAllIntegersInStructure() { throw new UnsupportedOperationException("TODO: auto-generated method stub") -- cgit v1.2.3-70-g09d2