diff options
author | Kristóf Marussy <kristof@marussy.com> | 2021-06-26 21:43:55 +0200 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2021-06-26 21:43:55 +0200 |
commit | e92ebe4a61a106ff9c0e8f5bbbc3632f1dc60009 (patch) | |
tree | 29ae119d1e17ace16115a82eef60b5b0bd886aba /org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main | |
parent | Add initial prototype (diff) | |
download | refinery-e92ebe4a61a106ff9c0e8f5bbbc3632f1dc60009.tar.gz refinery-e92ebe4a61a106ff9c0e8f5bbbc3632f1dc60009.tar.zst refinery-e92ebe4a61a106ff9c0e8f5bbbc3632f1dc60009.zip |
FIx scoping, extend grammar
Diffstat (limited to 'org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main')
4 files changed, 34 insertions, 24 deletions
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/index.html b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/index.html index bf55f237..112adb74 100644 --- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/index.html +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/index.html | |||
@@ -2,8 +2,8 @@ | |||
2 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | 2 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
3 | <meta http-equiv="Content-Language" content="en-us"> | 3 | <meta http-equiv="Content-Language" content="en-us"> |
4 | <title>Example Web Editor</title> | 4 | <title>Example Web Editor</title> |
5 | <link rel="stylesheet" type="text/css" href="webjars/codemirror/5.41.0/lib/codemirror.css" /> | 5 | <link rel="stylesheet" type="text/css" href="webjars/codemirror/5.52.2/lib/codemirror.css" /> |
6 | <link rel="stylesheet" type="text/css" href="webjars/codemirror/5.41.0/addon/hint/show-hint.css" /> | 6 | <link rel="stylesheet" type="text/css" href="webjars/codemirror/5.52.2/addon/hint/show-hint.css" /> |
7 | <link rel="stylesheet" type="text/css" href="xtext/2.26.0.M1/xtext-codemirror.css" /> | 7 | <link rel="stylesheet" type="text/css" href="xtext/2.26.0.M1/xtext-codemirror.css" /> |
8 | <link rel="stylesheet" type="text/css" href="style.css" /> | 8 | <link rel="stylesheet" type="text/css" href="style.css" /> |
9 | <body> | 9 | <body> |
@@ -16,22 +16,24 @@ | |||
16 | data-editor-xtext-lang="problem" | 16 | data-editor-xtext-lang="problem" |
17 | data-editor-enable-formatting-action="true" | 17 | data-editor-enable-formatting-action="true" |
18 | data-editor-send-full-text="false" | 18 | data-editor-send-full-text="false" |
19 | ><pre>class Family | 19 | ><pre>class Family { |
20 | contains Person[0..*] members. | 20 | contains Person[] members |
21 | } | ||
21 | 22 | ||
22 | class Person | 23 | class Person { |
23 | refers Person[0..*] children opposite parent, | 24 | refers Person[] children opposite parent |
24 | refers Person[0..1] parent opposite children. | 25 | refers Person parent opposite children |
26 | } | ||
25 | 27 | ||
26 | error loop(Person p) := children+(p, p). | 28 | error loop(Person p) :- children+(p, p). |
27 | 29 | ||
28 | error multipleRoots(Person p, Person q) := | 30 | error multipleRoots(Person p, Person q) :- |
29 | !equals(p, q), !parent(p, _), !parent(q, _). | 31 | !equals(p, q), !parent(p, _), !parent(q, _). |
30 | 32 | ||
31 | Family(family). | 33 | Family('family'). |
32 | members(family, anne). | 34 | members('family', anne). |
33 | members(family, bob). | 35 | members('family', bob). |
34 | members(family, ciri). | 36 | members('family', ciri). |
35 | children(anne, ciri). | 37 | children(anne, ciri). |
36 | ?children(bob, ciri). | 38 | ?children(bob, ciri). |
37 | 39 | ||
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/script.js b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/script.js index fcaca4a4..dced7eca 100644 --- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/script.js +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/script.js | |||
@@ -11,7 +11,7 @@ require.config({ | |||
11 | }, | 11 | }, |
12 | packages: [{ | 12 | packages: [{ |
13 | name: "codemirror", | 13 | name: "codemirror", |
14 | location: "webjars/codemirror/5.41.0", | 14 | location: "webjars/codemirror/5.52.2", |
15 | main: "lib/codemirror" | 15 | main: "lib/codemirror" |
16 | }] | 16 | }] |
17 | }); | 17 | }); |
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/style.css b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/style.css index f1551c3d..b24610f4 100644 --- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/style.css +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/style.css | |||
@@ -70,22 +70,30 @@ a:hover { | |||
70 | color: #8b8816; | 70 | color: #8b8816; |
71 | } | 71 | } |
72 | 72 | ||
73 | .problem-reference, .problem-containment, .problem-predicate { | 73 | .problem-reference { |
74 | color: #0000c0; | 74 | color: #0000c0; |
75 | } | 75 | } |
76 | 76 | ||
77 | .problem-error { | 77 | .problem-containment { |
78 | color: #ab3000; | 78 | font-weight: bold; |
79 | } | 79 | } |
80 | 80 | ||
81 | .problem-containment { | 81 | .problem-node { |
82 | color: inherit !important; | ||
83 | } | ||
84 | |||
85 | .problem-enum-node { | ||
82 | font-weight: bold; | 86 | font-weight: bold; |
83 | } | 87 | } |
84 | 88 | ||
85 | .problem-parameter, .problem-variable { | 89 | .problem-new-node { |
90 | font-style: italic; | ||
91 | } | ||
92 | |||
93 | .problem-variable { | ||
86 | color: #6a3e3e; | 94 | color: #6a3e3e; |
87 | } | 95 | } |
88 | 96 | ||
89 | .problem-node { | 97 | .problem-singleton-variable { |
90 | text-decoration: underline; | 98 | opacity: 0.7; |
91 | } | 99 | } |
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/xtext-resources/generated/mode-problem.js b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/xtext-resources/generated/mode-problem.js index ab748b03..0abfa5ee 100644 --- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/xtext-resources/generated/mode-problem.js +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/xtext-resources/generated/mode-problem.js | |||
@@ -1,5 +1,5 @@ | |||
1 | define(["codemirror", "codemirror/addon/mode/simple"], function(CodeMirror, SimpleMode) { | 1 | define(["codemirror", "codemirror/addon/mode/simple"], function(CodeMirror, SimpleMode) { |
2 | var keywords = "abstract|class|contains|error|extends|false|opposite|pred|refers|scope|true|unknown"; | 2 | var keywords = "abstract|class|contains|error|extends|false|opposite|pred|problem|refers|scope|true|unknown"; |
3 | CodeMirror.defineSimpleMode("xtext/problem", { | 3 | CodeMirror.defineSimpleMode("xtext/problem", { |
4 | start: [ | 4 | start: [ |
5 | {token: "comment", regex: "\\/\\/.*$"}, | 5 | {token: "comment", regex: "\\/\\/.*$"}, |
@@ -7,8 +7,8 @@ define(["codemirror", "codemirror/addon/mode/simple"], function(CodeMirror, Simp | |||
7 | {token: "string", regex: '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'}, | 7 | {token: "string", regex: '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'}, |
8 | {token: "string", regex: "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"}, | 8 | {token: "string", regex: "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"}, |
9 | {token: "constant.numeric", regex: "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"}, | 9 | {token: "constant.numeric", regex: "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"}, |
10 | {token: "lparen", regex: "[\\[(]"}, | 10 | {token: "lparen", regex: "[\\[({]"}, |
11 | {token: "rparen", regex: "[\\])]"}, | 11 | {token: "rparen", regex: "[\\])}]"}, |
12 | {token: "keyword", regex: "\\b(?:" + keywords + ")\\b"} | 12 | {token: "keyword", regex: "\\b(?:" + keywords + ")\\b"} |
13 | ], | 13 | ], |
14 | comment: [ | 14 | comment: [ |