aboutsummaryrefslogtreecommitdiffstats
path: root/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/patterns
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <oszka@192.168.122.1>2017-08-20 01:55:38 +0200
committerLibravatar OszkarSemerath <oszka@192.168.122.1>2017-08-20 01:55:38 +0200
commit78c806eebaf5b9d50b08768062755f0044cf107f (patch)
tree7db4d1b6a990b2572ed82a747dffac65a1c6fcc5 /Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/patterns
parentnull check before mapping value of a reference (diff)
downloadVIATRA-Generator-78c806eebaf5b9d50b08768062755f0044cf107f.tar.gz
VIATRA-Generator-78c806eebaf5b9d50b08768062755f0044cf107f.tar.zst
VIATRA-Generator-78c806eebaf5b9d50b08768062755f0044cf107f.zip
Alloy Examples
Diffstat (limited to 'Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/patterns')
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/patterns/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/Ecore.vql29
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/patterns/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/FileSystem.vql24
2 files changed, 53 insertions, 0 deletions
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/patterns/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/Ecore.vql b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/patterns/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/Ecore.vql
new file mode 100644
index 00000000..78525a35
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/patterns/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/Ecore.vql
@@ -0,0 +1,29 @@
1package hu.bme.mit.inf.dslreasoner.domains.alloyexamples
2
3import epackage "http://www.eclipse.org/emf/2002/Ecore"
4
5pattern directSupertype(a: EClass, b:EClass) {
6 EClass.eSuperTypes(a,b);
7}
8
9@Constraint(key={a}, severity="error", message="error")
10pattern loopInInheritence(a: EClass) {
11 find directSupertype+(a,a);
12}
13
14pattern opposite(a:EReference, b: EReference) {
15 EReference.eOpposite(a,b);
16}
17@Constraint(key={a}, severity="error", message="error")
18pattern oppositeDifferentClass(a:EReference) {
19 EReference.eOpposite(a,b);
20 EReference.eContainingClass(a,aContaining);
21 EReference.eType(b,bTarget);
22 aContaining != bTarget;
23}
24
25@Constraint(key={a}, severity="error", message="error")
26pattern nonSymmetricOpposite(a:EReference, b:EReference) {
27 find opposite(a,b);
28 neg find opposite(b,a);
29} \ No newline at end of file
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/patterns/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/FileSystem.vql b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/patterns/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/FileSystem.vql
new file mode 100644
index 00000000..719a9d96
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.alloyexamples/patterns/hu/bme/mit/inf/dslreasoner/domains/alloyexamples/FileSystem.vql
@@ -0,0 +1,24 @@
1package hu.bme.mit.inf.dslreasoner.domains.alloyexamples
2
3import epackage "FS"
4
5pattern patternContent(o1: FSObject, o2: FSObject) {
6 Dir.contents(o1,o2);
7}
8
9@QueryBasedFeature
10pattern live(this: FileSystem, l: FSObject) {
11 FileSystem.root(this,l);
12} or {
13 FileSystem.root(this,root);
14 find patternContent+(root,l);
15}
16
17@Constraint(key={child}, severity="error", message="error")
18pattern contentInNotLive(parent : Dir, child: FSObject) {
19 Dir.contents(parent,child);
20 neg find live(_,parent);
21} or {
22 Dir.contents(parent,child);
23 neg find live(_,child);
24}