From e5a042909a448a82e164aa1c89cc6faf0cbff357 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Fri, 2 Jul 2021 01:05:54 +0200 Subject: Change operator for predicate definition --- .../eclipse/viatra/solver/language/Problem.xtext | 2 +- .../solver/language/tests/ProblemParsingTest.xtend | 2 +- .../language/tests/scoping/NodeScopingTest.xtend | 26 +++++++++++----------- 3 files changed, 15 insertions(+), 15 deletions(-) (limited to 'language') diff --git a/language/src/main/java/org/eclipse/viatra/solver/language/Problem.xtext b/language/src/main/java/org/eclipse/viatra/solver/language/Problem.xtext index 4aeb0acd..9e032a13 100644 --- a/language/src/main/java/org/eclipse/viatra/solver/language/Problem.xtext +++ b/language/src/main/java/org/eclipse/viatra/solver/language/Problem.xtext @@ -35,7 +35,7 @@ PredicateDefinition: (error?="error" "pred"? | "pred") name=Identifier "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")" - (":-" bodies+=Conjunction (";" bodies+=Conjunction)*)? + ("<=>" bodies+=Conjunction (";" bodies+=Conjunction)*)? "."; Parameter: diff --git a/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend b/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend index 7a6eec6a..fcf05d1d 100644 --- a/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend +++ b/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend @@ -42,7 +42,7 @@ class ProblemParsingTest { } % A child cannot have any dependents. - error invalidTaxStatus(Person p) :- + error invalidTaxStatus(Person p) <=> taxStatus(p, child), children(p, _q). Family('family'). diff --git a/language/src/test/java/org/eclipse/viatra/solver/language/tests/scoping/NodeScopingTest.xtend b/language/src/test/java/org/eclipse/viatra/solver/language/tests/scoping/NodeScopingTest.xtend index 91a9e8a4..5c34083c 100644 --- a/language/src/test/java/org/eclipse/viatra/solver/language/tests/scoping/NodeScopingTest.xtend +++ b/language/src/test/java/org/eclipse/viatra/solver/language/tests/scoping/NodeScopingTest.xtend @@ -42,7 +42,7 @@ class NodeScopingTest { @Test def void implicitNodeInAssertionTest() { val it = parseHelper.parse(''' - pred predicate(node x, node y) :- node(x). + pred predicate(node x, node y) <=> node(x). predicate(a, a). ?predicate(a, b). ''') @@ -66,7 +66,7 @@ class NodeScopingTest { def void implicitNodeInPredicateTest() { val it = parseHelper.parse(''' - pred predicate(node a) :- node(b). + pred predicate(node a) <=> node(b). predicate(b). ''') assertThat(errors, empty) @@ -78,7 +78,7 @@ class NodeScopingTest { @Test def void quotedNodeInAssertionTest() { val it = parseHelper.parse(''' - pred predicate(node x, node y) :- node(x). + pred predicate(node x, node y) <=> node(x). predicate('a', 'a'). ?predicate('a', 'b'). ''') @@ -103,7 +103,7 @@ class NodeScopingTest { @Test def void quotedNodeInPredicateTest() { val it = parseHelper.parse(''' - pred predicate(node a) :- node('b'). + pred predicate(node a) <=> node('b'). ''') assertThat(errors, empty) assertThat(nodeNames, hasItem("'b'")) @@ -114,7 +114,7 @@ class NodeScopingTest { @MethodSource("builtInNodeReferencesSource") def void builtInNodeTest(String qualifiedName) { val it = parseHelper.parse(''' - pred predicate(node x) :- node(x). + pred predicate(node x) <=> node(x). predicate(«qualifiedName»). ''') assertThat(errors, empty) @@ -137,7 +137,7 @@ class NodeScopingTest { @MethodSource("builtInNodeReferencesSource") def void builtInNodeInPredicateTest(String qualifiedName) { val it = parseHelper.parse(''' - pred predicate(node x) :- node(«qualifiedName»). + pred predicate(node x) <=> node(«qualifiedName»). ''') assertThat(errors, empty) assertThat(pred("predicate").conj(0).lit(0).arg(0).node, equalTo(builtin.findClass('int').newNode)) @@ -156,7 +156,7 @@ class NodeScopingTest { val it = parseHelper.parse(''' «IF namedProblem»problem test.«ENDIF» class Foo. - pred predicate(node x) :- node(x). + pred predicate(node x) <=> node(x). predicate(«qualifiedName»). ''') assertThat(errors, empty) @@ -183,7 +183,7 @@ class NodeScopingTest { val it = parseHelper.parse(''' «IF namedProblem»problem test.«ENDIF» class Foo. - pred predicate(node x) :- node(«qualifiedName»). + pred predicate(node x) <=> node(«qualifiedName»). ''') assertThat(errors, empty) assertThat(pred("predicate").conj(0).lit(0).arg(0).node, equalTo(findClass('Foo').newNode)) @@ -201,7 +201,7 @@ class NodeScopingTest { def void newNodeIsNotSpecial() { val it = parseHelper.parse(''' class Foo. - pred predicate(node x) :- node(x). + pred predicate(node x) <=> node(x). predicate(new). ''') assertThat(errors, empty) @@ -215,7 +215,7 @@ class NodeScopingTest { val it = parseHelper.parse(''' «IF namedProblem»problem test.«ENDIF» enum Foo { alpha, beta } - pred predicate(Foo a) :- node(a). + pred predicate(Foo a) <=> node(a). predicate(«qualifiedName»). ''') assertThat(errors, empty) @@ -242,7 +242,7 @@ class NodeScopingTest { val it = parseHelper.parse(''' «IF namedProblem»problem test.«ENDIF» enum Foo { alpha, beta } - pred predicate(Foo a) :- node(«qualifiedName»). + pred predicate(Foo a) <=> node(«qualifiedName»). ''') assertThat(errors, empty) assertThat(nodes, empty) @@ -264,7 +264,7 @@ class NodeScopingTest { @MethodSource("builtInEnumLiteralReferencesSource") def void builtInEnumLiteralTest(String qualifiedName) { val it = parseHelper.parse(''' - pred predicate(node a) :- node(a). + pred predicate(node a) <=> node(a). predicate(«qualifiedName»). ''') assertThat(errors, empty) @@ -287,7 +287,7 @@ class NodeScopingTest { @MethodSource("builtInEnumLiteralReferencesSource") def void bultInEnumLiteralInPredicateTest(String qualifiedName) { val it = parseHelper.parse(''' - pred predicate() :- node(«qualifiedName»). + pred predicate() <=> node(«qualifiedName»). ''') assertThat(errors, empty) assertThat(pred("predicate").conj(0).lit(0).arg(0).node, equalTo(builtin.findEnum("bool").literal("true"))) -- cgit v1.2.3-54-g00ecf