diff options
Diffstat (limited to 'language/src/main/java')
-rw-r--r-- | language/src/main/java/tools/refinery/language/Problem.xtext | 14 | ||||
-rw-r--r-- | language/src/main/java/tools/refinery/language/validation/ProblemValidator.java | 2 |
2 files changed, 8 insertions, 8 deletions
diff --git a/language/src/main/java/tools/refinery/language/Problem.xtext b/language/src/main/java/tools/refinery/language/Problem.xtext index b7562759..26773047 100644 --- a/language/src/main/java/tools/refinery/language/Problem.xtext +++ b/language/src/main/java/tools/refinery/language/Problem.xtext | |||
@@ -109,12 +109,12 @@ ConstantArgument: | |||
109 | 109 | ||
110 | Assertion: | 110 | Assertion: |
111 | default?="default"? | 111 | default?="default"? |
112 | (relation=[Relation|QualifiedName] | 112 | (value=ShortLogicValue? |
113 | "(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")" | ||
114 | ":" value=LogicValue | | ||
115 | value=ShortLogicValue? | ||
116 | relation=[Relation|QualifiedName] | 113 | relation=[Relation|QualifiedName] |
117 | "(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")") | 114 | "(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")" |
115 | | relation=[Relation|QualifiedName] | ||
116 | "(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")" | ||
117 | ":" value=LogicValue) | ||
118 | "."; | 118 | "."; |
119 | 119 | ||
120 | AssertionArgument: | 120 | AssertionArgument: |
@@ -174,7 +174,7 @@ ExactMultiplicity: | |||
174 | exactValue=INT; | 174 | exactValue=INT; |
175 | 175 | ||
176 | IndividualDeclaration: | 176 | IndividualDeclaration: |
177 | "individual" nodes+=EnumLiteral ("," nodes+=EnumLiteral)* "."; | 177 | "indiv" nodes+=EnumLiteral ("," nodes+=EnumLiteral)* "."; |
178 | 178 | ||
179 | UpperBound returns ecore::EInt: | 179 | UpperBound returns ecore::EInt: |
180 | INT | "*"; | 180 | INT | "*"; |
@@ -184,7 +184,7 @@ QualifiedName hidden(): | |||
184 | 184 | ||
185 | Identifier: | 185 | Identifier: |
186 | ID | "true" | "false" | "unknown" | "error" | "class" | "abstract" | "extends" | "enum" | "pred" | | 186 | ID | "true" | "false" | "unknown" | "error" | "class" | "abstract" | "extends" | "enum" | "pred" | |
187 | "individual" | "problem" | "new" | "delete" | "direct" | "rule"; | 187 | "indiv" | "problem" | "new" | "delete" | "direct" | "rule"; |
188 | 188 | ||
189 | Integer returns ecore::EInt hidden(): | 189 | Integer returns ecore::EInt hidden(): |
190 | "-"? INT; | 190 | "-"? INT; |
diff --git a/language/src/main/java/tools/refinery/language/validation/ProblemValidator.java b/language/src/main/java/tools/refinery/language/validation/ProblemValidator.java index 3c10d39e..975fdca2 100644 --- a/language/src/main/java/tools/refinery/language/validation/ProblemValidator.java +++ b/language/src/main/java/tools/refinery/language/validation/ProblemValidator.java | |||
@@ -53,7 +53,7 @@ public class ProblemValidator extends AbstractProblemValidator { | |||
53 | var variableOrNode = argument.getVariableOrNode(); | 53 | var variableOrNode = argument.getVariableOrNode(); |
54 | if (variableOrNode instanceof Node node && !ProblemUtil.isIndividualNode(node)) { | 54 | if (variableOrNode instanceof Node node && !ProblemUtil.isIndividualNode(node)) { |
55 | var name = node.getName(); | 55 | var name = node.getName(); |
56 | var message = "Only individual nodes can be referenced in predicates. Mark '%s' as individual with the declaration 'individual %s.'" | 56 | var message = "Only individual nodes can be referenced in predicates. Mark '%s' as individual with the declaration 'indiv %s.'" |
57 | .formatted(name, name); | 57 | .formatted(name, name); |
58 | error(message, argument, ProblemPackage.Literals.VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE, | 58 | error(message, argument, ProblemPackage.Literals.VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE, |
59 | INSIGNIFICANT_INDEX, NON_INDIVIDUAL_NODE_ISSUE); | 59 | INSIGNIFICANT_INDEX, NON_INDIVIDUAL_NODE_ISSUE); |