aboutsummaryrefslogtreecommitdiffstats
path: root/Application/org.eclipse.viatra.solver.language/src-gen
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <marussy@mit.bme.hu>2020-06-23 15:17:00 +0200
committerLibravatar Kristóf Marussy <marussy@mit.bme.hu>2020-06-23 15:17:00 +0200
commit42c58bbeead1dae09c51f47abc8e10dfbb9c3f9f (patch)
tree21d49c3a1dadc54dda399a4b8cfe8dc028563f51 /Application/org.eclipse.viatra.solver.language/src-gen
parentMeasurements framework fixes (diff)
downloadVIATRA-Generator-42c58bbeead1dae09c51f47abc8e10dfbb9c3f9f.tar.gz
VIATRA-Generator-42c58bbeead1dae09c51f47abc8e10dfbb9c3f9f.tar.zst
VIATRA-Generator-42c58bbeead1dae09c51f47abc8e10dfbb9c3f9f.zip
New configuration language parser WIP
Diffstat (limited to 'Application/org.eclipse.viatra.solver.language/src-gen')
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/AbstractSolverLanguageRuntimeModule.java7
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguage.xtextbinbin13021 -> 14135 bytes
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.g2871
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.java8995
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.tokens139
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.g30
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.java1325
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.tokens139
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSemanticSequencer.java1375
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSyntacticSequencer.java87
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/services/SolverLanguageGrammarAccess.java2840
11 files changed, 10398 insertions, 7410 deletions
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/AbstractSolverLanguageRuntimeModule.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/AbstractSolverLanguageRuntimeModule.java
index 4bf254b2..a02b3ab2 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/AbstractSolverLanguageRuntimeModule.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/AbstractSolverLanguageRuntimeModule.java
@@ -28,9 +28,11 @@ import org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider;
28import org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter; 28import org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter;
29import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider; 29import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
30import org.eclipse.xtext.parser.antlr.ITokenDefProvider; 30import org.eclipse.xtext.parser.antlr.ITokenDefProvider;
31import org.eclipse.xtext.parser.antlr.IUnorderedGroupHelper;
31import org.eclipse.xtext.parser.antlr.Lexer; 32import org.eclipse.xtext.parser.antlr.Lexer;
32import org.eclipse.xtext.parser.antlr.LexerBindings; 33import org.eclipse.xtext.parser.antlr.LexerBindings;
33import org.eclipse.xtext.parser.antlr.LexerProvider; 34import org.eclipse.xtext.parser.antlr.LexerProvider;
35import org.eclipse.xtext.parser.antlr.UnorderedGroupHelper;
34import org.eclipse.xtext.resource.IContainer; 36import org.eclipse.xtext.resource.IContainer;
35import org.eclipse.xtext.resource.IResourceDescriptions; 37import org.eclipse.xtext.resource.IResourceDescriptions;
36import org.eclipse.xtext.resource.containers.IAllContainersState; 38import org.eclipse.xtext.resource.containers.IAllContainersState;
@@ -137,6 +139,11 @@ public abstract class AbstractSolverLanguageRuntimeModule extends DefaultRuntime
137 .to(InternalSolverLanguageLexer.class); 139 .to(InternalSolverLanguageLexer.class);
138 } 140 }
139 141
142 // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
143 public Class<? extends IUnorderedGroupHelper> bindIUnorderedGroupHelper() {
144 return UnorderedGroupHelper.class;
145 }
146
140 // contributed by org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2 147 // contributed by org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2
141 @SingletonBinding(eager=true) 148 @SingletonBinding(eager=true)
142 public Class<? extends SolverLanguageValidator> bindSolverLanguageValidator() { 149 public Class<? extends SolverLanguageValidator> bindSolverLanguageValidator() {
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguage.xtextbin b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguage.xtextbin
index da513ba9..0fa5d0d7 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguage.xtextbin
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguage.xtextbin
Binary files differ
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.g b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.g
index 8ec69aaa..eb6f05c7 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.g
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.g
@@ -71,23 +71,73 @@ ruleProblem returns [EObject current=null]
71}: 71}:
72 ( 72 (
73 ( 73 (
74 otherlv_0=Problem
74 { 75 {
75 newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_0()); 76 newLeafNode(otherlv_0, grammarAccess.getProblemAccess().getProblemKeyword_0_0());
76 } 77 }
77 lv_statements_0_0=ruleStatement 78 (
79 (
80 {
81 newCompositeNode(grammarAccess.getProblemAccess().getNameQualifiedNameParserRuleCall_0_1_0());
82 }
83 lv_name_1_0=ruleQualifiedName
84 {
85 if ($current==null) {
86 $current = createModelElementForParent(grammarAccess.getProblemRule());
87 }
88 set(
89 $current,
90 "name",
91 lv_name_1_0,
92 "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName");
93 afterParserOrEnumRuleCall();
94 }
95 )
96 )
97 this_FULL_STOP_2=RULE_FULL_STOP
78 { 98 {
79 if ($current==null) { 99 newLeafNode(this_FULL_STOP_2, grammarAccess.getProblemAccess().getFULL_STOPTerminalRuleCall_0_2());
80 $current = createModelElementForParent(grammarAccess.getProblemRule());
81 }
82 add(
83 $current,
84 "statements",
85 lv_statements_0_0,
86 "org.eclipse.viatra.solver.language.SolverLanguage.Statement");
87 afterParserOrEnumRuleCall();
88 } 100 }
89 ) 101 )?
90 )* 102 (
103 (
104 {
105 newCompositeNode(grammarAccess.getProblemAccess().getImportsImportParserRuleCall_1_0());
106 }
107 lv_imports_3_0=ruleImport
108 {
109 if ($current==null) {
110 $current = createModelElementForParent(grammarAccess.getProblemRule());
111 }
112 add(
113 $current,
114 "imports",
115 lv_imports_3_0,
116 "org.eclipse.viatra.solver.language.SolverLanguage.Import");
117 afterParserOrEnumRuleCall();
118 }
119 )
120 )*
121 (
122 (
123 {
124 newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_2_0());
125 }
126 lv_statements_4_0=ruleStatement
127 {
128 if ($current==null) {
129 $current = createModelElementForParent(grammarAccess.getProblemRule());
130 }
131 add(
132 $current,
133 "statements",
134 lv_statements_4_0,
135 "org.eclipse.viatra.solver.language.SolverLanguage.Statement");
136 afterParserOrEnumRuleCall();
137 }
138 )
139 )*
140 )
91; 141;
92 142
93// Entry rule entryRuleStatement 143// Entry rule entryRuleStatement
@@ -106,118 +156,280 @@ ruleStatement returns [EObject current=null]
106 leaveRule(); 156 leaveRule();
107}: 157}:
108 ( 158 (
159 {
160 newCompositeNode(grammarAccess.getStatementAccess().getAssertionOrDefinitionParserRuleCall_0());
161 }
162 this_AssertionOrDefinition_0=ruleAssertionOrDefinition
163 {
164 $current = $this_AssertionOrDefinition_0.current;
165 afterParserOrEnumRuleCall();
166 }
167 |
168 {
169 newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_1());
170 }
171 this_PredicateDefinition_1=rulePredicateDefinition
172 {
173 $current = $this_PredicateDefinition_1.current;
174 afterParserOrEnumRuleCall();
175 }
176 |
177 {
178 newCompositeNode(grammarAccess.getStatementAccess().getUnnamedErrorPredicateDefintionParserRuleCall_2());
179 }
180 this_UnnamedErrorPredicateDefintion_2=ruleUnnamedErrorPredicateDefintion
181 {
182 $current = $this_UnnamedErrorPredicateDefintion_2.current;
183 afterParserOrEnumRuleCall();
184 }
185 |
186 {
187 newCompositeNode(grammarAccess.getStatementAccess().getDefaultAssertionParserRuleCall_3());
188 }
189 this_DefaultAssertion_3=ruleDefaultAssertion
190 {
191 $current = $this_DefaultAssertion_3.current;
192 afterParserOrEnumRuleCall();
193 }
194 |
195 {
196 newCompositeNode(grammarAccess.getStatementAccess().getFunctionDefinitionParserRuleCall_4());
197 }
198 this_FunctionDefinition_4=ruleFunctionDefinition
199 {
200 $current = $this_FunctionDefinition_4.current;
201 afterParserOrEnumRuleCall();
202 }
203 |
204 {
205 newCompositeNode(grammarAccess.getStatementAccess().getAttributeParserRuleCall_5());
206 }
207 this_Attribute_5=ruleAttribute
208 {
209 $current = $this_Attribute_5.current;
210 afterParserOrEnumRuleCall();
211 }
212 |
213 {
214 newCompositeNode(grammarAccess.getStatementAccess().getExternDeclarationParserRuleCall_6());
215 }
216 this_ExternDeclaration_6=ruleExternDeclaration
217 {
218 $current = $this_ExternDeclaration_6.current;
219 afterParserOrEnumRuleCall();
220 }
221 |
222 {
223 newCompositeNode(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_7());
224 }
225 this_ScopeDeclaration_7=ruleScopeDeclaration
226 {
227 $current = $this_ScopeDeclaration_7.current;
228 afterParserOrEnumRuleCall();
229 }
230 |
231 {
232 newCompositeNode(grammarAccess.getStatementAccess().getObjectiveDeclarationParserRuleCall_8());
233 }
234 this_ObjectiveDeclaration_8=ruleObjectiveDeclaration
235 {
236 $current = $this_ObjectiveDeclaration_8.current;
237 afterParserOrEnumRuleCall();
238 }
239 |
240 {
241 newCompositeNode(grammarAccess.getStatementAccess().getClassDeclarationParserRuleCall_9());
242 }
243 this_ClassDeclaration_9=ruleClassDeclaration
244 {
245 $current = $this_ClassDeclaration_9.current;
246 afterParserOrEnumRuleCall();
247 }
248 |
249 {
250 newCompositeNode(grammarAccess.getStatementAccess().getEnumDeclarationParserRuleCall_10());
251 }
252 this_EnumDeclaration_10=ruleEnumDeclaration
253 {
254 $current = $this_EnumDeclaration_10.current;
255 afterParserOrEnumRuleCall();
256 }
257 )
258;
259
260// Entry rule entryRuleImport
261entryRuleImport returns [EObject current=null]:
262 { newCompositeNode(grammarAccess.getImportRule()); }
263 iv_ruleImport=ruleImport
264 { $current=$iv_ruleImport.current; }
265 EOF;
266
267// Rule Import
268ruleImport returns [EObject current=null]
269@init {
270 enterRule();
271}
272@after {
273 leaveRule();
274}:
275 (
276 {
277 newCompositeNode(grammarAccess.getImportAccess().getUriImportParserRuleCall_0());
278 }
279 this_UriImport_0=ruleUriImport
280 {
281 $current = $this_UriImport_0.current;
282 afterParserOrEnumRuleCall();
283 }
284 |
285 {
286 newCompositeNode(grammarAccess.getImportAccess().getNamespaceImportParserRuleCall_1());
287 }
288 this_NamespaceImport_1=ruleNamespaceImport
289 {
290 $current = $this_NamespaceImport_1.current;
291 afterParserOrEnumRuleCall();
292 }
293 )
294;
295
296// Entry rule entryRuleUriImport
297entryRuleUriImport returns [EObject current=null]:
298 { newCompositeNode(grammarAccess.getUriImportRule()); }
299 iv_ruleUriImport=ruleUriImport
300 { $current=$iv_ruleUriImport.current; }
301 EOF;
302
303// Rule UriImport
304ruleUriImport returns [EObject current=null]
305@init {
306 enterRule();
307}
308@after {
309 leaveRule();
310}:
311 (
312 otherlv_0=Import
313 {
314 newLeafNode(otherlv_0, grammarAccess.getUriImportAccess().getImportKeyword_0());
315 }
109 ( 316 (
317 (
318 lv_uri_1_0=RULE_STRING
319 {
320 newLeafNode(lv_uri_1_0, grammarAccess.getUriImportAccess().getUriSTRINGTerminalRuleCall_1_0());
321 }
322 {
323 if ($current==null) {
324 $current = createModelElement(grammarAccess.getUriImportRule());
325 }
326 setWithLastConsumed(
327 $current,
328 "uri",
329 lv_uri_1_0,
330 "org.eclipse.viatra.solver.language.SolverLanguage.STRING");
331 }
332 )
333 )
334 (
335 otherlv_2=As
110 { 336 {
111 newCompositeNode(grammarAccess.getStatementAccess().getAssertionOrDefinitionParserRuleCall_0_0()); 337 newLeafNode(otherlv_2, grammarAccess.getUriImportAccess().getAsKeyword_2_0());
112 }
113 this_AssertionOrDefinition_0=ruleAssertionOrDefinition
114 {
115 $current = $this_AssertionOrDefinition_0.current;
116 afterParserOrEnumRuleCall();
117 }
118 |
119 {
120 newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_0_1());
121 }
122 this_PredicateDefinition_1=rulePredicateDefinition
123 {
124 $current = $this_PredicateDefinition_1.current;
125 afterParserOrEnumRuleCall();
126 }
127 |
128 {
129 newCompositeNode(grammarAccess.getStatementAccess().getUnnamedErrorPrediateDefinitionParserRuleCall_0_2());
130 }
131 this_UnnamedErrorPrediateDefinition_2=ruleUnnamedErrorPrediateDefinition
132 {
133 $current = $this_UnnamedErrorPrediateDefinition_2.current;
134 afterParserOrEnumRuleCall();
135 }
136 |
137 {
138 newCompositeNode(grammarAccess.getStatementAccess().getDefaultDefinitionParserRuleCall_0_3());
139 }
140 this_DefaultDefinition_3=ruleDefaultDefinition
141 {
142 $current = $this_DefaultDefinition_3.current;
143 afterParserOrEnumRuleCall();
144 }
145 |
146 {
147 newCompositeNode(grammarAccess.getStatementAccess().getMetricDefinitionParserRuleCall_0_4());
148 }
149 this_MetricDefinition_4=ruleMetricDefinition
150 {
151 $current = $this_MetricDefinition_4.current;
152 afterParserOrEnumRuleCall();
153 }
154 |
155 {
156 newCompositeNode(grammarAccess.getStatementAccess().getExternPredicateDefinitionParserRuleCall_0_5());
157 }
158 this_ExternPredicateDefinition_5=ruleExternPredicateDefinition
159 {
160 $current = $this_ExternPredicateDefinition_5.current;
161 afterParserOrEnumRuleCall();
162 }
163 |
164 {
165 newCompositeNode(grammarAccess.getStatementAccess().getExternMetricDefinitionParserRuleCall_0_6());
166 }
167 this_ExternMetricDefinition_6=ruleExternMetricDefinition
168 {
169 $current = $this_ExternMetricDefinition_6.current;
170 afterParserOrEnumRuleCall();
171 }
172 |
173 {
174 newCompositeNode(grammarAccess.getStatementAccess().getExternAggregatorDefinitionParserRuleCall_0_7());
175 }
176 this_ExternAggregatorDefinition_7=ruleExternAggregatorDefinition
177 {
178 $current = $this_ExternAggregatorDefinition_7.current;
179 afterParserOrEnumRuleCall();
180 }
181 |
182 {
183 newCompositeNode(grammarAccess.getStatementAccess().getExternDatatypeDefinitionParserRuleCall_0_8());
184 }
185 this_ExternDatatypeDefinition_8=ruleExternDatatypeDefinition
186 {
187 $current = $this_ExternDatatypeDefinition_8.current;
188 afterParserOrEnumRuleCall();
189 }
190 |
191 {
192 newCompositeNode(grammarAccess.getStatementAccess().getClassDefinitionParserRuleCall_0_9());
193 }
194 this_ClassDefinition_9=ruleClassDefinition
195 {
196 $current = $this_ClassDefinition_9.current;
197 afterParserOrEnumRuleCall();
198 }
199 |
200 {
201 newCompositeNode(grammarAccess.getStatementAccess().getScopeDefinitionParserRuleCall_0_10());
202 }
203 this_ScopeDefinition_10=ruleScopeDefinition
204 {
205 $current = $this_ScopeDefinition_10.current;
206 afterParserOrEnumRuleCall();
207 }
208 |
209 {
210 newCompositeNode(grammarAccess.getStatementAccess().getObjectiveDefinitionParserRuleCall_0_11());
211 } 338 }
212 this_ObjectiveDefinition_11=ruleObjectiveDefinition 339 (
340 (
341 {
342 newCompositeNode(grammarAccess.getUriImportAccess().getAliasQualifiedNameParserRuleCall_2_1_0());
343 }
344 lv_alias_3_0=ruleQualifiedName
345 {
346 if ($current==null) {
347 $current = createModelElementForParent(grammarAccess.getUriImportRule());
348 }
349 set(
350 $current,
351 "alias",
352 lv_alias_3_0,
353 "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName");
354 afterParserOrEnumRuleCall();
355 }
356 )
357 )
358 )
359 this_FULL_STOP_4=RULE_FULL_STOP
360 {
361 newLeafNode(this_FULL_STOP_4, grammarAccess.getUriImportAccess().getFULL_STOPTerminalRuleCall_3());
362 }
363 )
364;
365
366// Entry rule entryRuleNamespaceImport
367entryRuleNamespaceImport returns [EObject current=null]:
368 { newCompositeNode(grammarAccess.getNamespaceImportRule()); }
369 iv_ruleNamespaceImport=ruleNamespaceImport
370 { $current=$iv_ruleNamespaceImport.current; }
371 EOF;
372
373// Rule NamespaceImport
374ruleNamespaceImport returns [EObject current=null]
375@init {
376 enterRule();
377}
378@after {
379 leaveRule();
380}:
381 (
382 otherlv_0=Import
383 {
384 newLeafNode(otherlv_0, grammarAccess.getNamespaceImportAccess().getImportKeyword_0());
385 }
386 (
387 (
388 {
389 newCompositeNode(grammarAccess.getNamespaceImportAccess().getImportedNamespaceQualifiedNameParserRuleCall_1_0());
390 }
391 lv_importedNamespace_1_0=ruleQualifiedName
392 {
393 if ($current==null) {
394 $current = createModelElementForParent(grammarAccess.getNamespaceImportRule());
395 }
396 set(
397 $current,
398 "importedNamespace",
399 lv_importedNamespace_1_0,
400 "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName");
401 afterParserOrEnumRuleCall();
402 }
403 )
404 )
405 (
406 otherlv_2=As
213 { 407 {
214 $current = $this_ObjectiveDefinition_11.current; 408 newLeafNode(otherlv_2, grammarAccess.getNamespaceImportAccess().getAsKeyword_2_0());
215 afterParserOrEnumRuleCall();
216 } 409 }
410 (
411 (
412 {
413 newCompositeNode(grammarAccess.getNamespaceImportAccess().getAliasQualifiedNameParserRuleCall_2_1_0());
414 }
415 lv_alias_3_0=ruleQualifiedName
416 {
417 if ($current==null) {
418 $current = createModelElementForParent(grammarAccess.getNamespaceImportRule());
419 }
420 set(
421 $current,
422 "alias",
423 lv_alias_3_0,
424 "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName");
425 afterParserOrEnumRuleCall();
426 }
427 )
428 )
217 ) 429 )
218 this_FULL_STOP_12=RULE_FULL_STOP 430 this_FULL_STOP_4=RULE_FULL_STOP
219 { 431 {
220 newLeafNode(this_FULL_STOP_12, grammarAccess.getStatementAccess().getFULL_STOPTerminalRuleCall_1()); 432 newLeafNode(this_FULL_STOP_4, grammarAccess.getNamespaceImportAccess().getFULL_STOPTerminalRuleCall_3());
221 } 433 }
222 ) 434 )
223; 435;
@@ -251,33 +463,35 @@ ruleAssertionOrDefinition returns [EObject current=null]
251 ( 463 (
252 { 464 {
253 $current = forceCreateModelElementAndSet( 465 $current = forceCreateModelElementAndSet(
254 grammarAccess.getAssertionOrDefinitionAccess().getInterpretationBodyAction_1_0_0(), 466 grammarAccess.getAssertionOrDefinitionAccess().getAssertionExpressionAction_1_0_0(),
255 $current); 467 $current);
256 } 468 }
257 ) 469 )
258 otherlv_2=Colon
259 {
260 newLeafNode(otherlv_2, grammarAccess.getAssertionOrDefinitionAccess().getColonKeyword_1_0_1());
261 }
262 ( 470 (
471 otherlv_2=Colon
472 {
473 newLeafNode(otherlv_2, grammarAccess.getAssertionOrDefinitionAccess().getColonKeyword_1_0_1_0());
474 }
263 ( 475 (
264 { 476 (
265 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getRangeExpressionParserRuleCall_1_0_2_0()); 477 {
266 } 478 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getRangeExpressionParserRuleCall_1_0_1_1_0());
267 lv_range_3_0=ruleExpression
268 {
269 if ($current==null) {
270 $current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule());
271 } 479 }
272 set( 480 lv_range_3_0=ruleExpression
273 $current, 481 {
274 "range", 482 if ($current==null) {
275 lv_range_3_0, 483 $current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule());
276 "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); 484 }
277 afterParserOrEnumRuleCall(); 485 set(
278 } 486 $current,
487 "range",
488 lv_range_3_0,
489 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
490 afterParserOrEnumRuleCall();
491 }
492 )
279 ) 493 )
280 ) 494 )?
281 ) 495 )
282 | 496 |
283 ( 497 (
@@ -317,13 +531,13 @@ ruleAssertionOrDefinition returns [EObject current=null]
317 ( 531 (
318 { 532 {
319 $current = forceCreateModelElementAndSet( 533 $current = forceCreateModelElementAndSet(
320 grammarAccess.getAssertionOrDefinitionAccess().getMetricDefinitionHeadAction_1_2_0(), 534 grammarAccess.getAssertionOrDefinitionAccess().getFunctionDefinitionHeadAction_1_2_0(),
321 $current); 535 $current);
322 } 536 }
323 ) 537 )
324 otherlv_8=EqualsSign 538 otherlv_8=ColonEqualsSign
325 { 539 {
326 newLeafNode(otherlv_8, grammarAccess.getAssertionOrDefinitionAccess().getEqualsSignKeyword_1_2_1()); 540 newLeafNode(otherlv_8, grammarAccess.getAssertionOrDefinitionAccess().getColonEqualsSignKeyword_1_2_1());
327 } 541 }
328 ( 542 (
329 ( 543 (
@@ -345,7 +559,11 @@ ruleAssertionOrDefinition returns [EObject current=null]
345 ) 559 )
346 ) 560 )
347 ) 561 )
348 )? 562 )
563 this_FULL_STOP_10=RULE_FULL_STOP
564 {
565 newLeafNode(this_FULL_STOP_10, grammarAccess.getAssertionOrDefinitionAccess().getFULL_STOPTerminalRuleCall_2());
566 }
349 ) 567 )
350; 568;
351 569
@@ -470,18 +688,22 @@ rulePredicateDefinition returns [EObject current=null]
470 } 688 }
471 ) 689 )
472 ) 690 )
691 this_FULL_STOP_7=RULE_FULL_STOP
692 {
693 newLeafNode(this_FULL_STOP_7, grammarAccess.getPredicateDefinitionAccess().getFULL_STOPTerminalRuleCall_4());
694 }
473 ) 695 )
474; 696;
475 697
476// Entry rule entryRuleUnnamedErrorPrediateDefinition 698// Entry rule entryRuleUnnamedErrorPredicateDefintion
477entryRuleUnnamedErrorPrediateDefinition returns [EObject current=null]: 699entryRuleUnnamedErrorPredicateDefintion returns [EObject current=null]:
478 { newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionRule()); } 700 { newCompositeNode(grammarAccess.getUnnamedErrorPredicateDefintionRule()); }
479 iv_ruleUnnamedErrorPrediateDefinition=ruleUnnamedErrorPrediateDefinition 701 iv_ruleUnnamedErrorPredicateDefintion=ruleUnnamedErrorPredicateDefintion
480 { $current=$iv_ruleUnnamedErrorPrediateDefinition.current; } 702 { $current=$iv_ruleUnnamedErrorPredicateDefintion.current; }
481 EOF; 703 EOF;
482 704
483// Rule UnnamedErrorPrediateDefinition 705// Rule UnnamedErrorPredicateDefintion
484ruleUnnamedErrorPrediateDefinition returns [EObject current=null] 706ruleUnnamedErrorPredicateDefintion returns [EObject current=null]
485@init { 707@init {
486 enterRule(); 708 enterRule();
487} 709}
@@ -491,17 +713,17 @@ ruleUnnamedErrorPrediateDefinition returns [EObject current=null]
491 ( 713 (
492 otherlv_0=Error 714 otherlv_0=Error
493 { 715 {
494 newLeafNode(otherlv_0, grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getErrorKeyword_0()); 716 newLeafNode(otherlv_0, grammarAccess.getUnnamedErrorPredicateDefintionAccess().getErrorKeyword_0());
495 } 717 }
496 ( 718 (
497 ( 719 (
498 { 720 {
499 newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getArgumentListArgumentListParserRuleCall_1_0()); 721 newCompositeNode(grammarAccess.getUnnamedErrorPredicateDefintionAccess().getArgumentListArgumentListParserRuleCall_1_0());
500 } 722 }
501 lv_argumentList_1_0=ruleArgumentList 723 lv_argumentList_1_0=ruleArgumentList
502 { 724 {
503 if ($current==null) { 725 if ($current==null) {
504 $current = createModelElementForParent(grammarAccess.getUnnamedErrorPrediateDefinitionRule()); 726 $current = createModelElementForParent(grammarAccess.getUnnamedErrorPredicateDefintionRule());
505 } 727 }
506 set( 728 set(
507 $current, 729 $current,
@@ -514,17 +736,17 @@ ruleUnnamedErrorPrediateDefinition returns [EObject current=null]
514 ) 736 )
515 otherlv_2=ColonHyphenMinus 737 otherlv_2=ColonHyphenMinus
516 { 738 {
517 newLeafNode(otherlv_2, grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getColonHyphenMinusKeyword_2()); 739 newLeafNode(otherlv_2, grammarAccess.getUnnamedErrorPredicateDefintionAccess().getColonHyphenMinusKeyword_2());
518 } 740 }
519 ( 741 (
520 ( 742 (
521 { 743 {
522 newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getBodyExpressionParserRuleCall_3_0()); 744 newCompositeNode(grammarAccess.getUnnamedErrorPredicateDefintionAccess().getBodyExpressionParserRuleCall_3_0());
523 } 745 }
524 lv_body_3_0=ruleExpression 746 lv_body_3_0=ruleExpression
525 { 747 {
526 if ($current==null) { 748 if ($current==null) {
527 $current = createModelElementForParent(grammarAccess.getUnnamedErrorPrediateDefinitionRule()); 749 $current = createModelElementForParent(grammarAccess.getUnnamedErrorPredicateDefintionRule());
528 } 750 }
529 set( 751 set(
530 $current, 752 $current,
@@ -535,18 +757,22 @@ ruleUnnamedErrorPrediateDefinition returns [EObject current=null]
535 } 757 }
536 ) 758 )
537 ) 759 )
760 this_FULL_STOP_4=RULE_FULL_STOP
761 {
762 newLeafNode(this_FULL_STOP_4, grammarAccess.getUnnamedErrorPredicateDefintionAccess().getFULL_STOPTerminalRuleCall_4());
763 }
538 ) 764 )
539; 765;
540 766
541// Entry rule entryRuleDefaultDefinition 767// Entry rule entryRuleDefaultAssertion
542entryRuleDefaultDefinition returns [EObject current=null]: 768entryRuleDefaultAssertion returns [EObject current=null]:
543 { newCompositeNode(grammarAccess.getDefaultDefinitionRule()); } 769 { newCompositeNode(grammarAccess.getDefaultAssertionRule()); }
544 iv_ruleDefaultDefinition=ruleDefaultDefinition 770 iv_ruleDefaultAssertion=ruleDefaultAssertion
545 { $current=$iv_ruleDefaultDefinition.current; } 771 { $current=$iv_ruleDefaultAssertion.current; }
546 EOF; 772 EOF;
547 773
548// Rule DefaultDefinition 774// Rule DefaultAssertion
549ruleDefaultDefinition returns [EObject current=null] 775ruleDefaultAssertion returns [EObject current=null]
550@init { 776@init {
551 enterRule(); 777 enterRule();
552} 778}
@@ -556,17 +782,100 @@ ruleDefaultDefinition returns [EObject current=null]
556 ( 782 (
557 otherlv_0=Default 783 otherlv_0=Default
558 { 784 {
559 newLeafNode(otherlv_0, grammarAccess.getDefaultDefinitionAccess().getDefaultKeyword_0()); 785 newLeafNode(otherlv_0, grammarAccess.getDefaultAssertionAccess().getDefaultKeyword_0());
560 } 786 }
561 ( 787 (
562 ( 788 (
563 { 789 {
564 newCompositeNode(grammarAccess.getDefaultDefinitionAccess().getHeadCallParserRuleCall_1_0()); 790 newCompositeNode(grammarAccess.getDefaultAssertionAccess().getExpressionCallParserRuleCall_1_0());
791 }
792 lv_expression_1_0=ruleCall
793 {
794 if ($current==null) {
795 $current = createModelElementForParent(grammarAccess.getDefaultAssertionRule());
796 }
797 set(
798 $current,
799 "expression",
800 lv_expression_1_0,
801 "org.eclipse.viatra.solver.language.SolverLanguage.Call");
802 afterParserOrEnumRuleCall();
803 }
804 )
805 )
806 (
807 otherlv_2=Colon
808 {
809 newLeafNode(otherlv_2, grammarAccess.getDefaultAssertionAccess().getColonKeyword_2_0());
810 }
811 (
812 (
813 {
814 newCompositeNode(grammarAccess.getDefaultAssertionAccess().getRangeExpressionParserRuleCall_2_1_0());
815 }
816 lv_range_3_0=ruleExpression
817 {
818 if ($current==null) {
819 $current = createModelElementForParent(grammarAccess.getDefaultAssertionRule());
820 }
821 set(
822 $current,
823 "range",
824 lv_range_3_0,
825 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
826 afterParserOrEnumRuleCall();
827 }
828 )
829 )
830 )?
831 this_FULL_STOP_4=RULE_FULL_STOP
832 {
833 newLeafNode(this_FULL_STOP_4, grammarAccess.getDefaultAssertionAccess().getFULL_STOPTerminalRuleCall_3());
834 }
835 )
836;
837
838// Entry rule entryRuleFunctionDefinition
839entryRuleFunctionDefinition returns [EObject current=null]:
840 { newCompositeNode(grammarAccess.getFunctionDefinitionRule()); }
841 iv_ruleFunctionDefinition=ruleFunctionDefinition
842 { $current=$iv_ruleFunctionDefinition.current; }
843 EOF;
844
845// Rule FunctionDefinition
846ruleFunctionDefinition returns [EObject current=null]
847@init {
848 enterRule();
849}
850@after {
851 leaveRule();
852}:
853 (
854 (
855 (
856 {
857 if ($current==null) {
858 $current = createModelElement(grammarAccess.getFunctionDefinitionRule());
859 }
860 }
861 {
862 newCompositeNode(grammarAccess.getFunctionDefinitionAccess().getResultTypeSymbolCrossReference_0_0());
863 }
864 ruleQualifiedName
865 {
866 afterParserOrEnumRuleCall();
867 }
868 )
869 )
870 (
871 (
872 {
873 newCompositeNode(grammarAccess.getFunctionDefinitionAccess().getHeadCallParserRuleCall_1_0());
565 } 874 }
566 lv_head_1_0=ruleCall 875 lv_head_1_0=ruleCall
567 { 876 {
568 if ($current==null) { 877 if ($current==null) {
569 $current = createModelElementForParent(grammarAccess.getDefaultDefinitionRule()); 878 $current = createModelElementForParent(grammarAccess.getFunctionDefinitionRule());
570 } 879 }
571 set( 880 set(
572 $current, 881 $current,
@@ -577,41 +886,45 @@ ruleDefaultDefinition returns [EObject current=null]
577 } 886 }
578 ) 887 )
579 ) 888 )
580 otherlv_2=Colon 889 otherlv_2=ColonEqualsSign
581 { 890 {
582 newLeafNode(otherlv_2, grammarAccess.getDefaultDefinitionAccess().getColonKeyword_2()); 891 newLeafNode(otherlv_2, grammarAccess.getFunctionDefinitionAccess().getColonEqualsSignKeyword_2());
583 } 892 }
584 ( 893 (
585 ( 894 (
586 { 895 {
587 newCompositeNode(grammarAccess.getDefaultDefinitionAccess().getRangeExpressionParserRuleCall_3_0()); 896 newCompositeNode(grammarAccess.getFunctionDefinitionAccess().getBodyExpressionParserRuleCall_3_0());
588 } 897 }
589 lv_range_3_0=ruleExpression 898 lv_body_3_0=ruleExpression
590 { 899 {
591 if ($current==null) { 900 if ($current==null) {
592 $current = createModelElementForParent(grammarAccess.getDefaultDefinitionRule()); 901 $current = createModelElementForParent(grammarAccess.getFunctionDefinitionRule());
593 } 902 }
594 set( 903 set(
595 $current, 904 $current,
596 "range", 905 "body",
597 lv_range_3_0, 906 lv_body_3_0,
598 "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); 907 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
599 afterParserOrEnumRuleCall(); 908 afterParserOrEnumRuleCall();
600 } 909 }
601 ) 910 )
602 ) 911 )
912 this_FULL_STOP_4=RULE_FULL_STOP
913 {
914 newLeafNode(this_FULL_STOP_4, grammarAccess.getFunctionDefinitionAccess().getFULL_STOPTerminalRuleCall_4());
915 }
603 ) 916 )
604; 917;
605 918
606// Entry rule entryRuleMetricDefinition 919// Entry rule entryRuleTypeReference
607entryRuleMetricDefinition returns [EObject current=null]: 920entryRuleTypeReference returns [EObject current=null]:
608 { newCompositeNode(grammarAccess.getMetricDefinitionRule()); } 921 { newCompositeNode(grammarAccess.getTypeReferenceRule()); }
609 iv_ruleMetricDefinition=ruleMetricDefinition 922 iv_ruleTypeReference=ruleTypeReference
610 { $current=$iv_ruleMetricDefinition.current; } 923 { $current=$iv_ruleTypeReference.current; }
611 EOF; 924 EOF;
612 925
613// Rule MetricDefinition 926// Rule TypeReference
614ruleMetricDefinition returns [EObject current=null] 927ruleTypeReference returns [EObject current=null]
615@init { 928@init {
616 enterRule(); 929 enterRule();
617} 930}
@@ -623,11 +936,11 @@ ruleMetricDefinition returns [EObject current=null]
623 ( 936 (
624 { 937 {
625 if ($current==null) { 938 if ($current==null) {
626 $current = createModelElement(grammarAccess.getMetricDefinitionRule()); 939 $current = createModelElement(grammarAccess.getTypeReferenceRule());
627 } 940 }
628 } 941 }
629 { 942 {
630 newCompositeNode(grammarAccess.getMetricDefinitionAccess().getTypeNamedElementCrossReference_0_0()); 943 newCompositeNode(grammarAccess.getTypeReferenceAccess().getTypeSymbolCrossReference_0_0());
631 } 944 }
632 ruleQualifiedName 945 ruleQualifiedName
633 { 946 {
@@ -637,58 +950,142 @@ ruleMetricDefinition returns [EObject current=null]
637 ) 950 )
638 ( 951 (
639 ( 952 (
953 lv_forceObjectType_1_0=Object
640 { 954 {
641 newCompositeNode(grammarAccess.getMetricDefinitionAccess().getHeadCallParserRuleCall_1_0()); 955 newLeafNode(lv_forceObjectType_1_0, grammarAccess.getTypeReferenceAccess().getForceObjectTypeObjectKeyword_1_0());
642 } 956 }
643 lv_head_1_0=ruleCall
644 { 957 {
645 if ($current==null) { 958 if ($current==null) {
646 $current = createModelElementForParent(grammarAccess.getMetricDefinitionRule()); 959 $current = createModelElement(grammarAccess.getTypeReferenceRule());
647 } 960 }
648 set( 961 setWithLastConsumed($current, "forceObjectType", true, "object");
649 $current,
650 "head",
651 lv_head_1_0,
652 "org.eclipse.viatra.solver.language.SolverLanguage.Call");
653 afterParserOrEnumRuleCall();
654 } 962 }
655 ) 963 )
656 ) 964 )?
657 otherlv_2=EqualsSign 965 )
658 { 966;
659 newLeafNode(otherlv_2, grammarAccess.getMetricDefinitionAccess().getEqualsSignKeyword_2()); 967
660 } 968// Entry rule entryRuleAttribute
969entryRuleAttribute returns [EObject current=null]:
970 { newCompositeNode(grammarAccess.getAttributeRule()); }
971 iv_ruleAttribute=ruleAttribute
972 { $current=$iv_ruleAttribute.current; }
973 EOF;
974
975// Rule Attribute
976ruleAttribute returns [EObject current=null]
977@init {
978 enterRule();
979}
980@after {
981 leaveRule();
982}:
983 (
661 ( 984 (
662 ( 985 (
663 { 986 {
664 newCompositeNode(grammarAccess.getMetricDefinitionAccess().getBodyExpressionParserRuleCall_3_0()); 987 newCompositeNode(grammarAccess.getAttributeAccess().getKindAttributeKindEnumRuleCall_0_0());
665 } 988 }
666 lv_body_3_0=ruleExpression 989 lv_kind_0_0=ruleAttributeKind
667 { 990 {
668 if ($current==null) { 991 if ($current==null) {
669 $current = createModelElementForParent(grammarAccess.getMetricDefinitionRule()); 992 $current = createModelElementForParent(grammarAccess.getAttributeRule());
670 } 993 }
671 set( 994 set(
672 $current, 995 $current,
673 "body", 996 "kind",
674 lv_body_3_0, 997 lv_kind_0_0,
675 "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); 998 "org.eclipse.viatra.solver.language.SolverLanguage.AttributeKind");
676 afterParserOrEnumRuleCall(); 999 afterParserOrEnumRuleCall();
677 } 1000 }
678 ) 1001 )
679 ) 1002 )
1003 (
1004 (
1005 {
1006 if ($current==null) {
1007 $current = createModelElement(grammarAccess.getAttributeRule());
1008 }
1009 }
1010 {
1011 newCompositeNode(grammarAccess.getAttributeAccess().getTargetSymbolCrossReference_1_0());
1012 }
1013 ruleQualifiedName
1014 {
1015 afterParserOrEnumRuleCall();
1016 }
1017 )
1018 )
1019 this_FULL_STOP_2=RULE_FULL_STOP
1020 {
1021 newLeafNode(this_FULL_STOP_2, grammarAccess.getAttributeAccess().getFULL_STOPTerminalRuleCall_2());
1022 }
680 ) 1023 )
681; 1024;
682 1025
683// Entry rule entryRuleExternPredicateDefinition 1026// Entry rule entryRuleExternDeclaration
684entryRuleExternPredicateDefinition returns [EObject current=null]: 1027entryRuleExternDeclaration returns [EObject current=null]:
685 { newCompositeNode(grammarAccess.getExternPredicateDefinitionRule()); } 1028 { newCompositeNode(grammarAccess.getExternDeclarationRule()); }
686 iv_ruleExternPredicateDefinition=ruleExternPredicateDefinition 1029 iv_ruleExternDeclaration=ruleExternDeclaration
687 { $current=$iv_ruleExternPredicateDefinition.current; } 1030 { $current=$iv_ruleExternDeclaration.current; }
688 EOF; 1031 EOF;
689 1032
690// Rule ExternPredicateDefinition 1033// Rule ExternDeclaration
691ruleExternPredicateDefinition returns [EObject current=null] 1034ruleExternDeclaration returns [EObject current=null]
1035@init {
1036 enterRule();
1037}
1038@after {
1039 leaveRule();
1040}:
1041 (
1042 {
1043 newCompositeNode(grammarAccess.getExternDeclarationAccess().getExternPredicateDeclarationParserRuleCall_0());
1044 }
1045 this_ExternPredicateDeclaration_0=ruleExternPredicateDeclaration
1046 {
1047 $current = $this_ExternPredicateDeclaration_0.current;
1048 afterParserOrEnumRuleCall();
1049 }
1050 |
1051 {
1052 newCompositeNode(grammarAccess.getExternDeclarationAccess().getExternFunctionDeclarationParserRuleCall_1());
1053 }
1054 this_ExternFunctionDeclaration_1=ruleExternFunctionDeclaration
1055 {
1056 $current = $this_ExternFunctionDeclaration_1.current;
1057 afterParserOrEnumRuleCall();
1058 }
1059 |
1060 {
1061 newCompositeNode(grammarAccess.getExternDeclarationAccess().getExternAggregationOperatorDeclarationParserRuleCall_2());
1062 }
1063 this_ExternAggregationOperatorDeclaration_2=ruleExternAggregationOperatorDeclaration
1064 {
1065 $current = $this_ExternAggregationOperatorDeclaration_2.current;
1066 afterParserOrEnumRuleCall();
1067 }
1068 |
1069 {
1070 newCompositeNode(grammarAccess.getExternDeclarationAccess().getExternDatatypeDeclarationParserRuleCall_3());
1071 }
1072 this_ExternDatatypeDeclaration_3=ruleExternDatatypeDeclaration
1073 {
1074 $current = $this_ExternDatatypeDeclaration_3.current;
1075 afterParserOrEnumRuleCall();
1076 }
1077 )
1078;
1079
1080// Entry rule entryRuleExternPredicateDeclaration
1081entryRuleExternPredicateDeclaration returns [EObject current=null]:
1082 { newCompositeNode(grammarAccess.getExternPredicateDeclarationRule()); }
1083 iv_ruleExternPredicateDeclaration=ruleExternPredicateDeclaration
1084 { $current=$iv_ruleExternPredicateDeclaration.current; }
1085 EOF;
1086
1087// Rule ExternPredicateDeclaration
1088ruleExternPredicateDeclaration returns [EObject current=null]
692@init { 1089@init {
693 enterRule(); 1090 enterRule();
694} 1091}
@@ -698,22 +1095,82 @@ ruleExternPredicateDefinition returns [EObject current=null]
698 ( 1095 (
699 otherlv_0=Extern 1096 otherlv_0=Extern
700 { 1097 {
701 newLeafNode(otherlv_0, grammarAccess.getExternPredicateDefinitionAccess().getExternKeyword_0()); 1098 newLeafNode(otherlv_0, grammarAccess.getExternPredicateDeclarationAccess().getExternKeyword_0());
702 } 1099 }
703 ( 1100 (
704 ( 1101 (
1102 {
1103 getUnorderedGroupHelper().enter(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1());
1104 }
1105 (
1106 (
1107 (
1108 {getUnorderedGroupHelper().canSelect(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 0)}?=>(
1109 {
1110 getUnorderedGroupHelper().select(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 0);
1111 }
1112 ({true}?=>((
1113 lv_functional_2_0=Functional
1114 {
1115 newLeafNode(lv_functional_2_0, grammarAccess.getExternPredicateDeclarationAccess().getFunctionalFunctionalKeyword_1_0_0());
1116 }
1117 {
1118 if ($current==null) {
1119 $current = createModelElement(grammarAccess.getExternPredicateDeclarationRule());
1120 }
1121 setWithLastConsumed($current, "functional", true, "functional");
1122 }
1123 )
1124 ))
1125 {
1126 getUnorderedGroupHelper().returnFromSelection(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1());
1127 }
1128 )
1129 )|
1130 (
1131 {getUnorderedGroupHelper().canSelect(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 1)}?=>(
1132 {
1133 getUnorderedGroupHelper().select(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 1);
1134 }
1135 ({true}?=>((
1136 lv_error_3_0=Error
1137 {
1138 newLeafNode(lv_error_3_0, grammarAccess.getExternPredicateDeclarationAccess().getErrorErrorKeyword_1_1_0());
1139 }
1140 {
1141 if ($current==null) {
1142 $current = createModelElement(grammarAccess.getExternPredicateDeclarationRule());
1143 }
1144 setWithLastConsumed($current, "error", true, "error");
1145 }
1146 )
1147 ))
1148 {
1149 getUnorderedGroupHelper().returnFromSelection(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1());
1150 }
1151 )
1152 )
1153 )*
1154 )
1155 )
1156 {
1157 getUnorderedGroupHelper().leave(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1());
1158 }
1159 )
1160 (
1161 (
705 { 1162 {
706 newCompositeNode(grammarAccess.getExternPredicateDefinitionAccess().getNameQualifiedNameParserRuleCall_1_0()); 1163 newCompositeNode(grammarAccess.getExternPredicateDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0());
707 } 1164 }
708 lv_name_1_0=ruleQualifiedName 1165 lv_name_4_0=ruleQualifiedName
709 { 1166 {
710 if ($current==null) { 1167 if ($current==null) {
711 $current = createModelElementForParent(grammarAccess.getExternPredicateDefinitionRule()); 1168 $current = createModelElementForParent(grammarAccess.getExternPredicateDeclarationRule());
712 } 1169 }
713 set( 1170 set(
714 $current, 1171 $current,
715 "name", 1172 "name",
716 lv_name_1_0, 1173 lv_name_4_0,
717 "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); 1174 "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName");
718 afterParserOrEnumRuleCall(); 1175 afterParserOrEnumRuleCall();
719 } 1176 }
@@ -722,34 +1179,38 @@ ruleExternPredicateDefinition returns [EObject current=null]
722 ( 1179 (
723 ( 1180 (
724 { 1181 {
725 newCompositeNode(grammarAccess.getExternPredicateDefinitionAccess().getArgumentListArgumentListParserRuleCall_2_0()); 1182 newCompositeNode(grammarAccess.getExternPredicateDeclarationAccess().getArgumentListArgumentListParserRuleCall_3_0());
726 } 1183 }
727 lv_argumentList_2_0=ruleArgumentList 1184 lv_argumentList_5_0=ruleArgumentList
728 { 1185 {
729 if ($current==null) { 1186 if ($current==null) {
730 $current = createModelElementForParent(grammarAccess.getExternPredicateDefinitionRule()); 1187 $current = createModelElementForParent(grammarAccess.getExternPredicateDeclarationRule());
731 } 1188 }
732 set( 1189 set(
733 $current, 1190 $current,
734 "argumentList", 1191 "argumentList",
735 lv_argumentList_2_0, 1192 lv_argumentList_5_0,
736 "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); 1193 "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList");
737 afterParserOrEnumRuleCall(); 1194 afterParserOrEnumRuleCall();
738 } 1195 }
739 ) 1196 )
740 ) 1197 )
1198 this_FULL_STOP_6=RULE_FULL_STOP
1199 {
1200 newLeafNode(this_FULL_STOP_6, grammarAccess.getExternPredicateDeclarationAccess().getFULL_STOPTerminalRuleCall_4());
1201 }
741 ) 1202 )
742; 1203;
743 1204
744// Entry rule entryRuleExternMetricDefinition 1205// Entry rule entryRuleExternFunctionDeclaration
745entryRuleExternMetricDefinition returns [EObject current=null]: 1206entryRuleExternFunctionDeclaration returns [EObject current=null]:
746 { newCompositeNode(grammarAccess.getExternMetricDefinitionRule()); } 1207 { newCompositeNode(grammarAccess.getExternFunctionDeclarationRule()); }
747 iv_ruleExternMetricDefinition=ruleExternMetricDefinition 1208 iv_ruleExternFunctionDeclaration=ruleExternFunctionDeclaration
748 { $current=$iv_ruleExternMetricDefinition.current; } 1209 { $current=$iv_ruleExternFunctionDeclaration.current; }
749 EOF; 1210 EOF;
750 1211
751// Rule ExternMetricDefinition 1212// Rule ExternFunctionDeclaration
752ruleExternMetricDefinition returns [EObject current=null] 1213ruleExternFunctionDeclaration returns [EObject current=null]
753@init { 1214@init {
754 enterRule(); 1215 enterRule();
755} 1216}
@@ -759,17 +1220,17 @@ ruleExternMetricDefinition returns [EObject current=null]
759 ( 1220 (
760 otherlv_0=Extern 1221 otherlv_0=Extern
761 { 1222 {
762 newLeafNode(otherlv_0, grammarAccess.getExternMetricDefinitionAccess().getExternKeyword_0()); 1223 newLeafNode(otherlv_0, grammarAccess.getExternFunctionDeclarationAccess().getExternKeyword_0());
763 } 1224 }
764 ( 1225 (
765 ( 1226 (
766 { 1227 {
767 if ($current==null) { 1228 if ($current==null) {
768 $current = createModelElement(grammarAccess.getExternMetricDefinitionRule()); 1229 $current = createModelElement(grammarAccess.getExternFunctionDeclarationRule());
769 } 1230 }
770 } 1231 }
771 { 1232 {
772 newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getTypeNamedElementCrossReference_1_0()); 1233 newCompositeNode(grammarAccess.getExternFunctionDeclarationAccess().getResultTypeSymbolCrossReference_1_0());
773 } 1234 }
774 ruleQualifiedName 1235 ruleQualifiedName
775 { 1236 {
@@ -780,12 +1241,12 @@ ruleExternMetricDefinition returns [EObject current=null]
780 ( 1241 (
781 ( 1242 (
782 { 1243 {
783 newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getNameQualifiedNameParserRuleCall_2_0()); 1244 newCompositeNode(grammarAccess.getExternFunctionDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0());
784 } 1245 }
785 lv_name_2_0=ruleQualifiedName 1246 lv_name_2_0=ruleQualifiedName
786 { 1247 {
787 if ($current==null) { 1248 if ($current==null) {
788 $current = createModelElementForParent(grammarAccess.getExternMetricDefinitionRule()); 1249 $current = createModelElementForParent(grammarAccess.getExternFunctionDeclarationRule());
789 } 1250 }
790 set( 1251 set(
791 $current, 1252 $current,
@@ -799,12 +1260,12 @@ ruleExternMetricDefinition returns [EObject current=null]
799 ( 1260 (
800 ( 1261 (
801 { 1262 {
802 newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getArgumentListArgumentListParserRuleCall_3_0()); 1263 newCompositeNode(grammarAccess.getExternFunctionDeclarationAccess().getArgumentListArgumentListParserRuleCall_3_0());
803 } 1264 }
804 lv_argumentList_3_0=ruleArgumentList 1265 lv_argumentList_3_0=ruleArgumentList
805 { 1266 {
806 if ($current==null) { 1267 if ($current==null) {
807 $current = createModelElementForParent(grammarAccess.getExternMetricDefinitionRule()); 1268 $current = createModelElementForParent(grammarAccess.getExternFunctionDeclarationRule());
808 } 1269 }
809 set( 1270 set(
810 $current, 1271 $current,
@@ -815,18 +1276,22 @@ ruleExternMetricDefinition returns [EObject current=null]
815 } 1276 }
816 ) 1277 )
817 ) 1278 )
1279 this_FULL_STOP_4=RULE_FULL_STOP
1280 {
1281 newLeafNode(this_FULL_STOP_4, grammarAccess.getExternFunctionDeclarationAccess().getFULL_STOPTerminalRuleCall_4());
1282 }
818 ) 1283 )
819; 1284;
820 1285
821// Entry rule entryRuleExternAggregatorDefinition 1286// Entry rule entryRuleExternAggregationOperatorDeclaration
822entryRuleExternAggregatorDefinition returns [EObject current=null]: 1287entryRuleExternAggregationOperatorDeclaration returns [EObject current=null]:
823 { newCompositeNode(grammarAccess.getExternAggregatorDefinitionRule()); } 1288 { newCompositeNode(grammarAccess.getExternAggregationOperatorDeclarationRule()); }
824 iv_ruleExternAggregatorDefinition=ruleExternAggregatorDefinition 1289 iv_ruleExternAggregationOperatorDeclaration=ruleExternAggregationOperatorDeclaration
825 { $current=$iv_ruleExternAggregatorDefinition.current; } 1290 { $current=$iv_ruleExternAggregationOperatorDeclaration.current; }
826 EOF; 1291 EOF;
827 1292
828// Rule ExternAggregatorDefinition 1293// Rule ExternAggregationOperatorDeclaration
829ruleExternAggregatorDefinition returns [EObject current=null] 1294ruleExternAggregationOperatorDeclaration returns [EObject current=null]
830@init { 1295@init {
831 enterRule(); 1296 enterRule();
832} 1297}
@@ -836,17 +1301,17 @@ ruleExternAggregatorDefinition returns [EObject current=null]
836 ( 1301 (
837 otherlv_0=Extern 1302 otherlv_0=Extern
838 { 1303 {
839 newLeafNode(otherlv_0, grammarAccess.getExternAggregatorDefinitionAccess().getExternKeyword_0()); 1304 newLeafNode(otherlv_0, grammarAccess.getExternAggregationOperatorDeclarationAccess().getExternKeyword_0());
840 } 1305 }
841 ( 1306 (
842 ( 1307 (
843 { 1308 {
844 if ($current==null) { 1309 if ($current==null) {
845 $current = createModelElement(grammarAccess.getExternAggregatorDefinitionRule()); 1310 $current = createModelElement(grammarAccess.getExternAggregationOperatorDeclarationRule());
846 } 1311 }
847 } 1312 }
848 { 1313 {
849 newCompositeNode(grammarAccess.getExternAggregatorDefinitionAccess().getTypeNamedElementCrossReference_1_0()); 1314 newCompositeNode(grammarAccess.getExternAggregationOperatorDeclarationAccess().getResultTypeSymbolCrossReference_1_0());
850 } 1315 }
851 ruleQualifiedName 1316 ruleQualifiedName
852 { 1317 {
@@ -857,12 +1322,12 @@ ruleExternAggregatorDefinition returns [EObject current=null]
857 ( 1322 (
858 ( 1323 (
859 { 1324 {
860 newCompositeNode(grammarAccess.getExternAggregatorDefinitionAccess().getNameQualifiedNameParserRuleCall_2_0()); 1325 newCompositeNode(grammarAccess.getExternAggregationOperatorDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0());
861 } 1326 }
862 lv_name_2_0=ruleQualifiedName 1327 lv_name_2_0=ruleQualifiedName
863 { 1328 {
864 if ($current==null) { 1329 if ($current==null) {
865 $current = createModelElementForParent(grammarAccess.getExternAggregatorDefinitionRule()); 1330 $current = createModelElementForParent(grammarAccess.getExternAggregationOperatorDeclarationRule());
866 } 1331 }
867 set( 1332 set(
868 $current, 1333 $current,
@@ -875,17 +1340,17 @@ ruleExternAggregatorDefinition returns [EObject current=null]
875 ) 1340 )
876 otherlv_3=LeftCurlyBracket 1341 otherlv_3=LeftCurlyBracket
877 { 1342 {
878 newLeafNode(otherlv_3, grammarAccess.getExternAggregatorDefinitionAccess().getLeftCurlyBracketKeyword_3()); 1343 newLeafNode(otherlv_3, grammarAccess.getExternAggregationOperatorDeclarationAccess().getLeftCurlyBracketKeyword_3());
879 } 1344 }
880 ( 1345 (
881 ( 1346 (
882 { 1347 {
883 if ($current==null) { 1348 if ($current==null) {
884 $current = createModelElement(grammarAccess.getExternAggregatorDefinitionRule()); 1349 $current = createModelElement(grammarAccess.getExternAggregationOperatorDeclarationRule());
885 } 1350 }
886 } 1351 }
887 { 1352 {
888 newCompositeNode(grammarAccess.getExternAggregatorDefinitionAccess().getInputTypeNamedElementCrossReference_4_0()); 1353 newCompositeNode(grammarAccess.getExternAggregationOperatorDeclarationAccess().getArgumentTypeSymbolCrossReference_4_0());
889 } 1354 }
890 ruleQualifiedName 1355 ruleQualifiedName
891 { 1356 {
@@ -895,24 +1360,28 @@ ruleExternAggregatorDefinition returns [EObject current=null]
895 ) 1360 )
896 otherlv_5=FullStopFullStopFullStop 1361 otherlv_5=FullStopFullStopFullStop
897 { 1362 {
898 newLeafNode(otherlv_5, grammarAccess.getExternAggregatorDefinitionAccess().getFullStopFullStopFullStopKeyword_5()); 1363 newLeafNode(otherlv_5, grammarAccess.getExternAggregationOperatorDeclarationAccess().getFullStopFullStopFullStopKeyword_5());
899 } 1364 }
900 otherlv_6=RightCurlyBracket 1365 otherlv_6=RightCurlyBracket
901 { 1366 {
902 newLeafNode(otherlv_6, grammarAccess.getExternAggregatorDefinitionAccess().getRightCurlyBracketKeyword_6()); 1367 newLeafNode(otherlv_6, grammarAccess.getExternAggregationOperatorDeclarationAccess().getRightCurlyBracketKeyword_6());
1368 }
1369 this_FULL_STOP_7=RULE_FULL_STOP
1370 {
1371 newLeafNode(this_FULL_STOP_7, grammarAccess.getExternAggregationOperatorDeclarationAccess().getFULL_STOPTerminalRuleCall_7());
903 } 1372 }
904 ) 1373 )
905; 1374;
906 1375
907// Entry rule entryRuleExternDatatypeDefinition 1376// Entry rule entryRuleExternDatatypeDeclaration
908entryRuleExternDatatypeDefinition returns [EObject current=null]: 1377entryRuleExternDatatypeDeclaration returns [EObject current=null]:
909 { newCompositeNode(grammarAccess.getExternDatatypeDefinitionRule()); } 1378 { newCompositeNode(grammarAccess.getExternDatatypeDeclarationRule()); }
910 iv_ruleExternDatatypeDefinition=ruleExternDatatypeDefinition 1379 iv_ruleExternDatatypeDeclaration=ruleExternDatatypeDeclaration
911 { $current=$iv_ruleExternDatatypeDefinition.current; } 1380 { $current=$iv_ruleExternDatatypeDeclaration.current; }
912 EOF; 1381 EOF;
913 1382
914// Rule ExternDatatypeDefinition 1383// Rule ExternDatatypeDeclaration
915ruleExternDatatypeDefinition returns [EObject current=null] 1384ruleExternDatatypeDeclaration returns [EObject current=null]
916@init { 1385@init {
917 enterRule(); 1386 enterRule();
918} 1387}
@@ -922,21 +1391,21 @@ ruleExternDatatypeDefinition returns [EObject current=null]
922 ( 1391 (
923 otherlv_0=Extern 1392 otherlv_0=Extern
924 { 1393 {
925 newLeafNode(otherlv_0, grammarAccess.getExternDatatypeDefinitionAccess().getExternKeyword_0()); 1394 newLeafNode(otherlv_0, grammarAccess.getExternDatatypeDeclarationAccess().getExternKeyword_0());
926 } 1395 }
927 otherlv_1=Datatype 1396 otherlv_1=Datatype
928 { 1397 {
929 newLeafNode(otherlv_1, grammarAccess.getExternDatatypeDefinitionAccess().getDatatypeKeyword_1()); 1398 newLeafNode(otherlv_1, grammarAccess.getExternDatatypeDeclarationAccess().getDatatypeKeyword_1());
930 } 1399 }
931 ( 1400 (
932 ( 1401 (
933 { 1402 {
934 newCompositeNode(grammarAccess.getExternDatatypeDefinitionAccess().getNameQualifiedNameParserRuleCall_2_0()); 1403 newCompositeNode(grammarAccess.getExternDatatypeDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0());
935 } 1404 }
936 lv_name_2_0=ruleQualifiedName 1405 lv_name_2_0=ruleQualifiedName
937 { 1406 {
938 if ($current==null) { 1407 if ($current==null) {
939 $current = createModelElementForParent(grammarAccess.getExternDatatypeDefinitionRule()); 1408 $current = createModelElementForParent(grammarAccess.getExternDatatypeDeclarationRule());
940 } 1409 }
941 set( 1410 set(
942 $current, 1411 $current,
@@ -947,103 +1416,10 @@ ruleExternDatatypeDefinition returns [EObject current=null]
947 } 1416 }
948 ) 1417 )
949 ) 1418 )
950 ( 1419 this_FULL_STOP_3=RULE_FULL_STOP
951 otherlv_3=Extends 1420 {
952 { 1421 newLeafNode(this_FULL_STOP_3, grammarAccess.getExternDatatypeDeclarationAccess().getFULL_STOPTerminalRuleCall_3());
953 newLeafNode(otherlv_3, grammarAccess.getExternDatatypeDefinitionAccess().getExtendsKeyword_3_0()); 1422 }
954 }
955 (
956 (
957 {
958 if ($current==null) {
959 $current = createModelElement(grammarAccess.getExternDatatypeDefinitionRule());
960 }
961 }
962 {
963 newCompositeNode(grammarAccess.getExternDatatypeDefinitionAccess().getSupertypesNamedElementCrossReference_3_1_0());
964 }
965 ruleQualifiedName
966 {
967 afterParserOrEnumRuleCall();
968 }
969 )
970 )
971 (
972 otherlv_5=Comma
973 {
974 newLeafNode(otherlv_5, grammarAccess.getExternDatatypeDefinitionAccess().getCommaKeyword_3_2_0());
975 }
976 (
977 (
978 {
979 if ($current==null) {
980 $current = createModelElement(grammarAccess.getExternDatatypeDefinitionRule());
981 }
982 }
983 {
984 newCompositeNode(grammarAccess.getExternDatatypeDefinitionAccess().getSupertypesNamedElementCrossReference_3_2_1_0());
985 }
986 ruleQualifiedName
987 {
988 afterParserOrEnumRuleCall();
989 }
990 )
991 )
992 )*
993 )
994 )
995;
996
997// Entry rule entryRuleVariable
998entryRuleVariable returns [EObject current=null]:
999 { newCompositeNode(grammarAccess.getVariableRule()); }
1000 iv_ruleVariable=ruleVariable
1001 { $current=$iv_ruleVariable.current; }
1002 EOF;
1003
1004// Rule Variable
1005ruleVariable returns [EObject current=null]
1006@init {
1007 enterRule();
1008}
1009@after {
1010 leaveRule();
1011}:
1012 (
1013 (
1014 (
1015 {
1016 if ($current==null) {
1017 $current = createModelElement(grammarAccess.getVariableRule());
1018 }
1019 }
1020 {
1021 newCompositeNode(grammarAccess.getVariableAccess().getTypeNamedElementCrossReference_0_0());
1022 }
1023 ruleQualifiedName
1024 {
1025 afterParserOrEnumRuleCall();
1026 }
1027 )
1028 )?
1029 (
1030 (
1031 lv_name_1_0=RULE_ID
1032 {
1033 newLeafNode(lv_name_1_0, grammarAccess.getVariableAccess().getNameIDTerminalRuleCall_1_0());
1034 }
1035 {
1036 if ($current==null) {
1037 $current = createModelElement(grammarAccess.getVariableRule());
1038 }
1039 setWithLastConsumed(
1040 $current,
1041 "name",
1042 lv_name_1_0,
1043 "org.eclipse.xtext.common.Terminals.ID");
1044 }
1045 )
1046 )
1047 ) 1423 )
1048; 1424;
1049 1425
@@ -1064,43 +1440,77 @@ ruleExpression returns [EObject current=null]
1064}: 1440}:
1065 ( 1441 (
1066 { 1442 {
1067 newCompositeNode(grammarAccess.getExpressionAccess().getIfElseParserRuleCall_0()); 1443 newCompositeNode(grammarAccess.getExpressionAccess().getConditionalExpressionParserRuleCall_0());
1068 } 1444 }
1069 this_IfElse_0=ruleIfElse 1445 this_ConditionalExpression_0=ruleConditionalExpression
1070 { 1446 {
1071 $current = $this_IfElse_0.current; 1447 $current = $this_ConditionalExpression_0.current;
1072 afterParserOrEnumRuleCall(); 1448 afterParserOrEnumRuleCall();
1073 } 1449 }
1074 | 1450 |
1075 { 1451 {
1076 newCompositeNode(grammarAccess.getExpressionAccess().getLetParserRuleCall_1()); 1452 newCompositeNode(grammarAccess.getExpressionAccess().getLetExpressionParserRuleCall_1());
1077 } 1453 }
1078 this_Let_1=ruleLet 1454 this_LetExpression_1=ruleLetExpression
1079 { 1455 {
1080 $current = $this_Let_1.current; 1456 $current = $this_LetExpression_1.current;
1081 afterParserOrEnumRuleCall(); 1457 afterParserOrEnumRuleCall();
1082 } 1458 }
1083 | 1459 |
1084 { 1460 (
1085 newCompositeNode(grammarAccess.getExpressionAccess().getImplicationExpressionParserRuleCall_2()); 1461 {
1086 } 1462 newCompositeNode(grammarAccess.getExpressionAccess().getDisjunctiveExpressionParserRuleCall_2_0());
1087 this_ImplicationExpression_2=ruleImplicationExpression 1463 }
1088 { 1464 this_DisjunctiveExpression_2=ruleDisjunctiveExpression
1089 $current = $this_ImplicationExpression_2.current; 1465 {
1090 afterParserOrEnumRuleCall(); 1466 $current = $this_DisjunctiveExpression_2.current;
1091 } 1467 afterParserOrEnumRuleCall();
1468 }
1469 (
1470 (
1471 {
1472 $current = forceCreateModelElementAndSet(
1473 grammarAccess.getExpressionAccess().getForallConditionAction_2_1_0(),
1474 $current);
1475 }
1476 )
1477 otherlv_4=EqualsSignGreaterThanSign
1478 {
1479 newLeafNode(otherlv_4, grammarAccess.getExpressionAccess().getEqualsSignGreaterThanSignKeyword_2_1_1());
1480 }
1481 (
1482 (
1483 {
1484 newCompositeNode(grammarAccess.getExpressionAccess().getBodyDisjunctiveExpressionParserRuleCall_2_1_2_0());
1485 }
1486 lv_body_5_0=ruleDisjunctiveExpression
1487 {
1488 if ($current==null) {
1489 $current = createModelElementForParent(grammarAccess.getExpressionRule());
1490 }
1491 set(
1492 $current,
1493 "body",
1494 lv_body_5_0,
1495 "org.eclipse.viatra.solver.language.SolverLanguage.DisjunctiveExpression");
1496 afterParserOrEnumRuleCall();
1497 }
1498 )
1499 )
1500 )?
1501 )
1092 ) 1502 )
1093; 1503;
1094 1504
1095// Entry rule entryRuleIfElse 1505// Entry rule entryRuleConditionalExpression
1096entryRuleIfElse returns [EObject current=null]: 1506entryRuleConditionalExpression returns [EObject current=null]:
1097 { newCompositeNode(grammarAccess.getIfElseRule()); } 1507 { newCompositeNode(grammarAccess.getConditionalExpressionRule()); }
1098 iv_ruleIfElse=ruleIfElse 1508 iv_ruleConditionalExpression=ruleConditionalExpression
1099 { $current=$iv_ruleIfElse.current; } 1509 { $current=$iv_ruleConditionalExpression.current; }
1100 EOF; 1510 EOF;
1101 1511
1102// Rule IfElse 1512// Rule ConditionalExpression
1103ruleIfElse returns [EObject current=null] 1513ruleConditionalExpression returns [EObject current=null]
1104@init { 1514@init {
1105 enterRule(); 1515 enterRule();
1106} 1516}
@@ -1110,40 +1520,40 @@ ruleIfElse returns [EObject current=null]
1110 ( 1520 (
1111 otherlv_0=If 1521 otherlv_0=If
1112 { 1522 {
1113 newLeafNode(otherlv_0, grammarAccess.getIfElseAccess().getIfKeyword_0()); 1523 newLeafNode(otherlv_0, grammarAccess.getConditionalExpressionAccess().getIfKeyword_0());
1114 } 1524 }
1115 ( 1525 (
1116 ( 1526 (
1117 { 1527 {
1118 newCompositeNode(grammarAccess.getIfElseAccess().getConditionExpressionParserRuleCall_1_0()); 1528 newCompositeNode(grammarAccess.getConditionalExpressionAccess().getConditionDisjunctiveExpressionParserRuleCall_1_0());
1119 } 1529 }
1120 lv_condition_1_0=ruleExpression 1530 lv_condition_1_0=ruleDisjunctiveExpression
1121 { 1531 {
1122 if ($current==null) { 1532 if ($current==null) {
1123 $current = createModelElementForParent(grammarAccess.getIfElseRule()); 1533 $current = createModelElementForParent(grammarAccess.getConditionalExpressionRule());
1124 } 1534 }
1125 set( 1535 set(
1126 $current, 1536 $current,
1127 "condition", 1537 "condition",
1128 lv_condition_1_0, 1538 lv_condition_1_0,
1129 "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); 1539 "org.eclipse.viatra.solver.language.SolverLanguage.DisjunctiveExpression");
1130 afterParserOrEnumRuleCall(); 1540 afterParserOrEnumRuleCall();
1131 } 1541 }
1132 ) 1542 )
1133 ) 1543 )
1134 otherlv_2=Then 1544 otherlv_2=Then
1135 { 1545 {
1136 newLeafNode(otherlv_2, grammarAccess.getIfElseAccess().getThenKeyword_2()); 1546 newLeafNode(otherlv_2, grammarAccess.getConditionalExpressionAccess().getThenKeyword_2());
1137 } 1547 }
1138 ( 1548 (
1139 ( 1549 (
1140 { 1550 {
1141 newCompositeNode(grammarAccess.getIfElseAccess().getThenExpressionParserRuleCall_3_0()); 1551 newCompositeNode(grammarAccess.getConditionalExpressionAccess().getThenExpressionParserRuleCall_3_0());
1142 } 1552 }
1143 lv_then_3_0=ruleExpression 1553 lv_then_3_0=ruleExpression
1144 { 1554 {
1145 if ($current==null) { 1555 if ($current==null) {
1146 $current = createModelElementForParent(grammarAccess.getIfElseRule()); 1556 $current = createModelElementForParent(grammarAccess.getConditionalExpressionRule());
1147 } 1557 }
1148 set( 1558 set(
1149 $current, 1559 $current,
@@ -1156,17 +1566,17 @@ ruleIfElse returns [EObject current=null]
1156 ) 1566 )
1157 otherlv_4=Else 1567 otherlv_4=Else
1158 { 1568 {
1159 newLeafNode(otherlv_4, grammarAccess.getIfElseAccess().getElseKeyword_4()); 1569 newLeafNode(otherlv_4, grammarAccess.getConditionalExpressionAccess().getElseKeyword_4());
1160 } 1570 }
1161 ( 1571 (
1162 ( 1572 (
1163 { 1573 {
1164 newCompositeNode(grammarAccess.getIfElseAccess().getElseExpressionParserRuleCall_5_0()); 1574 newCompositeNode(grammarAccess.getConditionalExpressionAccess().getElseExpressionParserRuleCall_5_0());
1165 } 1575 }
1166 lv_else_5_0=ruleExpression 1576 lv_else_5_0=ruleExpression
1167 { 1577 {
1168 if ($current==null) { 1578 if ($current==null) {
1169 $current = createModelElementForParent(grammarAccess.getIfElseRule()); 1579 $current = createModelElementForParent(grammarAccess.getConditionalExpressionRule());
1170 } 1580 }
1171 set( 1581 set(
1172 $current, 1582 $current,
@@ -1180,15 +1590,15 @@ ruleIfElse returns [EObject current=null]
1180 ) 1590 )
1181; 1591;
1182 1592
1183// Entry rule entryRuleLet 1593// Entry rule entryRuleLetExpression
1184entryRuleLet returns [EObject current=null]: 1594entryRuleLetExpression returns [EObject current=null]:
1185 { newCompositeNode(grammarAccess.getLetRule()); } 1595 { newCompositeNode(grammarAccess.getLetExpressionRule()); }
1186 iv_ruleLet=ruleLet 1596 iv_ruleLetExpression=ruleLetExpression
1187 { $current=$iv_ruleLet.current; } 1597 { $current=$iv_ruleLetExpression.current; }
1188 EOF; 1598 EOF;
1189 1599
1190// Rule Let 1600// Rule LetExpression
1191ruleLet returns [EObject current=null] 1601ruleLetExpression returns [EObject current=null]
1192@init { 1602@init {
1193 enterRule(); 1603 enterRule();
1194} 1604}
@@ -1198,17 +1608,17 @@ ruleLet returns [EObject current=null]
1198 ( 1608 (
1199 otherlv_0=Let 1609 otherlv_0=Let
1200 { 1610 {
1201 newLeafNode(otherlv_0, grammarAccess.getLetAccess().getLetKeyword_0()); 1611 newLeafNode(otherlv_0, grammarAccess.getLetExpressionAccess().getLetKeyword_0());
1202 } 1612 }
1203 ( 1613 (
1204 ( 1614 (
1205 { 1615 {
1206 newCompositeNode(grammarAccess.getLetAccess().getBindingsLetBindingParserRuleCall_1_0()); 1616 newCompositeNode(grammarAccess.getLetExpressionAccess().getBindingsLetBindingParserRuleCall_1_0());
1207 } 1617 }
1208 lv_bindings_1_0=ruleLetBinding 1618 lv_bindings_1_0=ruleLetBinding
1209 { 1619 {
1210 if ($current==null) { 1620 if ($current==null) {
1211 $current = createModelElementForParent(grammarAccess.getLetRule()); 1621 $current = createModelElementForParent(grammarAccess.getLetExpressionRule());
1212 } 1622 }
1213 add( 1623 add(
1214 $current, 1624 $current,
@@ -1222,17 +1632,17 @@ ruleLet returns [EObject current=null]
1222 ( 1632 (
1223 otherlv_2=Comma 1633 otherlv_2=Comma
1224 { 1634 {
1225 newLeafNode(otherlv_2, grammarAccess.getLetAccess().getCommaKeyword_2_0()); 1635 newLeafNode(otherlv_2, grammarAccess.getLetExpressionAccess().getCommaKeyword_2_0());
1226 } 1636 }
1227 ( 1637 (
1228 ( 1638 (
1229 { 1639 {
1230 newCompositeNode(grammarAccess.getLetAccess().getBindingsLetBindingParserRuleCall_2_1_0()); 1640 newCompositeNode(grammarAccess.getLetExpressionAccess().getBindingsLetBindingParserRuleCall_2_1_0());
1231 } 1641 }
1232 lv_bindings_3_0=ruleLetBinding 1642 lv_bindings_3_0=ruleLetBinding
1233 { 1643 {
1234 if ($current==null) { 1644 if ($current==null) {
1235 $current = createModelElementForParent(grammarAccess.getLetRule()); 1645 $current = createModelElementForParent(grammarAccess.getLetExpressionRule());
1236 } 1646 }
1237 add( 1647 add(
1238 $current, 1648 $current,
@@ -1246,17 +1656,17 @@ ruleLet returns [EObject current=null]
1246 )* 1656 )*
1247 otherlv_4=In 1657 otherlv_4=In
1248 { 1658 {
1249 newLeafNode(otherlv_4, grammarAccess.getLetAccess().getInKeyword_3()); 1659 newLeafNode(otherlv_4, grammarAccess.getLetExpressionAccess().getInKeyword_3());
1250 } 1660 }
1251 ( 1661 (
1252 ( 1662 (
1253 { 1663 {
1254 newCompositeNode(grammarAccess.getLetAccess().getBodyExpressionParserRuleCall_4_0()); 1664 newCompositeNode(grammarAccess.getLetExpressionAccess().getBodyExpressionParserRuleCall_4_0());
1255 } 1665 }
1256 lv_body_5_0=ruleExpression 1666 lv_body_5_0=ruleExpression
1257 { 1667 {
1258 if ($current==null) { 1668 if ($current==null) {
1259 $current = createModelElementForParent(grammarAccess.getLetRule()); 1669 $current = createModelElementForParent(grammarAccess.getLetExpressionRule());
1260 } 1670 }
1261 set( 1671 set(
1262 $current, 1672 $current,
@@ -1289,32 +1699,47 @@ ruleLetBinding returns [EObject current=null]
1289 ( 1699 (
1290 ( 1700 (
1291 { 1701 {
1292 newCompositeNode(grammarAccess.getLetBindingAccess().getVariableVariableParserRuleCall_0_0()); 1702 if ($current==null) {
1703 $current = createModelElement(grammarAccess.getLetBindingRule());
1704 }
1705 }
1706 {
1707 newCompositeNode(grammarAccess.getLetBindingAccess().getTypeSymbolCrossReference_0_0());
1708 }
1709 ruleQualifiedName
1710 {
1711 afterParserOrEnumRuleCall();
1712 }
1713 )
1714 )?
1715 (
1716 (
1717 lv_name_1_0=RULE_ID
1718 {
1719 newLeafNode(lv_name_1_0, grammarAccess.getLetBindingAccess().getNameIDTerminalRuleCall_1_0());
1293 } 1720 }
1294 lv_variable_0_0=ruleVariable
1295 { 1721 {
1296 if ($current==null) { 1722 if ($current==null) {
1297 $current = createModelElementForParent(grammarAccess.getLetBindingRule()); 1723 $current = createModelElement(grammarAccess.getLetBindingRule());
1298 } 1724 }
1299 set( 1725 setWithLastConsumed(
1300 $current, 1726 $current,
1301 "variable", 1727 "name",
1302 lv_variable_0_0, 1728 lv_name_1_0,
1303 "org.eclipse.viatra.solver.language.SolverLanguage.Variable"); 1729 "org.eclipse.xtext.common.Terminals.ID");
1304 afterParserOrEnumRuleCall();
1305 } 1730 }
1306 ) 1731 )
1307 ) 1732 )
1308 otherlv_1=EqualsSign 1733 otherlv_2=EqualsSign
1309 { 1734 {
1310 newLeafNode(otherlv_1, grammarAccess.getLetBindingAccess().getEqualsSignKeyword_1()); 1735 newLeafNode(otherlv_2, grammarAccess.getLetBindingAccess().getEqualsSignKeyword_2());
1311 } 1736 }
1312 ( 1737 (
1313 ( 1738 (
1314 { 1739 {
1315 newCompositeNode(grammarAccess.getLetBindingAccess().getValueAdditiveExpressionParserRuleCall_2_0()); 1740 newCompositeNode(grammarAccess.getLetBindingAccess().getValueAdditiveExpressionParserRuleCall_3_0());
1316 } 1741 }
1317 lv_value_2_0=ruleAdditiveExpression 1742 lv_value_3_0=ruleAdditiveExpression
1318 { 1743 {
1319 if ($current==null) { 1744 if ($current==null) {
1320 $current = createModelElementForParent(grammarAccess.getLetBindingRule()); 1745 $current = createModelElementForParent(grammarAccess.getLetBindingRule());
@@ -1322,7 +1747,7 @@ ruleLetBinding returns [EObject current=null]
1322 set( 1747 set(
1323 $current, 1748 $current,
1324 "value", 1749 "value",
1325 lv_value_2_0, 1750 lv_value_3_0,
1326 "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression"); 1751 "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression");
1327 afterParserOrEnumRuleCall(); 1752 afterParserOrEnumRuleCall();
1328 } 1753 }
@@ -1331,80 +1756,6 @@ ruleLetBinding returns [EObject current=null]
1331 ) 1756 )
1332; 1757;
1333 1758
1334// Entry rule entryRuleImplicationExpression
1335entryRuleImplicationExpression returns [EObject current=null]:
1336 { newCompositeNode(grammarAccess.getImplicationExpressionRule()); }
1337 iv_ruleImplicationExpression=ruleImplicationExpression
1338 { $current=$iv_ruleImplicationExpression.current; }
1339 EOF;
1340
1341// Rule ImplicationExpression
1342ruleImplicationExpression returns [EObject current=null]
1343@init {
1344 enterRule();
1345}
1346@after {
1347 leaveRule();
1348}:
1349 (
1350 {
1351 newCompositeNode(grammarAccess.getImplicationExpressionAccess().getDisjunctiveExpressionParserRuleCall_0());
1352 }
1353 this_DisjunctiveExpression_0=ruleDisjunctiveExpression
1354 {
1355 $current = $this_DisjunctiveExpression_0.current;
1356 afterParserOrEnumRuleCall();
1357 }
1358 (
1359 (
1360 {
1361 $current = forceCreateModelElementAndSet(
1362 grammarAccess.getImplicationExpressionAccess().getBinaryExpressionLeftAction_1_0(),
1363 $current);
1364 }
1365 )
1366 (
1367 (
1368 {
1369 newCompositeNode(grammarAccess.getImplicationExpressionAccess().getOpImplicationOperatorEnumRuleCall_1_1_0());
1370 }
1371 lv_op_2_0=ruleImplicationOperator
1372 {
1373 if ($current==null) {
1374 $current = createModelElementForParent(grammarAccess.getImplicationExpressionRule());
1375 }
1376 set(
1377 $current,
1378 "op",
1379 lv_op_2_0,
1380 "org.eclipse.viatra.solver.language.SolverLanguage.ImplicationOperator");
1381 afterParserOrEnumRuleCall();
1382 }
1383 )
1384 )
1385 (
1386 (
1387 {
1388 newCompositeNode(grammarAccess.getImplicationExpressionAccess().getRightImplicationExpressionParserRuleCall_1_2_0());
1389 }
1390 lv_right_3_0=ruleImplicationExpression
1391 {
1392 if ($current==null) {
1393 $current = createModelElementForParent(grammarAccess.getImplicationExpressionRule());
1394 }
1395 set(
1396 $current,
1397 "right",
1398 lv_right_3_0,
1399 "org.eclipse.viatra.solver.language.SolverLanguage.ImplicationExpression");
1400 afterParserOrEnumRuleCall();
1401 }
1402 )
1403 )
1404 )?
1405 )
1406;
1407
1408// Entry rule entryRuleDisjunctiveExpression 1759// Entry rule entryRuleDisjunctiveExpression
1409entryRuleDisjunctiveExpression returns [EObject current=null]: 1760entryRuleDisjunctiveExpression returns [EObject current=null]:
1410 { newCompositeNode(grammarAccess.getDisjunctiveExpressionRule()); } 1761 { newCompositeNode(grammarAccess.getDisjunctiveExpressionRule()); }
@@ -1683,7 +2034,7 @@ ruleComparisonExpression returns [EObject current=null]
1683 ( 2034 (
1684 { 2035 {
1685 $current = forceCreateModelElementAndSet( 2036 $current = forceCreateModelElementAndSet(
1686 grammarAccess.getComparisonExpressionAccess().getComparisonLeftAction_1_0(), 2037 grammarAccess.getComparisonExpressionAccess().getBinaryExpressionLeftAction_1_0(),
1687 $current); 2038 $current);
1688 } 2039 }
1689 ) 2040 )
@@ -1995,7 +2346,7 @@ ruleCastExpression returns [EObject current=null]
1995 } 2346 }
1996 } 2347 }
1997 { 2348 {
1998 newCompositeNode(grammarAccess.getCastExpressionAccess().getTypeNamedElementCrossReference_1_2_0()); 2349 newCompositeNode(grammarAccess.getCastExpressionAccess().getTargetTypeSymbolCrossReference_1_2_0());
1999 } 2350 }
2000 ruleQualifiedName 2351 ruleQualifiedName
2001 { 2352 {
@@ -2024,11 +2375,11 @@ ruleUnaryExpression returns [EObject current=null]
2024}: 2375}:
2025 ( 2376 (
2026 { 2377 {
2027 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getAggregationExpressionParserRuleCall_0()); 2378 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getBracedAggregateExpressionParserRuleCall_0());
2028 } 2379 }
2029 this_AggregationExpression_0=ruleAggregationExpression 2380 this_BracedAggregateExpression_0=ruleBracedAggregateExpression
2030 { 2381 {
2031 $current = $this_AggregationExpression_0.current; 2382 $current = $this_BracedAggregateExpression_0.current;
2032 afterParserOrEnumRuleCall(); 2383 afterParserOrEnumRuleCall();
2033 } 2384 }
2034 | 2385 |
@@ -2043,9 +2394,9 @@ ruleUnaryExpression returns [EObject current=null]
2043 ( 2394 (
2044 ( 2395 (
2045 { 2396 {
2046 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getOpUnaryOpEnumRuleCall_1_1_0()); 2397 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getOpUnaryOperatorEnumRuleCall_1_1_0());
2047 } 2398 }
2048 lv_op_2_0=ruleUnaryOp 2399 lv_op_2_0=ruleUnaryOperator
2049 { 2400 {
2050 if ($current==null) { 2401 if ($current==null) {
2051 $current = createModelElementForParent(grammarAccess.getUnaryExpressionRule()); 2402 $current = createModelElementForParent(grammarAccess.getUnaryExpressionRule());
@@ -2054,7 +2405,7 @@ ruleUnaryExpression returns [EObject current=null]
2054 $current, 2405 $current,
2055 "op", 2406 "op",
2056 lv_op_2_0, 2407 lv_op_2_0,
2057 "org.eclipse.viatra.solver.language.SolverLanguage.UnaryOp"); 2408 "org.eclipse.viatra.solver.language.SolverLanguage.UnaryOperator");
2058 afterParserOrEnumRuleCall(); 2409 afterParserOrEnumRuleCall();
2059 } 2410 }
2060 ) 2411 )
@@ -2062,9 +2413,9 @@ ruleUnaryExpression returns [EObject current=null]
2062 ( 2413 (
2063 ( 2414 (
2064 { 2415 {
2065 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getBodyAggregationExpressionParserRuleCall_1_2_0()); 2416 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getBodyBracedAggregateExpressionParserRuleCall_1_2_0());
2066 } 2417 }
2067 lv_body_3_0=ruleAggregationExpression 2418 lv_body_3_0=ruleBracedAggregateExpression
2068 { 2419 {
2069 if ($current==null) { 2420 if ($current==null) {
2070 $current = createModelElementForParent(grammarAccess.getUnaryExpressionRule()); 2421 $current = createModelElementForParent(grammarAccess.getUnaryExpressionRule());
@@ -2073,7 +2424,7 @@ ruleUnaryExpression returns [EObject current=null]
2073 $current, 2424 $current,
2074 "body", 2425 "body",
2075 lv_body_3_0, 2426 lv_body_3_0,
2076 "org.eclipse.viatra.solver.language.SolverLanguage.AggregationExpression"); 2427 "org.eclipse.viatra.solver.language.SolverLanguage.BracedAggregateExpression");
2077 afterParserOrEnumRuleCall(); 2428 afterParserOrEnumRuleCall();
2078 } 2429 }
2079 ) 2430 )
@@ -2082,15 +2433,15 @@ ruleUnaryExpression returns [EObject current=null]
2082 ) 2433 )
2083; 2434;
2084 2435
2085// Entry rule entryRuleAggregationExpression 2436// Entry rule entryRuleBracedAggregateExpression
2086entryRuleAggregationExpression returns [EObject current=null]: 2437entryRuleBracedAggregateExpression returns [EObject current=null]:
2087 { newCompositeNode(grammarAccess.getAggregationExpressionRule()); } 2438 { newCompositeNode(grammarAccess.getBracedAggregateExpressionRule()); }
2088 iv_ruleAggregationExpression=ruleAggregationExpression 2439 iv_ruleBracedAggregateExpression=ruleBracedAggregateExpression
2089 { $current=$iv_ruleAggregationExpression.current; } 2440 { $current=$iv_ruleBracedAggregateExpression.current; }
2090 EOF; 2441 EOF;
2091 2442
2092// Rule AggregationExpression 2443// Rule BracedAggregateExpression
2093ruleAggregationExpression returns [EObject current=null] 2444ruleBracedAggregateExpression returns [EObject current=null]
2094@init { 2445@init {
2095 enterRule(); 2446 enterRule();
2096} 2447}
@@ -2099,7 +2450,7 @@ ruleAggregationExpression returns [EObject current=null]
2099}: 2450}:
2100 ( 2451 (
2101 { 2452 {
2102 newCompositeNode(grammarAccess.getAggregationExpressionAccess().getAtomicExpressionParserRuleCall_0()); 2453 newCompositeNode(grammarAccess.getBracedAggregateExpressionAccess().getAtomicExpressionParserRuleCall_0());
2103 } 2454 }
2104 this_AtomicExpression_0=ruleAtomicExpression 2455 this_AtomicExpression_0=ruleAtomicExpression
2105 { 2456 {
@@ -2108,34 +2459,34 @@ ruleAggregationExpression returns [EObject current=null]
2108 } 2459 }
2109 | 2460 |
2110 { 2461 {
2111 newCompositeNode(grammarAccess.getAggregationExpressionAccess().getQuantifiedExpressionParserRuleCall_1()); 2462 newCompositeNode(grammarAccess.getBracedAggregateExpressionAccess().getAggregationParserRuleCall_1());
2112 } 2463 }
2113 this_QuantifiedExpression_1=ruleQuantifiedExpression 2464 this_Aggregation_1=ruleAggregation
2114 { 2465 {
2115 $current = $this_QuantifiedExpression_1.current; 2466 $current = $this_Aggregation_1.current;
2116 afterParserOrEnumRuleCall(); 2467 afterParserOrEnumRuleCall();
2117 } 2468 }
2118 | 2469 |
2119 { 2470 {
2120 newCompositeNode(grammarAccess.getAggregationExpressionAccess().getAggregationParserRuleCall_2()); 2471 newCompositeNode(grammarAccess.getBracedAggregateExpressionAccess().getCountParserRuleCall_2());
2121 } 2472 }
2122 this_Aggregation_2=ruleAggregation 2473 this_Count_2=ruleCount
2123 { 2474 {
2124 $current = $this_Aggregation_2.current; 2475 $current = $this_Count_2.current;
2125 afterParserOrEnumRuleCall(); 2476 afterParserOrEnumRuleCall();
2126 } 2477 }
2127 ) 2478 )
2128; 2479;
2129 2480
2130// Entry rule entryRuleLocalVariables 2481// Entry rule entryRuleAggregation
2131entryRuleLocalVariables returns [EObject current=null]: 2482entryRuleAggregation returns [EObject current=null]:
2132 { newCompositeNode(grammarAccess.getLocalVariablesRule()); } 2483 { newCompositeNode(grammarAccess.getAggregationRule()); }
2133 iv_ruleLocalVariables=ruleLocalVariables 2484 iv_ruleAggregation=ruleAggregation
2134 { $current=$iv_ruleLocalVariables.current; } 2485 { $current=$iv_ruleAggregation.current; }
2135 EOF; 2486 EOF;
2136 2487
2137// Rule LocalVariables 2488// Rule Aggregation
2138ruleLocalVariables returns [EObject current=null] 2489ruleAggregation returns [EObject current=null]
2139@init { 2490@init {
2140 enterRule(); 2491 enterRule();
2141} 2492}
@@ -2144,162 +2495,83 @@ ruleLocalVariables returns [EObject current=null]
2144}: 2495}:
2145 ( 2496 (
2146 ( 2497 (
2147 {
2148 $current = forceCreateModelElement(
2149 grammarAccess.getLocalVariablesAccess().getLocalVariablesAction_0(),
2150 $current);
2151 }
2152 )
2153 otherlv_1=LeftSquareBracket
2154 {
2155 newLeafNode(otherlv_1, grammarAccess.getLocalVariablesAccess().getLeftSquareBracketKeyword_1());
2156 }
2157 (
2158 ( 2498 (
2159 (
2160 {
2161 newCompositeNode(grammarAccess.getLocalVariablesAccess().getVariablesVariableParserRuleCall_2_0_0());
2162 }
2163 lv_variables_2_0=ruleVariable
2164 {
2165 if ($current==null) {
2166 $current = createModelElementForParent(grammarAccess.getLocalVariablesRule());
2167 }
2168 add(
2169 $current,
2170 "variables",
2171 lv_variables_2_0,
2172 "org.eclipse.viatra.solver.language.SolverLanguage.Variable");
2173 afterParserOrEnumRuleCall();
2174 }
2175 )
2176 )
2177 (
2178 otherlv_3=Comma
2179 { 2499 {
2180 newLeafNode(otherlv_3, grammarAccess.getLocalVariablesAccess().getCommaKeyword_2_1_0()); 2500 if ($current==null) {
2501 $current = createModelElement(grammarAccess.getAggregationRule());
2502 }
2181 } 2503 }
2182 (
2183 (
2184 {
2185 newCompositeNode(grammarAccess.getLocalVariablesAccess().getVariablesVariableParserRuleCall_2_1_1_0());
2186 }
2187 lv_variables_4_0=ruleVariable
2188 {
2189 if ($current==null) {
2190 $current = createModelElementForParent(grammarAccess.getLocalVariablesRule());
2191 }
2192 add(
2193 $current,
2194 "variables",
2195 lv_variables_4_0,
2196 "org.eclipse.viatra.solver.language.SolverLanguage.Variable");
2197 afterParserOrEnumRuleCall();
2198 }
2199 )
2200 )
2201 )*
2202 )?
2203 otherlv_5=RightSquareBracket
2204 {
2205 newLeafNode(otherlv_5, grammarAccess.getLocalVariablesAccess().getRightSquareBracketKeyword_3());
2206 }
2207 )
2208;
2209
2210// Entry rule entryRuleQuantifiedExpression
2211entryRuleQuantifiedExpression returns [EObject current=null]:
2212 { newCompositeNode(grammarAccess.getQuantifiedExpressionRule()); }
2213 iv_ruleQuantifiedExpression=ruleQuantifiedExpression
2214 { $current=$iv_ruleQuantifiedExpression.current; }
2215 EOF;
2216
2217// Rule QuantifiedExpression
2218ruleQuantifiedExpression returns [EObject current=null]
2219@init {
2220 enterRule();
2221}
2222@after {
2223 leaveRule();
2224}:
2225 (
2226 (
2227 (
2228 { 2504 {
2229 newCompositeNode(grammarAccess.getQuantifiedExpressionAccess().getQuantifierQuantifierEnumRuleCall_0_0()); 2505 newCompositeNode(grammarAccess.getAggregationAccess().getOpSymbolCrossReference_0_0());
2230 } 2506 }
2231 lv_quantifier_0_0=ruleQuantifier 2507 ruleQualifiedName
2232 { 2508 {
2233 if ($current==null) {
2234 $current = createModelElementForParent(grammarAccess.getQuantifiedExpressionRule());
2235 }
2236 set(
2237 $current,
2238 "quantifier",
2239 lv_quantifier_0_0,
2240 "org.eclipse.viatra.solver.language.SolverLanguage.Quantifier");
2241 afterParserOrEnumRuleCall(); 2509 afterParserOrEnumRuleCall();
2242 } 2510 }
2243 ) 2511 )
2244 ) 2512 )
2513 otherlv_1=LeftCurlyBracket
2514 {
2515 newLeafNode(otherlv_1, grammarAccess.getAggregationAccess().getLeftCurlyBracketKeyword_1());
2516 }
2245 ( 2517 (
2246 ( 2518 (
2247 { 2519 {
2248 newCompositeNode(grammarAccess.getQuantifiedExpressionAccess().getLocalVariablesLocalVariablesParserRuleCall_1_0()); 2520 newCompositeNode(grammarAccess.getAggregationAccess().getValueExpressionParserRuleCall_2_0());
2249 } 2521 }
2250 lv_localVariables_1_0=ruleLocalVariables 2522 lv_value_2_0=ruleExpression
2251 { 2523 {
2252 if ($current==null) { 2524 if ($current==null) {
2253 $current = createModelElementForParent(grammarAccess.getQuantifiedExpressionRule()); 2525 $current = createModelElementForParent(grammarAccess.getAggregationRule());
2254 } 2526 }
2255 set( 2527 set(
2256 $current, 2528 $current,
2257 "localVariables", 2529 "value",
2258 lv_localVariables_1_0, 2530 lv_value_2_0,
2259 "org.eclipse.viatra.solver.language.SolverLanguage.LocalVariables"); 2531 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
2260 afterParserOrEnumRuleCall(); 2532 afterParserOrEnumRuleCall();
2261 } 2533 }
2262 ) 2534 )
2263 )? 2535 )
2264 otherlv_2=LeftCurlyBracket 2536 otherlv_3=VerticalLine
2265 { 2537 {
2266 newLeafNode(otherlv_2, grammarAccess.getQuantifiedExpressionAccess().getLeftCurlyBracketKeyword_2()); 2538 newLeafNode(otherlv_3, grammarAccess.getAggregationAccess().getVerticalLineKeyword_3());
2267 } 2539 }
2268 ( 2540 (
2269 ( 2541 (
2270 { 2542 {
2271 newCompositeNode(grammarAccess.getQuantifiedExpressionAccess().getBodyExpressionParserRuleCall_3_0()); 2543 newCompositeNode(grammarAccess.getAggregationAccess().getConditionExpressionParserRuleCall_4_0());
2272 } 2544 }
2273 lv_body_3_0=ruleExpression 2545 lv_condition_4_0=ruleExpression
2274 { 2546 {
2275 if ($current==null) { 2547 if ($current==null) {
2276 $current = createModelElementForParent(grammarAccess.getQuantifiedExpressionRule()); 2548 $current = createModelElementForParent(grammarAccess.getAggregationRule());
2277 } 2549 }
2278 set( 2550 set(
2279 $current, 2551 $current,
2280 "body", 2552 "condition",
2281 lv_body_3_0, 2553 lv_condition_4_0,
2282 "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); 2554 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
2283 afterParserOrEnumRuleCall(); 2555 afterParserOrEnumRuleCall();
2284 } 2556 }
2285 ) 2557 )
2286 ) 2558 )
2287 otherlv_4=RightCurlyBracket 2559 otherlv_5=RightCurlyBracket
2288 { 2560 {
2289 newLeafNode(otherlv_4, grammarAccess.getQuantifiedExpressionAccess().getRightCurlyBracketKeyword_4()); 2561 newLeafNode(otherlv_5, grammarAccess.getAggregationAccess().getRightCurlyBracketKeyword_5());
2290 } 2562 }
2291 ) 2563 )
2292; 2564;
2293 2565
2294// Entry rule entryRuleAggregation 2566// Entry rule entryRuleCount
2295entryRuleAggregation returns [EObject current=null]: 2567entryRuleCount returns [EObject current=null]:
2296 { newCompositeNode(grammarAccess.getAggregationRule()); } 2568 { newCompositeNode(grammarAccess.getCountRule()); }
2297 iv_ruleAggregation=ruleAggregation 2569 iv_ruleCount=ruleCount
2298 { $current=$iv_ruleAggregation.current; } 2570 { $current=$iv_ruleCount.current; }
2299 EOF; 2571 EOF;
2300 2572
2301// Rule Aggregation 2573// Rule Count
2302ruleAggregation returns [EObject current=null] 2574ruleCount returns [EObject current=null]
2303@init { 2575@init {
2304 enterRule(); 2576 enterRule();
2305} 2577}
@@ -2307,92 +2579,36 @@ ruleAggregation returns [EObject current=null]
2307 leaveRule(); 2579 leaveRule();
2308}: 2580}:
2309 ( 2581 (
2310 ( 2582 otherlv_0=Count
2311 (
2312 {
2313 if ($current==null) {
2314 $current = createModelElement(grammarAccess.getAggregationRule());
2315 }
2316 }
2317 {
2318 newCompositeNode(grammarAccess.getAggregationAccess().getOpNamedElementCrossReference_0_0());
2319 }
2320 ruleQualifiedName
2321 {
2322 afterParserOrEnumRuleCall();
2323 }
2324 )
2325 )
2326 (
2327 (
2328 {
2329 newCompositeNode(grammarAccess.getAggregationAccess().getLocalVariablesLocalVariablesParserRuleCall_1_0());
2330 }
2331 lv_localVariables_1_0=ruleLocalVariables
2332 {
2333 if ($current==null) {
2334 $current = createModelElementForParent(grammarAccess.getAggregationRule());
2335 }
2336 set(
2337 $current,
2338 "localVariables",
2339 lv_localVariables_1_0,
2340 "org.eclipse.viatra.solver.language.SolverLanguage.LocalVariables");
2341 afterParserOrEnumRuleCall();
2342 }
2343 )
2344 )?
2345 otherlv_2=LeftCurlyBracket
2346 { 2583 {
2347 newLeafNode(otherlv_2, grammarAccess.getAggregationAccess().getLeftCurlyBracketKeyword_2()); 2584 newLeafNode(otherlv_0, grammarAccess.getCountAccess().getCountKeyword_0());
2585 }
2586 otherlv_1=LeftCurlyBracket
2587 {
2588 newLeafNode(otherlv_1, grammarAccess.getCountAccess().getLeftCurlyBracketKeyword_1());
2348 } 2589 }
2349 ( 2590 (
2350 ( 2591 (
2351 { 2592 {
2352 newCompositeNode(grammarAccess.getAggregationAccess().getBodyExpressionParserRuleCall_3_0()); 2593 newCompositeNode(grammarAccess.getCountAccess().getConditionExpressionParserRuleCall_2_0());
2353 } 2594 }
2354 lv_body_3_0=ruleExpression 2595 lv_condition_2_0=ruleExpression
2355 { 2596 {
2356 if ($current==null) { 2597 if ($current==null) {
2357 $current = createModelElementForParent(grammarAccess.getAggregationRule()); 2598 $current = createModelElementForParent(grammarAccess.getCountRule());
2358 } 2599 }
2359 set( 2600 set(
2360 $current, 2601 $current,
2361 "body", 2602 "condition",
2362 lv_body_3_0, 2603 lv_condition_2_0,
2363 "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); 2604 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
2364 afterParserOrEnumRuleCall(); 2605 afterParserOrEnumRuleCall();
2365 } 2606 }
2366 ) 2607 )
2367 ) 2608 )
2368 ( 2609 otherlv_3=RightCurlyBracket
2369 otherlv_4=VerticalLine
2370 {
2371 newLeafNode(otherlv_4, grammarAccess.getAggregationAccess().getVerticalLineKeyword_4_0());
2372 }
2373 (
2374 (
2375 {
2376 newCompositeNode(grammarAccess.getAggregationAccess().getConditionExpressionParserRuleCall_4_1_0());
2377 }
2378 lv_condition_5_0=ruleExpression
2379 {
2380 if ($current==null) {
2381 $current = createModelElementForParent(grammarAccess.getAggregationRule());
2382 }
2383 set(
2384 $current,
2385 "condition",
2386 lv_condition_5_0,
2387 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
2388 afterParserOrEnumRuleCall();
2389 }
2390 )
2391 )
2392 )?
2393 otherlv_6=RightCurlyBracket
2394 { 2610 {
2395 newLeafNode(otherlv_6, grammarAccess.getAggregationAccess().getRightCurlyBracketKeyword_5()); 2611 newLeafNode(otherlv_3, grammarAccess.getCountAccess().getRightCurlyBracketKeyword_3());
2396 } 2612 }
2397 ) 2613 )
2398; 2614;
@@ -2507,49 +2723,10 @@ ruleCall returns [EObject current=null]
2507 ) 2723 )
2508 ( 2724 (
2509 ( 2725 (
2510 (
2511 lv_transitiveClosure_1_0=RULE_TRANSITIVE_CLOSURE
2512 {
2513 newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getCallAccess().getTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_1_0_0());
2514 }
2515 {
2516 if ($current==null) {
2517 $current = createModelElement(grammarAccess.getCallRule());
2518 }
2519 setWithLastConsumed(
2520 $current,
2521 "transitiveClosure",
2522 true,
2523 "org.eclipse.viatra.solver.language.SolverLanguage.TRANSITIVE_CLOSURE");
2524 }
2525 )
2526 )
2527 |
2528 (
2529 (
2530 lv_reflexiveTransitiveClosure_2_0=RULE_REFLEXIVE_TRANSITIVE_CLOSURE
2531 {
2532 newLeafNode(lv_reflexiveTransitiveClosure_2_0, grammarAccess.getCallAccess().getReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_1_1_0());
2533 }
2534 {
2535 if ($current==null) {
2536 $current = createModelElement(grammarAccess.getCallRule());
2537 }
2538 setWithLastConsumed(
2539 $current,
2540 "reflexiveTransitiveClosure",
2541 true,
2542 "org.eclipse.viatra.solver.language.SolverLanguage.REFLEXIVE_TRANSITIVE_CLOSURE");
2543 }
2544 )
2545 )
2546 )?
2547 (
2548 (
2549 { 2726 {
2550 newCompositeNode(grammarAccess.getCallAccess().getArgumentListArgumentListParserRuleCall_2_0()); 2727 newCompositeNode(grammarAccess.getCallAccess().getArgumentListArgumentListParserRuleCall_1_0());
2551 } 2728 }
2552 lv_argumentList_3_0=ruleArgumentList 2729 lv_argumentList_1_0=ruleArgumentList
2553 { 2730 {
2554 if ($current==null) { 2731 if ($current==null) {
2555 $current = createModelElementForParent(grammarAccess.getCallRule()); 2732 $current = createModelElementForParent(grammarAccess.getCallRule());
@@ -2557,7 +2734,7 @@ ruleCall returns [EObject current=null]
2557 set( 2734 set(
2558 $current, 2735 $current,
2559 "argumentList", 2736 "argumentList",
2560 lv_argumentList_3_0, 2737 lv_argumentList_1_0,
2561 "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); 2738 "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList");
2562 afterParserOrEnumRuleCall(); 2739 afterParserOrEnumRuleCall();
2563 } 2740 }
@@ -2681,11 +2858,11 @@ ruleArgument returns [EObject current=null]
2681 } 2858 }
2682 | 2859 |
2683 { 2860 {
2684 newCompositeNode(grammarAccess.getArgumentAccess().getTypedArgumentParserRuleCall_2()); 2861 newCompositeNode(grammarAccess.getArgumentAccess().getTypedVariableArgumentParserRuleCall_2());
2685 } 2862 }
2686 this_TypedArgument_2=ruleTypedArgument 2863 this_TypedVariableArgument_2=ruleTypedVariableArgument
2687 { 2864 {
2688 $current = $this_TypedArgument_2.current; 2865 $current = $this_TypedVariableArgument_2.current;
2689 afterParserOrEnumRuleCall(); 2866 afterParserOrEnumRuleCall();
2690 } 2867 }
2691 | 2868 |
@@ -2718,17 +2895,17 @@ ruleExpressionArgument returns [EObject current=null]
2718 ( 2895 (
2719 ( 2896 (
2720 { 2897 {
2721 newCompositeNode(grammarAccess.getExpressionArgumentAccess().getBodyComparisonExpressionParserRuleCall_0()); 2898 newCompositeNode(grammarAccess.getExpressionArgumentAccess().getExpressionComparisonExpressionParserRuleCall_0());
2722 } 2899 }
2723 lv_body_0_0=ruleComparisonExpression 2900 lv_expression_0_0=ruleComparisonExpression
2724 { 2901 {
2725 if ($current==null) { 2902 if ($current==null) {
2726 $current = createModelElementForParent(grammarAccess.getExpressionArgumentRule()); 2903 $current = createModelElementForParent(grammarAccess.getExpressionArgumentRule());
2727 } 2904 }
2728 set( 2905 set(
2729 $current, 2906 $current,
2730 "body", 2907 "expression",
2731 lv_body_0_0, 2908 lv_expression_0_0,
2732 "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonExpression"); 2909 "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonExpression");
2733 afterParserOrEnumRuleCall(); 2910 afterParserOrEnumRuleCall();
2734 } 2911 }
@@ -2766,15 +2943,15 @@ ruleStarArgument returns [EObject current=null]
2766 ) 2943 )
2767; 2944;
2768 2945
2769// Entry rule entryRuleTypedArgument 2946// Entry rule entryRuleTypedVariableArgument
2770entryRuleTypedArgument returns [EObject current=null]: 2947entryRuleTypedVariableArgument returns [EObject current=null]:
2771 { newCompositeNode(grammarAccess.getTypedArgumentRule()); } 2948 { newCompositeNode(grammarAccess.getTypedVariableArgumentRule()); }
2772 iv_ruleTypedArgument=ruleTypedArgument 2949 iv_ruleTypedVariableArgument=ruleTypedVariableArgument
2773 { $current=$iv_ruleTypedArgument.current; } 2950 { $current=$iv_ruleTypedVariableArgument.current; }
2774 EOF; 2951 EOF;
2775 2952
2776// Rule TypedArgument 2953// Rule TypedVariableArgument
2777ruleTypedArgument returns [EObject current=null] 2954ruleTypedVariableArgument returns [EObject current=null]
2778@init { 2955@init {
2779 enterRule(); 2956 enterRule();
2780} 2957}
@@ -2785,32 +2962,37 @@ ruleTypedArgument returns [EObject current=null]
2785 ( 2962 (
2786 ( 2963 (
2787 { 2964 {
2788 if ($current==null) { 2965 newCompositeNode(grammarAccess.getTypedVariableArgumentAccess().getTypeReferenceTypeReferenceParserRuleCall_0_0());
2789 $current = createModelElement(grammarAccess.getTypedArgumentRule());
2790 }
2791 } 2966 }
2967 lv_typeReference_0_0=ruleTypeReference
2792 { 2968 {
2793 newCompositeNode(grammarAccess.getTypedArgumentAccess().getTypeNamedElementCrossReference_0_0()); 2969 if ($current==null) {
2794 } 2970 $current = createModelElementForParent(grammarAccess.getTypedVariableArgumentRule());
2795 ruleQualifiedName 2971 }
2796 { 2972 set(
2973 $current,
2974 "typeReference",
2975 lv_typeReference_0_0,
2976 "org.eclipse.viatra.solver.language.SolverLanguage.TypeReference");
2797 afterParserOrEnumRuleCall(); 2977 afterParserOrEnumRuleCall();
2798 } 2978 }
2799 ) 2979 )
2800 ) 2980 )
2801 ( 2981 (
2802 ( 2982 (
2983 lv_name_1_0=RULE_ID
2803 { 2984 {
2804 if ($current==null) { 2985 newLeafNode(lv_name_1_0, grammarAccess.getTypedVariableArgumentAccess().getNameIDTerminalRuleCall_1_0());
2805 $current = createModelElement(grammarAccess.getTypedArgumentRule());
2806 }
2807 }
2808 {
2809 newCompositeNode(grammarAccess.getTypedArgumentAccess().getVariableNamedElementCrossReference_1_0());
2810 } 2986 }
2811 ruleQualifiedName
2812 { 2987 {
2813 afterParserOrEnumRuleCall(); 2988 if ($current==null) {
2989 $current = createModelElement(grammarAccess.getTypedVariableArgumentRule());
2990 }
2991 setWithLastConsumed(
2992 $current,
2993 "name",
2994 lv_name_1_0,
2995 "org.eclipse.xtext.common.Terminals.ID");
2814 } 2996 }
2815 ) 2997 )
2816 ) 2998 )
@@ -2836,15 +3018,18 @@ ruleTypedStarArgument returns [EObject current=null]
2836 ( 3018 (
2837 ( 3019 (
2838 { 3020 {
2839 if ($current==null) { 3021 newCompositeNode(grammarAccess.getTypedStarArgumentAccess().getTypeReferenceTypeReferenceParserRuleCall_0_0());
2840 $current = createModelElement(grammarAccess.getTypedStarArgumentRule());
2841 }
2842 } 3022 }
3023 lv_typeReference_0_0=ruleTypeReference
2843 { 3024 {
2844 newCompositeNode(grammarAccess.getTypedStarArgumentAccess().getTypeNamedElementCrossReference_0_0()); 3025 if ($current==null) {
2845 } 3026 $current = createModelElementForParent(grammarAccess.getTypedStarArgumentRule());
2846 ruleQualifiedName 3027 }
2847 { 3028 set(
3029 $current,
3030 "typeReference",
3031 lv_typeReference_0_0,
3032 "org.eclipse.viatra.solver.language.SolverLanguage.TypeReference");
2848 afterParserOrEnumRuleCall(); 3033 afterParserOrEnumRuleCall();
2849 } 3034 }
2850 ) 3035 )
@@ -2873,19 +3058,137 @@ ruleReference returns [EObject current=null]
2873}: 3058}:
2874 ( 3059 (
2875 ( 3060 (
2876 { 3061 (
2877 if ($current==null) { 3062 {
2878 $current = createModelElement(grammarAccess.getReferenceRule()); 3063 newCompositeNode(grammarAccess.getReferenceAccess().getComponentsPathComponentParserRuleCall_0_0());
2879 } 3064 }
2880 } 3065 lv_components_0_0=rulePathComponent
2881 { 3066 {
2882 newCompositeNode(grammarAccess.getReferenceAccess().getReferredNamedElementCrossReference_0()); 3067 if ($current==null) {
2883 } 3068 $current = createModelElementForParent(grammarAccess.getReferenceRule());
2884 ruleQualifiedName 3069 }
3070 add(
3071 $current,
3072 "components",
3073 lv_components_0_0,
3074 "org.eclipse.viatra.solver.language.SolverLanguage.PathComponent");
3075 afterParserOrEnumRuleCall();
3076 }
3077 )
3078 )
3079 (
3080 otherlv_1=FullStop
2885 { 3081 {
2886 afterParserOrEnumRuleCall(); 3082 newLeafNode(otherlv_1, grammarAccess.getReferenceAccess().getFullStopKeyword_1_0());
2887 } 3083 }
3084 (
3085 (
3086 {
3087 newCompositeNode(grammarAccess.getReferenceAccess().getComponentsPathComponentParserRuleCall_1_1_0());
3088 }
3089 lv_components_2_0=rulePathComponent
3090 {
3091 if ($current==null) {
3092 $current = createModelElementForParent(grammarAccess.getReferenceRule());
3093 }
3094 add(
3095 $current,
3096 "components",
3097 lv_components_2_0,
3098 "org.eclipse.viatra.solver.language.SolverLanguage.PathComponent");
3099 afterParserOrEnumRuleCall();
3100 }
3101 )
3102 )
3103 )*
3104 )
3105;
3106
3107// Entry rule entryRulePathComponent
3108entryRulePathComponent returns [EObject current=null]:
3109 { newCompositeNode(grammarAccess.getPathComponentRule()); }
3110 iv_rulePathComponent=rulePathComponent
3111 { $current=$iv_rulePathComponent.current; }
3112 EOF;
3113
3114// Rule PathComponent
3115rulePathComponent returns [EObject current=null]
3116@init {
3117 enterRule();
3118}
3119@after {
3120 leaveRule();
3121}:
3122 (
3123 (
3124 (
3125 lv_inverse_0_0=Tilde
3126 {
3127 newLeafNode(lv_inverse_0_0, grammarAccess.getPathComponentAccess().getInverseTildeKeyword_0_0());
3128 }
3129 {
3130 if ($current==null) {
3131 $current = createModelElement(grammarAccess.getPathComponentRule());
3132 }
3133 setWithLastConsumed($current, "inverse", true, "~");
3134 }
3135 )
3136 )?
3137 (
3138 (
3139 {
3140 if ($current==null) {
3141 $current = createModelElement(grammarAccess.getPathComponentRule());
3142 }
3143 }
3144 {
3145 newCompositeNode(grammarAccess.getPathComponentAccess().getSymbolSymbolCrossReference_1_0());
3146 }
3147 ruleQualifiedName
3148 {
3149 afterParserOrEnumRuleCall();
3150 }
3151 )
2888 ) 3152 )
3153 (
3154 (
3155 (
3156 lv_transitiveClosure_2_0=RULE_TRANSITIVE_CLOSURE
3157 {
3158 newLeafNode(lv_transitiveClosure_2_0, grammarAccess.getPathComponentAccess().getTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_2_0_0());
3159 }
3160 {
3161 if ($current==null) {
3162 $current = createModelElement(grammarAccess.getPathComponentRule());
3163 }
3164 setWithLastConsumed(
3165 $current,
3166 "transitiveClosure",
3167 true,
3168 "org.eclipse.viatra.solver.language.SolverLanguage.TRANSITIVE_CLOSURE");
3169 }
3170 )
3171 )
3172 |
3173 (
3174 (
3175 lv_reflexiveTransitiveClosure_3_0=RULE_REFLEXIVE_TRANSITIVE_CLOSURE
3176 {
3177 newLeafNode(lv_reflexiveTransitiveClosure_3_0, grammarAccess.getPathComponentAccess().getReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_2_1_0());
3178 }
3179 {
3180 if ($current==null) {
3181 $current = createModelElement(grammarAccess.getPathComponentRule());
3182 }
3183 setWithLastConsumed(
3184 $current,
3185 "reflexiveTransitiveClosure",
3186 true,
3187 "org.eclipse.viatra.solver.language.SolverLanguage.REFLEXIVE_TRANSITIVE_CLOSURE");
3188 }
3189 )
3190 )
3191 )?
2889 ) 3192 )
2890; 3193;
2891 3194
@@ -2912,9 +3215,9 @@ ruleInterval returns [EObject current=null]
2912 ( 3215 (
2913 ( 3216 (
2914 { 3217 {
2915 newCompositeNode(grammarAccess.getIntervalAccess().getLowerBoundExpressionParserRuleCall_1_0()); 3218 newCompositeNode(grammarAccess.getIntervalAccess().getLowerBoundAdditiveExpressionParserRuleCall_1_0());
2916 } 3219 }
2917 lv_lowerBound_1_0=ruleExpression 3220 lv_lowerBound_1_0=ruleAdditiveExpression
2918 { 3221 {
2919 if ($current==null) { 3222 if ($current==null) {
2920 $current = createModelElementForParent(grammarAccess.getIntervalRule()); 3223 $current = createModelElementForParent(grammarAccess.getIntervalRule());
@@ -2923,21 +3226,21 @@ ruleInterval returns [EObject current=null]
2923 $current, 3226 $current,
2924 "lowerBound", 3227 "lowerBound",
2925 lv_lowerBound_1_0, 3228 lv_lowerBound_1_0,
2926 "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); 3229 "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression");
2927 afterParserOrEnumRuleCall(); 3230 afterParserOrEnumRuleCall();
2928 } 3231 }
2929 ) 3232 )
2930 ) 3233 )
2931 otherlv_2=FullStopFullStop 3234 otherlv_2=Comma
2932 { 3235 {
2933 newLeafNode(otherlv_2, grammarAccess.getIntervalAccess().getFullStopFullStopKeyword_2()); 3236 newLeafNode(otherlv_2, grammarAccess.getIntervalAccess().getCommaKeyword_2());
2934 } 3237 }
2935 ( 3238 (
2936 ( 3239 (
2937 { 3240 {
2938 newCompositeNode(grammarAccess.getIntervalAccess().getUpperBoundExpressionParserRuleCall_3_0()); 3241 newCompositeNode(grammarAccess.getIntervalAccess().getUpperBoundAdditiveExpressionParserRuleCall_3_0());
2939 } 3242 }
2940 lv_upperBound_3_0=ruleExpression 3243 lv_upperBound_3_0=ruleAdditiveExpression
2941 { 3244 {
2942 if ($current==null) { 3245 if ($current==null) {
2943 $current = createModelElementForParent(grammarAccess.getIntervalRule()); 3246 $current = createModelElementForParent(grammarAccess.getIntervalRule());
@@ -2946,7 +3249,7 @@ ruleInterval returns [EObject current=null]
2946 $current, 3249 $current,
2947 "upperBound", 3250 "upperBound",
2948 lv_upperBound_3_0, 3251 lv_upperBound_3_0,
2949 "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); 3252 "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression");
2950 afterParserOrEnumRuleCall(); 3253 afterParserOrEnumRuleCall();
2951 } 3254 }
2952 ) 3255 )
@@ -2984,38 +3287,47 @@ ruleLiteral returns [EObject current=null]
2984 } 3287 }
2985 | 3288 |
2986 { 3289 {
2987 newCompositeNode(grammarAccess.getLiteralAccess().getNumericLiteralParserRuleCall_1()); 3290 newCompositeNode(grammarAccess.getLiteralAccess().getIntLiteralParserRuleCall_1());
2988 } 3291 }
2989 this_NumericLiteral_1=ruleNumericLiteral 3292 this_IntLiteral_1=ruleIntLiteral
2990 { 3293 {
2991 $current = $this_NumericLiteral_1.current; 3294 $current = $this_IntLiteral_1.current;
2992 afterParserOrEnumRuleCall(); 3295 afterParserOrEnumRuleCall();
2993 } 3296 }
2994 | 3297 |
2995 { 3298 {
2996 newCompositeNode(grammarAccess.getLiteralAccess().getInfinityLiteralParserRuleCall_2()); 3299 newCompositeNode(grammarAccess.getLiteralAccess().getRealLiteralParserRuleCall_2());
2997 } 3300 }
2998 this_InfinityLiteral_2=ruleInfinityLiteral 3301 this_RealLiteral_2=ruleRealLiteral
2999 { 3302 {
3000 $current = $this_InfinityLiteral_2.current; 3303 $current = $this_RealLiteral_2.current;
3001 afterParserOrEnumRuleCall(); 3304 afterParserOrEnumRuleCall();
3002 } 3305 }
3003 | 3306 |
3004 { 3307 {
3005 newCompositeNode(grammarAccess.getLiteralAccess().getEmptyIntervalLiteralParserRuleCall_3()); 3308 newCompositeNode(grammarAccess.getLiteralAccess().getInfinityLiteralParserRuleCall_3());
3006 } 3309 }
3007 this_EmptyIntervalLiteral_3=ruleEmptyIntervalLiteral 3310 this_InfinityLiteral_3=ruleInfinityLiteral
3008 { 3311 {
3009 $current = $this_EmptyIntervalLiteral_3.current; 3312 $current = $this_InfinityLiteral_3.current;
3010 afterParserOrEnumRuleCall(); 3313 afterParserOrEnumRuleCall();
3011 } 3314 }
3012 | 3315 |
3013 { 3316 {
3014 newCompositeNode(grammarAccess.getLiteralAccess().getStringLiteralParserRuleCall_4()); 3317 newCompositeNode(grammarAccess.getLiteralAccess().getEmptyLiteralParserRuleCall_4());
3015 } 3318 }
3016 this_StringLiteral_4=ruleStringLiteral 3319 this_EmptyLiteral_4=ruleEmptyLiteral
3017 { 3320 {
3018 $current = $this_StringLiteral_4.current; 3321 $current = $this_EmptyLiteral_4.current;
3322 afterParserOrEnumRuleCall();
3323 }
3324 |
3325 {
3326 newCompositeNode(grammarAccess.getLiteralAccess().getStringLiteralParserRuleCall_5());
3327 }
3328 this_StringLiteral_5=ruleStringLiteral
3329 {
3330 $current = $this_StringLiteral_5.current;
3019 afterParserOrEnumRuleCall(); 3331 afterParserOrEnumRuleCall();
3020 } 3332 }
3021 ) 3333 )
@@ -3057,15 +3369,50 @@ ruleLogicLiteral returns [EObject current=null]
3057 ) 3369 )
3058; 3370;
3059 3371
3060// Entry rule entryRuleNumericLiteral 3372// Entry rule entryRuleIntLiteral
3061entryRuleNumericLiteral returns [EObject current=null]: 3373entryRuleIntLiteral returns [EObject current=null]:
3062 { newCompositeNode(grammarAccess.getNumericLiteralRule()); } 3374 { newCompositeNode(grammarAccess.getIntLiteralRule()); }
3063 iv_ruleNumericLiteral=ruleNumericLiteral 3375 iv_ruleIntLiteral=ruleIntLiteral
3064 { $current=$iv_ruleNumericLiteral.current; } 3376 { $current=$iv_ruleIntLiteral.current; }
3377 EOF;
3378
3379// Rule IntLiteral
3380ruleIntLiteral returns [EObject current=null]
3381@init {
3382 enterRule();
3383}
3384@after {
3385 leaveRule();
3386}:
3387 (
3388 (
3389 lv_value_0_0=RULE_INT
3390 {
3391 newLeafNode(lv_value_0_0, grammarAccess.getIntLiteralAccess().getValueINTTerminalRuleCall_0());
3392 }
3393 {
3394 if ($current==null) {
3395 $current = createModelElement(grammarAccess.getIntLiteralRule());
3396 }
3397 setWithLastConsumed(
3398 $current,
3399 "value",
3400 lv_value_0_0,
3401 "org.eclipse.xtext.common.Terminals.INT");
3402 }
3403 )
3404 )
3405;
3406
3407// Entry rule entryRuleRealLiteral
3408entryRuleRealLiteral returns [EObject current=null]:
3409 { newCompositeNode(grammarAccess.getRealLiteralRule()); }
3410 iv_ruleRealLiteral=ruleRealLiteral
3411 { $current=$iv_ruleRealLiteral.current; }
3065 EOF; 3412 EOF;
3066 3413
3067// Rule NumericLiteral 3414// Rule RealLiteral
3068ruleNumericLiteral returns [EObject current=null] 3415ruleRealLiteral returns [EObject current=null]
3069@init { 3416@init {
3070 enterRule(); 3417 enterRule();
3071} 3418}
@@ -3075,12 +3422,12 @@ ruleNumericLiteral returns [EObject current=null]
3075 ( 3422 (
3076 ( 3423 (
3077 { 3424 {
3078 newCompositeNode(grammarAccess.getNumericLiteralAccess().getValueRealParserRuleCall_0()); 3425 newCompositeNode(grammarAccess.getRealLiteralAccess().getValueRealParserRuleCall_0());
3079 } 3426 }
3080 lv_value_0_0=ruleReal 3427 lv_value_0_0=ruleReal
3081 { 3428 {
3082 if ($current==null) { 3429 if ($current==null) {
3083 $current = createModelElementForParent(grammarAccess.getNumericLiteralRule()); 3430 $current = createModelElementForParent(grammarAccess.getRealLiteralRule());
3084 } 3431 }
3085 set( 3432 set(
3086 $current, 3433 $current,
@@ -3123,15 +3470,15 @@ ruleInfinityLiteral returns [EObject current=null]
3123 ) 3470 )
3124; 3471;
3125 3472
3126// Entry rule entryRuleEmptyIntervalLiteral 3473// Entry rule entryRuleEmptyLiteral
3127entryRuleEmptyIntervalLiteral returns [EObject current=null]: 3474entryRuleEmptyLiteral returns [EObject current=null]:
3128 { newCompositeNode(grammarAccess.getEmptyIntervalLiteralRule()); } 3475 { newCompositeNode(grammarAccess.getEmptyLiteralRule()); }
3129 iv_ruleEmptyIntervalLiteral=ruleEmptyIntervalLiteral 3476 iv_ruleEmptyLiteral=ruleEmptyLiteral
3130 { $current=$iv_ruleEmptyIntervalLiteral.current; } 3477 { $current=$iv_ruleEmptyLiteral.current; }
3131 EOF; 3478 EOF;
3132 3479
3133// Rule EmptyIntervalLiteral 3480// Rule EmptyLiteral
3134ruleEmptyIntervalLiteral returns [EObject current=null] 3481ruleEmptyLiteral returns [EObject current=null]
3135@init { 3482@init {
3136 enterRule(); 3483 enterRule();
3137} 3484}
@@ -3142,13 +3489,13 @@ ruleEmptyIntervalLiteral returns [EObject current=null]
3142 ( 3489 (
3143 { 3490 {
3144 $current = forceCreateModelElement( 3491 $current = forceCreateModelElement(
3145 grammarAccess.getEmptyIntervalLiteralAccess().getEmptyIntervalLiteralAction_0(), 3492 grammarAccess.getEmptyLiteralAccess().getEmptyLiteralAction_0(),
3146 $current); 3493 $current);
3147 } 3494 }
3148 ) 3495 )
3149 otherlv_1=Empty 3496 otherlv_1=Empty
3150 { 3497 {
3151 newLeafNode(otherlv_1, grammarAccess.getEmptyIntervalLiteralAccess().getEmptyKeyword_1()); 3498 newLeafNode(otherlv_1, grammarAccess.getEmptyLiteralAccess().getEmptyKeyword_1());
3152 } 3499 }
3153 ) 3500 )
3154; 3501;
@@ -3188,15 +3535,15 @@ ruleStringLiteral returns [EObject current=null]
3188 ) 3535 )
3189; 3536;
3190 3537
3191// Entry rule entryRuleClassDefinition 3538// Entry rule entryRuleClassDeclaration
3192entryRuleClassDefinition returns [EObject current=null]: 3539entryRuleClassDeclaration returns [EObject current=null]:
3193 { newCompositeNode(grammarAccess.getClassDefinitionRule()); } 3540 { newCompositeNode(grammarAccess.getClassDeclarationRule()); }
3194 iv_ruleClassDefinition=ruleClassDefinition 3541 iv_ruleClassDeclaration=ruleClassDeclaration
3195 { $current=$iv_ruleClassDefinition.current; } 3542 { $current=$iv_ruleClassDeclaration.current; }
3196 EOF; 3543 EOF;
3197 3544
3198// Rule ClassDefinition 3545// Rule ClassDeclaration
3199ruleClassDefinition returns [EObject current=null] 3546ruleClassDeclaration returns [EObject current=null]
3200@init { 3547@init {
3201 enterRule(); 3548 enterRule();
3202} 3549}
@@ -3206,54 +3553,100 @@ ruleClassDefinition returns [EObject current=null]
3206 ( 3553 (
3207 ( 3554 (
3208 ( 3555 (
3209 lv_abstract_0_0=Abstract 3556 {
3210 { 3557 getUnorderedGroupHelper().enter(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0());
3211 newLeafNode(lv_abstract_0_0, grammarAccess.getClassDefinitionAccess().getAbstractAbstractKeyword_0_0());
3212 } 3558 }
3213 { 3559 (
3214 if ($current==null) { 3560 (
3215 $current = createModelElement(grammarAccess.getClassDefinitionRule()); 3561 (
3562 {getUnorderedGroupHelper().canSelect(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 0)}?=>(
3563 {
3564 getUnorderedGroupHelper().select(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 0);
3216 } 3565 }
3217 setWithLastConsumed($current, "abstract", true, "abstract"); 3566 ({true}?=>((
3218 } 3567 lv_abstract_1_0=Abstract
3568 {
3569 newLeafNode(lv_abstract_1_0, grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0_0());
3570 }
3571 {
3572 if ($current==null) {
3573 $current = createModelElement(grammarAccess.getClassDeclarationRule());
3574 }
3575 setWithLastConsumed($current, "abstract", true, "abstract");
3576 }
3577 )
3578 ))
3579 {
3580 getUnorderedGroupHelper().returnFromSelection(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0());
3581 }
3582 )
3583 )|
3584 (
3585 {getUnorderedGroupHelper().canSelect(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 1)}?=>(
3586 {
3587 getUnorderedGroupHelper().select(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 1);
3588 }
3589 ({true}?=>((
3590 lv_root_2_0=Root
3591 {
3592 newLeafNode(lv_root_2_0, grammarAccess.getClassDeclarationAccess().getRootRootKeyword_0_1_0());
3593 }
3594 {
3595 if ($current==null) {
3596 $current = createModelElement(grammarAccess.getClassDeclarationRule());
3597 }
3598 setWithLastConsumed($current, "root", true, "root");
3599 }
3600 )
3601 ))
3602 {
3603 getUnorderedGroupHelper().returnFromSelection(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0());
3604 }
3605 )
3219 ) 3606 )
3220 )? 3607 )*
3221 otherlv_1=Class 3608 )
3609 )
3610 {
3611 getUnorderedGroupHelper().leave(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0());
3612 }
3613 )
3614 otherlv_3=Class
3222 { 3615 {
3223 newLeafNode(otherlv_1, grammarAccess.getClassDefinitionAccess().getClassKeyword_1()); 3616 newLeafNode(otherlv_3, grammarAccess.getClassDeclarationAccess().getClassKeyword_1());
3224 } 3617 }
3225 ( 3618 (
3226 ( 3619 (
3227 lv_name_2_0=RULE_ID 3620 lv_name_4_0=RULE_ID
3228 { 3621 {
3229 newLeafNode(lv_name_2_0, grammarAccess.getClassDefinitionAccess().getNameIDTerminalRuleCall_2_0()); 3622 newLeafNode(lv_name_4_0, grammarAccess.getClassDeclarationAccess().getNameIDTerminalRuleCall_2_0());
3230 } 3623 }
3231 { 3624 {
3232 if ($current==null) { 3625 if ($current==null) {
3233 $current = createModelElement(grammarAccess.getClassDefinitionRule()); 3626 $current = createModelElement(grammarAccess.getClassDeclarationRule());
3234 } 3627 }
3235 setWithLastConsumed( 3628 setWithLastConsumed(
3236 $current, 3629 $current,
3237 "name", 3630 "name",
3238 lv_name_2_0, 3631 lv_name_4_0,
3239 "org.eclipse.xtext.common.Terminals.ID"); 3632 "org.eclipse.xtext.common.Terminals.ID");
3240 } 3633 }
3241 ) 3634 )
3242 ) 3635 )
3243 ( 3636 (
3244 otherlv_3=Extends 3637 otherlv_5=Extends
3245 { 3638 {
3246 newLeafNode(otherlv_3, grammarAccess.getClassDefinitionAccess().getExtendsKeyword_3_0()); 3639 newLeafNode(otherlv_5, grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0());
3247 } 3640 }
3248 ( 3641 (
3249 ( 3642 (
3250 { 3643 {
3251 if ($current==null) { 3644 if ($current==null) {
3252 $current = createModelElement(grammarAccess.getClassDefinitionRule()); 3645 $current = createModelElement(grammarAccess.getClassDeclarationRule());
3253 } 3646 }
3254 } 3647 }
3255 { 3648 {
3256 newCompositeNode(grammarAccess.getClassDefinitionAccess().getSuperclassesNamedElementCrossReference_3_1_0()); 3649 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSupertypesSymbolCrossReference_3_1_0());
3257 } 3650 }
3258 ruleQualifiedName 3651 ruleQualifiedName
3259 { 3652 {
@@ -3262,19 +3655,19 @@ ruleClassDefinition returns [EObject current=null]
3262 ) 3655 )
3263 ) 3656 )
3264 ( 3657 (
3265 otherlv_5=Comma 3658 otherlv_7=Comma
3266 { 3659 {
3267 newLeafNode(otherlv_5, grammarAccess.getClassDefinitionAccess().getCommaKeyword_3_2_0()); 3660 newLeafNode(otherlv_7, grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_2_0());
3268 } 3661 }
3269 ( 3662 (
3270 ( 3663 (
3271 { 3664 {
3272 if ($current==null) { 3665 if ($current==null) {
3273 $current = createModelElement(grammarAccess.getClassDefinitionRule()); 3666 $current = createModelElement(grammarAccess.getClassDeclarationRule());
3274 } 3667 }
3275 } 3668 }
3276 { 3669 {
3277 newCompositeNode(grammarAccess.getClassDefinitionAccess().getSuperclassesNamedElementCrossReference_3_2_1_0()); 3670 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSupertypesSymbolCrossReference_3_2_1_0());
3278 } 3671 }
3279 ruleQualifiedName 3672 ruleQualifiedName
3280 { 3673 {
@@ -3284,45 +3677,54 @@ ruleClassDefinition returns [EObject current=null]
3284 ) 3677 )
3285 )* 3678 )*
3286 )? 3679 )?
3287 otherlv_7=LeftCurlyBracket
3288 {
3289 newLeafNode(otherlv_7, grammarAccess.getClassDefinitionAccess().getLeftCurlyBracketKeyword_4());
3290 }
3291 ( 3680 (
3292 ( 3681 (
3682 otherlv_9=LeftCurlyBracket
3293 { 3683 {
3294 newCompositeNode(grammarAccess.getClassDefinitionAccess().getMembersMemberDefinitionParserRuleCall_5_0()); 3684 newLeafNode(otherlv_9, grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0());
3295 } 3685 }
3296 lv_members_8_0=ruleMemberDefinition 3686 (
3687 (
3688 {
3689 newCompositeNode(grammarAccess.getClassDeclarationAccess().getFieldsFieldParserRuleCall_4_0_1_0());
3690 }
3691 lv_fields_10_0=ruleField
3692 {
3693 if ($current==null) {
3694 $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
3695 }
3696 add(
3697 $current,
3698 "fields",
3699 lv_fields_10_0,
3700 "org.eclipse.viatra.solver.language.SolverLanguage.Field");
3701 afterParserOrEnumRuleCall();
3702 }
3703 )
3704 )*
3705 otherlv_11=RightCurlyBracket
3297 { 3706 {
3298 if ($current==null) { 3707 newLeafNode(otherlv_11, grammarAccess.getClassDeclarationAccess().getRightCurlyBracketKeyword_4_0_2());
3299 $current = createModelElementForParent(grammarAccess.getClassDefinitionRule());
3300 }
3301 add(
3302 $current,
3303 "members",
3304 lv_members_8_0,
3305 "org.eclipse.viatra.solver.language.SolverLanguage.MemberDefinition");
3306 afterParserOrEnumRuleCall();
3307 } 3708 }
3308 ) 3709 )
3309 )* 3710 |
3310 otherlv_9=RightCurlyBracket 3711 this_FULL_STOP_12=RULE_FULL_STOP
3311 { 3712 {
3312 newLeafNode(otherlv_9, grammarAccess.getClassDefinitionAccess().getRightCurlyBracketKeyword_6()); 3713 newLeafNode(this_FULL_STOP_12, grammarAccess.getClassDeclarationAccess().getFULL_STOPTerminalRuleCall_4_1());
3313 } 3714 }
3715 )
3314 ) 3716 )
3315; 3717;
3316 3718
3317// Entry rule entryRuleMemberDefinition 3719// Entry rule entryRuleField
3318entryRuleMemberDefinition returns [EObject current=null]: 3720entryRuleField returns [EObject current=null]:
3319 { newCompositeNode(grammarAccess.getMemberDefinitionRule()); } 3721 { newCompositeNode(grammarAccess.getFieldRule()); }
3320 iv_ruleMemberDefinition=ruleMemberDefinition 3722 iv_ruleField=ruleField
3321 { $current=$iv_ruleMemberDefinition.current; } 3723 { $current=$iv_ruleField.current; }
3322 EOF; 3724 EOF;
3323 3725
3324// Rule MemberDefinition 3726// Rule Field
3325ruleMemberDefinition returns [EObject current=null] 3727ruleField returns [EObject current=null]
3326@init { 3728@init {
3327 enterRule(); 3729 enterRule();
3328} 3730}
@@ -3332,27 +3734,44 @@ ruleMemberDefinition returns [EObject current=null]
3332 ( 3734 (
3333 ( 3735 (
3334 ( 3736 (
3335 lv_containment_0_0=Contains 3737 (
3336 { 3738 lv_containment_0_0=Contains
3337 newLeafNode(lv_containment_0_0, grammarAccess.getMemberDefinitionAccess().getContainmentContainsKeyword_0_0()); 3739 {
3338 } 3740 newLeafNode(lv_containment_0_0, grammarAccess.getFieldAccess().getContainmentContainsKeyword_0_0_0());
3339 {
3340 if ($current==null) {
3341 $current = createModelElement(grammarAccess.getMemberDefinitionRule());
3342 } 3741 }
3343 setWithLastConsumed($current, "containment", true, "contains"); 3742 {
3344 } 3743 if ($current==null) {
3744 $current = createModelElement(grammarAccess.getFieldRule());
3745 }
3746 setWithLastConsumed($current, "containment", true, "contains");
3747 }
3748 )
3749 )
3750 |
3751 (
3752 (
3753 lv_crossReference_1_0=Refers
3754 {
3755 newLeafNode(lv_crossReference_1_0, grammarAccess.getFieldAccess().getCrossReferenceRefersKeyword_0_1_0());
3756 }
3757 {
3758 if ($current==null) {
3759 $current = createModelElement(grammarAccess.getFieldRule());
3760 }
3761 setWithLastConsumed($current, "crossReference", true, "refers");
3762 }
3763 )
3345 ) 3764 )
3346 )? 3765 )?
3347 ( 3766 (
3348 ( 3767 (
3349 { 3768 {
3350 if ($current==null) { 3769 if ($current==null) {
3351 $current = createModelElement(grammarAccess.getMemberDefinitionRule()); 3770 $current = createModelElement(grammarAccess.getFieldRule());
3352 } 3771 }
3353 } 3772 }
3354 { 3773 {
3355 newCompositeNode(grammarAccess.getMemberDefinitionAccess().getTypeNamedElementCrossReference_1_0()); 3774 newCompositeNode(grammarAccess.getFieldAccess().getTypeSymbolCrossReference_1_0());
3356 } 3775 }
3357 ruleQualifiedName 3776 ruleQualifiedName
3358 { 3777 {
@@ -3363,17 +3782,17 @@ ruleMemberDefinition returns [EObject current=null]
3363 ( 3782 (
3364 ( 3783 (
3365 { 3784 {
3366 newCompositeNode(grammarAccess.getMemberDefinitionAccess().getMultiplicityMultiplicityParserRuleCall_2_0()); 3785 newCompositeNode(grammarAccess.getFieldAccess().getMultiplicityMultiplicityParserRuleCall_2_0());
3367 } 3786 }
3368 lv_multiplicity_2_0=ruleMultiplicity 3787 lv_multiplicity_3_0=ruleMultiplicity
3369 { 3788 {
3370 if ($current==null) { 3789 if ($current==null) {
3371 $current = createModelElementForParent(grammarAccess.getMemberDefinitionRule()); 3790 $current = createModelElementForParent(grammarAccess.getFieldRule());
3372 } 3791 }
3373 set( 3792 set(
3374 $current, 3793 $current,
3375 "multiplicity", 3794 "multiplicity",
3376 lv_multiplicity_2_0, 3795 lv_multiplicity_3_0,
3377 "org.eclipse.viatra.solver.language.SolverLanguage.Multiplicity"); 3796 "org.eclipse.viatra.solver.language.SolverLanguage.Multiplicity");
3378 afterParserOrEnumRuleCall(); 3797 afterParserOrEnumRuleCall();
3379 } 3798 }
@@ -3381,36 +3800,36 @@ ruleMemberDefinition returns [EObject current=null]
3381 )? 3800 )?
3382 ( 3801 (
3383 ( 3802 (
3384 lv_name_3_0=RULE_ID 3803 lv_name_4_0=RULE_ID
3385 { 3804 {
3386 newLeafNode(lv_name_3_0, grammarAccess.getMemberDefinitionAccess().getNameIDTerminalRuleCall_3_0()); 3805 newLeafNode(lv_name_4_0, grammarAccess.getFieldAccess().getNameIDTerminalRuleCall_3_0());
3387 } 3806 }
3388 { 3807 {
3389 if ($current==null) { 3808 if ($current==null) {
3390 $current = createModelElement(grammarAccess.getMemberDefinitionRule()); 3809 $current = createModelElement(grammarAccess.getFieldRule());
3391 } 3810 }
3392 setWithLastConsumed( 3811 setWithLastConsumed(
3393 $current, 3812 $current,
3394 "name", 3813 "name",
3395 lv_name_3_0, 3814 lv_name_4_0,
3396 "org.eclipse.xtext.common.Terminals.ID"); 3815 "org.eclipse.xtext.common.Terminals.ID");
3397 } 3816 }
3398 ) 3817 )
3399 ) 3818 )
3400 ( 3819 (
3401 otherlv_4=Opposite 3820 otherlv_5=Opposite
3402 { 3821 {
3403 newLeafNode(otherlv_4, grammarAccess.getMemberDefinitionAccess().getOppositeKeyword_4_0()); 3822 newLeafNode(otherlv_5, grammarAccess.getFieldAccess().getOppositeKeyword_4_0());
3404 } 3823 }
3405 ( 3824 (
3406 ( 3825 (
3407 { 3826 {
3408 if ($current==null) { 3827 if ($current==null) {
3409 $current = createModelElement(grammarAccess.getMemberDefinitionRule()); 3828 $current = createModelElement(grammarAccess.getFieldRule());
3410 } 3829 }
3411 } 3830 }
3412 { 3831 {
3413 newCompositeNode(grammarAccess.getMemberDefinitionAccess().getOppositeNamedElementCrossReference_4_1_0()); 3832 newCompositeNode(grammarAccess.getFieldAccess().getOppositeSymbolCrossReference_4_1_0());
3414 } 3833 }
3415 ruleQualifiedName 3834 ruleQualifiedName
3416 { 3835 {
@@ -3420,9 +3839,9 @@ ruleMemberDefinition returns [EObject current=null]
3420 ) 3839 )
3421 )? 3840 )?
3422 ( 3841 (
3423 otherlv_6=Semicolon 3842 otherlv_7=Semicolon
3424 { 3843 {
3425 newLeafNode(otherlv_6, grammarAccess.getMemberDefinitionAccess().getSemicolonKeyword_5()); 3844 newLeafNode(otherlv_7, grammarAccess.getFieldAccess().getSemicolonKeyword_5());
3426 } 3845 }
3427 )? 3846 )?
3428 ) 3847 )
@@ -3445,11 +3864,11 @@ ruleMultiplicity returns [EObject current=null]
3445}: 3864}:
3446 ( 3865 (
3447 { 3866 {
3448 newCompositeNode(grammarAccess.getMultiplicityAccess().getManyMultiplicityParserRuleCall_0()); 3867 newCompositeNode(grammarAccess.getMultiplicityAccess().getUnboundedMultiplicityParserRuleCall_0());
3449 } 3868 }
3450 this_ManyMultiplicity_0=ruleManyMultiplicity 3869 this_UnboundedMultiplicity_0=ruleUnboundedMultiplicity
3451 { 3870 {
3452 $current = $this_ManyMultiplicity_0.current; 3871 $current = $this_UnboundedMultiplicity_0.current;
3453 afterParserOrEnumRuleCall(); 3872 afterParserOrEnumRuleCall();
3454 } 3873 }
3455 | 3874 |
@@ -3473,15 +3892,15 @@ ruleMultiplicity returns [EObject current=null]
3473 ) 3892 )
3474; 3893;
3475 3894
3476// Entry rule entryRuleManyMultiplicity 3895// Entry rule entryRuleUnboundedMultiplicity
3477entryRuleManyMultiplicity returns [EObject current=null]: 3896entryRuleUnboundedMultiplicity returns [EObject current=null]:
3478 { newCompositeNode(grammarAccess.getManyMultiplicityRule()); } 3897 { newCompositeNode(grammarAccess.getUnboundedMultiplicityRule()); }
3479 iv_ruleManyMultiplicity=ruleManyMultiplicity 3898 iv_ruleUnboundedMultiplicity=ruleUnboundedMultiplicity
3480 { $current=$iv_ruleManyMultiplicity.current; } 3899 { $current=$iv_ruleUnboundedMultiplicity.current; }
3481 EOF; 3900 EOF;
3482 3901
3483// Rule ManyMultiplicity 3902// Rule UnboundedMultiplicity
3484ruleManyMultiplicity returns [EObject current=null] 3903ruleUnboundedMultiplicity returns [EObject current=null]
3485@init { 3904@init {
3486 enterRule(); 3905 enterRule();
3487} 3906}
@@ -3492,17 +3911,17 @@ ruleManyMultiplicity returns [EObject current=null]
3492 ( 3911 (
3493 { 3912 {
3494 $current = forceCreateModelElement( 3913 $current = forceCreateModelElement(
3495 grammarAccess.getManyMultiplicityAccess().getManyMultiplicityAction_0(), 3914 grammarAccess.getUnboundedMultiplicityAccess().getUnboundedMultiplicityAction_0(),
3496 $current); 3915 $current);
3497 } 3916 }
3498 ) 3917 )
3499 otherlv_1=LeftSquareBracket 3918 otherlv_1=LeftSquareBracket
3500 { 3919 {
3501 newLeafNode(otherlv_1, grammarAccess.getManyMultiplicityAccess().getLeftSquareBracketKeyword_1()); 3920 newLeafNode(otherlv_1, grammarAccess.getUnboundedMultiplicityAccess().getLeftSquareBracketKeyword_1());
3502 } 3921 }
3503 otherlv_2=RightSquareBracket 3922 otherlv_2=RightSquareBracket
3504 { 3923 {
3505 newLeafNode(otherlv_2, grammarAccess.getManyMultiplicityAccess().getRightSquareBracketKeyword_2()); 3924 newLeafNode(otherlv_2, grammarAccess.getUnboundedMultiplicityAccess().getRightSquareBracketKeyword_2());
3506 } 3925 }
3507 ) 3926 )
3508; 3927;
@@ -3530,17 +3949,17 @@ ruleExactMultiplicity returns [EObject current=null]
3530 ( 3949 (
3531 ( 3950 (
3532 { 3951 {
3533 newCompositeNode(grammarAccess.getExactMultiplicityAccess().getMultiplicityUpperMultiplictyParserRuleCall_1_0()); 3952 newCompositeNode(grammarAccess.getExactMultiplicityAccess().getValueUpperMultiplictyParserRuleCall_1_0());
3534 } 3953 }
3535 lv_multiplicity_1_0=ruleUpperMultiplicty 3954 lv_value_1_0=ruleUpperMultiplicty
3536 { 3955 {
3537 if ($current==null) { 3956 if ($current==null) {
3538 $current = createModelElementForParent(grammarAccess.getExactMultiplicityRule()); 3957 $current = createModelElementForParent(grammarAccess.getExactMultiplicityRule());
3539 } 3958 }
3540 set( 3959 set(
3541 $current, 3960 $current,
3542 "multiplicity", 3961 "value",
3543 lv_multiplicity_1_0, 3962 lv_value_1_0,
3544 "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty"); 3963 "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty");
3545 afterParserOrEnumRuleCall(); 3964 afterParserOrEnumRuleCall();
3546 } 3965 }
@@ -3591,9 +4010,9 @@ ruleBoundedMultiplicity returns [EObject current=null]
3591 } 4010 }
3592 ) 4011 )
3593 ) 4012 )
3594 otherlv_2=FullStopFullStop 4013 otherlv_2=Comma
3595 { 4014 {
3596 newLeafNode(otherlv_2, grammarAccess.getBoundedMultiplicityAccess().getFullStopFullStopKeyword_2()); 4015 newLeafNode(otherlv_2, grammarAccess.getBoundedMultiplicityAccess().getCommaKeyword_2());
3597 } 4016 }
3598 ( 4017 (
3599 ( 4018 (
@@ -3621,15 +4040,15 @@ ruleBoundedMultiplicity returns [EObject current=null]
3621 ) 4040 )
3622; 4041;
3623 4042
3624// Entry rule entryRuleScopeDefinition 4043// Entry rule entryRuleEnumDeclaration
3625entryRuleScopeDefinition returns [EObject current=null]: 4044entryRuleEnumDeclaration returns [EObject current=null]:
3626 { newCompositeNode(grammarAccess.getScopeDefinitionRule()); } 4045 { newCompositeNode(grammarAccess.getEnumDeclarationRule()); }
3627 iv_ruleScopeDefinition=ruleScopeDefinition 4046 iv_ruleEnumDeclaration=ruleEnumDeclaration
3628 { $current=$iv_ruleScopeDefinition.current; } 4047 { $current=$iv_ruleEnumDeclaration.current; }
3629 EOF; 4048 EOF;
3630 4049
3631// Rule ScopeDefinition 4050// Rule EnumDeclaration
3632ruleScopeDefinition returns [EObject current=null] 4051ruleEnumDeclaration returns [EObject current=null]
3633@init { 4052@init {
3634 enterRule(); 4053 enterRule();
3635} 4054}
@@ -3637,44 +4056,185 @@ ruleScopeDefinition returns [EObject current=null]
3637 leaveRule(); 4056 leaveRule();
3638}: 4057}:
3639 ( 4058 (
4059 otherlv_0=Enum
3640 { 4060 {
3641 newCompositeNode(grammarAccess.getScopeDefinitionAccess().getExactScopeDefinitionParserRuleCall_0()); 4061 newLeafNode(otherlv_0, grammarAccess.getEnumDeclarationAccess().getEnumKeyword_0());
3642 } 4062 }
3643 this_ExactScopeDefinition_0=ruleExactScopeDefinition 4063 (
4064 (
4065 lv_name_1_0=RULE_ID
4066 {
4067 newLeafNode(lv_name_1_0, grammarAccess.getEnumDeclarationAccess().getNameIDTerminalRuleCall_1_0());
4068 }
4069 {
4070 if ($current==null) {
4071 $current = createModelElement(grammarAccess.getEnumDeclarationRule());
4072 }
4073 setWithLastConsumed(
4074 $current,
4075 "name",
4076 lv_name_1_0,
4077 "org.eclipse.xtext.common.Terminals.ID");
4078 }
4079 )
4080 )
4081 (
4082 (
4083 otherlv_2=LeftCurlyBracket
4084 {
4085 newLeafNode(otherlv_2, grammarAccess.getEnumDeclarationAccess().getLeftCurlyBracketKeyword_2_0_0());
4086 }
4087 (
4088 (
4089 (
4090 {
4091 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_0_0());
4092 }
4093 lv_literals_3_0=ruleEnumLiteral
4094 {
4095 if ($current==null) {
4096 $current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
4097 }
4098 add(
4099 $current,
4100 "literals",
4101 lv_literals_3_0,
4102 "org.eclipse.viatra.solver.language.SolverLanguage.EnumLiteral");
4103 afterParserOrEnumRuleCall();
4104 }
4105 )
4106 )
4107 (
4108 (
4109 otherlv_4=Comma
4110 {
4111 newLeafNode(otherlv_4, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_1_0());
4112 }
4113 )?
4114 (
4115 (
4116 {
4117 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0());
4118 }
4119 lv_literals_5_0=ruleEnumLiteral
4120 {
4121 if ($current==null) {
4122 $current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
4123 }
4124 add(
4125 $current,
4126 "literals",
4127 lv_literals_5_0,
4128 "org.eclipse.viatra.solver.language.SolverLanguage.EnumLiteral");
4129 afterParserOrEnumRuleCall();
4130 }
4131 )
4132 )
4133 )*
4134 )?
4135 otherlv_6=RightCurlyBracket
4136 {
4137 newLeafNode(otherlv_6, grammarAccess.getEnumDeclarationAccess().getRightCurlyBracketKeyword_2_0_2());
4138 }
4139 )
4140 |
4141 this_FULL_STOP_7=RULE_FULL_STOP
4142 {
4143 newLeafNode(this_FULL_STOP_7, grammarAccess.getEnumDeclarationAccess().getFULL_STOPTerminalRuleCall_2_1());
4144 }
4145 )
4146 )
4147;
4148
4149// Entry rule entryRuleEnumLiteral
4150entryRuleEnumLiteral returns [EObject current=null]:
4151 { newCompositeNode(grammarAccess.getEnumLiteralRule()); }
4152 iv_ruleEnumLiteral=ruleEnumLiteral
4153 { $current=$iv_ruleEnumLiteral.current; }
4154 EOF;
4155
4156// Rule EnumLiteral
4157ruleEnumLiteral returns [EObject current=null]
4158@init {
4159 enterRule();
4160}
4161@after {
4162 leaveRule();
4163}:
4164 (
4165 (
4166 lv_name_0_0=RULE_ID
4167 {
4168 newLeafNode(lv_name_0_0, grammarAccess.getEnumLiteralAccess().getNameIDTerminalRuleCall_0());
4169 }
4170 {
4171 if ($current==null) {
4172 $current = createModelElement(grammarAccess.getEnumLiteralRule());
4173 }
4174 setWithLastConsumed(
4175 $current,
4176 "name",
4177 lv_name_0_0,
4178 "org.eclipse.xtext.common.Terminals.ID");
4179 }
4180 )
4181 )
4182;
4183
4184// Entry rule entryRuleScopeDeclaration
4185entryRuleScopeDeclaration returns [EObject current=null]:
4186 { newCompositeNode(grammarAccess.getScopeDeclarationRule()); }
4187 iv_ruleScopeDeclaration=ruleScopeDeclaration
4188 { $current=$iv_ruleScopeDeclaration.current; }
4189 EOF;
4190
4191// Rule ScopeDeclaration
4192ruleScopeDeclaration returns [EObject current=null]
4193@init {
4194 enterRule();
4195}
4196@after {
4197 leaveRule();
4198}:
4199 (
3644 { 4200 {
3645 $current = $this_ExactScopeDefinition_0.current; 4201 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getExactScopeParserRuleCall_0());
4202 }
4203 this_ExactScope_0=ruleExactScope
4204 {
4205 $current = $this_ExactScope_0.current;
3646 afterParserOrEnumRuleCall(); 4206 afterParserOrEnumRuleCall();
3647 } 4207 }
3648 | 4208 |
3649 { 4209 {
3650 newCompositeNode(grammarAccess.getScopeDefinitionAccess().getBoundedScopeDefinitionParserRuleCall_1()); 4210 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getBoundedScopeParserRuleCall_1());
3651 } 4211 }
3652 this_BoundedScopeDefinition_1=ruleBoundedScopeDefinition 4212 this_BoundedScope_1=ruleBoundedScope
3653 { 4213 {
3654 $current = $this_BoundedScopeDefinition_1.current; 4214 $current = $this_BoundedScope_1.current;
3655 afterParserOrEnumRuleCall(); 4215 afterParserOrEnumRuleCall();
3656 } 4216 }
3657 | 4217 |
3658 { 4218 {
3659 newCompositeNode(grammarAccess.getScopeDefinitionAccess().getLowerBoundedScopeDefinitionParserRuleCall_2()); 4219 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getLowerBoundedScopeParserRuleCall_2());
3660 } 4220 }
3661 this_LowerBoundedScopeDefinition_2=ruleLowerBoundedScopeDefinition 4221 this_LowerBoundedScope_2=ruleLowerBoundedScope
3662 { 4222 {
3663 $current = $this_LowerBoundedScopeDefinition_2.current; 4223 $current = $this_LowerBoundedScope_2.current;
3664 afterParserOrEnumRuleCall(); 4224 afterParserOrEnumRuleCall();
3665 } 4225 }
3666 ) 4226 )
3667; 4227;
3668 4228
3669// Entry rule entryRuleExactScopeDefinition 4229// Entry rule entryRuleExactScope
3670entryRuleExactScopeDefinition returns [EObject current=null]: 4230entryRuleExactScope returns [EObject current=null]:
3671 { newCompositeNode(grammarAccess.getExactScopeDefinitionRule()); } 4231 { newCompositeNode(grammarAccess.getExactScopeRule()); }
3672 iv_ruleExactScopeDefinition=ruleExactScopeDefinition 4232 iv_ruleExactScope=ruleExactScope
3673 { $current=$iv_ruleExactScopeDefinition.current; } 4233 { $current=$iv_ruleExactScope.current; }
3674 EOF; 4234 EOF;
3675 4235
3676// Rule ExactScopeDefinition 4236// Rule ExactScope
3677ruleExactScopeDefinition returns [EObject current=null] 4237ruleExactScope returns [EObject current=null]
3678@init { 4238@init {
3679 enterRule(); 4239 enterRule();
3680} 4240}
@@ -3684,17 +4244,17 @@ ruleExactScopeDefinition returns [EObject current=null]
3684 ( 4244 (
3685 otherlv_0=Scope 4245 otherlv_0=Scope
3686 { 4246 {
3687 newLeafNode(otherlv_0, grammarAccess.getExactScopeDefinitionAccess().getScopeKeyword_0()); 4247 newLeafNode(otherlv_0, grammarAccess.getExactScopeAccess().getScopeKeyword_0());
3688 } 4248 }
3689 ( 4249 (
3690 ( 4250 (
3691 { 4251 {
3692 if ($current==null) { 4252 if ($current==null) {
3693 $current = createModelElement(grammarAccess.getExactScopeDefinitionRule()); 4253 $current = createModelElement(grammarAccess.getExactScopeRule());
3694 } 4254 }
3695 } 4255 }
3696 { 4256 {
3697 newCompositeNode(grammarAccess.getExactScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0()); 4257 newCompositeNode(grammarAccess.getExactScopeAccess().getTypeSymbolCrossReference_1_0());
3698 } 4258 }
3699 ruleQualifiedName 4259 ruleQualifiedName
3700 { 4260 {
@@ -3704,38 +4264,42 @@ ruleExactScopeDefinition returns [EObject current=null]
3704 ) 4264 )
3705 otherlv_2=EqualsSignEqualsSign 4265 otherlv_2=EqualsSignEqualsSign
3706 { 4266 {
3707 newLeafNode(otherlv_2, grammarAccess.getExactScopeDefinitionAccess().getEqualsSignEqualsSignKeyword_2()); 4267 newLeafNode(otherlv_2, grammarAccess.getExactScopeAccess().getEqualsSignEqualsSignKeyword_2());
3708 } 4268 }
3709 ( 4269 (
3710 ( 4270 (
3711 lv_exactScope_3_0=RULE_INT 4271 lv_size_3_0=RULE_INT
3712 { 4272 {
3713 newLeafNode(lv_exactScope_3_0, grammarAccess.getExactScopeDefinitionAccess().getExactScopeINTTerminalRuleCall_3_0()); 4273 newLeafNode(lv_size_3_0, grammarAccess.getExactScopeAccess().getSizeINTTerminalRuleCall_3_0());
3714 } 4274 }
3715 { 4275 {
3716 if ($current==null) { 4276 if ($current==null) {
3717 $current = createModelElement(grammarAccess.getExactScopeDefinitionRule()); 4277 $current = createModelElement(grammarAccess.getExactScopeRule());
3718 } 4278 }
3719 setWithLastConsumed( 4279 setWithLastConsumed(
3720 $current, 4280 $current,
3721 "exactScope", 4281 "size",
3722 lv_exactScope_3_0, 4282 lv_size_3_0,
3723 "org.eclipse.xtext.common.Terminals.INT"); 4283 "org.eclipse.xtext.common.Terminals.INT");
3724 } 4284 }
3725 ) 4285 )
3726 ) 4286 )
4287 this_FULL_STOP_4=RULE_FULL_STOP
4288 {
4289 newLeafNode(this_FULL_STOP_4, grammarAccess.getExactScopeAccess().getFULL_STOPTerminalRuleCall_4());
4290 }
3727 ) 4291 )
3728; 4292;
3729 4293
3730// Entry rule entryRuleBoundedScopeDefinition 4294// Entry rule entryRuleBoundedScope
3731entryRuleBoundedScopeDefinition returns [EObject current=null]: 4295entryRuleBoundedScope returns [EObject current=null]:
3732 { newCompositeNode(grammarAccess.getBoundedScopeDefinitionRule()); } 4296 { newCompositeNode(grammarAccess.getBoundedScopeRule()); }
3733 iv_ruleBoundedScopeDefinition=ruleBoundedScopeDefinition 4297 iv_ruleBoundedScope=ruleBoundedScope
3734 { $current=$iv_ruleBoundedScopeDefinition.current; } 4298 { $current=$iv_ruleBoundedScope.current; }
3735 EOF; 4299 EOF;
3736 4300
3737// Rule BoundedScopeDefinition 4301// Rule BoundedScope
3738ruleBoundedScopeDefinition returns [EObject current=null] 4302ruleBoundedScope returns [EObject current=null]
3739@init { 4303@init {
3740 enterRule(); 4304 enterRule();
3741} 4305}
@@ -3745,7 +4309,7 @@ ruleBoundedScopeDefinition returns [EObject current=null]
3745 ( 4309 (
3746 otherlv_0=Scope 4310 otherlv_0=Scope
3747 { 4311 {
3748 newLeafNode(otherlv_0, grammarAccess.getBoundedScopeDefinitionAccess().getScopeKeyword_0()); 4312 newLeafNode(otherlv_0, grammarAccess.getBoundedScopeAccess().getScopeKeyword_0());
3749 } 4313 }
3750 ( 4314 (
3751 ( 4315 (
@@ -3754,11 +4318,11 @@ ruleBoundedScopeDefinition returns [EObject current=null]
3754 ( 4318 (
3755 lv_lowerBound_1_0=RULE_INT 4319 lv_lowerBound_1_0=RULE_INT
3756 { 4320 {
3757 newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0_0()); 4321 newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedScopeAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0_0());
3758 } 4322 }
3759 { 4323 {
3760 if ($current==null) { 4324 if ($current==null) {
3761 $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); 4325 $current = createModelElement(grammarAccess.getBoundedScopeRule());
3762 } 4326 }
3763 setWithLastConsumed( 4327 setWithLastConsumed(
3764 $current, 4328 $current,
@@ -3770,18 +4334,18 @@ ruleBoundedScopeDefinition returns [EObject current=null]
3770 ) 4334 )
3771 otherlv_2=LessThanSignEqualsSign 4335 otherlv_2=LessThanSignEqualsSign
3772 { 4336 {
3773 newLeafNode(otherlv_2, grammarAccess.getBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_0_1()); 4337 newLeafNode(otherlv_2, grammarAccess.getBoundedScopeAccess().getLessThanSignEqualsSignKeyword_1_0_0_1());
3774 } 4338 }
3775 )? 4339 )?
3776 ( 4340 (
3777 ( 4341 (
3778 { 4342 {
3779 if ($current==null) { 4343 if ($current==null) {
3780 $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); 4344 $current = createModelElement(grammarAccess.getBoundedScopeRule());
3781 } 4345 }
3782 } 4346 }
3783 { 4347 {
3784 newCompositeNode(grammarAccess.getBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0_1_0()); 4348 newCompositeNode(grammarAccess.getBoundedScopeAccess().getTypeSymbolCrossReference_1_0_1_0());
3785 } 4349 }
3786 ruleQualifiedName 4350 ruleQualifiedName
3787 { 4351 {
@@ -3791,17 +4355,17 @@ ruleBoundedScopeDefinition returns [EObject current=null]
3791 ) 4355 )
3792 otherlv_4=LessThanSignEqualsSign 4356 otherlv_4=LessThanSignEqualsSign
3793 { 4357 {
3794 newLeafNode(otherlv_4, grammarAccess.getBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_2()); 4358 newLeafNode(otherlv_4, grammarAccess.getBoundedScopeAccess().getLessThanSignEqualsSignKeyword_1_0_2());
3795 } 4359 }
3796 ( 4360 (
3797 ( 4361 (
3798 lv_upperBound_5_0=RULE_INT 4362 lv_upperBound_5_0=RULE_INT
3799 { 4363 {
3800 newLeafNode(lv_upperBound_5_0, grammarAccess.getBoundedScopeDefinitionAccess().getUpperBoundINTTerminalRuleCall_1_0_3_0()); 4364 newLeafNode(lv_upperBound_5_0, grammarAccess.getBoundedScopeAccess().getUpperBoundINTTerminalRuleCall_1_0_3_0());
3801 } 4365 }
3802 { 4366 {
3803 if ($current==null) { 4367 if ($current==null) {
3804 $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); 4368 $current = createModelElement(grammarAccess.getBoundedScopeRule());
3805 } 4369 }
3806 setWithLastConsumed( 4370 setWithLastConsumed(
3807 $current, 4371 $current,
@@ -3818,11 +4382,11 @@ ruleBoundedScopeDefinition returns [EObject current=null]
3818 ( 4382 (
3819 lv_upperBound_6_0=RULE_INT 4383 lv_upperBound_6_0=RULE_INT
3820 { 4384 {
3821 newLeafNode(lv_upperBound_6_0, grammarAccess.getBoundedScopeDefinitionAccess().getUpperBoundINTTerminalRuleCall_1_1_0_0()); 4385 newLeafNode(lv_upperBound_6_0, grammarAccess.getBoundedScopeAccess().getUpperBoundINTTerminalRuleCall_1_1_0_0());
3822 } 4386 }
3823 { 4387 {
3824 if ($current==null) { 4388 if ($current==null) {
3825 $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); 4389 $current = createModelElement(grammarAccess.getBoundedScopeRule());
3826 } 4390 }
3827 setWithLastConsumed( 4391 setWithLastConsumed(
3828 $current, 4392 $current,
@@ -3834,17 +4398,17 @@ ruleBoundedScopeDefinition returns [EObject current=null]
3834 ) 4398 )
3835 otherlv_7=GreaterThanSignEqualsSign 4399 otherlv_7=GreaterThanSignEqualsSign
3836 { 4400 {
3837 newLeafNode(otherlv_7, grammarAccess.getBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_1()); 4401 newLeafNode(otherlv_7, grammarAccess.getBoundedScopeAccess().getGreaterThanSignEqualsSignKeyword_1_1_1());
3838 } 4402 }
3839 ( 4403 (
3840 ( 4404 (
3841 { 4405 {
3842 if ($current==null) { 4406 if ($current==null) {
3843 $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); 4407 $current = createModelElement(grammarAccess.getBoundedScopeRule());
3844 } 4408 }
3845 } 4409 }
3846 { 4410 {
3847 newCompositeNode(grammarAccess.getBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_1_2_0()); 4411 newCompositeNode(grammarAccess.getBoundedScopeAccess().getTypeSymbolCrossReference_1_1_2_0());
3848 } 4412 }
3849 ruleQualifiedName 4413 ruleQualifiedName
3850 { 4414 {
@@ -3855,17 +4419,17 @@ ruleBoundedScopeDefinition returns [EObject current=null]
3855 ( 4419 (
3856 otherlv_9=GreaterThanSignEqualsSign 4420 otherlv_9=GreaterThanSignEqualsSign
3857 { 4421 {
3858 newLeafNode(otherlv_9, grammarAccess.getBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_3_0()); 4422 newLeafNode(otherlv_9, grammarAccess.getBoundedScopeAccess().getGreaterThanSignEqualsSignKeyword_1_1_3_0());
3859 } 4423 }
3860 ( 4424 (
3861 ( 4425 (
3862 lv_lowerBound_10_0=RULE_INT 4426 lv_lowerBound_10_0=RULE_INT
3863 { 4427 {
3864 newLeafNode(lv_lowerBound_10_0, grammarAccess.getBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_1_3_1_0()); 4428 newLeafNode(lv_lowerBound_10_0, grammarAccess.getBoundedScopeAccess().getLowerBoundINTTerminalRuleCall_1_1_3_1_0());
3865 } 4429 }
3866 { 4430 {
3867 if ($current==null) { 4431 if ($current==null) {
3868 $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); 4432 $current = createModelElement(grammarAccess.getBoundedScopeRule());
3869 } 4433 }
3870 setWithLastConsumed( 4434 setWithLastConsumed(
3871 $current, 4435 $current,
@@ -3878,18 +4442,22 @@ ruleBoundedScopeDefinition returns [EObject current=null]
3878 )? 4442 )?
3879 ) 4443 )
3880 ) 4444 )
4445 this_FULL_STOP_11=RULE_FULL_STOP
4446 {
4447 newLeafNode(this_FULL_STOP_11, grammarAccess.getBoundedScopeAccess().getFULL_STOPTerminalRuleCall_2());
4448 }
3881 ) 4449 )
3882; 4450;
3883 4451
3884// Entry rule entryRuleLowerBoundedScopeDefinition 4452// Entry rule entryRuleLowerBoundedScope
3885entryRuleLowerBoundedScopeDefinition returns [EObject current=null]: 4453entryRuleLowerBoundedScope returns [EObject current=null]:
3886 { newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionRule()); } 4454 { newCompositeNode(grammarAccess.getLowerBoundedScopeRule()); }
3887 iv_ruleLowerBoundedScopeDefinition=ruleLowerBoundedScopeDefinition 4455 iv_ruleLowerBoundedScope=ruleLowerBoundedScope
3888 { $current=$iv_ruleLowerBoundedScopeDefinition.current; } 4456 { $current=$iv_ruleLowerBoundedScope.current; }
3889 EOF; 4457 EOF;
3890 4458
3891// Rule LowerBoundedScopeDefinition 4459// Rule LowerBoundedScope
3892ruleLowerBoundedScopeDefinition returns [EObject current=null] 4460ruleLowerBoundedScope returns [EObject current=null]
3893@init { 4461@init {
3894 enterRule(); 4462 enterRule();
3895} 4463}
@@ -3899,7 +4467,7 @@ ruleLowerBoundedScopeDefinition returns [EObject current=null]
3899 ( 4467 (
3900 otherlv_0=Scope 4468 otherlv_0=Scope
3901 { 4469 {
3902 newLeafNode(otherlv_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getScopeKeyword_0()); 4470 newLeafNode(otherlv_0, grammarAccess.getLowerBoundedScopeAccess().getScopeKeyword_0());
3903 } 4471 }
3904 ( 4472 (
3905 ( 4473 (
@@ -3907,11 +4475,11 @@ ruleLowerBoundedScopeDefinition returns [EObject current=null]
3907 ( 4475 (
3908 lv_lowerBound_1_0=RULE_INT 4476 lv_lowerBound_1_0=RULE_INT
3909 { 4477 {
3910 newLeafNode(lv_lowerBound_1_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0()); 4478 newLeafNode(lv_lowerBound_1_0, grammarAccess.getLowerBoundedScopeAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0());
3911 } 4479 }
3912 { 4480 {
3913 if ($current==null) { 4481 if ($current==null) {
3914 $current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); 4482 $current = createModelElement(grammarAccess.getLowerBoundedScopeRule());
3915 } 4483 }
3916 setWithLastConsumed( 4484 setWithLastConsumed(
3917 $current, 4485 $current,
@@ -3923,17 +4491,17 @@ ruleLowerBoundedScopeDefinition returns [EObject current=null]
3923 ) 4491 )
3924 otherlv_2=LessThanSignEqualsSign 4492 otherlv_2=LessThanSignEqualsSign
3925 { 4493 {
3926 newLeafNode(otherlv_2, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_1()); 4494 newLeafNode(otherlv_2, grammarAccess.getLowerBoundedScopeAccess().getLessThanSignEqualsSignKeyword_1_0_1());
3927 } 4495 }
3928 ( 4496 (
3929 ( 4497 (
3930 { 4498 {
3931 if ($current==null) { 4499 if ($current==null) {
3932 $current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); 4500 $current = createModelElement(grammarAccess.getLowerBoundedScopeRule());
3933 } 4501 }
3934 } 4502 }
3935 { 4503 {
3936 newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0_2_0()); 4504 newCompositeNode(grammarAccess.getLowerBoundedScopeAccess().getTypeSymbolCrossReference_1_0_2_0());
3937 } 4505 }
3938 ruleQualifiedName 4506 ruleQualifiedName
3939 { 4507 {
@@ -3948,11 +4516,11 @@ ruleLowerBoundedScopeDefinition returns [EObject current=null]
3948 ( 4516 (
3949 { 4517 {
3950 if ($current==null) { 4518 if ($current==null) {
3951 $current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); 4519 $current = createModelElement(grammarAccess.getLowerBoundedScopeRule());
3952 } 4520 }
3953 } 4521 }
3954 { 4522 {
3955 newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_1_0_0()); 4523 newCompositeNode(grammarAccess.getLowerBoundedScopeAccess().getTypeSymbolCrossReference_1_1_0_0());
3956 } 4524 }
3957 ruleQualifiedName 4525 ruleQualifiedName
3958 { 4526 {
@@ -3962,17 +4530,17 @@ ruleLowerBoundedScopeDefinition returns [EObject current=null]
3962 ) 4530 )
3963 otherlv_5=GreaterThanSignEqualsSign 4531 otherlv_5=GreaterThanSignEqualsSign
3964 { 4532 {
3965 newLeafNode(otherlv_5, grammarAccess.getLowerBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_1()); 4533 newLeafNode(otherlv_5, grammarAccess.getLowerBoundedScopeAccess().getGreaterThanSignEqualsSignKeyword_1_1_1());
3966 } 4534 }
3967 ( 4535 (
3968 ( 4536 (
3969 lv_lowerBound_6_0=RULE_INT 4537 lv_lowerBound_6_0=RULE_INT
3970 { 4538 {
3971 newLeafNode(lv_lowerBound_6_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_1_2_0()); 4539 newLeafNode(lv_lowerBound_6_0, grammarAccess.getLowerBoundedScopeAccess().getLowerBoundINTTerminalRuleCall_1_1_2_0());
3972 } 4540 }
3973 { 4541 {
3974 if ($current==null) { 4542 if ($current==null) {
3975 $current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); 4543 $current = createModelElement(grammarAccess.getLowerBoundedScopeRule());
3976 } 4544 }
3977 setWithLastConsumed( 4545 setWithLastConsumed(
3978 $current, 4546 $current,
@@ -3984,18 +4552,22 @@ ruleLowerBoundedScopeDefinition returns [EObject current=null]
3984 ) 4552 )
3985 ) 4553 )
3986 ) 4554 )
4555 this_FULL_STOP_7=RULE_FULL_STOP
4556 {
4557 newLeafNode(this_FULL_STOP_7, grammarAccess.getLowerBoundedScopeAccess().getFULL_STOPTerminalRuleCall_2());
4558 }
3987 ) 4559 )
3988; 4560;
3989 4561
3990// Entry rule entryRuleObjectiveDefinition 4562// Entry rule entryRuleObjectiveDeclaration
3991entryRuleObjectiveDefinition returns [EObject current=null]: 4563entryRuleObjectiveDeclaration returns [EObject current=null]:
3992 { newCompositeNode(grammarAccess.getObjectiveDefinitionRule()); } 4564 { newCompositeNode(grammarAccess.getObjectiveDeclarationRule()); }
3993 iv_ruleObjectiveDefinition=ruleObjectiveDefinition 4565 iv_ruleObjectiveDeclaration=ruleObjectiveDeclaration
3994 { $current=$iv_ruleObjectiveDefinition.current; } 4566 { $current=$iv_ruleObjectiveDeclaration.current; }
3995 EOF; 4567 EOF;
3996 4568
3997// Rule ObjectiveDefinition 4569// Rule ObjectiveDeclaration
3998ruleObjectiveDefinition returns [EObject current=null] 4570ruleObjectiveDeclaration returns [EObject current=null]
3999@init { 4571@init {
4000 enterRule(); 4572 enterRule();
4001} 4573}
@@ -4006,12 +4578,12 @@ ruleObjectiveDefinition returns [EObject current=null]
4006 ( 4578 (
4007 ( 4579 (
4008 { 4580 {
4009 newCompositeNode(grammarAccess.getObjectiveDefinitionAccess().getKindObjectiveKindEnumRuleCall_0_0()); 4581 newCompositeNode(grammarAccess.getObjectiveDeclarationAccess().getKindObjectiveKindEnumRuleCall_0_0());
4010 } 4582 }
4011 lv_kind_0_0=ruleObjectiveKind 4583 lv_kind_0_0=ruleObjectiveKind
4012 { 4584 {
4013 if ($current==null) { 4585 if ($current==null) {
4014 $current = createModelElementForParent(grammarAccess.getObjectiveDefinitionRule()); 4586 $current = createModelElementForParent(grammarAccess.getObjectiveDeclarationRule());
4015 } 4587 }
4016 set( 4588 set(
4017 $current, 4589 $current,
@@ -4025,12 +4597,12 @@ ruleObjectiveDefinition returns [EObject current=null]
4025 ( 4597 (
4026 ( 4598 (
4027 { 4599 {
4028 newCompositeNode(grammarAccess.getObjectiveDefinitionAccess().getObjectiveExpressionParserRuleCall_1_0()); 4600 newCompositeNode(grammarAccess.getObjectiveDeclarationAccess().getObjectiveExpressionParserRuleCall_1_0());
4029 } 4601 }
4030 lv_objective_1_0=ruleExpression 4602 lv_objective_1_0=ruleExpression
4031 { 4603 {
4032 if ($current==null) { 4604 if ($current==null) {
4033 $current = createModelElementForParent(grammarAccess.getObjectiveDefinitionRule()); 4605 $current = createModelElementForParent(grammarAccess.getObjectiveDeclarationRule());
4034 } 4606 }
4035 set( 4607 set(
4036 $current, 4608 $current,
@@ -4041,6 +4613,10 @@ ruleObjectiveDefinition returns [EObject current=null]
4041 } 4613 }
4042 ) 4614 )
4043 ) 4615 )
4616 this_FULL_STOP_2=RULE_FULL_STOP
4617 {
4618 newLeafNode(this_FULL_STOP_2, grammarAccess.getObjectiveDeclarationAccess().getFULL_STOPTerminalRuleCall_2());
4619 }
4044 ) 4620 )
4045; 4621;
4046 4622
@@ -4105,26 +4681,64 @@ ruleReal returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
4105 { 4681 {
4106 newLeafNode(this_INT_0, grammarAccess.getRealAccess().getINTTerminalRuleCall_0()); 4682 newLeafNode(this_INT_0, grammarAccess.getRealAccess().getINTTerminalRuleCall_0());
4107 } 4683 }
4108 ( 4684 kw=FullStop
4109 kw=FullStop 4685 {
4110 { 4686 $current.merge(kw);
4111 $current.merge(kw); 4687 newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_1());
4112 newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_1_0()); 4688 }
4113 } 4689 this_INT_2=RULE_INT
4114 this_INT_2=RULE_INT 4690 {
4115 { 4691 $current.merge(this_INT_2);
4116 $current.merge(this_INT_2); 4692 }
4117 } 4693 {
4118 { 4694 newLeafNode(this_INT_2, grammarAccess.getRealAccess().getINTTerminalRuleCall_2());
4119 newLeafNode(this_INT_2, grammarAccess.getRealAccess().getINTTerminalRuleCall_1_1()); 4695 }
4120 }
4121 )?
4122 ) 4696 )
4123; 4697;
4124finally { 4698finally {
4125 myHiddenTokenState.restore(); 4699 myHiddenTokenState.restore();
4126} 4700}
4127 4701
4702// Entry rule entryRuleQualifiedNameSegment
4703entryRuleQualifiedNameSegment returns [String current=null]:
4704 { newCompositeNode(grammarAccess.getQualifiedNameSegmentRule()); }
4705 iv_ruleQualifiedNameSegment=ruleQualifiedNameSegment
4706 { $current=$iv_ruleQualifiedNameSegment.current.getText(); }
4707 EOF;
4708
4709// Rule QualifiedNameSegment
4710ruleQualifiedNameSegment returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
4711@init {
4712 enterRule();
4713}
4714@after {
4715 leaveRule();
4716}:
4717 (
4718 this_ID_0=RULE_ID
4719 {
4720 $current.merge(this_ID_0);
4721 }
4722 {
4723 newLeafNode(this_ID_0, grammarAccess.getQualifiedNameSegmentAccess().getIDTerminalRuleCall_0());
4724 }
4725 |
4726 this_QUOTED_ID_1=RULE_QUOTED_ID
4727 {
4728 $current.merge(this_QUOTED_ID_1);
4729 }
4730 {
4731 newLeafNode(this_QUOTED_ID_1, grammarAccess.getQualifiedNameSegmentAccess().getQUOTED_IDTerminalRuleCall_1());
4732 }
4733 |
4734 kw=Object
4735 {
4736 $current.merge(kw);
4737 newLeafNode(kw, grammarAccess.getQualifiedNameSegmentAccess().getObjectKeyword_2());
4738 }
4739 )
4740;
4741
4128// Entry rule entryRuleQualifiedName 4742// Entry rule entryRuleQualifiedName
4129entryRuleQualifiedName returns [String current=null]@init { 4743entryRuleQualifiedName returns [String current=null]@init {
4130 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens(); 4744 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
@@ -4147,45 +4761,41 @@ ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleT
4147 leaveRule(); 4761 leaveRule();
4148}: 4762}:
4149 ( 4763 (
4764 {
4765 newCompositeNode(grammarAccess.getQualifiedNameAccess().getQualifiedNameSegmentParserRuleCall_0());
4766 }
4767 this_QualifiedNameSegment_0=ruleQualifiedNameSegment
4768 {
4769 $current.merge(this_QualifiedNameSegment_0);
4770 }
4771 {
4772 afterParserOrEnumRuleCall();
4773 }
4150 ( 4774 (
4151 this_ID_0=RULE_ID 4775 kw=ColonColon
4152 { 4776 {
4153 $current.merge(this_ID_0); 4777 $current.merge(kw);
4778 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_0());
4154 } 4779 }
4155 { 4780 {
4156 newLeafNode(this_ID_0, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0_0()); 4781 newCompositeNode(grammarAccess.getQualifiedNameAccess().getQualifiedNameSegmentParserRuleCall_1_1());
4157 } 4782 }
4158 ( 4783 this_QualifiedNameSegment_2=ruleQualifiedNameSegment
4159 kw=FullStop 4784 {
4160 { 4785 $current.merge(this_QualifiedNameSegment_2);
4161 $current.merge(kw); 4786 }
4162 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_0_1_0()); 4787 {
4163 } 4788 afterParserOrEnumRuleCall();
4164 this_ID_2=RULE_ID 4789 }
4165 { 4790 )*
4166 $current.merge(this_ID_2);
4167 }
4168 {
4169 newLeafNode(this_ID_2, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0_1_1());
4170 }
4171 )*
4172 )
4173 |
4174 this_QUOTED_ID_3=RULE_QUOTED_ID
4175 {
4176 $current.merge(this_QUOTED_ID_3);
4177 }
4178 {
4179 newLeafNode(this_QUOTED_ID_3, grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_1());
4180 }
4181 ) 4791 )
4182; 4792;
4183finally { 4793finally {
4184 myHiddenTokenState.restore(); 4794 myHiddenTokenState.restore();
4185} 4795}
4186 4796
4187// Rule ImplicationOperator 4797// Rule AttributeKind
4188ruleImplicationOperator returns [Enumerator current=null] 4798ruleAttributeKind returns [Enumerator current=null]
4189@init { 4799@init {
4190 enterRule(); 4800 enterRule();
4191} 4801}
@@ -4193,11 +4803,37 @@ ruleImplicationOperator returns [Enumerator current=null]
4193 leaveRule(); 4803 leaveRule();
4194}: 4804}:
4195 ( 4805 (
4196 enumLiteral_0=EqualsSignGreaterThanSign 4806 (
4197 { 4807 enumLiteral_0=Functional
4198 $current = grammarAccess.getImplicationOperatorAccess().getIMPLIESEnumLiteralDeclaration().getEnumLiteral().getInstance(); 4808 {
4199 newLeafNode(enumLiteral_0, grammarAccess.getImplicationOperatorAccess().getIMPLIESEnumLiteralDeclaration()); 4809 $current = grammarAccess.getAttributeKindAccess().getFUNCTIONALEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
4200 } 4810 newLeafNode(enumLiteral_0, grammarAccess.getAttributeKindAccess().getFUNCTIONALEnumLiteralDeclaration_0());
4811 }
4812 )
4813 |
4814 (
4815 enumLiteral_1=Error
4816 {
4817 $current = grammarAccess.getAttributeKindAccess().getERROREnumLiteralDeclaration_1().getEnumLiteral().getInstance();
4818 newLeafNode(enumLiteral_1, grammarAccess.getAttributeKindAccess().getERROREnumLiteralDeclaration_1());
4819 }
4820 )
4821 |
4822 (
4823 enumLiteral_2=Root
4824 {
4825 $current = grammarAccess.getAttributeKindAccess().getROOTEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
4826 newLeafNode(enumLiteral_2, grammarAccess.getAttributeKindAccess().getROOTEnumLiteralDeclaration_2());
4827 }
4828 )
4829 |
4830 (
4831 enumLiteral_3=Containment
4832 {
4833 $current = grammarAccess.getAttributeKindAccess().getCONTAINMENTEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
4834 newLeafNode(enumLiteral_3, grammarAccess.getAttributeKindAccess().getCONTAINMENTEnumLiteralDeclaration_3());
4835 }
4836 )
4201 ) 4837 )
4202; 4838;
4203 4839
@@ -4213,16 +4849,16 @@ ruleComparisonOperator returns [Enumerator current=null]
4213 ( 4849 (
4214 enumLiteral_0=EqualsSignEqualsSign 4850 enumLiteral_0=EqualsSignEqualsSign
4215 { 4851 {
4216 $current = grammarAccess.getComparisonOperatorAccess().getEQEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); 4852 $current = grammarAccess.getComparisonOperatorAccess().getEQUALSEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
4217 newLeafNode(enumLiteral_0, grammarAccess.getComparisonOperatorAccess().getEQEnumLiteralDeclaration_0()); 4853 newLeafNode(enumLiteral_0, grammarAccess.getComparisonOperatorAccess().getEQUALSEnumLiteralDeclaration_0());
4218 } 4854 }
4219 ) 4855 )
4220 | 4856 |
4221 ( 4857 (
4222 enumLiteral_1=ExclamationMarkEqualsSign 4858 enumLiteral_1=ExclamationMarkEqualsSign
4223 { 4859 {
4224 $current = grammarAccess.getComparisonOperatorAccess().getNOT_EQEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); 4860 $current = grammarAccess.getComparisonOperatorAccess().getNOT_EQUALSEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
4225 newLeafNode(enumLiteral_1, grammarAccess.getComparisonOperatorAccess().getNOT_EQEnumLiteralDeclaration_1()); 4861 newLeafNode(enumLiteral_1, grammarAccess.getComparisonOperatorAccess().getNOT_EQUALSEnumLiteralDeclaration_1());
4226 } 4862 }
4227 ) 4863 )
4228 | 4864 |
@@ -4237,8 +4873,8 @@ ruleComparisonOperator returns [Enumerator current=null]
4237 ( 4873 (
4238 enumLiteral_3=LessThanSignEqualsSign 4874 enumLiteral_3=LessThanSignEqualsSign
4239 { 4875 {
4240 $current = grammarAccess.getComparisonOperatorAccess().getLESS_EQEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); 4876 $current = grammarAccess.getComparisonOperatorAccess().getLESS_EQUALSEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
4241 newLeafNode(enumLiteral_3, grammarAccess.getComparisonOperatorAccess().getLESS_EQEnumLiteralDeclaration_3()); 4877 newLeafNode(enumLiteral_3, grammarAccess.getComparisonOperatorAccess().getLESS_EQUALSEnumLiteralDeclaration_3());
4242 } 4878 }
4243 ) 4879 )
4244 | 4880 |
@@ -4253,8 +4889,8 @@ ruleComparisonOperator returns [Enumerator current=null]
4253 ( 4889 (
4254 enumLiteral_5=GreaterThanSignEqualsSign 4890 enumLiteral_5=GreaterThanSignEqualsSign
4255 { 4891 {
4256 $current = grammarAccess.getComparisonOperatorAccess().getGREATER_EQEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); 4892 $current = grammarAccess.getComparisonOperatorAccess().getGREATER_EQUALSEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
4257 newLeafNode(enumLiteral_5, grammarAccess.getComparisonOperatorAccess().getGREATER_EQEnumLiteralDeclaration_5()); 4893 newLeafNode(enumLiteral_5, grammarAccess.getComparisonOperatorAccess().getGREATER_EQUALSEnumLiteralDeclaration_5());
4258 } 4894 }
4259 ) 4895 )
4260 | 4896 |
@@ -4280,16 +4916,16 @@ ruleAdditiveBinaryOperator returns [Enumerator current=null]
4280 ( 4916 (
4281 enumLiteral_0=PlusSign 4917 enumLiteral_0=PlusSign
4282 { 4918 {
4283 $current = grammarAccess.getAdditiveBinaryOperatorAccess().getADDEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); 4919 $current = grammarAccess.getAdditiveBinaryOperatorAccess().getPLUSEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
4284 newLeafNode(enumLiteral_0, grammarAccess.getAdditiveBinaryOperatorAccess().getADDEnumLiteralDeclaration_0()); 4920 newLeafNode(enumLiteral_0, grammarAccess.getAdditiveBinaryOperatorAccess().getPLUSEnumLiteralDeclaration_0());
4285 } 4921 }
4286 ) 4922 )
4287 | 4923 |
4288 ( 4924 (
4289 enumLiteral_1=HyphenMinus 4925 enumLiteral_1=HyphenMinus
4290 { 4926 {
4291 $current = grammarAccess.getAdditiveBinaryOperatorAccess().getSUBEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); 4927 $current = grammarAccess.getAdditiveBinaryOperatorAccess().getMINUSEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
4292 newLeafNode(enumLiteral_1, grammarAccess.getAdditiveBinaryOperatorAccess().getSUBEnumLiteralDeclaration_1()); 4928 newLeafNode(enumLiteral_1, grammarAccess.getAdditiveBinaryOperatorAccess().getMINUSEnumLiteralDeclaration_1());
4293 } 4929 }
4294 ) 4930 )
4295 ) 4931 )
@@ -4307,16 +4943,16 @@ ruleMultiplicativeBinaryOperator returns [Enumerator current=null]
4307 ( 4943 (
4308 enumLiteral_0=Asterisk 4944 enumLiteral_0=Asterisk
4309 { 4945 {
4310 $current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); 4946 $current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULTIPLYEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
4311 newLeafNode(enumLiteral_0, grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULEnumLiteralDeclaration_0()); 4947 newLeafNode(enumLiteral_0, grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULTIPLYEnumLiteralDeclaration_0());
4312 } 4948 }
4313 ) 4949 )
4314 | 4950 |
4315 ( 4951 (
4316 enumLiteral_1=Solidus 4952 enumLiteral_1=Solidus
4317 { 4953 {
4318 $current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); 4954 $current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVIDEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
4319 newLeafNode(enumLiteral_1, grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVEnumLiteralDeclaration_1()); 4955 newLeafNode(enumLiteral_1, grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVIDEEnumLiteralDeclaration_1());
4320 } 4956 }
4321 ) 4957 )
4322 ) 4958 )
@@ -4339,8 +4975,8 @@ ruleExponentialOp returns [Enumerator current=null]
4339 ) 4975 )
4340; 4976;
4341 4977
4342// Rule UnaryOp 4978// Rule UnaryOperator
4343ruleUnaryOp returns [Enumerator current=null] 4979ruleUnaryOperator returns [Enumerator current=null]
4344@init { 4980@init {
4345 enterRule(); 4981 enterRule();
4346} 4982}
@@ -4351,83 +4987,32 @@ ruleUnaryOp returns [Enumerator current=null]
4351 ( 4987 (
4352 enumLiteral_0=ExclamationMark 4988 enumLiteral_0=ExclamationMark
4353 { 4989 {
4354 $current = grammarAccess.getUnaryOpAccess().getNEGEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); 4990 $current = grammarAccess.getUnaryOperatorAccess().getNOTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
4355 newLeafNode(enumLiteral_0, grammarAccess.getUnaryOpAccess().getNEGEnumLiteralDeclaration_0()); 4991 newLeafNode(enumLiteral_0, grammarAccess.getUnaryOperatorAccess().getNOTEnumLiteralDeclaration_0());
4356 } 4992 }
4357 ) 4993 )
4358 | 4994 |
4359 ( 4995 (
4360 enumLiteral_1=PlusSign 4996 enumLiteral_1=PlusSign
4361 { 4997 {
4362 $current = grammarAccess.getUnaryOpAccess().getPLUSEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); 4998 $current = grammarAccess.getUnaryOperatorAccess().getPLUSEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
4363 newLeafNode(enumLiteral_1, grammarAccess.getUnaryOpAccess().getPLUSEnumLiteralDeclaration_1()); 4999 newLeafNode(enumLiteral_1, grammarAccess.getUnaryOperatorAccess().getPLUSEnumLiteralDeclaration_1());
4364 } 5000 }
4365 ) 5001 )
4366 | 5002 |
4367 ( 5003 (
4368 enumLiteral_2=HyphenMinus 5004 enumLiteral_2=HyphenMinus
4369 { 5005 {
4370 $current = grammarAccess.getUnaryOpAccess().getMINUSEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); 5006 $current = grammarAccess.getUnaryOperatorAccess().getMINUSEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
4371 newLeafNode(enumLiteral_2, grammarAccess.getUnaryOpAccess().getMINUSEnumLiteralDeclaration_2()); 5007 newLeafNode(enumLiteral_2, grammarAccess.getUnaryOperatorAccess().getMINUSEnumLiteralDeclaration_2());
4372 }
4373 )
4374 |
4375 (
4376 enumLiteral_3=May
4377 {
4378 $current = grammarAccess.getUnaryOpAccess().getMAYEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
4379 newLeafNode(enumLiteral_3, grammarAccess.getUnaryOpAccess().getMAYEnumLiteralDeclaration_3());
4380 }
4381 )
4382 |
4383 (
4384 enumLiteral_4=Must
4385 {
4386 $current = grammarAccess.getUnaryOpAccess().getMUSTEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
4387 newLeafNode(enumLiteral_4, grammarAccess.getUnaryOpAccess().getMUSTEnumLiteralDeclaration_4());
4388 }
4389 )
4390 |
4391 (
4392 enumLiteral_5=Current
4393 {
4394 $current = grammarAccess.getUnaryOpAccess().getCURRENTEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
4395 newLeafNode(enumLiteral_5, grammarAccess.getUnaryOpAccess().getCURRENTEnumLiteralDeclaration_5());
4396 }
4397 )
4398 )
4399;
4400
4401// Rule Quantifier
4402ruleQuantifier returns [Enumerator current=null]
4403@init {
4404 enterRule();
4405}
4406@after {
4407 leaveRule();
4408}:
4409 (
4410 (
4411 enumLiteral_0=Exists
4412 {
4413 $current = grammarAccess.getQuantifierAccess().getEXISTSEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
4414 newLeafNode(enumLiteral_0, grammarAccess.getQuantifierAccess().getEXISTSEnumLiteralDeclaration_0());
4415 }
4416 )
4417 |
4418 (
4419 enumLiteral_1=Forall
4420 {
4421 $current = grammarAccess.getQuantifierAccess().getFORALLEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
4422 newLeafNode(enumLiteral_1, grammarAccess.getQuantifierAccess().getFORALLEnumLiteralDeclaration_1());
4423 } 5008 }
4424 ) 5009 )
4425 | 5010 |
4426 ( 5011 (
4427 enumLiteral_2=Count 5012 enumLiteral_3=QuestionMark
4428 { 5013 {
4429 $current = grammarAccess.getQuantifierAccess().getCOUNTEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); 5014 $current = grammarAccess.getUnaryOperatorAccess().getMAYBEEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
4430 newLeafNode(enumLiteral_2, grammarAccess.getQuantifierAccess().getCOUNTEnumLiteralDeclaration_2()); 5015 newLeafNode(enumLiteral_3, grammarAccess.getUnaryOperatorAccess().getMAYBEEnumLiteralDeclaration_3());
4431 } 5016 }
4432 ) 5017 )
4433 ) 5018 )
@@ -4488,16 +5073,16 @@ ruleObjectiveKind returns [Enumerator current=null]
4488 ( 5073 (
4489 enumLiteral_0=Minimize 5074 enumLiteral_0=Minimize
4490 { 5075 {
4491 $current = grammarAccess.getObjectiveKindAccess().getMINIMIZEEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); 5076 $current = grammarAccess.getObjectiveKindAccess().getMINIMIZATIONEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
4492 newLeafNode(enumLiteral_0, grammarAccess.getObjectiveKindAccess().getMINIMIZEEnumLiteralDeclaration_0()); 5077 newLeafNode(enumLiteral_0, grammarAccess.getObjectiveKindAccess().getMINIMIZATIONEnumLiteralDeclaration_0());
4493 } 5078 }
4494 ) 5079 )
4495 | 5080 |
4496 ( 5081 (
4497 enumLiteral_1=Maximize 5082 enumLiteral_1=Maximize
4498 { 5083 {
4499 $current = grammarAccess.getObjectiveKindAccess().getMAXIMIZEEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); 5084 $current = grammarAccess.getObjectiveKindAccess().getMAXIMIZATIONEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
4500 newLeafNode(enumLiteral_1, grammarAccess.getObjectiveKindAccess().getMAXIMIZEEnumLiteralDeclaration_1()); 5085 newLeafNode(enumLiteral_1, grammarAccess.getObjectiveKindAccess().getMAXIMIZATIONEnumLiteralDeclaration_1());
4501 } 5086 }
4502 ) 5087 )
4503 ) 5088 )
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.java
index 3e25746c..37223f5c 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.java
@@ -22,79 +22,84 @@ import java.util.ArrayList;
22@SuppressWarnings("all") 22@SuppressWarnings("all")
23public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { 23public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
24 public static final String[] tokenNames = new String[] { 24 public static final String[] tokenNames = new String[] {
25 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "Functional", "Abstract", "Contains", "Datatype", "Maximize", "Minimize", "Opposite", "Current", "Default", "Extends", "Unknown", "Exists", "Extern", "Forall", "Class", "Count", "Empty", "Error", "False", "Scope", "Else", "Must", "Then", "True", "FullStopFullStopFullStop", "Inf", "Let", "May", "ExclamationMarkEqualsSign", "HyphenMinusGreaterThanSign", "FullStopFullStop", "ColonHyphenMinus", "LessThanSignEqualsSign", "EqualsSignEqualsSign", "EqualsSignGreaterThanSign", "GreaterThanSignEqualsSign", "As", "If", "In", "ExclamationMark", "LeftParenthesis", "RightParenthesis", "Asterisk", "PlusSign", "Comma", "HyphenMinus", "FullStop", "Solidus", "Colon", "Semicolon", "LessThanSign", "EqualsSign", "GreaterThanSign", "LeftSquareBracket", "RightSquareBracket", "CircumflexAccent", "LeftCurlyBracket", "VerticalLine", "RightCurlyBracket", "RULE_STRING", "RULE_QUOTED_ID", "RULE_SL_COMMENT", "RULE_TRANSITIVE_CLOSURE", "RULE_REFLEXIVE_TRANSITIVE_CLOSURE", "RULE_FULL_STOP", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_WS", "RULE_ANY_OTHER" 25 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "Containment", "Functional", "Abstract", "Contains", "Datatype", "Maximize", "Minimize", "Opposite", "Default", "Extends", "Problem", "Unknown", "Extern", "Import", "Object", "Refers", "Class", "Count", "Empty", "Error", "False", "Scope", "Else", "Enum", "Root", "Then", "True", "FullStopFullStopFullStop", "Inf", "Let", "ExclamationMarkEqualsSign", "HyphenMinusGreaterThanSign", "ColonHyphenMinus", "ColonColon", "ColonEqualsSign", "LessThanSignEqualsSign", "EqualsSignEqualsSign", "EqualsSignGreaterThanSign", "GreaterThanSignEqualsSign", "As", "If", "In", "ExclamationMark", "LeftParenthesis", "RightParenthesis", "Asterisk", "PlusSign", "Comma", "HyphenMinus", "FullStop", "Solidus", "Colon", "Semicolon", "LessThanSign", "EqualsSign", "GreaterThanSign", "QuestionMark", "LeftSquareBracket", "RightSquareBracket", "CircumflexAccent", "LeftCurlyBracket", "VerticalLine", "RightCurlyBracket", "Tilde", "RULE_STRING", "RULE_QUOTED_ID", "RULE_SL_COMMENT", "RULE_TRANSITIVE_CLOSURE", "RULE_REFLEXIVE_TRANSITIVE_CLOSURE", "RULE_FULL_STOP", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_WS", "RULE_ANY_OTHER"
26 }; 26 };
27 public static final int EqualsSignGreaterThanSign=38; 27 public static final int Enum=27;
28 public static final int True=27; 28 public static final int Import=17;
29 public static final int Count=19; 29 public static final int EqualsSignGreaterThanSign=41;
30 public static final int False=22; 30 public static final int True=30;
31 public static final int Must=25; 31 public static final int Count=21;
32 public static final int FullStopFullStopFullStop=28; 32 public static final int False=24;
33 public static final int LessThanSign=54; 33 public static final int FullStopFullStopFullStop=31;
34 public static final int Datatype=7; 34 public static final int LessThanSign=57;
35 public static final int LeftParenthesis=44; 35 public static final int Datatype=8;
36 public static final int Unknown=14; 36 public static final int LeftParenthesis=47;
37 public static final int RULE_REFLEXIVE_TRANSITIVE_CLOSURE=67; 37 public static final int Unknown=15;
38 public static final int FullStopFullStop=34; 38 public static final int RULE_REFLEXIVE_TRANSITIVE_CLOSURE=72;
39 public static final int Then=26; 39 public static final int Then=29;
40 public static final int Extends=13; 40 public static final int Extends=13;
41 public static final int Forall=17; 41 public static final int RightSquareBracket=62;
42 public static final int RightSquareBracket=58; 42 public static final int ExclamationMark=46;
43 public static final int ExclamationMark=43; 43 public static final int Opposite=11;
44 public static final int Opposite=10; 44 public static final int GreaterThanSign=59;
45 public static final int GreaterThanSign=56; 45 public static final int Root=28;
46 public static final int RULE_ID=69; 46 public static final int RULE_ID=74;
47 public static final int RULE_QUOTED_ID=64; 47 public static final int RULE_QUOTED_ID=69;
48 public static final int RightParenthesis=45; 48 public static final int RightParenthesis=48;
49 public static final int GreaterThanSignEqualsSign=39; 49 public static final int ColonEqualsSign=38;
50 public static final int Functional=4; 50 public static final int GreaterThanSignEqualsSign=42;
51 public static final int EqualsSignEqualsSign=37; 51 public static final int Functional=5;
52 public static final int VerticalLine=61; 52 public static final int ColonColon=37;
53 public static final int PlusSign=47; 53 public static final int EqualsSignEqualsSign=40;
54 public static final int RULE_INT=70; 54 public static final int VerticalLine=65;
55 public static final int Contains=6; 55 public static final int PlusSign=50;
56 public static final int RULE_ML_COMMENT=71; 56 public static final int RULE_INT=75;
57 public static final int RULE_TRANSITIVE_CLOSURE=66; 57 public static final int Contains=7;
58 public static final int Class=18; 58 public static final int RULE_ML_COMMENT=76;
59 public static final int LeftSquareBracket=57; 59 public static final int RULE_TRANSITIVE_CLOSURE=71;
60 public static final int RULE_FULL_STOP=68; 60 public static final int Problem=14;
61 public static final int Current=11; 61 public static final int Object=18;
62 public static final int If=41; 62 public static final int Class=20;
63 public static final int Inf=29; 63 public static final int LeftSquareBracket=61;
64 public static final int May=31; 64 public static final int RULE_FULL_STOP=73;
65 public static final int In=42; 65 public static final int If=44;
66 public static final int RULE_STRING=63; 66 public static final int Refers=19;
67 public static final int Inf=32;
68 public static final int In=45;
69 public static final int RULE_STRING=68;
67 public static final int Extern=16; 70 public static final int Extern=16;
68 public static final int RULE_SL_COMMENT=65; 71 public static final int RULE_SL_COMMENT=70;
69 public static final int Comma=48; 72 public static final int Comma=51;
70 public static final int EqualsSign=55; 73 public static final int EqualsSign=58;
71 public static final int Empty=20; 74 public static final int Empty=22;
72 public static final int As=40; 75 public static final int As=43;
73 public static final int HyphenMinus=49; 76 public static final int HyphenMinus=52;
74 public static final int Maximize=8; 77 public static final int Maximize=9;
75 public static final int LessThanSignEqualsSign=36; 78 public static final int LessThanSignEqualsSign=39;
76 public static final int Solidus=51; 79 public static final int Solidus=54;
77 public static final int Colon=52; 80 public static final int Colon=55;
78 public static final int RightCurlyBracket=62; 81 public static final int RightCurlyBracket=66;
79 public static final int EOF=-1; 82 public static final int EOF=-1;
80 public static final int Asterisk=46; 83 public static final int Asterisk=49;
81 public static final int FullStop=50; 84 public static final int Containment=4;
82 public static final int RULE_WS=72; 85 public static final int FullStop=53;
83 public static final int Abstract=5; 86 public static final int RULE_WS=77;
84 public static final int Minimize=9; 87 public static final int Abstract=6;
85 public static final int LeftCurlyBracket=60; 88 public static final int Minimize=10;
86 public static final int Error=21; 89 public static final int LeftCurlyBracket=64;
87 public static final int RULE_ANY_OTHER=73; 90 public static final int Error=23;
91 public static final int Tilde=67;
92 public static final int RULE_ANY_OTHER=78;
88 public static final int Default=12; 93 public static final int Default=12;
89 public static final int ColonHyphenMinus=35; 94 public static final int ColonHyphenMinus=36;
90 public static final int CircumflexAccent=59; 95 public static final int CircumflexAccent=63;
91 public static final int Semicolon=53; 96 public static final int Semicolon=56;
92 public static final int Scope=23; 97 public static final int Scope=25;
93 public static final int Exists=15; 98 public static final int QuestionMark=60;
94 public static final int Else=24; 99 public static final int Else=26;
95 public static final int Let=30; 100 public static final int Let=33;
96 public static final int ExclamationMarkEqualsSign=32; 101 public static final int ExclamationMarkEqualsSign=34;
97 public static final int HyphenMinusGreaterThanSign=33; 102 public static final int HyphenMinusGreaterThanSign=35;
98 103
99 // delegates 104 // delegates
100 // delegators 105 // delegators
@@ -172,57 +177,122 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
172 177
173 178
174 // $ANTLR start "ruleProblem" 179 // $ANTLR start "ruleProblem"
175 // InternalSolverLanguageParser.g:65:1: ruleProblem returns [EObject current=null] : ( (lv_statements_0_0= ruleStatement ) )* ; 180 // InternalSolverLanguageParser.g:65:1: ruleProblem returns [EObject current=null] : ( (otherlv_0= Problem ( (lv_name_1_0= ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP )? ( (lv_imports_3_0= ruleImport ) )* ( (lv_statements_4_0= ruleStatement ) )* ) ;
176 public final EObject ruleProblem() throws RecognitionException { 181 public final EObject ruleProblem() throws RecognitionException {
177 EObject current = null; 182 EObject current = null;
178 183
179 EObject lv_statements_0_0 = null; 184 Token otherlv_0=null;
185 Token this_FULL_STOP_2=null;
186 AntlrDatatypeRuleToken lv_name_1_0 = null;
187
188 EObject lv_imports_3_0 = null;
189
190 EObject lv_statements_4_0 = null;
180 191
181 192
182 193
183 enterRule(); 194 enterRule();
184 195
185 try { 196 try {
186 // InternalSolverLanguageParser.g:71:2: ( ( (lv_statements_0_0= ruleStatement ) )* ) 197 // InternalSolverLanguageParser.g:71:2: ( ( (otherlv_0= Problem ( (lv_name_1_0= ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP )? ( (lv_imports_3_0= ruleImport ) )* ( (lv_statements_4_0= ruleStatement ) )* ) )
187 // InternalSolverLanguageParser.g:72:2: ( (lv_statements_0_0= ruleStatement ) )* 198 // InternalSolverLanguageParser.g:72:2: ( (otherlv_0= Problem ( (lv_name_1_0= ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP )? ( (lv_imports_3_0= ruleImport ) )* ( (lv_statements_4_0= ruleStatement ) )* )
199 {
200 // InternalSolverLanguageParser.g:72:2: ( (otherlv_0= Problem ( (lv_name_1_0= ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP )? ( (lv_imports_3_0= ruleImport ) )* ( (lv_statements_4_0= ruleStatement ) )* )
201 // InternalSolverLanguageParser.g:73:3: (otherlv_0= Problem ( (lv_name_1_0= ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP )? ( (lv_imports_3_0= ruleImport ) )* ( (lv_statements_4_0= ruleStatement ) )*
188 { 202 {
189 // InternalSolverLanguageParser.g:72:2: ( (lv_statements_0_0= ruleStatement ) )* 203 // InternalSolverLanguageParser.g:73:3: (otherlv_0= Problem ( (lv_name_1_0= ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP )?
190 loop1: 204 int alt1=2;
205 int LA1_0 = input.LA(1);
206
207 if ( (LA1_0==Problem) ) {
208 alt1=1;
209 }
210 switch (alt1) {
211 case 1 :
212 // InternalSolverLanguageParser.g:74:4: otherlv_0= Problem ( (lv_name_1_0= ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP
213 {
214 otherlv_0=(Token)match(input,Problem,FOLLOW_3);
215
216 newLeafNode(otherlv_0, grammarAccess.getProblemAccess().getProblemKeyword_0_0());
217
218 // InternalSolverLanguageParser.g:78:4: ( (lv_name_1_0= ruleQualifiedName ) )
219 // InternalSolverLanguageParser.g:79:5: (lv_name_1_0= ruleQualifiedName )
220 {
221 // InternalSolverLanguageParser.g:79:5: (lv_name_1_0= ruleQualifiedName )
222 // InternalSolverLanguageParser.g:80:6: lv_name_1_0= ruleQualifiedName
223 {
224
225 newCompositeNode(grammarAccess.getProblemAccess().getNameQualifiedNameParserRuleCall_0_1_0());
226
227 pushFollow(FOLLOW_4);
228 lv_name_1_0=ruleQualifiedName();
229
230 state._fsp--;
231
232
233 if (current==null) {
234 current = createModelElementForParent(grammarAccess.getProblemRule());
235 }
236 set(
237 current,
238 "name",
239 lv_name_1_0,
240 "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName");
241 afterParserOrEnumRuleCall();
242
243
244 }
245
246
247 }
248
249 this_FULL_STOP_2=(Token)match(input,RULE_FULL_STOP,FOLLOW_5);
250
251 newLeafNode(this_FULL_STOP_2, grammarAccess.getProblemAccess().getFULL_STOPTerminalRuleCall_0_2());
252
253
254 }
255 break;
256
257 }
258
259 // InternalSolverLanguageParser.g:102:3: ( (lv_imports_3_0= ruleImport ) )*
260 loop2:
191 do { 261 do {
192 int alt1=2; 262 int alt2=2;
193 int LA1_0 = input.LA(1); 263 int LA2_0 = input.LA(1);
194 264
195 if ( ((LA1_0>=Functional && LA1_0<=Abstract)||(LA1_0>=Maximize && LA1_0<=Minimize)||(LA1_0>=Current && LA1_0<=Default)||(LA1_0>=Unknown && LA1_0<=False)||LA1_0==Scope||LA1_0==Must||LA1_0==True||(LA1_0>=Inf && LA1_0<=May)||LA1_0==If||(LA1_0>=ExclamationMark && LA1_0<=LeftParenthesis)||LA1_0==PlusSign||LA1_0==HyphenMinus||LA1_0==LeftSquareBracket||(LA1_0>=RULE_STRING && LA1_0<=RULE_QUOTED_ID)||(LA1_0>=RULE_ID && LA1_0<=RULE_INT)) ) { 265 if ( (LA2_0==Import) ) {
196 alt1=1; 266 alt2=1;
197 } 267 }
198 268
199 269
200 switch (alt1) { 270 switch (alt2) {
201 case 1 : 271 case 1 :
202 // InternalSolverLanguageParser.g:73:3: (lv_statements_0_0= ruleStatement ) 272 // InternalSolverLanguageParser.g:103:4: (lv_imports_3_0= ruleImport )
203 { 273 {
204 // InternalSolverLanguageParser.g:73:3: (lv_statements_0_0= ruleStatement ) 274 // InternalSolverLanguageParser.g:103:4: (lv_imports_3_0= ruleImport )
205 // InternalSolverLanguageParser.g:74:4: lv_statements_0_0= ruleStatement 275 // InternalSolverLanguageParser.g:104:5: lv_imports_3_0= ruleImport
206 { 276 {
207 277
208 newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_0()); 278 newCompositeNode(grammarAccess.getProblemAccess().getImportsImportParserRuleCall_1_0());
209 279
210 pushFollow(FOLLOW_3); 280 pushFollow(FOLLOW_5);
211 lv_statements_0_0=ruleStatement(); 281 lv_imports_3_0=ruleImport();
212 282
213 state._fsp--; 283 state._fsp--;
214 284
215 285
216 if (current==null) { 286 if (current==null) {
217 current = createModelElementForParent(grammarAccess.getProblemRule()); 287 current = createModelElementForParent(grammarAccess.getProblemRule());
218 } 288 }
219 add( 289 add(
220 current, 290 current,
221 "statements", 291 "imports",
222 lv_statements_0_0, 292 lv_imports_3_0,
223 "org.eclipse.viatra.solver.language.SolverLanguage.Statement"); 293 "org.eclipse.viatra.solver.language.SolverLanguage.Import");
224 afterParserOrEnumRuleCall(); 294 afterParserOrEnumRuleCall();
225 295
226 296
227 } 297 }
228 298
@@ -231,7 +301,56 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
231 break; 301 break;
232 302
233 default : 303 default :
234 break loop1; 304 break loop2;
305 }
306 } while (true);
307
308 // InternalSolverLanguageParser.g:121:3: ( (lv_statements_4_0= ruleStatement ) )*
309 loop3:
310 do {
311 int alt3=2;
312 int LA3_0 = input.LA(1);
313
314 if ( ((LA3_0>=Containment && LA3_0<=Abstract)||(LA3_0>=Maximize && LA3_0<=Minimize)||LA3_0==Default||(LA3_0>=Unknown && LA3_0<=Extern)||LA3_0==Object||(LA3_0>=Class && LA3_0<=Scope)||(LA3_0>=Enum && LA3_0<=Root)||LA3_0==True||(LA3_0>=Inf && LA3_0<=Let)||LA3_0==If||(LA3_0>=ExclamationMark && LA3_0<=LeftParenthesis)||LA3_0==PlusSign||LA3_0==HyphenMinus||(LA3_0>=QuestionMark && LA3_0<=LeftSquareBracket)||(LA3_0>=Tilde && LA3_0<=RULE_QUOTED_ID)||(LA3_0>=RULE_ID && LA3_0<=RULE_INT)) ) {
315 alt3=1;
316 }
317
318
319 switch (alt3) {
320 case 1 :
321 // InternalSolverLanguageParser.g:122:4: (lv_statements_4_0= ruleStatement )
322 {
323 // InternalSolverLanguageParser.g:122:4: (lv_statements_4_0= ruleStatement )
324 // InternalSolverLanguageParser.g:123:5: lv_statements_4_0= ruleStatement
325 {
326
327 newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_2_0());
328
329 pushFollow(FOLLOW_6);
330 lv_statements_4_0=ruleStatement();
331
332 state._fsp--;
333
334
335 if (current==null) {
336 current = createModelElementForParent(grammarAccess.getProblemRule());
337 }
338 add(
339 current,
340 "statements",
341 lv_statements_4_0,
342 "org.eclipse.viatra.solver.language.SolverLanguage.Statement");
343 afterParserOrEnumRuleCall();
344
345
346 }
347
348
349 }
350 break;
351
352 default :
353 break loop3;
235 } 354 }
236 } while (true); 355 } while (true);
237 356
@@ -239,6 +358,9 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
239 } 358 }
240 359
241 360
361 }
362
363
242 leaveRule(); 364 leaveRule();
243 365
244 } 366 }
@@ -255,7 +377,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
255 377
256 378
257 // $ANTLR start "entryRuleStatement" 379 // $ANTLR start "entryRuleStatement"
258 // InternalSolverLanguageParser.g:94:1: entryRuleStatement returns [EObject current=null] : iv_ruleStatement= ruleStatement EOF ; 380 // InternalSolverLanguageParser.g:144:1: entryRuleStatement returns [EObject current=null] : iv_ruleStatement= ruleStatement EOF ;
259 public final EObject entryRuleStatement() throws RecognitionException { 381 public final EObject entryRuleStatement() throws RecognitionException {
260 EObject current = null; 382 EObject current = null;
261 383
@@ -263,8 +385,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
263 385
264 386
265 try { 387 try {
266 // InternalSolverLanguageParser.g:94:50: (iv_ruleStatement= ruleStatement EOF ) 388 // InternalSolverLanguageParser.g:144:50: (iv_ruleStatement= ruleStatement EOF )
267 // InternalSolverLanguageParser.g:95:2: iv_ruleStatement= ruleStatement EOF 389 // InternalSolverLanguageParser.g:145:2: iv_ruleStatement= ruleStatement EOF
268 { 390 {
269 newCompositeNode(grammarAccess.getStatementRule()); 391 newCompositeNode(grammarAccess.getStatementRule());
270 pushFollow(FOLLOW_1); 392 pushFollow(FOLLOW_1);
@@ -291,272 +413,534 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
291 413
292 414
293 // $ANTLR start "ruleStatement" 415 // $ANTLR start "ruleStatement"
294 // InternalSolverLanguageParser.g:101:1: ruleStatement returns [EObject current=null] : ( (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_MetricDefinition_4= ruleMetricDefinition | this_ExternPredicateDefinition_5= ruleExternPredicateDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ExternAggregatorDefinition_7= ruleExternAggregatorDefinition | this_ExternDatatypeDefinition_8= ruleExternDatatypeDefinition | this_ClassDefinition_9= ruleClassDefinition | this_ScopeDefinition_10= ruleScopeDefinition | this_ObjectiveDefinition_11= ruleObjectiveDefinition ) this_FULL_STOP_12= RULE_FULL_STOP ) ; 416 // InternalSolverLanguageParser.g:151:1: ruleStatement returns [EObject current=null] : (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPredicateDefintion_2= ruleUnnamedErrorPredicateDefintion | this_DefaultAssertion_3= ruleDefaultAssertion | this_FunctionDefinition_4= ruleFunctionDefinition | this_Attribute_5= ruleAttribute | this_ExternDeclaration_6= ruleExternDeclaration | this_ScopeDeclaration_7= ruleScopeDeclaration | this_ObjectiveDeclaration_8= ruleObjectiveDeclaration | this_ClassDeclaration_9= ruleClassDeclaration | this_EnumDeclaration_10= ruleEnumDeclaration ) ;
295 public final EObject ruleStatement() throws RecognitionException { 417 public final EObject ruleStatement() throws RecognitionException {
296 EObject current = null; 418 EObject current = null;
297 419
298 Token this_FULL_STOP_12=null;
299 EObject this_AssertionOrDefinition_0 = null; 420 EObject this_AssertionOrDefinition_0 = null;
300 421
301 EObject this_PredicateDefinition_1 = null; 422 EObject this_PredicateDefinition_1 = null;
302 423
303 EObject this_UnnamedErrorPrediateDefinition_2 = null; 424 EObject this_UnnamedErrorPredicateDefintion_2 = null;
304
305 EObject this_DefaultDefinition_3 = null;
306 425
307 EObject this_MetricDefinition_4 = null; 426 EObject this_DefaultAssertion_3 = null;
308 427
309 EObject this_ExternPredicateDefinition_5 = null; 428 EObject this_FunctionDefinition_4 = null;
310 429
311 EObject this_ExternMetricDefinition_6 = null; 430 EObject this_Attribute_5 = null;
312 431
313 EObject this_ExternAggregatorDefinition_7 = null; 432 EObject this_ExternDeclaration_6 = null;
314 433
315 EObject this_ExternDatatypeDefinition_8 = null; 434 EObject this_ScopeDeclaration_7 = null;
316 435
317 EObject this_ClassDefinition_9 = null; 436 EObject this_ObjectiveDeclaration_8 = null;
318 437
319 EObject this_ScopeDefinition_10 = null; 438 EObject this_ClassDeclaration_9 = null;
320 439
321 EObject this_ObjectiveDefinition_11 = null; 440 EObject this_EnumDeclaration_10 = null;
322 441
323 442
324 443
325 enterRule(); 444 enterRule();
326 445
327 try { 446 try {
328 // InternalSolverLanguageParser.g:107:2: ( ( (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_MetricDefinition_4= ruleMetricDefinition | this_ExternPredicateDefinition_5= ruleExternPredicateDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ExternAggregatorDefinition_7= ruleExternAggregatorDefinition | this_ExternDatatypeDefinition_8= ruleExternDatatypeDefinition | this_ClassDefinition_9= ruleClassDefinition | this_ScopeDefinition_10= ruleScopeDefinition | this_ObjectiveDefinition_11= ruleObjectiveDefinition ) this_FULL_STOP_12= RULE_FULL_STOP ) ) 447 // InternalSolverLanguageParser.g:157:2: ( (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPredicateDefintion_2= ruleUnnamedErrorPredicateDefintion | this_DefaultAssertion_3= ruleDefaultAssertion | this_FunctionDefinition_4= ruleFunctionDefinition | this_Attribute_5= ruleAttribute | this_ExternDeclaration_6= ruleExternDeclaration | this_ScopeDeclaration_7= ruleScopeDeclaration | this_ObjectiveDeclaration_8= ruleObjectiveDeclaration | this_ClassDeclaration_9= ruleClassDeclaration | this_EnumDeclaration_10= ruleEnumDeclaration ) )
329 // InternalSolverLanguageParser.g:108:2: ( (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_MetricDefinition_4= ruleMetricDefinition | this_ExternPredicateDefinition_5= ruleExternPredicateDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ExternAggregatorDefinition_7= ruleExternAggregatorDefinition | this_ExternDatatypeDefinition_8= ruleExternDatatypeDefinition | this_ClassDefinition_9= ruleClassDefinition | this_ScopeDefinition_10= ruleScopeDefinition | this_ObjectiveDefinition_11= ruleObjectiveDefinition ) this_FULL_STOP_12= RULE_FULL_STOP ) 448 // InternalSolverLanguageParser.g:158:2: (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPredicateDefintion_2= ruleUnnamedErrorPredicateDefintion | this_DefaultAssertion_3= ruleDefaultAssertion | this_FunctionDefinition_4= ruleFunctionDefinition | this_Attribute_5= ruleAttribute | this_ExternDeclaration_6= ruleExternDeclaration | this_ScopeDeclaration_7= ruleScopeDeclaration | this_ObjectiveDeclaration_8= ruleObjectiveDeclaration | this_ClassDeclaration_9= ruleClassDeclaration | this_EnumDeclaration_10= ruleEnumDeclaration )
330 {
331 // InternalSolverLanguageParser.g:108:2: ( (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_MetricDefinition_4= ruleMetricDefinition | this_ExternPredicateDefinition_5= ruleExternPredicateDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ExternAggregatorDefinition_7= ruleExternAggregatorDefinition | this_ExternDatatypeDefinition_8= ruleExternDatatypeDefinition | this_ClassDefinition_9= ruleClassDefinition | this_ScopeDefinition_10= ruleScopeDefinition | this_ObjectiveDefinition_11= ruleObjectiveDefinition ) this_FULL_STOP_12= RULE_FULL_STOP )
332 // InternalSolverLanguageParser.g:109:3: (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_MetricDefinition_4= ruleMetricDefinition | this_ExternPredicateDefinition_5= ruleExternPredicateDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ExternAggregatorDefinition_7= ruleExternAggregatorDefinition | this_ExternDatatypeDefinition_8= ruleExternDatatypeDefinition | this_ClassDefinition_9= ruleClassDefinition | this_ScopeDefinition_10= ruleScopeDefinition | this_ObjectiveDefinition_11= ruleObjectiveDefinition ) this_FULL_STOP_12= RULE_FULL_STOP
333 { 449 {
334 // InternalSolverLanguageParser.g:109:3: (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_MetricDefinition_4= ruleMetricDefinition | this_ExternPredicateDefinition_5= ruleExternPredicateDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ExternAggregatorDefinition_7= ruleExternAggregatorDefinition | this_ExternDatatypeDefinition_8= ruleExternDatatypeDefinition | this_ClassDefinition_9= ruleClassDefinition | this_ScopeDefinition_10= ruleScopeDefinition | this_ObjectiveDefinition_11= ruleObjectiveDefinition ) 450 // InternalSolverLanguageParser.g:158:2: (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPredicateDefintion_2= ruleUnnamedErrorPredicateDefintion | this_DefaultAssertion_3= ruleDefaultAssertion | this_FunctionDefinition_4= ruleFunctionDefinition | this_Attribute_5= ruleAttribute | this_ExternDeclaration_6= ruleExternDeclaration | this_ScopeDeclaration_7= ruleScopeDeclaration | this_ObjectiveDeclaration_8= ruleObjectiveDeclaration | this_ClassDeclaration_9= ruleClassDeclaration | this_EnumDeclaration_10= ruleEnumDeclaration )
335 int alt2=12; 451 int alt4=11;
336 alt2 = dfa2.predict(input); 452 alt4 = dfa4.predict(input);
337 switch (alt2) { 453 switch (alt4) {
338 case 1 : 454 case 1 :
339 // InternalSolverLanguageParser.g:110:4: this_AssertionOrDefinition_0= ruleAssertionOrDefinition 455 // InternalSolverLanguageParser.g:159:3: this_AssertionOrDefinition_0= ruleAssertionOrDefinition
340 { 456 {
341 457
342 newCompositeNode(grammarAccess.getStatementAccess().getAssertionOrDefinitionParserRuleCall_0_0()); 458 newCompositeNode(grammarAccess.getStatementAccess().getAssertionOrDefinitionParserRuleCall_0());
343 459
344 pushFollow(FOLLOW_4); 460 pushFollow(FOLLOW_2);
345 this_AssertionOrDefinition_0=ruleAssertionOrDefinition(); 461 this_AssertionOrDefinition_0=ruleAssertionOrDefinition();
346 462
347 state._fsp--; 463 state._fsp--;
348 464
349 465
350 current = this_AssertionOrDefinition_0; 466 current = this_AssertionOrDefinition_0;
351 afterParserOrEnumRuleCall(); 467 afterParserOrEnumRuleCall();
352 468
353 469
354 } 470 }
355 break; 471 break;
356 case 2 : 472 case 2 :
357 // InternalSolverLanguageParser.g:119:4: this_PredicateDefinition_1= rulePredicateDefinition 473 // InternalSolverLanguageParser.g:168:3: this_PredicateDefinition_1= rulePredicateDefinition
358 { 474 {
359 475
360 newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_0_1()); 476 newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_1());
361 477
362 pushFollow(FOLLOW_4); 478 pushFollow(FOLLOW_2);
363 this_PredicateDefinition_1=rulePredicateDefinition(); 479 this_PredicateDefinition_1=rulePredicateDefinition();
364 480
365 state._fsp--; 481 state._fsp--;
366 482
367 483
368 current = this_PredicateDefinition_1; 484 current = this_PredicateDefinition_1;
369 afterParserOrEnumRuleCall(); 485 afterParserOrEnumRuleCall();
370 486
371 487
372 } 488 }
373 break; 489 break;
374 case 3 : 490 case 3 :
375 // InternalSolverLanguageParser.g:128:4: this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition 491 // InternalSolverLanguageParser.g:177:3: this_UnnamedErrorPredicateDefintion_2= ruleUnnamedErrorPredicateDefintion
376 { 492 {
377 493
378 newCompositeNode(grammarAccess.getStatementAccess().getUnnamedErrorPrediateDefinitionParserRuleCall_0_2()); 494 newCompositeNode(grammarAccess.getStatementAccess().getUnnamedErrorPredicateDefintionParserRuleCall_2());
379 495
380 pushFollow(FOLLOW_4); 496 pushFollow(FOLLOW_2);
381 this_UnnamedErrorPrediateDefinition_2=ruleUnnamedErrorPrediateDefinition(); 497 this_UnnamedErrorPredicateDefintion_2=ruleUnnamedErrorPredicateDefintion();
382 498
383 state._fsp--; 499 state._fsp--;
384 500
385 501
386 current = this_UnnamedErrorPrediateDefinition_2; 502 current = this_UnnamedErrorPredicateDefintion_2;
387 afterParserOrEnumRuleCall(); 503 afterParserOrEnumRuleCall();
388 504
389 505
390 } 506 }
391 break; 507 break;
392 case 4 : 508 case 4 :
393 // InternalSolverLanguageParser.g:137:4: this_DefaultDefinition_3= ruleDefaultDefinition 509 // InternalSolverLanguageParser.g:186:3: this_DefaultAssertion_3= ruleDefaultAssertion
394 { 510 {
395 511
396 newCompositeNode(grammarAccess.getStatementAccess().getDefaultDefinitionParserRuleCall_0_3()); 512 newCompositeNode(grammarAccess.getStatementAccess().getDefaultAssertionParserRuleCall_3());
397 513
398 pushFollow(FOLLOW_4); 514 pushFollow(FOLLOW_2);
399 this_DefaultDefinition_3=ruleDefaultDefinition(); 515 this_DefaultAssertion_3=ruleDefaultAssertion();
400 516
401 state._fsp--; 517 state._fsp--;
402 518
403 519
404 current = this_DefaultDefinition_3; 520 current = this_DefaultAssertion_3;
405 afterParserOrEnumRuleCall(); 521 afterParserOrEnumRuleCall();
406 522
407 523
408 } 524 }
409 break; 525 break;
410 case 5 : 526 case 5 :
411 // InternalSolverLanguageParser.g:146:4: this_MetricDefinition_4= ruleMetricDefinition 527 // InternalSolverLanguageParser.g:195:3: this_FunctionDefinition_4= ruleFunctionDefinition
412 { 528 {
413 529
414 newCompositeNode(grammarAccess.getStatementAccess().getMetricDefinitionParserRuleCall_0_4()); 530 newCompositeNode(grammarAccess.getStatementAccess().getFunctionDefinitionParserRuleCall_4());
415 531
416 pushFollow(FOLLOW_4); 532 pushFollow(FOLLOW_2);
417 this_MetricDefinition_4=ruleMetricDefinition(); 533 this_FunctionDefinition_4=ruleFunctionDefinition();
418 534
419 state._fsp--; 535 state._fsp--;
420 536
421 537
422 current = this_MetricDefinition_4; 538 current = this_FunctionDefinition_4;
423 afterParserOrEnumRuleCall(); 539 afterParserOrEnumRuleCall();
424 540
425 541
426 } 542 }
427 break; 543 break;
428 case 6 : 544 case 6 :
429 // InternalSolverLanguageParser.g:155:4: this_ExternPredicateDefinition_5= ruleExternPredicateDefinition 545 // InternalSolverLanguageParser.g:204:3: this_Attribute_5= ruleAttribute
430 { 546 {
431 547
432 newCompositeNode(grammarAccess.getStatementAccess().getExternPredicateDefinitionParserRuleCall_0_5()); 548 newCompositeNode(grammarAccess.getStatementAccess().getAttributeParserRuleCall_5());
433 549
434 pushFollow(FOLLOW_4); 550 pushFollow(FOLLOW_2);
435 this_ExternPredicateDefinition_5=ruleExternPredicateDefinition(); 551 this_Attribute_5=ruleAttribute();
436 552
437 state._fsp--; 553 state._fsp--;
438 554
439 555
440 current = this_ExternPredicateDefinition_5; 556 current = this_Attribute_5;
441 afterParserOrEnumRuleCall(); 557 afterParserOrEnumRuleCall();
442 558
443 559
444 } 560 }
445 break; 561 break;
446 case 7 : 562 case 7 :
447 // InternalSolverLanguageParser.g:164:4: this_ExternMetricDefinition_6= ruleExternMetricDefinition 563 // InternalSolverLanguageParser.g:213:3: this_ExternDeclaration_6= ruleExternDeclaration
448 { 564 {
449 565
450 newCompositeNode(grammarAccess.getStatementAccess().getExternMetricDefinitionParserRuleCall_0_6()); 566 newCompositeNode(grammarAccess.getStatementAccess().getExternDeclarationParserRuleCall_6());
451 567
452 pushFollow(FOLLOW_4); 568 pushFollow(FOLLOW_2);
453 this_ExternMetricDefinition_6=ruleExternMetricDefinition(); 569 this_ExternDeclaration_6=ruleExternDeclaration();
454 570
455 state._fsp--; 571 state._fsp--;
456 572
457 573
458 current = this_ExternMetricDefinition_6; 574 current = this_ExternDeclaration_6;
459 afterParserOrEnumRuleCall(); 575 afterParserOrEnumRuleCall();
460 576
461 577
462 } 578 }
463 break; 579 break;
464 case 8 : 580 case 8 :
465 // InternalSolverLanguageParser.g:173:4: this_ExternAggregatorDefinition_7= ruleExternAggregatorDefinition 581 // InternalSolverLanguageParser.g:222:3: this_ScopeDeclaration_7= ruleScopeDeclaration
466 { 582 {
467 583
468 newCompositeNode(grammarAccess.getStatementAccess().getExternAggregatorDefinitionParserRuleCall_0_7()); 584 newCompositeNode(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_7());
469 585
470 pushFollow(FOLLOW_4); 586 pushFollow(FOLLOW_2);
471 this_ExternAggregatorDefinition_7=ruleExternAggregatorDefinition(); 587 this_ScopeDeclaration_7=ruleScopeDeclaration();
472 588
473 state._fsp--; 589 state._fsp--;
474 590
475 591
476 current = this_ExternAggregatorDefinition_7; 592 current = this_ScopeDeclaration_7;
477 afterParserOrEnumRuleCall(); 593 afterParserOrEnumRuleCall();
478 594
479 595
480 } 596 }
481 break; 597 break;
482 case 9 : 598 case 9 :
483 // InternalSolverLanguageParser.g:182:4: this_ExternDatatypeDefinition_8= ruleExternDatatypeDefinition 599 // InternalSolverLanguageParser.g:231:3: this_ObjectiveDeclaration_8= ruleObjectiveDeclaration
484 { 600 {
485 601
486 newCompositeNode(grammarAccess.getStatementAccess().getExternDatatypeDefinitionParserRuleCall_0_8()); 602 newCompositeNode(grammarAccess.getStatementAccess().getObjectiveDeclarationParserRuleCall_8());
487 603
488 pushFollow(FOLLOW_4); 604 pushFollow(FOLLOW_2);
489 this_ExternDatatypeDefinition_8=ruleExternDatatypeDefinition(); 605 this_ObjectiveDeclaration_8=ruleObjectiveDeclaration();
490 606
491 state._fsp--; 607 state._fsp--;
492 608
493 609
494 current = this_ExternDatatypeDefinition_8; 610 current = this_ObjectiveDeclaration_8;
495 afterParserOrEnumRuleCall(); 611 afterParserOrEnumRuleCall();
496 612
497 613
498 } 614 }
499 break; 615 break;
500 case 10 : 616 case 10 :
501 // InternalSolverLanguageParser.g:191:4: this_ClassDefinition_9= ruleClassDefinition 617 // InternalSolverLanguageParser.g:240:3: this_ClassDeclaration_9= ruleClassDeclaration
502 { 618 {
503 619
504 newCompositeNode(grammarAccess.getStatementAccess().getClassDefinitionParserRuleCall_0_9()); 620 newCompositeNode(grammarAccess.getStatementAccess().getClassDeclarationParserRuleCall_9());
505 621
506 pushFollow(FOLLOW_4); 622 pushFollow(FOLLOW_2);
507 this_ClassDefinition_9=ruleClassDefinition(); 623 this_ClassDeclaration_9=ruleClassDeclaration();
508 624
509 state._fsp--; 625 state._fsp--;
510 626
511 627
512 current = this_ClassDefinition_9; 628 current = this_ClassDeclaration_9;
513 afterParserOrEnumRuleCall(); 629 afterParserOrEnumRuleCall();
514 630
515 631
516 } 632 }
517 break; 633 break;
518 case 11 : 634 case 11 :
519 // InternalSolverLanguageParser.g:200:4: this_ScopeDefinition_10= ruleScopeDefinition 635 // InternalSolverLanguageParser.g:249:3: this_EnumDeclaration_10= ruleEnumDeclaration
520 { 636 {
521 637
522 newCompositeNode(grammarAccess.getStatementAccess().getScopeDefinitionParserRuleCall_0_10()); 638 newCompositeNode(grammarAccess.getStatementAccess().getEnumDeclarationParserRuleCall_10());
523 639
524 pushFollow(FOLLOW_4); 640 pushFollow(FOLLOW_2);
525 this_ScopeDefinition_10=ruleScopeDefinition(); 641 this_EnumDeclaration_10=ruleEnumDeclaration();
526 642
527 state._fsp--; 643 state._fsp--;
528 644
529 645
530 current = this_ScopeDefinition_10; 646 current = this_EnumDeclaration_10;
531 afterParserOrEnumRuleCall(); 647 afterParserOrEnumRuleCall();
532 648
533 649
534 } 650 }
535 break; 651 break;
536 case 12 : 652
537 // InternalSolverLanguageParser.g:209:4: this_ObjectiveDefinition_11= ruleObjectiveDefinition 653 }
654
655
656 }
657
658
659 leaveRule();
660
661 }
662
663 catch (RecognitionException re) {
664 recover(input,re);
665 appendSkippedTokens();
666 }
667 finally {
668 }
669 return current;
670 }
671 // $ANTLR end "ruleStatement"
672
673
674 // $ANTLR start "entryRuleImport"
675 // InternalSolverLanguageParser.g:261:1: entryRuleImport returns [EObject current=null] : iv_ruleImport= ruleImport EOF ;
676 public final EObject entryRuleImport() throws RecognitionException {
677 EObject current = null;
678
679 EObject iv_ruleImport = null;
680
681
682 try {
683 // InternalSolverLanguageParser.g:261:47: (iv_ruleImport= ruleImport EOF )
684 // InternalSolverLanguageParser.g:262:2: iv_ruleImport= ruleImport EOF
685 {
686 newCompositeNode(grammarAccess.getImportRule());
687 pushFollow(FOLLOW_1);
688 iv_ruleImport=ruleImport();
689
690 state._fsp--;
691
692 current =iv_ruleImport;
693 match(input,EOF,FOLLOW_2);
694
695 }
696
697 }
698
699 catch (RecognitionException re) {
700 recover(input,re);
701 appendSkippedTokens();
702 }
703 finally {
704 }
705 return current;
706 }
707 // $ANTLR end "entryRuleImport"
708
709
710 // $ANTLR start "ruleImport"
711 // InternalSolverLanguageParser.g:268:1: ruleImport returns [EObject current=null] : (this_UriImport_0= ruleUriImport | this_NamespaceImport_1= ruleNamespaceImport ) ;
712 public final EObject ruleImport() throws RecognitionException {
713 EObject current = null;
714
715 EObject this_UriImport_0 = null;
716
717 EObject this_NamespaceImport_1 = null;
718
719
720
721 enterRule();
722
723 try {
724 // InternalSolverLanguageParser.g:274:2: ( (this_UriImport_0= ruleUriImport | this_NamespaceImport_1= ruleNamespaceImport ) )
725 // InternalSolverLanguageParser.g:275:2: (this_UriImport_0= ruleUriImport | this_NamespaceImport_1= ruleNamespaceImport )
726 {
727 // InternalSolverLanguageParser.g:275:2: (this_UriImport_0= ruleUriImport | this_NamespaceImport_1= ruleNamespaceImport )
728 int alt5=2;
729 int LA5_0 = input.LA(1);
730
731 if ( (LA5_0==Import) ) {
732 int LA5_1 = input.LA(2);
733
734 if ( (LA5_1==RULE_STRING) ) {
735 alt5=1;
736 }
737 else if ( (LA5_1==Object||LA5_1==RULE_QUOTED_ID||LA5_1==RULE_ID) ) {
738 alt5=2;
739 }
740 else {
741 NoViableAltException nvae =
742 new NoViableAltException("", 5, 1, input);
743
744 throw nvae;
745 }
746 }
747 else {
748 NoViableAltException nvae =
749 new NoViableAltException("", 5, 0, input);
750
751 throw nvae;
752 }
753 switch (alt5) {
754 case 1 :
755 // InternalSolverLanguageParser.g:276:3: this_UriImport_0= ruleUriImport
538 { 756 {
539 757
540 newCompositeNode(grammarAccess.getStatementAccess().getObjectiveDefinitionParserRuleCall_0_11()); 758 newCompositeNode(grammarAccess.getImportAccess().getUriImportParserRuleCall_0());
541 759
542 pushFollow(FOLLOW_4); 760 pushFollow(FOLLOW_2);
543 this_ObjectiveDefinition_11=ruleObjectiveDefinition(); 761 this_UriImport_0=ruleUriImport();
544 762
545 state._fsp--; 763 state._fsp--;
546 764
547 765
548 current = this_ObjectiveDefinition_11; 766 current = this_UriImport_0;
549 afterParserOrEnumRuleCall(); 767 afterParserOrEnumRuleCall();
550 768
551 769
552 } 770 }
553 break; 771 break;
772 case 2 :
773 // InternalSolverLanguageParser.g:285:3: this_NamespaceImport_1= ruleNamespaceImport
774 {
775
776 newCompositeNode(grammarAccess.getImportAccess().getNamespaceImportParserRuleCall_1());
777
778 pushFollow(FOLLOW_2);
779 this_NamespaceImport_1=ruleNamespaceImport();
780
781 state._fsp--;
782
783
784 current = this_NamespaceImport_1;
785 afterParserOrEnumRuleCall();
786
787
788 }
789 break;
790
791 }
792
554 793
555 } 794 }
556 795
557 this_FULL_STOP_12=(Token)match(input,RULE_FULL_STOP,FOLLOW_2);
558 796
559 newLeafNode(this_FULL_STOP_12, grammarAccess.getStatementAccess().getFULL_STOPTerminalRuleCall_1()); 797 leaveRule();
798
799 }
800
801 catch (RecognitionException re) {
802 recover(input,re);
803 appendSkippedTokens();
804 }
805 finally {
806 }
807 return current;
808 }
809 // $ANTLR end "ruleImport"
810
811
812 // $ANTLR start "entryRuleUriImport"
813 // InternalSolverLanguageParser.g:297:1: entryRuleUriImport returns [EObject current=null] : iv_ruleUriImport= ruleUriImport EOF ;
814 public final EObject entryRuleUriImport() throws RecognitionException {
815 EObject current = null;
816
817 EObject iv_ruleUriImport = null;
818
819
820 try {
821 // InternalSolverLanguageParser.g:297:50: (iv_ruleUriImport= ruleUriImport EOF )
822 // InternalSolverLanguageParser.g:298:2: iv_ruleUriImport= ruleUriImport EOF
823 {
824 newCompositeNode(grammarAccess.getUriImportRule());
825 pushFollow(FOLLOW_1);
826 iv_ruleUriImport=ruleUriImport();
827
828 state._fsp--;
829
830 current =iv_ruleUriImport;
831 match(input,EOF,FOLLOW_2);
832
833 }
834
835 }
836
837 catch (RecognitionException re) {
838 recover(input,re);
839 appendSkippedTokens();
840 }
841 finally {
842 }
843 return current;
844 }
845 // $ANTLR end "entryRuleUriImport"
846
847
848 // $ANTLR start "ruleUriImport"
849 // InternalSolverLanguageParser.g:304:1: ruleUriImport returns [EObject current=null] : (otherlv_0= Import ( (lv_uri_1_0= RULE_STRING ) ) (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) this_FULL_STOP_4= RULE_FULL_STOP ) ;
850 public final EObject ruleUriImport() throws RecognitionException {
851 EObject current = null;
852
853 Token otherlv_0=null;
854 Token lv_uri_1_0=null;
855 Token otherlv_2=null;
856 Token this_FULL_STOP_4=null;
857 AntlrDatatypeRuleToken lv_alias_3_0 = null;
858
859
860
861 enterRule();
862
863 try {
864 // InternalSolverLanguageParser.g:310:2: ( (otherlv_0= Import ( (lv_uri_1_0= RULE_STRING ) ) (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) this_FULL_STOP_4= RULE_FULL_STOP ) )
865 // InternalSolverLanguageParser.g:311:2: (otherlv_0= Import ( (lv_uri_1_0= RULE_STRING ) ) (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) this_FULL_STOP_4= RULE_FULL_STOP )
866 {
867 // InternalSolverLanguageParser.g:311:2: (otherlv_0= Import ( (lv_uri_1_0= RULE_STRING ) ) (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) this_FULL_STOP_4= RULE_FULL_STOP )
868 // InternalSolverLanguageParser.g:312:3: otherlv_0= Import ( (lv_uri_1_0= RULE_STRING ) ) (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) this_FULL_STOP_4= RULE_FULL_STOP
869 {
870 otherlv_0=(Token)match(input,Import,FOLLOW_7);
871
872 newLeafNode(otherlv_0, grammarAccess.getUriImportAccess().getImportKeyword_0());
873
874 // InternalSolverLanguageParser.g:316:3: ( (lv_uri_1_0= RULE_STRING ) )
875 // InternalSolverLanguageParser.g:317:4: (lv_uri_1_0= RULE_STRING )
876 {
877 // InternalSolverLanguageParser.g:317:4: (lv_uri_1_0= RULE_STRING )
878 // InternalSolverLanguageParser.g:318:5: lv_uri_1_0= RULE_STRING
879 {
880 lv_uri_1_0=(Token)match(input,RULE_STRING,FOLLOW_8);
881
882 newLeafNode(lv_uri_1_0, grammarAccess.getUriImportAccess().getUriSTRINGTerminalRuleCall_1_0());
883
884
885 if (current==null) {
886 current = createModelElement(grammarAccess.getUriImportRule());
887 }
888 setWithLastConsumed(
889 current,
890 "uri",
891 lv_uri_1_0,
892 "org.eclipse.viatra.solver.language.SolverLanguage.STRING");
893
894
895 }
896
897
898 }
899
900 // InternalSolverLanguageParser.g:334:3: (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) )
901 // InternalSolverLanguageParser.g:335:4: otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) )
902 {
903 otherlv_2=(Token)match(input,As,FOLLOW_3);
904
905 newLeafNode(otherlv_2, grammarAccess.getUriImportAccess().getAsKeyword_2_0());
906
907 // InternalSolverLanguageParser.g:339:4: ( (lv_alias_3_0= ruleQualifiedName ) )
908 // InternalSolverLanguageParser.g:340:5: (lv_alias_3_0= ruleQualifiedName )
909 {
910 // InternalSolverLanguageParser.g:340:5: (lv_alias_3_0= ruleQualifiedName )
911 // InternalSolverLanguageParser.g:341:6: lv_alias_3_0= ruleQualifiedName
912 {
913
914 newCompositeNode(grammarAccess.getUriImportAccess().getAliasQualifiedNameParserRuleCall_2_1_0());
915
916 pushFollow(FOLLOW_4);
917 lv_alias_3_0=ruleQualifiedName();
918
919 state._fsp--;
920
921
922 if (current==null) {
923 current = createModelElementForParent(grammarAccess.getUriImportRule());
924 }
925 set(
926 current,
927 "alias",
928 lv_alias_3_0,
929 "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName");
930 afterParserOrEnumRuleCall();
931
932
933 }
934
935
936 }
937
938
939 }
940
941 this_FULL_STOP_4=(Token)match(input,RULE_FULL_STOP,FOLLOW_2);
942
943 newLeafNode(this_FULL_STOP_4, grammarAccess.getUriImportAccess().getFULL_STOPTerminalRuleCall_3());
560 944
561 945
562 } 946 }
@@ -577,11 +961,172 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
577 } 961 }
578 return current; 962 return current;
579 } 963 }
580 // $ANTLR end "ruleStatement" 964 // $ANTLR end "ruleUriImport"
965
966
967 // $ANTLR start "entryRuleNamespaceImport"
968 // InternalSolverLanguageParser.g:367:1: entryRuleNamespaceImport returns [EObject current=null] : iv_ruleNamespaceImport= ruleNamespaceImport EOF ;
969 public final EObject entryRuleNamespaceImport() throws RecognitionException {
970 EObject current = null;
971
972 EObject iv_ruleNamespaceImport = null;
973
974
975 try {
976 // InternalSolverLanguageParser.g:367:56: (iv_ruleNamespaceImport= ruleNamespaceImport EOF )
977 // InternalSolverLanguageParser.g:368:2: iv_ruleNamespaceImport= ruleNamespaceImport EOF
978 {
979 newCompositeNode(grammarAccess.getNamespaceImportRule());
980 pushFollow(FOLLOW_1);
981 iv_ruleNamespaceImport=ruleNamespaceImport();
982
983 state._fsp--;
984
985 current =iv_ruleNamespaceImport;
986 match(input,EOF,FOLLOW_2);
987
988 }
989
990 }
991
992 catch (RecognitionException re) {
993 recover(input,re);
994 appendSkippedTokens();
995 }
996 finally {
997 }
998 return current;
999 }
1000 // $ANTLR end "entryRuleNamespaceImport"
1001
1002
1003 // $ANTLR start "ruleNamespaceImport"
1004 // InternalSolverLanguageParser.g:374:1: ruleNamespaceImport returns [EObject current=null] : (otherlv_0= Import ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) this_FULL_STOP_4= RULE_FULL_STOP ) ;
1005 public final EObject ruleNamespaceImport() throws RecognitionException {
1006 EObject current = null;
1007
1008 Token otherlv_0=null;
1009 Token otherlv_2=null;
1010 Token this_FULL_STOP_4=null;
1011 AntlrDatatypeRuleToken lv_importedNamespace_1_0 = null;
1012
1013 AntlrDatatypeRuleToken lv_alias_3_0 = null;
1014
1015
1016
1017 enterRule();
1018
1019 try {
1020 // InternalSolverLanguageParser.g:380:2: ( (otherlv_0= Import ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) this_FULL_STOP_4= RULE_FULL_STOP ) )
1021 // InternalSolverLanguageParser.g:381:2: (otherlv_0= Import ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) this_FULL_STOP_4= RULE_FULL_STOP )
1022 {
1023 // InternalSolverLanguageParser.g:381:2: (otherlv_0= Import ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) this_FULL_STOP_4= RULE_FULL_STOP )
1024 // InternalSolverLanguageParser.g:382:3: otherlv_0= Import ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) ) this_FULL_STOP_4= RULE_FULL_STOP
1025 {
1026 otherlv_0=(Token)match(input,Import,FOLLOW_3);
1027
1028 newLeafNode(otherlv_0, grammarAccess.getNamespaceImportAccess().getImportKeyword_0());
1029
1030 // InternalSolverLanguageParser.g:386:3: ( (lv_importedNamespace_1_0= ruleQualifiedName ) )
1031 // InternalSolverLanguageParser.g:387:4: (lv_importedNamespace_1_0= ruleQualifiedName )
1032 {
1033 // InternalSolverLanguageParser.g:387:4: (lv_importedNamespace_1_0= ruleQualifiedName )
1034 // InternalSolverLanguageParser.g:388:5: lv_importedNamespace_1_0= ruleQualifiedName
1035 {
1036
1037 newCompositeNode(grammarAccess.getNamespaceImportAccess().getImportedNamespaceQualifiedNameParserRuleCall_1_0());
1038
1039 pushFollow(FOLLOW_8);
1040 lv_importedNamespace_1_0=ruleQualifiedName();
1041
1042 state._fsp--;
1043
1044
1045 if (current==null) {
1046 current = createModelElementForParent(grammarAccess.getNamespaceImportRule());
1047 }
1048 set(
1049 current,
1050 "importedNamespace",
1051 lv_importedNamespace_1_0,
1052 "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName");
1053 afterParserOrEnumRuleCall();
1054
1055
1056 }
1057
1058
1059 }
1060
1061 // InternalSolverLanguageParser.g:405:3: (otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) ) )
1062 // InternalSolverLanguageParser.g:406:4: otherlv_2= As ( (lv_alias_3_0= ruleQualifiedName ) )
1063 {
1064 otherlv_2=(Token)match(input,As,FOLLOW_3);
1065
1066 newLeafNode(otherlv_2, grammarAccess.getNamespaceImportAccess().getAsKeyword_2_0());
1067
1068 // InternalSolverLanguageParser.g:410:4: ( (lv_alias_3_0= ruleQualifiedName ) )
1069 // InternalSolverLanguageParser.g:411:5: (lv_alias_3_0= ruleQualifiedName )
1070 {
1071 // InternalSolverLanguageParser.g:411:5: (lv_alias_3_0= ruleQualifiedName )
1072 // InternalSolverLanguageParser.g:412:6: lv_alias_3_0= ruleQualifiedName
1073 {
1074
1075 newCompositeNode(grammarAccess.getNamespaceImportAccess().getAliasQualifiedNameParserRuleCall_2_1_0());
1076
1077 pushFollow(FOLLOW_4);
1078 lv_alias_3_0=ruleQualifiedName();
1079
1080 state._fsp--;
1081
1082
1083 if (current==null) {
1084 current = createModelElementForParent(grammarAccess.getNamespaceImportRule());
1085 }
1086 set(
1087 current,
1088 "alias",
1089 lv_alias_3_0,
1090 "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName");
1091 afterParserOrEnumRuleCall();
1092
1093
1094 }
1095
1096
1097 }
1098
1099
1100 }
1101
1102 this_FULL_STOP_4=(Token)match(input,RULE_FULL_STOP,FOLLOW_2);
1103
1104 newLeafNode(this_FULL_STOP_4, grammarAccess.getNamespaceImportAccess().getFULL_STOPTerminalRuleCall_3());
1105
1106
1107 }
1108
1109
1110 }
1111
1112
1113 leaveRule();
1114
1115 }
1116
1117 catch (RecognitionException re) {
1118 recover(input,re);
1119 appendSkippedTokens();
1120 }
1121 finally {
1122 }
1123 return current;
1124 }
1125 // $ANTLR end "ruleNamespaceImport"
581 1126
582 1127
583 // $ANTLR start "entryRuleAssertionOrDefinition" 1128 // $ANTLR start "entryRuleAssertionOrDefinition"
584 // InternalSolverLanguageParser.g:226:1: entryRuleAssertionOrDefinition returns [EObject current=null] : iv_ruleAssertionOrDefinition= ruleAssertionOrDefinition EOF ; 1129 // InternalSolverLanguageParser.g:438:1: entryRuleAssertionOrDefinition returns [EObject current=null] : iv_ruleAssertionOrDefinition= ruleAssertionOrDefinition EOF ;
585 public final EObject entryRuleAssertionOrDefinition() throws RecognitionException { 1130 public final EObject entryRuleAssertionOrDefinition() throws RecognitionException {
586 EObject current = null; 1131 EObject current = null;
587 1132
@@ -589,8 +1134,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
589 1134
590 1135
591 try { 1136 try {
592 // InternalSolverLanguageParser.g:226:62: (iv_ruleAssertionOrDefinition= ruleAssertionOrDefinition EOF ) 1137 // InternalSolverLanguageParser.g:438:62: (iv_ruleAssertionOrDefinition= ruleAssertionOrDefinition EOF )
593 // InternalSolverLanguageParser.g:227:2: iv_ruleAssertionOrDefinition= ruleAssertionOrDefinition EOF 1138 // InternalSolverLanguageParser.g:439:2: iv_ruleAssertionOrDefinition= ruleAssertionOrDefinition EOF
594 { 1139 {
595 newCompositeNode(grammarAccess.getAssertionOrDefinitionRule()); 1140 newCompositeNode(grammarAccess.getAssertionOrDefinitionRule());
596 pushFollow(FOLLOW_1); 1141 pushFollow(FOLLOW_1);
@@ -617,13 +1162,14 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
617 1162
618 1163
619 // $ANTLR start "ruleAssertionOrDefinition" 1164 // $ANTLR start "ruleAssertionOrDefinition"
620 // InternalSolverLanguageParser.g:233:1: ruleAssertionOrDefinition returns [EObject current=null] : (this_Expression_0= ruleExpression ( ( () otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= EqualsSign ( (lv_body_9_0= ruleExpression ) ) ) )? ) ; 1165 // InternalSolverLanguageParser.g:445:1: ruleAssertionOrDefinition returns [EObject current=null] : (this_Expression_0= ruleExpression ( ( () (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= ColonEqualsSign ( (lv_body_9_0= ruleExpression ) ) ) ) this_FULL_STOP_10= RULE_FULL_STOP ) ;
621 public final EObject ruleAssertionOrDefinition() throws RecognitionException { 1166 public final EObject ruleAssertionOrDefinition() throws RecognitionException {
622 EObject current = null; 1167 EObject current = null;
623 1168
624 Token otherlv_2=null; 1169 Token otherlv_2=null;
625 Token otherlv_5=null; 1170 Token otherlv_5=null;
626 Token otherlv_8=null; 1171 Token otherlv_8=null;
1172 Token this_FULL_STOP_10=null;
627 EObject this_Expression_0 = null; 1173 EObject this_Expression_0 = null;
628 1174
629 EObject lv_range_3_0 = null; 1175 EObject lv_range_3_0 = null;
@@ -637,16 +1183,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
637 enterRule(); 1183 enterRule();
638 1184
639 try { 1185 try {
640 // InternalSolverLanguageParser.g:239:2: ( (this_Expression_0= ruleExpression ( ( () otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= EqualsSign ( (lv_body_9_0= ruleExpression ) ) ) )? ) ) 1186 // InternalSolverLanguageParser.g:451:2: ( (this_Expression_0= ruleExpression ( ( () (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= ColonEqualsSign ( (lv_body_9_0= ruleExpression ) ) ) ) this_FULL_STOP_10= RULE_FULL_STOP ) )
641 // InternalSolverLanguageParser.g:240:2: (this_Expression_0= ruleExpression ( ( () otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= EqualsSign ( (lv_body_9_0= ruleExpression ) ) ) )? ) 1187 // InternalSolverLanguageParser.g:452:2: (this_Expression_0= ruleExpression ( ( () (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= ColonEqualsSign ( (lv_body_9_0= ruleExpression ) ) ) ) this_FULL_STOP_10= RULE_FULL_STOP )
642 { 1188 {
643 // InternalSolverLanguageParser.g:240:2: (this_Expression_0= ruleExpression ( ( () otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= EqualsSign ( (lv_body_9_0= ruleExpression ) ) ) )? ) 1189 // InternalSolverLanguageParser.g:452:2: (this_Expression_0= ruleExpression ( ( () (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= ColonEqualsSign ( (lv_body_9_0= ruleExpression ) ) ) ) this_FULL_STOP_10= RULE_FULL_STOP )
644 // InternalSolverLanguageParser.g:241:3: this_Expression_0= ruleExpression ( ( () otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= EqualsSign ( (lv_body_9_0= ruleExpression ) ) ) )? 1190 // InternalSolverLanguageParser.g:453:3: this_Expression_0= ruleExpression ( ( () (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= ColonEqualsSign ( (lv_body_9_0= ruleExpression ) ) ) ) this_FULL_STOP_10= RULE_FULL_STOP
645 { 1191 {
646 1192
647 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getExpressionParserRuleCall_0()); 1193 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getExpressionParserRuleCall_0());
648 1194
649 pushFollow(FOLLOW_5); 1195 pushFollow(FOLLOW_9);
650 this_Expression_0=ruleExpression(); 1196 this_Expression_0=ruleExpression();
651 1197
652 state._fsp--; 1198 state._fsp--;
@@ -655,77 +1201,100 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
655 current = this_Expression_0; 1201 current = this_Expression_0;
656 afterParserOrEnumRuleCall(); 1202 afterParserOrEnumRuleCall();
657 1203
658 // InternalSolverLanguageParser.g:249:3: ( ( () otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= EqualsSign ( (lv_body_9_0= ruleExpression ) ) ) )? 1204 // InternalSolverLanguageParser.g:461:3: ( ( () (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? ) | ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= ColonEqualsSign ( (lv_body_9_0= ruleExpression ) ) ) )
659 int alt3=4; 1205 int alt7=3;
660 switch ( input.LA(1) ) { 1206 switch ( input.LA(1) ) {
661 case Colon: 1207 case Colon:
662 { 1208 case RULE_FULL_STOP:
663 alt3=1; 1209 {
664 } 1210 alt7=1;
665 break; 1211 }
666 case ColonHyphenMinus: 1212 break;
667 { 1213 case ColonHyphenMinus:
668 alt3=2; 1214 {
669 } 1215 alt7=2;
670 break; 1216 }
671 case EqualsSign: 1217 break;
672 { 1218 case ColonEqualsSign:
673 alt3=3; 1219 {
674 } 1220 alt7=3;
675 break; 1221 }
1222 break;
1223 default:
1224 NoViableAltException nvae =
1225 new NoViableAltException("", 7, 0, input);
1226
1227 throw nvae;
676 } 1228 }
677 1229
678 switch (alt3) { 1230 switch (alt7) {
679 case 1 : 1231 case 1 :
680 // InternalSolverLanguageParser.g:250:4: ( () otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) 1232 // InternalSolverLanguageParser.g:462:4: ( () (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? )
681 { 1233 {
682 // InternalSolverLanguageParser.g:250:4: ( () otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) 1234 // InternalSolverLanguageParser.g:462:4: ( () (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? )
683 // InternalSolverLanguageParser.g:251:5: () otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) 1235 // InternalSolverLanguageParser.g:463:5: () (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )?
684 { 1236 {
685 // InternalSolverLanguageParser.g:251:5: () 1237 // InternalSolverLanguageParser.g:463:5: ()
686 // InternalSolverLanguageParser.g:252:6: 1238 // InternalSolverLanguageParser.g:464:6:
687 { 1239 {
688 1240
689 current = forceCreateModelElementAndSet( 1241 current = forceCreateModelElementAndSet(
690 grammarAccess.getAssertionOrDefinitionAccess().getInterpretationBodyAction_1_0_0(), 1242 grammarAccess.getAssertionOrDefinitionAccess().getAssertionExpressionAction_1_0_0(),
691 current); 1243 current);
692 1244
693 1245
694 } 1246 }
695 1247
696 otherlv_2=(Token)match(input,Colon,FOLLOW_6); 1248 // InternalSolverLanguageParser.g:470:5: (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )?
1249 int alt6=2;
1250 int LA6_0 = input.LA(1);
697 1251
698 newLeafNode(otherlv_2, grammarAccess.getAssertionOrDefinitionAccess().getColonKeyword_1_0_1()); 1252 if ( (LA6_0==Colon) ) {
699 1253 alt6=1;
700 // InternalSolverLanguageParser.g:262:5: ( (lv_range_3_0= ruleExpression ) ) 1254 }
701 // InternalSolverLanguageParser.g:263:6: (lv_range_3_0= ruleExpression ) 1255 switch (alt6) {
702 { 1256 case 1 :
703 // InternalSolverLanguageParser.g:263:6: (lv_range_3_0= ruleExpression ) 1257 // InternalSolverLanguageParser.g:471:6: otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) )
704 // InternalSolverLanguageParser.g:264:7: lv_range_3_0= ruleExpression 1258 {
705 { 1259 otherlv_2=(Token)match(input,Colon,FOLLOW_10);
706 1260
707 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getRangeExpressionParserRuleCall_1_0_2_0()); 1261 newLeafNode(otherlv_2, grammarAccess.getAssertionOrDefinitionAccess().getColonKeyword_1_0_1_0());
708 1262
709 pushFollow(FOLLOW_2); 1263 // InternalSolverLanguageParser.g:475:6: ( (lv_range_3_0= ruleExpression ) )
710 lv_range_3_0=ruleExpression(); 1264 // InternalSolverLanguageParser.g:476:7: (lv_range_3_0= ruleExpression )
1265 {
1266 // InternalSolverLanguageParser.g:476:7: (lv_range_3_0= ruleExpression )
1267 // InternalSolverLanguageParser.g:477:8: lv_range_3_0= ruleExpression
1268 {
711 1269
712 state._fsp--; 1270 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getRangeExpressionParserRuleCall_1_0_1_1_0());
1271
1272 pushFollow(FOLLOW_4);
1273 lv_range_3_0=ruleExpression();
713 1274
1275 state._fsp--;
714 1276
715 if (current==null) {
716 current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule());
717 }
718 set(
719 current,
720 "range",
721 lv_range_3_0,
722 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
723 afterParserOrEnumRuleCall();
724
725 1277
726 } 1278 if (current==null) {
1279 current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule());
1280 }
1281 set(
1282 current,
1283 "range",
1284 lv_range_3_0,
1285 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
1286 afterParserOrEnumRuleCall();
1287
1288
1289 }
727 1290
728 1291
1292 }
1293
1294
1295 }
1296 break;
1297
729 } 1298 }
730 1299
731 1300
@@ -735,13 +1304,13 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
735 } 1304 }
736 break; 1305 break;
737 case 2 : 1306 case 2 :
738 // InternalSolverLanguageParser.g:283:4: ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) 1307 // InternalSolverLanguageParser.g:497:4: ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) )
739 { 1308 {
740 // InternalSolverLanguageParser.g:283:4: ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) 1309 // InternalSolverLanguageParser.g:497:4: ( () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) )
741 // InternalSolverLanguageParser.g:284:5: () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) 1310 // InternalSolverLanguageParser.g:498:5: () otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) )
742 { 1311 {
743 // InternalSolverLanguageParser.g:284:5: () 1312 // InternalSolverLanguageParser.g:498:5: ()
744 // InternalSolverLanguageParser.g:285:6: 1313 // InternalSolverLanguageParser.g:499:6:
745 { 1314 {
746 1315
747 current = forceCreateModelElementAndSet( 1316 current = forceCreateModelElementAndSet(
@@ -751,20 +1320,20 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
751 1320
752 } 1321 }
753 1322
754 otherlv_5=(Token)match(input,ColonHyphenMinus,FOLLOW_6); 1323 otherlv_5=(Token)match(input,ColonHyphenMinus,FOLLOW_10);
755 1324
756 newLeafNode(otherlv_5, grammarAccess.getAssertionOrDefinitionAccess().getColonHyphenMinusKeyword_1_1_1()); 1325 newLeafNode(otherlv_5, grammarAccess.getAssertionOrDefinitionAccess().getColonHyphenMinusKeyword_1_1_1());
757 1326
758 // InternalSolverLanguageParser.g:295:5: ( (lv_body_6_0= ruleExpression ) ) 1327 // InternalSolverLanguageParser.g:509:5: ( (lv_body_6_0= ruleExpression ) )
759 // InternalSolverLanguageParser.g:296:6: (lv_body_6_0= ruleExpression ) 1328 // InternalSolverLanguageParser.g:510:6: (lv_body_6_0= ruleExpression )
760 { 1329 {
761 // InternalSolverLanguageParser.g:296:6: (lv_body_6_0= ruleExpression ) 1330 // InternalSolverLanguageParser.g:510:6: (lv_body_6_0= ruleExpression )
762 // InternalSolverLanguageParser.g:297:7: lv_body_6_0= ruleExpression 1331 // InternalSolverLanguageParser.g:511:7: lv_body_6_0= ruleExpression
763 { 1332 {
764 1333
765 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_1_2_0()); 1334 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_1_2_0());
766 1335
767 pushFollow(FOLLOW_2); 1336 pushFollow(FOLLOW_4);
768 lv_body_6_0=ruleExpression(); 1337 lv_body_6_0=ruleExpression();
769 1338
770 state._fsp--; 1339 state._fsp--;
@@ -793,36 +1362,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
793 } 1362 }
794 break; 1363 break;
795 case 3 : 1364 case 3 :
796 // InternalSolverLanguageParser.g:316:4: ( () otherlv_8= EqualsSign ( (lv_body_9_0= ruleExpression ) ) ) 1365 // InternalSolverLanguageParser.g:530:4: ( () otherlv_8= ColonEqualsSign ( (lv_body_9_0= ruleExpression ) ) )
797 { 1366 {
798 // InternalSolverLanguageParser.g:316:4: ( () otherlv_8= EqualsSign ( (lv_body_9_0= ruleExpression ) ) ) 1367 // InternalSolverLanguageParser.g:530:4: ( () otherlv_8= ColonEqualsSign ( (lv_body_9_0= ruleExpression ) ) )
799 // InternalSolverLanguageParser.g:317:5: () otherlv_8= EqualsSign ( (lv_body_9_0= ruleExpression ) ) 1368 // InternalSolverLanguageParser.g:531:5: () otherlv_8= ColonEqualsSign ( (lv_body_9_0= ruleExpression ) )
800 { 1369 {
801 // InternalSolverLanguageParser.g:317:5: () 1370 // InternalSolverLanguageParser.g:531:5: ()
802 // InternalSolverLanguageParser.g:318:6: 1371 // InternalSolverLanguageParser.g:532:6:
803 { 1372 {
804 1373
805 current = forceCreateModelElementAndSet( 1374 current = forceCreateModelElementAndSet(
806 grammarAccess.getAssertionOrDefinitionAccess().getMetricDefinitionHeadAction_1_2_0(), 1375 grammarAccess.getAssertionOrDefinitionAccess().getFunctionDefinitionHeadAction_1_2_0(),
807 current); 1376 current);
808 1377
809 1378
810 } 1379 }
811 1380
812 otherlv_8=(Token)match(input,EqualsSign,FOLLOW_6); 1381 otherlv_8=(Token)match(input,ColonEqualsSign,FOLLOW_10);
813 1382
814 newLeafNode(otherlv_8, grammarAccess.getAssertionOrDefinitionAccess().getEqualsSignKeyword_1_2_1()); 1383 newLeafNode(otherlv_8, grammarAccess.getAssertionOrDefinitionAccess().getColonEqualsSignKeyword_1_2_1());
815 1384
816 // InternalSolverLanguageParser.g:328:5: ( (lv_body_9_0= ruleExpression ) ) 1385 // InternalSolverLanguageParser.g:542:5: ( (lv_body_9_0= ruleExpression ) )
817 // InternalSolverLanguageParser.g:329:6: (lv_body_9_0= ruleExpression ) 1386 // InternalSolverLanguageParser.g:543:6: (lv_body_9_0= ruleExpression )
818 { 1387 {
819 // InternalSolverLanguageParser.g:329:6: (lv_body_9_0= ruleExpression ) 1388 // InternalSolverLanguageParser.g:543:6: (lv_body_9_0= ruleExpression )
820 // InternalSolverLanguageParser.g:330:7: lv_body_9_0= ruleExpression 1389 // InternalSolverLanguageParser.g:544:7: lv_body_9_0= ruleExpression
821 { 1390 {
822 1391
823 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_2_2_0()); 1392 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_2_2_0());
824 1393
825 pushFollow(FOLLOW_2); 1394 pushFollow(FOLLOW_4);
826 lv_body_9_0=ruleExpression(); 1395 lv_body_9_0=ruleExpression();
827 1396
828 state._fsp--; 1397 state._fsp--;
@@ -853,6 +1422,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
853 1422
854 } 1423 }
855 1424
1425 this_FULL_STOP_10=(Token)match(input,RULE_FULL_STOP,FOLLOW_2);
1426
1427 newLeafNode(this_FULL_STOP_10, grammarAccess.getAssertionOrDefinitionAccess().getFULL_STOPTerminalRuleCall_2());
1428
856 1429
857 } 1430 }
858 1431
@@ -876,7 +1449,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
876 1449
877 1450
878 // $ANTLR start "entryRulePredicateDefinition" 1451 // $ANTLR start "entryRulePredicateDefinition"
879 // InternalSolverLanguageParser.g:353:1: entryRulePredicateDefinition returns [EObject current=null] : iv_rulePredicateDefinition= rulePredicateDefinition EOF ; 1452 // InternalSolverLanguageParser.g:571:1: entryRulePredicateDefinition returns [EObject current=null] : iv_rulePredicateDefinition= rulePredicateDefinition EOF ;
880 public final EObject entryRulePredicateDefinition() throws RecognitionException { 1453 public final EObject entryRulePredicateDefinition() throws RecognitionException {
881 EObject current = null; 1454 EObject current = null;
882 1455
@@ -884,8 +1457,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
884 1457
885 1458
886 try { 1459 try {
887 // InternalSolverLanguageParser.g:353:60: (iv_rulePredicateDefinition= rulePredicateDefinition EOF ) 1460 // InternalSolverLanguageParser.g:571:60: (iv_rulePredicateDefinition= rulePredicateDefinition EOF )
888 // InternalSolverLanguageParser.g:354:2: iv_rulePredicateDefinition= rulePredicateDefinition EOF 1461 // InternalSolverLanguageParser.g:572:2: iv_rulePredicateDefinition= rulePredicateDefinition EOF
889 { 1462 {
890 newCompositeNode(grammarAccess.getPredicateDefinitionRule()); 1463 newCompositeNode(grammarAccess.getPredicateDefinitionRule());
891 pushFollow(FOLLOW_1); 1464 pushFollow(FOLLOW_1);
@@ -912,7 +1485,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
912 1485
913 1486
914 // $ANTLR start "rulePredicateDefinition" 1487 // $ANTLR start "rulePredicateDefinition"
915 // InternalSolverLanguageParser.g:360:1: rulePredicateDefinition returns [EObject current=null] : ( ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) ; 1488 // InternalSolverLanguageParser.g:578:1: rulePredicateDefinition returns [EObject current=null] : ( ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) this_FULL_STOP_7= RULE_FULL_STOP ) ;
916 public final EObject rulePredicateDefinition() throws RecognitionException { 1489 public final EObject rulePredicateDefinition() throws RecognitionException {
917 EObject current = null; 1490 EObject current = null;
918 1491
@@ -921,6 +1494,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
921 Token lv_error_2_0=null; 1494 Token lv_error_2_0=null;
922 Token lv_functional_3_0=null; 1495 Token lv_functional_3_0=null;
923 Token otherlv_5=null; 1496 Token otherlv_5=null;
1497 Token this_FULL_STOP_7=null;
924 EObject lv_head_4_0 = null; 1498 EObject lv_head_4_0 = null;
925 1499
926 EObject lv_body_6_0 = null; 1500 EObject lv_body_6_0 = null;
@@ -930,42 +1504,42 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
930 enterRule(); 1504 enterRule();
931 1505
932 try { 1506 try {
933 // InternalSolverLanguageParser.g:366:2: ( ( ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) ) 1507 // InternalSolverLanguageParser.g:584:2: ( ( ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) this_FULL_STOP_7= RULE_FULL_STOP ) )
934 // InternalSolverLanguageParser.g:367:2: ( ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) 1508 // InternalSolverLanguageParser.g:585:2: ( ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) this_FULL_STOP_7= RULE_FULL_STOP )
935 { 1509 {
936 // InternalSolverLanguageParser.g:367:2: ( ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) ) 1510 // InternalSolverLanguageParser.g:585:2: ( ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) this_FULL_STOP_7= RULE_FULL_STOP )
937 // InternalSolverLanguageParser.g:368:3: ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) 1511 // InternalSolverLanguageParser.g:586:3: ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ColonHyphenMinus ( (lv_body_6_0= ruleExpression ) ) this_FULL_STOP_7= RULE_FULL_STOP
938 { 1512 {
939 // InternalSolverLanguageParser.g:368:3: ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) ) 1513 // InternalSolverLanguageParser.g:586:3: ( ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) | ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) )
940 int alt6=2; 1514 int alt10=2;
941 int LA6_0 = input.LA(1); 1515 int LA10_0 = input.LA(1);
942 1516
943 if ( (LA6_0==Functional) ) { 1517 if ( (LA10_0==Functional) ) {
944 alt6=1; 1518 alt10=1;
945 } 1519 }
946 else if ( (LA6_0==Error) ) { 1520 else if ( (LA10_0==Error) ) {
947 alt6=2; 1521 alt10=2;
948 } 1522 }
949 else { 1523 else {
950 NoViableAltException nvae = 1524 NoViableAltException nvae =
951 new NoViableAltException("", 6, 0, input); 1525 new NoViableAltException("", 10, 0, input);
952 1526
953 throw nvae; 1527 throw nvae;
954 } 1528 }
955 switch (alt6) { 1529 switch (alt10) {
956 case 1 : 1530 case 1 :
957 // InternalSolverLanguageParser.g:369:4: ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) 1531 // InternalSolverLanguageParser.g:587:4: ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? )
958 { 1532 {
959 // InternalSolverLanguageParser.g:369:4: ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? ) 1533 // InternalSolverLanguageParser.g:587:4: ( ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? )
960 // InternalSolverLanguageParser.g:370:5: ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )? 1534 // InternalSolverLanguageParser.g:588:5: ( (lv_functional_0_0= Functional ) ) ( (lv_error_1_0= Error ) )?
961 { 1535 {
962 // InternalSolverLanguageParser.g:370:5: ( (lv_functional_0_0= Functional ) ) 1536 // InternalSolverLanguageParser.g:588:5: ( (lv_functional_0_0= Functional ) )
963 // InternalSolverLanguageParser.g:371:6: (lv_functional_0_0= Functional ) 1537 // InternalSolverLanguageParser.g:589:6: (lv_functional_0_0= Functional )
964 { 1538 {
965 // InternalSolverLanguageParser.g:371:6: (lv_functional_0_0= Functional ) 1539 // InternalSolverLanguageParser.g:589:6: (lv_functional_0_0= Functional )
966 // InternalSolverLanguageParser.g:372:7: lv_functional_0_0= Functional 1540 // InternalSolverLanguageParser.g:590:7: lv_functional_0_0= Functional
967 { 1541 {
968 lv_functional_0_0=(Token)match(input,Functional,FOLLOW_7); 1542 lv_functional_0_0=(Token)match(input,Functional,FOLLOW_11);
969 1543
970 newLeafNode(lv_functional_0_0, grammarAccess.getPredicateDefinitionAccess().getFunctionalFunctionalKeyword_0_0_0_0()); 1544 newLeafNode(lv_functional_0_0, grammarAccess.getPredicateDefinitionAccess().getFunctionalFunctionalKeyword_0_0_0_0());
971 1545
@@ -981,21 +1555,21 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
981 1555
982 } 1556 }
983 1557
984 // InternalSolverLanguageParser.g:384:5: ( (lv_error_1_0= Error ) )? 1558 // InternalSolverLanguageParser.g:602:5: ( (lv_error_1_0= Error ) )?
985 int alt4=2; 1559 int alt8=2;
986 int LA4_0 = input.LA(1); 1560 int LA8_0 = input.LA(1);
987 1561
988 if ( (LA4_0==Error) ) { 1562 if ( (LA8_0==Error) ) {
989 alt4=1; 1563 alt8=1;
990 } 1564 }
991 switch (alt4) { 1565 switch (alt8) {
992 case 1 : 1566 case 1 :
993 // InternalSolverLanguageParser.g:385:6: (lv_error_1_0= Error ) 1567 // InternalSolverLanguageParser.g:603:6: (lv_error_1_0= Error )
994 { 1568 {
995 // InternalSolverLanguageParser.g:385:6: (lv_error_1_0= Error ) 1569 // InternalSolverLanguageParser.g:603:6: (lv_error_1_0= Error )
996 // InternalSolverLanguageParser.g:386:7: lv_error_1_0= Error 1570 // InternalSolverLanguageParser.g:604:7: lv_error_1_0= Error
997 { 1571 {
998 lv_error_1_0=(Token)match(input,Error,FOLLOW_8); 1572 lv_error_1_0=(Token)match(input,Error,FOLLOW_12);
999 1573
1000 newLeafNode(lv_error_1_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_1_0()); 1574 newLeafNode(lv_error_1_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_1_0());
1001 1575
@@ -1021,18 +1595,18 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1021 } 1595 }
1022 break; 1596 break;
1023 case 2 : 1597 case 2 :
1024 // InternalSolverLanguageParser.g:400:4: ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) 1598 // InternalSolverLanguageParser.g:618:4: ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? )
1025 { 1599 {
1026 // InternalSolverLanguageParser.g:400:4: ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? ) 1600 // InternalSolverLanguageParser.g:618:4: ( ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? )
1027 // InternalSolverLanguageParser.g:401:5: ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )? 1601 // InternalSolverLanguageParser.g:619:5: ( (lv_error_2_0= Error ) ) ( (lv_functional_3_0= Functional ) )?
1028 { 1602 {
1029 // InternalSolverLanguageParser.g:401:5: ( (lv_error_2_0= Error ) ) 1603 // InternalSolverLanguageParser.g:619:5: ( (lv_error_2_0= Error ) )
1030 // InternalSolverLanguageParser.g:402:6: (lv_error_2_0= Error ) 1604 // InternalSolverLanguageParser.g:620:6: (lv_error_2_0= Error )
1031 { 1605 {
1032 // InternalSolverLanguageParser.g:402:6: (lv_error_2_0= Error ) 1606 // InternalSolverLanguageParser.g:620:6: (lv_error_2_0= Error )
1033 // InternalSolverLanguageParser.g:403:7: lv_error_2_0= Error 1607 // InternalSolverLanguageParser.g:621:7: lv_error_2_0= Error
1034 { 1608 {
1035 lv_error_2_0=(Token)match(input,Error,FOLLOW_9); 1609 lv_error_2_0=(Token)match(input,Error,FOLLOW_13);
1036 1610
1037 newLeafNode(lv_error_2_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_1_0_0()); 1611 newLeafNode(lv_error_2_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_1_0_0());
1038 1612
@@ -1048,21 +1622,21 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1048 1622
1049 } 1623 }
1050 1624
1051 // InternalSolverLanguageParser.g:415:5: ( (lv_functional_3_0= Functional ) )? 1625 // InternalSolverLanguageParser.g:633:5: ( (lv_functional_3_0= Functional ) )?
1052 int alt5=2; 1626 int alt9=2;
1053 int LA5_0 = input.LA(1); 1627 int LA9_0 = input.LA(1);
1054 1628
1055 if ( (LA5_0==Functional) ) { 1629 if ( (LA9_0==Functional) ) {
1056 alt5=1; 1630 alt9=1;
1057 } 1631 }
1058 switch (alt5) { 1632 switch (alt9) {
1059 case 1 : 1633 case 1 :
1060 // InternalSolverLanguageParser.g:416:6: (lv_functional_3_0= Functional ) 1634 // InternalSolverLanguageParser.g:634:6: (lv_functional_3_0= Functional )
1061 { 1635 {
1062 // InternalSolverLanguageParser.g:416:6: (lv_functional_3_0= Functional ) 1636 // InternalSolverLanguageParser.g:634:6: (lv_functional_3_0= Functional )
1063 // InternalSolverLanguageParser.g:417:7: lv_functional_3_0= Functional 1637 // InternalSolverLanguageParser.g:635:7: lv_functional_3_0= Functional
1064 { 1638 {
1065 lv_functional_3_0=(Token)match(input,Functional,FOLLOW_8); 1639 lv_functional_3_0=(Token)match(input,Functional,FOLLOW_12);
1066 1640
1067 newLeafNode(lv_functional_3_0, grammarAccess.getPredicateDefinitionAccess().getFunctionalFunctionalKeyword_0_1_1_0()); 1641 newLeafNode(lv_functional_3_0, grammarAccess.getPredicateDefinitionAccess().getFunctionalFunctionalKeyword_0_1_1_0());
1068 1642
@@ -1090,16 +1664,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1090 1664
1091 } 1665 }
1092 1666
1093 // InternalSolverLanguageParser.g:431:3: ( (lv_head_4_0= ruleCall ) ) 1667 // InternalSolverLanguageParser.g:649:3: ( (lv_head_4_0= ruleCall ) )
1094 // InternalSolverLanguageParser.g:432:4: (lv_head_4_0= ruleCall ) 1668 // InternalSolverLanguageParser.g:650:4: (lv_head_4_0= ruleCall )
1095 { 1669 {
1096 // InternalSolverLanguageParser.g:432:4: (lv_head_4_0= ruleCall ) 1670 // InternalSolverLanguageParser.g:650:4: (lv_head_4_0= ruleCall )
1097 // InternalSolverLanguageParser.g:433:5: lv_head_4_0= ruleCall 1671 // InternalSolverLanguageParser.g:651:5: lv_head_4_0= ruleCall
1098 { 1672 {
1099 1673
1100 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getHeadCallParserRuleCall_1_0()); 1674 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getHeadCallParserRuleCall_1_0());
1101 1675
1102 pushFollow(FOLLOW_10); 1676 pushFollow(FOLLOW_14);
1103 lv_head_4_0=ruleCall(); 1677 lv_head_4_0=ruleCall();
1104 1678
1105 state._fsp--; 1679 state._fsp--;
@@ -1121,20 +1695,20 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1121 1695
1122 } 1696 }
1123 1697
1124 otherlv_5=(Token)match(input,ColonHyphenMinus,FOLLOW_6); 1698 otherlv_5=(Token)match(input,ColonHyphenMinus,FOLLOW_10);
1125 1699
1126 newLeafNode(otherlv_5, grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_2()); 1700 newLeafNode(otherlv_5, grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_2());
1127 1701
1128 // InternalSolverLanguageParser.g:454:3: ( (lv_body_6_0= ruleExpression ) ) 1702 // InternalSolverLanguageParser.g:672:3: ( (lv_body_6_0= ruleExpression ) )
1129 // InternalSolverLanguageParser.g:455:4: (lv_body_6_0= ruleExpression ) 1703 // InternalSolverLanguageParser.g:673:4: (lv_body_6_0= ruleExpression )
1130 { 1704 {
1131 // InternalSolverLanguageParser.g:455:4: (lv_body_6_0= ruleExpression ) 1705 // InternalSolverLanguageParser.g:673:4: (lv_body_6_0= ruleExpression )
1132 // InternalSolverLanguageParser.g:456:5: lv_body_6_0= ruleExpression 1706 // InternalSolverLanguageParser.g:674:5: lv_body_6_0= ruleExpression
1133 { 1707 {
1134 1708
1135 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodyExpressionParserRuleCall_3_0()); 1709 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodyExpressionParserRuleCall_3_0());
1136 1710
1137 pushFollow(FOLLOW_2); 1711 pushFollow(FOLLOW_4);
1138 lv_body_6_0=ruleExpression(); 1712 lv_body_6_0=ruleExpression();
1139 1713
1140 state._fsp--; 1714 state._fsp--;
@@ -1156,6 +1730,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1156 1730
1157 } 1731 }
1158 1732
1733 this_FULL_STOP_7=(Token)match(input,RULE_FULL_STOP,FOLLOW_2);
1734
1735 newLeafNode(this_FULL_STOP_7, grammarAccess.getPredicateDefinitionAccess().getFULL_STOPTerminalRuleCall_4());
1736
1159 1737
1160 } 1738 }
1161 1739
@@ -1178,25 +1756,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1178 // $ANTLR end "rulePredicateDefinition" 1756 // $ANTLR end "rulePredicateDefinition"
1179 1757
1180 1758
1181 // $ANTLR start "entryRuleUnnamedErrorPrediateDefinition" 1759 // $ANTLR start "entryRuleUnnamedErrorPredicateDefintion"
1182 // InternalSolverLanguageParser.g:477:1: entryRuleUnnamedErrorPrediateDefinition returns [EObject current=null] : iv_ruleUnnamedErrorPrediateDefinition= ruleUnnamedErrorPrediateDefinition EOF ; 1760 // InternalSolverLanguageParser.g:699:1: entryRuleUnnamedErrorPredicateDefintion returns [EObject current=null] : iv_ruleUnnamedErrorPredicateDefintion= ruleUnnamedErrorPredicateDefintion EOF ;
1183 public final EObject entryRuleUnnamedErrorPrediateDefinition() throws RecognitionException { 1761 public final EObject entryRuleUnnamedErrorPredicateDefintion() throws RecognitionException {
1184 EObject current = null; 1762 EObject current = null;
1185 1763
1186 EObject iv_ruleUnnamedErrorPrediateDefinition = null; 1764 EObject iv_ruleUnnamedErrorPredicateDefintion = null;
1187 1765
1188 1766
1189 try { 1767 try {
1190 // InternalSolverLanguageParser.g:477:71: (iv_ruleUnnamedErrorPrediateDefinition= ruleUnnamedErrorPrediateDefinition EOF ) 1768 // InternalSolverLanguageParser.g:699:71: (iv_ruleUnnamedErrorPredicateDefintion= ruleUnnamedErrorPredicateDefintion EOF )
1191 // InternalSolverLanguageParser.g:478:2: iv_ruleUnnamedErrorPrediateDefinition= ruleUnnamedErrorPrediateDefinition EOF 1769 // InternalSolverLanguageParser.g:700:2: iv_ruleUnnamedErrorPredicateDefintion= ruleUnnamedErrorPredicateDefintion EOF
1192 { 1770 {
1193 newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionRule()); 1771 newCompositeNode(grammarAccess.getUnnamedErrorPredicateDefintionRule());
1194 pushFollow(FOLLOW_1); 1772 pushFollow(FOLLOW_1);
1195 iv_ruleUnnamedErrorPrediateDefinition=ruleUnnamedErrorPrediateDefinition(); 1773 iv_ruleUnnamedErrorPredicateDefintion=ruleUnnamedErrorPredicateDefintion();
1196 1774
1197 state._fsp--; 1775 state._fsp--;
1198 1776
1199 current =iv_ruleUnnamedErrorPrediateDefinition; 1777 current =iv_ruleUnnamedErrorPredicateDefintion;
1200 match(input,EOF,FOLLOW_2); 1778 match(input,EOF,FOLLOW_2);
1201 1779
1202 } 1780 }
@@ -1211,16 +1789,17 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1211 } 1789 }
1212 return current; 1790 return current;
1213 } 1791 }
1214 // $ANTLR end "entryRuleUnnamedErrorPrediateDefinition" 1792 // $ANTLR end "entryRuleUnnamedErrorPredicateDefintion"
1215 1793
1216 1794
1217 // $ANTLR start "ruleUnnamedErrorPrediateDefinition" 1795 // $ANTLR start "ruleUnnamedErrorPredicateDefintion"
1218 // InternalSolverLanguageParser.g:484:1: ruleUnnamedErrorPrediateDefinition returns [EObject current=null] : (otherlv_0= Error ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ColonHyphenMinus ( (lv_body_3_0= ruleExpression ) ) ) ; 1796 // InternalSolverLanguageParser.g:706:1: ruleUnnamedErrorPredicateDefintion returns [EObject current=null] : (otherlv_0= Error ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ColonHyphenMinus ( (lv_body_3_0= ruleExpression ) ) this_FULL_STOP_4= RULE_FULL_STOP ) ;
1219 public final EObject ruleUnnamedErrorPrediateDefinition() throws RecognitionException { 1797 public final EObject ruleUnnamedErrorPredicateDefintion() throws RecognitionException {
1220 EObject current = null; 1798 EObject current = null;
1221 1799
1222 Token otherlv_0=null; 1800 Token otherlv_0=null;
1223 Token otherlv_2=null; 1801 Token otherlv_2=null;
1802 Token this_FULL_STOP_4=null;
1224 EObject lv_argumentList_1_0 = null; 1803 EObject lv_argumentList_1_0 = null;
1225 1804
1226 EObject lv_body_3_0 = null; 1805 EObject lv_body_3_0 = null;
@@ -1230,33 +1809,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1230 enterRule(); 1809 enterRule();
1231 1810
1232 try { 1811 try {
1233 // InternalSolverLanguageParser.g:490:2: ( (otherlv_0= Error ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ColonHyphenMinus ( (lv_body_3_0= ruleExpression ) ) ) ) 1812 // InternalSolverLanguageParser.g:712:2: ( (otherlv_0= Error ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ColonHyphenMinus ( (lv_body_3_0= ruleExpression ) ) this_FULL_STOP_4= RULE_FULL_STOP ) )
1234 // InternalSolverLanguageParser.g:491:2: (otherlv_0= Error ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ColonHyphenMinus ( (lv_body_3_0= ruleExpression ) ) ) 1813 // InternalSolverLanguageParser.g:713:2: (otherlv_0= Error ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ColonHyphenMinus ( (lv_body_3_0= ruleExpression ) ) this_FULL_STOP_4= RULE_FULL_STOP )
1235 { 1814 {
1236 // InternalSolverLanguageParser.g:491:2: (otherlv_0= Error ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ColonHyphenMinus ( (lv_body_3_0= ruleExpression ) ) ) 1815 // InternalSolverLanguageParser.g:713:2: (otherlv_0= Error ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ColonHyphenMinus ( (lv_body_3_0= ruleExpression ) ) this_FULL_STOP_4= RULE_FULL_STOP )
1237 // InternalSolverLanguageParser.g:492:3: otherlv_0= Error ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ColonHyphenMinus ( (lv_body_3_0= ruleExpression ) ) 1816 // InternalSolverLanguageParser.g:714:3: otherlv_0= Error ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ColonHyphenMinus ( (lv_body_3_0= ruleExpression ) ) this_FULL_STOP_4= RULE_FULL_STOP
1238 { 1817 {
1239 otherlv_0=(Token)match(input,Error,FOLLOW_11); 1818 otherlv_0=(Token)match(input,Error,FOLLOW_15);
1240 1819
1241 newLeafNode(otherlv_0, grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getErrorKeyword_0()); 1820 newLeafNode(otherlv_0, grammarAccess.getUnnamedErrorPredicateDefintionAccess().getErrorKeyword_0());
1242 1821
1243 // InternalSolverLanguageParser.g:496:3: ( (lv_argumentList_1_0= ruleArgumentList ) ) 1822 // InternalSolverLanguageParser.g:718:3: ( (lv_argumentList_1_0= ruleArgumentList ) )
1244 // InternalSolverLanguageParser.g:497:4: (lv_argumentList_1_0= ruleArgumentList ) 1823 // InternalSolverLanguageParser.g:719:4: (lv_argumentList_1_0= ruleArgumentList )
1245 { 1824 {
1246 // InternalSolverLanguageParser.g:497:4: (lv_argumentList_1_0= ruleArgumentList ) 1825 // InternalSolverLanguageParser.g:719:4: (lv_argumentList_1_0= ruleArgumentList )
1247 // InternalSolverLanguageParser.g:498:5: lv_argumentList_1_0= ruleArgumentList 1826 // InternalSolverLanguageParser.g:720:5: lv_argumentList_1_0= ruleArgumentList
1248 { 1827 {
1249 1828
1250 newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getArgumentListArgumentListParserRuleCall_1_0()); 1829 newCompositeNode(grammarAccess.getUnnamedErrorPredicateDefintionAccess().getArgumentListArgumentListParserRuleCall_1_0());
1251 1830
1252 pushFollow(FOLLOW_10); 1831 pushFollow(FOLLOW_14);
1253 lv_argumentList_1_0=ruleArgumentList(); 1832 lv_argumentList_1_0=ruleArgumentList();
1254 1833
1255 state._fsp--; 1834 state._fsp--;
1256 1835
1257 1836
1258 if (current==null) { 1837 if (current==null) {
1259 current = createModelElementForParent(grammarAccess.getUnnamedErrorPrediateDefinitionRule()); 1838 current = createModelElementForParent(grammarAccess.getUnnamedErrorPredicateDefintionRule());
1260 } 1839 }
1261 set( 1840 set(
1262 current, 1841 current,
@@ -1271,27 +1850,27 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1271 1850
1272 } 1851 }
1273 1852
1274 otherlv_2=(Token)match(input,ColonHyphenMinus,FOLLOW_6); 1853 otherlv_2=(Token)match(input,ColonHyphenMinus,FOLLOW_10);
1275 1854
1276 newLeafNode(otherlv_2, grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getColonHyphenMinusKeyword_2()); 1855 newLeafNode(otherlv_2, grammarAccess.getUnnamedErrorPredicateDefintionAccess().getColonHyphenMinusKeyword_2());
1277 1856
1278 // InternalSolverLanguageParser.g:519:3: ( (lv_body_3_0= ruleExpression ) ) 1857 // InternalSolverLanguageParser.g:741:3: ( (lv_body_3_0= ruleExpression ) )
1279 // InternalSolverLanguageParser.g:520:4: (lv_body_3_0= ruleExpression ) 1858 // InternalSolverLanguageParser.g:742:4: (lv_body_3_0= ruleExpression )
1280 { 1859 {
1281 // InternalSolverLanguageParser.g:520:4: (lv_body_3_0= ruleExpression ) 1860 // InternalSolverLanguageParser.g:742:4: (lv_body_3_0= ruleExpression )
1282 // InternalSolverLanguageParser.g:521:5: lv_body_3_0= ruleExpression 1861 // InternalSolverLanguageParser.g:743:5: lv_body_3_0= ruleExpression
1283 { 1862 {
1284 1863
1285 newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getBodyExpressionParserRuleCall_3_0()); 1864 newCompositeNode(grammarAccess.getUnnamedErrorPredicateDefintionAccess().getBodyExpressionParserRuleCall_3_0());
1286 1865
1287 pushFollow(FOLLOW_2); 1866 pushFollow(FOLLOW_4);
1288 lv_body_3_0=ruleExpression(); 1867 lv_body_3_0=ruleExpression();
1289 1868
1290 state._fsp--; 1869 state._fsp--;
1291 1870
1292 1871
1293 if (current==null) { 1872 if (current==null) {
1294 current = createModelElementForParent(grammarAccess.getUnnamedErrorPrediateDefinitionRule()); 1873 current = createModelElementForParent(grammarAccess.getUnnamedErrorPredicateDefintionRule());
1295 } 1874 }
1296 set( 1875 set(
1297 current, 1876 current,
@@ -1306,6 +1885,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1306 1885
1307 } 1886 }
1308 1887
1888 this_FULL_STOP_4=(Token)match(input,RULE_FULL_STOP,FOLLOW_2);
1889
1890 newLeafNode(this_FULL_STOP_4, grammarAccess.getUnnamedErrorPredicateDefintionAccess().getFULL_STOPTerminalRuleCall_4());
1891
1309 1892
1310 } 1893 }
1311 1894
@@ -1325,28 +1908,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1325 } 1908 }
1326 return current; 1909 return current;
1327 } 1910 }
1328 // $ANTLR end "ruleUnnamedErrorPrediateDefinition" 1911 // $ANTLR end "ruleUnnamedErrorPredicateDefintion"
1329 1912
1330 1913
1331 // $ANTLR start "entryRuleDefaultDefinition" 1914 // $ANTLR start "entryRuleDefaultAssertion"
1332 // InternalSolverLanguageParser.g:542:1: entryRuleDefaultDefinition returns [EObject current=null] : iv_ruleDefaultDefinition= ruleDefaultDefinition EOF ; 1915 // InternalSolverLanguageParser.g:768:1: entryRuleDefaultAssertion returns [EObject current=null] : iv_ruleDefaultAssertion= ruleDefaultAssertion EOF ;
1333 public final EObject entryRuleDefaultDefinition() throws RecognitionException { 1916 public final EObject entryRuleDefaultAssertion() throws RecognitionException {
1334 EObject current = null; 1917 EObject current = null;
1335 1918
1336 EObject iv_ruleDefaultDefinition = null; 1919 EObject iv_ruleDefaultAssertion = null;
1337 1920
1338 1921
1339 try { 1922 try {
1340 // InternalSolverLanguageParser.g:542:58: (iv_ruleDefaultDefinition= ruleDefaultDefinition EOF ) 1923 // InternalSolverLanguageParser.g:768:57: (iv_ruleDefaultAssertion= ruleDefaultAssertion EOF )
1341 // InternalSolverLanguageParser.g:543:2: iv_ruleDefaultDefinition= ruleDefaultDefinition EOF 1924 // InternalSolverLanguageParser.g:769:2: iv_ruleDefaultAssertion= ruleDefaultAssertion EOF
1342 { 1925 {
1343 newCompositeNode(grammarAccess.getDefaultDefinitionRule()); 1926 newCompositeNode(grammarAccess.getDefaultAssertionRule());
1344 pushFollow(FOLLOW_1); 1927 pushFollow(FOLLOW_1);
1345 iv_ruleDefaultDefinition=ruleDefaultDefinition(); 1928 iv_ruleDefaultAssertion=ruleDefaultAssertion();
1346 1929
1347 state._fsp--; 1930 state._fsp--;
1348 1931
1349 current =iv_ruleDefaultDefinition; 1932 current =iv_ruleDefaultAssertion;
1350 match(input,EOF,FOLLOW_2); 1933 match(input,EOF,FOLLOW_2);
1351 1934
1352 } 1935 }
@@ -1361,17 +1944,18 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1361 } 1944 }
1362 return current; 1945 return current;
1363 } 1946 }
1364 // $ANTLR end "entryRuleDefaultDefinition" 1947 // $ANTLR end "entryRuleDefaultAssertion"
1365 1948
1366 1949
1367 // $ANTLR start "ruleDefaultDefinition" 1950 // $ANTLR start "ruleDefaultAssertion"
1368 // InternalSolverLanguageParser.g:549:1: ruleDefaultDefinition returns [EObject current=null] : (otherlv_0= Default ( (lv_head_1_0= ruleCall ) ) otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) ; 1951 // InternalSolverLanguageParser.g:775:1: ruleDefaultAssertion returns [EObject current=null] : (otherlv_0= Default ( (lv_expression_1_0= ruleCall ) ) (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? this_FULL_STOP_4= RULE_FULL_STOP ) ;
1369 public final EObject ruleDefaultDefinition() throws RecognitionException { 1952 public final EObject ruleDefaultAssertion() throws RecognitionException {
1370 EObject current = null; 1953 EObject current = null;
1371 1954
1372 Token otherlv_0=null; 1955 Token otherlv_0=null;
1373 Token otherlv_2=null; 1956 Token otherlv_2=null;
1374 EObject lv_head_1_0 = null; 1957 Token this_FULL_STOP_4=null;
1958 EObject lv_expression_1_0 = null;
1375 1959
1376 EObject lv_range_3_0 = null; 1960 EObject lv_range_3_0 = null;
1377 1961
@@ -1380,38 +1964,38 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1380 enterRule(); 1964 enterRule();
1381 1965
1382 try { 1966 try {
1383 // InternalSolverLanguageParser.g:555:2: ( (otherlv_0= Default ( (lv_head_1_0= ruleCall ) ) otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) ) 1967 // InternalSolverLanguageParser.g:781:2: ( (otherlv_0= Default ( (lv_expression_1_0= ruleCall ) ) (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? this_FULL_STOP_4= RULE_FULL_STOP ) )
1384 // InternalSolverLanguageParser.g:556:2: (otherlv_0= Default ( (lv_head_1_0= ruleCall ) ) otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) 1968 // InternalSolverLanguageParser.g:782:2: (otherlv_0= Default ( (lv_expression_1_0= ruleCall ) ) (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? this_FULL_STOP_4= RULE_FULL_STOP )
1385 { 1969 {
1386 // InternalSolverLanguageParser.g:556:2: (otherlv_0= Default ( (lv_head_1_0= ruleCall ) ) otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) ) 1970 // InternalSolverLanguageParser.g:782:2: (otherlv_0= Default ( (lv_expression_1_0= ruleCall ) ) (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? this_FULL_STOP_4= RULE_FULL_STOP )
1387 // InternalSolverLanguageParser.g:557:3: otherlv_0= Default ( (lv_head_1_0= ruleCall ) ) otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) 1971 // InternalSolverLanguageParser.g:783:3: otherlv_0= Default ( (lv_expression_1_0= ruleCall ) ) (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )? this_FULL_STOP_4= RULE_FULL_STOP
1388 { 1972 {
1389 otherlv_0=(Token)match(input,Default,FOLLOW_8); 1973 otherlv_0=(Token)match(input,Default,FOLLOW_12);
1390 1974
1391 newLeafNode(otherlv_0, grammarAccess.getDefaultDefinitionAccess().getDefaultKeyword_0()); 1975 newLeafNode(otherlv_0, grammarAccess.getDefaultAssertionAccess().getDefaultKeyword_0());
1392 1976
1393 // InternalSolverLanguageParser.g:561:3: ( (lv_head_1_0= ruleCall ) ) 1977 // InternalSolverLanguageParser.g:787:3: ( (lv_expression_1_0= ruleCall ) )
1394 // InternalSolverLanguageParser.g:562:4: (lv_head_1_0= ruleCall ) 1978 // InternalSolverLanguageParser.g:788:4: (lv_expression_1_0= ruleCall )
1395 { 1979 {
1396 // InternalSolverLanguageParser.g:562:4: (lv_head_1_0= ruleCall ) 1980 // InternalSolverLanguageParser.g:788:4: (lv_expression_1_0= ruleCall )
1397 // InternalSolverLanguageParser.g:563:5: lv_head_1_0= ruleCall 1981 // InternalSolverLanguageParser.g:789:5: lv_expression_1_0= ruleCall
1398 { 1982 {
1399 1983
1400 newCompositeNode(grammarAccess.getDefaultDefinitionAccess().getHeadCallParserRuleCall_1_0()); 1984 newCompositeNode(grammarAccess.getDefaultAssertionAccess().getExpressionCallParserRuleCall_1_0());
1401 1985
1402 pushFollow(FOLLOW_12); 1986 pushFollow(FOLLOW_16);
1403 lv_head_1_0=ruleCall(); 1987 lv_expression_1_0=ruleCall();
1404 1988
1405 state._fsp--; 1989 state._fsp--;
1406 1990
1407 1991
1408 if (current==null) { 1992 if (current==null) {
1409 current = createModelElementForParent(grammarAccess.getDefaultDefinitionRule()); 1993 current = createModelElementForParent(grammarAccess.getDefaultAssertionRule());
1410 } 1994 }
1411 set( 1995 set(
1412 current, 1996 current,
1413 "head", 1997 "expression",
1414 lv_head_1_0, 1998 lv_expression_1_0,
1415 "org.eclipse.viatra.solver.language.SolverLanguage.Call"); 1999 "org.eclipse.viatra.solver.language.SolverLanguage.Call");
1416 afterParserOrEnumRuleCall(); 2000 afterParserOrEnumRuleCall();
1417 2001
@@ -1421,41 +2005,62 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1421 2005
1422 } 2006 }
1423 2007
1424 otherlv_2=(Token)match(input,Colon,FOLLOW_6); 2008 // InternalSolverLanguageParser.g:806:3: (otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) ) )?
2009 int alt11=2;
2010 int LA11_0 = input.LA(1);
1425 2011
1426 newLeafNode(otherlv_2, grammarAccess.getDefaultDefinitionAccess().getColonKeyword_2()); 2012 if ( (LA11_0==Colon) ) {
1427 2013 alt11=1;
1428 // InternalSolverLanguageParser.g:584:3: ( (lv_range_3_0= ruleExpression ) ) 2014 }
1429 // InternalSolverLanguageParser.g:585:4: (lv_range_3_0= ruleExpression ) 2015 switch (alt11) {
1430 { 2016 case 1 :
1431 // InternalSolverLanguageParser.g:585:4: (lv_range_3_0= ruleExpression ) 2017 // InternalSolverLanguageParser.g:807:4: otherlv_2= Colon ( (lv_range_3_0= ruleExpression ) )
1432 // InternalSolverLanguageParser.g:586:5: lv_range_3_0= ruleExpression 2018 {
1433 { 2019 otherlv_2=(Token)match(input,Colon,FOLLOW_10);
1434 2020
1435 newCompositeNode(grammarAccess.getDefaultDefinitionAccess().getRangeExpressionParserRuleCall_3_0()); 2021 newLeafNode(otherlv_2, grammarAccess.getDefaultAssertionAccess().getColonKeyword_2_0());
1436 2022
1437 pushFollow(FOLLOW_2); 2023 // InternalSolverLanguageParser.g:811:4: ( (lv_range_3_0= ruleExpression ) )
1438 lv_range_3_0=ruleExpression(); 2024 // InternalSolverLanguageParser.g:812:5: (lv_range_3_0= ruleExpression )
2025 {
2026 // InternalSolverLanguageParser.g:812:5: (lv_range_3_0= ruleExpression )
2027 // InternalSolverLanguageParser.g:813:6: lv_range_3_0= ruleExpression
2028 {
1439 2029
1440 state._fsp--; 2030 newCompositeNode(grammarAccess.getDefaultAssertionAccess().getRangeExpressionParserRuleCall_2_1_0());
2031
2032 pushFollow(FOLLOW_4);
2033 lv_range_3_0=ruleExpression();
1441 2034
2035 state._fsp--;
1442 2036
1443 if (current==null) {
1444 current = createModelElementForParent(grammarAccess.getDefaultDefinitionRule());
1445 }
1446 set(
1447 current,
1448 "range",
1449 lv_range_3_0,
1450 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
1451 afterParserOrEnumRuleCall();
1452
1453 2037
1454 } 2038 if (current==null) {
2039 current = createModelElementForParent(grammarAccess.getDefaultAssertionRule());
2040 }
2041 set(
2042 current,
2043 "range",
2044 lv_range_3_0,
2045 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
2046 afterParserOrEnumRuleCall();
2047
1455 2048
2049 }
2050
2051
2052 }
2053
2054
2055 }
2056 break;
1456 2057
1457 } 2058 }
1458 2059
2060 this_FULL_STOP_4=(Token)match(input,RULE_FULL_STOP,FOLLOW_2);
2061
2062 newLeafNode(this_FULL_STOP_4, grammarAccess.getDefaultAssertionAccess().getFULL_STOPTerminalRuleCall_3());
2063
1459 2064
1460 } 2065 }
1461 2066
@@ -1475,28 +2080,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1475 } 2080 }
1476 return current; 2081 return current;
1477 } 2082 }
1478 // $ANTLR end "ruleDefaultDefinition" 2083 // $ANTLR end "ruleDefaultAssertion"
1479 2084
1480 2085
1481 // $ANTLR start "entryRuleMetricDefinition" 2086 // $ANTLR start "entryRuleFunctionDefinition"
1482 // InternalSolverLanguageParser.g:607:1: entryRuleMetricDefinition returns [EObject current=null] : iv_ruleMetricDefinition= ruleMetricDefinition EOF ; 2087 // InternalSolverLanguageParser.g:839:1: entryRuleFunctionDefinition returns [EObject current=null] : iv_ruleFunctionDefinition= ruleFunctionDefinition EOF ;
1483 public final EObject entryRuleMetricDefinition() throws RecognitionException { 2088 public final EObject entryRuleFunctionDefinition() throws RecognitionException {
1484 EObject current = null; 2089 EObject current = null;
1485 2090
1486 EObject iv_ruleMetricDefinition = null; 2091 EObject iv_ruleFunctionDefinition = null;
1487 2092
1488 2093
1489 try { 2094 try {
1490 // InternalSolverLanguageParser.g:607:57: (iv_ruleMetricDefinition= ruleMetricDefinition EOF ) 2095 // InternalSolverLanguageParser.g:839:59: (iv_ruleFunctionDefinition= ruleFunctionDefinition EOF )
1491 // InternalSolverLanguageParser.g:608:2: iv_ruleMetricDefinition= ruleMetricDefinition EOF 2096 // InternalSolverLanguageParser.g:840:2: iv_ruleFunctionDefinition= ruleFunctionDefinition EOF
1492 { 2097 {
1493 newCompositeNode(grammarAccess.getMetricDefinitionRule()); 2098 newCompositeNode(grammarAccess.getFunctionDefinitionRule());
1494 pushFollow(FOLLOW_1); 2099 pushFollow(FOLLOW_1);
1495 iv_ruleMetricDefinition=ruleMetricDefinition(); 2100 iv_ruleFunctionDefinition=ruleFunctionDefinition();
1496 2101
1497 state._fsp--; 2102 state._fsp--;
1498 2103
1499 current =iv_ruleMetricDefinition; 2104 current =iv_ruleFunctionDefinition;
1500 match(input,EOF,FOLLOW_2); 2105 match(input,EOF,FOLLOW_2);
1501 2106
1502 } 2107 }
@@ -1511,15 +2116,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1511 } 2116 }
1512 return current; 2117 return current;
1513 } 2118 }
1514 // $ANTLR end "entryRuleMetricDefinition" 2119 // $ANTLR end "entryRuleFunctionDefinition"
1515 2120
1516 2121
1517 // $ANTLR start "ruleMetricDefinition" 2122 // $ANTLR start "ruleFunctionDefinition"
1518 // InternalSolverLanguageParser.g:614:1: ruleMetricDefinition returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( (lv_head_1_0= ruleCall ) ) otherlv_2= EqualsSign ( (lv_body_3_0= ruleExpression ) ) ) ; 2123 // InternalSolverLanguageParser.g:846:1: ruleFunctionDefinition returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( (lv_head_1_0= ruleCall ) ) otherlv_2= ColonEqualsSign ( (lv_body_3_0= ruleExpression ) ) this_FULL_STOP_4= RULE_FULL_STOP ) ;
1519 public final EObject ruleMetricDefinition() throws RecognitionException { 2124 public final EObject ruleFunctionDefinition() throws RecognitionException {
1520 EObject current = null; 2125 EObject current = null;
1521 2126
1522 Token otherlv_2=null; 2127 Token otherlv_2=null;
2128 Token this_FULL_STOP_4=null;
1523 EObject lv_head_1_0 = null; 2129 EObject lv_head_1_0 = null;
1524 2130
1525 EObject lv_body_3_0 = null; 2131 EObject lv_body_3_0 = null;
@@ -1529,27 +2135,27 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1529 enterRule(); 2135 enterRule();
1530 2136
1531 try { 2137 try {
1532 // InternalSolverLanguageParser.g:620:2: ( ( ( ( ruleQualifiedName ) ) ( (lv_head_1_0= ruleCall ) ) otherlv_2= EqualsSign ( (lv_body_3_0= ruleExpression ) ) ) ) 2138 // InternalSolverLanguageParser.g:852:2: ( ( ( ( ruleQualifiedName ) ) ( (lv_head_1_0= ruleCall ) ) otherlv_2= ColonEqualsSign ( (lv_body_3_0= ruleExpression ) ) this_FULL_STOP_4= RULE_FULL_STOP ) )
1533 // InternalSolverLanguageParser.g:621:2: ( ( ( ruleQualifiedName ) ) ( (lv_head_1_0= ruleCall ) ) otherlv_2= EqualsSign ( (lv_body_3_0= ruleExpression ) ) ) 2139 // InternalSolverLanguageParser.g:853:2: ( ( ( ruleQualifiedName ) ) ( (lv_head_1_0= ruleCall ) ) otherlv_2= ColonEqualsSign ( (lv_body_3_0= ruleExpression ) ) this_FULL_STOP_4= RULE_FULL_STOP )
1534 { 2140 {
1535 // InternalSolverLanguageParser.g:621:2: ( ( ( ruleQualifiedName ) ) ( (lv_head_1_0= ruleCall ) ) otherlv_2= EqualsSign ( (lv_body_3_0= ruleExpression ) ) ) 2141 // InternalSolverLanguageParser.g:853:2: ( ( ( ruleQualifiedName ) ) ( (lv_head_1_0= ruleCall ) ) otherlv_2= ColonEqualsSign ( (lv_body_3_0= ruleExpression ) ) this_FULL_STOP_4= RULE_FULL_STOP )
1536 // InternalSolverLanguageParser.g:622:3: ( ( ruleQualifiedName ) ) ( (lv_head_1_0= ruleCall ) ) otherlv_2= EqualsSign ( (lv_body_3_0= ruleExpression ) ) 2142 // InternalSolverLanguageParser.g:854:3: ( ( ruleQualifiedName ) ) ( (lv_head_1_0= ruleCall ) ) otherlv_2= ColonEqualsSign ( (lv_body_3_0= ruleExpression ) ) this_FULL_STOP_4= RULE_FULL_STOP
1537 { 2143 {
1538 // InternalSolverLanguageParser.g:622:3: ( ( ruleQualifiedName ) ) 2144 // InternalSolverLanguageParser.g:854:3: ( ( ruleQualifiedName ) )
1539 // InternalSolverLanguageParser.g:623:4: ( ruleQualifiedName ) 2145 // InternalSolverLanguageParser.g:855:4: ( ruleQualifiedName )
1540 { 2146 {
1541 // InternalSolverLanguageParser.g:623:4: ( ruleQualifiedName ) 2147 // InternalSolverLanguageParser.g:855:4: ( ruleQualifiedName )
1542 // InternalSolverLanguageParser.g:624:5: ruleQualifiedName 2148 // InternalSolverLanguageParser.g:856:5: ruleQualifiedName
1543 { 2149 {
1544 2150
1545 if (current==null) { 2151 if (current==null) {
1546 current = createModelElement(grammarAccess.getMetricDefinitionRule()); 2152 current = createModelElement(grammarAccess.getFunctionDefinitionRule());
1547 } 2153 }
1548 2154
1549 2155
1550 newCompositeNode(grammarAccess.getMetricDefinitionAccess().getTypeNamedElementCrossReference_0_0()); 2156 newCompositeNode(grammarAccess.getFunctionDefinitionAccess().getResultTypeSymbolCrossReference_0_0());
1551 2157
1552 pushFollow(FOLLOW_8); 2158 pushFollow(FOLLOW_12);
1553 ruleQualifiedName(); 2159 ruleQualifiedName();
1554 2160
1555 state._fsp--; 2161 state._fsp--;
@@ -1563,23 +2169,23 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1563 2169
1564 } 2170 }
1565 2171
1566 // InternalSolverLanguageParser.g:638:3: ( (lv_head_1_0= ruleCall ) ) 2172 // InternalSolverLanguageParser.g:870:3: ( (lv_head_1_0= ruleCall ) )
1567 // InternalSolverLanguageParser.g:639:4: (lv_head_1_0= ruleCall ) 2173 // InternalSolverLanguageParser.g:871:4: (lv_head_1_0= ruleCall )
1568 { 2174 {
1569 // InternalSolverLanguageParser.g:639:4: (lv_head_1_0= ruleCall ) 2175 // InternalSolverLanguageParser.g:871:4: (lv_head_1_0= ruleCall )
1570 // InternalSolverLanguageParser.g:640:5: lv_head_1_0= ruleCall 2176 // InternalSolverLanguageParser.g:872:5: lv_head_1_0= ruleCall
1571 { 2177 {
1572 2178
1573 newCompositeNode(grammarAccess.getMetricDefinitionAccess().getHeadCallParserRuleCall_1_0()); 2179 newCompositeNode(grammarAccess.getFunctionDefinitionAccess().getHeadCallParserRuleCall_1_0());
1574 2180
1575 pushFollow(FOLLOW_13); 2181 pushFollow(FOLLOW_17);
1576 lv_head_1_0=ruleCall(); 2182 lv_head_1_0=ruleCall();
1577 2183
1578 state._fsp--; 2184 state._fsp--;
1579 2185
1580 2186
1581 if (current==null) { 2187 if (current==null) {
1582 current = createModelElementForParent(grammarAccess.getMetricDefinitionRule()); 2188 current = createModelElementForParent(grammarAccess.getFunctionDefinitionRule());
1583 } 2189 }
1584 set( 2190 set(
1585 current, 2191 current,
@@ -1594,27 +2200,27 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1594 2200
1595 } 2201 }
1596 2202
1597 otherlv_2=(Token)match(input,EqualsSign,FOLLOW_6); 2203 otherlv_2=(Token)match(input,ColonEqualsSign,FOLLOW_10);
1598 2204
1599 newLeafNode(otherlv_2, grammarAccess.getMetricDefinitionAccess().getEqualsSignKeyword_2()); 2205 newLeafNode(otherlv_2, grammarAccess.getFunctionDefinitionAccess().getColonEqualsSignKeyword_2());
1600 2206
1601 // InternalSolverLanguageParser.g:661:3: ( (lv_body_3_0= ruleExpression ) ) 2207 // InternalSolverLanguageParser.g:893:3: ( (lv_body_3_0= ruleExpression ) )
1602 // InternalSolverLanguageParser.g:662:4: (lv_body_3_0= ruleExpression ) 2208 // InternalSolverLanguageParser.g:894:4: (lv_body_3_0= ruleExpression )
1603 { 2209 {
1604 // InternalSolverLanguageParser.g:662:4: (lv_body_3_0= ruleExpression ) 2210 // InternalSolverLanguageParser.g:894:4: (lv_body_3_0= ruleExpression )
1605 // InternalSolverLanguageParser.g:663:5: lv_body_3_0= ruleExpression 2211 // InternalSolverLanguageParser.g:895:5: lv_body_3_0= ruleExpression
1606 { 2212 {
1607 2213
1608 newCompositeNode(grammarAccess.getMetricDefinitionAccess().getBodyExpressionParserRuleCall_3_0()); 2214 newCompositeNode(grammarAccess.getFunctionDefinitionAccess().getBodyExpressionParserRuleCall_3_0());
1609 2215
1610 pushFollow(FOLLOW_2); 2216 pushFollow(FOLLOW_4);
1611 lv_body_3_0=ruleExpression(); 2217 lv_body_3_0=ruleExpression();
1612 2218
1613 state._fsp--; 2219 state._fsp--;
1614 2220
1615 2221
1616 if (current==null) { 2222 if (current==null) {
1617 current = createModelElementForParent(grammarAccess.getMetricDefinitionRule()); 2223 current = createModelElementForParent(grammarAccess.getFunctionDefinitionRule());
1618 } 2224 }
1619 set( 2225 set(
1620 current, 2226 current,
@@ -1629,6 +2235,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1629 2235
1630 } 2236 }
1631 2237
2238 this_FULL_STOP_4=(Token)match(input,RULE_FULL_STOP,FOLLOW_2);
2239
2240 newLeafNode(this_FULL_STOP_4, grammarAccess.getFunctionDefinitionAccess().getFULL_STOPTerminalRuleCall_4());
2241
1632 2242
1633 } 2243 }
1634 2244
@@ -1648,28 +2258,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1648 } 2258 }
1649 return current; 2259 return current;
1650 } 2260 }
1651 // $ANTLR end "ruleMetricDefinition" 2261 // $ANTLR end "ruleFunctionDefinition"
1652 2262
1653 2263
1654 // $ANTLR start "entryRuleExternPredicateDefinition" 2264 // $ANTLR start "entryRuleTypeReference"
1655 // InternalSolverLanguageParser.g:684:1: entryRuleExternPredicateDefinition returns [EObject current=null] : iv_ruleExternPredicateDefinition= ruleExternPredicateDefinition EOF ; 2265 // InternalSolverLanguageParser.g:920:1: entryRuleTypeReference returns [EObject current=null] : iv_ruleTypeReference= ruleTypeReference EOF ;
1656 public final EObject entryRuleExternPredicateDefinition() throws RecognitionException { 2266 public final EObject entryRuleTypeReference() throws RecognitionException {
1657 EObject current = null; 2267 EObject current = null;
1658 2268
1659 EObject iv_ruleExternPredicateDefinition = null; 2269 EObject iv_ruleTypeReference = null;
1660 2270
1661 2271
1662 try { 2272 try {
1663 // InternalSolverLanguageParser.g:684:66: (iv_ruleExternPredicateDefinition= ruleExternPredicateDefinition EOF ) 2273 // InternalSolverLanguageParser.g:920:54: (iv_ruleTypeReference= ruleTypeReference EOF )
1664 // InternalSolverLanguageParser.g:685:2: iv_ruleExternPredicateDefinition= ruleExternPredicateDefinition EOF 2274 // InternalSolverLanguageParser.g:921:2: iv_ruleTypeReference= ruleTypeReference EOF
1665 { 2275 {
1666 newCompositeNode(grammarAccess.getExternPredicateDefinitionRule()); 2276 newCompositeNode(grammarAccess.getTypeReferenceRule());
1667 pushFollow(FOLLOW_1); 2277 pushFollow(FOLLOW_1);
1668 iv_ruleExternPredicateDefinition=ruleExternPredicateDefinition(); 2278 iv_ruleTypeReference=ruleTypeReference();
1669 2279
1670 state._fsp--; 2280 state._fsp--;
1671 2281
1672 current =iv_ruleExternPredicateDefinition; 2282 current =iv_ruleTypeReference;
1673 match(input,EOF,FOLLOW_2); 2283 match(input,EOF,FOLLOW_2);
1674 2284
1675 } 2285 }
@@ -1684,57 +2294,187 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1684 } 2294 }
1685 return current; 2295 return current;
1686 } 2296 }
1687 // $ANTLR end "entryRuleExternPredicateDefinition" 2297 // $ANTLR end "entryRuleTypeReference"
1688 2298
1689 2299
1690 // $ANTLR start "ruleExternPredicateDefinition" 2300 // $ANTLR start "ruleTypeReference"
1691 // InternalSolverLanguageParser.g:691:1: ruleExternPredicateDefinition returns [EObject current=null] : (otherlv_0= Extern ( (lv_name_1_0= ruleQualifiedName ) ) ( (lv_argumentList_2_0= ruleArgumentList ) ) ) ; 2301 // InternalSolverLanguageParser.g:927:1: ruleTypeReference returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( (lv_forceObjectType_1_0= Object ) )? ) ;
1692 public final EObject ruleExternPredicateDefinition() throws RecognitionException { 2302 public final EObject ruleTypeReference() throws RecognitionException {
1693 EObject current = null; 2303 EObject current = null;
1694 2304
1695 Token otherlv_0=null; 2305 Token lv_forceObjectType_1_0=null;
1696 AntlrDatatypeRuleToken lv_name_1_0 = null; 2306
2307
2308 enterRule();
2309
2310 try {
2311 // InternalSolverLanguageParser.g:933:2: ( ( ( ( ruleQualifiedName ) ) ( (lv_forceObjectType_1_0= Object ) )? ) )
2312 // InternalSolverLanguageParser.g:934:2: ( ( ( ruleQualifiedName ) ) ( (lv_forceObjectType_1_0= Object ) )? )
2313 {
2314 // InternalSolverLanguageParser.g:934:2: ( ( ( ruleQualifiedName ) ) ( (lv_forceObjectType_1_0= Object ) )? )
2315 // InternalSolverLanguageParser.g:935:3: ( ( ruleQualifiedName ) ) ( (lv_forceObjectType_1_0= Object ) )?
2316 {
2317 // InternalSolverLanguageParser.g:935:3: ( ( ruleQualifiedName ) )
2318 // InternalSolverLanguageParser.g:936:4: ( ruleQualifiedName )
2319 {
2320 // InternalSolverLanguageParser.g:936:4: ( ruleQualifiedName )
2321 // InternalSolverLanguageParser.g:937:5: ruleQualifiedName
2322 {
2323
2324 if (current==null) {
2325 current = createModelElement(grammarAccess.getTypeReferenceRule());
2326 }
2327
1697 2328
1698 EObject lv_argumentList_2_0 = null; 2329 newCompositeNode(grammarAccess.getTypeReferenceAccess().getTypeSymbolCrossReference_0_0());
2330
2331 pushFollow(FOLLOW_18);
2332 ruleQualifiedName();
2333
2334 state._fsp--;
2335
2336
2337 afterParserOrEnumRuleCall();
2338
2339
2340 }
2341
2342
2343 }
2344
2345 // InternalSolverLanguageParser.g:951:3: ( (lv_forceObjectType_1_0= Object ) )?
2346 int alt12=2;
2347 int LA12_0 = input.LA(1);
2348
2349 if ( (LA12_0==Object) ) {
2350 alt12=1;
2351 }
2352 switch (alt12) {
2353 case 1 :
2354 // InternalSolverLanguageParser.g:952:4: (lv_forceObjectType_1_0= Object )
2355 {
2356 // InternalSolverLanguageParser.g:952:4: (lv_forceObjectType_1_0= Object )
2357 // InternalSolverLanguageParser.g:953:5: lv_forceObjectType_1_0= Object
2358 {
2359 lv_forceObjectType_1_0=(Token)match(input,Object,FOLLOW_2);
2360
2361 newLeafNode(lv_forceObjectType_1_0, grammarAccess.getTypeReferenceAccess().getForceObjectTypeObjectKeyword_1_0());
2362
2363
2364 if (current==null) {
2365 current = createModelElement(grammarAccess.getTypeReferenceRule());
2366 }
2367 setWithLastConsumed(current, "forceObjectType", true, "object");
2368
2369
2370 }
2371
2372
2373 }
2374 break;
2375
2376 }
2377
2378
2379 }
2380
2381
2382 }
2383
2384
2385 leaveRule();
2386
2387 }
2388
2389 catch (RecognitionException re) {
2390 recover(input,re);
2391 appendSkippedTokens();
2392 }
2393 finally {
2394 }
2395 return current;
2396 }
2397 // $ANTLR end "ruleTypeReference"
2398
2399
2400 // $ANTLR start "entryRuleAttribute"
2401 // InternalSolverLanguageParser.g:969:1: entryRuleAttribute returns [EObject current=null] : iv_ruleAttribute= ruleAttribute EOF ;
2402 public final EObject entryRuleAttribute() throws RecognitionException {
2403 EObject current = null;
2404
2405 EObject iv_ruleAttribute = null;
2406
2407
2408 try {
2409 // InternalSolverLanguageParser.g:969:50: (iv_ruleAttribute= ruleAttribute EOF )
2410 // InternalSolverLanguageParser.g:970:2: iv_ruleAttribute= ruleAttribute EOF
2411 {
2412 newCompositeNode(grammarAccess.getAttributeRule());
2413 pushFollow(FOLLOW_1);
2414 iv_ruleAttribute=ruleAttribute();
2415
2416 state._fsp--;
2417
2418 current =iv_ruleAttribute;
2419 match(input,EOF,FOLLOW_2);
2420
2421 }
2422
2423 }
2424
2425 catch (RecognitionException re) {
2426 recover(input,re);
2427 appendSkippedTokens();
2428 }
2429 finally {
2430 }
2431 return current;
2432 }
2433 // $ANTLR end "entryRuleAttribute"
2434
2435
2436 // $ANTLR start "ruleAttribute"
2437 // InternalSolverLanguageParser.g:976:1: ruleAttribute returns [EObject current=null] : ( ( (lv_kind_0_0= ruleAttributeKind ) ) ( ( ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP ) ;
2438 public final EObject ruleAttribute() throws RecognitionException {
2439 EObject current = null;
2440
2441 Token this_FULL_STOP_2=null;
2442 Enumerator lv_kind_0_0 = null;
1699 2443
1700 2444
1701 2445
1702 enterRule(); 2446 enterRule();
1703 2447
1704 try { 2448 try {
1705 // InternalSolverLanguageParser.g:697:2: ( (otherlv_0= Extern ( (lv_name_1_0= ruleQualifiedName ) ) ( (lv_argumentList_2_0= ruleArgumentList ) ) ) ) 2449 // InternalSolverLanguageParser.g:982:2: ( ( ( (lv_kind_0_0= ruleAttributeKind ) ) ( ( ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP ) )
1706 // InternalSolverLanguageParser.g:698:2: (otherlv_0= Extern ( (lv_name_1_0= ruleQualifiedName ) ) ( (lv_argumentList_2_0= ruleArgumentList ) ) ) 2450 // InternalSolverLanguageParser.g:983:2: ( ( (lv_kind_0_0= ruleAttributeKind ) ) ( ( ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP )
1707 { 2451 {
1708 // InternalSolverLanguageParser.g:698:2: (otherlv_0= Extern ( (lv_name_1_0= ruleQualifiedName ) ) ( (lv_argumentList_2_0= ruleArgumentList ) ) ) 2452 // InternalSolverLanguageParser.g:983:2: ( ( (lv_kind_0_0= ruleAttributeKind ) ) ( ( ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP )
1709 // InternalSolverLanguageParser.g:699:3: otherlv_0= Extern ( (lv_name_1_0= ruleQualifiedName ) ) ( (lv_argumentList_2_0= ruleArgumentList ) ) 2453 // InternalSolverLanguageParser.g:984:3: ( (lv_kind_0_0= ruleAttributeKind ) ) ( ( ruleQualifiedName ) ) this_FULL_STOP_2= RULE_FULL_STOP
1710 { 2454 {
1711 otherlv_0=(Token)match(input,Extern,FOLLOW_8); 2455 // InternalSolverLanguageParser.g:984:3: ( (lv_kind_0_0= ruleAttributeKind ) )
1712 2456 // InternalSolverLanguageParser.g:985:4: (lv_kind_0_0= ruleAttributeKind )
1713 newLeafNode(otherlv_0, grammarAccess.getExternPredicateDefinitionAccess().getExternKeyword_0());
1714
1715 // InternalSolverLanguageParser.g:703:3: ( (lv_name_1_0= ruleQualifiedName ) )
1716 // InternalSolverLanguageParser.g:704:4: (lv_name_1_0= ruleQualifiedName )
1717 { 2457 {
1718 // InternalSolverLanguageParser.g:704:4: (lv_name_1_0= ruleQualifiedName ) 2458 // InternalSolverLanguageParser.g:985:4: (lv_kind_0_0= ruleAttributeKind )
1719 // InternalSolverLanguageParser.g:705:5: lv_name_1_0= ruleQualifiedName 2459 // InternalSolverLanguageParser.g:986:5: lv_kind_0_0= ruleAttributeKind
1720 { 2460 {
1721 2461
1722 newCompositeNode(grammarAccess.getExternPredicateDefinitionAccess().getNameQualifiedNameParserRuleCall_1_0()); 2462 newCompositeNode(grammarAccess.getAttributeAccess().getKindAttributeKindEnumRuleCall_0_0());
1723 2463
1724 pushFollow(FOLLOW_11); 2464 pushFollow(FOLLOW_3);
1725 lv_name_1_0=ruleQualifiedName(); 2465 lv_kind_0_0=ruleAttributeKind();
1726 2466
1727 state._fsp--; 2467 state._fsp--;
1728 2468
1729 2469
1730 if (current==null) { 2470 if (current==null) {
1731 current = createModelElementForParent(grammarAccess.getExternPredicateDefinitionRule()); 2471 current = createModelElementForParent(grammarAccess.getAttributeRule());
1732 } 2472 }
1733 set( 2473 set(
1734 current, 2474 current,
1735 "name", 2475 "kind",
1736 lv_name_1_0, 2476 lv_kind_0_0,
1737 "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); 2477 "org.eclipse.viatra.solver.language.SolverLanguage.AttributeKind");
1738 afterParserOrEnumRuleCall(); 2478 afterParserOrEnumRuleCall();
1739 2479
1740 2480
@@ -1743,29 +2483,26 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1743 2483
1744 } 2484 }
1745 2485
1746 // InternalSolverLanguageParser.g:722:3: ( (lv_argumentList_2_0= ruleArgumentList ) ) 2486 // InternalSolverLanguageParser.g:1003:3: ( ( ruleQualifiedName ) )
1747 // InternalSolverLanguageParser.g:723:4: (lv_argumentList_2_0= ruleArgumentList ) 2487 // InternalSolverLanguageParser.g:1004:4: ( ruleQualifiedName )
1748 { 2488 {
1749 // InternalSolverLanguageParser.g:723:4: (lv_argumentList_2_0= ruleArgumentList ) 2489 // InternalSolverLanguageParser.g:1004:4: ( ruleQualifiedName )
1750 // InternalSolverLanguageParser.g:724:5: lv_argumentList_2_0= ruleArgumentList 2490 // InternalSolverLanguageParser.g:1005:5: ruleQualifiedName
1751 { 2491 {
1752 2492
1753 newCompositeNode(grammarAccess.getExternPredicateDefinitionAccess().getArgumentListArgumentListParserRuleCall_2_0()); 2493 if (current==null) {
2494 current = createModelElement(grammarAccess.getAttributeRule());
2495 }
1754 2496
1755 pushFollow(FOLLOW_2); 2497
1756 lv_argumentList_2_0=ruleArgumentList(); 2498 newCompositeNode(grammarAccess.getAttributeAccess().getTargetSymbolCrossReference_1_0());
2499
2500 pushFollow(FOLLOW_4);
2501 ruleQualifiedName();
1757 2502
1758 state._fsp--; 2503 state._fsp--;
1759 2504
1760 2505
1761 if (current==null) {
1762 current = createModelElementForParent(grammarAccess.getExternPredicateDefinitionRule());
1763 }
1764 set(
1765 current,
1766 "argumentList",
1767 lv_argumentList_2_0,
1768 "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList");
1769 afterParserOrEnumRuleCall(); 2506 afterParserOrEnumRuleCall();
1770 2507
1771 2508
@@ -1774,6 +2511,165 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1774 2511
1775 } 2512 }
1776 2513
2514 this_FULL_STOP_2=(Token)match(input,RULE_FULL_STOP,FOLLOW_2);
2515
2516 newLeafNode(this_FULL_STOP_2, grammarAccess.getAttributeAccess().getFULL_STOPTerminalRuleCall_2());
2517
2518
2519 }
2520
2521
2522 }
2523
2524
2525 leaveRule();
2526
2527 }
2528
2529 catch (RecognitionException re) {
2530 recover(input,re);
2531 appendSkippedTokens();
2532 }
2533 finally {
2534 }
2535 return current;
2536 }
2537 // $ANTLR end "ruleAttribute"
2538
2539
2540 // $ANTLR start "entryRuleExternDeclaration"
2541 // InternalSolverLanguageParser.g:1027:1: entryRuleExternDeclaration returns [EObject current=null] : iv_ruleExternDeclaration= ruleExternDeclaration EOF ;
2542 public final EObject entryRuleExternDeclaration() throws RecognitionException {
2543 EObject current = null;
2544
2545 EObject iv_ruleExternDeclaration = null;
2546
2547
2548 try {
2549 // InternalSolverLanguageParser.g:1027:58: (iv_ruleExternDeclaration= ruleExternDeclaration EOF )
2550 // InternalSolverLanguageParser.g:1028:2: iv_ruleExternDeclaration= ruleExternDeclaration EOF
2551 {
2552 newCompositeNode(grammarAccess.getExternDeclarationRule());
2553 pushFollow(FOLLOW_1);
2554 iv_ruleExternDeclaration=ruleExternDeclaration();
2555
2556 state._fsp--;
2557
2558 current =iv_ruleExternDeclaration;
2559 match(input,EOF,FOLLOW_2);
2560
2561 }
2562
2563 }
2564
2565 catch (RecognitionException re) {
2566 recover(input,re);
2567 appendSkippedTokens();
2568 }
2569 finally {
2570 }
2571 return current;
2572 }
2573 // $ANTLR end "entryRuleExternDeclaration"
2574
2575
2576 // $ANTLR start "ruleExternDeclaration"
2577 // InternalSolverLanguageParser.g:1034:1: ruleExternDeclaration returns [EObject current=null] : (this_ExternPredicateDeclaration_0= ruleExternPredicateDeclaration | this_ExternFunctionDeclaration_1= ruleExternFunctionDeclaration | this_ExternAggregationOperatorDeclaration_2= ruleExternAggregationOperatorDeclaration | this_ExternDatatypeDeclaration_3= ruleExternDatatypeDeclaration ) ;
2578 public final EObject ruleExternDeclaration() throws RecognitionException {
2579 EObject current = null;
2580
2581 EObject this_ExternPredicateDeclaration_0 = null;
2582
2583 EObject this_ExternFunctionDeclaration_1 = null;
2584
2585 EObject this_ExternAggregationOperatorDeclaration_2 = null;
2586
2587 EObject this_ExternDatatypeDeclaration_3 = null;
2588
2589
2590
2591 enterRule();
2592
2593 try {
2594 // InternalSolverLanguageParser.g:1040:2: ( (this_ExternPredicateDeclaration_0= ruleExternPredicateDeclaration | this_ExternFunctionDeclaration_1= ruleExternFunctionDeclaration | this_ExternAggregationOperatorDeclaration_2= ruleExternAggregationOperatorDeclaration | this_ExternDatatypeDeclaration_3= ruleExternDatatypeDeclaration ) )
2595 // InternalSolverLanguageParser.g:1041:2: (this_ExternPredicateDeclaration_0= ruleExternPredicateDeclaration | this_ExternFunctionDeclaration_1= ruleExternFunctionDeclaration | this_ExternAggregationOperatorDeclaration_2= ruleExternAggregationOperatorDeclaration | this_ExternDatatypeDeclaration_3= ruleExternDatatypeDeclaration )
2596 {
2597 // InternalSolverLanguageParser.g:1041:2: (this_ExternPredicateDeclaration_0= ruleExternPredicateDeclaration | this_ExternFunctionDeclaration_1= ruleExternFunctionDeclaration | this_ExternAggregationOperatorDeclaration_2= ruleExternAggregationOperatorDeclaration | this_ExternDatatypeDeclaration_3= ruleExternDatatypeDeclaration )
2598 int alt13=4;
2599 alt13 = dfa13.predict(input);
2600 switch (alt13) {
2601 case 1 :
2602 // InternalSolverLanguageParser.g:1042:3: this_ExternPredicateDeclaration_0= ruleExternPredicateDeclaration
2603 {
2604
2605 newCompositeNode(grammarAccess.getExternDeclarationAccess().getExternPredicateDeclarationParserRuleCall_0());
2606
2607 pushFollow(FOLLOW_2);
2608 this_ExternPredicateDeclaration_0=ruleExternPredicateDeclaration();
2609
2610 state._fsp--;
2611
2612
2613 current = this_ExternPredicateDeclaration_0;
2614 afterParserOrEnumRuleCall();
2615
2616
2617 }
2618 break;
2619 case 2 :
2620 // InternalSolverLanguageParser.g:1051:3: this_ExternFunctionDeclaration_1= ruleExternFunctionDeclaration
2621 {
2622
2623 newCompositeNode(grammarAccess.getExternDeclarationAccess().getExternFunctionDeclarationParserRuleCall_1());
2624
2625 pushFollow(FOLLOW_2);
2626 this_ExternFunctionDeclaration_1=ruleExternFunctionDeclaration();
2627
2628 state._fsp--;
2629
2630
2631 current = this_ExternFunctionDeclaration_1;
2632 afterParserOrEnumRuleCall();
2633
2634
2635 }
2636 break;
2637 case 3 :
2638 // InternalSolverLanguageParser.g:1060:3: this_ExternAggregationOperatorDeclaration_2= ruleExternAggregationOperatorDeclaration
2639 {
2640
2641 newCompositeNode(grammarAccess.getExternDeclarationAccess().getExternAggregationOperatorDeclarationParserRuleCall_2());
2642
2643 pushFollow(FOLLOW_2);
2644 this_ExternAggregationOperatorDeclaration_2=ruleExternAggregationOperatorDeclaration();
2645
2646 state._fsp--;
2647
2648
2649 current = this_ExternAggregationOperatorDeclaration_2;
2650 afterParserOrEnumRuleCall();
2651
2652
2653 }
2654 break;
2655 case 4 :
2656 // InternalSolverLanguageParser.g:1069:3: this_ExternDatatypeDeclaration_3= ruleExternDatatypeDeclaration
2657 {
2658
2659 newCompositeNode(grammarAccess.getExternDeclarationAccess().getExternDatatypeDeclarationParserRuleCall_3());
2660
2661 pushFollow(FOLLOW_2);
2662 this_ExternDatatypeDeclaration_3=ruleExternDatatypeDeclaration();
2663
2664 state._fsp--;
2665
2666
2667 current = this_ExternDatatypeDeclaration_3;
2668 afterParserOrEnumRuleCall();
2669
2670
2671 }
2672 break;
1777 2673
1778 } 2674 }
1779 2675
@@ -1793,28 +2689,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1793 } 2689 }
1794 return current; 2690 return current;
1795 } 2691 }
1796 // $ANTLR end "ruleExternPredicateDefinition" 2692 // $ANTLR end "ruleExternDeclaration"
1797 2693
1798 2694
1799 // $ANTLR start "entryRuleExternMetricDefinition" 2695 // $ANTLR start "entryRuleExternPredicateDeclaration"
1800 // InternalSolverLanguageParser.g:745:1: entryRuleExternMetricDefinition returns [EObject current=null] : iv_ruleExternMetricDefinition= ruleExternMetricDefinition EOF ; 2696 // InternalSolverLanguageParser.g:1081:1: entryRuleExternPredicateDeclaration returns [EObject current=null] : iv_ruleExternPredicateDeclaration= ruleExternPredicateDeclaration EOF ;
1801 public final EObject entryRuleExternMetricDefinition() throws RecognitionException { 2697 public final EObject entryRuleExternPredicateDeclaration() throws RecognitionException {
1802 EObject current = null; 2698 EObject current = null;
1803 2699
1804 EObject iv_ruleExternMetricDefinition = null; 2700 EObject iv_ruleExternPredicateDeclaration = null;
1805 2701
1806 2702
1807 try { 2703 try {
1808 // InternalSolverLanguageParser.g:745:63: (iv_ruleExternMetricDefinition= ruleExternMetricDefinition EOF ) 2704 // InternalSolverLanguageParser.g:1081:67: (iv_ruleExternPredicateDeclaration= ruleExternPredicateDeclaration EOF )
1809 // InternalSolverLanguageParser.g:746:2: iv_ruleExternMetricDefinition= ruleExternMetricDefinition EOF 2705 // InternalSolverLanguageParser.g:1082:2: iv_ruleExternPredicateDeclaration= ruleExternPredicateDeclaration EOF
1810 { 2706 {
1811 newCompositeNode(grammarAccess.getExternMetricDefinitionRule()); 2707 newCompositeNode(grammarAccess.getExternPredicateDeclarationRule());
1812 pushFollow(FOLLOW_1); 2708 pushFollow(FOLLOW_1);
1813 iv_ruleExternMetricDefinition=ruleExternMetricDefinition(); 2709 iv_ruleExternPredicateDeclaration=ruleExternPredicateDeclaration();
1814 2710
1815 state._fsp--; 2711 state._fsp--;
1816 2712
1817 current =iv_ruleExternMetricDefinition; 2713 current =iv_ruleExternPredicateDeclaration;
1818 match(input,EOF,FOLLOW_2); 2714 match(input,EOF,FOLLOW_2);
1819 2715
1820 } 2716 }
@@ -1829,84 +2725,220 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1829 } 2725 }
1830 return current; 2726 return current;
1831 } 2727 }
1832 // $ANTLR end "entryRuleExternMetricDefinition" 2728 // $ANTLR end "entryRuleExternPredicateDeclaration"
1833 2729
1834 2730
1835 // $ANTLR start "ruleExternMetricDefinition" 2731 // $ANTLR start "ruleExternPredicateDeclaration"
1836 // InternalSolverLanguageParser.g:752:1: ruleExternMetricDefinition returns [EObject current=null] : (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) ( (lv_argumentList_3_0= ruleArgumentList ) ) ) ; 2732 // InternalSolverLanguageParser.g:1088:1: ruleExternPredicateDeclaration returns [EObject current=null] : (otherlv_0= Extern ( ( ( ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* ) ) ) ( (lv_name_4_0= ruleQualifiedName ) ) ( (lv_argumentList_5_0= ruleArgumentList ) ) this_FULL_STOP_6= RULE_FULL_STOP ) ;
1837 public final EObject ruleExternMetricDefinition() throws RecognitionException { 2733 public final EObject ruleExternPredicateDeclaration() throws RecognitionException {
1838 EObject current = null; 2734 EObject current = null;
1839 2735
1840 Token otherlv_0=null; 2736 Token otherlv_0=null;
1841 AntlrDatatypeRuleToken lv_name_2_0 = null; 2737 Token lv_functional_2_0=null;
2738 Token lv_error_3_0=null;
2739 Token this_FULL_STOP_6=null;
2740 AntlrDatatypeRuleToken lv_name_4_0 = null;
1842 2741
1843 EObject lv_argumentList_3_0 = null; 2742 EObject lv_argumentList_5_0 = null;
1844 2743
1845 2744
1846 2745
1847 enterRule(); 2746 enterRule();
1848 2747
1849 try { 2748 try {
1850 // InternalSolverLanguageParser.g:758:2: ( (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) ( (lv_argumentList_3_0= ruleArgumentList ) ) ) ) 2749 // InternalSolverLanguageParser.g:1094:2: ( (otherlv_0= Extern ( ( ( ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* ) ) ) ( (lv_name_4_0= ruleQualifiedName ) ) ( (lv_argumentList_5_0= ruleArgumentList ) ) this_FULL_STOP_6= RULE_FULL_STOP ) )
1851 // InternalSolverLanguageParser.g:759:2: (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) ( (lv_argumentList_3_0= ruleArgumentList ) ) ) 2750 // InternalSolverLanguageParser.g:1095:2: (otherlv_0= Extern ( ( ( ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* ) ) ) ( (lv_name_4_0= ruleQualifiedName ) ) ( (lv_argumentList_5_0= ruleArgumentList ) ) this_FULL_STOP_6= RULE_FULL_STOP )
1852 { 2751 {
1853 // InternalSolverLanguageParser.g:759:2: (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) ( (lv_argumentList_3_0= ruleArgumentList ) ) ) 2752 // InternalSolverLanguageParser.g:1095:2: (otherlv_0= Extern ( ( ( ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* ) ) ) ( (lv_name_4_0= ruleQualifiedName ) ) ( (lv_argumentList_5_0= ruleArgumentList ) ) this_FULL_STOP_6= RULE_FULL_STOP )
1854 // InternalSolverLanguageParser.g:760:3: otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) ( (lv_argumentList_3_0= ruleArgumentList ) ) 2753 // InternalSolverLanguageParser.g:1096:3: otherlv_0= Extern ( ( ( ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* ) ) ) ( (lv_name_4_0= ruleQualifiedName ) ) ( (lv_argumentList_5_0= ruleArgumentList ) ) this_FULL_STOP_6= RULE_FULL_STOP
1855 { 2754 {
1856 otherlv_0=(Token)match(input,Extern,FOLLOW_8); 2755 otherlv_0=(Token)match(input,Extern,FOLLOW_19);
1857 2756
1858 newLeafNode(otherlv_0, grammarAccess.getExternMetricDefinitionAccess().getExternKeyword_0()); 2757 newLeafNode(otherlv_0, grammarAccess.getExternPredicateDeclarationAccess().getExternKeyword_0());
1859 2758
1860 // InternalSolverLanguageParser.g:764:3: ( ( ruleQualifiedName ) ) 2759 // InternalSolverLanguageParser.g:1100:3: ( ( ( ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* ) ) )
1861 // InternalSolverLanguageParser.g:765:4: ( ruleQualifiedName ) 2760 // InternalSolverLanguageParser.g:1101:4: ( ( ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* ) )
1862 { 2761 {
1863 // InternalSolverLanguageParser.g:765:4: ( ruleQualifiedName ) 2762 // InternalSolverLanguageParser.g:1101:4: ( ( ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* ) )
1864 // InternalSolverLanguageParser.g:766:5: ruleQualifiedName 2763 // InternalSolverLanguageParser.g:1102:5: ( ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* )
1865 { 2764 {
1866 2765
1867 if (current==null) { 2766 getUnorderedGroupHelper().enter(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1());
1868 current = createModelElement(grammarAccess.getExternMetricDefinitionRule());
1869 }
1870 2767
2768 // InternalSolverLanguageParser.g:1105:5: ( ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )* )
2769 // InternalSolverLanguageParser.g:1106:6: ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )*
2770 {
2771 // InternalSolverLanguageParser.g:1106:6: ( ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) ) )*
2772 loop14:
2773 do {
2774 int alt14=3;
2775 int LA14_0 = input.LA(1);
1871 2776
1872 newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getTypeNamedElementCrossReference_1_0()); 2777 if ( LA14_0 == Functional && getUnorderedGroupHelper().canSelect(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 0) ) {
1873 2778 alt14=1;
1874 pushFollow(FOLLOW_8); 2779 }
1875 ruleQualifiedName(); 2780 else if ( LA14_0 == Error && getUnorderedGroupHelper().canSelect(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 1) ) {
2781 alt14=2;
2782 }
1876 2783
1877 state._fsp--;
1878 2784
2785 switch (alt14) {
2786 case 1 :
2787 // InternalSolverLanguageParser.g:1107:4: ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) )
2788 {
2789 // InternalSolverLanguageParser.g:1107:4: ({...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) ) )
2790 // InternalSolverLanguageParser.g:1108:5: {...}? => ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) )
2791 {
2792 if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 0) ) {
2793 throw new FailedPredicateException(input, "ruleExternPredicateDeclaration", "getUnorderedGroupHelper().canSelect(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 0)");
2794 }
2795 // InternalSolverLanguageParser.g:1108:123: ( ({...}? => ( (lv_functional_2_0= Functional ) ) ) )
2796 // InternalSolverLanguageParser.g:1109:6: ({...}? => ( (lv_functional_2_0= Functional ) ) )
2797 {
2798
2799 getUnorderedGroupHelper().select(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 0);
2800
2801 // InternalSolverLanguageParser.g:1112:9: ({...}? => ( (lv_functional_2_0= Functional ) ) )
2802 // InternalSolverLanguageParser.g:1112:10: {...}? => ( (lv_functional_2_0= Functional ) )
2803 {
2804 if ( !((true)) ) {
2805 throw new FailedPredicateException(input, "ruleExternPredicateDeclaration", "true");
2806 }
2807 // InternalSolverLanguageParser.g:1112:19: ( (lv_functional_2_0= Functional ) )
2808 // InternalSolverLanguageParser.g:1112:20: (lv_functional_2_0= Functional )
2809 {
2810 // InternalSolverLanguageParser.g:1112:20: (lv_functional_2_0= Functional )
2811 // InternalSolverLanguageParser.g:1113:10: lv_functional_2_0= Functional
2812 {
2813 lv_functional_2_0=(Token)match(input,Functional,FOLLOW_19);
2814
2815 newLeafNode(lv_functional_2_0, grammarAccess.getExternPredicateDeclarationAccess().getFunctionalFunctionalKeyword_1_0_0());
2816
2817
2818 if (current==null) {
2819 current = createModelElement(grammarAccess.getExternPredicateDeclarationRule());
2820 }
2821 setWithLastConsumed(current, "functional", true, "functional");
2822
2823
2824 }
2825
2826
2827 }
2828
2829
2830 }
2831
2832
2833 getUnorderedGroupHelper().returnFromSelection(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1());
2834
2835
2836 }
2837
2838
2839 }
2840
2841
2842 }
2843 break;
2844 case 2 :
2845 // InternalSolverLanguageParser.g:1130:4: ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) )
2846 {
2847 // InternalSolverLanguageParser.g:1130:4: ({...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) ) )
2848 // InternalSolverLanguageParser.g:1131:5: {...}? => ( ({...}? => ( (lv_error_3_0= Error ) ) ) )
2849 {
2850 if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 1) ) {
2851 throw new FailedPredicateException(input, "ruleExternPredicateDeclaration", "getUnorderedGroupHelper().canSelect(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 1)");
2852 }
2853 // InternalSolverLanguageParser.g:1131:123: ( ({...}? => ( (lv_error_3_0= Error ) ) ) )
2854 // InternalSolverLanguageParser.g:1132:6: ({...}? => ( (lv_error_3_0= Error ) ) )
2855 {
2856
2857 getUnorderedGroupHelper().select(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1(), 1);
2858
2859 // InternalSolverLanguageParser.g:1135:9: ({...}? => ( (lv_error_3_0= Error ) ) )
2860 // InternalSolverLanguageParser.g:1135:10: {...}? => ( (lv_error_3_0= Error ) )
2861 {
2862 if ( !((true)) ) {
2863 throw new FailedPredicateException(input, "ruleExternPredicateDeclaration", "true");
2864 }
2865 // InternalSolverLanguageParser.g:1135:19: ( (lv_error_3_0= Error ) )
2866 // InternalSolverLanguageParser.g:1135:20: (lv_error_3_0= Error )
2867 {
2868 // InternalSolverLanguageParser.g:1135:20: (lv_error_3_0= Error )
2869 // InternalSolverLanguageParser.g:1136:10: lv_error_3_0= Error
2870 {
2871 lv_error_3_0=(Token)match(input,Error,FOLLOW_19);
2872
2873 newLeafNode(lv_error_3_0, grammarAccess.getExternPredicateDeclarationAccess().getErrorErrorKeyword_1_1_0());
2874
2875
2876 if (current==null) {
2877 current = createModelElement(grammarAccess.getExternPredicateDeclarationRule());
2878 }
2879 setWithLastConsumed(current, "error", true, "error");
2880
2881
2882 }
2883
2884
2885 }
2886
2887
2888 }
2889
2890
2891 getUnorderedGroupHelper().returnFromSelection(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1());
2892
2893
2894 }
2895
2896
2897 }
2898
2899
2900 }
2901 break;
2902
2903 default :
2904 break loop14;
2905 }
2906 } while (true);
1879 2907
1880 afterParserOrEnumRuleCall();
1881
1882 2908
1883 } 2909 }
1884 2910
1885 2911
1886 } 2912 }
1887 2913
1888 // InternalSolverLanguageParser.g:780:3: ( (lv_name_2_0= ruleQualifiedName ) ) 2914
1889 // InternalSolverLanguageParser.g:781:4: (lv_name_2_0= ruleQualifiedName ) 2915 getUnorderedGroupHelper().leave(grammarAccess.getExternPredicateDeclarationAccess().getUnorderedGroup_1());
2916
2917
2918 }
2919
2920 // InternalSolverLanguageParser.g:1160:3: ( (lv_name_4_0= ruleQualifiedName ) )
2921 // InternalSolverLanguageParser.g:1161:4: (lv_name_4_0= ruleQualifiedName )
1890 { 2922 {
1891 // InternalSolverLanguageParser.g:781:4: (lv_name_2_0= ruleQualifiedName ) 2923 // InternalSolverLanguageParser.g:1161:4: (lv_name_4_0= ruleQualifiedName )
1892 // InternalSolverLanguageParser.g:782:5: lv_name_2_0= ruleQualifiedName 2924 // InternalSolverLanguageParser.g:1162:5: lv_name_4_0= ruleQualifiedName
1893 { 2925 {
1894 2926
1895 newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getNameQualifiedNameParserRuleCall_2_0()); 2927 newCompositeNode(grammarAccess.getExternPredicateDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0());
1896 2928
1897 pushFollow(FOLLOW_11); 2929 pushFollow(FOLLOW_15);
1898 lv_name_2_0=ruleQualifiedName(); 2930 lv_name_4_0=ruleQualifiedName();
1899 2931
1900 state._fsp--; 2932 state._fsp--;
1901 2933
1902 2934
1903 if (current==null) { 2935 if (current==null) {
1904 current = createModelElementForParent(grammarAccess.getExternMetricDefinitionRule()); 2936 current = createModelElementForParent(grammarAccess.getExternPredicateDeclarationRule());
1905 } 2937 }
1906 set( 2938 set(
1907 current, 2939 current,
1908 "name", 2940 "name",
1909 lv_name_2_0, 2941 lv_name_4_0,
1910 "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); 2942 "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName");
1911 afterParserOrEnumRuleCall(); 2943 afterParserOrEnumRuleCall();
1912 2944
@@ -1916,28 +2948,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1916 2948
1917 } 2949 }
1918 2950
1919 // InternalSolverLanguageParser.g:799:3: ( (lv_argumentList_3_0= ruleArgumentList ) ) 2951 // InternalSolverLanguageParser.g:1179:3: ( (lv_argumentList_5_0= ruleArgumentList ) )
1920 // InternalSolverLanguageParser.g:800:4: (lv_argumentList_3_0= ruleArgumentList ) 2952 // InternalSolverLanguageParser.g:1180:4: (lv_argumentList_5_0= ruleArgumentList )
1921 { 2953 {
1922 // InternalSolverLanguageParser.g:800:4: (lv_argumentList_3_0= ruleArgumentList ) 2954 // InternalSolverLanguageParser.g:1180:4: (lv_argumentList_5_0= ruleArgumentList )
1923 // InternalSolverLanguageParser.g:801:5: lv_argumentList_3_0= ruleArgumentList 2955 // InternalSolverLanguageParser.g:1181:5: lv_argumentList_5_0= ruleArgumentList
1924 { 2956 {
1925 2957
1926 newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getArgumentListArgumentListParserRuleCall_3_0()); 2958 newCompositeNode(grammarAccess.getExternPredicateDeclarationAccess().getArgumentListArgumentListParserRuleCall_3_0());
1927 2959
1928 pushFollow(FOLLOW_2); 2960 pushFollow(FOLLOW_4);
1929 lv_argumentList_3_0=ruleArgumentList(); 2961 lv_argumentList_5_0=ruleArgumentList();
1930 2962
1931 state._fsp--; 2963 state._fsp--;
1932 2964
1933 2965
1934 if (current==null) { 2966 if (current==null) {
1935 current = createModelElementForParent(grammarAccess.getExternMetricDefinitionRule()); 2967 current = createModelElementForParent(grammarAccess.getExternPredicateDeclarationRule());
1936 } 2968 }
1937 set( 2969 set(
1938 current, 2970 current,
1939 "argumentList", 2971 "argumentList",
1940 lv_argumentList_3_0, 2972 lv_argumentList_5_0,
1941 "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); 2973 "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList");
1942 afterParserOrEnumRuleCall(); 2974 afterParserOrEnumRuleCall();
1943 2975
@@ -1947,6 +2979,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1947 2979
1948 } 2980 }
1949 2981
2982 this_FULL_STOP_6=(Token)match(input,RULE_FULL_STOP,FOLLOW_2);
2983
2984 newLeafNode(this_FULL_STOP_6, grammarAccess.getExternPredicateDeclarationAccess().getFULL_STOPTerminalRuleCall_4());
2985
1950 2986
1951 } 2987 }
1952 2988
@@ -1966,28 +3002,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1966 } 3002 }
1967 return current; 3003 return current;
1968 } 3004 }
1969 // $ANTLR end "ruleExternMetricDefinition" 3005 // $ANTLR end "ruleExternPredicateDeclaration"
1970 3006
1971 3007
1972 // $ANTLR start "entryRuleExternAggregatorDefinition" 3008 // $ANTLR start "entryRuleExternFunctionDeclaration"
1973 // InternalSolverLanguageParser.g:822:1: entryRuleExternAggregatorDefinition returns [EObject current=null] : iv_ruleExternAggregatorDefinition= ruleExternAggregatorDefinition EOF ; 3009 // InternalSolverLanguageParser.g:1206:1: entryRuleExternFunctionDeclaration returns [EObject current=null] : iv_ruleExternFunctionDeclaration= ruleExternFunctionDeclaration EOF ;
1974 public final EObject entryRuleExternAggregatorDefinition() throws RecognitionException { 3010 public final EObject entryRuleExternFunctionDeclaration() throws RecognitionException {
1975 EObject current = null; 3011 EObject current = null;
1976 3012
1977 EObject iv_ruleExternAggregatorDefinition = null; 3013 EObject iv_ruleExternFunctionDeclaration = null;
1978 3014
1979 3015
1980 try { 3016 try {
1981 // InternalSolverLanguageParser.g:822:67: (iv_ruleExternAggregatorDefinition= ruleExternAggregatorDefinition EOF ) 3017 // InternalSolverLanguageParser.g:1206:66: (iv_ruleExternFunctionDeclaration= ruleExternFunctionDeclaration EOF )
1982 // InternalSolverLanguageParser.g:823:2: iv_ruleExternAggregatorDefinition= ruleExternAggregatorDefinition EOF 3018 // InternalSolverLanguageParser.g:1207:2: iv_ruleExternFunctionDeclaration= ruleExternFunctionDeclaration EOF
1983 { 3019 {
1984 newCompositeNode(grammarAccess.getExternAggregatorDefinitionRule()); 3020 newCompositeNode(grammarAccess.getExternFunctionDeclarationRule());
1985 pushFollow(FOLLOW_1); 3021 pushFollow(FOLLOW_1);
1986 iv_ruleExternAggregatorDefinition=ruleExternAggregatorDefinition(); 3022 iv_ruleExternFunctionDeclaration=ruleExternFunctionDeclaration();
1987 3023
1988 state._fsp--; 3024 state._fsp--;
1989 3025
1990 current =iv_ruleExternAggregatorDefinition; 3026 current =iv_ruleExternFunctionDeclaration;
1991 match(input,EOF,FOLLOW_2); 3027 match(input,EOF,FOLLOW_2);
1992 3028
1993 } 3029 }
@@ -2002,50 +3038,50 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2002 } 3038 }
2003 return current; 3039 return current;
2004 } 3040 }
2005 // $ANTLR end "entryRuleExternAggregatorDefinition" 3041 // $ANTLR end "entryRuleExternFunctionDeclaration"
2006 3042
2007 3043
2008 // $ANTLR start "ruleExternAggregatorDefinition" 3044 // $ANTLR start "ruleExternFunctionDeclaration"
2009 // InternalSolverLanguageParser.g:829:1: ruleExternAggregatorDefinition returns [EObject current=null] : (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= LeftCurlyBracket ( ( ruleQualifiedName ) ) otherlv_5= FullStopFullStopFullStop otherlv_6= RightCurlyBracket ) ; 3045 // InternalSolverLanguageParser.g:1213:1: ruleExternFunctionDeclaration returns [EObject current=null] : (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) ( (lv_argumentList_3_0= ruleArgumentList ) ) this_FULL_STOP_4= RULE_FULL_STOP ) ;
2010 public final EObject ruleExternAggregatorDefinition() throws RecognitionException { 3046 public final EObject ruleExternFunctionDeclaration() throws RecognitionException {
2011 EObject current = null; 3047 EObject current = null;
2012 3048
2013 Token otherlv_0=null; 3049 Token otherlv_0=null;
2014 Token otherlv_3=null; 3050 Token this_FULL_STOP_4=null;
2015 Token otherlv_5=null;
2016 Token otherlv_6=null;
2017 AntlrDatatypeRuleToken lv_name_2_0 = null; 3051 AntlrDatatypeRuleToken lv_name_2_0 = null;
2018 3052
3053 EObject lv_argumentList_3_0 = null;
3054
2019 3055
2020 3056
2021 enterRule(); 3057 enterRule();
2022 3058
2023 try { 3059 try {
2024 // InternalSolverLanguageParser.g:835:2: ( (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= LeftCurlyBracket ( ( ruleQualifiedName ) ) otherlv_5= FullStopFullStopFullStop otherlv_6= RightCurlyBracket ) ) 3060 // InternalSolverLanguageParser.g:1219:2: ( (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) ( (lv_argumentList_3_0= ruleArgumentList ) ) this_FULL_STOP_4= RULE_FULL_STOP ) )
2025 // InternalSolverLanguageParser.g:836:2: (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= LeftCurlyBracket ( ( ruleQualifiedName ) ) otherlv_5= FullStopFullStopFullStop otherlv_6= RightCurlyBracket ) 3061 // InternalSolverLanguageParser.g:1220:2: (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) ( (lv_argumentList_3_0= ruleArgumentList ) ) this_FULL_STOP_4= RULE_FULL_STOP )
2026 { 3062 {
2027 // InternalSolverLanguageParser.g:836:2: (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= LeftCurlyBracket ( ( ruleQualifiedName ) ) otherlv_5= FullStopFullStopFullStop otherlv_6= RightCurlyBracket ) 3063 // InternalSolverLanguageParser.g:1220:2: (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) ( (lv_argumentList_3_0= ruleArgumentList ) ) this_FULL_STOP_4= RULE_FULL_STOP )
2028 // InternalSolverLanguageParser.g:837:3: otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= LeftCurlyBracket ( ( ruleQualifiedName ) ) otherlv_5= FullStopFullStopFullStop otherlv_6= RightCurlyBracket 3064 // InternalSolverLanguageParser.g:1221:3: otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) ( (lv_argumentList_3_0= ruleArgumentList ) ) this_FULL_STOP_4= RULE_FULL_STOP
2029 { 3065 {
2030 otherlv_0=(Token)match(input,Extern,FOLLOW_8); 3066 otherlv_0=(Token)match(input,Extern,FOLLOW_3);
2031 3067
2032 newLeafNode(otherlv_0, grammarAccess.getExternAggregatorDefinitionAccess().getExternKeyword_0()); 3068 newLeafNode(otherlv_0, grammarAccess.getExternFunctionDeclarationAccess().getExternKeyword_0());
2033 3069
2034 // InternalSolverLanguageParser.g:841:3: ( ( ruleQualifiedName ) ) 3070 // InternalSolverLanguageParser.g:1225:3: ( ( ruleQualifiedName ) )
2035 // InternalSolverLanguageParser.g:842:4: ( ruleQualifiedName ) 3071 // InternalSolverLanguageParser.g:1226:4: ( ruleQualifiedName )
2036 { 3072 {
2037 // InternalSolverLanguageParser.g:842:4: ( ruleQualifiedName ) 3073 // InternalSolverLanguageParser.g:1226:4: ( ruleQualifiedName )
2038 // InternalSolverLanguageParser.g:843:5: ruleQualifiedName 3074 // InternalSolverLanguageParser.g:1227:5: ruleQualifiedName
2039 { 3075 {
2040 3076
2041 if (current==null) { 3077 if (current==null) {
2042 current = createModelElement(grammarAccess.getExternAggregatorDefinitionRule()); 3078 current = createModelElement(grammarAccess.getExternFunctionDeclarationRule());
2043 } 3079 }
2044 3080
2045 3081
2046 newCompositeNode(grammarAccess.getExternAggregatorDefinitionAccess().getTypeNamedElementCrossReference_1_0()); 3082 newCompositeNode(grammarAccess.getExternFunctionDeclarationAccess().getResultTypeSymbolCrossReference_1_0());
2047 3083
2048 pushFollow(FOLLOW_8); 3084 pushFollow(FOLLOW_3);
2049 ruleQualifiedName(); 3085 ruleQualifiedName();
2050 3086
2051 state._fsp--; 3087 state._fsp--;
@@ -2059,23 +3095,23 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2059 3095
2060 } 3096 }
2061 3097
2062 // InternalSolverLanguageParser.g:857:3: ( (lv_name_2_0= ruleQualifiedName ) ) 3098 // InternalSolverLanguageParser.g:1241:3: ( (lv_name_2_0= ruleQualifiedName ) )
2063 // InternalSolverLanguageParser.g:858:4: (lv_name_2_0= ruleQualifiedName ) 3099 // InternalSolverLanguageParser.g:1242:4: (lv_name_2_0= ruleQualifiedName )
2064 { 3100 {
2065 // InternalSolverLanguageParser.g:858:4: (lv_name_2_0= ruleQualifiedName ) 3101 // InternalSolverLanguageParser.g:1242:4: (lv_name_2_0= ruleQualifiedName )
2066 // InternalSolverLanguageParser.g:859:5: lv_name_2_0= ruleQualifiedName 3102 // InternalSolverLanguageParser.g:1243:5: lv_name_2_0= ruleQualifiedName
2067 { 3103 {
2068 3104
2069 newCompositeNode(grammarAccess.getExternAggregatorDefinitionAccess().getNameQualifiedNameParserRuleCall_2_0()); 3105 newCompositeNode(grammarAccess.getExternFunctionDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0());
2070 3106
2071 pushFollow(FOLLOW_14); 3107 pushFollow(FOLLOW_15);
2072 lv_name_2_0=ruleQualifiedName(); 3108 lv_name_2_0=ruleQualifiedName();
2073 3109
2074 state._fsp--; 3110 state._fsp--;
2075 3111
2076 3112
2077 if (current==null) { 3113 if (current==null) {
2078 current = createModelElementForParent(grammarAccess.getExternAggregatorDefinitionRule()); 3114 current = createModelElementForParent(grammarAccess.getExternFunctionDeclarationRule());
2079 } 3115 }
2080 set( 3116 set(
2081 current, 3117 current,
@@ -2090,30 +3126,29 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2090 3126
2091 } 3127 }
2092 3128
2093 otherlv_3=(Token)match(input,LeftCurlyBracket,FOLLOW_8); 3129 // InternalSolverLanguageParser.g:1260:3: ( (lv_argumentList_3_0= ruleArgumentList ) )
2094 3130 // InternalSolverLanguageParser.g:1261:4: (lv_argumentList_3_0= ruleArgumentList )
2095 newLeafNode(otherlv_3, grammarAccess.getExternAggregatorDefinitionAccess().getLeftCurlyBracketKeyword_3());
2096
2097 // InternalSolverLanguageParser.g:880:3: ( ( ruleQualifiedName ) )
2098 // InternalSolverLanguageParser.g:881:4: ( ruleQualifiedName )
2099 { 3131 {
2100 // InternalSolverLanguageParser.g:881:4: ( ruleQualifiedName ) 3132 // InternalSolverLanguageParser.g:1261:4: (lv_argumentList_3_0= ruleArgumentList )
2101 // InternalSolverLanguageParser.g:882:5: ruleQualifiedName 3133 // InternalSolverLanguageParser.g:1262:5: lv_argumentList_3_0= ruleArgumentList
2102 { 3134 {
2103 3135
2104 if (current==null) { 3136 newCompositeNode(grammarAccess.getExternFunctionDeclarationAccess().getArgumentListArgumentListParserRuleCall_3_0());
2105 current = createModelElement(grammarAccess.getExternAggregatorDefinitionRule());
2106 }
2107
2108
2109 newCompositeNode(grammarAccess.getExternAggregatorDefinitionAccess().getInputTypeNamedElementCrossReference_4_0());
2110 3137
2111 pushFollow(FOLLOW_15); 3138 pushFollow(FOLLOW_4);
2112 ruleQualifiedName(); 3139 lv_argumentList_3_0=ruleArgumentList();
2113 3140
2114 state._fsp--; 3141 state._fsp--;
2115 3142
2116 3143
3144 if (current==null) {
3145 current = createModelElementForParent(grammarAccess.getExternFunctionDeclarationRule());
3146 }
3147 set(
3148 current,
3149 "argumentList",
3150 lv_argumentList_3_0,
3151 "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList");
2117 afterParserOrEnumRuleCall(); 3152 afterParserOrEnumRuleCall();
2118 3153
2119 3154
@@ -2122,13 +3157,9 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2122 3157
2123 } 3158 }
2124 3159
2125 otherlv_5=(Token)match(input,FullStopFullStopFullStop,FOLLOW_16); 3160 this_FULL_STOP_4=(Token)match(input,RULE_FULL_STOP,FOLLOW_2);
2126
2127 newLeafNode(otherlv_5, grammarAccess.getExternAggregatorDefinitionAccess().getFullStopFullStopFullStopKeyword_5());
2128
2129 otherlv_6=(Token)match(input,RightCurlyBracket,FOLLOW_2);
2130 3161
2131 newLeafNode(otherlv_6, grammarAccess.getExternAggregatorDefinitionAccess().getRightCurlyBracketKeyword_6()); 3162 newLeafNode(this_FULL_STOP_4, grammarAccess.getExternFunctionDeclarationAccess().getFULL_STOPTerminalRuleCall_4());
2132 3163
2133 3164
2134 } 3165 }
@@ -2149,28 +3180,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2149 } 3180 }
2150 return current; 3181 return current;
2151 } 3182 }
2152 // $ANTLR end "ruleExternAggregatorDefinition" 3183 // $ANTLR end "ruleExternFunctionDeclaration"
2153 3184
2154 3185
2155 // $ANTLR start "entryRuleExternDatatypeDefinition" 3186 // $ANTLR start "entryRuleExternAggregationOperatorDeclaration"
2156 // InternalSolverLanguageParser.g:908:1: entryRuleExternDatatypeDefinition returns [EObject current=null] : iv_ruleExternDatatypeDefinition= ruleExternDatatypeDefinition EOF ; 3187 // InternalSolverLanguageParser.g:1287:1: entryRuleExternAggregationOperatorDeclaration returns [EObject current=null] : iv_ruleExternAggregationOperatorDeclaration= ruleExternAggregationOperatorDeclaration EOF ;
2157 public final EObject entryRuleExternDatatypeDefinition() throws RecognitionException { 3188 public final EObject entryRuleExternAggregationOperatorDeclaration() throws RecognitionException {
2158 EObject current = null; 3189 EObject current = null;
2159 3190
2160 EObject iv_ruleExternDatatypeDefinition = null; 3191 EObject iv_ruleExternAggregationOperatorDeclaration = null;
2161 3192
2162 3193
2163 try { 3194 try {
2164 // InternalSolverLanguageParser.g:908:65: (iv_ruleExternDatatypeDefinition= ruleExternDatatypeDefinition EOF ) 3195 // InternalSolverLanguageParser.g:1287:77: (iv_ruleExternAggregationOperatorDeclaration= ruleExternAggregationOperatorDeclaration EOF )
2165 // InternalSolverLanguageParser.g:909:2: iv_ruleExternDatatypeDefinition= ruleExternDatatypeDefinition EOF 3196 // InternalSolverLanguageParser.g:1288:2: iv_ruleExternAggregationOperatorDeclaration= ruleExternAggregationOperatorDeclaration EOF
2166 { 3197 {
2167 newCompositeNode(grammarAccess.getExternDatatypeDefinitionRule()); 3198 newCompositeNode(grammarAccess.getExternAggregationOperatorDeclarationRule());
2168 pushFollow(FOLLOW_1); 3199 pushFollow(FOLLOW_1);
2169 iv_ruleExternDatatypeDefinition=ruleExternDatatypeDefinition(); 3200 iv_ruleExternAggregationOperatorDeclaration=ruleExternAggregationOperatorDeclaration();
2170 3201
2171 state._fsp--; 3202 state._fsp--;
2172 3203
2173 current =iv_ruleExternDatatypeDefinition; 3204 current =iv_ruleExternAggregationOperatorDeclaration;
2174 match(input,EOF,FOLLOW_2); 3205 match(input,EOF,FOLLOW_2);
2175 3206
2176 } 3207 }
@@ -2185,18 +3216,19 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2185 } 3216 }
2186 return current; 3217 return current;
2187 } 3218 }
2188 // $ANTLR end "entryRuleExternDatatypeDefinition" 3219 // $ANTLR end "entryRuleExternAggregationOperatorDeclaration"
2189 3220
2190 3221
2191 // $ANTLR start "ruleExternDatatypeDefinition" 3222 // $ANTLR start "ruleExternAggregationOperatorDeclaration"
2192 // InternalSolverLanguageParser.g:915:1: ruleExternDatatypeDefinition returns [EObject current=null] : (otherlv_0= Extern otherlv_1= Datatype ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* ) ) ; 3223 // InternalSolverLanguageParser.g:1294:1: ruleExternAggregationOperatorDeclaration returns [EObject current=null] : (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= LeftCurlyBracket ( ( ruleQualifiedName ) ) otherlv_5= FullStopFullStopFullStop otherlv_6= RightCurlyBracket this_FULL_STOP_7= RULE_FULL_STOP ) ;
2193 public final EObject ruleExternDatatypeDefinition() throws RecognitionException { 3224 public final EObject ruleExternAggregationOperatorDeclaration() throws RecognitionException {
2194 EObject current = null; 3225 EObject current = null;
2195 3226
2196 Token otherlv_0=null; 3227 Token otherlv_0=null;
2197 Token otherlv_1=null;
2198 Token otherlv_3=null; 3228 Token otherlv_3=null;
2199 Token otherlv_5=null; 3229 Token otherlv_5=null;
3230 Token otherlv_6=null;
3231 Token this_FULL_STOP_7=null;
2200 AntlrDatatypeRuleToken lv_name_2_0 = null; 3232 AntlrDatatypeRuleToken lv_name_2_0 = null;
2201 3233
2202 3234
@@ -2204,37 +3236,61 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2204 enterRule(); 3236 enterRule();
2205 3237
2206 try { 3238 try {
2207 // InternalSolverLanguageParser.g:921:2: ( (otherlv_0= Extern otherlv_1= Datatype ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* ) ) ) 3239 // InternalSolverLanguageParser.g:1300:2: ( (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= LeftCurlyBracket ( ( ruleQualifiedName ) ) otherlv_5= FullStopFullStopFullStop otherlv_6= RightCurlyBracket this_FULL_STOP_7= RULE_FULL_STOP ) )
2208 // InternalSolverLanguageParser.g:922:2: (otherlv_0= Extern otherlv_1= Datatype ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* ) ) 3240 // InternalSolverLanguageParser.g:1301:2: (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= LeftCurlyBracket ( ( ruleQualifiedName ) ) otherlv_5= FullStopFullStopFullStop otherlv_6= RightCurlyBracket this_FULL_STOP_7= RULE_FULL_STOP )
2209 { 3241 {
2210 // InternalSolverLanguageParser.g:922:2: (otherlv_0= Extern otherlv_1= Datatype ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* ) ) 3242 // InternalSolverLanguageParser.g:1301:2: (otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= LeftCurlyBracket ( ( ruleQualifiedName ) ) otherlv_5= FullStopFullStopFullStop otherlv_6= RightCurlyBracket this_FULL_STOP_7= RULE_FULL_STOP )
2211 // InternalSolverLanguageParser.g:923:3: otherlv_0= Extern otherlv_1= Datatype ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* ) 3243 // InternalSolverLanguageParser.g:1302:3: otherlv_0= Extern ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= LeftCurlyBracket ( ( ruleQualifiedName ) ) otherlv_5= FullStopFullStopFullStop otherlv_6= RightCurlyBracket this_FULL_STOP_7= RULE_FULL_STOP
2212 { 3244 {
2213 otherlv_0=(Token)match(input,Extern,FOLLOW_17); 3245 otherlv_0=(Token)match(input,Extern,FOLLOW_3);
2214 3246
2215 newLeafNode(otherlv_0, grammarAccess.getExternDatatypeDefinitionAccess().getExternKeyword_0()); 3247 newLeafNode(otherlv_0, grammarAccess.getExternAggregationOperatorDeclarationAccess().getExternKeyword_0());
2216 3248
2217 otherlv_1=(Token)match(input,Datatype,FOLLOW_8); 3249 // InternalSolverLanguageParser.g:1306:3: ( ( ruleQualifiedName ) )
3250 // InternalSolverLanguageParser.g:1307:4: ( ruleQualifiedName )
3251 {
3252 // InternalSolverLanguageParser.g:1307:4: ( ruleQualifiedName )
3253 // InternalSolverLanguageParser.g:1308:5: ruleQualifiedName
3254 {
2218 3255
2219 newLeafNode(otherlv_1, grammarAccess.getExternDatatypeDefinitionAccess().getDatatypeKeyword_1()); 3256 if (current==null) {
2220 3257 current = createModelElement(grammarAccess.getExternAggregationOperatorDeclarationRule());
2221 // InternalSolverLanguageParser.g:931:3: ( (lv_name_2_0= ruleQualifiedName ) ) 3258 }
2222 // InternalSolverLanguageParser.g:932:4: (lv_name_2_0= ruleQualifiedName ) 3259
3260
3261 newCompositeNode(grammarAccess.getExternAggregationOperatorDeclarationAccess().getResultTypeSymbolCrossReference_1_0());
3262
3263 pushFollow(FOLLOW_3);
3264 ruleQualifiedName();
3265
3266 state._fsp--;
3267
3268
3269 afterParserOrEnumRuleCall();
3270
3271
3272 }
3273
3274
3275 }
3276
3277 // InternalSolverLanguageParser.g:1322:3: ( (lv_name_2_0= ruleQualifiedName ) )
3278 // InternalSolverLanguageParser.g:1323:4: (lv_name_2_0= ruleQualifiedName )
2223 { 3279 {
2224 // InternalSolverLanguageParser.g:932:4: (lv_name_2_0= ruleQualifiedName ) 3280 // InternalSolverLanguageParser.g:1323:4: (lv_name_2_0= ruleQualifiedName )
2225 // InternalSolverLanguageParser.g:933:5: lv_name_2_0= ruleQualifiedName 3281 // InternalSolverLanguageParser.g:1324:5: lv_name_2_0= ruleQualifiedName
2226 { 3282 {
2227 3283
2228 newCompositeNode(grammarAccess.getExternDatatypeDefinitionAccess().getNameQualifiedNameParserRuleCall_2_0()); 3284 newCompositeNode(grammarAccess.getExternAggregationOperatorDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0());
2229 3285
2230 pushFollow(FOLLOW_18); 3286 pushFollow(FOLLOW_20);
2231 lv_name_2_0=ruleQualifiedName(); 3287 lv_name_2_0=ruleQualifiedName();
2232 3288
2233 state._fsp--; 3289 state._fsp--;
2234 3290
2235 3291
2236 if (current==null) { 3292 if (current==null) {
2237 current = createModelElementForParent(grammarAccess.getExternDatatypeDefinitionRule()); 3293 current = createModelElementForParent(grammarAccess.getExternAggregationOperatorDeclarationRule());
2238 } 3294 }
2239 set( 3295 set(
2240 current, 3296 current,
@@ -2249,100 +3305,50 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2249 3305
2250 } 3306 }
2251 3307
2252 // InternalSolverLanguageParser.g:950:3: (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* ) 3308 otherlv_3=(Token)match(input,LeftCurlyBracket,FOLLOW_3);
2253 // InternalSolverLanguageParser.g:951:4: otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )*
2254 {
2255 otherlv_3=(Token)match(input,Extends,FOLLOW_8);
2256 3309
2257 newLeafNode(otherlv_3, grammarAccess.getExternDatatypeDefinitionAccess().getExtendsKeyword_3_0()); 3310 newLeafNode(otherlv_3, grammarAccess.getExternAggregationOperatorDeclarationAccess().getLeftCurlyBracketKeyword_3());
2258 3311
2259 // InternalSolverLanguageParser.g:955:4: ( ( ruleQualifiedName ) ) 3312 // InternalSolverLanguageParser.g:1345:3: ( ( ruleQualifiedName ) )
2260 // InternalSolverLanguageParser.g:956:5: ( ruleQualifiedName ) 3313 // InternalSolverLanguageParser.g:1346:4: ( ruleQualifiedName )
2261 { 3314 {
2262 // InternalSolverLanguageParser.g:956:5: ( ruleQualifiedName ) 3315 // InternalSolverLanguageParser.g:1346:4: ( ruleQualifiedName )
2263 // InternalSolverLanguageParser.g:957:6: ruleQualifiedName 3316 // InternalSolverLanguageParser.g:1347:5: ruleQualifiedName
2264 { 3317 {
2265 3318
2266 if (current==null) { 3319 if (current==null) {
2267 current = createModelElement(grammarAccess.getExternDatatypeDefinitionRule()); 3320 current = createModelElement(grammarAccess.getExternAggregationOperatorDeclarationRule());
2268 } 3321 }
2269 3322
2270 3323
2271 newCompositeNode(grammarAccess.getExternDatatypeDefinitionAccess().getSupertypesNamedElementCrossReference_3_1_0()); 3324 newCompositeNode(grammarAccess.getExternAggregationOperatorDeclarationAccess().getArgumentTypeSymbolCrossReference_4_0());
2272 3325
2273 pushFollow(FOLLOW_19); 3326 pushFollow(FOLLOW_21);
2274 ruleQualifiedName(); 3327 ruleQualifiedName();
2275 3328
2276 state._fsp--; 3329 state._fsp--;
2277 3330
2278 3331
2279 afterParserOrEnumRuleCall(); 3332 afterParserOrEnumRuleCall();
2280 3333
2281 3334
2282 } 3335 }
2283 3336
2284 3337
2285 } 3338 }
2286 3339
2287 // InternalSolverLanguageParser.g:971:4: (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* 3340 otherlv_5=(Token)match(input,FullStopFullStopFullStop,FOLLOW_22);
2288 loop7:
2289 do {
2290 int alt7=2;
2291 int LA7_0 = input.LA(1);
2292
2293 if ( (LA7_0==Comma) ) {
2294 alt7=1;
2295 }
2296
2297
2298 switch (alt7) {
2299 case 1 :
2300 // InternalSolverLanguageParser.g:972:5: otherlv_5= Comma ( ( ruleQualifiedName ) )
2301 {
2302 otherlv_5=(Token)match(input,Comma,FOLLOW_8);
2303
2304 newLeafNode(otherlv_5, grammarAccess.getExternDatatypeDefinitionAccess().getCommaKeyword_3_2_0());
2305
2306 // InternalSolverLanguageParser.g:976:5: ( ( ruleQualifiedName ) )
2307 // InternalSolverLanguageParser.g:977:6: ( ruleQualifiedName )
2308 {
2309 // InternalSolverLanguageParser.g:977:6: ( ruleQualifiedName )
2310 // InternalSolverLanguageParser.g:978:7: ruleQualifiedName
2311 {
2312
2313 if (current==null) {
2314 current = createModelElement(grammarAccess.getExternDatatypeDefinitionRule());
2315 }
2316
2317
2318 newCompositeNode(grammarAccess.getExternDatatypeDefinitionAccess().getSupertypesNamedElementCrossReference_3_2_1_0());
2319
2320 pushFollow(FOLLOW_19);
2321 ruleQualifiedName();
2322
2323 state._fsp--;
2324
2325
2326 afterParserOrEnumRuleCall();
2327
2328
2329 }
2330
2331
2332 }
2333
2334
2335 }
2336 break;
2337
2338 default :
2339 break loop7;
2340 }
2341 } while (true);
2342 3341
3342 newLeafNode(otherlv_5, grammarAccess.getExternAggregationOperatorDeclarationAccess().getFullStopFullStopFullStopKeyword_5());
3343
3344 otherlv_6=(Token)match(input,RightCurlyBracket,FOLLOW_4);
2343 3345
2344 } 3346 newLeafNode(otherlv_6, grammarAccess.getExternAggregationOperatorDeclarationAccess().getRightCurlyBracketKeyword_6());
3347
3348 this_FULL_STOP_7=(Token)match(input,RULE_FULL_STOP,FOLLOW_2);
2345 3349
3350 newLeafNode(this_FULL_STOP_7, grammarAccess.getExternAggregationOperatorDeclarationAccess().getFULL_STOPTerminalRuleCall_7());
3351
2346 3352
2347 } 3353 }
2348 3354
@@ -2362,28 +3368,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2362 } 3368 }
2363 return current; 3369 return current;
2364 } 3370 }
2365 // $ANTLR end "ruleExternDatatypeDefinition" 3371 // $ANTLR end "ruleExternAggregationOperatorDeclaration"
2366 3372
2367 3373
2368 // $ANTLR start "entryRuleVariable" 3374 // $ANTLR start "entryRuleExternDatatypeDeclaration"
2369 // InternalSolverLanguageParser.g:998:1: entryRuleVariable returns [EObject current=null] : iv_ruleVariable= ruleVariable EOF ; 3375 // InternalSolverLanguageParser.g:1377:1: entryRuleExternDatatypeDeclaration returns [EObject current=null] : iv_ruleExternDatatypeDeclaration= ruleExternDatatypeDeclaration EOF ;
2370 public final EObject entryRuleVariable() throws RecognitionException { 3376 public final EObject entryRuleExternDatatypeDeclaration() throws RecognitionException {
2371 EObject current = null; 3377 EObject current = null;
2372 3378
2373 EObject iv_ruleVariable = null; 3379 EObject iv_ruleExternDatatypeDeclaration = null;
2374 3380
2375 3381
2376 try { 3382 try {
2377 // InternalSolverLanguageParser.g:998:49: (iv_ruleVariable= ruleVariable EOF ) 3383 // InternalSolverLanguageParser.g:1377:66: (iv_ruleExternDatatypeDeclaration= ruleExternDatatypeDeclaration EOF )
2378 // InternalSolverLanguageParser.g:999:2: iv_ruleVariable= ruleVariable EOF 3384 // InternalSolverLanguageParser.g:1378:2: iv_ruleExternDatatypeDeclaration= ruleExternDatatypeDeclaration EOF
2379 { 3385 {
2380 newCompositeNode(grammarAccess.getVariableRule()); 3386 newCompositeNode(grammarAccess.getExternDatatypeDeclarationRule());
2381 pushFollow(FOLLOW_1); 3387 pushFollow(FOLLOW_1);
2382 iv_ruleVariable=ruleVariable(); 3388 iv_ruleExternDatatypeDeclaration=ruleExternDatatypeDeclaration();
2383 3389
2384 state._fsp--; 3390 state._fsp--;
2385 3391
2386 current =iv_ruleVariable; 3392 current =iv_ruleExternDatatypeDeclaration;
2387 match(input,EOF,FOLLOW_2); 3393 match(input,EOF,FOLLOW_2);
2388 3394
2389 } 3395 }
@@ -2398,91 +3404,62 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2398 } 3404 }
2399 return current; 3405 return current;
2400 } 3406 }
2401 // $ANTLR end "entryRuleVariable" 3407 // $ANTLR end "entryRuleExternDatatypeDeclaration"
2402 3408
2403 3409
2404 // $ANTLR start "ruleVariable" 3410 // $ANTLR start "ruleExternDatatypeDeclaration"
2405 // InternalSolverLanguageParser.g:1005:1: ruleVariable returns [EObject current=null] : ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= RULE_ID ) ) ) ; 3411 // InternalSolverLanguageParser.g:1384:1: ruleExternDatatypeDeclaration returns [EObject current=null] : (otherlv_0= Extern otherlv_1= Datatype ( (lv_name_2_0= ruleQualifiedName ) ) this_FULL_STOP_3= RULE_FULL_STOP ) ;
2406 public final EObject ruleVariable() throws RecognitionException { 3412 public final EObject ruleExternDatatypeDeclaration() throws RecognitionException {
2407 EObject current = null; 3413 EObject current = null;
2408 3414
2409 Token lv_name_1_0=null; 3415 Token otherlv_0=null;
3416 Token otherlv_1=null;
3417 Token this_FULL_STOP_3=null;
3418 AntlrDatatypeRuleToken lv_name_2_0 = null;
3419
2410 3420
2411 3421
2412 enterRule(); 3422 enterRule();
2413 3423
2414 try { 3424 try {
2415 // InternalSolverLanguageParser.g:1011:2: ( ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= RULE_ID ) ) ) ) 3425 // InternalSolverLanguageParser.g:1390:2: ( (otherlv_0= Extern otherlv_1= Datatype ( (lv_name_2_0= ruleQualifiedName ) ) this_FULL_STOP_3= RULE_FULL_STOP ) )
2416 // InternalSolverLanguageParser.g:1012:2: ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= RULE_ID ) ) ) 3426 // InternalSolverLanguageParser.g:1391:2: (otherlv_0= Extern otherlv_1= Datatype ( (lv_name_2_0= ruleQualifiedName ) ) this_FULL_STOP_3= RULE_FULL_STOP )
2417 { 3427 {
2418 // InternalSolverLanguageParser.g:1012:2: ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= RULE_ID ) ) ) 3428 // InternalSolverLanguageParser.g:1391:2: (otherlv_0= Extern otherlv_1= Datatype ( (lv_name_2_0= ruleQualifiedName ) ) this_FULL_STOP_3= RULE_FULL_STOP )
2419 // InternalSolverLanguageParser.g:1013:3: ( ( ruleQualifiedName ) )? ( (lv_name_1_0= RULE_ID ) ) 3429 // InternalSolverLanguageParser.g:1392:3: otherlv_0= Extern otherlv_1= Datatype ( (lv_name_2_0= ruleQualifiedName ) ) this_FULL_STOP_3= RULE_FULL_STOP
2420 { 3430 {
2421 // InternalSolverLanguageParser.g:1013:3: ( ( ruleQualifiedName ) )? 3431 otherlv_0=(Token)match(input,Extern,FOLLOW_23);
2422 int alt8=2;
2423 int LA8_0 = input.LA(1);
2424 3432
2425 if ( (LA8_0==RULE_ID) ) { 3433 newLeafNode(otherlv_0, grammarAccess.getExternDatatypeDeclarationAccess().getExternKeyword_0());
2426 int LA8_1 = input.LA(2); 3434
2427 3435 otherlv_1=(Token)match(input,Datatype,FOLLOW_3);
2428 if ( (LA8_1==FullStop||LA8_1==RULE_ID) ) {
2429 alt8=1;
2430 }
2431 }
2432 else if ( (LA8_0==RULE_QUOTED_ID) ) {
2433 alt8=1;
2434 }
2435 switch (alt8) {
2436 case 1 :
2437 // InternalSolverLanguageParser.g:1014:4: ( ruleQualifiedName )
2438 {
2439 // InternalSolverLanguageParser.g:1014:4: ( ruleQualifiedName )
2440 // InternalSolverLanguageParser.g:1015:5: ruleQualifiedName
2441 {
2442
2443 if (current==null) {
2444 current = createModelElement(grammarAccess.getVariableRule());
2445 }
2446
2447
2448 newCompositeNode(grammarAccess.getVariableAccess().getTypeNamedElementCrossReference_0_0());
2449
2450 pushFollow(FOLLOW_20);
2451 ruleQualifiedName();
2452
2453 state._fsp--;
2454
2455
2456 afterParserOrEnumRuleCall();
2457
2458
2459 }
2460
2461
2462 }
2463 break;
2464
2465 }
2466 3436
2467 // InternalSolverLanguageParser.g:1029:3: ( (lv_name_1_0= RULE_ID ) ) 3437 newLeafNode(otherlv_1, grammarAccess.getExternDatatypeDeclarationAccess().getDatatypeKeyword_1());
2468 // InternalSolverLanguageParser.g:1030:4: (lv_name_1_0= RULE_ID ) 3438
3439 // InternalSolverLanguageParser.g:1400:3: ( (lv_name_2_0= ruleQualifiedName ) )
3440 // InternalSolverLanguageParser.g:1401:4: (lv_name_2_0= ruleQualifiedName )
2469 { 3441 {
2470 // InternalSolverLanguageParser.g:1030:4: (lv_name_1_0= RULE_ID ) 3442 // InternalSolverLanguageParser.g:1401:4: (lv_name_2_0= ruleQualifiedName )
2471 // InternalSolverLanguageParser.g:1031:5: lv_name_1_0= RULE_ID 3443 // InternalSolverLanguageParser.g:1402:5: lv_name_2_0= ruleQualifiedName
2472 { 3444 {
2473 lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_2);
2474 3445
2475 newLeafNode(lv_name_1_0, grammarAccess.getVariableAccess().getNameIDTerminalRuleCall_1_0()); 3446 newCompositeNode(grammarAccess.getExternDatatypeDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0());
2476 3447
3448 pushFollow(FOLLOW_4);
3449 lv_name_2_0=ruleQualifiedName();
3450
3451 state._fsp--;
3452
2477 3453
2478 if (current==null) { 3454 if (current==null) {
2479 current = createModelElement(grammarAccess.getVariableRule()); 3455 current = createModelElementForParent(grammarAccess.getExternDatatypeDeclarationRule());
2480 } 3456 }
2481 setWithLastConsumed( 3457 set(
2482 current, 3458 current,
2483 "name", 3459 "name",
2484 lv_name_1_0, 3460 lv_name_2_0,
2485 "org.eclipse.xtext.common.Terminals.ID"); 3461 "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName");
3462 afterParserOrEnumRuleCall();
2486 3463
2487 3464
2488 } 3465 }
@@ -2490,6 +3467,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2490 3467
2491 } 3468 }
2492 3469
3470 this_FULL_STOP_3=(Token)match(input,RULE_FULL_STOP,FOLLOW_2);
3471
3472 newLeafNode(this_FULL_STOP_3, grammarAccess.getExternDatatypeDeclarationAccess().getFULL_STOPTerminalRuleCall_3());
3473
2493 3474
2494 } 3475 }
2495 3476
@@ -2509,11 +3490,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2509 } 3490 }
2510 return current; 3491 return current;
2511 } 3492 }
2512 // $ANTLR end "ruleVariable" 3493 // $ANTLR end "ruleExternDatatypeDeclaration"
2513 3494
2514 3495
2515 // $ANTLR start "entryRuleExpression" 3496 // $ANTLR start "entryRuleExpression"
2516 // InternalSolverLanguageParser.g:1051:1: entryRuleExpression returns [EObject current=null] : iv_ruleExpression= ruleExpression EOF ; 3497 // InternalSolverLanguageParser.g:1427:1: entryRuleExpression returns [EObject current=null] : iv_ruleExpression= ruleExpression EOF ;
2517 public final EObject entryRuleExpression() throws RecognitionException { 3498 public final EObject entryRuleExpression() throws RecognitionException {
2518 EObject current = null; 3499 EObject current = null;
2519 3500
@@ -2521,8 +3502,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2521 3502
2522 3503
2523 try { 3504 try {
2524 // InternalSolverLanguageParser.g:1051:51: (iv_ruleExpression= ruleExpression EOF ) 3505 // InternalSolverLanguageParser.g:1427:51: (iv_ruleExpression= ruleExpression EOF )
2525 // InternalSolverLanguageParser.g:1052:2: iv_ruleExpression= ruleExpression EOF 3506 // InternalSolverLanguageParser.g:1428:2: iv_ruleExpression= ruleExpression EOF
2526 { 3507 {
2527 newCompositeNode(grammarAccess.getExpressionRule()); 3508 newCompositeNode(grammarAccess.getExpressionRule());
2528 pushFollow(FOLLOW_1); 3509 pushFollow(FOLLOW_1);
@@ -2549,121 +3530,191 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2549 3530
2550 3531
2551 // $ANTLR start "ruleExpression" 3532 // $ANTLR start "ruleExpression"
2552 // InternalSolverLanguageParser.g:1058:1: ruleExpression returns [EObject current=null] : (this_IfElse_0= ruleIfElse | this_Let_1= ruleLet | this_ImplicationExpression_2= ruleImplicationExpression ) ; 3533 // InternalSolverLanguageParser.g:1434:1: ruleExpression returns [EObject current=null] : (this_ConditionalExpression_0= ruleConditionalExpression | this_LetExpression_1= ruleLetExpression | (this_DisjunctiveExpression_2= ruleDisjunctiveExpression ( () otherlv_4= EqualsSignGreaterThanSign ( (lv_body_5_0= ruleDisjunctiveExpression ) ) )? ) ) ;
2553 public final EObject ruleExpression() throws RecognitionException { 3534 public final EObject ruleExpression() throws RecognitionException {
2554 EObject current = null; 3535 EObject current = null;
2555 3536
2556 EObject this_IfElse_0 = null; 3537 Token otherlv_4=null;
3538 EObject this_ConditionalExpression_0 = null;
3539
3540 EObject this_LetExpression_1 = null;
2557 3541
2558 EObject this_Let_1 = null; 3542 EObject this_DisjunctiveExpression_2 = null;
2559 3543
2560 EObject this_ImplicationExpression_2 = null; 3544 EObject lv_body_5_0 = null;
2561 3545
2562 3546
2563 3547
2564 enterRule(); 3548 enterRule();
2565 3549
2566 try { 3550 try {
2567 // InternalSolverLanguageParser.g:1064:2: ( (this_IfElse_0= ruleIfElse | this_Let_1= ruleLet | this_ImplicationExpression_2= ruleImplicationExpression ) ) 3551 // InternalSolverLanguageParser.g:1440:2: ( (this_ConditionalExpression_0= ruleConditionalExpression | this_LetExpression_1= ruleLetExpression | (this_DisjunctiveExpression_2= ruleDisjunctiveExpression ( () otherlv_4= EqualsSignGreaterThanSign ( (lv_body_5_0= ruleDisjunctiveExpression ) ) )? ) ) )
2568 // InternalSolverLanguageParser.g:1065:2: (this_IfElse_0= ruleIfElse | this_Let_1= ruleLet | this_ImplicationExpression_2= ruleImplicationExpression ) 3552 // InternalSolverLanguageParser.g:1441:2: (this_ConditionalExpression_0= ruleConditionalExpression | this_LetExpression_1= ruleLetExpression | (this_DisjunctiveExpression_2= ruleDisjunctiveExpression ( () otherlv_4= EqualsSignGreaterThanSign ( (lv_body_5_0= ruleDisjunctiveExpression ) ) )? ) )
2569 { 3553 {
2570 // InternalSolverLanguageParser.g:1065:2: (this_IfElse_0= ruleIfElse | this_Let_1= ruleLet | this_ImplicationExpression_2= ruleImplicationExpression ) 3554 // InternalSolverLanguageParser.g:1441:2: (this_ConditionalExpression_0= ruleConditionalExpression | this_LetExpression_1= ruleLetExpression | (this_DisjunctiveExpression_2= ruleDisjunctiveExpression ( () otherlv_4= EqualsSignGreaterThanSign ( (lv_body_5_0= ruleDisjunctiveExpression ) ) )? ) )
2571 int alt9=3; 3555 int alt16=3;
2572 switch ( input.LA(1) ) { 3556 switch ( input.LA(1) ) {
2573 case If: 3557 case If:
2574 { 3558 {
2575 alt9=1; 3559 alt16=1;
2576 } 3560 }
2577 break; 3561 break;
2578 case Let: 3562 case Let:
2579 { 3563 {
2580 alt9=2; 3564 alt16=2;
2581 } 3565 }
2582 break; 3566 break;
2583 case Current:
2584 case Unknown: 3567 case Unknown:
2585 case Exists: 3568 case Object:
2586 case Forall:
2587 case Count: 3569 case Count:
2588 case Empty: 3570 case Empty:
2589 case Error: 3571 case Error:
2590 case False: 3572 case False:
2591 case Must:
2592 case True: 3573 case True:
2593 case Inf: 3574 case Inf:
2594 case May:
2595 case ExclamationMark: 3575 case ExclamationMark:
2596 case LeftParenthesis: 3576 case LeftParenthesis:
2597 case PlusSign: 3577 case PlusSign:
2598 case HyphenMinus: 3578 case HyphenMinus:
3579 case QuestionMark:
2599 case LeftSquareBracket: 3580 case LeftSquareBracket:
3581 case Tilde:
2600 case RULE_STRING: 3582 case RULE_STRING:
2601 case RULE_QUOTED_ID: 3583 case RULE_QUOTED_ID:
2602 case RULE_ID: 3584 case RULE_ID:
2603 case RULE_INT: 3585 case RULE_INT:
2604 { 3586 {
2605 alt9=3; 3587 alt16=3;
2606 } 3588 }
2607 break; 3589 break;
2608 default: 3590 default:
2609 NoViableAltException nvae = 3591 NoViableAltException nvae =
2610 new NoViableAltException("", 9, 0, input); 3592 new NoViableAltException("", 16, 0, input);
2611 3593
2612 throw nvae; 3594 throw nvae;
2613 } 3595 }
2614 3596
2615 switch (alt9) { 3597 switch (alt16) {
2616 case 1 : 3598 case 1 :
2617 // InternalSolverLanguageParser.g:1066:3: this_IfElse_0= ruleIfElse 3599 // InternalSolverLanguageParser.g:1442:3: this_ConditionalExpression_0= ruleConditionalExpression
2618 { 3600 {
2619 3601
2620 newCompositeNode(grammarAccess.getExpressionAccess().getIfElseParserRuleCall_0()); 3602 newCompositeNode(grammarAccess.getExpressionAccess().getConditionalExpressionParserRuleCall_0());
2621 3603
2622 pushFollow(FOLLOW_2); 3604 pushFollow(FOLLOW_2);
2623 this_IfElse_0=ruleIfElse(); 3605 this_ConditionalExpression_0=ruleConditionalExpression();
2624 3606
2625 state._fsp--; 3607 state._fsp--;
2626 3608
2627 3609
2628 current = this_IfElse_0; 3610 current = this_ConditionalExpression_0;
2629 afterParserOrEnumRuleCall(); 3611 afterParserOrEnumRuleCall();
2630 3612
2631 3613
2632 } 3614 }
2633 break; 3615 break;
2634 case 2 : 3616 case 2 :
2635 // InternalSolverLanguageParser.g:1075:3: this_Let_1= ruleLet 3617 // InternalSolverLanguageParser.g:1451:3: this_LetExpression_1= ruleLetExpression
2636 { 3618 {
2637 3619
2638 newCompositeNode(grammarAccess.getExpressionAccess().getLetParserRuleCall_1()); 3620 newCompositeNode(grammarAccess.getExpressionAccess().getLetExpressionParserRuleCall_1());
2639 3621
2640 pushFollow(FOLLOW_2); 3622 pushFollow(FOLLOW_2);
2641 this_Let_1=ruleLet(); 3623 this_LetExpression_1=ruleLetExpression();
2642 3624
2643 state._fsp--; 3625 state._fsp--;
2644 3626
2645 3627
2646 current = this_Let_1; 3628 current = this_LetExpression_1;
2647 afterParserOrEnumRuleCall(); 3629 afterParserOrEnumRuleCall();
2648 3630
2649 3631
2650 } 3632 }
2651 break; 3633 break;
2652 case 3 : 3634 case 3 :
2653 // InternalSolverLanguageParser.g:1084:3: this_ImplicationExpression_2= ruleImplicationExpression 3635 // InternalSolverLanguageParser.g:1460:3: (this_DisjunctiveExpression_2= ruleDisjunctiveExpression ( () otherlv_4= EqualsSignGreaterThanSign ( (lv_body_5_0= ruleDisjunctiveExpression ) ) )? )
3636 {
3637 // InternalSolverLanguageParser.g:1460:3: (this_DisjunctiveExpression_2= ruleDisjunctiveExpression ( () otherlv_4= EqualsSignGreaterThanSign ( (lv_body_5_0= ruleDisjunctiveExpression ) ) )? )
3638 // InternalSolverLanguageParser.g:1461:4: this_DisjunctiveExpression_2= ruleDisjunctiveExpression ( () otherlv_4= EqualsSignGreaterThanSign ( (lv_body_5_0= ruleDisjunctiveExpression ) ) )?
2654 { 3639 {
2655 3640
2656 newCompositeNode(grammarAccess.getExpressionAccess().getImplicationExpressionParserRuleCall_2()); 3641 newCompositeNode(grammarAccess.getExpressionAccess().getDisjunctiveExpressionParserRuleCall_2_0());
2657 3642
2658 pushFollow(FOLLOW_2); 3643 pushFollow(FOLLOW_24);
2659 this_ImplicationExpression_2=ruleImplicationExpression(); 3644 this_DisjunctiveExpression_2=ruleDisjunctiveExpression();
2660 3645
2661 state._fsp--; 3646 state._fsp--;
2662 3647
2663 3648
2664 current = this_ImplicationExpression_2; 3649 current = this_DisjunctiveExpression_2;
2665 afterParserOrEnumRuleCall(); 3650 afterParserOrEnumRuleCall();
2666 3651
3652 // InternalSolverLanguageParser.g:1469:4: ( () otherlv_4= EqualsSignGreaterThanSign ( (lv_body_5_0= ruleDisjunctiveExpression ) ) )?
3653 int alt15=2;
3654 int LA15_0 = input.LA(1);
3655
3656 if ( (LA15_0==EqualsSignGreaterThanSign) ) {
3657 alt15=1;
3658 }
3659 switch (alt15) {
3660 case 1 :
3661 // InternalSolverLanguageParser.g:1470:5: () otherlv_4= EqualsSignGreaterThanSign ( (lv_body_5_0= ruleDisjunctiveExpression ) )
3662 {
3663 // InternalSolverLanguageParser.g:1470:5: ()
3664 // InternalSolverLanguageParser.g:1471:6:
3665 {
3666
3667 current = forceCreateModelElementAndSet(
3668 grammarAccess.getExpressionAccess().getForallConditionAction_2_1_0(),
3669 current);
3670
3671
3672 }
3673
3674 otherlv_4=(Token)match(input,EqualsSignGreaterThanSign,FOLLOW_10);
3675
3676 newLeafNode(otherlv_4, grammarAccess.getExpressionAccess().getEqualsSignGreaterThanSignKeyword_2_1_1());
3677
3678 // InternalSolverLanguageParser.g:1481:5: ( (lv_body_5_0= ruleDisjunctiveExpression ) )
3679 // InternalSolverLanguageParser.g:1482:6: (lv_body_5_0= ruleDisjunctiveExpression )
3680 {
3681 // InternalSolverLanguageParser.g:1482:6: (lv_body_5_0= ruleDisjunctiveExpression )
3682 // InternalSolverLanguageParser.g:1483:7: lv_body_5_0= ruleDisjunctiveExpression
3683 {
3684
3685 newCompositeNode(grammarAccess.getExpressionAccess().getBodyDisjunctiveExpressionParserRuleCall_2_1_2_0());
3686
3687 pushFollow(FOLLOW_2);
3688 lv_body_5_0=ruleDisjunctiveExpression();
3689
3690 state._fsp--;
3691
3692
3693 if (current==null) {
3694 current = createModelElementForParent(grammarAccess.getExpressionRule());
3695 }
3696 set(
3697 current,
3698 "body",
3699 lv_body_5_0,
3700 "org.eclipse.viatra.solver.language.SolverLanguage.DisjunctiveExpression");
3701 afterParserOrEnumRuleCall();
3702
3703
3704 }
3705
3706
3707 }
3708
3709
3710 }
3711 break;
3712
3713 }
3714
3715
3716 }
3717
2667 3718
2668 } 3719 }
2669 break; 3720 break;
@@ -2689,25 +3740,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2689 // $ANTLR end "ruleExpression" 3740 // $ANTLR end "ruleExpression"
2690 3741
2691 3742
2692 // $ANTLR start "entryRuleIfElse" 3743 // $ANTLR start "entryRuleConditionalExpression"
2693 // InternalSolverLanguageParser.g:1096:1: entryRuleIfElse returns [EObject current=null] : iv_ruleIfElse= ruleIfElse EOF ; 3744 // InternalSolverLanguageParser.g:1506:1: entryRuleConditionalExpression returns [EObject current=null] : iv_ruleConditionalExpression= ruleConditionalExpression EOF ;
2694 public final EObject entryRuleIfElse() throws RecognitionException { 3745 public final EObject entryRuleConditionalExpression() throws RecognitionException {
2695 EObject current = null; 3746 EObject current = null;
2696 3747
2697 EObject iv_ruleIfElse = null; 3748 EObject iv_ruleConditionalExpression = null;
2698 3749
2699 3750
2700 try { 3751 try {
2701 // InternalSolverLanguageParser.g:1096:47: (iv_ruleIfElse= ruleIfElse EOF ) 3752 // InternalSolverLanguageParser.g:1506:62: (iv_ruleConditionalExpression= ruleConditionalExpression EOF )
2702 // InternalSolverLanguageParser.g:1097:2: iv_ruleIfElse= ruleIfElse EOF 3753 // InternalSolverLanguageParser.g:1507:2: iv_ruleConditionalExpression= ruleConditionalExpression EOF
2703 { 3754 {
2704 newCompositeNode(grammarAccess.getIfElseRule()); 3755 newCompositeNode(grammarAccess.getConditionalExpressionRule());
2705 pushFollow(FOLLOW_1); 3756 pushFollow(FOLLOW_1);
2706 iv_ruleIfElse=ruleIfElse(); 3757 iv_ruleConditionalExpression=ruleConditionalExpression();
2707 3758
2708 state._fsp--; 3759 state._fsp--;
2709 3760
2710 current =iv_ruleIfElse; 3761 current =iv_ruleConditionalExpression;
2711 match(input,EOF,FOLLOW_2); 3762 match(input,EOF,FOLLOW_2);
2712 3763
2713 } 3764 }
@@ -2722,12 +3773,12 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2722 } 3773 }
2723 return current; 3774 return current;
2724 } 3775 }
2725 // $ANTLR end "entryRuleIfElse" 3776 // $ANTLR end "entryRuleConditionalExpression"
2726 3777
2727 3778
2728 // $ANTLR start "ruleIfElse" 3779 // $ANTLR start "ruleConditionalExpression"
2729 // InternalSolverLanguageParser.g:1103:1: ruleIfElse returns [EObject current=null] : (otherlv_0= If ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= Then ( (lv_then_3_0= ruleExpression ) ) otherlv_4= Else ( (lv_else_5_0= ruleExpression ) ) ) ; 3780 // InternalSolverLanguageParser.g:1513:1: ruleConditionalExpression returns [EObject current=null] : (otherlv_0= If ( (lv_condition_1_0= ruleDisjunctiveExpression ) ) otherlv_2= Then ( (lv_then_3_0= ruleExpression ) ) otherlv_4= Else ( (lv_else_5_0= ruleExpression ) ) ) ;
2730 public final EObject ruleIfElse() throws RecognitionException { 3781 public final EObject ruleConditionalExpression() throws RecognitionException {
2731 EObject current = null; 3782 EObject current = null;
2732 3783
2733 Token otherlv_0=null; 3784 Token otherlv_0=null;
@@ -2744,39 +3795,39 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2744 enterRule(); 3795 enterRule();
2745 3796
2746 try { 3797 try {
2747 // InternalSolverLanguageParser.g:1109:2: ( (otherlv_0= If ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= Then ( (lv_then_3_0= ruleExpression ) ) otherlv_4= Else ( (lv_else_5_0= ruleExpression ) ) ) ) 3798 // InternalSolverLanguageParser.g:1519:2: ( (otherlv_0= If ( (lv_condition_1_0= ruleDisjunctiveExpression ) ) otherlv_2= Then ( (lv_then_3_0= ruleExpression ) ) otherlv_4= Else ( (lv_else_5_0= ruleExpression ) ) ) )
2748 // InternalSolverLanguageParser.g:1110:2: (otherlv_0= If ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= Then ( (lv_then_3_0= ruleExpression ) ) otherlv_4= Else ( (lv_else_5_0= ruleExpression ) ) ) 3799 // InternalSolverLanguageParser.g:1520:2: (otherlv_0= If ( (lv_condition_1_0= ruleDisjunctiveExpression ) ) otherlv_2= Then ( (lv_then_3_0= ruleExpression ) ) otherlv_4= Else ( (lv_else_5_0= ruleExpression ) ) )
2749 { 3800 {
2750 // InternalSolverLanguageParser.g:1110:2: (otherlv_0= If ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= Then ( (lv_then_3_0= ruleExpression ) ) otherlv_4= Else ( (lv_else_5_0= ruleExpression ) ) ) 3801 // InternalSolverLanguageParser.g:1520:2: (otherlv_0= If ( (lv_condition_1_0= ruleDisjunctiveExpression ) ) otherlv_2= Then ( (lv_then_3_0= ruleExpression ) ) otherlv_4= Else ( (lv_else_5_0= ruleExpression ) ) )
2751 // InternalSolverLanguageParser.g:1111:3: otherlv_0= If ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= Then ( (lv_then_3_0= ruleExpression ) ) otherlv_4= Else ( (lv_else_5_0= ruleExpression ) ) 3802 // InternalSolverLanguageParser.g:1521:3: otherlv_0= If ( (lv_condition_1_0= ruleDisjunctiveExpression ) ) otherlv_2= Then ( (lv_then_3_0= ruleExpression ) ) otherlv_4= Else ( (lv_else_5_0= ruleExpression ) )
2752 { 3803 {
2753 otherlv_0=(Token)match(input,If,FOLLOW_6); 3804 otherlv_0=(Token)match(input,If,FOLLOW_10);
2754 3805
2755 newLeafNode(otherlv_0, grammarAccess.getIfElseAccess().getIfKeyword_0()); 3806 newLeafNode(otherlv_0, grammarAccess.getConditionalExpressionAccess().getIfKeyword_0());
2756 3807
2757 // InternalSolverLanguageParser.g:1115:3: ( (lv_condition_1_0= ruleExpression ) ) 3808 // InternalSolverLanguageParser.g:1525:3: ( (lv_condition_1_0= ruleDisjunctiveExpression ) )
2758 // InternalSolverLanguageParser.g:1116:4: (lv_condition_1_0= ruleExpression ) 3809 // InternalSolverLanguageParser.g:1526:4: (lv_condition_1_0= ruleDisjunctiveExpression )
2759 { 3810 {
2760 // InternalSolverLanguageParser.g:1116:4: (lv_condition_1_0= ruleExpression ) 3811 // InternalSolverLanguageParser.g:1526:4: (lv_condition_1_0= ruleDisjunctiveExpression )
2761 // InternalSolverLanguageParser.g:1117:5: lv_condition_1_0= ruleExpression 3812 // InternalSolverLanguageParser.g:1527:5: lv_condition_1_0= ruleDisjunctiveExpression
2762 { 3813 {
2763 3814
2764 newCompositeNode(grammarAccess.getIfElseAccess().getConditionExpressionParserRuleCall_1_0()); 3815 newCompositeNode(grammarAccess.getConditionalExpressionAccess().getConditionDisjunctiveExpressionParserRuleCall_1_0());
2765 3816
2766 pushFollow(FOLLOW_21); 3817 pushFollow(FOLLOW_25);
2767 lv_condition_1_0=ruleExpression(); 3818 lv_condition_1_0=ruleDisjunctiveExpression();
2768 3819
2769 state._fsp--; 3820 state._fsp--;
2770 3821
2771 3822
2772 if (current==null) { 3823 if (current==null) {
2773 current = createModelElementForParent(grammarAccess.getIfElseRule()); 3824 current = createModelElementForParent(grammarAccess.getConditionalExpressionRule());
2774 } 3825 }
2775 set( 3826 set(
2776 current, 3827 current,
2777 "condition", 3828 "condition",
2778 lv_condition_1_0, 3829 lv_condition_1_0,
2779 "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); 3830 "org.eclipse.viatra.solver.language.SolverLanguage.DisjunctiveExpression");
2780 afterParserOrEnumRuleCall(); 3831 afterParserOrEnumRuleCall();
2781 3832
2782 3833
@@ -2785,27 +3836,27 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2785 3836
2786 } 3837 }
2787 3838
2788 otherlv_2=(Token)match(input,Then,FOLLOW_6); 3839 otherlv_2=(Token)match(input,Then,FOLLOW_10);
2789 3840
2790 newLeafNode(otherlv_2, grammarAccess.getIfElseAccess().getThenKeyword_2()); 3841 newLeafNode(otherlv_2, grammarAccess.getConditionalExpressionAccess().getThenKeyword_2());
2791 3842
2792 // InternalSolverLanguageParser.g:1138:3: ( (lv_then_3_0= ruleExpression ) ) 3843 // InternalSolverLanguageParser.g:1548:3: ( (lv_then_3_0= ruleExpression ) )
2793 // InternalSolverLanguageParser.g:1139:4: (lv_then_3_0= ruleExpression ) 3844 // InternalSolverLanguageParser.g:1549:4: (lv_then_3_0= ruleExpression )
2794 { 3845 {
2795 // InternalSolverLanguageParser.g:1139:4: (lv_then_3_0= ruleExpression ) 3846 // InternalSolverLanguageParser.g:1549:4: (lv_then_3_0= ruleExpression )
2796 // InternalSolverLanguageParser.g:1140:5: lv_then_3_0= ruleExpression 3847 // InternalSolverLanguageParser.g:1550:5: lv_then_3_0= ruleExpression
2797 { 3848 {
2798 3849
2799 newCompositeNode(grammarAccess.getIfElseAccess().getThenExpressionParserRuleCall_3_0()); 3850 newCompositeNode(grammarAccess.getConditionalExpressionAccess().getThenExpressionParserRuleCall_3_0());
2800 3851
2801 pushFollow(FOLLOW_22); 3852 pushFollow(FOLLOW_26);
2802 lv_then_3_0=ruleExpression(); 3853 lv_then_3_0=ruleExpression();
2803 3854
2804 state._fsp--; 3855 state._fsp--;
2805 3856
2806 3857
2807 if (current==null) { 3858 if (current==null) {
2808 current = createModelElementForParent(grammarAccess.getIfElseRule()); 3859 current = createModelElementForParent(grammarAccess.getConditionalExpressionRule());
2809 } 3860 }
2810 set( 3861 set(
2811 current, 3862 current,
@@ -2820,18 +3871,18 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2820 3871
2821 } 3872 }
2822 3873
2823 otherlv_4=(Token)match(input,Else,FOLLOW_6); 3874 otherlv_4=(Token)match(input,Else,FOLLOW_10);
2824 3875
2825 newLeafNode(otherlv_4, grammarAccess.getIfElseAccess().getElseKeyword_4()); 3876 newLeafNode(otherlv_4, grammarAccess.getConditionalExpressionAccess().getElseKeyword_4());
2826 3877
2827 // InternalSolverLanguageParser.g:1161:3: ( (lv_else_5_0= ruleExpression ) ) 3878 // InternalSolverLanguageParser.g:1571:3: ( (lv_else_5_0= ruleExpression ) )
2828 // InternalSolverLanguageParser.g:1162:4: (lv_else_5_0= ruleExpression ) 3879 // InternalSolverLanguageParser.g:1572:4: (lv_else_5_0= ruleExpression )
2829 { 3880 {
2830 // InternalSolverLanguageParser.g:1162:4: (lv_else_5_0= ruleExpression ) 3881 // InternalSolverLanguageParser.g:1572:4: (lv_else_5_0= ruleExpression )
2831 // InternalSolverLanguageParser.g:1163:5: lv_else_5_0= ruleExpression 3882 // InternalSolverLanguageParser.g:1573:5: lv_else_5_0= ruleExpression
2832 { 3883 {
2833 3884
2834 newCompositeNode(grammarAccess.getIfElseAccess().getElseExpressionParserRuleCall_5_0()); 3885 newCompositeNode(grammarAccess.getConditionalExpressionAccess().getElseExpressionParserRuleCall_5_0());
2835 3886
2836 pushFollow(FOLLOW_2); 3887 pushFollow(FOLLOW_2);
2837 lv_else_5_0=ruleExpression(); 3888 lv_else_5_0=ruleExpression();
@@ -2840,7 +3891,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2840 3891
2841 3892
2842 if (current==null) { 3893 if (current==null) {
2843 current = createModelElementForParent(grammarAccess.getIfElseRule()); 3894 current = createModelElementForParent(grammarAccess.getConditionalExpressionRule());
2844 } 3895 }
2845 set( 3896 set(
2846 current, 3897 current,
@@ -2874,28 +3925,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2874 } 3925 }
2875 return current; 3926 return current;
2876 } 3927 }
2877 // $ANTLR end "ruleIfElse" 3928 // $ANTLR end "ruleConditionalExpression"
2878 3929
2879 3930
2880 // $ANTLR start "entryRuleLet" 3931 // $ANTLR start "entryRuleLetExpression"
2881 // InternalSolverLanguageParser.g:1184:1: entryRuleLet returns [EObject current=null] : iv_ruleLet= ruleLet EOF ; 3932 // InternalSolverLanguageParser.g:1594:1: entryRuleLetExpression returns [EObject current=null] : iv_ruleLetExpression= ruleLetExpression EOF ;
2882 public final EObject entryRuleLet() throws RecognitionException { 3933 public final EObject entryRuleLetExpression() throws RecognitionException {
2883 EObject current = null; 3934 EObject current = null;
2884 3935
2885 EObject iv_ruleLet = null; 3936 EObject iv_ruleLetExpression = null;
2886 3937
2887 3938
2888 try { 3939 try {
2889 // InternalSolverLanguageParser.g:1184:44: (iv_ruleLet= ruleLet EOF ) 3940 // InternalSolverLanguageParser.g:1594:54: (iv_ruleLetExpression= ruleLetExpression EOF )
2890 // InternalSolverLanguageParser.g:1185:2: iv_ruleLet= ruleLet EOF 3941 // InternalSolverLanguageParser.g:1595:2: iv_ruleLetExpression= ruleLetExpression EOF
2891 { 3942 {
2892 newCompositeNode(grammarAccess.getLetRule()); 3943 newCompositeNode(grammarAccess.getLetExpressionRule());
2893 pushFollow(FOLLOW_1); 3944 pushFollow(FOLLOW_1);
2894 iv_ruleLet=ruleLet(); 3945 iv_ruleLetExpression=ruleLetExpression();
2895 3946
2896 state._fsp--; 3947 state._fsp--;
2897 3948
2898 current =iv_ruleLet; 3949 current =iv_ruleLetExpression;
2899 match(input,EOF,FOLLOW_2); 3950 match(input,EOF,FOLLOW_2);
2900 3951
2901 } 3952 }
@@ -2910,12 +3961,12 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2910 } 3961 }
2911 return current; 3962 return current;
2912 } 3963 }
2913 // $ANTLR end "entryRuleLet" 3964 // $ANTLR end "entryRuleLetExpression"
2914 3965
2915 3966
2916 // $ANTLR start "ruleLet" 3967 // $ANTLR start "ruleLetExpression"
2917 // InternalSolverLanguageParser.g:1191:1: ruleLet returns [EObject current=null] : (otherlv_0= Let ( (lv_bindings_1_0= ruleLetBinding ) ) (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* otherlv_4= In ( (lv_body_5_0= ruleExpression ) ) ) ; 3968 // InternalSolverLanguageParser.g:1601:1: ruleLetExpression returns [EObject current=null] : (otherlv_0= Let ( (lv_bindings_1_0= ruleLetBinding ) ) (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* otherlv_4= In ( (lv_body_5_0= ruleExpression ) ) ) ;
2918 public final EObject ruleLet() throws RecognitionException { 3969 public final EObject ruleLetExpression() throws RecognitionException {
2919 EObject current = null; 3970 EObject current = null;
2920 3971
2921 Token otherlv_0=null; 3972 Token otherlv_0=null;
@@ -2932,33 +3983,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2932 enterRule(); 3983 enterRule();
2933 3984
2934 try { 3985 try {
2935 // InternalSolverLanguageParser.g:1197:2: ( (otherlv_0= Let ( (lv_bindings_1_0= ruleLetBinding ) ) (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* otherlv_4= In ( (lv_body_5_0= ruleExpression ) ) ) ) 3986 // InternalSolverLanguageParser.g:1607:2: ( (otherlv_0= Let ( (lv_bindings_1_0= ruleLetBinding ) ) (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* otherlv_4= In ( (lv_body_5_0= ruleExpression ) ) ) )
2936 // InternalSolverLanguageParser.g:1198:2: (otherlv_0= Let ( (lv_bindings_1_0= ruleLetBinding ) ) (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* otherlv_4= In ( (lv_body_5_0= ruleExpression ) ) ) 3987 // InternalSolverLanguageParser.g:1608:2: (otherlv_0= Let ( (lv_bindings_1_0= ruleLetBinding ) ) (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* otherlv_4= In ( (lv_body_5_0= ruleExpression ) ) )
2937 { 3988 {
2938 // InternalSolverLanguageParser.g:1198:2: (otherlv_0= Let ( (lv_bindings_1_0= ruleLetBinding ) ) (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* otherlv_4= In ( (lv_body_5_0= ruleExpression ) ) ) 3989 // InternalSolverLanguageParser.g:1608:2: (otherlv_0= Let ( (lv_bindings_1_0= ruleLetBinding ) ) (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* otherlv_4= In ( (lv_body_5_0= ruleExpression ) ) )
2939 // InternalSolverLanguageParser.g:1199:3: otherlv_0= Let ( (lv_bindings_1_0= ruleLetBinding ) ) (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* otherlv_4= In ( (lv_body_5_0= ruleExpression ) ) 3990 // InternalSolverLanguageParser.g:1609:3: otherlv_0= Let ( (lv_bindings_1_0= ruleLetBinding ) ) (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* otherlv_4= In ( (lv_body_5_0= ruleExpression ) )
2940 { 3991 {
2941 otherlv_0=(Token)match(input,Let,FOLLOW_8); 3992 otherlv_0=(Token)match(input,Let,FOLLOW_3);
2942 3993
2943 newLeafNode(otherlv_0, grammarAccess.getLetAccess().getLetKeyword_0()); 3994 newLeafNode(otherlv_0, grammarAccess.getLetExpressionAccess().getLetKeyword_0());
2944 3995
2945 // InternalSolverLanguageParser.g:1203:3: ( (lv_bindings_1_0= ruleLetBinding ) ) 3996 // InternalSolverLanguageParser.g:1613:3: ( (lv_bindings_1_0= ruleLetBinding ) )
2946 // InternalSolverLanguageParser.g:1204:4: (lv_bindings_1_0= ruleLetBinding ) 3997 // InternalSolverLanguageParser.g:1614:4: (lv_bindings_1_0= ruleLetBinding )
2947 { 3998 {
2948 // InternalSolverLanguageParser.g:1204:4: (lv_bindings_1_0= ruleLetBinding ) 3999 // InternalSolverLanguageParser.g:1614:4: (lv_bindings_1_0= ruleLetBinding )
2949 // InternalSolverLanguageParser.g:1205:5: lv_bindings_1_0= ruleLetBinding 4000 // InternalSolverLanguageParser.g:1615:5: lv_bindings_1_0= ruleLetBinding
2950 { 4001 {
2951 4002
2952 newCompositeNode(grammarAccess.getLetAccess().getBindingsLetBindingParserRuleCall_1_0()); 4003 newCompositeNode(grammarAccess.getLetExpressionAccess().getBindingsLetBindingParserRuleCall_1_0());
2953 4004
2954 pushFollow(FOLLOW_23); 4005 pushFollow(FOLLOW_27);
2955 lv_bindings_1_0=ruleLetBinding(); 4006 lv_bindings_1_0=ruleLetBinding();
2956 4007
2957 state._fsp--; 4008 state._fsp--;
2958 4009
2959 4010
2960 if (current==null) { 4011 if (current==null) {
2961 current = createModelElementForParent(grammarAccess.getLetRule()); 4012 current = createModelElementForParent(grammarAccess.getLetExpressionRule());
2962 } 4013 }
2963 add( 4014 add(
2964 current, 4015 current,
@@ -2973,42 +4024,42 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2973 4024
2974 } 4025 }
2975 4026
2976 // InternalSolverLanguageParser.g:1222:3: (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )* 4027 // InternalSolverLanguageParser.g:1632:3: (otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) )*
2977 loop10: 4028 loop17:
2978 do { 4029 do {
2979 int alt10=2; 4030 int alt17=2;
2980 int LA10_0 = input.LA(1); 4031 int LA17_0 = input.LA(1);
2981 4032
2982 if ( (LA10_0==Comma) ) { 4033 if ( (LA17_0==Comma) ) {
2983 alt10=1; 4034 alt17=1;
2984 } 4035 }
2985 4036
2986 4037
2987 switch (alt10) { 4038 switch (alt17) {
2988 case 1 : 4039 case 1 :
2989 // InternalSolverLanguageParser.g:1223:4: otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) ) 4040 // InternalSolverLanguageParser.g:1633:4: otherlv_2= Comma ( (lv_bindings_3_0= ruleLetBinding ) )
2990 { 4041 {
2991 otherlv_2=(Token)match(input,Comma,FOLLOW_8); 4042 otherlv_2=(Token)match(input,Comma,FOLLOW_3);
2992 4043
2993 newLeafNode(otherlv_2, grammarAccess.getLetAccess().getCommaKeyword_2_0()); 4044 newLeafNode(otherlv_2, grammarAccess.getLetExpressionAccess().getCommaKeyword_2_0());
2994 4045
2995 // InternalSolverLanguageParser.g:1227:4: ( (lv_bindings_3_0= ruleLetBinding ) ) 4046 // InternalSolverLanguageParser.g:1637:4: ( (lv_bindings_3_0= ruleLetBinding ) )
2996 // InternalSolverLanguageParser.g:1228:5: (lv_bindings_3_0= ruleLetBinding ) 4047 // InternalSolverLanguageParser.g:1638:5: (lv_bindings_3_0= ruleLetBinding )
2997 { 4048 {
2998 // InternalSolverLanguageParser.g:1228:5: (lv_bindings_3_0= ruleLetBinding ) 4049 // InternalSolverLanguageParser.g:1638:5: (lv_bindings_3_0= ruleLetBinding )
2999 // InternalSolverLanguageParser.g:1229:6: lv_bindings_3_0= ruleLetBinding 4050 // InternalSolverLanguageParser.g:1639:6: lv_bindings_3_0= ruleLetBinding
3000 { 4051 {
3001 4052
3002 newCompositeNode(grammarAccess.getLetAccess().getBindingsLetBindingParserRuleCall_2_1_0()); 4053 newCompositeNode(grammarAccess.getLetExpressionAccess().getBindingsLetBindingParserRuleCall_2_1_0());
3003 4054
3004 pushFollow(FOLLOW_23); 4055 pushFollow(FOLLOW_27);
3005 lv_bindings_3_0=ruleLetBinding(); 4056 lv_bindings_3_0=ruleLetBinding();
3006 4057
3007 state._fsp--; 4058 state._fsp--;
3008 4059
3009 4060
3010 if (current==null) { 4061 if (current==null) {
3011 current = createModelElementForParent(grammarAccess.getLetRule()); 4062 current = createModelElementForParent(grammarAccess.getLetExpressionRule());
3012 } 4063 }
3013 add( 4064 add(
3014 current, 4065 current,
@@ -3028,22 +4079,22 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3028 break; 4079 break;
3029 4080
3030 default : 4081 default :
3031 break loop10; 4082 break loop17;
3032 } 4083 }
3033 } while (true); 4084 } while (true);
3034 4085
3035 otherlv_4=(Token)match(input,In,FOLLOW_6); 4086 otherlv_4=(Token)match(input,In,FOLLOW_10);
3036 4087
3037 newLeafNode(otherlv_4, grammarAccess.getLetAccess().getInKeyword_3()); 4088 newLeafNode(otherlv_4, grammarAccess.getLetExpressionAccess().getInKeyword_3());
3038 4089
3039 // InternalSolverLanguageParser.g:1251:3: ( (lv_body_5_0= ruleExpression ) ) 4090 // InternalSolverLanguageParser.g:1661:3: ( (lv_body_5_0= ruleExpression ) )
3040 // InternalSolverLanguageParser.g:1252:4: (lv_body_5_0= ruleExpression ) 4091 // InternalSolverLanguageParser.g:1662:4: (lv_body_5_0= ruleExpression )
3041 { 4092 {
3042 // InternalSolverLanguageParser.g:1252:4: (lv_body_5_0= ruleExpression ) 4093 // InternalSolverLanguageParser.g:1662:4: (lv_body_5_0= ruleExpression )
3043 // InternalSolverLanguageParser.g:1253:5: lv_body_5_0= ruleExpression 4094 // InternalSolverLanguageParser.g:1663:5: lv_body_5_0= ruleExpression
3044 { 4095 {
3045 4096
3046 newCompositeNode(grammarAccess.getLetAccess().getBodyExpressionParserRuleCall_4_0()); 4097 newCompositeNode(grammarAccess.getLetExpressionAccess().getBodyExpressionParserRuleCall_4_0());
3047 4098
3048 pushFollow(FOLLOW_2); 4099 pushFollow(FOLLOW_2);
3049 lv_body_5_0=ruleExpression(); 4100 lv_body_5_0=ruleExpression();
@@ -3052,7 +4103,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3052 4103
3053 4104
3054 if (current==null) { 4105 if (current==null) {
3055 current = createModelElementForParent(grammarAccess.getLetRule()); 4106 current = createModelElementForParent(grammarAccess.getLetExpressionRule());
3056 } 4107 }
3057 set( 4108 set(
3058 current, 4109 current,
@@ -3086,11 +4137,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3086 } 4137 }
3087 return current; 4138 return current;
3088 } 4139 }
3089 // $ANTLR end "ruleLet" 4140 // $ANTLR end "ruleLetExpression"
3090 4141
3091 4142
3092 // $ANTLR start "entryRuleLetBinding" 4143 // $ANTLR start "entryRuleLetBinding"
3093 // InternalSolverLanguageParser.g:1274:1: entryRuleLetBinding returns [EObject current=null] : iv_ruleLetBinding= ruleLetBinding EOF ; 4144 // InternalSolverLanguageParser.g:1684:1: entryRuleLetBinding returns [EObject current=null] : iv_ruleLetBinding= ruleLetBinding EOF ;
3094 public final EObject entryRuleLetBinding() throws RecognitionException { 4145 public final EObject entryRuleLetBinding() throws RecognitionException {
3095 EObject current = null; 4146 EObject current = null;
3096 4147
@@ -3098,8 +4149,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3098 4149
3099 4150
3100 try { 4151 try {
3101 // InternalSolverLanguageParser.g:1274:51: (iv_ruleLetBinding= ruleLetBinding EOF ) 4152 // InternalSolverLanguageParser.g:1684:51: (iv_ruleLetBinding= ruleLetBinding EOF )
3102 // InternalSolverLanguageParser.g:1275:2: iv_ruleLetBinding= ruleLetBinding EOF 4153 // InternalSolverLanguageParser.g:1685:2: iv_ruleLetBinding= ruleLetBinding EOF
3103 { 4154 {
3104 newCompositeNode(grammarAccess.getLetBindingRule()); 4155 newCompositeNode(grammarAccess.getLetBindingRule());
3105 pushFollow(FOLLOW_1); 4156 pushFollow(FOLLOW_1);
@@ -3126,50 +4177,90 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3126 4177
3127 4178
3128 // $ANTLR start "ruleLetBinding" 4179 // $ANTLR start "ruleLetBinding"
3129 // InternalSolverLanguageParser.g:1281:1: ruleLetBinding returns [EObject current=null] : ( ( (lv_variable_0_0= ruleVariable ) ) otherlv_1= EqualsSign ( (lv_value_2_0= ruleAdditiveExpression ) ) ) ; 4180 // InternalSolverLanguageParser.g:1691:1: ruleLetBinding returns [EObject current=null] : ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= RULE_ID ) ) otherlv_2= EqualsSign ( (lv_value_3_0= ruleAdditiveExpression ) ) ) ;
3130 public final EObject ruleLetBinding() throws RecognitionException { 4181 public final EObject ruleLetBinding() throws RecognitionException {
3131 EObject current = null; 4182 EObject current = null;
3132 4183
3133 Token otherlv_1=null; 4184 Token lv_name_1_0=null;
3134 EObject lv_variable_0_0 = null; 4185 Token otherlv_2=null;
3135 4186 EObject lv_value_3_0 = null;
3136 EObject lv_value_2_0 = null;
3137 4187
3138 4188
3139 4189
3140 enterRule(); 4190 enterRule();
3141 4191
3142 try { 4192 try {
3143 // InternalSolverLanguageParser.g:1287:2: ( ( ( (lv_variable_0_0= ruleVariable ) ) otherlv_1= EqualsSign ( (lv_value_2_0= ruleAdditiveExpression ) ) ) ) 4193 // InternalSolverLanguageParser.g:1697:2: ( ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= RULE_ID ) ) otherlv_2= EqualsSign ( (lv_value_3_0= ruleAdditiveExpression ) ) ) )
3144 // InternalSolverLanguageParser.g:1288:2: ( ( (lv_variable_0_0= ruleVariable ) ) otherlv_1= EqualsSign ( (lv_value_2_0= ruleAdditiveExpression ) ) ) 4194 // InternalSolverLanguageParser.g:1698:2: ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= RULE_ID ) ) otherlv_2= EqualsSign ( (lv_value_3_0= ruleAdditiveExpression ) ) )
3145 { 4195 {
3146 // InternalSolverLanguageParser.g:1288:2: ( ( (lv_variable_0_0= ruleVariable ) ) otherlv_1= EqualsSign ( (lv_value_2_0= ruleAdditiveExpression ) ) ) 4196 // InternalSolverLanguageParser.g:1698:2: ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= RULE_ID ) ) otherlv_2= EqualsSign ( (lv_value_3_0= ruleAdditiveExpression ) ) )
3147 // InternalSolverLanguageParser.g:1289:3: ( (lv_variable_0_0= ruleVariable ) ) otherlv_1= EqualsSign ( (lv_value_2_0= ruleAdditiveExpression ) ) 4197 // InternalSolverLanguageParser.g:1699:3: ( ( ruleQualifiedName ) )? ( (lv_name_1_0= RULE_ID ) ) otherlv_2= EqualsSign ( (lv_value_3_0= ruleAdditiveExpression ) )
3148 { 4198 {
3149 // InternalSolverLanguageParser.g:1289:3: ( (lv_variable_0_0= ruleVariable ) ) 4199 // InternalSolverLanguageParser.g:1699:3: ( ( ruleQualifiedName ) )?
3150 // InternalSolverLanguageParser.g:1290:4: (lv_variable_0_0= ruleVariable ) 4200 int alt18=2;
4201 int LA18_0 = input.LA(1);
4202
4203 if ( (LA18_0==RULE_ID) ) {
4204 int LA18_1 = input.LA(2);
4205
4206 if ( (LA18_1==ColonColon||LA18_1==RULE_ID) ) {
4207 alt18=1;
4208 }
4209 }
4210 else if ( (LA18_0==Object||LA18_0==RULE_QUOTED_ID) ) {
4211 alt18=1;
4212 }
4213 switch (alt18) {
4214 case 1 :
4215 // InternalSolverLanguageParser.g:1700:4: ( ruleQualifiedName )
4216 {
4217 // InternalSolverLanguageParser.g:1700:4: ( ruleQualifiedName )
4218 // InternalSolverLanguageParser.g:1701:5: ruleQualifiedName
4219 {
4220
4221 if (current==null) {
4222 current = createModelElement(grammarAccess.getLetBindingRule());
4223 }
4224
4225
4226 newCompositeNode(grammarAccess.getLetBindingAccess().getTypeSymbolCrossReference_0_0());
4227
4228 pushFollow(FOLLOW_28);
4229 ruleQualifiedName();
4230
4231 state._fsp--;
4232
4233
4234 afterParserOrEnumRuleCall();
4235
4236
4237 }
4238
4239
4240 }
4241 break;
4242
4243 }
4244
4245 // InternalSolverLanguageParser.g:1715:3: ( (lv_name_1_0= RULE_ID ) )
4246 // InternalSolverLanguageParser.g:1716:4: (lv_name_1_0= RULE_ID )
3151 { 4247 {
3152 // InternalSolverLanguageParser.g:1290:4: (lv_variable_0_0= ruleVariable ) 4248 // InternalSolverLanguageParser.g:1716:4: (lv_name_1_0= RULE_ID )
3153 // InternalSolverLanguageParser.g:1291:5: lv_variable_0_0= ruleVariable 4249 // InternalSolverLanguageParser.g:1717:5: lv_name_1_0= RULE_ID
3154 { 4250 {
4251 lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_29);
3155 4252
3156 newCompositeNode(grammarAccess.getLetBindingAccess().getVariableVariableParserRuleCall_0_0()); 4253 newLeafNode(lv_name_1_0, grammarAccess.getLetBindingAccess().getNameIDTerminalRuleCall_1_0());
3157 4254
3158 pushFollow(FOLLOW_13);
3159 lv_variable_0_0=ruleVariable();
3160
3161 state._fsp--;
3162
3163 4255
3164 if (current==null) { 4256 if (current==null) {
3165 current = createModelElementForParent(grammarAccess.getLetBindingRule()); 4257 current = createModelElement(grammarAccess.getLetBindingRule());
3166 } 4258 }
3167 set( 4259 setWithLastConsumed(
3168 current, 4260 current,
3169 "variable", 4261 "name",
3170 lv_variable_0_0, 4262 lv_name_1_0,
3171 "org.eclipse.viatra.solver.language.SolverLanguage.Variable"); 4263 "org.eclipse.xtext.common.Terminals.ID");
3172 afterParserOrEnumRuleCall();
3173 4264
3174 4265
3175 } 4266 }
@@ -3177,21 +4268,21 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3177 4268
3178 } 4269 }
3179 4270
3180 otherlv_1=(Token)match(input,EqualsSign,FOLLOW_6); 4271 otherlv_2=(Token)match(input,EqualsSign,FOLLOW_10);
3181 4272
3182 newLeafNode(otherlv_1, grammarAccess.getLetBindingAccess().getEqualsSignKeyword_1()); 4273 newLeafNode(otherlv_2, grammarAccess.getLetBindingAccess().getEqualsSignKeyword_2());
3183 4274
3184 // InternalSolverLanguageParser.g:1312:3: ( (lv_value_2_0= ruleAdditiveExpression ) ) 4275 // InternalSolverLanguageParser.g:1737:3: ( (lv_value_3_0= ruleAdditiveExpression ) )
3185 // InternalSolverLanguageParser.g:1313:4: (lv_value_2_0= ruleAdditiveExpression ) 4276 // InternalSolverLanguageParser.g:1738:4: (lv_value_3_0= ruleAdditiveExpression )
3186 { 4277 {
3187 // InternalSolverLanguageParser.g:1313:4: (lv_value_2_0= ruleAdditiveExpression ) 4278 // InternalSolverLanguageParser.g:1738:4: (lv_value_3_0= ruleAdditiveExpression )
3188 // InternalSolverLanguageParser.g:1314:5: lv_value_2_0= ruleAdditiveExpression 4279 // InternalSolverLanguageParser.g:1739:5: lv_value_3_0= ruleAdditiveExpression
3189 { 4280 {
3190 4281
3191 newCompositeNode(grammarAccess.getLetBindingAccess().getValueAdditiveExpressionParserRuleCall_2_0()); 4282 newCompositeNode(grammarAccess.getLetBindingAccess().getValueAdditiveExpressionParserRuleCall_3_0());
3192 4283
3193 pushFollow(FOLLOW_2); 4284 pushFollow(FOLLOW_2);
3194 lv_value_2_0=ruleAdditiveExpression(); 4285 lv_value_3_0=ruleAdditiveExpression();
3195 4286
3196 state._fsp--; 4287 state._fsp--;
3197 4288
@@ -3202,7 +4293,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3202 set( 4293 set(
3203 current, 4294 current,
3204 "value", 4295 "value",
3205 lv_value_2_0, 4296 lv_value_3_0,
3206 "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression"); 4297 "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression");
3207 afterParserOrEnumRuleCall(); 4298 afterParserOrEnumRuleCall();
3208 4299
@@ -3234,190 +4325,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3234 // $ANTLR end "ruleLetBinding" 4325 // $ANTLR end "ruleLetBinding"
3235 4326
3236 4327
3237 // $ANTLR start "entryRuleImplicationExpression"
3238 // InternalSolverLanguageParser.g:1335:1: entryRuleImplicationExpression returns [EObject current=null] : iv_ruleImplicationExpression= ruleImplicationExpression EOF ;
3239 public final EObject entryRuleImplicationExpression() throws RecognitionException {
3240 EObject current = null;
3241
3242 EObject iv_ruleImplicationExpression = null;
3243
3244
3245 try {
3246 // InternalSolverLanguageParser.g:1335:62: (iv_ruleImplicationExpression= ruleImplicationExpression EOF )
3247 // InternalSolverLanguageParser.g:1336:2: iv_ruleImplicationExpression= ruleImplicationExpression EOF
3248 {
3249 newCompositeNode(grammarAccess.getImplicationExpressionRule());
3250 pushFollow(FOLLOW_1);
3251 iv_ruleImplicationExpression=ruleImplicationExpression();
3252
3253 state._fsp--;
3254
3255 current =iv_ruleImplicationExpression;
3256 match(input,EOF,FOLLOW_2);
3257
3258 }
3259
3260 }
3261
3262 catch (RecognitionException re) {
3263 recover(input,re);
3264 appendSkippedTokens();
3265 }
3266 finally {
3267 }
3268 return current;
3269 }
3270 // $ANTLR end "entryRuleImplicationExpression"
3271
3272
3273 // $ANTLR start "ruleImplicationExpression"
3274 // InternalSolverLanguageParser.g:1342:1: ruleImplicationExpression returns [EObject current=null] : (this_DisjunctiveExpression_0= ruleDisjunctiveExpression ( () ( (lv_op_2_0= ruleImplicationOperator ) ) ( (lv_right_3_0= ruleImplicationExpression ) ) )? ) ;
3275 public final EObject ruleImplicationExpression() throws RecognitionException {
3276 EObject current = null;
3277
3278 EObject this_DisjunctiveExpression_0 = null;
3279
3280 Enumerator lv_op_2_0 = null;
3281
3282 EObject lv_right_3_0 = null;
3283
3284
3285
3286 enterRule();
3287
3288 try {
3289 // InternalSolverLanguageParser.g:1348:2: ( (this_DisjunctiveExpression_0= ruleDisjunctiveExpression ( () ( (lv_op_2_0= ruleImplicationOperator ) ) ( (lv_right_3_0= ruleImplicationExpression ) ) )? ) )
3290 // InternalSolverLanguageParser.g:1349:2: (this_DisjunctiveExpression_0= ruleDisjunctiveExpression ( () ( (lv_op_2_0= ruleImplicationOperator ) ) ( (lv_right_3_0= ruleImplicationExpression ) ) )? )
3291 {
3292 // InternalSolverLanguageParser.g:1349:2: (this_DisjunctiveExpression_0= ruleDisjunctiveExpression ( () ( (lv_op_2_0= ruleImplicationOperator ) ) ( (lv_right_3_0= ruleImplicationExpression ) ) )? )
3293 // InternalSolverLanguageParser.g:1350:3: this_DisjunctiveExpression_0= ruleDisjunctiveExpression ( () ( (lv_op_2_0= ruleImplicationOperator ) ) ( (lv_right_3_0= ruleImplicationExpression ) ) )?
3294 {
3295
3296 newCompositeNode(grammarAccess.getImplicationExpressionAccess().getDisjunctiveExpressionParserRuleCall_0());
3297
3298 pushFollow(FOLLOW_24);
3299 this_DisjunctiveExpression_0=ruleDisjunctiveExpression();
3300
3301 state._fsp--;
3302
3303
3304 current = this_DisjunctiveExpression_0;
3305 afterParserOrEnumRuleCall();
3306
3307 // InternalSolverLanguageParser.g:1358:3: ( () ( (lv_op_2_0= ruleImplicationOperator ) ) ( (lv_right_3_0= ruleImplicationExpression ) ) )?
3308 int alt11=2;
3309 int LA11_0 = input.LA(1);
3310
3311 if ( (LA11_0==EqualsSignGreaterThanSign) ) {
3312 alt11=1;
3313 }
3314 switch (alt11) {
3315 case 1 :
3316 // InternalSolverLanguageParser.g:1359:4: () ( (lv_op_2_0= ruleImplicationOperator ) ) ( (lv_right_3_0= ruleImplicationExpression ) )
3317 {
3318 // InternalSolverLanguageParser.g:1359:4: ()
3319 // InternalSolverLanguageParser.g:1360:5:
3320 {
3321
3322 current = forceCreateModelElementAndSet(
3323 grammarAccess.getImplicationExpressionAccess().getBinaryExpressionLeftAction_1_0(),
3324 current);
3325
3326
3327 }
3328
3329 // InternalSolverLanguageParser.g:1366:4: ( (lv_op_2_0= ruleImplicationOperator ) )
3330 // InternalSolverLanguageParser.g:1367:5: (lv_op_2_0= ruleImplicationOperator )
3331 {
3332 // InternalSolverLanguageParser.g:1367:5: (lv_op_2_0= ruleImplicationOperator )
3333 // InternalSolverLanguageParser.g:1368:6: lv_op_2_0= ruleImplicationOperator
3334 {
3335
3336 newCompositeNode(grammarAccess.getImplicationExpressionAccess().getOpImplicationOperatorEnumRuleCall_1_1_0());
3337
3338 pushFollow(FOLLOW_6);
3339 lv_op_2_0=ruleImplicationOperator();
3340
3341 state._fsp--;
3342
3343
3344 if (current==null) {
3345 current = createModelElementForParent(grammarAccess.getImplicationExpressionRule());
3346 }
3347 set(
3348 current,
3349 "op",
3350 lv_op_2_0,
3351 "org.eclipse.viatra.solver.language.SolverLanguage.ImplicationOperator");
3352 afterParserOrEnumRuleCall();
3353
3354
3355 }
3356
3357
3358 }
3359
3360 // InternalSolverLanguageParser.g:1385:4: ( (lv_right_3_0= ruleImplicationExpression ) )
3361 // InternalSolverLanguageParser.g:1386:5: (lv_right_3_0= ruleImplicationExpression )
3362 {
3363 // InternalSolverLanguageParser.g:1386:5: (lv_right_3_0= ruleImplicationExpression )
3364 // InternalSolverLanguageParser.g:1387:6: lv_right_3_0= ruleImplicationExpression
3365 {
3366
3367 newCompositeNode(grammarAccess.getImplicationExpressionAccess().getRightImplicationExpressionParserRuleCall_1_2_0());
3368
3369 pushFollow(FOLLOW_2);
3370 lv_right_3_0=ruleImplicationExpression();
3371
3372 state._fsp--;
3373
3374
3375 if (current==null) {
3376 current = createModelElementForParent(grammarAccess.getImplicationExpressionRule());
3377 }
3378 set(
3379 current,
3380 "right",
3381 lv_right_3_0,
3382 "org.eclipse.viatra.solver.language.SolverLanguage.ImplicationExpression");
3383 afterParserOrEnumRuleCall();
3384
3385
3386 }
3387
3388
3389 }
3390
3391
3392 }
3393 break;
3394
3395 }
3396
3397
3398 }
3399
3400
3401 }
3402
3403
3404 leaveRule();
3405
3406 }
3407
3408 catch (RecognitionException re) {
3409 recover(input,re);
3410 appendSkippedTokens();
3411 }
3412 finally {
3413 }
3414 return current;
3415 }
3416 // $ANTLR end "ruleImplicationExpression"
3417
3418
3419 // $ANTLR start "entryRuleDisjunctiveExpression" 4328 // $ANTLR start "entryRuleDisjunctiveExpression"
3420 // InternalSolverLanguageParser.g:1409:1: entryRuleDisjunctiveExpression returns [EObject current=null] : iv_ruleDisjunctiveExpression= ruleDisjunctiveExpression EOF ; 4329 // InternalSolverLanguageParser.g:1760:1: entryRuleDisjunctiveExpression returns [EObject current=null] : iv_ruleDisjunctiveExpression= ruleDisjunctiveExpression EOF ;
3421 public final EObject entryRuleDisjunctiveExpression() throws RecognitionException { 4330 public final EObject entryRuleDisjunctiveExpression() throws RecognitionException {
3422 EObject current = null; 4331 EObject current = null;
3423 4332
@@ -3425,8 +4334,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3425 4334
3426 4335
3427 try { 4336 try {
3428 // InternalSolverLanguageParser.g:1409:62: (iv_ruleDisjunctiveExpression= ruleDisjunctiveExpression EOF ) 4337 // InternalSolverLanguageParser.g:1760:62: (iv_ruleDisjunctiveExpression= ruleDisjunctiveExpression EOF )
3429 // InternalSolverLanguageParser.g:1410:2: iv_ruleDisjunctiveExpression= ruleDisjunctiveExpression EOF 4338 // InternalSolverLanguageParser.g:1761:2: iv_ruleDisjunctiveExpression= ruleDisjunctiveExpression EOF
3430 { 4339 {
3431 newCompositeNode(grammarAccess.getDisjunctiveExpressionRule()); 4340 newCompositeNode(grammarAccess.getDisjunctiveExpressionRule());
3432 pushFollow(FOLLOW_1); 4341 pushFollow(FOLLOW_1);
@@ -3453,7 +4362,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3453 4362
3454 4363
3455 // $ANTLR start "ruleDisjunctiveExpression" 4364 // $ANTLR start "ruleDisjunctiveExpression"
3456 // InternalSolverLanguageParser.g:1416:1: ruleDisjunctiveExpression returns [EObject current=null] : (this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? ) ; 4365 // InternalSolverLanguageParser.g:1767:1: ruleDisjunctiveExpression returns [EObject current=null] : (this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? ) ;
3457 public final EObject ruleDisjunctiveExpression() throws RecognitionException { 4366 public final EObject ruleDisjunctiveExpression() throws RecognitionException {
3458 EObject current = null; 4367 EObject current = null;
3459 4368
@@ -3473,16 +4382,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3473 enterRule(); 4382 enterRule();
3474 4383
3475 try { 4384 try {
3476 // InternalSolverLanguageParser.g:1422:2: ( (this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? ) ) 4385 // InternalSolverLanguageParser.g:1773:2: ( (this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? ) )
3477 // InternalSolverLanguageParser.g:1423:2: (this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? ) 4386 // InternalSolverLanguageParser.g:1774:2: (this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? )
3478 { 4387 {
3479 // InternalSolverLanguageParser.g:1423:2: (this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? ) 4388 // InternalSolverLanguageParser.g:1774:2: (this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? )
3480 // InternalSolverLanguageParser.g:1424:3: this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? 4389 // InternalSolverLanguageParser.g:1775:3: this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )?
3481 { 4390 {
3482 4391
3483 newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getConjunctiveExpressionParserRuleCall_0()); 4392 newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getConjunctiveExpressionParserRuleCall_0());
3484 4393
3485 pushFollow(FOLLOW_25); 4394 pushFollow(FOLLOW_30);
3486 this_ConjunctiveExpression_0=ruleConjunctiveExpression(); 4395 this_ConjunctiveExpression_0=ruleConjunctiveExpression();
3487 4396
3488 state._fsp--; 4397 state._fsp--;
@@ -3491,25 +4400,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3491 current = this_ConjunctiveExpression_0; 4400 current = this_ConjunctiveExpression_0;
3492 afterParserOrEnumRuleCall(); 4401 afterParserOrEnumRuleCall();
3493 4402
3494 // InternalSolverLanguageParser.g:1432:3: ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )? 4403 // InternalSolverLanguageParser.g:1783:3: ( ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) )?
3495 int alt14=3; 4404 int alt21=3;
3496 int LA14_0 = input.LA(1); 4405 int LA21_0 = input.LA(1);
3497 4406
3498 if ( (LA14_0==Semicolon) ) { 4407 if ( (LA21_0==Semicolon) ) {
3499 alt14=1; 4408 alt21=1;
3500 } 4409 }
3501 else if ( (LA14_0==HyphenMinusGreaterThanSign) ) { 4410 else if ( (LA21_0==HyphenMinusGreaterThanSign) ) {
3502 alt14=2; 4411 alt21=2;
3503 } 4412 }
3504 switch (alt14) { 4413 switch (alt21) {
3505 case 1 : 4414 case 1 :
3506 // InternalSolverLanguageParser.g:1433:4: ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) 4415 // InternalSolverLanguageParser.g:1784:4: ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ )
3507 { 4416 {
3508 // InternalSolverLanguageParser.g:1433:4: ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) 4417 // InternalSolverLanguageParser.g:1784:4: ( () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ )
3509 // InternalSolverLanguageParser.g:1434:5: () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ 4418 // InternalSolverLanguageParser.g:1785:5: () (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+
3510 { 4419 {
3511 // InternalSolverLanguageParser.g:1434:5: () 4420 // InternalSolverLanguageParser.g:1785:5: ()
3512 // InternalSolverLanguageParser.g:1435:6: 4421 // InternalSolverLanguageParser.g:1786:6:
3513 { 4422 {
3514 4423
3515 current = forceCreateModelElementAndAdd( 4424 current = forceCreateModelElementAndAdd(
@@ -3519,36 +4428,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3519 4428
3520 } 4429 }
3521 4430
3522 // InternalSolverLanguageParser.g:1441:5: (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ 4431 // InternalSolverLanguageParser.g:1792:5: (otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+
3523 int cnt12=0; 4432 int cnt19=0;
3524 loop12: 4433 loop19:
3525 do { 4434 do {
3526 int alt12=2; 4435 int alt19=2;
3527 int LA12_0 = input.LA(1); 4436 int LA19_0 = input.LA(1);
3528 4437
3529 if ( (LA12_0==Semicolon) ) { 4438 if ( (LA19_0==Semicolon) ) {
3530 alt12=1; 4439 alt19=1;
3531 } 4440 }
3532 4441
3533 4442
3534 switch (alt12) { 4443 switch (alt19) {
3535 case 1 : 4444 case 1 :
3536 // InternalSolverLanguageParser.g:1442:6: otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) ) 4445 // InternalSolverLanguageParser.g:1793:6: otherlv_2= Semicolon ( (lv_children_3_0= ruleConjunctiveExpression ) )
3537 { 4446 {
3538 otherlv_2=(Token)match(input,Semicolon,FOLLOW_6); 4447 otherlv_2=(Token)match(input,Semicolon,FOLLOW_10);
3539 4448
3540 newLeafNode(otherlv_2, grammarAccess.getDisjunctiveExpressionAccess().getSemicolonKeyword_1_0_1_0()); 4449 newLeafNode(otherlv_2, grammarAccess.getDisjunctiveExpressionAccess().getSemicolonKeyword_1_0_1_0());
3541 4450
3542 // InternalSolverLanguageParser.g:1446:6: ( (lv_children_3_0= ruleConjunctiveExpression ) ) 4451 // InternalSolverLanguageParser.g:1797:6: ( (lv_children_3_0= ruleConjunctiveExpression ) )
3543 // InternalSolverLanguageParser.g:1447:7: (lv_children_3_0= ruleConjunctiveExpression ) 4452 // InternalSolverLanguageParser.g:1798:7: (lv_children_3_0= ruleConjunctiveExpression )
3544 { 4453 {
3545 // InternalSolverLanguageParser.g:1447:7: (lv_children_3_0= ruleConjunctiveExpression ) 4454 // InternalSolverLanguageParser.g:1798:7: (lv_children_3_0= ruleConjunctiveExpression )
3546 // InternalSolverLanguageParser.g:1448:8: lv_children_3_0= ruleConjunctiveExpression 4455 // InternalSolverLanguageParser.g:1799:8: lv_children_3_0= ruleConjunctiveExpression
3547 { 4456 {
3548 4457
3549 newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getChildrenConjunctiveExpressionParserRuleCall_1_0_1_1_0()); 4458 newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getChildrenConjunctiveExpressionParserRuleCall_1_0_1_1_0());
3550 4459
3551 pushFollow(FOLLOW_26); 4460 pushFollow(FOLLOW_31);
3552 lv_children_3_0=ruleConjunctiveExpression(); 4461 lv_children_3_0=ruleConjunctiveExpression();
3553 4462
3554 state._fsp--; 4463 state._fsp--;
@@ -3575,12 +4484,12 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3575 break; 4484 break;
3576 4485
3577 default : 4486 default :
3578 if ( cnt12 >= 1 ) break loop12; 4487 if ( cnt19 >= 1 ) break loop19;
3579 EarlyExitException eee = 4488 EarlyExitException eee =
3580 new EarlyExitException(12, input); 4489 new EarlyExitException(19, input);
3581 throw eee; 4490 throw eee;
3582 } 4491 }
3583 cnt12++; 4492 cnt19++;
3584 } while (true); 4493 } while (true);
3585 4494
3586 4495
@@ -3590,13 +4499,13 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3590 } 4499 }
3591 break; 4500 break;
3592 case 2 : 4501 case 2 :
3593 // InternalSolverLanguageParser.g:1468:4: ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) 4502 // InternalSolverLanguageParser.g:1819:4: ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* )
3594 { 4503 {
3595 // InternalSolverLanguageParser.g:1468:4: ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* ) 4504 // InternalSolverLanguageParser.g:1819:4: ( () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* )
3596 // InternalSolverLanguageParser.g:1469:5: () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* 4505 // InternalSolverLanguageParser.g:1820:5: () otherlv_5= HyphenMinusGreaterThanSign ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )*
3597 { 4506 {
3598 // InternalSolverLanguageParser.g:1469:5: () 4507 // InternalSolverLanguageParser.g:1820:5: ()
3599 // InternalSolverLanguageParser.g:1470:6: 4508 // InternalSolverLanguageParser.g:1821:6:
3600 { 4509 {
3601 4510
3602 current = forceCreateModelElementAndSet( 4511 current = forceCreateModelElementAndSet(
@@ -3606,20 +4515,20 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3606 4515
3607 } 4516 }
3608 4517
3609 otherlv_5=(Token)match(input,HyphenMinusGreaterThanSign,FOLLOW_6); 4518 otherlv_5=(Token)match(input,HyphenMinusGreaterThanSign,FOLLOW_10);
3610 4519
3611 newLeafNode(otherlv_5, grammarAccess.getDisjunctiveExpressionAccess().getHyphenMinusGreaterThanSignKeyword_1_1_1()); 4520 newLeafNode(otherlv_5, grammarAccess.getDisjunctiveExpressionAccess().getHyphenMinusGreaterThanSignKeyword_1_1_1());
3612 4521
3613 // InternalSolverLanguageParser.g:1480:5: ( (lv_body_6_0= ruleConjunctiveExpression ) ) 4522 // InternalSolverLanguageParser.g:1831:5: ( (lv_body_6_0= ruleConjunctiveExpression ) )
3614 // InternalSolverLanguageParser.g:1481:6: (lv_body_6_0= ruleConjunctiveExpression ) 4523 // InternalSolverLanguageParser.g:1832:6: (lv_body_6_0= ruleConjunctiveExpression )
3615 { 4524 {
3616 // InternalSolverLanguageParser.g:1481:6: (lv_body_6_0= ruleConjunctiveExpression ) 4525 // InternalSolverLanguageParser.g:1832:6: (lv_body_6_0= ruleConjunctiveExpression )
3617 // InternalSolverLanguageParser.g:1482:7: lv_body_6_0= ruleConjunctiveExpression 4526 // InternalSolverLanguageParser.g:1833:7: lv_body_6_0= ruleConjunctiveExpression
3618 { 4527 {
3619 4528
3620 newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getBodyConjunctiveExpressionParserRuleCall_1_1_2_0()); 4529 newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getBodyConjunctiveExpressionParserRuleCall_1_1_2_0());
3621 4530
3622 pushFollow(FOLLOW_26); 4531 pushFollow(FOLLOW_31);
3623 lv_body_6_0=ruleConjunctiveExpression(); 4532 lv_body_6_0=ruleConjunctiveExpression();
3624 4533
3625 state._fsp--; 4534 state._fsp--;
@@ -3641,8 +4550,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3641 4550
3642 } 4551 }
3643 4552
3644 // InternalSolverLanguageParser.g:1499:5: () 4553 // InternalSolverLanguageParser.g:1850:5: ()
3645 // InternalSolverLanguageParser.g:1500:6: 4554 // InternalSolverLanguageParser.g:1851:6:
3646 { 4555 {
3647 4556
3648 current = forceCreateModelElementAndAdd( 4557 current = forceCreateModelElementAndAdd(
@@ -3652,35 +4561,35 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3652 4561
3653 } 4562 }
3654 4563
3655 // InternalSolverLanguageParser.g:1506:5: (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )* 4564 // InternalSolverLanguageParser.g:1857:5: (otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) )*
3656 loop13: 4565 loop20:
3657 do { 4566 do {
3658 int alt13=2; 4567 int alt20=2;
3659 int LA13_0 = input.LA(1); 4568 int LA20_0 = input.LA(1);
3660 4569
3661 if ( (LA13_0==Semicolon) ) { 4570 if ( (LA20_0==Semicolon) ) {
3662 alt13=1; 4571 alt20=1;
3663 } 4572 }
3664 4573
3665 4574
3666 switch (alt13) { 4575 switch (alt20) {
3667 case 1 : 4576 case 1 :
3668 // InternalSolverLanguageParser.g:1507:6: otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) ) 4577 // InternalSolverLanguageParser.g:1858:6: otherlv_8= Semicolon ( (lv_cases_9_0= ruleCase ) )
3669 { 4578 {
3670 otherlv_8=(Token)match(input,Semicolon,FOLLOW_6); 4579 otherlv_8=(Token)match(input,Semicolon,FOLLOW_10);
3671 4580
3672 newLeafNode(otherlv_8, grammarAccess.getDisjunctiveExpressionAccess().getSemicolonKeyword_1_1_4_0()); 4581 newLeafNode(otherlv_8, grammarAccess.getDisjunctiveExpressionAccess().getSemicolonKeyword_1_1_4_0());
3673 4582
3674 // InternalSolverLanguageParser.g:1511:6: ( (lv_cases_9_0= ruleCase ) ) 4583 // InternalSolverLanguageParser.g:1862:6: ( (lv_cases_9_0= ruleCase ) )
3675 // InternalSolverLanguageParser.g:1512:7: (lv_cases_9_0= ruleCase ) 4584 // InternalSolverLanguageParser.g:1863:7: (lv_cases_9_0= ruleCase )
3676 { 4585 {
3677 // InternalSolverLanguageParser.g:1512:7: (lv_cases_9_0= ruleCase ) 4586 // InternalSolverLanguageParser.g:1863:7: (lv_cases_9_0= ruleCase )
3678 // InternalSolverLanguageParser.g:1513:8: lv_cases_9_0= ruleCase 4587 // InternalSolverLanguageParser.g:1864:8: lv_cases_9_0= ruleCase
3679 { 4588 {
3680 4589
3681 newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getCasesCaseParserRuleCall_1_1_4_1_0()); 4590 newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getCasesCaseParserRuleCall_1_1_4_1_0());
3682 4591
3683 pushFollow(FOLLOW_26); 4592 pushFollow(FOLLOW_31);
3684 lv_cases_9_0=ruleCase(); 4593 lv_cases_9_0=ruleCase();
3685 4594
3686 state._fsp--; 4595 state._fsp--;
@@ -3707,7 +4616,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3707 break; 4616 break;
3708 4617
3709 default : 4618 default :
3710 break loop13; 4619 break loop20;
3711 } 4620 }
3712 } while (true); 4621 } while (true);
3713 4622
@@ -3743,7 +4652,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3743 4652
3744 4653
3745 // $ANTLR start "entryRuleCase" 4654 // $ANTLR start "entryRuleCase"
3746 // InternalSolverLanguageParser.g:1537:1: entryRuleCase returns [EObject current=null] : iv_ruleCase= ruleCase EOF ; 4655 // InternalSolverLanguageParser.g:1888:1: entryRuleCase returns [EObject current=null] : iv_ruleCase= ruleCase EOF ;
3747 public final EObject entryRuleCase() throws RecognitionException { 4656 public final EObject entryRuleCase() throws RecognitionException {
3748 EObject current = null; 4657 EObject current = null;
3749 4658
@@ -3751,8 +4660,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3751 4660
3752 4661
3753 try { 4662 try {
3754 // InternalSolverLanguageParser.g:1537:45: (iv_ruleCase= ruleCase EOF ) 4663 // InternalSolverLanguageParser.g:1888:45: (iv_ruleCase= ruleCase EOF )
3755 // InternalSolverLanguageParser.g:1538:2: iv_ruleCase= ruleCase EOF 4664 // InternalSolverLanguageParser.g:1889:2: iv_ruleCase= ruleCase EOF
3756 { 4665 {
3757 newCompositeNode(grammarAccess.getCaseRule()); 4666 newCompositeNode(grammarAccess.getCaseRule());
3758 pushFollow(FOLLOW_1); 4667 pushFollow(FOLLOW_1);
@@ -3779,7 +4688,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3779 4688
3780 4689
3781 // $ANTLR start "ruleCase" 4690 // $ANTLR start "ruleCase"
3782 // InternalSolverLanguageParser.g:1544:1: ruleCase returns [EObject current=null] : ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= HyphenMinusGreaterThanSign ( (lv_body_2_0= ruleConjunctiveExpression ) ) ) ; 4691 // InternalSolverLanguageParser.g:1895:1: ruleCase returns [EObject current=null] : ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= HyphenMinusGreaterThanSign ( (lv_body_2_0= ruleConjunctiveExpression ) ) ) ;
3783 public final EObject ruleCase() throws RecognitionException { 4692 public final EObject ruleCase() throws RecognitionException {
3784 EObject current = null; 4693 EObject current = null;
3785 4694
@@ -3793,22 +4702,22 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3793 enterRule(); 4702 enterRule();
3794 4703
3795 try { 4704 try {
3796 // InternalSolverLanguageParser.g:1550:2: ( ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= HyphenMinusGreaterThanSign ( (lv_body_2_0= ruleConjunctiveExpression ) ) ) ) 4705 // InternalSolverLanguageParser.g:1901:2: ( ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= HyphenMinusGreaterThanSign ( (lv_body_2_0= ruleConjunctiveExpression ) ) ) )
3797 // InternalSolverLanguageParser.g:1551:2: ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= HyphenMinusGreaterThanSign ( (lv_body_2_0= ruleConjunctiveExpression ) ) ) 4706 // InternalSolverLanguageParser.g:1902:2: ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= HyphenMinusGreaterThanSign ( (lv_body_2_0= ruleConjunctiveExpression ) ) )
3798 { 4707 {
3799 // InternalSolverLanguageParser.g:1551:2: ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= HyphenMinusGreaterThanSign ( (lv_body_2_0= ruleConjunctiveExpression ) ) ) 4708 // InternalSolverLanguageParser.g:1902:2: ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= HyphenMinusGreaterThanSign ( (lv_body_2_0= ruleConjunctiveExpression ) ) )
3800 // InternalSolverLanguageParser.g:1552:3: ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= HyphenMinusGreaterThanSign ( (lv_body_2_0= ruleConjunctiveExpression ) ) 4709 // InternalSolverLanguageParser.g:1903:3: ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= HyphenMinusGreaterThanSign ( (lv_body_2_0= ruleConjunctiveExpression ) )
3801 { 4710 {
3802 // InternalSolverLanguageParser.g:1552:3: ( (lv_condition_0_0= ruleConjunctiveExpression ) ) 4711 // InternalSolverLanguageParser.g:1903:3: ( (lv_condition_0_0= ruleConjunctiveExpression ) )
3803 // InternalSolverLanguageParser.g:1553:4: (lv_condition_0_0= ruleConjunctiveExpression ) 4712 // InternalSolverLanguageParser.g:1904:4: (lv_condition_0_0= ruleConjunctiveExpression )
3804 { 4713 {
3805 // InternalSolverLanguageParser.g:1553:4: (lv_condition_0_0= ruleConjunctiveExpression ) 4714 // InternalSolverLanguageParser.g:1904:4: (lv_condition_0_0= ruleConjunctiveExpression )
3806 // InternalSolverLanguageParser.g:1554:5: lv_condition_0_0= ruleConjunctiveExpression 4715 // InternalSolverLanguageParser.g:1905:5: lv_condition_0_0= ruleConjunctiveExpression
3807 { 4716 {
3808 4717
3809 newCompositeNode(grammarAccess.getCaseAccess().getConditionConjunctiveExpressionParserRuleCall_0_0()); 4718 newCompositeNode(grammarAccess.getCaseAccess().getConditionConjunctiveExpressionParserRuleCall_0_0());
3810 4719
3811 pushFollow(FOLLOW_27); 4720 pushFollow(FOLLOW_32);
3812 lv_condition_0_0=ruleConjunctiveExpression(); 4721 lv_condition_0_0=ruleConjunctiveExpression();
3813 4722
3814 state._fsp--; 4723 state._fsp--;
@@ -3830,15 +4739,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3830 4739
3831 } 4740 }
3832 4741
3833 otherlv_1=(Token)match(input,HyphenMinusGreaterThanSign,FOLLOW_6); 4742 otherlv_1=(Token)match(input,HyphenMinusGreaterThanSign,FOLLOW_10);
3834 4743
3835 newLeafNode(otherlv_1, grammarAccess.getCaseAccess().getHyphenMinusGreaterThanSignKeyword_1()); 4744 newLeafNode(otherlv_1, grammarAccess.getCaseAccess().getHyphenMinusGreaterThanSignKeyword_1());
3836 4745
3837 // InternalSolverLanguageParser.g:1575:3: ( (lv_body_2_0= ruleConjunctiveExpression ) ) 4746 // InternalSolverLanguageParser.g:1926:3: ( (lv_body_2_0= ruleConjunctiveExpression ) )
3838 // InternalSolverLanguageParser.g:1576:4: (lv_body_2_0= ruleConjunctiveExpression ) 4747 // InternalSolverLanguageParser.g:1927:4: (lv_body_2_0= ruleConjunctiveExpression )
3839 { 4748 {
3840 // InternalSolverLanguageParser.g:1576:4: (lv_body_2_0= ruleConjunctiveExpression ) 4749 // InternalSolverLanguageParser.g:1927:4: (lv_body_2_0= ruleConjunctiveExpression )
3841 // InternalSolverLanguageParser.g:1577:5: lv_body_2_0= ruleConjunctiveExpression 4750 // InternalSolverLanguageParser.g:1928:5: lv_body_2_0= ruleConjunctiveExpression
3842 { 4751 {
3843 4752
3844 newCompositeNode(grammarAccess.getCaseAccess().getBodyConjunctiveExpressionParserRuleCall_2_0()); 4753 newCompositeNode(grammarAccess.getCaseAccess().getBodyConjunctiveExpressionParserRuleCall_2_0());
@@ -3888,7 +4797,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3888 4797
3889 4798
3890 // $ANTLR start "entryRuleConjunctiveExpression" 4799 // $ANTLR start "entryRuleConjunctiveExpression"
3891 // InternalSolverLanguageParser.g:1598:1: entryRuleConjunctiveExpression returns [EObject current=null] : iv_ruleConjunctiveExpression= ruleConjunctiveExpression EOF ; 4800 // InternalSolverLanguageParser.g:1949:1: entryRuleConjunctiveExpression returns [EObject current=null] : iv_ruleConjunctiveExpression= ruleConjunctiveExpression EOF ;
3892 public final EObject entryRuleConjunctiveExpression() throws RecognitionException { 4801 public final EObject entryRuleConjunctiveExpression() throws RecognitionException {
3893 EObject current = null; 4802 EObject current = null;
3894 4803
@@ -3896,8 +4805,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3896 4805
3897 4806
3898 try { 4807 try {
3899 // InternalSolverLanguageParser.g:1598:62: (iv_ruleConjunctiveExpression= ruleConjunctiveExpression EOF ) 4808 // InternalSolverLanguageParser.g:1949:62: (iv_ruleConjunctiveExpression= ruleConjunctiveExpression EOF )
3900 // InternalSolverLanguageParser.g:1599:2: iv_ruleConjunctiveExpression= ruleConjunctiveExpression EOF 4809 // InternalSolverLanguageParser.g:1950:2: iv_ruleConjunctiveExpression= ruleConjunctiveExpression EOF
3901 { 4810 {
3902 newCompositeNode(grammarAccess.getConjunctiveExpressionRule()); 4811 newCompositeNode(grammarAccess.getConjunctiveExpressionRule());
3903 pushFollow(FOLLOW_1); 4812 pushFollow(FOLLOW_1);
@@ -3924,7 +4833,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3924 4833
3925 4834
3926 // $ANTLR start "ruleConjunctiveExpression" 4835 // $ANTLR start "ruleConjunctiveExpression"
3927 // InternalSolverLanguageParser.g:1605:1: ruleConjunctiveExpression returns [EObject current=null] : (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? ) ; 4836 // InternalSolverLanguageParser.g:1956:1: ruleConjunctiveExpression returns [EObject current=null] : (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? ) ;
3928 public final EObject ruleConjunctiveExpression() throws RecognitionException { 4837 public final EObject ruleConjunctiveExpression() throws RecognitionException {
3929 EObject current = null; 4838 EObject current = null;
3930 4839
@@ -3938,16 +4847,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3938 enterRule(); 4847 enterRule();
3939 4848
3940 try { 4849 try {
3941 // InternalSolverLanguageParser.g:1611:2: ( (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? ) ) 4850 // InternalSolverLanguageParser.g:1962:2: ( (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? ) )
3942 // InternalSolverLanguageParser.g:1612:2: (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? ) 4851 // InternalSolverLanguageParser.g:1963:2: (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? )
3943 { 4852 {
3944 // InternalSolverLanguageParser.g:1612:2: (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? ) 4853 // InternalSolverLanguageParser.g:1963:2: (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? )
3945 // InternalSolverLanguageParser.g:1613:3: this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? 4854 // InternalSolverLanguageParser.g:1964:3: this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )?
3946 { 4855 {
3947 4856
3948 newCompositeNode(grammarAccess.getConjunctiveExpressionAccess().getComparisonExpressionParserRuleCall_0()); 4857 newCompositeNode(grammarAccess.getConjunctiveExpressionAccess().getComparisonExpressionParserRuleCall_0());
3949 4858
3950 pushFollow(FOLLOW_19); 4859 pushFollow(FOLLOW_33);
3951 this_ComparisonExpression_0=ruleComparisonExpression(); 4860 this_ComparisonExpression_0=ruleComparisonExpression();
3952 4861
3953 state._fsp--; 4862 state._fsp--;
@@ -3956,19 +4865,19 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3956 current = this_ComparisonExpression_0; 4865 current = this_ComparisonExpression_0;
3957 afterParserOrEnumRuleCall(); 4866 afterParserOrEnumRuleCall();
3958 4867
3959 // InternalSolverLanguageParser.g:1621:3: ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? 4868 // InternalSolverLanguageParser.g:1972:3: ( () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )?
3960 int alt16=2; 4869 int alt23=2;
3961 int LA16_0 = input.LA(1); 4870 int LA23_0 = input.LA(1);
3962 4871
3963 if ( (LA16_0==Comma) ) { 4872 if ( (LA23_0==Comma) ) {
3964 alt16=1; 4873 alt23=1;
3965 } 4874 }
3966 switch (alt16) { 4875 switch (alt23) {
3967 case 1 : 4876 case 1 :
3968 // InternalSolverLanguageParser.g:1622:4: () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ 4877 // InternalSolverLanguageParser.g:1973:4: () (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+
3969 { 4878 {
3970 // InternalSolverLanguageParser.g:1622:4: () 4879 // InternalSolverLanguageParser.g:1973:4: ()
3971 // InternalSolverLanguageParser.g:1623:5: 4880 // InternalSolverLanguageParser.g:1974:5:
3972 { 4881 {
3973 4882
3974 current = forceCreateModelElementAndAdd( 4883 current = forceCreateModelElementAndAdd(
@@ -3978,36 +4887,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3978 4887
3979 } 4888 }
3980 4889
3981 // InternalSolverLanguageParser.g:1629:4: (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+ 4890 // InternalSolverLanguageParser.g:1980:4: (otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) )+
3982 int cnt15=0; 4891 int cnt22=0;
3983 loop15: 4892 loop22:
3984 do { 4893 do {
3985 int alt15=2; 4894 int alt22=2;
3986 int LA15_0 = input.LA(1); 4895 int LA22_0 = input.LA(1);
3987 4896
3988 if ( (LA15_0==Comma) ) { 4897 if ( (LA22_0==Comma) ) {
3989 alt15=1; 4898 alt22=1;
3990 } 4899 }
3991 4900
3992 4901
3993 switch (alt15) { 4902 switch (alt22) {
3994 case 1 : 4903 case 1 :
3995 // InternalSolverLanguageParser.g:1630:5: otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) ) 4904 // InternalSolverLanguageParser.g:1981:5: otherlv_2= Comma ( (lv_children_3_0= ruleComparisonExpression ) )
3996 { 4905 {
3997 otherlv_2=(Token)match(input,Comma,FOLLOW_6); 4906 otherlv_2=(Token)match(input,Comma,FOLLOW_10);
3998 4907
3999 newLeafNode(otherlv_2, grammarAccess.getConjunctiveExpressionAccess().getCommaKeyword_1_1_0()); 4908 newLeafNode(otherlv_2, grammarAccess.getConjunctiveExpressionAccess().getCommaKeyword_1_1_0());
4000 4909
4001 // InternalSolverLanguageParser.g:1634:5: ( (lv_children_3_0= ruleComparisonExpression ) ) 4910 // InternalSolverLanguageParser.g:1985:5: ( (lv_children_3_0= ruleComparisonExpression ) )
4002 // InternalSolverLanguageParser.g:1635:6: (lv_children_3_0= ruleComparisonExpression ) 4911 // InternalSolverLanguageParser.g:1986:6: (lv_children_3_0= ruleComparisonExpression )
4003 { 4912 {
4004 // InternalSolverLanguageParser.g:1635:6: (lv_children_3_0= ruleComparisonExpression ) 4913 // InternalSolverLanguageParser.g:1986:6: (lv_children_3_0= ruleComparisonExpression )
4005 // InternalSolverLanguageParser.g:1636:7: lv_children_3_0= ruleComparisonExpression 4914 // InternalSolverLanguageParser.g:1987:7: lv_children_3_0= ruleComparisonExpression
4006 { 4915 {
4007 4916
4008 newCompositeNode(grammarAccess.getConjunctiveExpressionAccess().getChildrenComparisonExpressionParserRuleCall_1_1_1_0()); 4917 newCompositeNode(grammarAccess.getConjunctiveExpressionAccess().getChildrenComparisonExpressionParserRuleCall_1_1_1_0());
4009 4918
4010 pushFollow(FOLLOW_19); 4919 pushFollow(FOLLOW_33);
4011 lv_children_3_0=ruleComparisonExpression(); 4920 lv_children_3_0=ruleComparisonExpression();
4012 4921
4013 state._fsp--; 4922 state._fsp--;
@@ -4034,12 +4943,12 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4034 break; 4943 break;
4035 4944
4036 default : 4945 default :
4037 if ( cnt15 >= 1 ) break loop15; 4946 if ( cnt22 >= 1 ) break loop22;
4038 EarlyExitException eee = 4947 EarlyExitException eee =
4039 new EarlyExitException(15, input); 4948 new EarlyExitException(22, input);
4040 throw eee; 4949 throw eee;
4041 } 4950 }
4042 cnt15++; 4951 cnt22++;
4043 } while (true); 4952 } while (true);
4044 4953
4045 4954
@@ -4071,7 +4980,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4071 4980
4072 4981
4073 // $ANTLR start "entryRuleComparisonExpression" 4982 // $ANTLR start "entryRuleComparisonExpression"
4074 // InternalSolverLanguageParser.g:1659:1: entryRuleComparisonExpression returns [EObject current=null] : iv_ruleComparisonExpression= ruleComparisonExpression EOF ; 4983 // InternalSolverLanguageParser.g:2010:1: entryRuleComparisonExpression returns [EObject current=null] : iv_ruleComparisonExpression= ruleComparisonExpression EOF ;
4075 public final EObject entryRuleComparisonExpression() throws RecognitionException { 4984 public final EObject entryRuleComparisonExpression() throws RecognitionException {
4076 EObject current = null; 4985 EObject current = null;
4077 4986
@@ -4079,8 +4988,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4079 4988
4080 4989
4081 try { 4990 try {
4082 // InternalSolverLanguageParser.g:1659:61: (iv_ruleComparisonExpression= ruleComparisonExpression EOF ) 4991 // InternalSolverLanguageParser.g:2010:61: (iv_ruleComparisonExpression= ruleComparisonExpression EOF )
4083 // InternalSolverLanguageParser.g:1660:2: iv_ruleComparisonExpression= ruleComparisonExpression EOF 4992 // InternalSolverLanguageParser.g:2011:2: iv_ruleComparisonExpression= ruleComparisonExpression EOF
4084 { 4993 {
4085 newCompositeNode(grammarAccess.getComparisonExpressionRule()); 4994 newCompositeNode(grammarAccess.getComparisonExpressionRule());
4086 pushFollow(FOLLOW_1); 4995 pushFollow(FOLLOW_1);
@@ -4107,7 +5016,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4107 5016
4108 5017
4109 // $ANTLR start "ruleComparisonExpression" 5018 // $ANTLR start "ruleComparisonExpression"
4110 // InternalSolverLanguageParser.g:1666:1: ruleComparisonExpression returns [EObject current=null] : (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? ) ; 5019 // InternalSolverLanguageParser.g:2017:1: ruleComparisonExpression returns [EObject current=null] : (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? ) ;
4111 public final EObject ruleComparisonExpression() throws RecognitionException { 5020 public final EObject ruleComparisonExpression() throws RecognitionException {
4112 EObject current = null; 5021 EObject current = null;
4113 5022
@@ -4122,16 +5031,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4122 enterRule(); 5031 enterRule();
4123 5032
4124 try { 5033 try {
4125 // InternalSolverLanguageParser.g:1672:2: ( (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? ) ) 5034 // InternalSolverLanguageParser.g:2023:2: ( (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? ) )
4126 // InternalSolverLanguageParser.g:1673:2: (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? ) 5035 // InternalSolverLanguageParser.g:2024:2: (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? )
4127 { 5036 {
4128 // InternalSolverLanguageParser.g:1673:2: (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? ) 5037 // InternalSolverLanguageParser.g:2024:2: (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? )
4129 // InternalSolverLanguageParser.g:1674:3: this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? 5038 // InternalSolverLanguageParser.g:2025:3: this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )?
4130 { 5039 {
4131 5040
4132 newCompositeNode(grammarAccess.getComparisonExpressionAccess().getAdditiveExpressionParserRuleCall_0()); 5041 newCompositeNode(grammarAccess.getComparisonExpressionAccess().getAdditiveExpressionParserRuleCall_0());
4133 5042
4134 pushFollow(FOLLOW_28); 5043 pushFollow(FOLLOW_34);
4135 this_AdditiveExpression_0=ruleAdditiveExpression(); 5044 this_AdditiveExpression_0=ruleAdditiveExpression();
4136 5045
4137 state._fsp--; 5046 state._fsp--;
@@ -4140,38 +5049,38 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4140 current = this_AdditiveExpression_0; 5049 current = this_AdditiveExpression_0;
4141 afterParserOrEnumRuleCall(); 5050 afterParserOrEnumRuleCall();
4142 5051
4143 // InternalSolverLanguageParser.g:1682:3: ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? 5052 // InternalSolverLanguageParser.g:2033:3: ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )?
4144 int alt17=2; 5053 int alt24=2;
4145 int LA17_0 = input.LA(1); 5054 int LA24_0 = input.LA(1);
4146 5055
4147 if ( (LA17_0==ExclamationMarkEqualsSign||(LA17_0>=LessThanSignEqualsSign && LA17_0<=EqualsSignEqualsSign)||LA17_0==GreaterThanSignEqualsSign||LA17_0==In||LA17_0==LessThanSign||LA17_0==GreaterThanSign) ) { 5056 if ( (LA24_0==ExclamationMarkEqualsSign||(LA24_0>=LessThanSignEqualsSign && LA24_0<=EqualsSignEqualsSign)||LA24_0==GreaterThanSignEqualsSign||LA24_0==In||LA24_0==LessThanSign||LA24_0==GreaterThanSign) ) {
4148 alt17=1; 5057 alt24=1;
4149 } 5058 }
4150 switch (alt17) { 5059 switch (alt24) {
4151 case 1 : 5060 case 1 :
4152 // InternalSolverLanguageParser.g:1683:4: () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) 5061 // InternalSolverLanguageParser.g:2034:4: () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) )
4153 { 5062 {
4154 // InternalSolverLanguageParser.g:1683:4: () 5063 // InternalSolverLanguageParser.g:2034:4: ()
4155 // InternalSolverLanguageParser.g:1684:5: 5064 // InternalSolverLanguageParser.g:2035:5:
4156 { 5065 {
4157 5066
4158 current = forceCreateModelElementAndSet( 5067 current = forceCreateModelElementAndSet(
4159 grammarAccess.getComparisonExpressionAccess().getComparisonLeftAction_1_0(), 5068 grammarAccess.getComparisonExpressionAccess().getBinaryExpressionLeftAction_1_0(),
4160 current); 5069 current);
4161 5070
4162 5071
4163 } 5072 }
4164 5073
4165 // InternalSolverLanguageParser.g:1690:4: ( (lv_op_2_0= ruleComparisonOperator ) ) 5074 // InternalSolverLanguageParser.g:2041:4: ( (lv_op_2_0= ruleComparisonOperator ) )
4166 // InternalSolverLanguageParser.g:1691:5: (lv_op_2_0= ruleComparisonOperator ) 5075 // InternalSolverLanguageParser.g:2042:5: (lv_op_2_0= ruleComparisonOperator )
4167 { 5076 {
4168 // InternalSolverLanguageParser.g:1691:5: (lv_op_2_0= ruleComparisonOperator ) 5077 // InternalSolverLanguageParser.g:2042:5: (lv_op_2_0= ruleComparisonOperator )
4169 // InternalSolverLanguageParser.g:1692:6: lv_op_2_0= ruleComparisonOperator 5078 // InternalSolverLanguageParser.g:2043:6: lv_op_2_0= ruleComparisonOperator
4170 { 5079 {
4171 5080
4172 newCompositeNode(grammarAccess.getComparisonExpressionAccess().getOpComparisonOperatorEnumRuleCall_1_1_0()); 5081 newCompositeNode(grammarAccess.getComparisonExpressionAccess().getOpComparisonOperatorEnumRuleCall_1_1_0());
4173 5082
4174 pushFollow(FOLLOW_6); 5083 pushFollow(FOLLOW_10);
4175 lv_op_2_0=ruleComparisonOperator(); 5084 lv_op_2_0=ruleComparisonOperator();
4176 5085
4177 state._fsp--; 5086 state._fsp--;
@@ -4193,11 +5102,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4193 5102
4194 } 5103 }
4195 5104
4196 // InternalSolverLanguageParser.g:1709:4: ( (lv_right_3_0= ruleAdditiveExpression ) ) 5105 // InternalSolverLanguageParser.g:2060:4: ( (lv_right_3_0= ruleAdditiveExpression ) )
4197 // InternalSolverLanguageParser.g:1710:5: (lv_right_3_0= ruleAdditiveExpression ) 5106 // InternalSolverLanguageParser.g:2061:5: (lv_right_3_0= ruleAdditiveExpression )
4198 { 5107 {
4199 // InternalSolverLanguageParser.g:1710:5: (lv_right_3_0= ruleAdditiveExpression ) 5108 // InternalSolverLanguageParser.g:2061:5: (lv_right_3_0= ruleAdditiveExpression )
4200 // InternalSolverLanguageParser.g:1711:6: lv_right_3_0= ruleAdditiveExpression 5109 // InternalSolverLanguageParser.g:2062:6: lv_right_3_0= ruleAdditiveExpression
4201 { 5110 {
4202 5111
4203 newCompositeNode(grammarAccess.getComparisonExpressionAccess().getRightAdditiveExpressionParserRuleCall_1_2_0()); 5112 newCompositeNode(grammarAccess.getComparisonExpressionAccess().getRightAdditiveExpressionParserRuleCall_1_2_0());
@@ -4253,7 +5162,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4253 5162
4254 5163
4255 // $ANTLR start "entryRuleAdditiveExpression" 5164 // $ANTLR start "entryRuleAdditiveExpression"
4256 // InternalSolverLanguageParser.g:1733:1: entryRuleAdditiveExpression returns [EObject current=null] : iv_ruleAdditiveExpression= ruleAdditiveExpression EOF ; 5165 // InternalSolverLanguageParser.g:2084:1: entryRuleAdditiveExpression returns [EObject current=null] : iv_ruleAdditiveExpression= ruleAdditiveExpression EOF ;
4257 public final EObject entryRuleAdditiveExpression() throws RecognitionException { 5166 public final EObject entryRuleAdditiveExpression() throws RecognitionException {
4258 EObject current = null; 5167 EObject current = null;
4259 5168
@@ -4261,8 +5170,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4261 5170
4262 5171
4263 try { 5172 try {
4264 // InternalSolverLanguageParser.g:1733:59: (iv_ruleAdditiveExpression= ruleAdditiveExpression EOF ) 5173 // InternalSolverLanguageParser.g:2084:59: (iv_ruleAdditiveExpression= ruleAdditiveExpression EOF )
4265 // InternalSolverLanguageParser.g:1734:2: iv_ruleAdditiveExpression= ruleAdditiveExpression EOF 5174 // InternalSolverLanguageParser.g:2085:2: iv_ruleAdditiveExpression= ruleAdditiveExpression EOF
4266 { 5175 {
4267 newCompositeNode(grammarAccess.getAdditiveExpressionRule()); 5176 newCompositeNode(grammarAccess.getAdditiveExpressionRule());
4268 pushFollow(FOLLOW_1); 5177 pushFollow(FOLLOW_1);
@@ -4289,7 +5198,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4289 5198
4290 5199
4291 // $ANTLR start "ruleAdditiveExpression" 5200 // $ANTLR start "ruleAdditiveExpression"
4292 // InternalSolverLanguageParser.g:1740:1: ruleAdditiveExpression returns [EObject current=null] : (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* ) ; 5201 // InternalSolverLanguageParser.g:2091:1: ruleAdditiveExpression returns [EObject current=null] : (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* ) ;
4293 public final EObject ruleAdditiveExpression() throws RecognitionException { 5202 public final EObject ruleAdditiveExpression() throws RecognitionException {
4294 EObject current = null; 5203 EObject current = null;
4295 5204
@@ -4304,16 +5213,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4304 enterRule(); 5213 enterRule();
4305 5214
4306 try { 5215 try {
4307 // InternalSolverLanguageParser.g:1746:2: ( (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* ) ) 5216 // InternalSolverLanguageParser.g:2097:2: ( (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* ) )
4308 // InternalSolverLanguageParser.g:1747:2: (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* ) 5217 // InternalSolverLanguageParser.g:2098:2: (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* )
4309 { 5218 {
4310 // InternalSolverLanguageParser.g:1747:2: (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* ) 5219 // InternalSolverLanguageParser.g:2098:2: (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* )
4311 // InternalSolverLanguageParser.g:1748:3: this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* 5220 // InternalSolverLanguageParser.g:2099:3: this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )*
4312 { 5221 {
4313 5222
4314 newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getMultiplicativeExpressionParserRuleCall_0()); 5223 newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getMultiplicativeExpressionParserRuleCall_0());
4315 5224
4316 pushFollow(FOLLOW_29); 5225 pushFollow(FOLLOW_35);
4317 this_MultiplicativeExpression_0=ruleMultiplicativeExpression(); 5226 this_MultiplicativeExpression_0=ruleMultiplicativeExpression();
4318 5227
4319 state._fsp--; 5228 state._fsp--;
@@ -4322,23 +5231,23 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4322 current = this_MultiplicativeExpression_0; 5231 current = this_MultiplicativeExpression_0;
4323 afterParserOrEnumRuleCall(); 5232 afterParserOrEnumRuleCall();
4324 5233
4325 // InternalSolverLanguageParser.g:1756:3: ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* 5234 // InternalSolverLanguageParser.g:2107:3: ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )*
4326 loop18: 5235 loop25:
4327 do { 5236 do {
4328 int alt18=2; 5237 int alt25=2;
4329 int LA18_0 = input.LA(1); 5238 int LA25_0 = input.LA(1);
4330 5239
4331 if ( (LA18_0==PlusSign||LA18_0==HyphenMinus) ) { 5240 if ( (LA25_0==PlusSign||LA25_0==HyphenMinus) ) {
4332 alt18=1; 5241 alt25=1;
4333 } 5242 }
4334 5243
4335 5244
4336 switch (alt18) { 5245 switch (alt25) {
4337 case 1 : 5246 case 1 :
4338 // InternalSolverLanguageParser.g:1757:4: () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) 5247 // InternalSolverLanguageParser.g:2108:4: () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) )
4339 { 5248 {
4340 // InternalSolverLanguageParser.g:1757:4: () 5249 // InternalSolverLanguageParser.g:2108:4: ()
4341 // InternalSolverLanguageParser.g:1758:5: 5250 // InternalSolverLanguageParser.g:2109:5:
4342 { 5251 {
4343 5252
4344 current = forceCreateModelElementAndSet( 5253 current = forceCreateModelElementAndSet(
@@ -4348,16 +5257,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4348 5257
4349 } 5258 }
4350 5259
4351 // InternalSolverLanguageParser.g:1764:4: ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) 5260 // InternalSolverLanguageParser.g:2115:4: ( (lv_op_2_0= ruleAdditiveBinaryOperator ) )
4352 // InternalSolverLanguageParser.g:1765:5: (lv_op_2_0= ruleAdditiveBinaryOperator ) 5261 // InternalSolverLanguageParser.g:2116:5: (lv_op_2_0= ruleAdditiveBinaryOperator )
4353 { 5262 {
4354 // InternalSolverLanguageParser.g:1765:5: (lv_op_2_0= ruleAdditiveBinaryOperator ) 5263 // InternalSolverLanguageParser.g:2116:5: (lv_op_2_0= ruleAdditiveBinaryOperator )
4355 // InternalSolverLanguageParser.g:1766:6: lv_op_2_0= ruleAdditiveBinaryOperator 5264 // InternalSolverLanguageParser.g:2117:6: lv_op_2_0= ruleAdditiveBinaryOperator
4356 { 5265 {
4357 5266
4358 newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getOpAdditiveBinaryOperatorEnumRuleCall_1_1_0()); 5267 newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getOpAdditiveBinaryOperatorEnumRuleCall_1_1_0());
4359 5268
4360 pushFollow(FOLLOW_6); 5269 pushFollow(FOLLOW_10);
4361 lv_op_2_0=ruleAdditiveBinaryOperator(); 5270 lv_op_2_0=ruleAdditiveBinaryOperator();
4362 5271
4363 state._fsp--; 5272 state._fsp--;
@@ -4379,16 +5288,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4379 5288
4380 } 5289 }
4381 5290
4382 // InternalSolverLanguageParser.g:1783:4: ( (lv_right_3_0= ruleMultiplicativeExpression ) ) 5291 // InternalSolverLanguageParser.g:2134:4: ( (lv_right_3_0= ruleMultiplicativeExpression ) )
4383 // InternalSolverLanguageParser.g:1784:5: (lv_right_3_0= ruleMultiplicativeExpression ) 5292 // InternalSolverLanguageParser.g:2135:5: (lv_right_3_0= ruleMultiplicativeExpression )
4384 { 5293 {
4385 // InternalSolverLanguageParser.g:1784:5: (lv_right_3_0= ruleMultiplicativeExpression ) 5294 // InternalSolverLanguageParser.g:2135:5: (lv_right_3_0= ruleMultiplicativeExpression )
4386 // InternalSolverLanguageParser.g:1785:6: lv_right_3_0= ruleMultiplicativeExpression 5295 // InternalSolverLanguageParser.g:2136:6: lv_right_3_0= ruleMultiplicativeExpression
4387 { 5296 {
4388 5297
4389 newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getRightMultiplicativeExpressionParserRuleCall_1_2_0()); 5298 newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getRightMultiplicativeExpressionParserRuleCall_1_2_0());
4390 5299
4391 pushFollow(FOLLOW_29); 5300 pushFollow(FOLLOW_35);
4392 lv_right_3_0=ruleMultiplicativeExpression(); 5301 lv_right_3_0=ruleMultiplicativeExpression();
4393 5302
4394 state._fsp--; 5303 state._fsp--;
@@ -4415,7 +5324,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4415 break; 5324 break;
4416 5325
4417 default : 5326 default :
4418 break loop18; 5327 break loop25;
4419 } 5328 }
4420 } while (true); 5329 } while (true);
4421 5330
@@ -4442,7 +5351,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4442 5351
4443 5352
4444 // $ANTLR start "entryRuleMultiplicativeExpression" 5353 // $ANTLR start "entryRuleMultiplicativeExpression"
4445 // InternalSolverLanguageParser.g:1807:1: entryRuleMultiplicativeExpression returns [EObject current=null] : iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF ; 5354 // InternalSolverLanguageParser.g:2158:1: entryRuleMultiplicativeExpression returns [EObject current=null] : iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF ;
4446 public final EObject entryRuleMultiplicativeExpression() throws RecognitionException { 5355 public final EObject entryRuleMultiplicativeExpression() throws RecognitionException {
4447 EObject current = null; 5356 EObject current = null;
4448 5357
@@ -4450,8 +5359,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4450 5359
4451 5360
4452 try { 5361 try {
4453 // InternalSolverLanguageParser.g:1807:65: (iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF ) 5362 // InternalSolverLanguageParser.g:2158:65: (iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF )
4454 // InternalSolverLanguageParser.g:1808:2: iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF 5363 // InternalSolverLanguageParser.g:2159:2: iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF
4455 { 5364 {
4456 newCompositeNode(grammarAccess.getMultiplicativeExpressionRule()); 5365 newCompositeNode(grammarAccess.getMultiplicativeExpressionRule());
4457 pushFollow(FOLLOW_1); 5366 pushFollow(FOLLOW_1);
@@ -4478,7 +5387,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4478 5387
4479 5388
4480 // $ANTLR start "ruleMultiplicativeExpression" 5389 // $ANTLR start "ruleMultiplicativeExpression"
4481 // InternalSolverLanguageParser.g:1814:1: ruleMultiplicativeExpression returns [EObject current=null] : (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* ) ; 5390 // InternalSolverLanguageParser.g:2165:1: ruleMultiplicativeExpression returns [EObject current=null] : (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* ) ;
4482 public final EObject ruleMultiplicativeExpression() throws RecognitionException { 5391 public final EObject ruleMultiplicativeExpression() throws RecognitionException {
4483 EObject current = null; 5392 EObject current = null;
4484 5393
@@ -4493,16 +5402,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4493 enterRule(); 5402 enterRule();
4494 5403
4495 try { 5404 try {
4496 // InternalSolverLanguageParser.g:1820:2: ( (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* ) ) 5405 // InternalSolverLanguageParser.g:2171:2: ( (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* ) )
4497 // InternalSolverLanguageParser.g:1821:2: (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* ) 5406 // InternalSolverLanguageParser.g:2172:2: (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* )
4498 { 5407 {
4499 // InternalSolverLanguageParser.g:1821:2: (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* ) 5408 // InternalSolverLanguageParser.g:2172:2: (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* )
4500 // InternalSolverLanguageParser.g:1822:3: this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* 5409 // InternalSolverLanguageParser.g:2173:3: this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )*
4501 { 5410 {
4502 5411
4503 newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getExponentialExpressionParserRuleCall_0()); 5412 newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getExponentialExpressionParserRuleCall_0());
4504 5413
4505 pushFollow(FOLLOW_30); 5414 pushFollow(FOLLOW_36);
4506 this_ExponentialExpression_0=ruleExponentialExpression(); 5415 this_ExponentialExpression_0=ruleExponentialExpression();
4507 5416
4508 state._fsp--; 5417 state._fsp--;
@@ -4511,23 +5420,23 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4511 current = this_ExponentialExpression_0; 5420 current = this_ExponentialExpression_0;
4512 afterParserOrEnumRuleCall(); 5421 afterParserOrEnumRuleCall();
4513 5422
4514 // InternalSolverLanguageParser.g:1830:3: ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* 5423 // InternalSolverLanguageParser.g:2181:3: ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )*
4515 loop19: 5424 loop26:
4516 do { 5425 do {
4517 int alt19=2; 5426 int alt26=2;
4518 int LA19_0 = input.LA(1); 5427 int LA26_0 = input.LA(1);
4519 5428
4520 if ( (LA19_0==Asterisk||LA19_0==Solidus) ) { 5429 if ( (LA26_0==Asterisk||LA26_0==Solidus) ) {
4521 alt19=1; 5430 alt26=1;
4522 } 5431 }
4523 5432
4524 5433
4525 switch (alt19) { 5434 switch (alt26) {
4526 case 1 : 5435 case 1 :
4527 // InternalSolverLanguageParser.g:1831:4: () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) 5436 // InternalSolverLanguageParser.g:2182:4: () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) )
4528 { 5437 {
4529 // InternalSolverLanguageParser.g:1831:4: () 5438 // InternalSolverLanguageParser.g:2182:4: ()
4530 // InternalSolverLanguageParser.g:1832:5: 5439 // InternalSolverLanguageParser.g:2183:5:
4531 { 5440 {
4532 5441
4533 current = forceCreateModelElementAndSet( 5442 current = forceCreateModelElementAndSet(
@@ -4537,16 +5446,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4537 5446
4538 } 5447 }
4539 5448
4540 // InternalSolverLanguageParser.g:1838:4: ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) 5449 // InternalSolverLanguageParser.g:2189:4: ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) )
4541 // InternalSolverLanguageParser.g:1839:5: (lv_op_2_0= ruleMultiplicativeBinaryOperator ) 5450 // InternalSolverLanguageParser.g:2190:5: (lv_op_2_0= ruleMultiplicativeBinaryOperator )
4542 { 5451 {
4543 // InternalSolverLanguageParser.g:1839:5: (lv_op_2_0= ruleMultiplicativeBinaryOperator ) 5452 // InternalSolverLanguageParser.g:2190:5: (lv_op_2_0= ruleMultiplicativeBinaryOperator )
4544 // InternalSolverLanguageParser.g:1840:6: lv_op_2_0= ruleMultiplicativeBinaryOperator 5453 // InternalSolverLanguageParser.g:2191:6: lv_op_2_0= ruleMultiplicativeBinaryOperator
4545 { 5454 {
4546 5455
4547 newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getOpMultiplicativeBinaryOperatorEnumRuleCall_1_1_0()); 5456 newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getOpMultiplicativeBinaryOperatorEnumRuleCall_1_1_0());
4548 5457
4549 pushFollow(FOLLOW_6); 5458 pushFollow(FOLLOW_10);
4550 lv_op_2_0=ruleMultiplicativeBinaryOperator(); 5459 lv_op_2_0=ruleMultiplicativeBinaryOperator();
4551 5460
4552 state._fsp--; 5461 state._fsp--;
@@ -4568,16 +5477,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4568 5477
4569 } 5478 }
4570 5479
4571 // InternalSolverLanguageParser.g:1857:4: ( (lv_right_3_0= ruleExponentialExpression ) ) 5480 // InternalSolverLanguageParser.g:2208:4: ( (lv_right_3_0= ruleExponentialExpression ) )
4572 // InternalSolverLanguageParser.g:1858:5: (lv_right_3_0= ruleExponentialExpression ) 5481 // InternalSolverLanguageParser.g:2209:5: (lv_right_3_0= ruleExponentialExpression )
4573 { 5482 {
4574 // InternalSolverLanguageParser.g:1858:5: (lv_right_3_0= ruleExponentialExpression ) 5483 // InternalSolverLanguageParser.g:2209:5: (lv_right_3_0= ruleExponentialExpression )
4575 // InternalSolverLanguageParser.g:1859:6: lv_right_3_0= ruleExponentialExpression 5484 // InternalSolverLanguageParser.g:2210:6: lv_right_3_0= ruleExponentialExpression
4576 { 5485 {
4577 5486
4578 newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getRightExponentialExpressionParserRuleCall_1_2_0()); 5487 newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getRightExponentialExpressionParserRuleCall_1_2_0());
4579 5488
4580 pushFollow(FOLLOW_30); 5489 pushFollow(FOLLOW_36);
4581 lv_right_3_0=ruleExponentialExpression(); 5490 lv_right_3_0=ruleExponentialExpression();
4582 5491
4583 state._fsp--; 5492 state._fsp--;
@@ -4604,7 +5513,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4604 break; 5513 break;
4605 5514
4606 default : 5515 default :
4607 break loop19; 5516 break loop26;
4608 } 5517 }
4609 } while (true); 5518 } while (true);
4610 5519
@@ -4631,7 +5540,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4631 5540
4632 5541
4633 // $ANTLR start "entryRuleExponentialExpression" 5542 // $ANTLR start "entryRuleExponentialExpression"
4634 // InternalSolverLanguageParser.g:1881:1: entryRuleExponentialExpression returns [EObject current=null] : iv_ruleExponentialExpression= ruleExponentialExpression EOF ; 5543 // InternalSolverLanguageParser.g:2232:1: entryRuleExponentialExpression returns [EObject current=null] : iv_ruleExponentialExpression= ruleExponentialExpression EOF ;
4635 public final EObject entryRuleExponentialExpression() throws RecognitionException { 5544 public final EObject entryRuleExponentialExpression() throws RecognitionException {
4636 EObject current = null; 5545 EObject current = null;
4637 5546
@@ -4639,8 +5548,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4639 5548
4640 5549
4641 try { 5550 try {
4642 // InternalSolverLanguageParser.g:1881:62: (iv_ruleExponentialExpression= ruleExponentialExpression EOF ) 5551 // InternalSolverLanguageParser.g:2232:62: (iv_ruleExponentialExpression= ruleExponentialExpression EOF )
4643 // InternalSolverLanguageParser.g:1882:2: iv_ruleExponentialExpression= ruleExponentialExpression EOF 5552 // InternalSolverLanguageParser.g:2233:2: iv_ruleExponentialExpression= ruleExponentialExpression EOF
4644 { 5553 {
4645 newCompositeNode(grammarAccess.getExponentialExpressionRule()); 5554 newCompositeNode(grammarAccess.getExponentialExpressionRule());
4646 pushFollow(FOLLOW_1); 5555 pushFollow(FOLLOW_1);
@@ -4667,7 +5576,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4667 5576
4668 5577
4669 // $ANTLR start "ruleExponentialExpression" 5578 // $ANTLR start "ruleExponentialExpression"
4670 // InternalSolverLanguageParser.g:1888:1: ruleExponentialExpression returns [EObject current=null] : (this_CastExpression_0= ruleCastExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? ) ; 5579 // InternalSolverLanguageParser.g:2239:1: ruleExponentialExpression returns [EObject current=null] : (this_CastExpression_0= ruleCastExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? ) ;
4671 public final EObject ruleExponentialExpression() throws RecognitionException { 5580 public final EObject ruleExponentialExpression() throws RecognitionException {
4672 EObject current = null; 5581 EObject current = null;
4673 5582
@@ -4682,16 +5591,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4682 enterRule(); 5591 enterRule();
4683 5592
4684 try { 5593 try {
4685 // InternalSolverLanguageParser.g:1894:2: ( (this_CastExpression_0= ruleCastExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? ) ) 5594 // InternalSolverLanguageParser.g:2245:2: ( (this_CastExpression_0= ruleCastExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? ) )
4686 // InternalSolverLanguageParser.g:1895:2: (this_CastExpression_0= ruleCastExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? ) 5595 // InternalSolverLanguageParser.g:2246:2: (this_CastExpression_0= ruleCastExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? )
4687 { 5596 {
4688 // InternalSolverLanguageParser.g:1895:2: (this_CastExpression_0= ruleCastExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? ) 5597 // InternalSolverLanguageParser.g:2246:2: (this_CastExpression_0= ruleCastExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? )
4689 // InternalSolverLanguageParser.g:1896:3: this_CastExpression_0= ruleCastExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? 5598 // InternalSolverLanguageParser.g:2247:3: this_CastExpression_0= ruleCastExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )?
4690 { 5599 {
4691 5600
4692 newCompositeNode(grammarAccess.getExponentialExpressionAccess().getCastExpressionParserRuleCall_0()); 5601 newCompositeNode(grammarAccess.getExponentialExpressionAccess().getCastExpressionParserRuleCall_0());
4693 5602
4694 pushFollow(FOLLOW_31); 5603 pushFollow(FOLLOW_37);
4695 this_CastExpression_0=ruleCastExpression(); 5604 this_CastExpression_0=ruleCastExpression();
4696 5605
4697 state._fsp--; 5606 state._fsp--;
@@ -4700,19 +5609,19 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4700 current = this_CastExpression_0; 5609 current = this_CastExpression_0;
4701 afterParserOrEnumRuleCall(); 5610 afterParserOrEnumRuleCall();
4702 5611
4703 // InternalSolverLanguageParser.g:1904:3: ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )? 5612 // InternalSolverLanguageParser.g:2255:3: ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) )?
4704 int alt20=2; 5613 int alt27=2;
4705 int LA20_0 = input.LA(1); 5614 int LA27_0 = input.LA(1);
4706 5615
4707 if ( (LA20_0==CircumflexAccent) ) { 5616 if ( (LA27_0==CircumflexAccent) ) {
4708 alt20=1; 5617 alt27=1;
4709 } 5618 }
4710 switch (alt20) { 5619 switch (alt27) {
4711 case 1 : 5620 case 1 :
4712 // InternalSolverLanguageParser.g:1905:4: () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) ) 5621 // InternalSolverLanguageParser.g:2256:4: () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleCastExpression ) )
4713 { 5622 {
4714 // InternalSolverLanguageParser.g:1905:4: () 5623 // InternalSolverLanguageParser.g:2256:4: ()
4715 // InternalSolverLanguageParser.g:1906:5: 5624 // InternalSolverLanguageParser.g:2257:5:
4716 { 5625 {
4717 5626
4718 current = forceCreateModelElementAndSet( 5627 current = forceCreateModelElementAndSet(
@@ -4722,16 +5631,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4722 5631
4723 } 5632 }
4724 5633
4725 // InternalSolverLanguageParser.g:1912:4: ( (lv_op_2_0= ruleExponentialOp ) ) 5634 // InternalSolverLanguageParser.g:2263:4: ( (lv_op_2_0= ruleExponentialOp ) )
4726 // InternalSolverLanguageParser.g:1913:5: (lv_op_2_0= ruleExponentialOp ) 5635 // InternalSolverLanguageParser.g:2264:5: (lv_op_2_0= ruleExponentialOp )
4727 { 5636 {
4728 // InternalSolverLanguageParser.g:1913:5: (lv_op_2_0= ruleExponentialOp ) 5637 // InternalSolverLanguageParser.g:2264:5: (lv_op_2_0= ruleExponentialOp )
4729 // InternalSolverLanguageParser.g:1914:6: lv_op_2_0= ruleExponentialOp 5638 // InternalSolverLanguageParser.g:2265:6: lv_op_2_0= ruleExponentialOp
4730 { 5639 {
4731 5640
4732 newCompositeNode(grammarAccess.getExponentialExpressionAccess().getOpExponentialOpEnumRuleCall_1_1_0()); 5641 newCompositeNode(grammarAccess.getExponentialExpressionAccess().getOpExponentialOpEnumRuleCall_1_1_0());
4733 5642
4734 pushFollow(FOLLOW_6); 5643 pushFollow(FOLLOW_10);
4735 lv_op_2_0=ruleExponentialOp(); 5644 lv_op_2_0=ruleExponentialOp();
4736 5645
4737 state._fsp--; 5646 state._fsp--;
@@ -4753,11 +5662,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4753 5662
4754 } 5663 }
4755 5664
4756 // InternalSolverLanguageParser.g:1931:4: ( (lv_right_3_0= ruleCastExpression ) ) 5665 // InternalSolverLanguageParser.g:2282:4: ( (lv_right_3_0= ruleCastExpression ) )
4757 // InternalSolverLanguageParser.g:1932:5: (lv_right_3_0= ruleCastExpression ) 5666 // InternalSolverLanguageParser.g:2283:5: (lv_right_3_0= ruleCastExpression )
4758 { 5667 {
4759 // InternalSolverLanguageParser.g:1932:5: (lv_right_3_0= ruleCastExpression ) 5668 // InternalSolverLanguageParser.g:2283:5: (lv_right_3_0= ruleCastExpression )
4760 // InternalSolverLanguageParser.g:1933:6: lv_right_3_0= ruleCastExpression 5669 // InternalSolverLanguageParser.g:2284:6: lv_right_3_0= ruleCastExpression
4761 { 5670 {
4762 5671
4763 newCompositeNode(grammarAccess.getExponentialExpressionAccess().getRightCastExpressionParserRuleCall_1_2_0()); 5672 newCompositeNode(grammarAccess.getExponentialExpressionAccess().getRightCastExpressionParserRuleCall_1_2_0());
@@ -4813,7 +5722,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4813 5722
4814 5723
4815 // $ANTLR start "entryRuleCastExpression" 5724 // $ANTLR start "entryRuleCastExpression"
4816 // InternalSolverLanguageParser.g:1955:1: entryRuleCastExpression returns [EObject current=null] : iv_ruleCastExpression= ruleCastExpression EOF ; 5725 // InternalSolverLanguageParser.g:2306:1: entryRuleCastExpression returns [EObject current=null] : iv_ruleCastExpression= ruleCastExpression EOF ;
4817 public final EObject entryRuleCastExpression() throws RecognitionException { 5726 public final EObject entryRuleCastExpression() throws RecognitionException {
4818 EObject current = null; 5727 EObject current = null;
4819 5728
@@ -4821,8 +5730,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4821 5730
4822 5731
4823 try { 5732 try {
4824 // InternalSolverLanguageParser.g:1955:55: (iv_ruleCastExpression= ruleCastExpression EOF ) 5733 // InternalSolverLanguageParser.g:2306:55: (iv_ruleCastExpression= ruleCastExpression EOF )
4825 // InternalSolverLanguageParser.g:1956:2: iv_ruleCastExpression= ruleCastExpression EOF 5734 // InternalSolverLanguageParser.g:2307:2: iv_ruleCastExpression= ruleCastExpression EOF
4826 { 5735 {
4827 newCompositeNode(grammarAccess.getCastExpressionRule()); 5736 newCompositeNode(grammarAccess.getCastExpressionRule());
4828 pushFollow(FOLLOW_1); 5737 pushFollow(FOLLOW_1);
@@ -4849,7 +5758,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4849 5758
4850 5759
4851 // $ANTLR start "ruleCastExpression" 5760 // $ANTLR start "ruleCastExpression"
4852 // InternalSolverLanguageParser.g:1962:1: ruleCastExpression returns [EObject current=null] : (this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? ) ; 5761 // InternalSolverLanguageParser.g:2313:1: ruleCastExpression returns [EObject current=null] : (this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? ) ;
4853 public final EObject ruleCastExpression() throws RecognitionException { 5762 public final EObject ruleCastExpression() throws RecognitionException {
4854 EObject current = null; 5763 EObject current = null;
4855 5764
@@ -4861,16 +5770,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4861 enterRule(); 5770 enterRule();
4862 5771
4863 try { 5772 try {
4864 // InternalSolverLanguageParser.g:1968:2: ( (this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? ) ) 5773 // InternalSolverLanguageParser.g:2319:2: ( (this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? ) )
4865 // InternalSolverLanguageParser.g:1969:2: (this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? ) 5774 // InternalSolverLanguageParser.g:2320:2: (this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? )
4866 { 5775 {
4867 // InternalSolverLanguageParser.g:1969:2: (this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? ) 5776 // InternalSolverLanguageParser.g:2320:2: (this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? )
4868 // InternalSolverLanguageParser.g:1970:3: this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? 5777 // InternalSolverLanguageParser.g:2321:3: this_UnaryExpression_0= ruleUnaryExpression ( () otherlv_2= As ( ( ruleQualifiedName ) ) )?
4869 { 5778 {
4870 5779
4871 newCompositeNode(grammarAccess.getCastExpressionAccess().getUnaryExpressionParserRuleCall_0()); 5780 newCompositeNode(grammarAccess.getCastExpressionAccess().getUnaryExpressionParserRuleCall_0());
4872 5781
4873 pushFollow(FOLLOW_32); 5782 pushFollow(FOLLOW_38);
4874 this_UnaryExpression_0=ruleUnaryExpression(); 5783 this_UnaryExpression_0=ruleUnaryExpression();
4875 5784
4876 state._fsp--; 5785 state._fsp--;
@@ -4879,19 +5788,19 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4879 current = this_UnaryExpression_0; 5788 current = this_UnaryExpression_0;
4880 afterParserOrEnumRuleCall(); 5789 afterParserOrEnumRuleCall();
4881 5790
4882 // InternalSolverLanguageParser.g:1978:3: ( () otherlv_2= As ( ( ruleQualifiedName ) ) )? 5791 // InternalSolverLanguageParser.g:2329:3: ( () otherlv_2= As ( ( ruleQualifiedName ) ) )?
4883 int alt21=2; 5792 int alt28=2;
4884 int LA21_0 = input.LA(1); 5793 int LA28_0 = input.LA(1);
4885 5794
4886 if ( (LA21_0==As) ) { 5795 if ( (LA28_0==As) ) {
4887 alt21=1; 5796 alt28=1;
4888 } 5797 }
4889 switch (alt21) { 5798 switch (alt28) {
4890 case 1 : 5799 case 1 :
4891 // InternalSolverLanguageParser.g:1979:4: () otherlv_2= As ( ( ruleQualifiedName ) ) 5800 // InternalSolverLanguageParser.g:2330:4: () otherlv_2= As ( ( ruleQualifiedName ) )
4892 { 5801 {
4893 // InternalSolverLanguageParser.g:1979:4: () 5802 // InternalSolverLanguageParser.g:2330:4: ()
4894 // InternalSolverLanguageParser.g:1980:5: 5803 // InternalSolverLanguageParser.g:2331:5:
4895 { 5804 {
4896 5805
4897 current = forceCreateModelElementAndSet( 5806 current = forceCreateModelElementAndSet(
@@ -4901,15 +5810,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4901 5810
4902 } 5811 }
4903 5812
4904 otherlv_2=(Token)match(input,As,FOLLOW_8); 5813 otherlv_2=(Token)match(input,As,FOLLOW_3);
4905 5814
4906 newLeafNode(otherlv_2, grammarAccess.getCastExpressionAccess().getAsKeyword_1_1()); 5815 newLeafNode(otherlv_2, grammarAccess.getCastExpressionAccess().getAsKeyword_1_1());
4907 5816
4908 // InternalSolverLanguageParser.g:1990:4: ( ( ruleQualifiedName ) ) 5817 // InternalSolverLanguageParser.g:2341:4: ( ( ruleQualifiedName ) )
4909 // InternalSolverLanguageParser.g:1991:5: ( ruleQualifiedName ) 5818 // InternalSolverLanguageParser.g:2342:5: ( ruleQualifiedName )
4910 { 5819 {
4911 // InternalSolverLanguageParser.g:1991:5: ( ruleQualifiedName ) 5820 // InternalSolverLanguageParser.g:2342:5: ( ruleQualifiedName )
4912 // InternalSolverLanguageParser.g:1992:6: ruleQualifiedName 5821 // InternalSolverLanguageParser.g:2343:6: ruleQualifiedName
4913 { 5822 {
4914 5823
4915 if (current==null) { 5824 if (current==null) {
@@ -4917,7 +5826,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4917 } 5826 }
4918 5827
4919 5828
4920 newCompositeNode(grammarAccess.getCastExpressionAccess().getTypeNamedElementCrossReference_1_2_0()); 5829 newCompositeNode(grammarAccess.getCastExpressionAccess().getTargetTypeSymbolCrossReference_1_2_0());
4921 5830
4922 pushFollow(FOLLOW_2); 5831 pushFollow(FOLLOW_2);
4923 ruleQualifiedName(); 5832 ruleQualifiedName();
@@ -4962,7 +5871,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4962 5871
4963 5872
4964 // $ANTLR start "entryRuleUnaryExpression" 5873 // $ANTLR start "entryRuleUnaryExpression"
4965 // InternalSolverLanguageParser.g:2011:1: entryRuleUnaryExpression returns [EObject current=null] : iv_ruleUnaryExpression= ruleUnaryExpression EOF ; 5874 // InternalSolverLanguageParser.g:2362:1: entryRuleUnaryExpression returns [EObject current=null] : iv_ruleUnaryExpression= ruleUnaryExpression EOF ;
4966 public final EObject entryRuleUnaryExpression() throws RecognitionException { 5875 public final EObject entryRuleUnaryExpression() throws RecognitionException {
4967 EObject current = null; 5876 EObject current = null;
4968 5877
@@ -4970,8 +5879,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4970 5879
4971 5880
4972 try { 5881 try {
4973 // InternalSolverLanguageParser.g:2011:56: (iv_ruleUnaryExpression= ruleUnaryExpression EOF ) 5882 // InternalSolverLanguageParser.g:2362:56: (iv_ruleUnaryExpression= ruleUnaryExpression EOF )
4974 // InternalSolverLanguageParser.g:2012:2: iv_ruleUnaryExpression= ruleUnaryExpression EOF 5883 // InternalSolverLanguageParser.g:2363:2: iv_ruleUnaryExpression= ruleUnaryExpression EOF
4975 { 5884 {
4976 newCompositeNode(grammarAccess.getUnaryExpressionRule()); 5885 newCompositeNode(grammarAccess.getUnaryExpressionRule());
4977 pushFollow(FOLLOW_1); 5886 pushFollow(FOLLOW_1);
@@ -4998,11 +5907,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4998 5907
4999 5908
5000 // $ANTLR start "ruleUnaryExpression" 5909 // $ANTLR start "ruleUnaryExpression"
5001 // InternalSolverLanguageParser.g:2018:1: ruleUnaryExpression returns [EObject current=null] : (this_AggregationExpression_0= ruleAggregationExpression | ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) ) ; 5910 // InternalSolverLanguageParser.g:2369:1: ruleUnaryExpression returns [EObject current=null] : (this_BracedAggregateExpression_0= ruleBracedAggregateExpression | ( () ( (lv_op_2_0= ruleUnaryOperator ) ) ( (lv_body_3_0= ruleBracedAggregateExpression ) ) ) ) ;
5002 public final EObject ruleUnaryExpression() throws RecognitionException { 5911 public final EObject ruleUnaryExpression() throws RecognitionException {
5003 EObject current = null; 5912 EObject current = null;
5004 5913
5005 EObject this_AggregationExpression_0 = null; 5914 EObject this_BracedAggregateExpression_0 = null;
5006 5915
5007 Enumerator lv_op_2_0 = null; 5916 Enumerator lv_op_2_0 = null;
5008 5917
@@ -5013,52 +5922,52 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5013 enterRule(); 5922 enterRule();
5014 5923
5015 try { 5924 try {
5016 // InternalSolverLanguageParser.g:2024:2: ( (this_AggregationExpression_0= ruleAggregationExpression | ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) ) ) 5925 // InternalSolverLanguageParser.g:2375:2: ( (this_BracedAggregateExpression_0= ruleBracedAggregateExpression | ( () ( (lv_op_2_0= ruleUnaryOperator ) ) ( (lv_body_3_0= ruleBracedAggregateExpression ) ) ) ) )
5017 // InternalSolverLanguageParser.g:2025:2: (this_AggregationExpression_0= ruleAggregationExpression | ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) ) 5926 // InternalSolverLanguageParser.g:2376:2: (this_BracedAggregateExpression_0= ruleBracedAggregateExpression | ( () ( (lv_op_2_0= ruleUnaryOperator ) ) ( (lv_body_3_0= ruleBracedAggregateExpression ) ) ) )
5018 { 5927 {
5019 // InternalSolverLanguageParser.g:2025:2: (this_AggregationExpression_0= ruleAggregationExpression | ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) ) 5928 // InternalSolverLanguageParser.g:2376:2: (this_BracedAggregateExpression_0= ruleBracedAggregateExpression | ( () ( (lv_op_2_0= ruleUnaryOperator ) ) ( (lv_body_3_0= ruleBracedAggregateExpression ) ) ) )
5020 int alt22=2; 5929 int alt29=2;
5021 int LA22_0 = input.LA(1); 5930 int LA29_0 = input.LA(1);
5022 5931
5023 if ( ((LA22_0>=Unknown && LA22_0<=Exists)||LA22_0==Forall||(LA22_0>=Count && LA22_0<=False)||LA22_0==True||LA22_0==Inf||LA22_0==LeftParenthesis||LA22_0==LeftSquareBracket||(LA22_0>=RULE_STRING && LA22_0<=RULE_QUOTED_ID)||(LA22_0>=RULE_ID && LA22_0<=RULE_INT)) ) { 5932 if ( (LA29_0==Unknown||LA29_0==Object||(LA29_0>=Count && LA29_0<=False)||LA29_0==True||LA29_0==Inf||LA29_0==LeftParenthesis||LA29_0==LeftSquareBracket||(LA29_0>=Tilde && LA29_0<=RULE_QUOTED_ID)||(LA29_0>=RULE_ID && LA29_0<=RULE_INT)) ) {
5024 alt22=1; 5933 alt29=1;
5025 } 5934 }
5026 else if ( (LA22_0==Current||LA22_0==Must||LA22_0==May||LA22_0==ExclamationMark||LA22_0==PlusSign||LA22_0==HyphenMinus) ) { 5935 else if ( (LA29_0==ExclamationMark||LA29_0==PlusSign||LA29_0==HyphenMinus||LA29_0==QuestionMark) ) {
5027 alt22=2; 5936 alt29=2;
5028 } 5937 }
5029 else { 5938 else {
5030 NoViableAltException nvae = 5939 NoViableAltException nvae =
5031 new NoViableAltException("", 22, 0, input); 5940 new NoViableAltException("", 29, 0, input);
5032 5941
5033 throw nvae; 5942 throw nvae;
5034 } 5943 }
5035 switch (alt22) { 5944 switch (alt29) {
5036 case 1 : 5945 case 1 :
5037 // InternalSolverLanguageParser.g:2026:3: this_AggregationExpression_0= ruleAggregationExpression 5946 // InternalSolverLanguageParser.g:2377:3: this_BracedAggregateExpression_0= ruleBracedAggregateExpression
5038 { 5947 {
5039 5948
5040 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getAggregationExpressionParserRuleCall_0()); 5949 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getBracedAggregateExpressionParserRuleCall_0());
5041 5950
5042 pushFollow(FOLLOW_2); 5951 pushFollow(FOLLOW_2);
5043 this_AggregationExpression_0=ruleAggregationExpression(); 5952 this_BracedAggregateExpression_0=ruleBracedAggregateExpression();
5044 5953
5045 state._fsp--; 5954 state._fsp--;
5046 5955
5047 5956
5048 current = this_AggregationExpression_0; 5957 current = this_BracedAggregateExpression_0;
5049 afterParserOrEnumRuleCall(); 5958 afterParserOrEnumRuleCall();
5050 5959
5051 5960
5052 } 5961 }
5053 break; 5962 break;
5054 case 2 : 5963 case 2 :
5055 // InternalSolverLanguageParser.g:2035:3: ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) 5964 // InternalSolverLanguageParser.g:2386:3: ( () ( (lv_op_2_0= ruleUnaryOperator ) ) ( (lv_body_3_0= ruleBracedAggregateExpression ) ) )
5056 { 5965 {
5057 // InternalSolverLanguageParser.g:2035:3: ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) 5966 // InternalSolverLanguageParser.g:2386:3: ( () ( (lv_op_2_0= ruleUnaryOperator ) ) ( (lv_body_3_0= ruleBracedAggregateExpression ) ) )
5058 // InternalSolverLanguageParser.g:2036:4: () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) 5967 // InternalSolverLanguageParser.g:2387:4: () ( (lv_op_2_0= ruleUnaryOperator ) ) ( (lv_body_3_0= ruleBracedAggregateExpression ) )
5059 { 5968 {
5060 // InternalSolverLanguageParser.g:2036:4: () 5969 // InternalSolverLanguageParser.g:2387:4: ()
5061 // InternalSolverLanguageParser.g:2037:5: 5970 // InternalSolverLanguageParser.g:2388:5:
5062 { 5971 {
5063 5972
5064 current = forceCreateModelElement( 5973 current = forceCreateModelElement(
@@ -5068,17 +5977,17 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5068 5977
5069 } 5978 }
5070 5979
5071 // InternalSolverLanguageParser.g:2043:4: ( (lv_op_2_0= ruleUnaryOp ) ) 5980 // InternalSolverLanguageParser.g:2394:4: ( (lv_op_2_0= ruleUnaryOperator ) )
5072 // InternalSolverLanguageParser.g:2044:5: (lv_op_2_0= ruleUnaryOp ) 5981 // InternalSolverLanguageParser.g:2395:5: (lv_op_2_0= ruleUnaryOperator )
5073 { 5982 {
5074 // InternalSolverLanguageParser.g:2044:5: (lv_op_2_0= ruleUnaryOp ) 5983 // InternalSolverLanguageParser.g:2395:5: (lv_op_2_0= ruleUnaryOperator )
5075 // InternalSolverLanguageParser.g:2045:6: lv_op_2_0= ruleUnaryOp 5984 // InternalSolverLanguageParser.g:2396:6: lv_op_2_0= ruleUnaryOperator
5076 { 5985 {
5077 5986
5078 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getOpUnaryOpEnumRuleCall_1_1_0()); 5987 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getOpUnaryOperatorEnumRuleCall_1_1_0());
5079 5988
5080 pushFollow(FOLLOW_33); 5989 pushFollow(FOLLOW_39);
5081 lv_op_2_0=ruleUnaryOp(); 5990 lv_op_2_0=ruleUnaryOperator();
5082 5991
5083 state._fsp--; 5992 state._fsp--;
5084 5993
@@ -5090,7 +5999,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5090 current, 5999 current,
5091 "op", 6000 "op",
5092 lv_op_2_0, 6001 lv_op_2_0,
5093 "org.eclipse.viatra.solver.language.SolverLanguage.UnaryOp"); 6002 "org.eclipse.viatra.solver.language.SolverLanguage.UnaryOperator");
5094 afterParserOrEnumRuleCall(); 6003 afterParserOrEnumRuleCall();
5095 6004
5096 6005
@@ -5099,17 +6008,17 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5099 6008
5100 } 6009 }
5101 6010
5102 // InternalSolverLanguageParser.g:2062:4: ( (lv_body_3_0= ruleAggregationExpression ) ) 6011 // InternalSolverLanguageParser.g:2413:4: ( (lv_body_3_0= ruleBracedAggregateExpression ) )
5103 // InternalSolverLanguageParser.g:2063:5: (lv_body_3_0= ruleAggregationExpression ) 6012 // InternalSolverLanguageParser.g:2414:5: (lv_body_3_0= ruleBracedAggregateExpression )
5104 { 6013 {
5105 // InternalSolverLanguageParser.g:2063:5: (lv_body_3_0= ruleAggregationExpression ) 6014 // InternalSolverLanguageParser.g:2414:5: (lv_body_3_0= ruleBracedAggregateExpression )
5106 // InternalSolverLanguageParser.g:2064:6: lv_body_3_0= ruleAggregationExpression 6015 // InternalSolverLanguageParser.g:2415:6: lv_body_3_0= ruleBracedAggregateExpression
5107 { 6016 {
5108 6017
5109 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getBodyAggregationExpressionParserRuleCall_1_2_0()); 6018 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getBodyBracedAggregateExpressionParserRuleCall_1_2_0());
5110 6019
5111 pushFollow(FOLLOW_2); 6020 pushFollow(FOLLOW_2);
5112 lv_body_3_0=ruleAggregationExpression(); 6021 lv_body_3_0=ruleBracedAggregateExpression();
5113 6022
5114 state._fsp--; 6023 state._fsp--;
5115 6024
@@ -5121,7 +6030,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5121 current, 6030 current,
5122 "body", 6031 "body",
5123 lv_body_3_0, 6032 lv_body_3_0,
5124 "org.eclipse.viatra.solver.language.SolverLanguage.AggregationExpression"); 6033 "org.eclipse.viatra.solver.language.SolverLanguage.BracedAggregateExpression");
5125 afterParserOrEnumRuleCall(); 6034 afterParserOrEnumRuleCall();
5126 6035
5127 6036
@@ -5158,25 +6067,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5158 // $ANTLR end "ruleUnaryExpression" 6067 // $ANTLR end "ruleUnaryExpression"
5159 6068
5160 6069
5161 // $ANTLR start "entryRuleAggregationExpression" 6070 // $ANTLR start "entryRuleBracedAggregateExpression"
5162 // InternalSolverLanguageParser.g:2086:1: entryRuleAggregationExpression returns [EObject current=null] : iv_ruleAggregationExpression= ruleAggregationExpression EOF ; 6071 // InternalSolverLanguageParser.g:2437:1: entryRuleBracedAggregateExpression returns [EObject current=null] : iv_ruleBracedAggregateExpression= ruleBracedAggregateExpression EOF ;
5163 public final EObject entryRuleAggregationExpression() throws RecognitionException { 6072 public final EObject entryRuleBracedAggregateExpression() throws RecognitionException {
5164 EObject current = null; 6073 EObject current = null;
5165 6074
5166 EObject iv_ruleAggregationExpression = null; 6075 EObject iv_ruleBracedAggregateExpression = null;
5167 6076
5168 6077
5169 try { 6078 try {
5170 // InternalSolverLanguageParser.g:2086:62: (iv_ruleAggregationExpression= ruleAggregationExpression EOF ) 6079 // InternalSolverLanguageParser.g:2437:66: (iv_ruleBracedAggregateExpression= ruleBracedAggregateExpression EOF )
5171 // InternalSolverLanguageParser.g:2087:2: iv_ruleAggregationExpression= ruleAggregationExpression EOF 6080 // InternalSolverLanguageParser.g:2438:2: iv_ruleBracedAggregateExpression= ruleBracedAggregateExpression EOF
5172 { 6081 {
5173 newCompositeNode(grammarAccess.getAggregationExpressionRule()); 6082 newCompositeNode(grammarAccess.getBracedAggregateExpressionRule());
5174 pushFollow(FOLLOW_1); 6083 pushFollow(FOLLOW_1);
5175 iv_ruleAggregationExpression=ruleAggregationExpression(); 6084 iv_ruleBracedAggregateExpression=ruleBracedAggregateExpression();
5176 6085
5177 state._fsp--; 6086 state._fsp--;
5178 6087
5179 current =iv_ruleAggregationExpression; 6088 current =iv_ruleBracedAggregateExpression;
5180 match(input,EOF,FOLLOW_2); 6089 match(input,EOF,FOLLOW_2);
5181 6090
5182 } 6091 }
@@ -5191,37 +6100,37 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5191 } 6100 }
5192 return current; 6101 return current;
5193 } 6102 }
5194 // $ANTLR end "entryRuleAggregationExpression" 6103 // $ANTLR end "entryRuleBracedAggregateExpression"
5195 6104
5196 6105
5197 // $ANTLR start "ruleAggregationExpression" 6106 // $ANTLR start "ruleBracedAggregateExpression"
5198 // InternalSolverLanguageParser.g:2093:1: ruleAggregationExpression returns [EObject current=null] : (this_AtomicExpression_0= ruleAtomicExpression | this_QuantifiedExpression_1= ruleQuantifiedExpression | this_Aggregation_2= ruleAggregation ) ; 6107 // InternalSolverLanguageParser.g:2444:1: ruleBracedAggregateExpression returns [EObject current=null] : (this_AtomicExpression_0= ruleAtomicExpression | this_Aggregation_1= ruleAggregation | this_Count_2= ruleCount ) ;
5199 public final EObject ruleAggregationExpression() throws RecognitionException { 6108 public final EObject ruleBracedAggregateExpression() throws RecognitionException {
5200 EObject current = null; 6109 EObject current = null;
5201 6110
5202 EObject this_AtomicExpression_0 = null; 6111 EObject this_AtomicExpression_0 = null;
5203 6112
5204 EObject this_QuantifiedExpression_1 = null; 6113 EObject this_Aggregation_1 = null;
5205 6114
5206 EObject this_Aggregation_2 = null; 6115 EObject this_Count_2 = null;
5207 6116
5208 6117
5209 6118
5210 enterRule(); 6119 enterRule();
5211 6120
5212 try { 6121 try {
5213 // InternalSolverLanguageParser.g:2099:2: ( (this_AtomicExpression_0= ruleAtomicExpression | this_QuantifiedExpression_1= ruleQuantifiedExpression | this_Aggregation_2= ruleAggregation ) ) 6122 // InternalSolverLanguageParser.g:2450:2: ( (this_AtomicExpression_0= ruleAtomicExpression | this_Aggregation_1= ruleAggregation | this_Count_2= ruleCount ) )
5214 // InternalSolverLanguageParser.g:2100:2: (this_AtomicExpression_0= ruleAtomicExpression | this_QuantifiedExpression_1= ruleQuantifiedExpression | this_Aggregation_2= ruleAggregation ) 6123 // InternalSolverLanguageParser.g:2451:2: (this_AtomicExpression_0= ruleAtomicExpression | this_Aggregation_1= ruleAggregation | this_Count_2= ruleCount )
5215 { 6124 {
5216 // InternalSolverLanguageParser.g:2100:2: (this_AtomicExpression_0= ruleAtomicExpression | this_QuantifiedExpression_1= ruleQuantifiedExpression | this_Aggregation_2= ruleAggregation ) 6125 // InternalSolverLanguageParser.g:2451:2: (this_AtomicExpression_0= ruleAtomicExpression | this_Aggregation_1= ruleAggregation | this_Count_2= ruleCount )
5217 int alt23=3; 6126 int alt30=3;
5218 alt23 = dfa23.predict(input); 6127 alt30 = dfa30.predict(input);
5219 switch (alt23) { 6128 switch (alt30) {
5220 case 1 : 6129 case 1 :
5221 // InternalSolverLanguageParser.g:2101:3: this_AtomicExpression_0= ruleAtomicExpression 6130 // InternalSolverLanguageParser.g:2452:3: this_AtomicExpression_0= ruleAtomicExpression
5222 { 6131 {
5223 6132
5224 newCompositeNode(grammarAccess.getAggregationExpressionAccess().getAtomicExpressionParserRuleCall_0()); 6133 newCompositeNode(grammarAccess.getBracedAggregateExpressionAccess().getAtomicExpressionParserRuleCall_0());
5225 6134
5226 pushFollow(FOLLOW_2); 6135 pushFollow(FOLLOW_2);
5227 this_AtomicExpression_0=ruleAtomicExpression(); 6136 this_AtomicExpression_0=ruleAtomicExpression();
@@ -5236,36 +6145,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5236 } 6145 }
5237 break; 6146 break;
5238 case 2 : 6147 case 2 :
5239 // InternalSolverLanguageParser.g:2110:3: this_QuantifiedExpression_1= ruleQuantifiedExpression 6148 // InternalSolverLanguageParser.g:2461:3: this_Aggregation_1= ruleAggregation
5240 { 6149 {
5241 6150
5242 newCompositeNode(grammarAccess.getAggregationExpressionAccess().getQuantifiedExpressionParserRuleCall_1()); 6151 newCompositeNode(grammarAccess.getBracedAggregateExpressionAccess().getAggregationParserRuleCall_1());
5243 6152
5244 pushFollow(FOLLOW_2); 6153 pushFollow(FOLLOW_2);
5245 this_QuantifiedExpression_1=ruleQuantifiedExpression(); 6154 this_Aggregation_1=ruleAggregation();
5246 6155
5247 state._fsp--; 6156 state._fsp--;
5248 6157
5249 6158
5250 current = this_QuantifiedExpression_1; 6159 current = this_Aggregation_1;
5251 afterParserOrEnumRuleCall(); 6160 afterParserOrEnumRuleCall();
5252 6161
5253 6162
5254 } 6163 }
5255 break; 6164 break;
5256 case 3 : 6165 case 3 :
5257 // InternalSolverLanguageParser.g:2119:3: this_Aggregation_2= ruleAggregation 6166 // InternalSolverLanguageParser.g:2470:3: this_Count_2= ruleCount
5258 { 6167 {
5259 6168
5260 newCompositeNode(grammarAccess.getAggregationExpressionAccess().getAggregationParserRuleCall_2()); 6169 newCompositeNode(grammarAccess.getBracedAggregateExpressionAccess().getCountParserRuleCall_2());
5261 6170
5262 pushFollow(FOLLOW_2); 6171 pushFollow(FOLLOW_2);
5263 this_Aggregation_2=ruleAggregation(); 6172 this_Count_2=ruleCount();
5264 6173
5265 state._fsp--; 6174 state._fsp--;
5266 6175
5267 6176
5268 current = this_Aggregation_2; 6177 current = this_Count_2;
5269 afterParserOrEnumRuleCall(); 6178 afterParserOrEnumRuleCall();
5270 6179
5271 6180
@@ -5290,28 +6199,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5290 } 6199 }
5291 return current; 6200 return current;
5292 } 6201 }
5293 // $ANTLR end "ruleAggregationExpression" 6202 // $ANTLR end "ruleBracedAggregateExpression"
5294 6203
5295 6204
5296 // $ANTLR start "entryRuleLocalVariables" 6205 // $ANTLR start "entryRuleAggregation"
5297 // InternalSolverLanguageParser.g:2131:1: entryRuleLocalVariables returns [EObject current=null] : iv_ruleLocalVariables= ruleLocalVariables EOF ; 6206 // InternalSolverLanguageParser.g:2482:1: entryRuleAggregation returns [EObject current=null] : iv_ruleAggregation= ruleAggregation EOF ;
5298 public final EObject entryRuleLocalVariables() throws RecognitionException { 6207 public final EObject entryRuleAggregation() throws RecognitionException {
5299 EObject current = null; 6208 EObject current = null;
5300 6209
5301 EObject iv_ruleLocalVariables = null; 6210 EObject iv_ruleAggregation = null;
5302 6211
5303 6212
5304 try { 6213 try {
5305 // InternalSolverLanguageParser.g:2131:55: (iv_ruleLocalVariables= ruleLocalVariables EOF ) 6214 // InternalSolverLanguageParser.g:2482:52: (iv_ruleAggregation= ruleAggregation EOF )
5306 // InternalSolverLanguageParser.g:2132:2: iv_ruleLocalVariables= ruleLocalVariables EOF 6215 // InternalSolverLanguageParser.g:2483:2: iv_ruleAggregation= ruleAggregation EOF
5307 { 6216 {
5308 newCompositeNode(grammarAccess.getLocalVariablesRule()); 6217 newCompositeNode(grammarAccess.getAggregationRule());
5309 pushFollow(FOLLOW_1); 6218 pushFollow(FOLLOW_1);
5310 iv_ruleLocalVariables=ruleLocalVariables(); 6219 iv_ruleAggregation=ruleAggregation();
5311 6220
5312 state._fsp--; 6221 state._fsp--;
5313 6222
5314 current =iv_ruleLocalVariables; 6223 current =iv_ruleAggregation;
5315 match(input,EOF,FOLLOW_2); 6224 match(input,EOF,FOLLOW_2);
5316 6225
5317 } 6226 }
@@ -5326,263 +6235,87 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5326 } 6235 }
5327 return current; 6236 return current;
5328 } 6237 }
5329 // $ANTLR end "entryRuleLocalVariables" 6238 // $ANTLR end "entryRuleAggregation"
5330 6239
5331 6240
5332 // $ANTLR start "ruleLocalVariables" 6241 // $ANTLR start "ruleAggregation"
5333 // InternalSolverLanguageParser.g:2138:1: ruleLocalVariables returns [EObject current=null] : ( () otherlv_1= LeftSquareBracket ( ( (lv_variables_2_0= ruleVariable ) ) (otherlv_3= Comma ( (lv_variables_4_0= ruleVariable ) ) )* )? otherlv_5= RightSquareBracket ) ; 6242 // InternalSolverLanguageParser.g:2489:1: ruleAggregation returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) otherlv_1= LeftCurlyBracket ( (lv_value_2_0= ruleExpression ) ) otherlv_3= VerticalLine ( (lv_condition_4_0= ruleExpression ) ) otherlv_5= RightCurlyBracket ) ;
5334 public final EObject ruleLocalVariables() throws RecognitionException { 6243 public final EObject ruleAggregation() throws RecognitionException {
5335 EObject current = null; 6244 EObject current = null;
5336 6245
5337 Token otherlv_1=null; 6246 Token otherlv_1=null;
5338 Token otherlv_3=null; 6247 Token otherlv_3=null;
5339 Token otherlv_5=null; 6248 Token otherlv_5=null;
5340 EObject lv_variables_2_0 = null; 6249 EObject lv_value_2_0 = null;
5341 6250
5342 EObject lv_variables_4_0 = null; 6251 EObject lv_condition_4_0 = null;
5343 6252
5344 6253
5345 6254
5346 enterRule(); 6255 enterRule();
5347 6256
5348 try { 6257 try {
5349 // InternalSolverLanguageParser.g:2144:2: ( ( () otherlv_1= LeftSquareBracket ( ( (lv_variables_2_0= ruleVariable ) ) (otherlv_3= Comma ( (lv_variables_4_0= ruleVariable ) ) )* )? otherlv_5= RightSquareBracket ) ) 6258 // InternalSolverLanguageParser.g:2495:2: ( ( ( ( ruleQualifiedName ) ) otherlv_1= LeftCurlyBracket ( (lv_value_2_0= ruleExpression ) ) otherlv_3= VerticalLine ( (lv_condition_4_0= ruleExpression ) ) otherlv_5= RightCurlyBracket ) )
5350 // InternalSolverLanguageParser.g:2145:2: ( () otherlv_1= LeftSquareBracket ( ( (lv_variables_2_0= ruleVariable ) ) (otherlv_3= Comma ( (lv_variables_4_0= ruleVariable ) ) )* )? otherlv_5= RightSquareBracket ) 6259 // InternalSolverLanguageParser.g:2496:2: ( ( ( ruleQualifiedName ) ) otherlv_1= LeftCurlyBracket ( (lv_value_2_0= ruleExpression ) ) otherlv_3= VerticalLine ( (lv_condition_4_0= ruleExpression ) ) otherlv_5= RightCurlyBracket )
5351 { 6260 {
5352 // InternalSolverLanguageParser.g:2145:2: ( () otherlv_1= LeftSquareBracket ( ( (lv_variables_2_0= ruleVariable ) ) (otherlv_3= Comma ( (lv_variables_4_0= ruleVariable ) ) )* )? otherlv_5= RightSquareBracket ) 6261 // InternalSolverLanguageParser.g:2496:2: ( ( ( ruleQualifiedName ) ) otherlv_1= LeftCurlyBracket ( (lv_value_2_0= ruleExpression ) ) otherlv_3= VerticalLine ( (lv_condition_4_0= ruleExpression ) ) otherlv_5= RightCurlyBracket )
5353 // InternalSolverLanguageParser.g:2146:3: () otherlv_1= LeftSquareBracket ( ( (lv_variables_2_0= ruleVariable ) ) (otherlv_3= Comma ( (lv_variables_4_0= ruleVariable ) ) )* )? otherlv_5= RightSquareBracket 6262 // InternalSolverLanguageParser.g:2497:3: ( ( ruleQualifiedName ) ) otherlv_1= LeftCurlyBracket ( (lv_value_2_0= ruleExpression ) ) otherlv_3= VerticalLine ( (lv_condition_4_0= ruleExpression ) ) otherlv_5= RightCurlyBracket
5354 { 6263 {
5355 // InternalSolverLanguageParser.g:2146:3: () 6264 // InternalSolverLanguageParser.g:2497:3: ( ( ruleQualifiedName ) )
5356 // InternalSolverLanguageParser.g:2147:4: 6265 // InternalSolverLanguageParser.g:2498:4: ( ruleQualifiedName )
6266 {
6267 // InternalSolverLanguageParser.g:2498:4: ( ruleQualifiedName )
6268 // InternalSolverLanguageParser.g:2499:5: ruleQualifiedName
5357 { 6269 {
5358 6270
5359 current = forceCreateModelElement( 6271 if (current==null) {
5360 grammarAccess.getLocalVariablesAccess().getLocalVariablesAction_0(), 6272 current = createModelElement(grammarAccess.getAggregationRule());
5361 current); 6273 }
5362 6274
5363
5364 }
5365
5366 otherlv_1=(Token)match(input,LeftSquareBracket,FOLLOW_34);
5367
5368 newLeafNode(otherlv_1, grammarAccess.getLocalVariablesAccess().getLeftSquareBracketKeyword_1());
5369
5370 // InternalSolverLanguageParser.g:2157:3: ( ( (lv_variables_2_0= ruleVariable ) ) (otherlv_3= Comma ( (lv_variables_4_0= ruleVariable ) ) )* )?
5371 int alt25=2;
5372 int LA25_0 = input.LA(1);
5373
5374 if ( (LA25_0==RULE_QUOTED_ID||LA25_0==RULE_ID) ) {
5375 alt25=1;
5376 }
5377 switch (alt25) {
5378 case 1 :
5379 // InternalSolverLanguageParser.g:2158:4: ( (lv_variables_2_0= ruleVariable ) ) (otherlv_3= Comma ( (lv_variables_4_0= ruleVariable ) ) )*
5380 {
5381 // InternalSolverLanguageParser.g:2158:4: ( (lv_variables_2_0= ruleVariable ) )
5382 // InternalSolverLanguageParser.g:2159:5: (lv_variables_2_0= ruleVariable )
5383 {
5384 // InternalSolverLanguageParser.g:2159:5: (lv_variables_2_0= ruleVariable )
5385 // InternalSolverLanguageParser.g:2160:6: lv_variables_2_0= ruleVariable
5386 {
5387
5388 newCompositeNode(grammarAccess.getLocalVariablesAccess().getVariablesVariableParserRuleCall_2_0_0());
5389
5390 pushFollow(FOLLOW_35);
5391 lv_variables_2_0=ruleVariable();
5392
5393 state._fsp--;
5394
5395
5396 if (current==null) {
5397 current = createModelElementForParent(grammarAccess.getLocalVariablesRule());
5398 }
5399 add(
5400 current,
5401 "variables",
5402 lv_variables_2_0,
5403 "org.eclipse.viatra.solver.language.SolverLanguage.Variable");
5404 afterParserOrEnumRuleCall();
5405
5406
5407 }
5408
5409
5410 }
5411
5412 // InternalSolverLanguageParser.g:2177:4: (otherlv_3= Comma ( (lv_variables_4_0= ruleVariable ) ) )*
5413 loop24:
5414 do {
5415 int alt24=2;
5416 int LA24_0 = input.LA(1);
5417
5418 if ( (LA24_0==Comma) ) {
5419 alt24=1;
5420 }
5421
5422
5423 switch (alt24) {
5424 case 1 :
5425 // InternalSolverLanguageParser.g:2178:5: otherlv_3= Comma ( (lv_variables_4_0= ruleVariable ) )
5426 {
5427 otherlv_3=(Token)match(input,Comma,FOLLOW_8);
5428
5429 newLeafNode(otherlv_3, grammarAccess.getLocalVariablesAccess().getCommaKeyword_2_1_0());
5430
5431 // InternalSolverLanguageParser.g:2182:5: ( (lv_variables_4_0= ruleVariable ) )
5432 // InternalSolverLanguageParser.g:2183:6: (lv_variables_4_0= ruleVariable )
5433 {
5434 // InternalSolverLanguageParser.g:2183:6: (lv_variables_4_0= ruleVariable )
5435 // InternalSolverLanguageParser.g:2184:7: lv_variables_4_0= ruleVariable
5436 {
5437
5438 newCompositeNode(grammarAccess.getLocalVariablesAccess().getVariablesVariableParserRuleCall_2_1_1_0());
5439
5440 pushFollow(FOLLOW_35);
5441 lv_variables_4_0=ruleVariable();
5442
5443 state._fsp--;
5444
5445
5446 if (current==null) {
5447 current = createModelElementForParent(grammarAccess.getLocalVariablesRule());
5448 }
5449 add(
5450 current,
5451 "variables",
5452 lv_variables_4_0,
5453 "org.eclipse.viatra.solver.language.SolverLanguage.Variable");
5454 afterParserOrEnumRuleCall();
5455
5456
5457 }
5458
5459
5460 }
5461
5462
5463 }
5464 break;
5465
5466 default :
5467 break loop24;
5468 }
5469 } while (true);
5470
5471
5472 }
5473 break;
5474
5475 }
5476
5477 otherlv_5=(Token)match(input,RightSquareBracket,FOLLOW_2);
5478
5479 newLeafNode(otherlv_5, grammarAccess.getLocalVariablesAccess().getRightSquareBracketKeyword_3());
5480
5481
5482 }
5483
5484
5485 }
5486
5487
5488 leaveRule();
5489
5490 }
5491
5492 catch (RecognitionException re) {
5493 recover(input,re);
5494 appendSkippedTokens();
5495 }
5496 finally {
5497 }
5498 return current;
5499 }
5500 // $ANTLR end "ruleLocalVariables"
5501
5502
5503 // $ANTLR start "entryRuleQuantifiedExpression"
5504 // InternalSolverLanguageParser.g:2211:1: entryRuleQuantifiedExpression returns [EObject current=null] : iv_ruleQuantifiedExpression= ruleQuantifiedExpression EOF ;
5505 public final EObject entryRuleQuantifiedExpression() throws RecognitionException {
5506 EObject current = null;
5507
5508 EObject iv_ruleQuantifiedExpression = null;
5509
5510 6275
5511 try { 6276 newCompositeNode(grammarAccess.getAggregationAccess().getOpSymbolCrossReference_0_0());
5512 // InternalSolverLanguageParser.g:2211:61: (iv_ruleQuantifiedExpression= ruleQuantifiedExpression EOF ) 6277
5513 // InternalSolverLanguageParser.g:2212:2: iv_ruleQuantifiedExpression= ruleQuantifiedExpression EOF 6278 pushFollow(FOLLOW_20);
5514 { 6279 ruleQualifiedName();
5515 newCompositeNode(grammarAccess.getQuantifiedExpressionRule());
5516 pushFollow(FOLLOW_1);
5517 iv_ruleQuantifiedExpression=ruleQuantifiedExpression();
5518 6280
5519 state._fsp--; 6281 state._fsp--;
5520 6282
5521 current =iv_ruleQuantifiedExpression;
5522 match(input,EOF,FOLLOW_2);
5523
5524 }
5525 6283
5526 } 6284 afterParserOrEnumRuleCall();
6285
5527 6286
5528 catch (RecognitionException re) {
5529 recover(input,re);
5530 appendSkippedTokens();
5531 } 6287 }
5532 finally {
5533 }
5534 return current;
5535 }
5536 // $ANTLR end "entryRuleQuantifiedExpression"
5537
5538
5539 // $ANTLR start "ruleQuantifiedExpression"
5540 // InternalSolverLanguageParser.g:2218:1: ruleQuantifiedExpression returns [EObject current=null] : ( ( (lv_quantifier_0_0= ruleQuantifier ) ) ( (lv_localVariables_1_0= ruleLocalVariables ) )? otherlv_2= LeftCurlyBracket ( (lv_body_3_0= ruleExpression ) ) otherlv_4= RightCurlyBracket ) ;
5541 public final EObject ruleQuantifiedExpression() throws RecognitionException {
5542 EObject current = null;
5543
5544 Token otherlv_2=null;
5545 Token otherlv_4=null;
5546 Enumerator lv_quantifier_0_0 = null;
5547
5548 EObject lv_localVariables_1_0 = null;
5549
5550 EObject lv_body_3_0 = null;
5551 6288
5552 6289
6290 }
5553 6291
5554 enterRule(); 6292 otherlv_1=(Token)match(input,LeftCurlyBracket,FOLLOW_10);
5555 6293
5556 try { 6294 newLeafNode(otherlv_1, grammarAccess.getAggregationAccess().getLeftCurlyBracketKeyword_1());
5557 // InternalSolverLanguageParser.g:2224:2: ( ( ( (lv_quantifier_0_0= ruleQuantifier ) ) ( (lv_localVariables_1_0= ruleLocalVariables ) )? otherlv_2= LeftCurlyBracket ( (lv_body_3_0= ruleExpression ) ) otherlv_4= RightCurlyBracket ) ) 6295
5558 // InternalSolverLanguageParser.g:2225:2: ( ( (lv_quantifier_0_0= ruleQuantifier ) ) ( (lv_localVariables_1_0= ruleLocalVariables ) )? otherlv_2= LeftCurlyBracket ( (lv_body_3_0= ruleExpression ) ) otherlv_4= RightCurlyBracket ) 6296 // InternalSolverLanguageParser.g:2517:3: ( (lv_value_2_0= ruleExpression ) )
5559 { 6297 // InternalSolverLanguageParser.g:2518:4: (lv_value_2_0= ruleExpression )
5560 // InternalSolverLanguageParser.g:2225:2: ( ( (lv_quantifier_0_0= ruleQuantifier ) ) ( (lv_localVariables_1_0= ruleLocalVariables ) )? otherlv_2= LeftCurlyBracket ( (lv_body_3_0= ruleExpression ) ) otherlv_4= RightCurlyBracket )
5561 // InternalSolverLanguageParser.g:2226:3: ( (lv_quantifier_0_0= ruleQuantifier ) ) ( (lv_localVariables_1_0= ruleLocalVariables ) )? otherlv_2= LeftCurlyBracket ( (lv_body_3_0= ruleExpression ) ) otherlv_4= RightCurlyBracket
5562 {
5563 // InternalSolverLanguageParser.g:2226:3: ( (lv_quantifier_0_0= ruleQuantifier ) )
5564 // InternalSolverLanguageParser.g:2227:4: (lv_quantifier_0_0= ruleQuantifier )
5565 { 6298 {
5566 // InternalSolverLanguageParser.g:2227:4: (lv_quantifier_0_0= ruleQuantifier ) 6299 // InternalSolverLanguageParser.g:2518:4: (lv_value_2_0= ruleExpression )
5567 // InternalSolverLanguageParser.g:2228:5: lv_quantifier_0_0= ruleQuantifier 6300 // InternalSolverLanguageParser.g:2519:5: lv_value_2_0= ruleExpression
5568 { 6301 {
5569 6302
5570 newCompositeNode(grammarAccess.getQuantifiedExpressionAccess().getQuantifierQuantifierEnumRuleCall_0_0()); 6303 newCompositeNode(grammarAccess.getAggregationAccess().getValueExpressionParserRuleCall_2_0());
5571 6304
5572 pushFollow(FOLLOW_36); 6305 pushFollow(FOLLOW_40);
5573 lv_quantifier_0_0=ruleQuantifier(); 6306 lv_value_2_0=ruleExpression();
5574 6307
5575 state._fsp--; 6308 state._fsp--;
5576 6309
5577 6310
5578 if (current==null) { 6311 if (current==null) {
5579 current = createModelElementForParent(grammarAccess.getQuantifiedExpressionRule()); 6312 current = createModelElementForParent(grammarAccess.getAggregationRule());
5580 } 6313 }
5581 set( 6314 set(
5582 current, 6315 current,
5583 "quantifier", 6316 "value",
5584 lv_quantifier_0_0, 6317 lv_value_2_0,
5585 "org.eclipse.viatra.solver.language.SolverLanguage.Quantifier"); 6318 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
5586 afterParserOrEnumRuleCall(); 6319 afterParserOrEnumRuleCall();
5587 6320
5588 6321
@@ -5591,74 +6324,32 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5591 6324
5592 } 6325 }
5593 6326
5594 // InternalSolverLanguageParser.g:2245:3: ( (lv_localVariables_1_0= ruleLocalVariables ) )? 6327 otherlv_3=(Token)match(input,VerticalLine,FOLLOW_10);
5595 int alt26=2;
5596 int LA26_0 = input.LA(1);
5597
5598 if ( (LA26_0==LeftSquareBracket) ) {
5599 alt26=1;
5600 }
5601 switch (alt26) {
5602 case 1 :
5603 // InternalSolverLanguageParser.g:2246:4: (lv_localVariables_1_0= ruleLocalVariables )
5604 {
5605 // InternalSolverLanguageParser.g:2246:4: (lv_localVariables_1_0= ruleLocalVariables )
5606 // InternalSolverLanguageParser.g:2247:5: lv_localVariables_1_0= ruleLocalVariables
5607 {
5608 6328
5609 newCompositeNode(grammarAccess.getQuantifiedExpressionAccess().getLocalVariablesLocalVariablesParserRuleCall_1_0()); 6329 newLeafNode(otherlv_3, grammarAccess.getAggregationAccess().getVerticalLineKeyword_3());
5610
5611 pushFollow(FOLLOW_14);
5612 lv_localVariables_1_0=ruleLocalVariables();
5613
5614 state._fsp--;
5615
5616
5617 if (current==null) {
5618 current = createModelElementForParent(grammarAccess.getQuantifiedExpressionRule());
5619 }
5620 set(
5621 current,
5622 "localVariables",
5623 lv_localVariables_1_0,
5624 "org.eclipse.viatra.solver.language.SolverLanguage.LocalVariables");
5625 afterParserOrEnumRuleCall();
5626
5627
5628 }
5629
5630
5631 }
5632 break;
5633
5634 }
5635
5636 otherlv_2=(Token)match(input,LeftCurlyBracket,FOLLOW_6);
5637
5638 newLeafNode(otherlv_2, grammarAccess.getQuantifiedExpressionAccess().getLeftCurlyBracketKeyword_2());
5639 6330
5640 // InternalSolverLanguageParser.g:2268:3: ( (lv_body_3_0= ruleExpression ) ) 6331 // InternalSolverLanguageParser.g:2540:3: ( (lv_condition_4_0= ruleExpression ) )
5641 // InternalSolverLanguageParser.g:2269:4: (lv_body_3_0= ruleExpression ) 6332 // InternalSolverLanguageParser.g:2541:4: (lv_condition_4_0= ruleExpression )
5642 { 6333 {
5643 // InternalSolverLanguageParser.g:2269:4: (lv_body_3_0= ruleExpression ) 6334 // InternalSolverLanguageParser.g:2541:4: (lv_condition_4_0= ruleExpression )
5644 // InternalSolverLanguageParser.g:2270:5: lv_body_3_0= ruleExpression 6335 // InternalSolverLanguageParser.g:2542:5: lv_condition_4_0= ruleExpression
5645 { 6336 {
5646 6337
5647 newCompositeNode(grammarAccess.getQuantifiedExpressionAccess().getBodyExpressionParserRuleCall_3_0()); 6338 newCompositeNode(grammarAccess.getAggregationAccess().getConditionExpressionParserRuleCall_4_0());
5648 6339
5649 pushFollow(FOLLOW_16); 6340 pushFollow(FOLLOW_22);
5650 lv_body_3_0=ruleExpression(); 6341 lv_condition_4_0=ruleExpression();
5651 6342
5652 state._fsp--; 6343 state._fsp--;
5653 6344
5654 6345
5655 if (current==null) { 6346 if (current==null) {
5656 current = createModelElementForParent(grammarAccess.getQuantifiedExpressionRule()); 6347 current = createModelElementForParent(grammarAccess.getAggregationRule());
5657 } 6348 }
5658 set( 6349 set(
5659 current, 6350 current,
5660 "body", 6351 "condition",
5661 lv_body_3_0, 6352 lv_condition_4_0,
5662 "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); 6353 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
5663 afterParserOrEnumRuleCall(); 6354 afterParserOrEnumRuleCall();
5664 6355
@@ -5668,9 +6359,9 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5668 6359
5669 } 6360 }
5670 6361
5671 otherlv_4=(Token)match(input,RightCurlyBracket,FOLLOW_2); 6362 otherlv_5=(Token)match(input,RightCurlyBracket,FOLLOW_2);
5672 6363
5673 newLeafNode(otherlv_4, grammarAccess.getQuantifiedExpressionAccess().getRightCurlyBracketKeyword_4()); 6364 newLeafNode(otherlv_5, grammarAccess.getAggregationAccess().getRightCurlyBracketKeyword_5());
5674 6365
5675 6366
5676 } 6367 }
@@ -5691,28 +6382,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5691 } 6382 }
5692 return current; 6383 return current;
5693 } 6384 }
5694 // $ANTLR end "ruleQuantifiedExpression" 6385 // $ANTLR end "ruleAggregation"
5695 6386
5696 6387
5697 // $ANTLR start "entryRuleAggregation" 6388 // $ANTLR start "entryRuleCount"
5698 // InternalSolverLanguageParser.g:2295:1: entryRuleAggregation returns [EObject current=null] : iv_ruleAggregation= ruleAggregation EOF ; 6389 // InternalSolverLanguageParser.g:2567:1: entryRuleCount returns [EObject current=null] : iv_ruleCount= ruleCount EOF ;
5699 public final EObject entryRuleAggregation() throws RecognitionException { 6390 public final EObject entryRuleCount() throws RecognitionException {
5700 EObject current = null; 6391 EObject current = null;
5701 6392
5702 EObject iv_ruleAggregation = null; 6393 EObject iv_ruleCount = null;
5703 6394
5704 6395
5705 try { 6396 try {
5706 // InternalSolverLanguageParser.g:2295:52: (iv_ruleAggregation= ruleAggregation EOF ) 6397 // InternalSolverLanguageParser.g:2567:46: (iv_ruleCount= ruleCount EOF )
5707 // InternalSolverLanguageParser.g:2296:2: iv_ruleAggregation= ruleAggregation EOF 6398 // InternalSolverLanguageParser.g:2568:2: iv_ruleCount= ruleCount EOF
5708 { 6399 {
5709 newCompositeNode(grammarAccess.getAggregationRule()); 6400 newCompositeNode(grammarAccess.getCountRule());
5710 pushFollow(FOLLOW_1); 6401 pushFollow(FOLLOW_1);
5711 iv_ruleAggregation=ruleAggregation(); 6402 iv_ruleCount=ruleCount();
5712 6403
5713 state._fsp--; 6404 state._fsp--;
5714 6405
5715 current =iv_ruleAggregation; 6406 current =iv_ruleCount;
5716 match(input,EOF,FOLLOW_2); 6407 match(input,EOF,FOLLOW_2);
5717 6408
5718 } 6409 }
@@ -5727,130 +6418,60 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5727 } 6418 }
5728 return current; 6419 return current;
5729 } 6420 }
5730 // $ANTLR end "entryRuleAggregation" 6421 // $ANTLR end "entryRuleCount"
5731 6422
5732 6423
5733 // $ANTLR start "ruleAggregation" 6424 // $ANTLR start "ruleCount"
5734 // InternalSolverLanguageParser.g:2302:1: ruleAggregation returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( (lv_localVariables_1_0= ruleLocalVariables ) )? otherlv_2= LeftCurlyBracket ( (lv_body_3_0= ruleExpression ) ) (otherlv_4= VerticalLine ( (lv_condition_5_0= ruleExpression ) ) )? otherlv_6= RightCurlyBracket ) ; 6425 // InternalSolverLanguageParser.g:2574:1: ruleCount returns [EObject current=null] : (otherlv_0= Count otherlv_1= LeftCurlyBracket ( (lv_condition_2_0= ruleExpression ) ) otherlv_3= RightCurlyBracket ) ;
5735 public final EObject ruleAggregation() throws RecognitionException { 6426 public final EObject ruleCount() throws RecognitionException {
5736 EObject current = null; 6427 EObject current = null;
5737 6428
5738 Token otherlv_2=null; 6429 Token otherlv_0=null;
5739 Token otherlv_4=null; 6430 Token otherlv_1=null;
5740 Token otherlv_6=null; 6431 Token otherlv_3=null;
5741 EObject lv_localVariables_1_0 = null; 6432 EObject lv_condition_2_0 = null;
5742
5743 EObject lv_body_3_0 = null;
5744
5745 EObject lv_condition_5_0 = null;
5746 6433
5747 6434
5748 6435
5749 enterRule(); 6436 enterRule();
5750 6437
5751 try { 6438 try {
5752 // InternalSolverLanguageParser.g:2308:2: ( ( ( ( ruleQualifiedName ) ) ( (lv_localVariables_1_0= ruleLocalVariables ) )? otherlv_2= LeftCurlyBracket ( (lv_body_3_0= ruleExpression ) ) (otherlv_4= VerticalLine ( (lv_condition_5_0= ruleExpression ) ) )? otherlv_6= RightCurlyBracket ) ) 6439 // InternalSolverLanguageParser.g:2580:2: ( (otherlv_0= Count otherlv_1= LeftCurlyBracket ( (lv_condition_2_0= ruleExpression ) ) otherlv_3= RightCurlyBracket ) )
5753 // InternalSolverLanguageParser.g:2309:2: ( ( ( ruleQualifiedName ) ) ( (lv_localVariables_1_0= ruleLocalVariables ) )? otherlv_2= LeftCurlyBracket ( (lv_body_3_0= ruleExpression ) ) (otherlv_4= VerticalLine ( (lv_condition_5_0= ruleExpression ) ) )? otherlv_6= RightCurlyBracket ) 6440 // InternalSolverLanguageParser.g:2581:2: (otherlv_0= Count otherlv_1= LeftCurlyBracket ( (lv_condition_2_0= ruleExpression ) ) otherlv_3= RightCurlyBracket )
5754 { 6441 {
5755 // InternalSolverLanguageParser.g:2309:2: ( ( ( ruleQualifiedName ) ) ( (lv_localVariables_1_0= ruleLocalVariables ) )? otherlv_2= LeftCurlyBracket ( (lv_body_3_0= ruleExpression ) ) (otherlv_4= VerticalLine ( (lv_condition_5_0= ruleExpression ) ) )? otherlv_6= RightCurlyBracket ) 6442 // InternalSolverLanguageParser.g:2581:2: (otherlv_0= Count otherlv_1= LeftCurlyBracket ( (lv_condition_2_0= ruleExpression ) ) otherlv_3= RightCurlyBracket )
5756 // InternalSolverLanguageParser.g:2310:3: ( ( ruleQualifiedName ) ) ( (lv_localVariables_1_0= ruleLocalVariables ) )? otherlv_2= LeftCurlyBracket ( (lv_body_3_0= ruleExpression ) ) (otherlv_4= VerticalLine ( (lv_condition_5_0= ruleExpression ) ) )? otherlv_6= RightCurlyBracket 6443 // InternalSolverLanguageParser.g:2582:3: otherlv_0= Count otherlv_1= LeftCurlyBracket ( (lv_condition_2_0= ruleExpression ) ) otherlv_3= RightCurlyBracket
5757 { 6444 {
5758 // InternalSolverLanguageParser.g:2310:3: ( ( ruleQualifiedName ) ) 6445 otherlv_0=(Token)match(input,Count,FOLLOW_20);
5759 // InternalSolverLanguageParser.g:2311:4: ( ruleQualifiedName )
5760 {
5761 // InternalSolverLanguageParser.g:2311:4: ( ruleQualifiedName )
5762 // InternalSolverLanguageParser.g:2312:5: ruleQualifiedName
5763 {
5764
5765 if (current==null) {
5766 current = createModelElement(grammarAccess.getAggregationRule());
5767 }
5768
5769
5770 newCompositeNode(grammarAccess.getAggregationAccess().getOpNamedElementCrossReference_0_0());
5771
5772 pushFollow(FOLLOW_36);
5773 ruleQualifiedName();
5774
5775 state._fsp--;
5776
5777
5778 afterParserOrEnumRuleCall();
5779
5780
5781 }
5782
5783
5784 }
5785
5786 // InternalSolverLanguageParser.g:2326:3: ( (lv_localVariables_1_0= ruleLocalVariables ) )?
5787 int alt27=2;
5788 int LA27_0 = input.LA(1);
5789
5790 if ( (LA27_0==LeftSquareBracket) ) {
5791 alt27=1;
5792 }
5793 switch (alt27) {
5794 case 1 :
5795 // InternalSolverLanguageParser.g:2327:4: (lv_localVariables_1_0= ruleLocalVariables )
5796 {
5797 // InternalSolverLanguageParser.g:2327:4: (lv_localVariables_1_0= ruleLocalVariables )
5798 // InternalSolverLanguageParser.g:2328:5: lv_localVariables_1_0= ruleLocalVariables
5799 {
5800
5801 newCompositeNode(grammarAccess.getAggregationAccess().getLocalVariablesLocalVariablesParserRuleCall_1_0());
5802
5803 pushFollow(FOLLOW_14);
5804 lv_localVariables_1_0=ruleLocalVariables();
5805
5806 state._fsp--;
5807
5808
5809 if (current==null) {
5810 current = createModelElementForParent(grammarAccess.getAggregationRule());
5811 }
5812 set(
5813 current,
5814 "localVariables",
5815 lv_localVariables_1_0,
5816 "org.eclipse.viatra.solver.language.SolverLanguage.LocalVariables");
5817 afterParserOrEnumRuleCall();
5818
5819
5820 }
5821
5822 6446
5823 } 6447 newLeafNode(otherlv_0, grammarAccess.getCountAccess().getCountKeyword_0());
5824 break; 6448
5825 6449 otherlv_1=(Token)match(input,LeftCurlyBracket,FOLLOW_10);
5826 }
5827
5828 otherlv_2=(Token)match(input,LeftCurlyBracket,FOLLOW_6);
5829 6450
5830 newLeafNode(otherlv_2, grammarAccess.getAggregationAccess().getLeftCurlyBracketKeyword_2()); 6451 newLeafNode(otherlv_1, grammarAccess.getCountAccess().getLeftCurlyBracketKeyword_1());
5831 6452
5832 // InternalSolverLanguageParser.g:2349:3: ( (lv_body_3_0= ruleExpression ) ) 6453 // InternalSolverLanguageParser.g:2590:3: ( (lv_condition_2_0= ruleExpression ) )
5833 // InternalSolverLanguageParser.g:2350:4: (lv_body_3_0= ruleExpression ) 6454 // InternalSolverLanguageParser.g:2591:4: (lv_condition_2_0= ruleExpression )
5834 { 6455 {
5835 // InternalSolverLanguageParser.g:2350:4: (lv_body_3_0= ruleExpression ) 6456 // InternalSolverLanguageParser.g:2591:4: (lv_condition_2_0= ruleExpression )
5836 // InternalSolverLanguageParser.g:2351:5: lv_body_3_0= ruleExpression 6457 // InternalSolverLanguageParser.g:2592:5: lv_condition_2_0= ruleExpression
5837 { 6458 {
5838 6459
5839 newCompositeNode(grammarAccess.getAggregationAccess().getBodyExpressionParserRuleCall_3_0()); 6460 newCompositeNode(grammarAccess.getCountAccess().getConditionExpressionParserRuleCall_2_0());
5840 6461
5841 pushFollow(FOLLOW_37); 6462 pushFollow(FOLLOW_22);
5842 lv_body_3_0=ruleExpression(); 6463 lv_condition_2_0=ruleExpression();
5843 6464
5844 state._fsp--; 6465 state._fsp--;
5845 6466
5846 6467
5847 if (current==null) { 6468 if (current==null) {
5848 current = createModelElementForParent(grammarAccess.getAggregationRule()); 6469 current = createModelElementForParent(grammarAccess.getCountRule());
5849 } 6470 }
5850 set( 6471 set(
5851 current, 6472 current,
5852 "body", 6473 "condition",
5853 lv_body_3_0, 6474 lv_condition_2_0,
5854 "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); 6475 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
5855 afterParserOrEnumRuleCall(); 6476 afterParserOrEnumRuleCall();
5856 6477
@@ -5860,61 +6481,9 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5860 6481
5861 } 6482 }
5862 6483
5863 // InternalSolverLanguageParser.g:2368:3: (otherlv_4= VerticalLine ( (lv_condition_5_0= ruleExpression ) ) )? 6484 otherlv_3=(Token)match(input,RightCurlyBracket,FOLLOW_2);
5864 int alt28=2;
5865 int LA28_0 = input.LA(1);
5866
5867 if ( (LA28_0==VerticalLine) ) {
5868 alt28=1;
5869 }
5870 switch (alt28) {
5871 case 1 :
5872 // InternalSolverLanguageParser.g:2369:4: otherlv_4= VerticalLine ( (lv_condition_5_0= ruleExpression ) )
5873 {
5874 otherlv_4=(Token)match(input,VerticalLine,FOLLOW_6);
5875
5876 newLeafNode(otherlv_4, grammarAccess.getAggregationAccess().getVerticalLineKeyword_4_0());
5877
5878 // InternalSolverLanguageParser.g:2373:4: ( (lv_condition_5_0= ruleExpression ) )
5879 // InternalSolverLanguageParser.g:2374:5: (lv_condition_5_0= ruleExpression )
5880 {
5881 // InternalSolverLanguageParser.g:2374:5: (lv_condition_5_0= ruleExpression )
5882 // InternalSolverLanguageParser.g:2375:6: lv_condition_5_0= ruleExpression
5883 {
5884
5885 newCompositeNode(grammarAccess.getAggregationAccess().getConditionExpressionParserRuleCall_4_1_0());
5886
5887 pushFollow(FOLLOW_16);
5888 lv_condition_5_0=ruleExpression();
5889
5890 state._fsp--;
5891
5892
5893 if (current==null) {
5894 current = createModelElementForParent(grammarAccess.getAggregationRule());
5895 }
5896 set(
5897 current,
5898 "condition",
5899 lv_condition_5_0,
5900 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
5901 afterParserOrEnumRuleCall();
5902
5903
5904 }
5905
5906
5907 }
5908
5909
5910 }
5911 break;
5912
5913 }
5914
5915 otherlv_6=(Token)match(input,RightCurlyBracket,FOLLOW_2);
5916 6485
5917 newLeafNode(otherlv_6, grammarAccess.getAggregationAccess().getRightCurlyBracketKeyword_5()); 6486 newLeafNode(otherlv_3, grammarAccess.getCountAccess().getRightCurlyBracketKeyword_3());
5918 6487
5919 6488
5920 } 6489 }
@@ -5935,11 +6504,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5935 } 6504 }
5936 return current; 6505 return current;
5937 } 6506 }
5938 // $ANTLR end "ruleAggregation" 6507 // $ANTLR end "ruleCount"
5939 6508
5940 6509
5941 // $ANTLR start "entryRuleAtomicExpression" 6510 // $ANTLR start "entryRuleAtomicExpression"
5942 // InternalSolverLanguageParser.g:2401:1: entryRuleAtomicExpression returns [EObject current=null] : iv_ruleAtomicExpression= ruleAtomicExpression EOF ; 6511 // InternalSolverLanguageParser.g:2617:1: entryRuleAtomicExpression returns [EObject current=null] : iv_ruleAtomicExpression= ruleAtomicExpression EOF ;
5943 public final EObject entryRuleAtomicExpression() throws RecognitionException { 6512 public final EObject entryRuleAtomicExpression() throws RecognitionException {
5944 EObject current = null; 6513 EObject current = null;
5945 6514
@@ -5947,8 +6516,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5947 6516
5948 6517
5949 try { 6518 try {
5950 // InternalSolverLanguageParser.g:2401:57: (iv_ruleAtomicExpression= ruleAtomicExpression EOF ) 6519 // InternalSolverLanguageParser.g:2617:57: (iv_ruleAtomicExpression= ruleAtomicExpression EOF )
5951 // InternalSolverLanguageParser.g:2402:2: iv_ruleAtomicExpression= ruleAtomicExpression EOF 6520 // InternalSolverLanguageParser.g:2618:2: iv_ruleAtomicExpression= ruleAtomicExpression EOF
5952 { 6521 {
5953 newCompositeNode(grammarAccess.getAtomicExpressionRule()); 6522 newCompositeNode(grammarAccess.getAtomicExpressionRule());
5954 pushFollow(FOLLOW_1); 6523 pushFollow(FOLLOW_1);
@@ -5975,7 +6544,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5975 6544
5976 6545
5977 // $ANTLR start "ruleAtomicExpression" 6546 // $ANTLR start "ruleAtomicExpression"
5978 // InternalSolverLanguageParser.g:2408:1: ruleAtomicExpression returns [EObject current=null] : (this_Reference_0= ruleReference | this_Call_1= ruleCall | this_Interval_2= ruleInterval | this_Literal_3= ruleLiteral | (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) ) ; 6547 // InternalSolverLanguageParser.g:2624:1: ruleAtomicExpression returns [EObject current=null] : (this_Reference_0= ruleReference | this_Call_1= ruleCall | this_Interval_2= ruleInterval | this_Literal_3= ruleLiteral | (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) ) ;
5979 public final EObject ruleAtomicExpression() throws RecognitionException { 6548 public final EObject ruleAtomicExpression() throws RecognitionException {
5980 EObject current = null; 6549 EObject current = null;
5981 6550
@@ -5996,15 +6565,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5996 enterRule(); 6565 enterRule();
5997 6566
5998 try { 6567 try {
5999 // InternalSolverLanguageParser.g:2414:2: ( (this_Reference_0= ruleReference | this_Call_1= ruleCall | this_Interval_2= ruleInterval | this_Literal_3= ruleLiteral | (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) ) ) 6568 // InternalSolverLanguageParser.g:2630:2: ( (this_Reference_0= ruleReference | this_Call_1= ruleCall | this_Interval_2= ruleInterval | this_Literal_3= ruleLiteral | (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) ) )
6000 // InternalSolverLanguageParser.g:2415:2: (this_Reference_0= ruleReference | this_Call_1= ruleCall | this_Interval_2= ruleInterval | this_Literal_3= ruleLiteral | (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) ) 6569 // InternalSolverLanguageParser.g:2631:2: (this_Reference_0= ruleReference | this_Call_1= ruleCall | this_Interval_2= ruleInterval | this_Literal_3= ruleLiteral | (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) )
6001 { 6570 {
6002 // InternalSolverLanguageParser.g:2415:2: (this_Reference_0= ruleReference | this_Call_1= ruleCall | this_Interval_2= ruleInterval | this_Literal_3= ruleLiteral | (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) ) 6571 // InternalSolverLanguageParser.g:2631:2: (this_Reference_0= ruleReference | this_Call_1= ruleCall | this_Interval_2= ruleInterval | this_Literal_3= ruleLiteral | (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) )
6003 int alt29=5; 6572 int alt31=5;
6004 alt29 = dfa29.predict(input); 6573 alt31 = dfa31.predict(input);
6005 switch (alt29) { 6574 switch (alt31) {
6006 case 1 : 6575 case 1 :
6007 // InternalSolverLanguageParser.g:2416:3: this_Reference_0= ruleReference 6576 // InternalSolverLanguageParser.g:2632:3: this_Reference_0= ruleReference
6008 { 6577 {
6009 6578
6010 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getReferenceParserRuleCall_0()); 6579 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getReferenceParserRuleCall_0());
@@ -6022,7 +6591,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6022 } 6591 }
6023 break; 6592 break;
6024 case 2 : 6593 case 2 :
6025 // InternalSolverLanguageParser.g:2425:3: this_Call_1= ruleCall 6594 // InternalSolverLanguageParser.g:2641:3: this_Call_1= ruleCall
6026 { 6595 {
6027 6596
6028 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getCallParserRuleCall_1()); 6597 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getCallParserRuleCall_1());
@@ -6040,7 +6609,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6040 } 6609 }
6041 break; 6610 break;
6042 case 3 : 6611 case 3 :
6043 // InternalSolverLanguageParser.g:2434:3: this_Interval_2= ruleInterval 6612 // InternalSolverLanguageParser.g:2650:3: this_Interval_2= ruleInterval
6044 { 6613 {
6045 6614
6046 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getIntervalParserRuleCall_2()); 6615 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getIntervalParserRuleCall_2());
@@ -6058,7 +6627,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6058 } 6627 }
6059 break; 6628 break;
6060 case 4 : 6629 case 4 :
6061 // InternalSolverLanguageParser.g:2443:3: this_Literal_3= ruleLiteral 6630 // InternalSolverLanguageParser.g:2659:3: this_Literal_3= ruleLiteral
6062 { 6631 {
6063 6632
6064 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getLiteralParserRuleCall_3()); 6633 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getLiteralParserRuleCall_3());
@@ -6076,19 +6645,19 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6076 } 6645 }
6077 break; 6646 break;
6078 case 5 : 6647 case 5 :
6079 // InternalSolverLanguageParser.g:2452:3: (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) 6648 // InternalSolverLanguageParser.g:2668:3: (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis )
6080 { 6649 {
6081 // InternalSolverLanguageParser.g:2452:3: (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) 6650 // InternalSolverLanguageParser.g:2668:3: (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis )
6082 // InternalSolverLanguageParser.g:2453:4: otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis 6651 // InternalSolverLanguageParser.g:2669:4: otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis
6083 { 6652 {
6084 otherlv_4=(Token)match(input,LeftParenthesis,FOLLOW_6); 6653 otherlv_4=(Token)match(input,LeftParenthesis,FOLLOW_10);
6085 6654
6086 newLeafNode(otherlv_4, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_4_0()); 6655 newLeafNode(otherlv_4, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_4_0());
6087 6656
6088 6657
6089 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getExpressionParserRuleCall_4_1()); 6658 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getExpressionParserRuleCall_4_1());
6090 6659
6091 pushFollow(FOLLOW_38); 6660 pushFollow(FOLLOW_41);
6092 this_Expression_5=ruleExpression(); 6661 this_Expression_5=ruleExpression();
6093 6662
6094 state._fsp--; 6663 state._fsp--;
@@ -6130,7 +6699,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6130 6699
6131 6700
6132 // $ANTLR start "entryRuleCall" 6701 // $ANTLR start "entryRuleCall"
6133 // InternalSolverLanguageParser.g:2474:1: entryRuleCall returns [EObject current=null] : iv_ruleCall= ruleCall EOF ; 6702 // InternalSolverLanguageParser.g:2690:1: entryRuleCall returns [EObject current=null] : iv_ruleCall= ruleCall EOF ;
6134 public final EObject entryRuleCall() throws RecognitionException { 6703 public final EObject entryRuleCall() throws RecognitionException {
6135 EObject current = null; 6704 EObject current = null;
6136 6705
@@ -6138,8 +6707,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6138 6707
6139 6708
6140 try { 6709 try {
6141 // InternalSolverLanguageParser.g:2474:45: (iv_ruleCall= ruleCall EOF ) 6710 // InternalSolverLanguageParser.g:2690:45: (iv_ruleCall= ruleCall EOF )
6142 // InternalSolverLanguageParser.g:2475:2: iv_ruleCall= ruleCall EOF 6711 // InternalSolverLanguageParser.g:2691:2: iv_ruleCall= ruleCall EOF
6143 { 6712 {
6144 newCompositeNode(grammarAccess.getCallRule()); 6713 newCompositeNode(grammarAccess.getCallRule());
6145 pushFollow(FOLLOW_1); 6714 pushFollow(FOLLOW_1);
@@ -6166,37 +6735,35 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6166 6735
6167 6736
6168 // $ANTLR start "ruleCall" 6737 // $ANTLR start "ruleCall"
6169 // InternalSolverLanguageParser.g:2481:1: ruleCall returns [EObject current=null] : ( ( (lv_functor_0_0= ruleReference ) ) ( ( (lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? ( (lv_argumentList_3_0= ruleArgumentList ) ) ) ; 6738 // InternalSolverLanguageParser.g:2697:1: ruleCall returns [EObject current=null] : ( ( (lv_functor_0_0= ruleReference ) ) ( (lv_argumentList_1_0= ruleArgumentList ) ) ) ;
6170 public final EObject ruleCall() throws RecognitionException { 6739 public final EObject ruleCall() throws RecognitionException {
6171 EObject current = null; 6740 EObject current = null;
6172 6741
6173 Token lv_transitiveClosure_1_0=null;
6174 Token lv_reflexiveTransitiveClosure_2_0=null;
6175 EObject lv_functor_0_0 = null; 6742 EObject lv_functor_0_0 = null;
6176 6743
6177 EObject lv_argumentList_3_0 = null; 6744 EObject lv_argumentList_1_0 = null;
6178 6745
6179 6746
6180 6747
6181 enterRule(); 6748 enterRule();
6182 6749
6183 try { 6750 try {
6184 // InternalSolverLanguageParser.g:2487:2: ( ( ( (lv_functor_0_0= ruleReference ) ) ( ( (lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? ( (lv_argumentList_3_0= ruleArgumentList ) ) ) ) 6751 // InternalSolverLanguageParser.g:2703:2: ( ( ( (lv_functor_0_0= ruleReference ) ) ( (lv_argumentList_1_0= ruleArgumentList ) ) ) )
6185 // InternalSolverLanguageParser.g:2488:2: ( ( (lv_functor_0_0= ruleReference ) ) ( ( (lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? ( (lv_argumentList_3_0= ruleArgumentList ) ) ) 6752 // InternalSolverLanguageParser.g:2704:2: ( ( (lv_functor_0_0= ruleReference ) ) ( (lv_argumentList_1_0= ruleArgumentList ) ) )
6186 { 6753 {
6187 // InternalSolverLanguageParser.g:2488:2: ( ( (lv_functor_0_0= ruleReference ) ) ( ( (lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? ( (lv_argumentList_3_0= ruleArgumentList ) ) ) 6754 // InternalSolverLanguageParser.g:2704:2: ( ( (lv_functor_0_0= ruleReference ) ) ( (lv_argumentList_1_0= ruleArgumentList ) ) )
6188 // InternalSolverLanguageParser.g:2489:3: ( (lv_functor_0_0= ruleReference ) ) ( ( (lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? ( (lv_argumentList_3_0= ruleArgumentList ) ) 6755 // InternalSolverLanguageParser.g:2705:3: ( (lv_functor_0_0= ruleReference ) ) ( (lv_argumentList_1_0= ruleArgumentList ) )
6189 { 6756 {
6190 // InternalSolverLanguageParser.g:2489:3: ( (lv_functor_0_0= ruleReference ) ) 6757 // InternalSolverLanguageParser.g:2705:3: ( (lv_functor_0_0= ruleReference ) )
6191 // InternalSolverLanguageParser.g:2490:4: (lv_functor_0_0= ruleReference ) 6758 // InternalSolverLanguageParser.g:2706:4: (lv_functor_0_0= ruleReference )
6192 { 6759 {
6193 // InternalSolverLanguageParser.g:2490:4: (lv_functor_0_0= ruleReference ) 6760 // InternalSolverLanguageParser.g:2706:4: (lv_functor_0_0= ruleReference )
6194 // InternalSolverLanguageParser.g:2491:5: lv_functor_0_0= ruleReference 6761 // InternalSolverLanguageParser.g:2707:5: lv_functor_0_0= ruleReference
6195 { 6762 {
6196 6763
6197 newCompositeNode(grammarAccess.getCallAccess().getFunctorReferenceParserRuleCall_0_0()); 6764 newCompositeNode(grammarAccess.getCallAccess().getFunctorReferenceParserRuleCall_0_0());
6198 6765
6199 pushFollow(FOLLOW_39); 6766 pushFollow(FOLLOW_15);
6200 lv_functor_0_0=ruleReference(); 6767 lv_functor_0_0=ruleReference();
6201 6768
6202 state._fsp--; 6769 state._fsp--;
@@ -6218,95 +6785,17 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6218 6785
6219 } 6786 }
6220 6787
6221 // InternalSolverLanguageParser.g:2508:3: ( ( (lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? 6788 // InternalSolverLanguageParser.g:2724:3: ( (lv_argumentList_1_0= ruleArgumentList ) )
6222 int alt30=3; 6789 // InternalSolverLanguageParser.g:2725:4: (lv_argumentList_1_0= ruleArgumentList )
6223 int LA30_0 = input.LA(1);
6224
6225 if ( (LA30_0==RULE_TRANSITIVE_CLOSURE) ) {
6226 alt30=1;
6227 }
6228 else if ( (LA30_0==RULE_REFLEXIVE_TRANSITIVE_CLOSURE) ) {
6229 alt30=2;
6230 }
6231 switch (alt30) {
6232 case 1 :
6233 // InternalSolverLanguageParser.g:2509:4: ( (lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE ) )
6234 {
6235 // InternalSolverLanguageParser.g:2509:4: ( (lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE ) )
6236 // InternalSolverLanguageParser.g:2510:5: (lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE )
6237 {
6238 // InternalSolverLanguageParser.g:2510:5: (lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE )
6239 // InternalSolverLanguageParser.g:2511:6: lv_transitiveClosure_1_0= RULE_TRANSITIVE_CLOSURE
6240 {
6241 lv_transitiveClosure_1_0=(Token)match(input,RULE_TRANSITIVE_CLOSURE,FOLLOW_11);
6242
6243 newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getCallAccess().getTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_1_0_0());
6244
6245
6246 if (current==null) {
6247 current = createModelElement(grammarAccess.getCallRule());
6248 }
6249 setWithLastConsumed(
6250 current,
6251 "transitiveClosure",
6252 true,
6253 "org.eclipse.viatra.solver.language.SolverLanguage.TRANSITIVE_CLOSURE");
6254
6255
6256 }
6257
6258
6259 }
6260
6261
6262 }
6263 break;
6264 case 2 :
6265 // InternalSolverLanguageParser.g:2528:4: ( (lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) )
6266 {
6267 // InternalSolverLanguageParser.g:2528:4: ( (lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) )
6268 // InternalSolverLanguageParser.g:2529:5: (lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE )
6269 {
6270 // InternalSolverLanguageParser.g:2529:5: (lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE )
6271 // InternalSolverLanguageParser.g:2530:6: lv_reflexiveTransitiveClosure_2_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE
6272 {
6273 lv_reflexiveTransitiveClosure_2_0=(Token)match(input,RULE_REFLEXIVE_TRANSITIVE_CLOSURE,FOLLOW_11);
6274
6275 newLeafNode(lv_reflexiveTransitiveClosure_2_0, grammarAccess.getCallAccess().getReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_1_1_0());
6276
6277
6278 if (current==null) {
6279 current = createModelElement(grammarAccess.getCallRule());
6280 }
6281 setWithLastConsumed(
6282 current,
6283 "reflexiveTransitiveClosure",
6284 true,
6285 "org.eclipse.viatra.solver.language.SolverLanguage.REFLEXIVE_TRANSITIVE_CLOSURE");
6286
6287
6288 }
6289
6290
6291 }
6292
6293
6294 }
6295 break;
6296
6297 }
6298
6299 // InternalSolverLanguageParser.g:2547:3: ( (lv_argumentList_3_0= ruleArgumentList ) )
6300 // InternalSolverLanguageParser.g:2548:4: (lv_argumentList_3_0= ruleArgumentList )
6301 { 6790 {
6302 // InternalSolverLanguageParser.g:2548:4: (lv_argumentList_3_0= ruleArgumentList ) 6791 // InternalSolverLanguageParser.g:2725:4: (lv_argumentList_1_0= ruleArgumentList )
6303 // InternalSolverLanguageParser.g:2549:5: lv_argumentList_3_0= ruleArgumentList 6792 // InternalSolverLanguageParser.g:2726:5: lv_argumentList_1_0= ruleArgumentList
6304 { 6793 {
6305 6794
6306 newCompositeNode(grammarAccess.getCallAccess().getArgumentListArgumentListParserRuleCall_2_0()); 6795 newCompositeNode(grammarAccess.getCallAccess().getArgumentListArgumentListParserRuleCall_1_0());
6307 6796
6308 pushFollow(FOLLOW_2); 6797 pushFollow(FOLLOW_2);
6309 lv_argumentList_3_0=ruleArgumentList(); 6798 lv_argumentList_1_0=ruleArgumentList();
6310 6799
6311 state._fsp--; 6800 state._fsp--;
6312 6801
@@ -6317,7 +6806,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6317 set( 6806 set(
6318 current, 6807 current,
6319 "argumentList", 6808 "argumentList",
6320 lv_argumentList_3_0, 6809 lv_argumentList_1_0,
6321 "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); 6810 "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList");
6322 afterParserOrEnumRuleCall(); 6811 afterParserOrEnumRuleCall();
6323 6812
@@ -6350,7 +6839,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6350 6839
6351 6840
6352 // $ANTLR start "entryRuleArgumentList" 6841 // $ANTLR start "entryRuleArgumentList"
6353 // InternalSolverLanguageParser.g:2570:1: entryRuleArgumentList returns [EObject current=null] : iv_ruleArgumentList= ruleArgumentList EOF ; 6842 // InternalSolverLanguageParser.g:2747:1: entryRuleArgumentList returns [EObject current=null] : iv_ruleArgumentList= ruleArgumentList EOF ;
6354 public final EObject entryRuleArgumentList() throws RecognitionException { 6843 public final EObject entryRuleArgumentList() throws RecognitionException {
6355 EObject current = null; 6844 EObject current = null;
6356 6845
@@ -6358,8 +6847,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6358 6847
6359 6848
6360 try { 6849 try {
6361 // InternalSolverLanguageParser.g:2570:53: (iv_ruleArgumentList= ruleArgumentList EOF ) 6850 // InternalSolverLanguageParser.g:2747:53: (iv_ruleArgumentList= ruleArgumentList EOF )
6362 // InternalSolverLanguageParser.g:2571:2: iv_ruleArgumentList= ruleArgumentList EOF 6851 // InternalSolverLanguageParser.g:2748:2: iv_ruleArgumentList= ruleArgumentList EOF
6363 { 6852 {
6364 newCompositeNode(grammarAccess.getArgumentListRule()); 6853 newCompositeNode(grammarAccess.getArgumentListRule());
6365 pushFollow(FOLLOW_1); 6854 pushFollow(FOLLOW_1);
@@ -6386,7 +6875,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6386 6875
6387 6876
6388 // $ANTLR start "ruleArgumentList" 6877 // $ANTLR start "ruleArgumentList"
6389 // InternalSolverLanguageParser.g:2577:1: ruleArgumentList returns [EObject current=null] : ( () otherlv_1= LeftParenthesis ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= RightParenthesis ) ; 6878 // InternalSolverLanguageParser.g:2754:1: ruleArgumentList returns [EObject current=null] : ( () otherlv_1= LeftParenthesis ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= RightParenthesis ) ;
6390 public final EObject ruleArgumentList() throws RecognitionException { 6879 public final EObject ruleArgumentList() throws RecognitionException {
6391 EObject current = null; 6880 EObject current = null;
6392 6881
@@ -6402,14 +6891,14 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6402 enterRule(); 6891 enterRule();
6403 6892
6404 try { 6893 try {
6405 // InternalSolverLanguageParser.g:2583:2: ( ( () otherlv_1= LeftParenthesis ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= RightParenthesis ) ) 6894 // InternalSolverLanguageParser.g:2760:2: ( ( () otherlv_1= LeftParenthesis ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= RightParenthesis ) )
6406 // InternalSolverLanguageParser.g:2584:2: ( () otherlv_1= LeftParenthesis ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= RightParenthesis ) 6895 // InternalSolverLanguageParser.g:2761:2: ( () otherlv_1= LeftParenthesis ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= RightParenthesis )
6407 { 6896 {
6408 // InternalSolverLanguageParser.g:2584:2: ( () otherlv_1= LeftParenthesis ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= RightParenthesis ) 6897 // InternalSolverLanguageParser.g:2761:2: ( () otherlv_1= LeftParenthesis ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= RightParenthesis )
6409 // InternalSolverLanguageParser.g:2585:3: () otherlv_1= LeftParenthesis ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= RightParenthesis 6898 // InternalSolverLanguageParser.g:2762:3: () otherlv_1= LeftParenthesis ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= RightParenthesis
6410 { 6899 {
6411 // InternalSolverLanguageParser.g:2585:3: () 6900 // InternalSolverLanguageParser.g:2762:3: ()
6412 // InternalSolverLanguageParser.g:2586:4: 6901 // InternalSolverLanguageParser.g:2763:4:
6413 { 6902 {
6414 6903
6415 current = forceCreateModelElement( 6904 current = forceCreateModelElement(
@@ -6419,31 +6908,31 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6419 6908
6420 } 6909 }
6421 6910
6422 otherlv_1=(Token)match(input,LeftParenthesis,FOLLOW_40); 6911 otherlv_1=(Token)match(input,LeftParenthesis,FOLLOW_42);
6423 6912
6424 newLeafNode(otherlv_1, grammarAccess.getArgumentListAccess().getLeftParenthesisKeyword_1()); 6913 newLeafNode(otherlv_1, grammarAccess.getArgumentListAccess().getLeftParenthesisKeyword_1());
6425 6914
6426 // InternalSolverLanguageParser.g:2596:3: ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )? 6915 // InternalSolverLanguageParser.g:2773:3: ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* )?
6427 int alt32=2; 6916 int alt33=2;
6428 int LA32_0 = input.LA(1); 6917 int LA33_0 = input.LA(1);
6429 6918
6430 if ( (LA32_0==Current||(LA32_0>=Unknown && LA32_0<=Exists)||LA32_0==Forall||(LA32_0>=Count && LA32_0<=False)||LA32_0==Must||LA32_0==True||LA32_0==Inf||LA32_0==May||(LA32_0>=ExclamationMark && LA32_0<=LeftParenthesis)||(LA32_0>=Asterisk && LA32_0<=PlusSign)||LA32_0==HyphenMinus||LA32_0==LeftSquareBracket||(LA32_0>=RULE_STRING && LA32_0<=RULE_QUOTED_ID)||(LA32_0>=RULE_ID && LA32_0<=RULE_INT)) ) { 6919 if ( (LA33_0==Unknown||LA33_0==Object||(LA33_0>=Count && LA33_0<=False)||LA33_0==True||LA33_0==Inf||(LA33_0>=ExclamationMark && LA33_0<=LeftParenthesis)||(LA33_0>=Asterisk && LA33_0<=PlusSign)||LA33_0==HyphenMinus||(LA33_0>=QuestionMark && LA33_0<=LeftSquareBracket)||(LA33_0>=Tilde && LA33_0<=RULE_QUOTED_ID)||(LA33_0>=RULE_ID && LA33_0<=RULE_INT)) ) {
6431 alt32=1; 6920 alt33=1;
6432 } 6921 }
6433 switch (alt32) { 6922 switch (alt33) {
6434 case 1 : 6923 case 1 :
6435 // InternalSolverLanguageParser.g:2597:4: ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* 6924 // InternalSolverLanguageParser.g:2774:4: ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )*
6436 { 6925 {
6437 // InternalSolverLanguageParser.g:2597:4: ( (lv_arguments_2_0= ruleArgument ) ) 6926 // InternalSolverLanguageParser.g:2774:4: ( (lv_arguments_2_0= ruleArgument ) )
6438 // InternalSolverLanguageParser.g:2598:5: (lv_arguments_2_0= ruleArgument ) 6927 // InternalSolverLanguageParser.g:2775:5: (lv_arguments_2_0= ruleArgument )
6439 { 6928 {
6440 // InternalSolverLanguageParser.g:2598:5: (lv_arguments_2_0= ruleArgument ) 6929 // InternalSolverLanguageParser.g:2775:5: (lv_arguments_2_0= ruleArgument )
6441 // InternalSolverLanguageParser.g:2599:6: lv_arguments_2_0= ruleArgument 6930 // InternalSolverLanguageParser.g:2776:6: lv_arguments_2_0= ruleArgument
6442 { 6931 {
6443 6932
6444 newCompositeNode(grammarAccess.getArgumentListAccess().getArgumentsArgumentParserRuleCall_2_0_0()); 6933 newCompositeNode(grammarAccess.getArgumentListAccess().getArgumentsArgumentParserRuleCall_2_0_0());
6445 6934
6446 pushFollow(FOLLOW_41); 6935 pushFollow(FOLLOW_43);
6447 lv_arguments_2_0=ruleArgument(); 6936 lv_arguments_2_0=ruleArgument();
6448 6937
6449 state._fsp--; 6938 state._fsp--;
@@ -6465,35 +6954,35 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6465 6954
6466 } 6955 }
6467 6956
6468 // InternalSolverLanguageParser.g:2616:4: (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )* 6957 // InternalSolverLanguageParser.g:2793:4: (otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) )*
6469 loop31: 6958 loop32:
6470 do { 6959 do {
6471 int alt31=2; 6960 int alt32=2;
6472 int LA31_0 = input.LA(1); 6961 int LA32_0 = input.LA(1);
6473 6962
6474 if ( (LA31_0==Comma) ) { 6963 if ( (LA32_0==Comma) ) {
6475 alt31=1; 6964 alt32=1;
6476 } 6965 }
6477 6966
6478 6967
6479 switch (alt31) { 6968 switch (alt32) {
6480 case 1 : 6969 case 1 :
6481 // InternalSolverLanguageParser.g:2617:5: otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) ) 6970 // InternalSolverLanguageParser.g:2794:5: otherlv_3= Comma ( (lv_arguments_4_0= ruleArgument ) )
6482 { 6971 {
6483 otherlv_3=(Token)match(input,Comma,FOLLOW_42); 6972 otherlv_3=(Token)match(input,Comma,FOLLOW_44);
6484 6973
6485 newLeafNode(otherlv_3, grammarAccess.getArgumentListAccess().getCommaKeyword_2_1_0()); 6974 newLeafNode(otherlv_3, grammarAccess.getArgumentListAccess().getCommaKeyword_2_1_0());
6486 6975
6487 // InternalSolverLanguageParser.g:2621:5: ( (lv_arguments_4_0= ruleArgument ) ) 6976 // InternalSolverLanguageParser.g:2798:5: ( (lv_arguments_4_0= ruleArgument ) )
6488 // InternalSolverLanguageParser.g:2622:6: (lv_arguments_4_0= ruleArgument ) 6977 // InternalSolverLanguageParser.g:2799:6: (lv_arguments_4_0= ruleArgument )
6489 { 6978 {
6490 // InternalSolverLanguageParser.g:2622:6: (lv_arguments_4_0= ruleArgument ) 6979 // InternalSolverLanguageParser.g:2799:6: (lv_arguments_4_0= ruleArgument )
6491 // InternalSolverLanguageParser.g:2623:7: lv_arguments_4_0= ruleArgument 6980 // InternalSolverLanguageParser.g:2800:7: lv_arguments_4_0= ruleArgument
6492 { 6981 {
6493 6982
6494 newCompositeNode(grammarAccess.getArgumentListAccess().getArgumentsArgumentParserRuleCall_2_1_1_0()); 6983 newCompositeNode(grammarAccess.getArgumentListAccess().getArgumentsArgumentParserRuleCall_2_1_1_0());
6495 6984
6496 pushFollow(FOLLOW_41); 6985 pushFollow(FOLLOW_43);
6497 lv_arguments_4_0=ruleArgument(); 6986 lv_arguments_4_0=ruleArgument();
6498 6987
6499 state._fsp--; 6988 state._fsp--;
@@ -6520,7 +7009,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6520 break; 7009 break;
6521 7010
6522 default : 7011 default :
6523 break loop31; 7012 break loop32;
6524 } 7013 }
6525 } while (true); 7014 } while (true);
6526 7015
@@ -6557,7 +7046,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6557 7046
6558 7047
6559 // $ANTLR start "entryRuleArgument" 7048 // $ANTLR start "entryRuleArgument"
6560 // InternalSolverLanguageParser.g:2650:1: entryRuleArgument returns [EObject current=null] : iv_ruleArgument= ruleArgument EOF ; 7049 // InternalSolverLanguageParser.g:2827:1: entryRuleArgument returns [EObject current=null] : iv_ruleArgument= ruleArgument EOF ;
6561 public final EObject entryRuleArgument() throws RecognitionException { 7050 public final EObject entryRuleArgument() throws RecognitionException {
6562 EObject current = null; 7051 EObject current = null;
6563 7052
@@ -6565,8 +7054,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6565 7054
6566 7055
6567 try { 7056 try {
6568 // InternalSolverLanguageParser.g:2650:49: (iv_ruleArgument= ruleArgument EOF ) 7057 // InternalSolverLanguageParser.g:2827:49: (iv_ruleArgument= ruleArgument EOF )
6569 // InternalSolverLanguageParser.g:2651:2: iv_ruleArgument= ruleArgument EOF 7058 // InternalSolverLanguageParser.g:2828:2: iv_ruleArgument= ruleArgument EOF
6570 { 7059 {
6571 newCompositeNode(grammarAccess.getArgumentRule()); 7060 newCompositeNode(grammarAccess.getArgumentRule());
6572 pushFollow(FOLLOW_1); 7061 pushFollow(FOLLOW_1);
@@ -6593,7 +7082,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6593 7082
6594 7083
6595 // $ANTLR start "ruleArgument" 7084 // $ANTLR start "ruleArgument"
6596 // InternalSolverLanguageParser.g:2657:1: ruleArgument returns [EObject current=null] : (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedArgument_2= ruleTypedArgument | this_TypedStarArgument_3= ruleTypedStarArgument ) ; 7085 // InternalSolverLanguageParser.g:2834:1: ruleArgument returns [EObject current=null] : (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedVariableArgument_2= ruleTypedVariableArgument | this_TypedStarArgument_3= ruleTypedStarArgument ) ;
6597 public final EObject ruleArgument() throws RecognitionException { 7086 public final EObject ruleArgument() throws RecognitionException {
6598 EObject current = null; 7087 EObject current = null;
6599 7088
@@ -6601,7 +7090,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6601 7090
6602 EObject this_StarArgument_1 = null; 7091 EObject this_StarArgument_1 = null;
6603 7092
6604 EObject this_TypedArgument_2 = null; 7093 EObject this_TypedVariableArgument_2 = null;
6605 7094
6606 EObject this_TypedStarArgument_3 = null; 7095 EObject this_TypedStarArgument_3 = null;
6607 7096
@@ -6610,15 +7099,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6610 enterRule(); 7099 enterRule();
6611 7100
6612 try { 7101 try {
6613 // InternalSolverLanguageParser.g:2663:2: ( (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedArgument_2= ruleTypedArgument | this_TypedStarArgument_3= ruleTypedStarArgument ) ) 7102 // InternalSolverLanguageParser.g:2840:2: ( (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedVariableArgument_2= ruleTypedVariableArgument | this_TypedStarArgument_3= ruleTypedStarArgument ) )
6614 // InternalSolverLanguageParser.g:2664:2: (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedArgument_2= ruleTypedArgument | this_TypedStarArgument_3= ruleTypedStarArgument ) 7103 // InternalSolverLanguageParser.g:2841:2: (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedVariableArgument_2= ruleTypedVariableArgument | this_TypedStarArgument_3= ruleTypedStarArgument )
6615 { 7104 {
6616 // InternalSolverLanguageParser.g:2664:2: (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedArgument_2= ruleTypedArgument | this_TypedStarArgument_3= ruleTypedStarArgument ) 7105 // InternalSolverLanguageParser.g:2841:2: (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedVariableArgument_2= ruleTypedVariableArgument | this_TypedStarArgument_3= ruleTypedStarArgument )
6617 int alt33=4; 7106 int alt34=4;
6618 alt33 = dfa33.predict(input); 7107 alt34 = dfa34.predict(input);
6619 switch (alt33) { 7108 switch (alt34) {
6620 case 1 : 7109 case 1 :
6621 // InternalSolverLanguageParser.g:2665:3: this_ExpressionArgument_0= ruleExpressionArgument 7110 // InternalSolverLanguageParser.g:2842:3: this_ExpressionArgument_0= ruleExpressionArgument
6622 { 7111 {
6623 7112
6624 newCompositeNode(grammarAccess.getArgumentAccess().getExpressionArgumentParserRuleCall_0()); 7113 newCompositeNode(grammarAccess.getArgumentAccess().getExpressionArgumentParserRuleCall_0());
@@ -6636,7 +7125,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6636 } 7125 }
6637 break; 7126 break;
6638 case 2 : 7127 case 2 :
6639 // InternalSolverLanguageParser.g:2674:3: this_StarArgument_1= ruleStarArgument 7128 // InternalSolverLanguageParser.g:2851:3: this_StarArgument_1= ruleStarArgument
6640 { 7129 {
6641 7130
6642 newCompositeNode(grammarAccess.getArgumentAccess().getStarArgumentParserRuleCall_1()); 7131 newCompositeNode(grammarAccess.getArgumentAccess().getStarArgumentParserRuleCall_1());
@@ -6654,25 +7143,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6654 } 7143 }
6655 break; 7144 break;
6656 case 3 : 7145 case 3 :
6657 // InternalSolverLanguageParser.g:2683:3: this_TypedArgument_2= ruleTypedArgument 7146 // InternalSolverLanguageParser.g:2860:3: this_TypedVariableArgument_2= ruleTypedVariableArgument
6658 { 7147 {
6659 7148
6660 newCompositeNode(grammarAccess.getArgumentAccess().getTypedArgumentParserRuleCall_2()); 7149 newCompositeNode(grammarAccess.getArgumentAccess().getTypedVariableArgumentParserRuleCall_2());
6661 7150
6662 pushFollow(FOLLOW_2); 7151 pushFollow(FOLLOW_2);
6663 this_TypedArgument_2=ruleTypedArgument(); 7152 this_TypedVariableArgument_2=ruleTypedVariableArgument();
6664 7153
6665 state._fsp--; 7154 state._fsp--;
6666 7155
6667 7156
6668 current = this_TypedArgument_2; 7157 current = this_TypedVariableArgument_2;
6669 afterParserOrEnumRuleCall(); 7158 afterParserOrEnumRuleCall();
6670 7159
6671 7160
6672 } 7161 }
6673 break; 7162 break;
6674 case 4 : 7163 case 4 :
6675 // InternalSolverLanguageParser.g:2692:3: this_TypedStarArgument_3= ruleTypedStarArgument 7164 // InternalSolverLanguageParser.g:2869:3: this_TypedStarArgument_3= ruleTypedStarArgument
6676 { 7165 {
6677 7166
6678 newCompositeNode(grammarAccess.getArgumentAccess().getTypedStarArgumentParserRuleCall_3()); 7167 newCompositeNode(grammarAccess.getArgumentAccess().getTypedStarArgumentParserRuleCall_3());
@@ -6712,7 +7201,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6712 7201
6713 7202
6714 // $ANTLR start "entryRuleExpressionArgument" 7203 // $ANTLR start "entryRuleExpressionArgument"
6715 // InternalSolverLanguageParser.g:2704:1: entryRuleExpressionArgument returns [EObject current=null] : iv_ruleExpressionArgument= ruleExpressionArgument EOF ; 7204 // InternalSolverLanguageParser.g:2881:1: entryRuleExpressionArgument returns [EObject current=null] : iv_ruleExpressionArgument= ruleExpressionArgument EOF ;
6716 public final EObject entryRuleExpressionArgument() throws RecognitionException { 7205 public final EObject entryRuleExpressionArgument() throws RecognitionException {
6717 EObject current = null; 7206 EObject current = null;
6718 7207
@@ -6720,8 +7209,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6720 7209
6721 7210
6722 try { 7211 try {
6723 // InternalSolverLanguageParser.g:2704:59: (iv_ruleExpressionArgument= ruleExpressionArgument EOF ) 7212 // InternalSolverLanguageParser.g:2881:59: (iv_ruleExpressionArgument= ruleExpressionArgument EOF )
6724 // InternalSolverLanguageParser.g:2705:2: iv_ruleExpressionArgument= ruleExpressionArgument EOF 7213 // InternalSolverLanguageParser.g:2882:2: iv_ruleExpressionArgument= ruleExpressionArgument EOF
6725 { 7214 {
6726 newCompositeNode(grammarAccess.getExpressionArgumentRule()); 7215 newCompositeNode(grammarAccess.getExpressionArgumentRule());
6727 pushFollow(FOLLOW_1); 7216 pushFollow(FOLLOW_1);
@@ -6748,31 +7237,31 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6748 7237
6749 7238
6750 // $ANTLR start "ruleExpressionArgument" 7239 // $ANTLR start "ruleExpressionArgument"
6751 // InternalSolverLanguageParser.g:2711:1: ruleExpressionArgument returns [EObject current=null] : ( (lv_body_0_0= ruleComparisonExpression ) ) ; 7240 // InternalSolverLanguageParser.g:2888:1: ruleExpressionArgument returns [EObject current=null] : ( (lv_expression_0_0= ruleComparisonExpression ) ) ;
6752 public final EObject ruleExpressionArgument() throws RecognitionException { 7241 public final EObject ruleExpressionArgument() throws RecognitionException {
6753 EObject current = null; 7242 EObject current = null;
6754 7243
6755 EObject lv_body_0_0 = null; 7244 EObject lv_expression_0_0 = null;
6756 7245
6757 7246
6758 7247
6759 enterRule(); 7248 enterRule();
6760 7249
6761 try { 7250 try {
6762 // InternalSolverLanguageParser.g:2717:2: ( ( (lv_body_0_0= ruleComparisonExpression ) ) ) 7251 // InternalSolverLanguageParser.g:2894:2: ( ( (lv_expression_0_0= ruleComparisonExpression ) ) )
6763 // InternalSolverLanguageParser.g:2718:2: ( (lv_body_0_0= ruleComparisonExpression ) ) 7252 // InternalSolverLanguageParser.g:2895:2: ( (lv_expression_0_0= ruleComparisonExpression ) )
6764 { 7253 {
6765 // InternalSolverLanguageParser.g:2718:2: ( (lv_body_0_0= ruleComparisonExpression ) ) 7254 // InternalSolverLanguageParser.g:2895:2: ( (lv_expression_0_0= ruleComparisonExpression ) )
6766 // InternalSolverLanguageParser.g:2719:3: (lv_body_0_0= ruleComparisonExpression ) 7255 // InternalSolverLanguageParser.g:2896:3: (lv_expression_0_0= ruleComparisonExpression )
6767 { 7256 {
6768 // InternalSolverLanguageParser.g:2719:3: (lv_body_0_0= ruleComparisonExpression ) 7257 // InternalSolverLanguageParser.g:2896:3: (lv_expression_0_0= ruleComparisonExpression )
6769 // InternalSolverLanguageParser.g:2720:4: lv_body_0_0= ruleComparisonExpression 7258 // InternalSolverLanguageParser.g:2897:4: lv_expression_0_0= ruleComparisonExpression
6770 { 7259 {
6771 7260
6772 newCompositeNode(grammarAccess.getExpressionArgumentAccess().getBodyComparisonExpressionParserRuleCall_0()); 7261 newCompositeNode(grammarAccess.getExpressionArgumentAccess().getExpressionComparisonExpressionParserRuleCall_0());
6773 7262
6774 pushFollow(FOLLOW_2); 7263 pushFollow(FOLLOW_2);
6775 lv_body_0_0=ruleComparisonExpression(); 7264 lv_expression_0_0=ruleComparisonExpression();
6776 7265
6777 state._fsp--; 7266 state._fsp--;
6778 7267
@@ -6782,8 +7271,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6782 } 7271 }
6783 set( 7272 set(
6784 current, 7273 current,
6785 "body", 7274 "expression",
6786 lv_body_0_0, 7275 lv_expression_0_0,
6787 "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonExpression"); 7276 "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonExpression");
6788 afterParserOrEnumRuleCall(); 7277 afterParserOrEnumRuleCall();
6789 7278
@@ -6813,7 +7302,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6813 7302
6814 7303
6815 // $ANTLR start "entryRuleStarArgument" 7304 // $ANTLR start "entryRuleStarArgument"
6816 // InternalSolverLanguageParser.g:2740:1: entryRuleStarArgument returns [EObject current=null] : iv_ruleStarArgument= ruleStarArgument EOF ; 7305 // InternalSolverLanguageParser.g:2917:1: entryRuleStarArgument returns [EObject current=null] : iv_ruleStarArgument= ruleStarArgument EOF ;
6817 public final EObject entryRuleStarArgument() throws RecognitionException { 7306 public final EObject entryRuleStarArgument() throws RecognitionException {
6818 EObject current = null; 7307 EObject current = null;
6819 7308
@@ -6821,8 +7310,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6821 7310
6822 7311
6823 try { 7312 try {
6824 // InternalSolverLanguageParser.g:2740:53: (iv_ruleStarArgument= ruleStarArgument EOF ) 7313 // InternalSolverLanguageParser.g:2917:53: (iv_ruleStarArgument= ruleStarArgument EOF )
6825 // InternalSolverLanguageParser.g:2741:2: iv_ruleStarArgument= ruleStarArgument EOF 7314 // InternalSolverLanguageParser.g:2918:2: iv_ruleStarArgument= ruleStarArgument EOF
6826 { 7315 {
6827 newCompositeNode(grammarAccess.getStarArgumentRule()); 7316 newCompositeNode(grammarAccess.getStarArgumentRule());
6828 pushFollow(FOLLOW_1); 7317 pushFollow(FOLLOW_1);
@@ -6849,7 +7338,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6849 7338
6850 7339
6851 // $ANTLR start "ruleStarArgument" 7340 // $ANTLR start "ruleStarArgument"
6852 // InternalSolverLanguageParser.g:2747:1: ruleStarArgument returns [EObject current=null] : ( () otherlv_1= Asterisk ) ; 7341 // InternalSolverLanguageParser.g:2924:1: ruleStarArgument returns [EObject current=null] : ( () otherlv_1= Asterisk ) ;
6853 public final EObject ruleStarArgument() throws RecognitionException { 7342 public final EObject ruleStarArgument() throws RecognitionException {
6854 EObject current = null; 7343 EObject current = null;
6855 7344
@@ -6859,14 +7348,14 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6859 enterRule(); 7348 enterRule();
6860 7349
6861 try { 7350 try {
6862 // InternalSolverLanguageParser.g:2753:2: ( ( () otherlv_1= Asterisk ) ) 7351 // InternalSolverLanguageParser.g:2930:2: ( ( () otherlv_1= Asterisk ) )
6863 // InternalSolverLanguageParser.g:2754:2: ( () otherlv_1= Asterisk ) 7352 // InternalSolverLanguageParser.g:2931:2: ( () otherlv_1= Asterisk )
6864 { 7353 {
6865 // InternalSolverLanguageParser.g:2754:2: ( () otherlv_1= Asterisk ) 7354 // InternalSolverLanguageParser.g:2931:2: ( () otherlv_1= Asterisk )
6866 // InternalSolverLanguageParser.g:2755:3: () otherlv_1= Asterisk 7355 // InternalSolverLanguageParser.g:2932:3: () otherlv_1= Asterisk
6867 { 7356 {
6868 // InternalSolverLanguageParser.g:2755:3: () 7357 // InternalSolverLanguageParser.g:2932:3: ()
6869 // InternalSolverLanguageParser.g:2756:4: 7358 // InternalSolverLanguageParser.g:2933:4:
6870 { 7359 {
6871 7360
6872 current = forceCreateModelElement( 7361 current = forceCreateModelElement(
@@ -6902,25 +7391,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6902 // $ANTLR end "ruleStarArgument" 7391 // $ANTLR end "ruleStarArgument"
6903 7392
6904 7393
6905 // $ANTLR start "entryRuleTypedArgument" 7394 // $ANTLR start "entryRuleTypedVariableArgument"
6906 // InternalSolverLanguageParser.g:2770:1: entryRuleTypedArgument returns [EObject current=null] : iv_ruleTypedArgument= ruleTypedArgument EOF ; 7395 // InternalSolverLanguageParser.g:2947:1: entryRuleTypedVariableArgument returns [EObject current=null] : iv_ruleTypedVariableArgument= ruleTypedVariableArgument EOF ;
6907 public final EObject entryRuleTypedArgument() throws RecognitionException { 7396 public final EObject entryRuleTypedVariableArgument() throws RecognitionException {
6908 EObject current = null; 7397 EObject current = null;
6909 7398
6910 EObject iv_ruleTypedArgument = null; 7399 EObject iv_ruleTypedVariableArgument = null;
6911 7400
6912 7401
6913 try { 7402 try {
6914 // InternalSolverLanguageParser.g:2770:54: (iv_ruleTypedArgument= ruleTypedArgument EOF ) 7403 // InternalSolverLanguageParser.g:2947:62: (iv_ruleTypedVariableArgument= ruleTypedVariableArgument EOF )
6915 // InternalSolverLanguageParser.g:2771:2: iv_ruleTypedArgument= ruleTypedArgument EOF 7404 // InternalSolverLanguageParser.g:2948:2: iv_ruleTypedVariableArgument= ruleTypedVariableArgument EOF
6916 { 7405 {
6917 newCompositeNode(grammarAccess.getTypedArgumentRule()); 7406 newCompositeNode(grammarAccess.getTypedVariableArgumentRule());
6918 pushFollow(FOLLOW_1); 7407 pushFollow(FOLLOW_1);
6919 iv_ruleTypedArgument=ruleTypedArgument(); 7408 iv_ruleTypedVariableArgument=ruleTypedVariableArgument();
6920 7409
6921 state._fsp--; 7410 state._fsp--;
6922 7411
6923 current =iv_ruleTypedArgument; 7412 current =iv_ruleTypedVariableArgument;
6924 match(input,EOF,FOLLOW_2); 7413 match(input,EOF,FOLLOW_2);
6925 7414
6926 } 7415 }
@@ -6935,44 +7424,51 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6935 } 7424 }
6936 return current; 7425 return current;
6937 } 7426 }
6938 // $ANTLR end "entryRuleTypedArgument" 7427 // $ANTLR end "entryRuleTypedVariableArgument"
6939 7428
6940 7429
6941 // $ANTLR start "ruleTypedArgument" 7430 // $ANTLR start "ruleTypedVariableArgument"
6942 // InternalSolverLanguageParser.g:2777:1: ruleTypedArgument returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( ( ruleQualifiedName ) ) ) ; 7431 // InternalSolverLanguageParser.g:2954:1: ruleTypedVariableArgument returns [EObject current=null] : ( ( (lv_typeReference_0_0= ruleTypeReference ) ) ( (lv_name_1_0= RULE_ID ) ) ) ;
6943 public final EObject ruleTypedArgument() throws RecognitionException { 7432 public final EObject ruleTypedVariableArgument() throws RecognitionException {
6944 EObject current = null; 7433 EObject current = null;
6945 7434
7435 Token lv_name_1_0=null;
7436 EObject lv_typeReference_0_0 = null;
7437
7438
6946 7439
6947 enterRule(); 7440 enterRule();
6948 7441
6949 try { 7442 try {
6950 // InternalSolverLanguageParser.g:2783:2: ( ( ( ( ruleQualifiedName ) ) ( ( ruleQualifiedName ) ) ) ) 7443 // InternalSolverLanguageParser.g:2960:2: ( ( ( (lv_typeReference_0_0= ruleTypeReference ) ) ( (lv_name_1_0= RULE_ID ) ) ) )
6951 // InternalSolverLanguageParser.g:2784:2: ( ( ( ruleQualifiedName ) ) ( ( ruleQualifiedName ) ) ) 7444 // InternalSolverLanguageParser.g:2961:2: ( ( (lv_typeReference_0_0= ruleTypeReference ) ) ( (lv_name_1_0= RULE_ID ) ) )
6952 { 7445 {
6953 // InternalSolverLanguageParser.g:2784:2: ( ( ( ruleQualifiedName ) ) ( ( ruleQualifiedName ) ) ) 7446 // InternalSolverLanguageParser.g:2961:2: ( ( (lv_typeReference_0_0= ruleTypeReference ) ) ( (lv_name_1_0= RULE_ID ) ) )
6954 // InternalSolverLanguageParser.g:2785:3: ( ( ruleQualifiedName ) ) ( ( ruleQualifiedName ) ) 7447 // InternalSolverLanguageParser.g:2962:3: ( (lv_typeReference_0_0= ruleTypeReference ) ) ( (lv_name_1_0= RULE_ID ) )
6955 { 7448 {
6956 // InternalSolverLanguageParser.g:2785:3: ( ( ruleQualifiedName ) ) 7449 // InternalSolverLanguageParser.g:2962:3: ( (lv_typeReference_0_0= ruleTypeReference ) )
6957 // InternalSolverLanguageParser.g:2786:4: ( ruleQualifiedName ) 7450 // InternalSolverLanguageParser.g:2963:4: (lv_typeReference_0_0= ruleTypeReference )
6958 { 7451 {
6959 // InternalSolverLanguageParser.g:2786:4: ( ruleQualifiedName ) 7452 // InternalSolverLanguageParser.g:2963:4: (lv_typeReference_0_0= ruleTypeReference )
6960 // InternalSolverLanguageParser.g:2787:5: ruleQualifiedName 7453 // InternalSolverLanguageParser.g:2964:5: lv_typeReference_0_0= ruleTypeReference
6961 { 7454 {
6962 7455
6963 if (current==null) { 7456 newCompositeNode(grammarAccess.getTypedVariableArgumentAccess().getTypeReferenceTypeReferenceParserRuleCall_0_0());
6964 current = createModelElement(grammarAccess.getTypedArgumentRule());
6965 }
6966
6967
6968 newCompositeNode(grammarAccess.getTypedArgumentAccess().getTypeNamedElementCrossReference_0_0());
6969 7457
6970 pushFollow(FOLLOW_8); 7458 pushFollow(FOLLOW_28);
6971 ruleQualifiedName(); 7459 lv_typeReference_0_0=ruleTypeReference();
6972 7460
6973 state._fsp--; 7461 state._fsp--;
6974 7462
6975 7463
7464 if (current==null) {
7465 current = createModelElementForParent(grammarAccess.getTypedVariableArgumentRule());
7466 }
7467 set(
7468 current,
7469 "typeReference",
7470 lv_typeReference_0_0,
7471 "org.eclipse.viatra.solver.language.SolverLanguage.TypeReference");
6976 afterParserOrEnumRuleCall(); 7472 afterParserOrEnumRuleCall();
6977 7473
6978 7474
@@ -6981,27 +7477,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6981 7477
6982 } 7478 }
6983 7479
6984 // InternalSolverLanguageParser.g:2801:3: ( ( ruleQualifiedName ) ) 7480 // InternalSolverLanguageParser.g:2981:3: ( (lv_name_1_0= RULE_ID ) )
6985 // InternalSolverLanguageParser.g:2802:4: ( ruleQualifiedName ) 7481 // InternalSolverLanguageParser.g:2982:4: (lv_name_1_0= RULE_ID )
6986 { 7482 {
6987 // InternalSolverLanguageParser.g:2802:4: ( ruleQualifiedName ) 7483 // InternalSolverLanguageParser.g:2982:4: (lv_name_1_0= RULE_ID )
6988 // InternalSolverLanguageParser.g:2803:5: ruleQualifiedName 7484 // InternalSolverLanguageParser.g:2983:5: lv_name_1_0= RULE_ID
6989 { 7485 {
7486 lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_2);
6990 7487
6991 if (current==null) { 7488 newLeafNode(lv_name_1_0, grammarAccess.getTypedVariableArgumentAccess().getNameIDTerminalRuleCall_1_0());
6992 current = createModelElement(grammarAccess.getTypedArgumentRule());
6993 }
6994
6995
6996 newCompositeNode(grammarAccess.getTypedArgumentAccess().getVariableNamedElementCrossReference_1_0());
6997 7489
6998 pushFollow(FOLLOW_2);
6999 ruleQualifiedName();
7000 7490
7001 state._fsp--; 7491 if (current==null) {
7002 7492 current = createModelElement(grammarAccess.getTypedVariableArgumentRule());
7003 7493 }
7004 afterParserOrEnumRuleCall(); 7494 setWithLastConsumed(
7495 current,
7496 "name",
7497 lv_name_1_0,
7498 "org.eclipse.xtext.common.Terminals.ID");
7005 7499
7006 7500
7007 } 7501 }
@@ -7028,11 +7522,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7028 } 7522 }
7029 return current; 7523 return current;
7030 } 7524 }
7031 // $ANTLR end "ruleTypedArgument" 7525 // $ANTLR end "ruleTypedVariableArgument"
7032 7526
7033 7527
7034 // $ANTLR start "entryRuleTypedStarArgument" 7528 // $ANTLR start "entryRuleTypedStarArgument"
7035 // InternalSolverLanguageParser.g:2821:1: entryRuleTypedStarArgument returns [EObject current=null] : iv_ruleTypedStarArgument= ruleTypedStarArgument EOF ; 7529 // InternalSolverLanguageParser.g:3003:1: entryRuleTypedStarArgument returns [EObject current=null] : iv_ruleTypedStarArgument= ruleTypedStarArgument EOF ;
7036 public final EObject entryRuleTypedStarArgument() throws RecognitionException { 7530 public final EObject entryRuleTypedStarArgument() throws RecognitionException {
7037 EObject current = null; 7531 EObject current = null;
7038 7532
@@ -7040,8 +7534,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7040 7534
7041 7535
7042 try { 7536 try {
7043 // InternalSolverLanguageParser.g:2821:58: (iv_ruleTypedStarArgument= ruleTypedStarArgument EOF ) 7537 // InternalSolverLanguageParser.g:3003:58: (iv_ruleTypedStarArgument= ruleTypedStarArgument EOF )
7044 // InternalSolverLanguageParser.g:2822:2: iv_ruleTypedStarArgument= ruleTypedStarArgument EOF 7538 // InternalSolverLanguageParser.g:3004:2: iv_ruleTypedStarArgument= ruleTypedStarArgument EOF
7045 { 7539 {
7046 newCompositeNode(grammarAccess.getTypedStarArgumentRule()); 7540 newCompositeNode(grammarAccess.getTypedStarArgumentRule());
7047 pushFollow(FOLLOW_1); 7541 pushFollow(FOLLOW_1);
@@ -7068,42 +7562,47 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7068 7562
7069 7563
7070 // $ANTLR start "ruleTypedStarArgument" 7564 // $ANTLR start "ruleTypedStarArgument"
7071 // InternalSolverLanguageParser.g:2828:1: ruleTypedStarArgument returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) otherlv_1= Asterisk ) ; 7565 // InternalSolverLanguageParser.g:3010:1: ruleTypedStarArgument returns [EObject current=null] : ( ( (lv_typeReference_0_0= ruleTypeReference ) ) otherlv_1= Asterisk ) ;
7072 public final EObject ruleTypedStarArgument() throws RecognitionException { 7566 public final EObject ruleTypedStarArgument() throws RecognitionException {
7073 EObject current = null; 7567 EObject current = null;
7074 7568
7075 Token otherlv_1=null; 7569 Token otherlv_1=null;
7570 EObject lv_typeReference_0_0 = null;
7571
7076 7572
7077 7573
7078 enterRule(); 7574 enterRule();
7079 7575
7080 try { 7576 try {
7081 // InternalSolverLanguageParser.g:2834:2: ( ( ( ( ruleQualifiedName ) ) otherlv_1= Asterisk ) ) 7577 // InternalSolverLanguageParser.g:3016:2: ( ( ( (lv_typeReference_0_0= ruleTypeReference ) ) otherlv_1= Asterisk ) )
7082 // InternalSolverLanguageParser.g:2835:2: ( ( ( ruleQualifiedName ) ) otherlv_1= Asterisk ) 7578 // InternalSolverLanguageParser.g:3017:2: ( ( (lv_typeReference_0_0= ruleTypeReference ) ) otherlv_1= Asterisk )
7083 { 7579 {
7084 // InternalSolverLanguageParser.g:2835:2: ( ( ( ruleQualifiedName ) ) otherlv_1= Asterisk ) 7580 // InternalSolverLanguageParser.g:3017:2: ( ( (lv_typeReference_0_0= ruleTypeReference ) ) otherlv_1= Asterisk )
7085 // InternalSolverLanguageParser.g:2836:3: ( ( ruleQualifiedName ) ) otherlv_1= Asterisk 7581 // InternalSolverLanguageParser.g:3018:3: ( (lv_typeReference_0_0= ruleTypeReference ) ) otherlv_1= Asterisk
7086 { 7582 {
7087 // InternalSolverLanguageParser.g:2836:3: ( ( ruleQualifiedName ) ) 7583 // InternalSolverLanguageParser.g:3018:3: ( (lv_typeReference_0_0= ruleTypeReference ) )
7088 // InternalSolverLanguageParser.g:2837:4: ( ruleQualifiedName ) 7584 // InternalSolverLanguageParser.g:3019:4: (lv_typeReference_0_0= ruleTypeReference )
7089 { 7585 {
7090 // InternalSolverLanguageParser.g:2837:4: ( ruleQualifiedName ) 7586 // InternalSolverLanguageParser.g:3019:4: (lv_typeReference_0_0= ruleTypeReference )
7091 // InternalSolverLanguageParser.g:2838:5: ruleQualifiedName 7587 // InternalSolverLanguageParser.g:3020:5: lv_typeReference_0_0= ruleTypeReference
7092 { 7588 {
7093 7589
7094 if (current==null) { 7590 newCompositeNode(grammarAccess.getTypedStarArgumentAccess().getTypeReferenceTypeReferenceParserRuleCall_0_0());
7095 current = createModelElement(grammarAccess.getTypedStarArgumentRule());
7096 }
7097
7098
7099 newCompositeNode(grammarAccess.getTypedStarArgumentAccess().getTypeNamedElementCrossReference_0_0());
7100 7591
7101 pushFollow(FOLLOW_43); 7592 pushFollow(FOLLOW_45);
7102 ruleQualifiedName(); 7593 lv_typeReference_0_0=ruleTypeReference();
7103 7594
7104 state._fsp--; 7595 state._fsp--;
7105 7596
7106 7597
7598 if (current==null) {
7599 current = createModelElementForParent(grammarAccess.getTypedStarArgumentRule());
7600 }
7601 set(
7602 current,
7603 "typeReference",
7604 lv_typeReference_0_0,
7605 "org.eclipse.viatra.solver.language.SolverLanguage.TypeReference");
7107 afterParserOrEnumRuleCall(); 7606 afterParserOrEnumRuleCall();
7108 7607
7109 7608
@@ -7139,7 +7638,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7139 7638
7140 7639
7141 // $ANTLR start "entryRuleReference" 7640 // $ANTLR start "entryRuleReference"
7142 // InternalSolverLanguageParser.g:2860:1: entryRuleReference returns [EObject current=null] : iv_ruleReference= ruleReference EOF ; 7641 // InternalSolverLanguageParser.g:3045:1: entryRuleReference returns [EObject current=null] : iv_ruleReference= ruleReference EOF ;
7143 public final EObject entryRuleReference() throws RecognitionException { 7642 public final EObject entryRuleReference() throws RecognitionException {
7144 EObject current = null; 7643 EObject current = null;
7145 7644
@@ -7147,8 +7646,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7147 7646
7148 7647
7149 try { 7648 try {
7150 // InternalSolverLanguageParser.g:2860:50: (iv_ruleReference= ruleReference EOF ) 7649 // InternalSolverLanguageParser.g:3045:50: (iv_ruleReference= ruleReference EOF )
7151 // InternalSolverLanguageParser.g:2861:2: iv_ruleReference= ruleReference EOF 7650 // InternalSolverLanguageParser.g:3046:2: iv_ruleReference= ruleReference EOF
7152 { 7651 {
7153 newCompositeNode(grammarAccess.getReferenceRule()); 7652 newCompositeNode(grammarAccess.getReferenceRule());
7154 pushFollow(FOLLOW_1); 7653 pushFollow(FOLLOW_1);
@@ -7175,39 +7674,329 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7175 7674
7176 7675
7177 // $ANTLR start "ruleReference" 7676 // $ANTLR start "ruleReference"
7178 // InternalSolverLanguageParser.g:2867:1: ruleReference returns [EObject current=null] : ( ( ruleQualifiedName ) ) ; 7677 // InternalSolverLanguageParser.g:3052:1: ruleReference returns [EObject current=null] : ( ( (lv_components_0_0= rulePathComponent ) ) (otherlv_1= FullStop ( (lv_components_2_0= rulePathComponent ) ) )* ) ;
7179 public final EObject ruleReference() throws RecognitionException { 7678 public final EObject ruleReference() throws RecognitionException {
7180 EObject current = null; 7679 EObject current = null;
7181 7680
7681 Token otherlv_1=null;
7682 EObject lv_components_0_0 = null;
7683
7684 EObject lv_components_2_0 = null;
7685
7686
7182 7687
7183 enterRule(); 7688 enterRule();
7184 7689
7185 try { 7690 try {
7186 // InternalSolverLanguageParser.g:2873:2: ( ( ( ruleQualifiedName ) ) ) 7691 // InternalSolverLanguageParser.g:3058:2: ( ( ( (lv_components_0_0= rulePathComponent ) ) (otherlv_1= FullStop ( (lv_components_2_0= rulePathComponent ) ) )* ) )
7187 // InternalSolverLanguageParser.g:2874:2: ( ( ruleQualifiedName ) ) 7692 // InternalSolverLanguageParser.g:3059:2: ( ( (lv_components_0_0= rulePathComponent ) ) (otherlv_1= FullStop ( (lv_components_2_0= rulePathComponent ) ) )* )
7188 { 7693 {
7189 // InternalSolverLanguageParser.g:2874:2: ( ( ruleQualifiedName ) ) 7694 // InternalSolverLanguageParser.g:3059:2: ( ( (lv_components_0_0= rulePathComponent ) ) (otherlv_1= FullStop ( (lv_components_2_0= rulePathComponent ) ) )* )
7190 // InternalSolverLanguageParser.g:2875:3: ( ruleQualifiedName ) 7695 // InternalSolverLanguageParser.g:3060:3: ( (lv_components_0_0= rulePathComponent ) ) (otherlv_1= FullStop ( (lv_components_2_0= rulePathComponent ) ) )*
7191 { 7696 {
7192 // InternalSolverLanguageParser.g:2875:3: ( ruleQualifiedName ) 7697 // InternalSolverLanguageParser.g:3060:3: ( (lv_components_0_0= rulePathComponent ) )
7193 // InternalSolverLanguageParser.g:2876:4: ruleQualifiedName 7698 // InternalSolverLanguageParser.g:3061:4: (lv_components_0_0= rulePathComponent )
7699 {
7700 // InternalSolverLanguageParser.g:3061:4: (lv_components_0_0= rulePathComponent )
7701 // InternalSolverLanguageParser.g:3062:5: lv_components_0_0= rulePathComponent
7194 { 7702 {
7195 7703
7196 if (current==null) { 7704 newCompositeNode(grammarAccess.getReferenceAccess().getComponentsPathComponentParserRuleCall_0_0());
7197 current = createModelElement(grammarAccess.getReferenceRule()); 7705
7198 } 7706 pushFollow(FOLLOW_46);
7199 7707 lv_components_0_0=rulePathComponent();
7200 7708
7201 newCompositeNode(grammarAccess.getReferenceAccess().getReferredNamedElementCrossReference_0()); 7709 state._fsp--;
7202 7710
7203 pushFollow(FOLLOW_2); 7711
7712 if (current==null) {
7713 current = createModelElementForParent(grammarAccess.getReferenceRule());
7714 }
7715 add(
7716 current,
7717 "components",
7718 lv_components_0_0,
7719 "org.eclipse.viatra.solver.language.SolverLanguage.PathComponent");
7720 afterParserOrEnumRuleCall();
7721
7722
7723 }
7724
7725
7726 }
7727
7728 // InternalSolverLanguageParser.g:3079:3: (otherlv_1= FullStop ( (lv_components_2_0= rulePathComponent ) ) )*
7729 loop35:
7730 do {
7731 int alt35=2;
7732 int LA35_0 = input.LA(1);
7733
7734 if ( (LA35_0==FullStop) ) {
7735 alt35=1;
7736 }
7737
7738
7739 switch (alt35) {
7740 case 1 :
7741 // InternalSolverLanguageParser.g:3080:4: otherlv_1= FullStop ( (lv_components_2_0= rulePathComponent ) )
7742 {
7743 otherlv_1=(Token)match(input,FullStop,FOLLOW_12);
7744
7745 newLeafNode(otherlv_1, grammarAccess.getReferenceAccess().getFullStopKeyword_1_0());
7746
7747 // InternalSolverLanguageParser.g:3084:4: ( (lv_components_2_0= rulePathComponent ) )
7748 // InternalSolverLanguageParser.g:3085:5: (lv_components_2_0= rulePathComponent )
7749 {
7750 // InternalSolverLanguageParser.g:3085:5: (lv_components_2_0= rulePathComponent )
7751 // InternalSolverLanguageParser.g:3086:6: lv_components_2_0= rulePathComponent
7752 {
7753
7754 newCompositeNode(grammarAccess.getReferenceAccess().getComponentsPathComponentParserRuleCall_1_1_0());
7755
7756 pushFollow(FOLLOW_46);
7757 lv_components_2_0=rulePathComponent();
7758
7759 state._fsp--;
7760
7761
7762 if (current==null) {
7763 current = createModelElementForParent(grammarAccess.getReferenceRule());
7764 }
7765 add(
7766 current,
7767 "components",
7768 lv_components_2_0,
7769 "org.eclipse.viatra.solver.language.SolverLanguage.PathComponent");
7770 afterParserOrEnumRuleCall();
7771
7772
7773 }
7774
7775
7776 }
7777
7778
7779 }
7780 break;
7781
7782 default :
7783 break loop35;
7784 }
7785 } while (true);
7786
7787
7788 }
7789
7790
7791 }
7792
7793
7794 leaveRule();
7795
7796 }
7797
7798 catch (RecognitionException re) {
7799 recover(input,re);
7800 appendSkippedTokens();
7801 }
7802 finally {
7803 }
7804 return current;
7805 }
7806 // $ANTLR end "ruleReference"
7807
7808
7809 // $ANTLR start "entryRulePathComponent"
7810 // InternalSolverLanguageParser.g:3108:1: entryRulePathComponent returns [EObject current=null] : iv_rulePathComponent= rulePathComponent EOF ;
7811 public final EObject entryRulePathComponent() throws RecognitionException {
7812 EObject current = null;
7813
7814 EObject iv_rulePathComponent = null;
7815
7816
7817 try {
7818 // InternalSolverLanguageParser.g:3108:54: (iv_rulePathComponent= rulePathComponent EOF )
7819 // InternalSolverLanguageParser.g:3109:2: iv_rulePathComponent= rulePathComponent EOF
7820 {
7821 newCompositeNode(grammarAccess.getPathComponentRule());
7822 pushFollow(FOLLOW_1);
7823 iv_rulePathComponent=rulePathComponent();
7824
7825 state._fsp--;
7826
7827 current =iv_rulePathComponent;
7828 match(input,EOF,FOLLOW_2);
7829
7830 }
7831
7832 }
7833
7834 catch (RecognitionException re) {
7835 recover(input,re);
7836 appendSkippedTokens();
7837 }
7838 finally {
7839 }
7840 return current;
7841 }
7842 // $ANTLR end "entryRulePathComponent"
7843
7844
7845 // $ANTLR start "rulePathComponent"
7846 // InternalSolverLanguageParser.g:3115:1: rulePathComponent returns [EObject current=null] : ( ( (lv_inverse_0_0= Tilde ) )? ( ( ruleQualifiedName ) ) ( ( (lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? ) ;
7847 public final EObject rulePathComponent() throws RecognitionException {
7848 EObject current = null;
7849
7850 Token lv_inverse_0_0=null;
7851 Token lv_transitiveClosure_2_0=null;
7852 Token lv_reflexiveTransitiveClosure_3_0=null;
7853
7854
7855 enterRule();
7856
7857 try {
7858 // InternalSolverLanguageParser.g:3121:2: ( ( ( (lv_inverse_0_0= Tilde ) )? ( ( ruleQualifiedName ) ) ( ( (lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? ) )
7859 // InternalSolverLanguageParser.g:3122:2: ( ( (lv_inverse_0_0= Tilde ) )? ( ( ruleQualifiedName ) ) ( ( (lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? )
7860 {
7861 // InternalSolverLanguageParser.g:3122:2: ( ( (lv_inverse_0_0= Tilde ) )? ( ( ruleQualifiedName ) ) ( ( (lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )? )
7862 // InternalSolverLanguageParser.g:3123:3: ( (lv_inverse_0_0= Tilde ) )? ( ( ruleQualifiedName ) ) ( ( (lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )?
7863 {
7864 // InternalSolverLanguageParser.g:3123:3: ( (lv_inverse_0_0= Tilde ) )?
7865 int alt36=2;
7866 int LA36_0 = input.LA(1);
7867
7868 if ( (LA36_0==Tilde) ) {
7869 alt36=1;
7870 }
7871 switch (alt36) {
7872 case 1 :
7873 // InternalSolverLanguageParser.g:3124:4: (lv_inverse_0_0= Tilde )
7874 {
7875 // InternalSolverLanguageParser.g:3124:4: (lv_inverse_0_0= Tilde )
7876 // InternalSolverLanguageParser.g:3125:5: lv_inverse_0_0= Tilde
7877 {
7878 lv_inverse_0_0=(Token)match(input,Tilde,FOLLOW_3);
7879
7880 newLeafNode(lv_inverse_0_0, grammarAccess.getPathComponentAccess().getInverseTildeKeyword_0_0());
7881
7882
7883 if (current==null) {
7884 current = createModelElement(grammarAccess.getPathComponentRule());
7885 }
7886 setWithLastConsumed(current, "inverse", true, "~");
7887
7888
7889 }
7890
7891
7892 }
7893 break;
7894
7895 }
7896
7897 // InternalSolverLanguageParser.g:3137:3: ( ( ruleQualifiedName ) )
7898 // InternalSolverLanguageParser.g:3138:4: ( ruleQualifiedName )
7899 {
7900 // InternalSolverLanguageParser.g:3138:4: ( ruleQualifiedName )
7901 // InternalSolverLanguageParser.g:3139:5: ruleQualifiedName
7902 {
7903
7904 if (current==null) {
7905 current = createModelElement(grammarAccess.getPathComponentRule());
7906 }
7907
7908
7909 newCompositeNode(grammarAccess.getPathComponentAccess().getSymbolSymbolCrossReference_1_0());
7910
7911 pushFollow(FOLLOW_47);
7204 ruleQualifiedName(); 7912 ruleQualifiedName();
7205 7913
7206 state._fsp--; 7914 state._fsp--;
7207 7915
7208 7916
7209 afterParserOrEnumRuleCall(); 7917 afterParserOrEnumRuleCall();
7210 7918
7919
7920 }
7921
7922
7923 }
7924
7925 // InternalSolverLanguageParser.g:3153:3: ( ( (lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE ) ) | ( (lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) ) )?
7926 int alt37=3;
7927 int LA37_0 = input.LA(1);
7928
7929 if ( (LA37_0==RULE_TRANSITIVE_CLOSURE) ) {
7930 alt37=1;
7931 }
7932 else if ( (LA37_0==RULE_REFLEXIVE_TRANSITIVE_CLOSURE) ) {
7933 alt37=2;
7934 }
7935 switch (alt37) {
7936 case 1 :
7937 // InternalSolverLanguageParser.g:3154:4: ( (lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE ) )
7938 {
7939 // InternalSolverLanguageParser.g:3154:4: ( (lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE ) )
7940 // InternalSolverLanguageParser.g:3155:5: (lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE )
7941 {
7942 // InternalSolverLanguageParser.g:3155:5: (lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE )
7943 // InternalSolverLanguageParser.g:3156:6: lv_transitiveClosure_2_0= RULE_TRANSITIVE_CLOSURE
7944 {
7945 lv_transitiveClosure_2_0=(Token)match(input,RULE_TRANSITIVE_CLOSURE,FOLLOW_2);
7946
7947 newLeafNode(lv_transitiveClosure_2_0, grammarAccess.getPathComponentAccess().getTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_2_0_0());
7948
7949
7950 if (current==null) {
7951 current = createModelElement(grammarAccess.getPathComponentRule());
7952 }
7953 setWithLastConsumed(
7954 current,
7955 "transitiveClosure",
7956 true,
7957 "org.eclipse.viatra.solver.language.SolverLanguage.TRANSITIVE_CLOSURE");
7958
7959
7960 }
7961
7962
7963 }
7964
7965
7966 }
7967 break;
7968 case 2 :
7969 // InternalSolverLanguageParser.g:3173:4: ( (lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) )
7970 {
7971 // InternalSolverLanguageParser.g:3173:4: ( (lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE ) )
7972 // InternalSolverLanguageParser.g:3174:5: (lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE )
7973 {
7974 // InternalSolverLanguageParser.g:3174:5: (lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE )
7975 // InternalSolverLanguageParser.g:3175:6: lv_reflexiveTransitiveClosure_3_0= RULE_REFLEXIVE_TRANSITIVE_CLOSURE
7976 {
7977 lv_reflexiveTransitiveClosure_3_0=(Token)match(input,RULE_REFLEXIVE_TRANSITIVE_CLOSURE,FOLLOW_2);
7978
7979 newLeafNode(lv_reflexiveTransitiveClosure_3_0, grammarAccess.getPathComponentAccess().getReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_2_1_0());
7980
7981
7982 if (current==null) {
7983 current = createModelElement(grammarAccess.getPathComponentRule());
7984 }
7985 setWithLastConsumed(
7986 current,
7987 "reflexiveTransitiveClosure",
7988 true,
7989 "org.eclipse.viatra.solver.language.SolverLanguage.REFLEXIVE_TRANSITIVE_CLOSURE");
7990
7991
7992 }
7993
7994
7995 }
7996
7997
7998 }
7999 break;
7211 8000
7212 } 8001 }
7213 8002
@@ -7230,11 +8019,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7230 } 8019 }
7231 return current; 8020 return current;
7232 } 8021 }
7233 // $ANTLR end "ruleReference" 8022 // $ANTLR end "rulePathComponent"
7234 8023
7235 8024
7236 // $ANTLR start "entryRuleInterval" 8025 // $ANTLR start "entryRuleInterval"
7237 // InternalSolverLanguageParser.g:2893:1: entryRuleInterval returns [EObject current=null] : iv_ruleInterval= ruleInterval EOF ; 8026 // InternalSolverLanguageParser.g:3196:1: entryRuleInterval returns [EObject current=null] : iv_ruleInterval= ruleInterval EOF ;
7238 public final EObject entryRuleInterval() throws RecognitionException { 8027 public final EObject entryRuleInterval() throws RecognitionException {
7239 EObject current = null; 8028 EObject current = null;
7240 8029
@@ -7242,8 +8031,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7242 8031
7243 8032
7244 try { 8033 try {
7245 // InternalSolverLanguageParser.g:2893:49: (iv_ruleInterval= ruleInterval EOF ) 8034 // InternalSolverLanguageParser.g:3196:49: (iv_ruleInterval= ruleInterval EOF )
7246 // InternalSolverLanguageParser.g:2894:2: iv_ruleInterval= ruleInterval EOF 8035 // InternalSolverLanguageParser.g:3197:2: iv_ruleInterval= ruleInterval EOF
7247 { 8036 {
7248 newCompositeNode(grammarAccess.getIntervalRule()); 8037 newCompositeNode(grammarAccess.getIntervalRule());
7249 pushFollow(FOLLOW_1); 8038 pushFollow(FOLLOW_1);
@@ -7270,7 +8059,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7270 8059
7271 8060
7272 // $ANTLR start "ruleInterval" 8061 // $ANTLR start "ruleInterval"
7273 // InternalSolverLanguageParser.g:2900:1: ruleInterval returns [EObject current=null] : (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= ruleExpression ) ) otherlv_2= FullStopFullStop ( (lv_upperBound_3_0= ruleExpression ) ) otherlv_4= RightSquareBracket ) ; 8062 // InternalSolverLanguageParser.g:3203:1: ruleInterval returns [EObject current=null] : (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= ruleAdditiveExpression ) ) otherlv_2= Comma ( (lv_upperBound_3_0= ruleAdditiveExpression ) ) otherlv_4= RightSquareBracket ) ;
7274 public final EObject ruleInterval() throws RecognitionException { 8063 public final EObject ruleInterval() throws RecognitionException {
7275 EObject current = null; 8064 EObject current = null;
7276 8065
@@ -7286,27 +8075,27 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7286 enterRule(); 8075 enterRule();
7287 8076
7288 try { 8077 try {
7289 // InternalSolverLanguageParser.g:2906:2: ( (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= ruleExpression ) ) otherlv_2= FullStopFullStop ( (lv_upperBound_3_0= ruleExpression ) ) otherlv_4= RightSquareBracket ) ) 8078 // InternalSolverLanguageParser.g:3209:2: ( (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= ruleAdditiveExpression ) ) otherlv_2= Comma ( (lv_upperBound_3_0= ruleAdditiveExpression ) ) otherlv_4= RightSquareBracket ) )
7290 // InternalSolverLanguageParser.g:2907:2: (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= ruleExpression ) ) otherlv_2= FullStopFullStop ( (lv_upperBound_3_0= ruleExpression ) ) otherlv_4= RightSquareBracket ) 8079 // InternalSolverLanguageParser.g:3210:2: (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= ruleAdditiveExpression ) ) otherlv_2= Comma ( (lv_upperBound_3_0= ruleAdditiveExpression ) ) otherlv_4= RightSquareBracket )
7291 { 8080 {
7292 // InternalSolverLanguageParser.g:2907:2: (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= ruleExpression ) ) otherlv_2= FullStopFullStop ( (lv_upperBound_3_0= ruleExpression ) ) otherlv_4= RightSquareBracket ) 8081 // InternalSolverLanguageParser.g:3210:2: (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= ruleAdditiveExpression ) ) otherlv_2= Comma ( (lv_upperBound_3_0= ruleAdditiveExpression ) ) otherlv_4= RightSquareBracket )
7293 // InternalSolverLanguageParser.g:2908:3: otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= ruleExpression ) ) otherlv_2= FullStopFullStop ( (lv_upperBound_3_0= ruleExpression ) ) otherlv_4= RightSquareBracket 8082 // InternalSolverLanguageParser.g:3211:3: otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= ruleAdditiveExpression ) ) otherlv_2= Comma ( (lv_upperBound_3_0= ruleAdditiveExpression ) ) otherlv_4= RightSquareBracket
7294 { 8083 {
7295 otherlv_0=(Token)match(input,LeftSquareBracket,FOLLOW_6); 8084 otherlv_0=(Token)match(input,LeftSquareBracket,FOLLOW_10);
7296 8085
7297 newLeafNode(otherlv_0, grammarAccess.getIntervalAccess().getLeftSquareBracketKeyword_0()); 8086 newLeafNode(otherlv_0, grammarAccess.getIntervalAccess().getLeftSquareBracketKeyword_0());
7298 8087
7299 // InternalSolverLanguageParser.g:2912:3: ( (lv_lowerBound_1_0= ruleExpression ) ) 8088 // InternalSolverLanguageParser.g:3215:3: ( (lv_lowerBound_1_0= ruleAdditiveExpression ) )
7300 // InternalSolverLanguageParser.g:2913:4: (lv_lowerBound_1_0= ruleExpression ) 8089 // InternalSolverLanguageParser.g:3216:4: (lv_lowerBound_1_0= ruleAdditiveExpression )
7301 { 8090 {
7302 // InternalSolverLanguageParser.g:2913:4: (lv_lowerBound_1_0= ruleExpression ) 8091 // InternalSolverLanguageParser.g:3216:4: (lv_lowerBound_1_0= ruleAdditiveExpression )
7303 // InternalSolverLanguageParser.g:2914:5: lv_lowerBound_1_0= ruleExpression 8092 // InternalSolverLanguageParser.g:3217:5: lv_lowerBound_1_0= ruleAdditiveExpression
7304 { 8093 {
7305 8094
7306 newCompositeNode(grammarAccess.getIntervalAccess().getLowerBoundExpressionParserRuleCall_1_0()); 8095 newCompositeNode(grammarAccess.getIntervalAccess().getLowerBoundAdditiveExpressionParserRuleCall_1_0());
7307 8096
7308 pushFollow(FOLLOW_44); 8097 pushFollow(FOLLOW_48);
7309 lv_lowerBound_1_0=ruleExpression(); 8098 lv_lowerBound_1_0=ruleAdditiveExpression();
7310 8099
7311 state._fsp--; 8100 state._fsp--;
7312 8101
@@ -7318,7 +8107,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7318 current, 8107 current,
7319 "lowerBound", 8108 "lowerBound",
7320 lv_lowerBound_1_0, 8109 lv_lowerBound_1_0,
7321 "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); 8110 "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression");
7322 afterParserOrEnumRuleCall(); 8111 afterParserOrEnumRuleCall();
7323 8112
7324 8113
@@ -7327,21 +8116,21 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7327 8116
7328 } 8117 }
7329 8118
7330 otherlv_2=(Token)match(input,FullStopFullStop,FOLLOW_6); 8119 otherlv_2=(Token)match(input,Comma,FOLLOW_10);
7331 8120
7332 newLeafNode(otherlv_2, grammarAccess.getIntervalAccess().getFullStopFullStopKeyword_2()); 8121 newLeafNode(otherlv_2, grammarAccess.getIntervalAccess().getCommaKeyword_2());
7333 8122
7334 // InternalSolverLanguageParser.g:2935:3: ( (lv_upperBound_3_0= ruleExpression ) ) 8123 // InternalSolverLanguageParser.g:3238:3: ( (lv_upperBound_3_0= ruleAdditiveExpression ) )
7335 // InternalSolverLanguageParser.g:2936:4: (lv_upperBound_3_0= ruleExpression ) 8124 // InternalSolverLanguageParser.g:3239:4: (lv_upperBound_3_0= ruleAdditiveExpression )
7336 { 8125 {
7337 // InternalSolverLanguageParser.g:2936:4: (lv_upperBound_3_0= ruleExpression ) 8126 // InternalSolverLanguageParser.g:3239:4: (lv_upperBound_3_0= ruleAdditiveExpression )
7338 // InternalSolverLanguageParser.g:2937:5: lv_upperBound_3_0= ruleExpression 8127 // InternalSolverLanguageParser.g:3240:5: lv_upperBound_3_0= ruleAdditiveExpression
7339 { 8128 {
7340 8129
7341 newCompositeNode(grammarAccess.getIntervalAccess().getUpperBoundExpressionParserRuleCall_3_0()); 8130 newCompositeNode(grammarAccess.getIntervalAccess().getUpperBoundAdditiveExpressionParserRuleCall_3_0());
7342 8131
7343 pushFollow(FOLLOW_45); 8132 pushFollow(FOLLOW_49);
7344 lv_upperBound_3_0=ruleExpression(); 8133 lv_upperBound_3_0=ruleAdditiveExpression();
7345 8134
7346 state._fsp--; 8135 state._fsp--;
7347 8136
@@ -7353,7 +8142,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7353 current, 8142 current,
7354 "upperBound", 8143 "upperBound",
7355 lv_upperBound_3_0, 8144 lv_upperBound_3_0,
7356 "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); 8145 "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression");
7357 afterParserOrEnumRuleCall(); 8146 afterParserOrEnumRuleCall();
7358 8147
7359 8148
@@ -7389,7 +8178,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7389 8178
7390 8179
7391 // $ANTLR start "entryRuleLiteral" 8180 // $ANTLR start "entryRuleLiteral"
7392 // InternalSolverLanguageParser.g:2962:1: entryRuleLiteral returns [EObject current=null] : iv_ruleLiteral= ruleLiteral EOF ; 8181 // InternalSolverLanguageParser.g:3265:1: entryRuleLiteral returns [EObject current=null] : iv_ruleLiteral= ruleLiteral EOF ;
7393 public final EObject entryRuleLiteral() throws RecognitionException { 8182 public final EObject entryRuleLiteral() throws RecognitionException {
7394 EObject current = null; 8183 EObject current = null;
7395 8184
@@ -7397,8 +8186,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7397 8186
7398 8187
7399 try { 8188 try {
7400 // InternalSolverLanguageParser.g:2962:48: (iv_ruleLiteral= ruleLiteral EOF ) 8189 // InternalSolverLanguageParser.g:3265:48: (iv_ruleLiteral= ruleLiteral EOF )
7401 // InternalSolverLanguageParser.g:2963:2: iv_ruleLiteral= ruleLiteral EOF 8190 // InternalSolverLanguageParser.g:3266:2: iv_ruleLiteral= ruleLiteral EOF
7402 { 8191 {
7403 newCompositeNode(grammarAccess.getLiteralRule()); 8192 newCompositeNode(grammarAccess.getLiteralRule());
7404 pushFollow(FOLLOW_1); 8193 pushFollow(FOLLOW_1);
@@ -7425,69 +8214,84 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7425 8214
7426 8215
7427 // $ANTLR start "ruleLiteral" 8216 // $ANTLR start "ruleLiteral"
7428 // InternalSolverLanguageParser.g:2969:1: ruleLiteral returns [EObject current=null] : (this_LogicLiteral_0= ruleLogicLiteral | this_NumericLiteral_1= ruleNumericLiteral | this_InfinityLiteral_2= ruleInfinityLiteral | this_EmptyIntervalLiteral_3= ruleEmptyIntervalLiteral | this_StringLiteral_4= ruleStringLiteral ) ; 8217 // InternalSolverLanguageParser.g:3272:1: ruleLiteral returns [EObject current=null] : (this_LogicLiteral_0= ruleLogicLiteral | this_IntLiteral_1= ruleIntLiteral | this_RealLiteral_2= ruleRealLiteral | this_InfinityLiteral_3= ruleInfinityLiteral | this_EmptyLiteral_4= ruleEmptyLiteral | this_StringLiteral_5= ruleStringLiteral ) ;
7429 public final EObject ruleLiteral() throws RecognitionException { 8218 public final EObject ruleLiteral() throws RecognitionException {
7430 EObject current = null; 8219 EObject current = null;
7431 8220
7432 EObject this_LogicLiteral_0 = null; 8221 EObject this_LogicLiteral_0 = null;
7433 8222
7434 EObject this_NumericLiteral_1 = null; 8223 EObject this_IntLiteral_1 = null;
7435 8224
7436 EObject this_InfinityLiteral_2 = null; 8225 EObject this_RealLiteral_2 = null;
7437 8226
7438 EObject this_EmptyIntervalLiteral_3 = null; 8227 EObject this_InfinityLiteral_3 = null;
7439 8228
7440 EObject this_StringLiteral_4 = null; 8229 EObject this_EmptyLiteral_4 = null;
8230
8231 EObject this_StringLiteral_5 = null;
7441 8232
7442 8233
7443 8234
7444 enterRule(); 8235 enterRule();
7445 8236
7446 try { 8237 try {
7447 // InternalSolverLanguageParser.g:2975:2: ( (this_LogicLiteral_0= ruleLogicLiteral | this_NumericLiteral_1= ruleNumericLiteral | this_InfinityLiteral_2= ruleInfinityLiteral | this_EmptyIntervalLiteral_3= ruleEmptyIntervalLiteral | this_StringLiteral_4= ruleStringLiteral ) ) 8238 // InternalSolverLanguageParser.g:3278:2: ( (this_LogicLiteral_0= ruleLogicLiteral | this_IntLiteral_1= ruleIntLiteral | this_RealLiteral_2= ruleRealLiteral | this_InfinityLiteral_3= ruleInfinityLiteral | this_EmptyLiteral_4= ruleEmptyLiteral | this_StringLiteral_5= ruleStringLiteral ) )
7448 // InternalSolverLanguageParser.g:2976:2: (this_LogicLiteral_0= ruleLogicLiteral | this_NumericLiteral_1= ruleNumericLiteral | this_InfinityLiteral_2= ruleInfinityLiteral | this_EmptyIntervalLiteral_3= ruleEmptyIntervalLiteral | this_StringLiteral_4= ruleStringLiteral ) 8239 // InternalSolverLanguageParser.g:3279:2: (this_LogicLiteral_0= ruleLogicLiteral | this_IntLiteral_1= ruleIntLiteral | this_RealLiteral_2= ruleRealLiteral | this_InfinityLiteral_3= ruleInfinityLiteral | this_EmptyLiteral_4= ruleEmptyLiteral | this_StringLiteral_5= ruleStringLiteral )
7449 { 8240 {
7450 // InternalSolverLanguageParser.g:2976:2: (this_LogicLiteral_0= ruleLogicLiteral | this_NumericLiteral_1= ruleNumericLiteral | this_InfinityLiteral_2= ruleInfinityLiteral | this_EmptyIntervalLiteral_3= ruleEmptyIntervalLiteral | this_StringLiteral_4= ruleStringLiteral ) 8241 // InternalSolverLanguageParser.g:3279:2: (this_LogicLiteral_0= ruleLogicLiteral | this_IntLiteral_1= ruleIntLiteral | this_RealLiteral_2= ruleRealLiteral | this_InfinityLiteral_3= ruleInfinityLiteral | this_EmptyLiteral_4= ruleEmptyLiteral | this_StringLiteral_5= ruleStringLiteral )
7451 int alt34=5; 8242 int alt38=6;
7452 switch ( input.LA(1) ) { 8243 switch ( input.LA(1) ) {
7453 case Unknown: 8244 case Unknown:
7454 case Error: 8245 case Error:
7455 case False: 8246 case False:
7456 case True: 8247 case True:
7457 { 8248 {
7458 alt34=1; 8249 alt38=1;
7459 } 8250 }
7460 break; 8251 break;
7461 case RULE_INT: 8252 case RULE_INT:
7462 { 8253 {
7463 alt34=2; 8254 int LA38_2 = input.LA(2);
8255
8256 if ( (LA38_2==EOF||LA38_2==Else||LA38_2==Then||(LA38_2>=ExclamationMarkEqualsSign && LA38_2<=ColonHyphenMinus)||(LA38_2>=ColonEqualsSign && LA38_2<=As)||LA38_2==In||(LA38_2>=RightParenthesis && LA38_2<=HyphenMinus)||(LA38_2>=Solidus && LA38_2<=LessThanSign)||LA38_2==GreaterThanSign||(LA38_2>=RightSquareBracket && LA38_2<=CircumflexAccent)||(LA38_2>=VerticalLine && LA38_2<=RightCurlyBracket)||LA38_2==RULE_FULL_STOP) ) {
8257 alt38=2;
8258 }
8259 else if ( (LA38_2==FullStop) ) {
8260 alt38=3;
8261 }
8262 else {
8263 NoViableAltException nvae =
8264 new NoViableAltException("", 38, 2, input);
8265
8266 throw nvae;
8267 }
7464 } 8268 }
7465 break; 8269 break;
7466 case Inf: 8270 case Inf:
7467 { 8271 {
7468 alt34=3; 8272 alt38=4;
7469 } 8273 }
7470 break; 8274 break;
7471 case Empty: 8275 case Empty:
7472 { 8276 {
7473 alt34=4; 8277 alt38=5;
7474 } 8278 }
7475 break; 8279 break;
7476 case RULE_STRING: 8280 case RULE_STRING:
7477 { 8281 {
7478 alt34=5; 8282 alt38=6;
7479 } 8283 }
7480 break; 8284 break;
7481 default: 8285 default:
7482 NoViableAltException nvae = 8286 NoViableAltException nvae =
7483 new NoViableAltException("", 34, 0, input); 8287 new NoViableAltException("", 38, 0, input);
7484 8288
7485 throw nvae; 8289 throw nvae;
7486 } 8290 }
7487 8291
7488 switch (alt34) { 8292 switch (alt38) {
7489 case 1 : 8293 case 1 :
7490 // InternalSolverLanguageParser.g:2977:3: this_LogicLiteral_0= ruleLogicLiteral 8294 // InternalSolverLanguageParser.g:3280:3: this_LogicLiteral_0= ruleLogicLiteral
7491 { 8295 {
7492 8296
7493 newCompositeNode(grammarAccess.getLiteralAccess().getLogicLiteralParserRuleCall_0()); 8297 newCompositeNode(grammarAccess.getLiteralAccess().getLogicLiteralParserRuleCall_0());
@@ -7505,72 +8309,90 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7505 } 8309 }
7506 break; 8310 break;
7507 case 2 : 8311 case 2 :
7508 // InternalSolverLanguageParser.g:2986:3: this_NumericLiteral_1= ruleNumericLiteral 8312 // InternalSolverLanguageParser.g:3289:3: this_IntLiteral_1= ruleIntLiteral
7509 { 8313 {
7510 8314
7511 newCompositeNode(grammarAccess.getLiteralAccess().getNumericLiteralParserRuleCall_1()); 8315 newCompositeNode(grammarAccess.getLiteralAccess().getIntLiteralParserRuleCall_1());
7512 8316
7513 pushFollow(FOLLOW_2); 8317 pushFollow(FOLLOW_2);
7514 this_NumericLiteral_1=ruleNumericLiteral(); 8318 this_IntLiteral_1=ruleIntLiteral();
7515 8319
7516 state._fsp--; 8320 state._fsp--;
7517 8321
7518 8322
7519 current = this_NumericLiteral_1; 8323 current = this_IntLiteral_1;
7520 afterParserOrEnumRuleCall(); 8324 afterParserOrEnumRuleCall();
7521 8325
7522 8326
7523 } 8327 }
7524 break; 8328 break;
7525 case 3 : 8329 case 3 :
7526 // InternalSolverLanguageParser.g:2995:3: this_InfinityLiteral_2= ruleInfinityLiteral 8330 // InternalSolverLanguageParser.g:3298:3: this_RealLiteral_2= ruleRealLiteral
7527 { 8331 {
7528 8332
7529 newCompositeNode(grammarAccess.getLiteralAccess().getInfinityLiteralParserRuleCall_2()); 8333 newCompositeNode(grammarAccess.getLiteralAccess().getRealLiteralParserRuleCall_2());
7530 8334
7531 pushFollow(FOLLOW_2); 8335 pushFollow(FOLLOW_2);
7532 this_InfinityLiteral_2=ruleInfinityLiteral(); 8336 this_RealLiteral_2=ruleRealLiteral();
7533 8337
7534 state._fsp--; 8338 state._fsp--;
7535 8339
7536 8340
7537 current = this_InfinityLiteral_2; 8341 current = this_RealLiteral_2;
7538 afterParserOrEnumRuleCall(); 8342 afterParserOrEnumRuleCall();
7539 8343
7540 8344
7541 } 8345 }
7542 break; 8346 break;
7543 case 4 : 8347 case 4 :
7544 // InternalSolverLanguageParser.g:3004:3: this_EmptyIntervalLiteral_3= ruleEmptyIntervalLiteral 8348 // InternalSolverLanguageParser.g:3307:3: this_InfinityLiteral_3= ruleInfinityLiteral
7545 { 8349 {
7546 8350
7547 newCompositeNode(grammarAccess.getLiteralAccess().getEmptyIntervalLiteralParserRuleCall_3()); 8351 newCompositeNode(grammarAccess.getLiteralAccess().getInfinityLiteralParserRuleCall_3());
7548 8352
7549 pushFollow(FOLLOW_2); 8353 pushFollow(FOLLOW_2);
7550 this_EmptyIntervalLiteral_3=ruleEmptyIntervalLiteral(); 8354 this_InfinityLiteral_3=ruleInfinityLiteral();
7551 8355
7552 state._fsp--; 8356 state._fsp--;
7553 8357
7554 8358
7555 current = this_EmptyIntervalLiteral_3; 8359 current = this_InfinityLiteral_3;
7556 afterParserOrEnumRuleCall(); 8360 afterParserOrEnumRuleCall();
7557 8361
7558 8362
7559 } 8363 }
7560 break; 8364 break;
7561 case 5 : 8365 case 5 :
7562 // InternalSolverLanguageParser.g:3013:3: this_StringLiteral_4= ruleStringLiteral 8366 // InternalSolverLanguageParser.g:3316:3: this_EmptyLiteral_4= ruleEmptyLiteral
7563 { 8367 {
7564 8368
7565 newCompositeNode(grammarAccess.getLiteralAccess().getStringLiteralParserRuleCall_4()); 8369 newCompositeNode(grammarAccess.getLiteralAccess().getEmptyLiteralParserRuleCall_4());
7566 8370
7567 pushFollow(FOLLOW_2); 8371 pushFollow(FOLLOW_2);
7568 this_StringLiteral_4=ruleStringLiteral(); 8372 this_EmptyLiteral_4=ruleEmptyLiteral();
7569 8373
7570 state._fsp--; 8374 state._fsp--;
7571 8375
7572 8376
7573 current = this_StringLiteral_4; 8377 current = this_EmptyLiteral_4;
8378 afterParserOrEnumRuleCall();
8379
8380
8381 }
8382 break;
8383 case 6 :
8384 // InternalSolverLanguageParser.g:3325:3: this_StringLiteral_5= ruleStringLiteral
8385 {
8386
8387 newCompositeNode(grammarAccess.getLiteralAccess().getStringLiteralParserRuleCall_5());
8388
8389 pushFollow(FOLLOW_2);
8390 this_StringLiteral_5=ruleStringLiteral();
8391
8392 state._fsp--;
8393
8394
8395 current = this_StringLiteral_5;
7574 afterParserOrEnumRuleCall(); 8396 afterParserOrEnumRuleCall();
7575 8397
7576 8398
@@ -7599,7 +8421,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7599 8421
7600 8422
7601 // $ANTLR start "entryRuleLogicLiteral" 8423 // $ANTLR start "entryRuleLogicLiteral"
7602 // InternalSolverLanguageParser.g:3025:1: entryRuleLogicLiteral returns [EObject current=null] : iv_ruleLogicLiteral= ruleLogicLiteral EOF ; 8424 // InternalSolverLanguageParser.g:3337:1: entryRuleLogicLiteral returns [EObject current=null] : iv_ruleLogicLiteral= ruleLogicLiteral EOF ;
7603 public final EObject entryRuleLogicLiteral() throws RecognitionException { 8425 public final EObject entryRuleLogicLiteral() throws RecognitionException {
7604 EObject current = null; 8426 EObject current = null;
7605 8427
@@ -7607,8 +8429,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7607 8429
7608 8430
7609 try { 8431 try {
7610 // InternalSolverLanguageParser.g:3025:53: (iv_ruleLogicLiteral= ruleLogicLiteral EOF ) 8432 // InternalSolverLanguageParser.g:3337:53: (iv_ruleLogicLiteral= ruleLogicLiteral EOF )
7611 // InternalSolverLanguageParser.g:3026:2: iv_ruleLogicLiteral= ruleLogicLiteral EOF 8433 // InternalSolverLanguageParser.g:3338:2: iv_ruleLogicLiteral= ruleLogicLiteral EOF
7612 { 8434 {
7613 newCompositeNode(grammarAccess.getLogicLiteralRule()); 8435 newCompositeNode(grammarAccess.getLogicLiteralRule());
7614 pushFollow(FOLLOW_1); 8436 pushFollow(FOLLOW_1);
@@ -7635,7 +8457,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7635 8457
7636 8458
7637 // $ANTLR start "ruleLogicLiteral" 8459 // $ANTLR start "ruleLogicLiteral"
7638 // InternalSolverLanguageParser.g:3032:1: ruleLogicLiteral returns [EObject current=null] : ( (lv_value_0_0= ruleLogicValue ) ) ; 8460 // InternalSolverLanguageParser.g:3344:1: ruleLogicLiteral returns [EObject current=null] : ( (lv_value_0_0= ruleLogicValue ) ) ;
7639 public final EObject ruleLogicLiteral() throws RecognitionException { 8461 public final EObject ruleLogicLiteral() throws RecognitionException {
7640 EObject current = null; 8462 EObject current = null;
7641 8463
@@ -7646,14 +8468,14 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7646 enterRule(); 8468 enterRule();
7647 8469
7648 try { 8470 try {
7649 // InternalSolverLanguageParser.g:3038:2: ( ( (lv_value_0_0= ruleLogicValue ) ) ) 8471 // InternalSolverLanguageParser.g:3350:2: ( ( (lv_value_0_0= ruleLogicValue ) ) )
7650 // InternalSolverLanguageParser.g:3039:2: ( (lv_value_0_0= ruleLogicValue ) ) 8472 // InternalSolverLanguageParser.g:3351:2: ( (lv_value_0_0= ruleLogicValue ) )
7651 { 8473 {
7652 // InternalSolverLanguageParser.g:3039:2: ( (lv_value_0_0= ruleLogicValue ) ) 8474 // InternalSolverLanguageParser.g:3351:2: ( (lv_value_0_0= ruleLogicValue ) )
7653 // InternalSolverLanguageParser.g:3040:3: (lv_value_0_0= ruleLogicValue ) 8475 // InternalSolverLanguageParser.g:3352:3: (lv_value_0_0= ruleLogicValue )
7654 { 8476 {
7655 // InternalSolverLanguageParser.g:3040:3: (lv_value_0_0= ruleLogicValue ) 8477 // InternalSolverLanguageParser.g:3352:3: (lv_value_0_0= ruleLogicValue )
7656 // InternalSolverLanguageParser.g:3041:4: lv_value_0_0= ruleLogicValue 8478 // InternalSolverLanguageParser.g:3353:4: lv_value_0_0= ruleLogicValue
7657 { 8479 {
7658 8480
7659 newCompositeNode(grammarAccess.getLogicLiteralAccess().getValueLogicValueEnumRuleCall_0()); 8481 newCompositeNode(grammarAccess.getLogicLiteralAccess().getValueLogicValueEnumRuleCall_0());
@@ -7699,25 +8521,120 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7699 // $ANTLR end "ruleLogicLiteral" 8521 // $ANTLR end "ruleLogicLiteral"
7700 8522
7701 8523
7702 // $ANTLR start "entryRuleNumericLiteral" 8524 // $ANTLR start "entryRuleIntLiteral"
7703 // InternalSolverLanguageParser.g:3061:1: entryRuleNumericLiteral returns [EObject current=null] : iv_ruleNumericLiteral= ruleNumericLiteral EOF ; 8525 // InternalSolverLanguageParser.g:3373:1: entryRuleIntLiteral returns [EObject current=null] : iv_ruleIntLiteral= ruleIntLiteral EOF ;
7704 public final EObject entryRuleNumericLiteral() throws RecognitionException { 8526 public final EObject entryRuleIntLiteral() throws RecognitionException {
8527 EObject current = null;
8528
8529 EObject iv_ruleIntLiteral = null;
8530
8531
8532 try {
8533 // InternalSolverLanguageParser.g:3373:51: (iv_ruleIntLiteral= ruleIntLiteral EOF )
8534 // InternalSolverLanguageParser.g:3374:2: iv_ruleIntLiteral= ruleIntLiteral EOF
8535 {
8536 newCompositeNode(grammarAccess.getIntLiteralRule());
8537 pushFollow(FOLLOW_1);
8538 iv_ruleIntLiteral=ruleIntLiteral();
8539
8540 state._fsp--;
8541
8542 current =iv_ruleIntLiteral;
8543 match(input,EOF,FOLLOW_2);
8544
8545 }
8546
8547 }
8548
8549 catch (RecognitionException re) {
8550 recover(input,re);
8551 appendSkippedTokens();
8552 }
8553 finally {
8554 }
8555 return current;
8556 }
8557 // $ANTLR end "entryRuleIntLiteral"
8558
8559
8560 // $ANTLR start "ruleIntLiteral"
8561 // InternalSolverLanguageParser.g:3380:1: ruleIntLiteral returns [EObject current=null] : ( (lv_value_0_0= RULE_INT ) ) ;
8562 public final EObject ruleIntLiteral() throws RecognitionException {
8563 EObject current = null;
8564
8565 Token lv_value_0_0=null;
8566
8567
8568 enterRule();
8569
8570 try {
8571 // InternalSolverLanguageParser.g:3386:2: ( ( (lv_value_0_0= RULE_INT ) ) )
8572 // InternalSolverLanguageParser.g:3387:2: ( (lv_value_0_0= RULE_INT ) )
8573 {
8574 // InternalSolverLanguageParser.g:3387:2: ( (lv_value_0_0= RULE_INT ) )
8575 // InternalSolverLanguageParser.g:3388:3: (lv_value_0_0= RULE_INT )
8576 {
8577 // InternalSolverLanguageParser.g:3388:3: (lv_value_0_0= RULE_INT )
8578 // InternalSolverLanguageParser.g:3389:4: lv_value_0_0= RULE_INT
8579 {
8580 lv_value_0_0=(Token)match(input,RULE_INT,FOLLOW_2);
8581
8582 newLeafNode(lv_value_0_0, grammarAccess.getIntLiteralAccess().getValueINTTerminalRuleCall_0());
8583
8584
8585 if (current==null) {
8586 current = createModelElement(grammarAccess.getIntLiteralRule());
8587 }
8588 setWithLastConsumed(
8589 current,
8590 "value",
8591 lv_value_0_0,
8592 "org.eclipse.xtext.common.Terminals.INT");
8593
8594
8595 }
8596
8597
8598 }
8599
8600
8601 }
8602
8603
8604 leaveRule();
8605
8606 }
8607
8608 catch (RecognitionException re) {
8609 recover(input,re);
8610 appendSkippedTokens();
8611 }
8612 finally {
8613 }
8614 return current;
8615 }
8616 // $ANTLR end "ruleIntLiteral"
8617
8618
8619 // $ANTLR start "entryRuleRealLiteral"
8620 // InternalSolverLanguageParser.g:3408:1: entryRuleRealLiteral returns [EObject current=null] : iv_ruleRealLiteral= ruleRealLiteral EOF ;
8621 public final EObject entryRuleRealLiteral() throws RecognitionException {
7705 EObject current = null; 8622 EObject current = null;
7706 8623
7707 EObject iv_ruleNumericLiteral = null; 8624 EObject iv_ruleRealLiteral = null;
7708 8625
7709 8626
7710 try { 8627 try {
7711 // InternalSolverLanguageParser.g:3061:55: (iv_ruleNumericLiteral= ruleNumericLiteral EOF ) 8628 // InternalSolverLanguageParser.g:3408:52: (iv_ruleRealLiteral= ruleRealLiteral EOF )
7712 // InternalSolverLanguageParser.g:3062:2: iv_ruleNumericLiteral= ruleNumericLiteral EOF 8629 // InternalSolverLanguageParser.g:3409:2: iv_ruleRealLiteral= ruleRealLiteral EOF
7713 { 8630 {
7714 newCompositeNode(grammarAccess.getNumericLiteralRule()); 8631 newCompositeNode(grammarAccess.getRealLiteralRule());
7715 pushFollow(FOLLOW_1); 8632 pushFollow(FOLLOW_1);
7716 iv_ruleNumericLiteral=ruleNumericLiteral(); 8633 iv_ruleRealLiteral=ruleRealLiteral();
7717 8634
7718 state._fsp--; 8635 state._fsp--;
7719 8636
7720 current =iv_ruleNumericLiteral; 8637 current =iv_ruleRealLiteral;
7721 match(input,EOF,FOLLOW_2); 8638 match(input,EOF,FOLLOW_2);
7722 8639
7723 } 8640 }
@@ -7732,12 +8649,12 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7732 } 8649 }
7733 return current; 8650 return current;
7734 } 8651 }
7735 // $ANTLR end "entryRuleNumericLiteral" 8652 // $ANTLR end "entryRuleRealLiteral"
7736 8653
7737 8654
7738 // $ANTLR start "ruleNumericLiteral" 8655 // $ANTLR start "ruleRealLiteral"
7739 // InternalSolverLanguageParser.g:3068:1: ruleNumericLiteral returns [EObject current=null] : ( (lv_value_0_0= ruleReal ) ) ; 8656 // InternalSolverLanguageParser.g:3415:1: ruleRealLiteral returns [EObject current=null] : ( (lv_value_0_0= ruleReal ) ) ;
7740 public final EObject ruleNumericLiteral() throws RecognitionException { 8657 public final EObject ruleRealLiteral() throws RecognitionException {
7741 EObject current = null; 8658 EObject current = null;
7742 8659
7743 AntlrDatatypeRuleToken lv_value_0_0 = null; 8660 AntlrDatatypeRuleToken lv_value_0_0 = null;
@@ -7747,17 +8664,17 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7747 enterRule(); 8664 enterRule();
7748 8665
7749 try { 8666 try {
7750 // InternalSolverLanguageParser.g:3074:2: ( ( (lv_value_0_0= ruleReal ) ) ) 8667 // InternalSolverLanguageParser.g:3421:2: ( ( (lv_value_0_0= ruleReal ) ) )
7751 // InternalSolverLanguageParser.g:3075:2: ( (lv_value_0_0= ruleReal ) ) 8668 // InternalSolverLanguageParser.g:3422:2: ( (lv_value_0_0= ruleReal ) )
7752 { 8669 {
7753 // InternalSolverLanguageParser.g:3075:2: ( (lv_value_0_0= ruleReal ) ) 8670 // InternalSolverLanguageParser.g:3422:2: ( (lv_value_0_0= ruleReal ) )
7754 // InternalSolverLanguageParser.g:3076:3: (lv_value_0_0= ruleReal ) 8671 // InternalSolverLanguageParser.g:3423:3: (lv_value_0_0= ruleReal )
7755 { 8672 {
7756 // InternalSolverLanguageParser.g:3076:3: (lv_value_0_0= ruleReal ) 8673 // InternalSolverLanguageParser.g:3423:3: (lv_value_0_0= ruleReal )
7757 // InternalSolverLanguageParser.g:3077:4: lv_value_0_0= ruleReal 8674 // InternalSolverLanguageParser.g:3424:4: lv_value_0_0= ruleReal
7758 { 8675 {
7759 8676
7760 newCompositeNode(grammarAccess.getNumericLiteralAccess().getValueRealParserRuleCall_0()); 8677 newCompositeNode(grammarAccess.getRealLiteralAccess().getValueRealParserRuleCall_0());
7761 8678
7762 pushFollow(FOLLOW_2); 8679 pushFollow(FOLLOW_2);
7763 lv_value_0_0=ruleReal(); 8680 lv_value_0_0=ruleReal();
@@ -7766,7 +8683,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7766 8683
7767 8684
7768 if (current==null) { 8685 if (current==null) {
7769 current = createModelElementForParent(grammarAccess.getNumericLiteralRule()); 8686 current = createModelElementForParent(grammarAccess.getRealLiteralRule());
7770 } 8687 }
7771 set( 8688 set(
7772 current, 8689 current,
@@ -7797,11 +8714,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7797 } 8714 }
7798 return current; 8715 return current;
7799 } 8716 }
7800 // $ANTLR end "ruleNumericLiteral" 8717 // $ANTLR end "ruleRealLiteral"
7801 8718
7802 8719
7803 // $ANTLR start "entryRuleInfinityLiteral" 8720 // $ANTLR start "entryRuleInfinityLiteral"
7804 // InternalSolverLanguageParser.g:3097:1: entryRuleInfinityLiteral returns [EObject current=null] : iv_ruleInfinityLiteral= ruleInfinityLiteral EOF ; 8721 // InternalSolverLanguageParser.g:3444:1: entryRuleInfinityLiteral returns [EObject current=null] : iv_ruleInfinityLiteral= ruleInfinityLiteral EOF ;
7805 public final EObject entryRuleInfinityLiteral() throws RecognitionException { 8722 public final EObject entryRuleInfinityLiteral() throws RecognitionException {
7806 EObject current = null; 8723 EObject current = null;
7807 8724
@@ -7809,8 +8726,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7809 8726
7810 8727
7811 try { 8728 try {
7812 // InternalSolverLanguageParser.g:3097:56: (iv_ruleInfinityLiteral= ruleInfinityLiteral EOF ) 8729 // InternalSolverLanguageParser.g:3444:56: (iv_ruleInfinityLiteral= ruleInfinityLiteral EOF )
7813 // InternalSolverLanguageParser.g:3098:2: iv_ruleInfinityLiteral= ruleInfinityLiteral EOF 8730 // InternalSolverLanguageParser.g:3445:2: iv_ruleInfinityLiteral= ruleInfinityLiteral EOF
7814 { 8731 {
7815 newCompositeNode(grammarAccess.getInfinityLiteralRule()); 8732 newCompositeNode(grammarAccess.getInfinityLiteralRule());
7816 pushFollow(FOLLOW_1); 8733 pushFollow(FOLLOW_1);
@@ -7837,7 +8754,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7837 8754
7838 8755
7839 // $ANTLR start "ruleInfinityLiteral" 8756 // $ANTLR start "ruleInfinityLiteral"
7840 // InternalSolverLanguageParser.g:3104:1: ruleInfinityLiteral returns [EObject current=null] : ( () otherlv_1= Inf ) ; 8757 // InternalSolverLanguageParser.g:3451:1: ruleInfinityLiteral returns [EObject current=null] : ( () otherlv_1= Inf ) ;
7841 public final EObject ruleInfinityLiteral() throws RecognitionException { 8758 public final EObject ruleInfinityLiteral() throws RecognitionException {
7842 EObject current = null; 8759 EObject current = null;
7843 8760
@@ -7847,14 +8764,14 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7847 enterRule(); 8764 enterRule();
7848 8765
7849 try { 8766 try {
7850 // InternalSolverLanguageParser.g:3110:2: ( ( () otherlv_1= Inf ) ) 8767 // InternalSolverLanguageParser.g:3457:2: ( ( () otherlv_1= Inf ) )
7851 // InternalSolverLanguageParser.g:3111:2: ( () otherlv_1= Inf ) 8768 // InternalSolverLanguageParser.g:3458:2: ( () otherlv_1= Inf )
7852 { 8769 {
7853 // InternalSolverLanguageParser.g:3111:2: ( () otherlv_1= Inf ) 8770 // InternalSolverLanguageParser.g:3458:2: ( () otherlv_1= Inf )
7854 // InternalSolverLanguageParser.g:3112:3: () otherlv_1= Inf 8771 // InternalSolverLanguageParser.g:3459:3: () otherlv_1= Inf
7855 { 8772 {
7856 // InternalSolverLanguageParser.g:3112:3: () 8773 // InternalSolverLanguageParser.g:3459:3: ()
7857 // InternalSolverLanguageParser.g:3113:4: 8774 // InternalSolverLanguageParser.g:3460:4:
7858 { 8775 {
7859 8776
7860 current = forceCreateModelElement( 8777 current = forceCreateModelElement(
@@ -7890,25 +8807,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7890 // $ANTLR end "ruleInfinityLiteral" 8807 // $ANTLR end "ruleInfinityLiteral"
7891 8808
7892 8809
7893 // $ANTLR start "entryRuleEmptyIntervalLiteral" 8810 // $ANTLR start "entryRuleEmptyLiteral"
7894 // InternalSolverLanguageParser.g:3127:1: entryRuleEmptyIntervalLiteral returns [EObject current=null] : iv_ruleEmptyIntervalLiteral= ruleEmptyIntervalLiteral EOF ; 8811 // InternalSolverLanguageParser.g:3474:1: entryRuleEmptyLiteral returns [EObject current=null] : iv_ruleEmptyLiteral= ruleEmptyLiteral EOF ;
7895 public final EObject entryRuleEmptyIntervalLiteral() throws RecognitionException { 8812 public final EObject entryRuleEmptyLiteral() throws RecognitionException {
7896 EObject current = null; 8813 EObject current = null;
7897 8814
7898 EObject iv_ruleEmptyIntervalLiteral = null; 8815 EObject iv_ruleEmptyLiteral = null;
7899 8816
7900 8817
7901 try { 8818 try {
7902 // InternalSolverLanguageParser.g:3127:61: (iv_ruleEmptyIntervalLiteral= ruleEmptyIntervalLiteral EOF ) 8819 // InternalSolverLanguageParser.g:3474:53: (iv_ruleEmptyLiteral= ruleEmptyLiteral EOF )
7903 // InternalSolverLanguageParser.g:3128:2: iv_ruleEmptyIntervalLiteral= ruleEmptyIntervalLiteral EOF 8820 // InternalSolverLanguageParser.g:3475:2: iv_ruleEmptyLiteral= ruleEmptyLiteral EOF
7904 { 8821 {
7905 newCompositeNode(grammarAccess.getEmptyIntervalLiteralRule()); 8822 newCompositeNode(grammarAccess.getEmptyLiteralRule());
7906 pushFollow(FOLLOW_1); 8823 pushFollow(FOLLOW_1);
7907 iv_ruleEmptyIntervalLiteral=ruleEmptyIntervalLiteral(); 8824 iv_ruleEmptyLiteral=ruleEmptyLiteral();
7908 8825
7909 state._fsp--; 8826 state._fsp--;
7910 8827
7911 current =iv_ruleEmptyIntervalLiteral; 8828 current =iv_ruleEmptyLiteral;
7912 match(input,EOF,FOLLOW_2); 8829 match(input,EOF,FOLLOW_2);
7913 8830
7914 } 8831 }
@@ -7923,12 +8840,12 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7923 } 8840 }
7924 return current; 8841 return current;
7925 } 8842 }
7926 // $ANTLR end "entryRuleEmptyIntervalLiteral" 8843 // $ANTLR end "entryRuleEmptyLiteral"
7927 8844
7928 8845
7929 // $ANTLR start "ruleEmptyIntervalLiteral" 8846 // $ANTLR start "ruleEmptyLiteral"
7930 // InternalSolverLanguageParser.g:3134:1: ruleEmptyIntervalLiteral returns [EObject current=null] : ( () otherlv_1= Empty ) ; 8847 // InternalSolverLanguageParser.g:3481:1: ruleEmptyLiteral returns [EObject current=null] : ( () otherlv_1= Empty ) ;
7931 public final EObject ruleEmptyIntervalLiteral() throws RecognitionException { 8848 public final EObject ruleEmptyLiteral() throws RecognitionException {
7932 EObject current = null; 8849 EObject current = null;
7933 8850
7934 Token otherlv_1=null; 8851 Token otherlv_1=null;
@@ -7937,18 +8854,18 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7937 enterRule(); 8854 enterRule();
7938 8855
7939 try { 8856 try {
7940 // InternalSolverLanguageParser.g:3140:2: ( ( () otherlv_1= Empty ) ) 8857 // InternalSolverLanguageParser.g:3487:2: ( ( () otherlv_1= Empty ) )
7941 // InternalSolverLanguageParser.g:3141:2: ( () otherlv_1= Empty ) 8858 // InternalSolverLanguageParser.g:3488:2: ( () otherlv_1= Empty )
7942 { 8859 {
7943 // InternalSolverLanguageParser.g:3141:2: ( () otherlv_1= Empty ) 8860 // InternalSolverLanguageParser.g:3488:2: ( () otherlv_1= Empty )
7944 // InternalSolverLanguageParser.g:3142:3: () otherlv_1= Empty 8861 // InternalSolverLanguageParser.g:3489:3: () otherlv_1= Empty
7945 { 8862 {
7946 // InternalSolverLanguageParser.g:3142:3: () 8863 // InternalSolverLanguageParser.g:3489:3: ()
7947 // InternalSolverLanguageParser.g:3143:4: 8864 // InternalSolverLanguageParser.g:3490:4:
7948 { 8865 {
7949 8866
7950 current = forceCreateModelElement( 8867 current = forceCreateModelElement(
7951 grammarAccess.getEmptyIntervalLiteralAccess().getEmptyIntervalLiteralAction_0(), 8868 grammarAccess.getEmptyLiteralAccess().getEmptyLiteralAction_0(),
7952 current); 8869 current);
7953 8870
7954 8871
@@ -7956,7 +8873,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7956 8873
7957 otherlv_1=(Token)match(input,Empty,FOLLOW_2); 8874 otherlv_1=(Token)match(input,Empty,FOLLOW_2);
7958 8875
7959 newLeafNode(otherlv_1, grammarAccess.getEmptyIntervalLiteralAccess().getEmptyKeyword_1()); 8876 newLeafNode(otherlv_1, grammarAccess.getEmptyLiteralAccess().getEmptyKeyword_1());
7960 8877
7961 8878
7962 } 8879 }
@@ -7977,11 +8894,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7977 } 8894 }
7978 return current; 8895 return current;
7979 } 8896 }
7980 // $ANTLR end "ruleEmptyIntervalLiteral" 8897 // $ANTLR end "ruleEmptyLiteral"
7981 8898
7982 8899
7983 // $ANTLR start "entryRuleStringLiteral" 8900 // $ANTLR start "entryRuleStringLiteral"
7984 // InternalSolverLanguageParser.g:3157:1: entryRuleStringLiteral returns [EObject current=null] : iv_ruleStringLiteral= ruleStringLiteral EOF ; 8901 // InternalSolverLanguageParser.g:3504:1: entryRuleStringLiteral returns [EObject current=null] : iv_ruleStringLiteral= ruleStringLiteral EOF ;
7985 public final EObject entryRuleStringLiteral() throws RecognitionException { 8902 public final EObject entryRuleStringLiteral() throws RecognitionException {
7986 EObject current = null; 8903 EObject current = null;
7987 8904
@@ -7989,8 +8906,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7989 8906
7990 8907
7991 try { 8908 try {
7992 // InternalSolverLanguageParser.g:3157:54: (iv_ruleStringLiteral= ruleStringLiteral EOF ) 8909 // InternalSolverLanguageParser.g:3504:54: (iv_ruleStringLiteral= ruleStringLiteral EOF )
7993 // InternalSolverLanguageParser.g:3158:2: iv_ruleStringLiteral= ruleStringLiteral EOF 8910 // InternalSolverLanguageParser.g:3505:2: iv_ruleStringLiteral= ruleStringLiteral EOF
7994 { 8911 {
7995 newCompositeNode(grammarAccess.getStringLiteralRule()); 8912 newCompositeNode(grammarAccess.getStringLiteralRule());
7996 pushFollow(FOLLOW_1); 8913 pushFollow(FOLLOW_1);
@@ -8017,7 +8934,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8017 8934
8018 8935
8019 // $ANTLR start "ruleStringLiteral" 8936 // $ANTLR start "ruleStringLiteral"
8020 // InternalSolverLanguageParser.g:3164:1: ruleStringLiteral returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ; 8937 // InternalSolverLanguageParser.g:3511:1: ruleStringLiteral returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ;
8021 public final EObject ruleStringLiteral() throws RecognitionException { 8938 public final EObject ruleStringLiteral() throws RecognitionException {
8022 EObject current = null; 8939 EObject current = null;
8023 8940
@@ -8027,14 +8944,14 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8027 enterRule(); 8944 enterRule();
8028 8945
8029 try { 8946 try {
8030 // InternalSolverLanguageParser.g:3170:2: ( ( (lv_value_0_0= RULE_STRING ) ) ) 8947 // InternalSolverLanguageParser.g:3517:2: ( ( (lv_value_0_0= RULE_STRING ) ) )
8031 // InternalSolverLanguageParser.g:3171:2: ( (lv_value_0_0= RULE_STRING ) ) 8948 // InternalSolverLanguageParser.g:3518:2: ( (lv_value_0_0= RULE_STRING ) )
8032 { 8949 {
8033 // InternalSolverLanguageParser.g:3171:2: ( (lv_value_0_0= RULE_STRING ) ) 8950 // InternalSolverLanguageParser.g:3518:2: ( (lv_value_0_0= RULE_STRING ) )
8034 // InternalSolverLanguageParser.g:3172:3: (lv_value_0_0= RULE_STRING ) 8951 // InternalSolverLanguageParser.g:3519:3: (lv_value_0_0= RULE_STRING )
8035 { 8952 {
8036 // InternalSolverLanguageParser.g:3172:3: (lv_value_0_0= RULE_STRING ) 8953 // InternalSolverLanguageParser.g:3519:3: (lv_value_0_0= RULE_STRING )
8037 // InternalSolverLanguageParser.g:3173:4: lv_value_0_0= RULE_STRING 8954 // InternalSolverLanguageParser.g:3520:4: lv_value_0_0= RULE_STRING
8038 { 8955 {
8039 lv_value_0_0=(Token)match(input,RULE_STRING,FOLLOW_2); 8956 lv_value_0_0=(Token)match(input,RULE_STRING,FOLLOW_2);
8040 8957
@@ -8075,25 +8992,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8075 // $ANTLR end "ruleStringLiteral" 8992 // $ANTLR end "ruleStringLiteral"
8076 8993
8077 8994
8078 // $ANTLR start "entryRuleClassDefinition" 8995 // $ANTLR start "entryRuleClassDeclaration"
8079 // InternalSolverLanguageParser.g:3192:1: entryRuleClassDefinition returns [EObject current=null] : iv_ruleClassDefinition= ruleClassDefinition EOF ; 8996 // InternalSolverLanguageParser.g:3539:1: entryRuleClassDeclaration returns [EObject current=null] : iv_ruleClassDeclaration= ruleClassDeclaration EOF ;
8080 public final EObject entryRuleClassDefinition() throws RecognitionException { 8997 public final EObject entryRuleClassDeclaration() throws RecognitionException {
8081 EObject current = null; 8998 EObject current = null;
8082 8999
8083 EObject iv_ruleClassDefinition = null; 9000 EObject iv_ruleClassDeclaration = null;
8084 9001
8085 9002
8086 try { 9003 try {
8087 // InternalSolverLanguageParser.g:3192:56: (iv_ruleClassDefinition= ruleClassDefinition EOF ) 9004 // InternalSolverLanguageParser.g:3539:57: (iv_ruleClassDeclaration= ruleClassDeclaration EOF )
8088 // InternalSolverLanguageParser.g:3193:2: iv_ruleClassDefinition= ruleClassDefinition EOF 9005 // InternalSolverLanguageParser.g:3540:2: iv_ruleClassDeclaration= ruleClassDeclaration EOF
8089 { 9006 {
8090 newCompositeNode(grammarAccess.getClassDefinitionRule()); 9007 newCompositeNode(grammarAccess.getClassDeclarationRule());
8091 pushFollow(FOLLOW_1); 9008 pushFollow(FOLLOW_1);
8092 iv_ruleClassDefinition=ruleClassDefinition(); 9009 iv_ruleClassDeclaration=ruleClassDeclaration();
8093 9010
8094 state._fsp--; 9011 state._fsp--;
8095 9012
8096 current =iv_ruleClassDefinition; 9013 current =iv_ruleClassDeclaration;
8097 match(input,EOF,FOLLOW_2); 9014 match(input,EOF,FOLLOW_2);
8098 9015
8099 } 9016 }
@@ -8108,89 +9025,219 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8108 } 9025 }
8109 return current; 9026 return current;
8110 } 9027 }
8111 // $ANTLR end "entryRuleClassDefinition" 9028 // $ANTLR end "entryRuleClassDeclaration"
8112 9029
8113 9030
8114 // $ANTLR start "ruleClassDefinition" 9031 // $ANTLR start "ruleClassDeclaration"
8115 // InternalSolverLanguageParser.g:3199:1: ruleClassDefinition returns [EObject current=null] : ( ( (lv_abstract_0_0= Abstract ) )? otherlv_1= Class ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* )? otherlv_7= LeftCurlyBracket ( (lv_members_8_0= ruleMemberDefinition ) )* otherlv_9= RightCurlyBracket ) ; 9032 // InternalSolverLanguageParser.g:3546:1: ruleClassDeclaration returns [EObject current=null] : ( ( ( ( ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* ) ) ) otherlv_3= Class ( (lv_name_4_0= RULE_ID ) ) (otherlv_5= Extends ( ( ruleQualifiedName ) ) (otherlv_7= Comma ( ( ruleQualifiedName ) ) )* )? ( (otherlv_9= LeftCurlyBracket ( (lv_fields_10_0= ruleField ) )* otherlv_11= RightCurlyBracket ) | this_FULL_STOP_12= RULE_FULL_STOP ) ) ;
8116 public final EObject ruleClassDefinition() throws RecognitionException { 9033 public final EObject ruleClassDeclaration() throws RecognitionException {
8117 EObject current = null; 9034 EObject current = null;
8118 9035
8119 Token lv_abstract_0_0=null; 9036 Token lv_abstract_1_0=null;
8120 Token otherlv_1=null; 9037 Token lv_root_2_0=null;
8121 Token lv_name_2_0=null;
8122 Token otherlv_3=null; 9038 Token otherlv_3=null;
9039 Token lv_name_4_0=null;
8123 Token otherlv_5=null; 9040 Token otherlv_5=null;
8124 Token otherlv_7=null; 9041 Token otherlv_7=null;
8125 Token otherlv_9=null; 9042 Token otherlv_9=null;
8126 EObject lv_members_8_0 = null; 9043 Token otherlv_11=null;
9044 Token this_FULL_STOP_12=null;
9045 EObject lv_fields_10_0 = null;
8127 9046
8128 9047
8129 9048
8130 enterRule(); 9049 enterRule();
8131 9050
8132 try { 9051 try {
8133 // InternalSolverLanguageParser.g:3205:2: ( ( ( (lv_abstract_0_0= Abstract ) )? otherlv_1= Class ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* )? otherlv_7= LeftCurlyBracket ( (lv_members_8_0= ruleMemberDefinition ) )* otherlv_9= RightCurlyBracket ) ) 9052 // InternalSolverLanguageParser.g:3552:2: ( ( ( ( ( ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* ) ) ) otherlv_3= Class ( (lv_name_4_0= RULE_ID ) ) (otherlv_5= Extends ( ( ruleQualifiedName ) ) (otherlv_7= Comma ( ( ruleQualifiedName ) ) )* )? ( (otherlv_9= LeftCurlyBracket ( (lv_fields_10_0= ruleField ) )* otherlv_11= RightCurlyBracket ) | this_FULL_STOP_12= RULE_FULL_STOP ) ) )
8134 // InternalSolverLanguageParser.g:3206:2: ( ( (lv_abstract_0_0= Abstract ) )? otherlv_1= Class ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* )? otherlv_7= LeftCurlyBracket ( (lv_members_8_0= ruleMemberDefinition ) )* otherlv_9= RightCurlyBracket ) 9053 // InternalSolverLanguageParser.g:3553:2: ( ( ( ( ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* ) ) ) otherlv_3= Class ( (lv_name_4_0= RULE_ID ) ) (otherlv_5= Extends ( ( ruleQualifiedName ) ) (otherlv_7= Comma ( ( ruleQualifiedName ) ) )* )? ( (otherlv_9= LeftCurlyBracket ( (lv_fields_10_0= ruleField ) )* otherlv_11= RightCurlyBracket ) | this_FULL_STOP_12= RULE_FULL_STOP ) )
9054 {
9055 // InternalSolverLanguageParser.g:3553:2: ( ( ( ( ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* ) ) ) otherlv_3= Class ( (lv_name_4_0= RULE_ID ) ) (otherlv_5= Extends ( ( ruleQualifiedName ) ) (otherlv_7= Comma ( ( ruleQualifiedName ) ) )* )? ( (otherlv_9= LeftCurlyBracket ( (lv_fields_10_0= ruleField ) )* otherlv_11= RightCurlyBracket ) | this_FULL_STOP_12= RULE_FULL_STOP ) )
9056 // InternalSolverLanguageParser.g:3554:3: ( ( ( ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* ) ) ) otherlv_3= Class ( (lv_name_4_0= RULE_ID ) ) (otherlv_5= Extends ( ( ruleQualifiedName ) ) (otherlv_7= Comma ( ( ruleQualifiedName ) ) )* )? ( (otherlv_9= LeftCurlyBracket ( (lv_fields_10_0= ruleField ) )* otherlv_11= RightCurlyBracket ) | this_FULL_STOP_12= RULE_FULL_STOP )
9057 {
9058 // InternalSolverLanguageParser.g:3554:3: ( ( ( ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* ) ) )
9059 // InternalSolverLanguageParser.g:3555:4: ( ( ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* ) )
8135 { 9060 {
8136 // InternalSolverLanguageParser.g:3206:2: ( ( (lv_abstract_0_0= Abstract ) )? otherlv_1= Class ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* )? otherlv_7= LeftCurlyBracket ( (lv_members_8_0= ruleMemberDefinition ) )* otherlv_9= RightCurlyBracket ) 9061 // InternalSolverLanguageParser.g:3555:4: ( ( ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* ) )
8137 // InternalSolverLanguageParser.g:3207:3: ( (lv_abstract_0_0= Abstract ) )? otherlv_1= Class ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* )? otherlv_7= LeftCurlyBracket ( (lv_members_8_0= ruleMemberDefinition ) )* otherlv_9= RightCurlyBracket 9062 // InternalSolverLanguageParser.g:3556:5: ( ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* )
8138 { 9063 {
8139 // InternalSolverLanguageParser.g:3207:3: ( (lv_abstract_0_0= Abstract ) )? 9064
8140 int alt35=2; 9065 getUnorderedGroupHelper().enter(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0());
8141 int LA35_0 = input.LA(1); 9066
9067 // InternalSolverLanguageParser.g:3559:5: ( ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )* )
9068 // InternalSolverLanguageParser.g:3560:6: ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )*
9069 {
9070 // InternalSolverLanguageParser.g:3560:6: ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) ) )*
9071 loop39:
9072 do {
9073 int alt39=3;
9074 int LA39_0 = input.LA(1);
8142 9075
8143 if ( (LA35_0==Abstract) ) { 9076 if ( LA39_0 == Abstract && getUnorderedGroupHelper().canSelect(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 0) ) {
8144 alt35=1; 9077 alt39=1;
8145 } 9078 }
8146 switch (alt35) { 9079 else if ( LA39_0 == Root && getUnorderedGroupHelper().canSelect(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 1) ) {
8147 case 1 : 9080 alt39=2;
8148 // InternalSolverLanguageParser.g:3208:4: (lv_abstract_0_0= Abstract ) 9081 }
8149 {
8150 // InternalSolverLanguageParser.g:3208:4: (lv_abstract_0_0= Abstract )
8151 // InternalSolverLanguageParser.g:3209:5: lv_abstract_0_0= Abstract
8152 {
8153 lv_abstract_0_0=(Token)match(input,Abstract,FOLLOW_46);
8154 9082
8155 newLeafNode(lv_abstract_0_0, grammarAccess.getClassDefinitionAccess().getAbstractAbstractKeyword_0_0());
8156
8157 9083
8158 if (current==null) { 9084 switch (alt39) {
8159 current = createModelElement(grammarAccess.getClassDefinitionRule()); 9085 case 1 :
8160 } 9086 // InternalSolverLanguageParser.g:3561:4: ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) )
8161 setWithLastConsumed(current, "abstract", true, "abstract"); 9087 {
8162 9088 // InternalSolverLanguageParser.g:3561:4: ({...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) ) )
9089 // InternalSolverLanguageParser.g:3562:5: {...}? => ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) )
9090 {
9091 if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 0) ) {
9092 throw new FailedPredicateException(input, "ruleClassDeclaration", "getUnorderedGroupHelper().canSelect(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 0)");
9093 }
9094 // InternalSolverLanguageParser.g:3562:113: ( ({...}? => ( (lv_abstract_1_0= Abstract ) ) ) )
9095 // InternalSolverLanguageParser.g:3563:6: ({...}? => ( (lv_abstract_1_0= Abstract ) ) )
9096 {
8163 9097
8164 } 9098 getUnorderedGroupHelper().select(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 0);
9099
9100 // InternalSolverLanguageParser.g:3566:9: ({...}? => ( (lv_abstract_1_0= Abstract ) ) )
9101 // InternalSolverLanguageParser.g:3566:10: {...}? => ( (lv_abstract_1_0= Abstract ) )
9102 {
9103 if ( !((true)) ) {
9104 throw new FailedPredicateException(input, "ruleClassDeclaration", "true");
9105 }
9106 // InternalSolverLanguageParser.g:3566:19: ( (lv_abstract_1_0= Abstract ) )
9107 // InternalSolverLanguageParser.g:3566:20: (lv_abstract_1_0= Abstract )
9108 {
9109 // InternalSolverLanguageParser.g:3566:20: (lv_abstract_1_0= Abstract )
9110 // InternalSolverLanguageParser.g:3567:10: lv_abstract_1_0= Abstract
9111 {
9112 lv_abstract_1_0=(Token)match(input,Abstract,FOLLOW_50);
8165 9113
9114 newLeafNode(lv_abstract_1_0, grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0_0());
9115
9116
9117 if (current==null) {
9118 current = createModelElement(grammarAccess.getClassDeclarationRule());
9119 }
9120 setWithLastConsumed(current, "abstract", true, "abstract");
9121
9122
9123 }
9124
9125
9126 }
9127
9128
9129 }
9130
9131
9132 getUnorderedGroupHelper().returnFromSelection(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0());
9133
9134
9135 }
9136
9137
9138 }
9139
9140
9141 }
9142 break;
9143 case 2 :
9144 // InternalSolverLanguageParser.g:3584:4: ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) )
9145 {
9146 // InternalSolverLanguageParser.g:3584:4: ({...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) ) )
9147 // InternalSolverLanguageParser.g:3585:5: {...}? => ( ({...}? => ( (lv_root_2_0= Root ) ) ) )
9148 {
9149 if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 1) ) {
9150 throw new FailedPredicateException(input, "ruleClassDeclaration", "getUnorderedGroupHelper().canSelect(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 1)");
9151 }
9152 // InternalSolverLanguageParser.g:3585:113: ( ({...}? => ( (lv_root_2_0= Root ) ) ) )
9153 // InternalSolverLanguageParser.g:3586:6: ({...}? => ( (lv_root_2_0= Root ) ) )
9154 {
9155
9156 getUnorderedGroupHelper().select(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0(), 1);
9157
9158 // InternalSolverLanguageParser.g:3589:9: ({...}? => ( (lv_root_2_0= Root ) ) )
9159 // InternalSolverLanguageParser.g:3589:10: {...}? => ( (lv_root_2_0= Root ) )
9160 {
9161 if ( !((true)) ) {
9162 throw new FailedPredicateException(input, "ruleClassDeclaration", "true");
9163 }
9164 // InternalSolverLanguageParser.g:3589:19: ( (lv_root_2_0= Root ) )
9165 // InternalSolverLanguageParser.g:3589:20: (lv_root_2_0= Root )
9166 {
9167 // InternalSolverLanguageParser.g:3589:20: (lv_root_2_0= Root )
9168 // InternalSolverLanguageParser.g:3590:10: lv_root_2_0= Root
9169 {
9170 lv_root_2_0=(Token)match(input,Root,FOLLOW_50);
9171
9172 newLeafNode(lv_root_2_0, grammarAccess.getClassDeclarationAccess().getRootRootKeyword_0_1_0());
9173
9174
9175 if (current==null) {
9176 current = createModelElement(grammarAccess.getClassDeclarationRule());
9177 }
9178 setWithLastConsumed(current, "root", true, "root");
9179
9180
9181 }
9182
9183
9184 }
9185
9186
9187 }
9188
9189
9190 getUnorderedGroupHelper().returnFromSelection(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0());
9191
9192
9193 }
9194
9195
9196 }
9197
9198
9199 }
9200 break;
9201
9202 default :
9203 break loop39;
9204 }
9205 } while (true);
8166 9206
8167 }
8168 break;
8169 9207
8170 } 9208 }
8171 9209
8172 otherlv_1=(Token)match(input,Class,FOLLOW_20);
8173 9210
8174 newLeafNode(otherlv_1, grammarAccess.getClassDefinitionAccess().getClassKeyword_1()); 9211 }
9212
9213
9214 getUnorderedGroupHelper().leave(grammarAccess.getClassDeclarationAccess().getUnorderedGroup_0());
9215
9216
9217 }
9218
9219 otherlv_3=(Token)match(input,Class,FOLLOW_28);
9220
9221 newLeafNode(otherlv_3, grammarAccess.getClassDeclarationAccess().getClassKeyword_1());
8175 9222
8176 // InternalSolverLanguageParser.g:3225:3: ( (lv_name_2_0= RULE_ID ) ) 9223 // InternalSolverLanguageParser.g:3618:3: ( (lv_name_4_0= RULE_ID ) )
8177 // InternalSolverLanguageParser.g:3226:4: (lv_name_2_0= RULE_ID ) 9224 // InternalSolverLanguageParser.g:3619:4: (lv_name_4_0= RULE_ID )
8178 { 9225 {
8179 // InternalSolverLanguageParser.g:3226:4: (lv_name_2_0= RULE_ID ) 9226 // InternalSolverLanguageParser.g:3619:4: (lv_name_4_0= RULE_ID )
8180 // InternalSolverLanguageParser.g:3227:5: lv_name_2_0= RULE_ID 9227 // InternalSolverLanguageParser.g:3620:5: lv_name_4_0= RULE_ID
8181 { 9228 {
8182 lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_47); 9229 lv_name_4_0=(Token)match(input,RULE_ID,FOLLOW_51);
8183 9230
8184 newLeafNode(lv_name_2_0, grammarAccess.getClassDefinitionAccess().getNameIDTerminalRuleCall_2_0()); 9231 newLeafNode(lv_name_4_0, grammarAccess.getClassDeclarationAccess().getNameIDTerminalRuleCall_2_0());
8185 9232
8186 9233
8187 if (current==null) { 9234 if (current==null) {
8188 current = createModelElement(grammarAccess.getClassDefinitionRule()); 9235 current = createModelElement(grammarAccess.getClassDeclarationRule());
8189 } 9236 }
8190 setWithLastConsumed( 9237 setWithLastConsumed(
8191 current, 9238 current,
8192 "name", 9239 "name",
8193 lv_name_2_0, 9240 lv_name_4_0,
8194 "org.eclipse.xtext.common.Terminals.ID"); 9241 "org.eclipse.xtext.common.Terminals.ID");
8195 9242
8196 9243
@@ -8199,36 +9246,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8199 9246
8200 } 9247 }
8201 9248
8202 // InternalSolverLanguageParser.g:3243:3: (otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* )? 9249 // InternalSolverLanguageParser.g:3636:3: (otherlv_5= Extends ( ( ruleQualifiedName ) ) (otherlv_7= Comma ( ( ruleQualifiedName ) ) )* )?
8203 int alt37=2; 9250 int alt41=2;
8204 int LA37_0 = input.LA(1); 9251 int LA41_0 = input.LA(1);
8205 9252
8206 if ( (LA37_0==Extends) ) { 9253 if ( (LA41_0==Extends) ) {
8207 alt37=1; 9254 alt41=1;
8208 } 9255 }
8209 switch (alt37) { 9256 switch (alt41) {
8210 case 1 : 9257 case 1 :
8211 // InternalSolverLanguageParser.g:3244:4: otherlv_3= Extends ( ( ruleQualifiedName ) ) (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* 9258 // InternalSolverLanguageParser.g:3637:4: otherlv_5= Extends ( ( ruleQualifiedName ) ) (otherlv_7= Comma ( ( ruleQualifiedName ) ) )*
8212 { 9259 {
8213 otherlv_3=(Token)match(input,Extends,FOLLOW_8); 9260 otherlv_5=(Token)match(input,Extends,FOLLOW_3);
8214 9261
8215 newLeafNode(otherlv_3, grammarAccess.getClassDefinitionAccess().getExtendsKeyword_3_0()); 9262 newLeafNode(otherlv_5, grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0());
8216 9263
8217 // InternalSolverLanguageParser.g:3248:4: ( ( ruleQualifiedName ) ) 9264 // InternalSolverLanguageParser.g:3641:4: ( ( ruleQualifiedName ) )
8218 // InternalSolverLanguageParser.g:3249:5: ( ruleQualifiedName ) 9265 // InternalSolverLanguageParser.g:3642:5: ( ruleQualifiedName )
8219 { 9266 {
8220 // InternalSolverLanguageParser.g:3249:5: ( ruleQualifiedName ) 9267 // InternalSolverLanguageParser.g:3642:5: ( ruleQualifiedName )
8221 // InternalSolverLanguageParser.g:3250:6: ruleQualifiedName 9268 // InternalSolverLanguageParser.g:3643:6: ruleQualifiedName
8222 { 9269 {
8223 9270
8224 if (current==null) { 9271 if (current==null) {
8225 current = createModelElement(grammarAccess.getClassDefinitionRule()); 9272 current = createModelElement(grammarAccess.getClassDeclarationRule());
8226 } 9273 }
8227 9274
8228 9275
8229 newCompositeNode(grammarAccess.getClassDefinitionAccess().getSuperclassesNamedElementCrossReference_3_1_0()); 9276 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSupertypesSymbolCrossReference_3_1_0());
8230 9277
8231 pushFollow(FOLLOW_48); 9278 pushFollow(FOLLOW_52);
8232 ruleQualifiedName(); 9279 ruleQualifiedName();
8233 9280
8234 state._fsp--; 9281 state._fsp--;
@@ -8242,40 +9289,40 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8242 9289
8243 } 9290 }
8244 9291
8245 // InternalSolverLanguageParser.g:3264:4: (otherlv_5= Comma ( ( ruleQualifiedName ) ) )* 9292 // InternalSolverLanguageParser.g:3657:4: (otherlv_7= Comma ( ( ruleQualifiedName ) ) )*
8246 loop36: 9293 loop40:
8247 do { 9294 do {
8248 int alt36=2; 9295 int alt40=2;
8249 int LA36_0 = input.LA(1); 9296 int LA40_0 = input.LA(1);
8250 9297
8251 if ( (LA36_0==Comma) ) { 9298 if ( (LA40_0==Comma) ) {
8252 alt36=1; 9299 alt40=1;
8253 } 9300 }
8254 9301
8255 9302
8256 switch (alt36) { 9303 switch (alt40) {
8257 case 1 : 9304 case 1 :
8258 // InternalSolverLanguageParser.g:3265:5: otherlv_5= Comma ( ( ruleQualifiedName ) ) 9305 // InternalSolverLanguageParser.g:3658:5: otherlv_7= Comma ( ( ruleQualifiedName ) )
8259 { 9306 {
8260 otherlv_5=(Token)match(input,Comma,FOLLOW_8); 9307 otherlv_7=(Token)match(input,Comma,FOLLOW_3);
8261 9308
8262 newLeafNode(otherlv_5, grammarAccess.getClassDefinitionAccess().getCommaKeyword_3_2_0()); 9309 newLeafNode(otherlv_7, grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_2_0());
8263 9310
8264 // InternalSolverLanguageParser.g:3269:5: ( ( ruleQualifiedName ) ) 9311 // InternalSolverLanguageParser.g:3662:5: ( ( ruleQualifiedName ) )
8265 // InternalSolverLanguageParser.g:3270:6: ( ruleQualifiedName ) 9312 // InternalSolverLanguageParser.g:3663:6: ( ruleQualifiedName )
8266 { 9313 {
8267 // InternalSolverLanguageParser.g:3270:6: ( ruleQualifiedName ) 9314 // InternalSolverLanguageParser.g:3663:6: ( ruleQualifiedName )
8268 // InternalSolverLanguageParser.g:3271:7: ruleQualifiedName 9315 // InternalSolverLanguageParser.g:3664:7: ruleQualifiedName
8269 { 9316 {
8270 9317
8271 if (current==null) { 9318 if (current==null) {
8272 current = createModelElement(grammarAccess.getClassDefinitionRule()); 9319 current = createModelElement(grammarAccess.getClassDeclarationRule());
8273 } 9320 }
8274 9321
8275 9322
8276 newCompositeNode(grammarAccess.getClassDefinitionAccess().getSuperclassesNamedElementCrossReference_3_2_1_0()); 9323 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSupertypesSymbolCrossReference_3_2_1_0());
8277 9324
8278 pushFollow(FOLLOW_48); 9325 pushFollow(FOLLOW_52);
8279 ruleQualifiedName(); 9326 ruleQualifiedName();
8280 9327
8281 state._fsp--; 9328 state._fsp--;
@@ -8294,7 +9341,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8294 break; 9341 break;
8295 9342
8296 default : 9343 default :
8297 break loop36; 9344 break loop40;
8298 } 9345 }
8299 } while (true); 9346 } while (true);
8300 9347
@@ -8304,63 +9351,105 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8304 9351
8305 } 9352 }
8306 9353
8307 otherlv_7=(Token)match(input,LeftCurlyBracket,FOLLOW_49); 9354 // InternalSolverLanguageParser.g:3680:3: ( (otherlv_9= LeftCurlyBracket ( (lv_fields_10_0= ruleField ) )* otherlv_11= RightCurlyBracket ) | this_FULL_STOP_12= RULE_FULL_STOP )
9355 int alt43=2;
9356 int LA43_0 = input.LA(1);
8308 9357
8309 newLeafNode(otherlv_7, grammarAccess.getClassDefinitionAccess().getLeftCurlyBracketKeyword_4()); 9358 if ( (LA43_0==LeftCurlyBracket) ) {
8310 9359 alt43=1;
8311 // InternalSolverLanguageParser.g:3291:3: ( (lv_members_8_0= ruleMemberDefinition ) )* 9360 }
8312 loop38: 9361 else if ( (LA43_0==RULE_FULL_STOP) ) {
8313 do { 9362 alt43=2;
8314 int alt38=2; 9363 }
8315 int LA38_0 = input.LA(1); 9364 else {
9365 NoViableAltException nvae =
9366 new NoViableAltException("", 43, 0, input);
8316 9367
8317 if ( (LA38_0==Contains||LA38_0==RULE_QUOTED_ID||LA38_0==RULE_ID) ) { 9368 throw nvae;
8318 alt38=1; 9369 }
8319 } 9370 switch (alt43) {
9371 case 1 :
9372 // InternalSolverLanguageParser.g:3681:4: (otherlv_9= LeftCurlyBracket ( (lv_fields_10_0= ruleField ) )* otherlv_11= RightCurlyBracket )
9373 {
9374 // InternalSolverLanguageParser.g:3681:4: (otherlv_9= LeftCurlyBracket ( (lv_fields_10_0= ruleField ) )* otherlv_11= RightCurlyBracket )
9375 // InternalSolverLanguageParser.g:3682:5: otherlv_9= LeftCurlyBracket ( (lv_fields_10_0= ruleField ) )* otherlv_11= RightCurlyBracket
9376 {
9377 otherlv_9=(Token)match(input,LeftCurlyBracket,FOLLOW_53);
8320 9378
9379 newLeafNode(otherlv_9, grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0());
9380
9381 // InternalSolverLanguageParser.g:3686:5: ( (lv_fields_10_0= ruleField ) )*
9382 loop42:
9383 do {
9384 int alt42=2;
9385 int LA42_0 = input.LA(1);
8321 9386
8322 switch (alt38) { 9387 if ( (LA42_0==Contains||(LA42_0>=Object && LA42_0<=Refers)||LA42_0==RULE_QUOTED_ID||LA42_0==RULE_ID) ) {
8323 case 1 : 9388 alt42=1;
8324 // InternalSolverLanguageParser.g:3292:4: (lv_members_8_0= ruleMemberDefinition ) 9389 }
8325 {
8326 // InternalSolverLanguageParser.g:3292:4: (lv_members_8_0= ruleMemberDefinition )
8327 // InternalSolverLanguageParser.g:3293:5: lv_members_8_0= ruleMemberDefinition
8328 {
8329 9390
8330 newCompositeNode(grammarAccess.getClassDefinitionAccess().getMembersMemberDefinitionParserRuleCall_5_0());
8331
8332 pushFollow(FOLLOW_49);
8333 lv_members_8_0=ruleMemberDefinition();
8334 9391
8335 state._fsp--; 9392 switch (alt42) {
9393 case 1 :
9394 // InternalSolverLanguageParser.g:3687:6: (lv_fields_10_0= ruleField )
9395 {
9396 // InternalSolverLanguageParser.g:3687:6: (lv_fields_10_0= ruleField )
9397 // InternalSolverLanguageParser.g:3688:7: lv_fields_10_0= ruleField
9398 {
8336 9399
9400 newCompositeNode(grammarAccess.getClassDeclarationAccess().getFieldsFieldParserRuleCall_4_0_1_0());
9401
9402 pushFollow(FOLLOW_53);
9403 lv_fields_10_0=ruleField();
8337 9404
8338 if (current==null) { 9405 state._fsp--;
8339 current = createModelElementForParent(grammarAccess.getClassDefinitionRule());
8340 }
8341 add(
8342 current,
8343 "members",
8344 lv_members_8_0,
8345 "org.eclipse.viatra.solver.language.SolverLanguage.MemberDefinition");
8346 afterParserOrEnumRuleCall();
8347
8348 9406
8349 }
8350 9407
9408 if (current==null) {
9409 current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
9410 }
9411 add(
9412 current,
9413 "fields",
9414 lv_fields_10_0,
9415 "org.eclipse.viatra.solver.language.SolverLanguage.Field");
9416 afterParserOrEnumRuleCall();
9417
8351 9418
8352 } 9419 }
8353 break;
8354 9420
8355 default :
8356 break loop38;
8357 }
8358 } while (true);
8359 9421
8360 otherlv_9=(Token)match(input,RightCurlyBracket,FOLLOW_2); 9422 }
9423 break;
9424
9425 default :
9426 break loop42;
9427 }
9428 } while (true);
9429
9430 otherlv_11=(Token)match(input,RightCurlyBracket,FOLLOW_2);
9431
9432 newLeafNode(otherlv_11, grammarAccess.getClassDeclarationAccess().getRightCurlyBracketKeyword_4_0_2());
9433
9434
9435 }
9436
9437
9438 }
9439 break;
9440 case 2 :
9441 // InternalSolverLanguageParser.g:3711:4: this_FULL_STOP_12= RULE_FULL_STOP
9442 {
9443 this_FULL_STOP_12=(Token)match(input,RULE_FULL_STOP,FOLLOW_2);
9444
9445 newLeafNode(this_FULL_STOP_12, grammarAccess.getClassDeclarationAccess().getFULL_STOPTerminalRuleCall_4_1());
9446
9447
9448 }
9449 break;
9450
9451 }
8361 9452
8362 newLeafNode(otherlv_9, grammarAccess.getClassDefinitionAccess().getRightCurlyBracketKeyword_6());
8363
8364 9453
8365 } 9454 }
8366 9455
@@ -8380,28 +9469,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8380 } 9469 }
8381 return current; 9470 return current;
8382 } 9471 }
8383 // $ANTLR end "ruleClassDefinition" 9472 // $ANTLR end "ruleClassDeclaration"
8384 9473
8385 9474
8386 // $ANTLR start "entryRuleMemberDefinition" 9475 // $ANTLR start "entryRuleField"
8387 // InternalSolverLanguageParser.g:3318:1: entryRuleMemberDefinition returns [EObject current=null] : iv_ruleMemberDefinition= ruleMemberDefinition EOF ; 9476 // InternalSolverLanguageParser.g:3720:1: entryRuleField returns [EObject current=null] : iv_ruleField= ruleField EOF ;
8388 public final EObject entryRuleMemberDefinition() throws RecognitionException { 9477 public final EObject entryRuleField() throws RecognitionException {
8389 EObject current = null; 9478 EObject current = null;
8390 9479
8391 EObject iv_ruleMemberDefinition = null; 9480 EObject iv_ruleField = null;
8392 9481
8393 9482
8394 try { 9483 try {
8395 // InternalSolverLanguageParser.g:3318:57: (iv_ruleMemberDefinition= ruleMemberDefinition EOF ) 9484 // InternalSolverLanguageParser.g:3720:46: (iv_ruleField= ruleField EOF )
8396 // InternalSolverLanguageParser.g:3319:2: iv_ruleMemberDefinition= ruleMemberDefinition EOF 9485 // InternalSolverLanguageParser.g:3721:2: iv_ruleField= ruleField EOF
8397 { 9486 {
8398 newCompositeNode(grammarAccess.getMemberDefinitionRule()); 9487 newCompositeNode(grammarAccess.getFieldRule());
8399 pushFollow(FOLLOW_1); 9488 pushFollow(FOLLOW_1);
8400 iv_ruleMemberDefinition=ruleMemberDefinition(); 9489 iv_ruleField=ruleField();
8401 9490
8402 state._fsp--; 9491 state._fsp--;
8403 9492
8404 current =iv_ruleMemberDefinition; 9493 current =iv_ruleField;
8405 match(input,EOF,FOLLOW_2); 9494 match(input,EOF,FOLLOW_2);
8406 9495
8407 } 9496 }
@@ -8416,55 +9505,93 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8416 } 9505 }
8417 return current; 9506 return current;
8418 } 9507 }
8419 // $ANTLR end "entryRuleMemberDefinition" 9508 // $ANTLR end "entryRuleField"
8420 9509
8421 9510
8422 // $ANTLR start "ruleMemberDefinition" 9511 // $ANTLR start "ruleField"
8423 // InternalSolverLanguageParser.g:3325:1: ruleMemberDefinition returns [EObject current=null] : ( ( (lv_containment_0_0= Contains ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_2_0= ruleMultiplicity ) )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= Opposite ( ( ruleQualifiedName ) ) )? (otherlv_6= Semicolon )? ) ; 9512 // InternalSolverLanguageParser.g:3727:1: ruleField returns [EObject current=null] : ( ( ( (lv_containment_0_0= Contains ) ) | ( (lv_crossReference_1_0= Refers ) ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_3_0= ruleMultiplicity ) )? ( (lv_name_4_0= RULE_ID ) ) (otherlv_5= Opposite ( ( ruleQualifiedName ) ) )? (otherlv_7= Semicolon )? ) ;
8424 public final EObject ruleMemberDefinition() throws RecognitionException { 9513 public final EObject ruleField() throws RecognitionException {
8425 EObject current = null; 9514 EObject current = null;
8426 9515
8427 Token lv_containment_0_0=null; 9516 Token lv_containment_0_0=null;
8428 Token lv_name_3_0=null; 9517 Token lv_crossReference_1_0=null;
8429 Token otherlv_4=null; 9518 Token lv_name_4_0=null;
8430 Token otherlv_6=null; 9519 Token otherlv_5=null;
8431 EObject lv_multiplicity_2_0 = null; 9520 Token otherlv_7=null;
9521 EObject lv_multiplicity_3_0 = null;
8432 9522
8433 9523
8434 9524
8435 enterRule(); 9525 enterRule();
8436 9526
8437 try { 9527 try {
8438 // InternalSolverLanguageParser.g:3331:2: ( ( ( (lv_containment_0_0= Contains ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_2_0= ruleMultiplicity ) )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= Opposite ( ( ruleQualifiedName ) ) )? (otherlv_6= Semicolon )? ) ) 9528 // InternalSolverLanguageParser.g:3733:2: ( ( ( ( (lv_containment_0_0= Contains ) ) | ( (lv_crossReference_1_0= Refers ) ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_3_0= ruleMultiplicity ) )? ( (lv_name_4_0= RULE_ID ) ) (otherlv_5= Opposite ( ( ruleQualifiedName ) ) )? (otherlv_7= Semicolon )? ) )
8439 // InternalSolverLanguageParser.g:3332:2: ( ( (lv_containment_0_0= Contains ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_2_0= ruleMultiplicity ) )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= Opposite ( ( ruleQualifiedName ) ) )? (otherlv_6= Semicolon )? ) 9529 // InternalSolverLanguageParser.g:3734:2: ( ( ( (lv_containment_0_0= Contains ) ) | ( (lv_crossReference_1_0= Refers ) ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_3_0= ruleMultiplicity ) )? ( (lv_name_4_0= RULE_ID ) ) (otherlv_5= Opposite ( ( ruleQualifiedName ) ) )? (otherlv_7= Semicolon )? )
8440 { 9530 {
8441 // InternalSolverLanguageParser.g:3332:2: ( ( (lv_containment_0_0= Contains ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_2_0= ruleMultiplicity ) )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= Opposite ( ( ruleQualifiedName ) ) )? (otherlv_6= Semicolon )? ) 9531 // InternalSolverLanguageParser.g:3734:2: ( ( ( (lv_containment_0_0= Contains ) ) | ( (lv_crossReference_1_0= Refers ) ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_3_0= ruleMultiplicity ) )? ( (lv_name_4_0= RULE_ID ) ) (otherlv_5= Opposite ( ( ruleQualifiedName ) ) )? (otherlv_7= Semicolon )? )
8442 // InternalSolverLanguageParser.g:3333:3: ( (lv_containment_0_0= Contains ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_2_0= ruleMultiplicity ) )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= Opposite ( ( ruleQualifiedName ) ) )? (otherlv_6= Semicolon )? 9532 // InternalSolverLanguageParser.g:3735:3: ( ( (lv_containment_0_0= Contains ) ) | ( (lv_crossReference_1_0= Refers ) ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_3_0= ruleMultiplicity ) )? ( (lv_name_4_0= RULE_ID ) ) (otherlv_5= Opposite ( ( ruleQualifiedName ) ) )? (otherlv_7= Semicolon )?
8443 { 9533 {
8444 // InternalSolverLanguageParser.g:3333:3: ( (lv_containment_0_0= Contains ) )? 9534 // InternalSolverLanguageParser.g:3735:3: ( ( (lv_containment_0_0= Contains ) ) | ( (lv_crossReference_1_0= Refers ) ) )?
8445 int alt39=2; 9535 int alt44=3;
8446 int LA39_0 = input.LA(1); 9536 int LA44_0 = input.LA(1);
8447 9537
8448 if ( (LA39_0==Contains) ) { 9538 if ( (LA44_0==Contains) ) {
8449 alt39=1; 9539 alt44=1;
8450 } 9540 }
8451 switch (alt39) { 9541 else if ( (LA44_0==Refers) ) {
9542 alt44=2;
9543 }
9544 switch (alt44) {
8452 case 1 : 9545 case 1 :
8453 // InternalSolverLanguageParser.g:3334:4: (lv_containment_0_0= Contains ) 9546 // InternalSolverLanguageParser.g:3736:4: ( (lv_containment_0_0= Contains ) )
9547 {
9548 // InternalSolverLanguageParser.g:3736:4: ( (lv_containment_0_0= Contains ) )
9549 // InternalSolverLanguageParser.g:3737:5: (lv_containment_0_0= Contains )
8454 { 9550 {
8455 // InternalSolverLanguageParser.g:3334:4: (lv_containment_0_0= Contains ) 9551 // InternalSolverLanguageParser.g:3737:5: (lv_containment_0_0= Contains )
8456 // InternalSolverLanguageParser.g:3335:5: lv_containment_0_0= Contains 9552 // InternalSolverLanguageParser.g:3738:6: lv_containment_0_0= Contains
8457 { 9553 {
8458 lv_containment_0_0=(Token)match(input,Contains,FOLLOW_8); 9554 lv_containment_0_0=(Token)match(input,Contains,FOLLOW_3);
8459 9555
8460 newLeafNode(lv_containment_0_0, grammarAccess.getMemberDefinitionAccess().getContainmentContainsKeyword_0_0()); 9556 newLeafNode(lv_containment_0_0, grammarAccess.getFieldAccess().getContainmentContainsKeyword_0_0_0());
8461 9557
9558
9559 if (current==null) {
9560 current = createModelElement(grammarAccess.getFieldRule());
9561 }
9562 setWithLastConsumed(current, "containment", true, "contains");
9563
9564
9565 }
9566
9567
9568 }
9569
9570
9571 }
9572 break;
9573 case 2 :
9574 // InternalSolverLanguageParser.g:3751:4: ( (lv_crossReference_1_0= Refers ) )
9575 {
9576 // InternalSolverLanguageParser.g:3751:4: ( (lv_crossReference_1_0= Refers ) )
9577 // InternalSolverLanguageParser.g:3752:5: (lv_crossReference_1_0= Refers )
9578 {
9579 // InternalSolverLanguageParser.g:3752:5: (lv_crossReference_1_0= Refers )
9580 // InternalSolverLanguageParser.g:3753:6: lv_crossReference_1_0= Refers
9581 {
9582 lv_crossReference_1_0=(Token)match(input,Refers,FOLLOW_3);
9583
9584 newLeafNode(lv_crossReference_1_0, grammarAccess.getFieldAccess().getCrossReferenceRefersKeyword_0_1_0());
9585
9586
9587 if (current==null) {
9588 current = createModelElement(grammarAccess.getFieldRule());
9589 }
9590 setWithLastConsumed(current, "crossReference", true, "refers");
9591
9592
9593 }
8462 9594
8463 if (current==null) {
8464 current = createModelElement(grammarAccess.getMemberDefinitionRule());
8465 }
8466 setWithLastConsumed(current, "containment", true, "contains");
8467
8468 9595
8469 } 9596 }
8470 9597
@@ -8474,21 +9601,21 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8474 9601
8475 } 9602 }
8476 9603
8477 // InternalSolverLanguageParser.g:3347:3: ( ( ruleQualifiedName ) ) 9604 // InternalSolverLanguageParser.g:3766:3: ( ( ruleQualifiedName ) )
8478 // InternalSolverLanguageParser.g:3348:4: ( ruleQualifiedName ) 9605 // InternalSolverLanguageParser.g:3767:4: ( ruleQualifiedName )
8479 { 9606 {
8480 // InternalSolverLanguageParser.g:3348:4: ( ruleQualifiedName ) 9607 // InternalSolverLanguageParser.g:3767:4: ( ruleQualifiedName )
8481 // InternalSolverLanguageParser.g:3349:5: ruleQualifiedName 9608 // InternalSolverLanguageParser.g:3768:5: ruleQualifiedName
8482 { 9609 {
8483 9610
8484 if (current==null) { 9611 if (current==null) {
8485 current = createModelElement(grammarAccess.getMemberDefinitionRule()); 9612 current = createModelElement(grammarAccess.getFieldRule());
8486 } 9613 }
8487 9614
8488 9615
8489 newCompositeNode(grammarAccess.getMemberDefinitionAccess().getTypeNamedElementCrossReference_1_0()); 9616 newCompositeNode(grammarAccess.getFieldAccess().getTypeSymbolCrossReference_1_0());
8490 9617
8491 pushFollow(FOLLOW_50); 9618 pushFollow(FOLLOW_54);
8492 ruleQualifiedName(); 9619 ruleQualifiedName();
8493 9620
8494 state._fsp--; 9621 state._fsp--;
@@ -8502,36 +9629,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8502 9629
8503 } 9630 }
8504 9631
8505 // InternalSolverLanguageParser.g:3363:3: ( (lv_multiplicity_2_0= ruleMultiplicity ) )? 9632 // InternalSolverLanguageParser.g:3782:3: ( (lv_multiplicity_3_0= ruleMultiplicity ) )?
8506 int alt40=2; 9633 int alt45=2;
8507 int LA40_0 = input.LA(1); 9634 int LA45_0 = input.LA(1);
8508 9635
8509 if ( (LA40_0==LeftSquareBracket) ) { 9636 if ( (LA45_0==LeftSquareBracket) ) {
8510 alt40=1; 9637 alt45=1;
8511 } 9638 }
8512 switch (alt40) { 9639 switch (alt45) {
8513 case 1 : 9640 case 1 :
8514 // InternalSolverLanguageParser.g:3364:4: (lv_multiplicity_2_0= ruleMultiplicity ) 9641 // InternalSolverLanguageParser.g:3783:4: (lv_multiplicity_3_0= ruleMultiplicity )
8515 { 9642 {
8516 // InternalSolverLanguageParser.g:3364:4: (lv_multiplicity_2_0= ruleMultiplicity ) 9643 // InternalSolverLanguageParser.g:3783:4: (lv_multiplicity_3_0= ruleMultiplicity )
8517 // InternalSolverLanguageParser.g:3365:5: lv_multiplicity_2_0= ruleMultiplicity 9644 // InternalSolverLanguageParser.g:3784:5: lv_multiplicity_3_0= ruleMultiplicity
8518 { 9645 {
8519 9646
8520 newCompositeNode(grammarAccess.getMemberDefinitionAccess().getMultiplicityMultiplicityParserRuleCall_2_0()); 9647 newCompositeNode(grammarAccess.getFieldAccess().getMultiplicityMultiplicityParserRuleCall_2_0());
8521 9648
8522 pushFollow(FOLLOW_20); 9649 pushFollow(FOLLOW_28);
8523 lv_multiplicity_2_0=ruleMultiplicity(); 9650 lv_multiplicity_3_0=ruleMultiplicity();
8524 9651
8525 state._fsp--; 9652 state._fsp--;
8526 9653
8527 9654
8528 if (current==null) { 9655 if (current==null) {
8529 current = createModelElementForParent(grammarAccess.getMemberDefinitionRule()); 9656 current = createModelElementForParent(grammarAccess.getFieldRule());
8530 } 9657 }
8531 set( 9658 set(
8532 current, 9659 current,
8533 "multiplicity", 9660 "multiplicity",
8534 lv_multiplicity_2_0, 9661 lv_multiplicity_3_0,
8535 "org.eclipse.viatra.solver.language.SolverLanguage.Multiplicity"); 9662 "org.eclipse.viatra.solver.language.SolverLanguage.Multiplicity");
8536 afterParserOrEnumRuleCall(); 9663 afterParserOrEnumRuleCall();
8537 9664
@@ -8544,24 +9671,24 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8544 9671
8545 } 9672 }
8546 9673
8547 // InternalSolverLanguageParser.g:3382:3: ( (lv_name_3_0= RULE_ID ) ) 9674 // InternalSolverLanguageParser.g:3801:3: ( (lv_name_4_0= RULE_ID ) )
8548 // InternalSolverLanguageParser.g:3383:4: (lv_name_3_0= RULE_ID ) 9675 // InternalSolverLanguageParser.g:3802:4: (lv_name_4_0= RULE_ID )
8549 { 9676 {
8550 // InternalSolverLanguageParser.g:3383:4: (lv_name_3_0= RULE_ID ) 9677 // InternalSolverLanguageParser.g:3802:4: (lv_name_4_0= RULE_ID )
8551 // InternalSolverLanguageParser.g:3384:5: lv_name_3_0= RULE_ID 9678 // InternalSolverLanguageParser.g:3803:5: lv_name_4_0= RULE_ID
8552 { 9679 {
8553 lv_name_3_0=(Token)match(input,RULE_ID,FOLLOW_51); 9680 lv_name_4_0=(Token)match(input,RULE_ID,FOLLOW_55);
8554 9681
8555 newLeafNode(lv_name_3_0, grammarAccess.getMemberDefinitionAccess().getNameIDTerminalRuleCall_3_0()); 9682 newLeafNode(lv_name_4_0, grammarAccess.getFieldAccess().getNameIDTerminalRuleCall_3_0());
8556 9683
8557 9684
8558 if (current==null) { 9685 if (current==null) {
8559 current = createModelElement(grammarAccess.getMemberDefinitionRule()); 9686 current = createModelElement(grammarAccess.getFieldRule());
8560 } 9687 }
8561 setWithLastConsumed( 9688 setWithLastConsumed(
8562 current, 9689 current,
8563 "name", 9690 "name",
8564 lv_name_3_0, 9691 lv_name_4_0,
8565 "org.eclipse.xtext.common.Terminals.ID"); 9692 "org.eclipse.xtext.common.Terminals.ID");
8566 9693
8567 9694
@@ -8570,36 +9697,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8570 9697
8571 } 9698 }
8572 9699
8573 // InternalSolverLanguageParser.g:3400:3: (otherlv_4= Opposite ( ( ruleQualifiedName ) ) )? 9700 // InternalSolverLanguageParser.g:3819:3: (otherlv_5= Opposite ( ( ruleQualifiedName ) ) )?
8574 int alt41=2; 9701 int alt46=2;
8575 int LA41_0 = input.LA(1); 9702 int LA46_0 = input.LA(1);
8576 9703
8577 if ( (LA41_0==Opposite) ) { 9704 if ( (LA46_0==Opposite) ) {
8578 alt41=1; 9705 alt46=1;
8579 } 9706 }
8580 switch (alt41) { 9707 switch (alt46) {
8581 case 1 : 9708 case 1 :
8582 // InternalSolverLanguageParser.g:3401:4: otherlv_4= Opposite ( ( ruleQualifiedName ) ) 9709 // InternalSolverLanguageParser.g:3820:4: otherlv_5= Opposite ( ( ruleQualifiedName ) )
8583 { 9710 {
8584 otherlv_4=(Token)match(input,Opposite,FOLLOW_8); 9711 otherlv_5=(Token)match(input,Opposite,FOLLOW_3);
8585 9712
8586 newLeafNode(otherlv_4, grammarAccess.getMemberDefinitionAccess().getOppositeKeyword_4_0()); 9713 newLeafNode(otherlv_5, grammarAccess.getFieldAccess().getOppositeKeyword_4_0());
8587 9714
8588 // InternalSolverLanguageParser.g:3405:4: ( ( ruleQualifiedName ) ) 9715 // InternalSolverLanguageParser.g:3824:4: ( ( ruleQualifiedName ) )
8589 // InternalSolverLanguageParser.g:3406:5: ( ruleQualifiedName ) 9716 // InternalSolverLanguageParser.g:3825:5: ( ruleQualifiedName )
8590 { 9717 {
8591 // InternalSolverLanguageParser.g:3406:5: ( ruleQualifiedName ) 9718 // InternalSolverLanguageParser.g:3825:5: ( ruleQualifiedName )
8592 // InternalSolverLanguageParser.g:3407:6: ruleQualifiedName 9719 // InternalSolverLanguageParser.g:3826:6: ruleQualifiedName
8593 { 9720 {
8594 9721
8595 if (current==null) { 9722 if (current==null) {
8596 current = createModelElement(grammarAccess.getMemberDefinitionRule()); 9723 current = createModelElement(grammarAccess.getFieldRule());
8597 } 9724 }
8598 9725
8599 9726
8600 newCompositeNode(grammarAccess.getMemberDefinitionAccess().getOppositeNamedElementCrossReference_4_1_0()); 9727 newCompositeNode(grammarAccess.getFieldAccess().getOppositeSymbolCrossReference_4_1_0());
8601 9728
8602 pushFollow(FOLLOW_26); 9729 pushFollow(FOLLOW_31);
8603 ruleQualifiedName(); 9730 ruleQualifiedName();
8604 9731
8605 state._fsp--; 9732 state._fsp--;
@@ -8619,20 +9746,20 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8619 9746
8620 } 9747 }
8621 9748
8622 // InternalSolverLanguageParser.g:3422:3: (otherlv_6= Semicolon )? 9749 // InternalSolverLanguageParser.g:3841:3: (otherlv_7= Semicolon )?
8623 int alt42=2; 9750 int alt47=2;
8624 int LA42_0 = input.LA(1); 9751 int LA47_0 = input.LA(1);
8625 9752
8626 if ( (LA42_0==Semicolon) ) { 9753 if ( (LA47_0==Semicolon) ) {
8627 alt42=1; 9754 alt47=1;
8628 } 9755 }
8629 switch (alt42) { 9756 switch (alt47) {
8630 case 1 : 9757 case 1 :
8631 // InternalSolverLanguageParser.g:3423:4: otherlv_6= Semicolon 9758 // InternalSolverLanguageParser.g:3842:4: otherlv_7= Semicolon
8632 { 9759 {
8633 otherlv_6=(Token)match(input,Semicolon,FOLLOW_2); 9760 otherlv_7=(Token)match(input,Semicolon,FOLLOW_2);
8634 9761
8635 newLeafNode(otherlv_6, grammarAccess.getMemberDefinitionAccess().getSemicolonKeyword_5()); 9762 newLeafNode(otherlv_7, grammarAccess.getFieldAccess().getSemicolonKeyword_5());
8636 9763
8637 9764
8638 } 9765 }
@@ -8659,11 +9786,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8659 } 9786 }
8660 return current; 9787 return current;
8661 } 9788 }
8662 // $ANTLR end "ruleMemberDefinition" 9789 // $ANTLR end "ruleField"
8663 9790
8664 9791
8665 // $ANTLR start "entryRuleMultiplicity" 9792 // $ANTLR start "entryRuleMultiplicity"
8666 // InternalSolverLanguageParser.g:3432:1: entryRuleMultiplicity returns [EObject current=null] : iv_ruleMultiplicity= ruleMultiplicity EOF ; 9793 // InternalSolverLanguageParser.g:3851:1: entryRuleMultiplicity returns [EObject current=null] : iv_ruleMultiplicity= ruleMultiplicity EOF ;
8667 public final EObject entryRuleMultiplicity() throws RecognitionException { 9794 public final EObject entryRuleMultiplicity() throws RecognitionException {
8668 EObject current = null; 9795 EObject current = null;
8669 9796
@@ -8671,8 +9798,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8671 9798
8672 9799
8673 try { 9800 try {
8674 // InternalSolverLanguageParser.g:3432:53: (iv_ruleMultiplicity= ruleMultiplicity EOF ) 9801 // InternalSolverLanguageParser.g:3851:53: (iv_ruleMultiplicity= ruleMultiplicity EOF )
8675 // InternalSolverLanguageParser.g:3433:2: iv_ruleMultiplicity= ruleMultiplicity EOF 9802 // InternalSolverLanguageParser.g:3852:2: iv_ruleMultiplicity= ruleMultiplicity EOF
8676 { 9803 {
8677 newCompositeNode(grammarAccess.getMultiplicityRule()); 9804 newCompositeNode(grammarAccess.getMultiplicityRule());
8678 pushFollow(FOLLOW_1); 9805 pushFollow(FOLLOW_1);
@@ -8699,11 +9826,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8699 9826
8700 9827
8701 // $ANTLR start "ruleMultiplicity" 9828 // $ANTLR start "ruleMultiplicity"
8702 // InternalSolverLanguageParser.g:3439:1: ruleMultiplicity returns [EObject current=null] : (this_ManyMultiplicity_0= ruleManyMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity ) ; 9829 // InternalSolverLanguageParser.g:3858:1: ruleMultiplicity returns [EObject current=null] : (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity ) ;
8703 public final EObject ruleMultiplicity() throws RecognitionException { 9830 public final EObject ruleMultiplicity() throws RecognitionException {
8704 EObject current = null; 9831 EObject current = null;
8705 9832
8706 EObject this_ManyMultiplicity_0 = null; 9833 EObject this_UnboundedMultiplicity_0 = null;
8707 9834
8708 EObject this_ExactMultiplicity_1 = null; 9835 EObject this_ExactMultiplicity_1 = null;
8709 9836
@@ -8714,46 +9841,46 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8714 enterRule(); 9841 enterRule();
8715 9842
8716 try { 9843 try {
8717 // InternalSolverLanguageParser.g:3445:2: ( (this_ManyMultiplicity_0= ruleManyMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity ) ) 9844 // InternalSolverLanguageParser.g:3864:2: ( (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity ) )
8718 // InternalSolverLanguageParser.g:3446:2: (this_ManyMultiplicity_0= ruleManyMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity ) 9845 // InternalSolverLanguageParser.g:3865:2: (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity )
8719 { 9846 {
8720 // InternalSolverLanguageParser.g:3446:2: (this_ManyMultiplicity_0= ruleManyMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity ) 9847 // InternalSolverLanguageParser.g:3865:2: (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity )
8721 int alt43=3; 9848 int alt48=3;
8722 int LA43_0 = input.LA(1); 9849 int LA48_0 = input.LA(1);
8723 9850
8724 if ( (LA43_0==LeftSquareBracket) ) { 9851 if ( (LA48_0==LeftSquareBracket) ) {
8725 switch ( input.LA(2) ) { 9852 switch ( input.LA(2) ) {
8726 case RULE_INT: 9853 case RULE_INT:
8727 { 9854 {
8728 int LA43_2 = input.LA(3); 9855 int LA48_2 = input.LA(3);
8729 9856
8730 if ( (LA43_2==FullStopFullStop) ) { 9857 if ( (LA48_2==RightSquareBracket) ) {
8731 alt43=3; 9858 alt48=2;
8732 } 9859 }
8733 else if ( (LA43_2==RightSquareBracket) ) { 9860 else if ( (LA48_2==Comma) ) {
8734 alt43=2; 9861 alt48=3;
8735 } 9862 }
8736 else { 9863 else {
8737 NoViableAltException nvae = 9864 NoViableAltException nvae =
8738 new NoViableAltException("", 43, 2, input); 9865 new NoViableAltException("", 48, 2, input);
8739 9866
8740 throw nvae; 9867 throw nvae;
8741 } 9868 }
8742 } 9869 }
8743 break; 9870 break;
8744 case Asterisk: 9871 case RightSquareBracket:
8745 { 9872 {
8746 alt43=2; 9873 alt48=1;
8747 } 9874 }
8748 break; 9875 break;
8749 case RightSquareBracket: 9876 case Asterisk:
8750 { 9877 {
8751 alt43=1; 9878 alt48=2;
8752 } 9879 }
8753 break; 9880 break;
8754 default: 9881 default:
8755 NoViableAltException nvae = 9882 NoViableAltException nvae =
8756 new NoViableAltException("", 43, 1, input); 9883 new NoViableAltException("", 48, 1, input);
8757 9884
8758 throw nvae; 9885 throw nvae;
8759 } 9886 }
@@ -8761,31 +9888,31 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8761 } 9888 }
8762 else { 9889 else {
8763 NoViableAltException nvae = 9890 NoViableAltException nvae =
8764 new NoViableAltException("", 43, 0, input); 9891 new NoViableAltException("", 48, 0, input);
8765 9892
8766 throw nvae; 9893 throw nvae;
8767 } 9894 }
8768 switch (alt43) { 9895 switch (alt48) {
8769 case 1 : 9896 case 1 :
8770 // InternalSolverLanguageParser.g:3447:3: this_ManyMultiplicity_0= ruleManyMultiplicity 9897 // InternalSolverLanguageParser.g:3866:3: this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity
8771 { 9898 {
8772 9899
8773 newCompositeNode(grammarAccess.getMultiplicityAccess().getManyMultiplicityParserRuleCall_0()); 9900 newCompositeNode(grammarAccess.getMultiplicityAccess().getUnboundedMultiplicityParserRuleCall_0());
8774 9901
8775 pushFollow(FOLLOW_2); 9902 pushFollow(FOLLOW_2);
8776 this_ManyMultiplicity_0=ruleManyMultiplicity(); 9903 this_UnboundedMultiplicity_0=ruleUnboundedMultiplicity();
8777 9904
8778 state._fsp--; 9905 state._fsp--;
8779 9906
8780 9907
8781 current = this_ManyMultiplicity_0; 9908 current = this_UnboundedMultiplicity_0;
8782 afterParserOrEnumRuleCall(); 9909 afterParserOrEnumRuleCall();
8783 9910
8784 9911
8785 } 9912 }
8786 break; 9913 break;
8787 case 2 : 9914 case 2 :
8788 // InternalSolverLanguageParser.g:3456:3: this_ExactMultiplicity_1= ruleExactMultiplicity 9915 // InternalSolverLanguageParser.g:3875:3: this_ExactMultiplicity_1= ruleExactMultiplicity
8789 { 9916 {
8790 9917
8791 newCompositeNode(grammarAccess.getMultiplicityAccess().getExactMultiplicityParserRuleCall_1()); 9918 newCompositeNode(grammarAccess.getMultiplicityAccess().getExactMultiplicityParserRuleCall_1());
@@ -8803,7 +9930,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8803 } 9930 }
8804 break; 9931 break;
8805 case 3 : 9932 case 3 :
8806 // InternalSolverLanguageParser.g:3465:3: this_BoundedMultiplicity_2= ruleBoundedMultiplicity 9933 // InternalSolverLanguageParser.g:3884:3: this_BoundedMultiplicity_2= ruleBoundedMultiplicity
8807 { 9934 {
8808 9935
8809 newCompositeNode(grammarAccess.getMultiplicityAccess().getBoundedMultiplicityParserRuleCall_2()); 9936 newCompositeNode(grammarAccess.getMultiplicityAccess().getBoundedMultiplicityParserRuleCall_2());
@@ -8842,25 +9969,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8842 // $ANTLR end "ruleMultiplicity" 9969 // $ANTLR end "ruleMultiplicity"
8843 9970
8844 9971
8845 // $ANTLR start "entryRuleManyMultiplicity" 9972 // $ANTLR start "entryRuleUnboundedMultiplicity"
8846 // InternalSolverLanguageParser.g:3477:1: entryRuleManyMultiplicity returns [EObject current=null] : iv_ruleManyMultiplicity= ruleManyMultiplicity EOF ; 9973 // InternalSolverLanguageParser.g:3896:1: entryRuleUnboundedMultiplicity returns [EObject current=null] : iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF ;
8847 public final EObject entryRuleManyMultiplicity() throws RecognitionException { 9974 public final EObject entryRuleUnboundedMultiplicity() throws RecognitionException {
8848 EObject current = null; 9975 EObject current = null;
8849 9976
8850 EObject iv_ruleManyMultiplicity = null; 9977 EObject iv_ruleUnboundedMultiplicity = null;
8851 9978
8852 9979
8853 try { 9980 try {
8854 // InternalSolverLanguageParser.g:3477:57: (iv_ruleManyMultiplicity= ruleManyMultiplicity EOF ) 9981 // InternalSolverLanguageParser.g:3896:62: (iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF )
8855 // InternalSolverLanguageParser.g:3478:2: iv_ruleManyMultiplicity= ruleManyMultiplicity EOF 9982 // InternalSolverLanguageParser.g:3897:2: iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF
8856 { 9983 {
8857 newCompositeNode(grammarAccess.getManyMultiplicityRule()); 9984 newCompositeNode(grammarAccess.getUnboundedMultiplicityRule());
8858 pushFollow(FOLLOW_1); 9985 pushFollow(FOLLOW_1);
8859 iv_ruleManyMultiplicity=ruleManyMultiplicity(); 9986 iv_ruleUnboundedMultiplicity=ruleUnboundedMultiplicity();
8860 9987
8861 state._fsp--; 9988 state._fsp--;
8862 9989
8863 current =iv_ruleManyMultiplicity; 9990 current =iv_ruleUnboundedMultiplicity;
8864 match(input,EOF,FOLLOW_2); 9991 match(input,EOF,FOLLOW_2);
8865 9992
8866 } 9993 }
@@ -8875,12 +10002,12 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8875 } 10002 }
8876 return current; 10003 return current;
8877 } 10004 }
8878 // $ANTLR end "entryRuleManyMultiplicity" 10005 // $ANTLR end "entryRuleUnboundedMultiplicity"
8879 10006
8880 10007
8881 // $ANTLR start "ruleManyMultiplicity" 10008 // $ANTLR start "ruleUnboundedMultiplicity"
8882 // InternalSolverLanguageParser.g:3484:1: ruleManyMultiplicity returns [EObject current=null] : ( () otherlv_1= LeftSquareBracket otherlv_2= RightSquareBracket ) ; 10009 // InternalSolverLanguageParser.g:3903:1: ruleUnboundedMultiplicity returns [EObject current=null] : ( () otherlv_1= LeftSquareBracket otherlv_2= RightSquareBracket ) ;
8883 public final EObject ruleManyMultiplicity() throws RecognitionException { 10010 public final EObject ruleUnboundedMultiplicity() throws RecognitionException {
8884 EObject current = null; 10011 EObject current = null;
8885 10012
8886 Token otherlv_1=null; 10013 Token otherlv_1=null;
@@ -8890,30 +10017,30 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8890 enterRule(); 10017 enterRule();
8891 10018
8892 try { 10019 try {
8893 // InternalSolverLanguageParser.g:3490:2: ( ( () otherlv_1= LeftSquareBracket otherlv_2= RightSquareBracket ) ) 10020 // InternalSolverLanguageParser.g:3909:2: ( ( () otherlv_1= LeftSquareBracket otherlv_2= RightSquareBracket ) )
8894 // InternalSolverLanguageParser.g:3491:2: ( () otherlv_1= LeftSquareBracket otherlv_2= RightSquareBracket ) 10021 // InternalSolverLanguageParser.g:3910:2: ( () otherlv_1= LeftSquareBracket otherlv_2= RightSquareBracket )
8895 { 10022 {
8896 // InternalSolverLanguageParser.g:3491:2: ( () otherlv_1= LeftSquareBracket otherlv_2= RightSquareBracket ) 10023 // InternalSolverLanguageParser.g:3910:2: ( () otherlv_1= LeftSquareBracket otherlv_2= RightSquareBracket )
8897 // InternalSolverLanguageParser.g:3492:3: () otherlv_1= LeftSquareBracket otherlv_2= RightSquareBracket 10024 // InternalSolverLanguageParser.g:3911:3: () otherlv_1= LeftSquareBracket otherlv_2= RightSquareBracket
8898 { 10025 {
8899 // InternalSolverLanguageParser.g:3492:3: () 10026 // InternalSolverLanguageParser.g:3911:3: ()
8900 // InternalSolverLanguageParser.g:3493:4: 10027 // InternalSolverLanguageParser.g:3912:4:
8901 { 10028 {
8902 10029
8903 current = forceCreateModelElement( 10030 current = forceCreateModelElement(
8904 grammarAccess.getManyMultiplicityAccess().getManyMultiplicityAction_0(), 10031 grammarAccess.getUnboundedMultiplicityAccess().getUnboundedMultiplicityAction_0(),
8905 current); 10032 current);
8906 10033
8907 10034
8908 } 10035 }
8909 10036
8910 otherlv_1=(Token)match(input,LeftSquareBracket,FOLLOW_45); 10037 otherlv_1=(Token)match(input,LeftSquareBracket,FOLLOW_49);
8911 10038
8912 newLeafNode(otherlv_1, grammarAccess.getManyMultiplicityAccess().getLeftSquareBracketKeyword_1()); 10039 newLeafNode(otherlv_1, grammarAccess.getUnboundedMultiplicityAccess().getLeftSquareBracketKeyword_1());
8913 10040
8914 otherlv_2=(Token)match(input,RightSquareBracket,FOLLOW_2); 10041 otherlv_2=(Token)match(input,RightSquareBracket,FOLLOW_2);
8915 10042
8916 newLeafNode(otherlv_2, grammarAccess.getManyMultiplicityAccess().getRightSquareBracketKeyword_2()); 10043 newLeafNode(otherlv_2, grammarAccess.getUnboundedMultiplicityAccess().getRightSquareBracketKeyword_2());
8917 10044
8918 10045
8919 } 10046 }
@@ -8934,11 +10061,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8934 } 10061 }
8935 return current; 10062 return current;
8936 } 10063 }
8937 // $ANTLR end "ruleManyMultiplicity" 10064 // $ANTLR end "ruleUnboundedMultiplicity"
8938 10065
8939 10066
8940 // $ANTLR start "entryRuleExactMultiplicity" 10067 // $ANTLR start "entryRuleExactMultiplicity"
8941 // InternalSolverLanguageParser.g:3511:1: entryRuleExactMultiplicity returns [EObject current=null] : iv_ruleExactMultiplicity= ruleExactMultiplicity EOF ; 10068 // InternalSolverLanguageParser.g:3930:1: entryRuleExactMultiplicity returns [EObject current=null] : iv_ruleExactMultiplicity= ruleExactMultiplicity EOF ;
8942 public final EObject entryRuleExactMultiplicity() throws RecognitionException { 10069 public final EObject entryRuleExactMultiplicity() throws RecognitionException {
8943 EObject current = null; 10070 EObject current = null;
8944 10071
@@ -8946,8 +10073,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8946 10073
8947 10074
8948 try { 10075 try {
8949 // InternalSolverLanguageParser.g:3511:58: (iv_ruleExactMultiplicity= ruleExactMultiplicity EOF ) 10076 // InternalSolverLanguageParser.g:3930:58: (iv_ruleExactMultiplicity= ruleExactMultiplicity EOF )
8950 // InternalSolverLanguageParser.g:3512:2: iv_ruleExactMultiplicity= ruleExactMultiplicity EOF 10077 // InternalSolverLanguageParser.g:3931:2: iv_ruleExactMultiplicity= ruleExactMultiplicity EOF
8951 { 10078 {
8952 newCompositeNode(grammarAccess.getExactMultiplicityRule()); 10079 newCompositeNode(grammarAccess.getExactMultiplicityRule());
8953 pushFollow(FOLLOW_1); 10080 pushFollow(FOLLOW_1);
@@ -8974,40 +10101,40 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
8974 10101
8975 10102
8976 // $ANTLR start "ruleExactMultiplicity" 10103 // $ANTLR start "ruleExactMultiplicity"
8977 // InternalSolverLanguageParser.g:3518:1: ruleExactMultiplicity returns [EObject current=null] : (otherlv_0= LeftSquareBracket ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) otherlv_2= RightSquareBracket ) ; 10104 // InternalSolverLanguageParser.g:3937:1: ruleExactMultiplicity returns [EObject current=null] : (otherlv_0= LeftSquareBracket ( (lv_value_1_0= ruleUpperMultiplicty ) ) otherlv_2= RightSquareBracket ) ;
8978 public final EObject ruleExactMultiplicity() throws RecognitionException { 10105 public final EObject ruleExactMultiplicity() throws RecognitionException {
8979 EObject current = null; 10106 EObject current = null;
8980 10107
8981 Token otherlv_0=null; 10108 Token otherlv_0=null;
8982 Token otherlv_2=null; 10109 Token otherlv_2=null;
8983 AntlrDatatypeRuleToken lv_multiplicity_1_0 = null; 10110 AntlrDatatypeRuleToken lv_value_1_0 = null;
8984 10111
8985 10112
8986 10113
8987 enterRule(); 10114 enterRule();
8988 10115
8989 try { 10116 try {
8990 // InternalSolverLanguageParser.g:3524:2: ( (otherlv_0= LeftSquareBracket ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) otherlv_2= RightSquareBracket ) ) 10117 // InternalSolverLanguageParser.g:3943:2: ( (otherlv_0= LeftSquareBracket ( (lv_value_1_0= ruleUpperMultiplicty ) ) otherlv_2= RightSquareBracket ) )
8991 // InternalSolverLanguageParser.g:3525:2: (otherlv_0= LeftSquareBracket ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) otherlv_2= RightSquareBracket ) 10118 // InternalSolverLanguageParser.g:3944:2: (otherlv_0= LeftSquareBracket ( (lv_value_1_0= ruleUpperMultiplicty ) ) otherlv_2= RightSquareBracket )
8992 { 10119 {
8993 // InternalSolverLanguageParser.g:3525:2: (otherlv_0= LeftSquareBracket ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) otherlv_2= RightSquareBracket ) 10120 // InternalSolverLanguageParser.g:3944:2: (otherlv_0= LeftSquareBracket ( (lv_value_1_0= ruleUpperMultiplicty ) ) otherlv_2= RightSquareBracket )
8994 // InternalSolverLanguageParser.g:3526:3: otherlv_0= LeftSquareBracket ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) otherlv_2= RightSquareBracket 10121 // InternalSolverLanguageParser.g:3945:3: otherlv_0= LeftSquareBracket ( (lv_value_1_0= ruleUpperMultiplicty ) ) otherlv_2= RightSquareBracket
8995 { 10122 {
8996 otherlv_0=(Token)match(input,LeftSquareBracket,FOLLOW_52); 10123 otherlv_0=(Token)match(input,LeftSquareBracket,FOLLOW_56);
8997 10124
8998 newLeafNode(otherlv_0, grammarAccess.getExactMultiplicityAccess().getLeftSquareBracketKeyword_0()); 10125 newLeafNode(otherlv_0, grammarAccess.getExactMultiplicityAccess().getLeftSquareBracketKeyword_0());
8999 10126
9000 // InternalSolverLanguageParser.g:3530:3: ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) 10127 // InternalSolverLanguageParser.g:3949:3: ( (lv_value_1_0= ruleUpperMultiplicty ) )
9001 // InternalSolverLanguageParser.g:3531:4: (lv_multiplicity_1_0= ruleUpperMultiplicty ) 10128 // InternalSolverLanguageParser.g:3950:4: (lv_value_1_0= ruleUpperMultiplicty )
9002 { 10129 {
9003 // InternalSolverLanguageParser.g:3531:4: (lv_multiplicity_1_0= ruleUpperMultiplicty ) 10130 // InternalSolverLanguageParser.g:3950:4: (lv_value_1_0= ruleUpperMultiplicty )
9004 // InternalSolverLanguageParser.g:3532:5: lv_multiplicity_1_0= ruleUpperMultiplicty 10131 // InternalSolverLanguageParser.g:3951:5: lv_value_1_0= ruleUpperMultiplicty
9005 { 10132 {
9006 10133
9007 newCompositeNode(grammarAccess.getExactMultiplicityAccess().getMultiplicityUpperMultiplictyParserRuleCall_1_0()); 10134 newCompositeNode(grammarAccess.getExactMultiplicityAccess().getValueUpperMultiplictyParserRuleCall_1_0());
9008 10135
9009 pushFollow(FOLLOW_45); 10136 pushFollow(FOLLOW_49);
9010 lv_multiplicity_1_0=ruleUpperMultiplicty(); 10137 lv_value_1_0=ruleUpperMultiplicty();
9011 10138
9012 state._fsp--; 10139 state._fsp--;
9013 10140
@@ -9017,8 +10144,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9017 } 10144 }
9018 set( 10145 set(
9019 current, 10146 current,
9020 "multiplicity", 10147 "value",
9021 lv_multiplicity_1_0, 10148 lv_value_1_0,
9022 "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty"); 10149 "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty");
9023 afterParserOrEnumRuleCall(); 10150 afterParserOrEnumRuleCall();
9024 10151
@@ -9055,7 +10182,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9055 10182
9056 10183
9057 // $ANTLR start "entryRuleBoundedMultiplicity" 10184 // $ANTLR start "entryRuleBoundedMultiplicity"
9058 // InternalSolverLanguageParser.g:3557:1: entryRuleBoundedMultiplicity returns [EObject current=null] : iv_ruleBoundedMultiplicity= ruleBoundedMultiplicity EOF ; 10185 // InternalSolverLanguageParser.g:3976:1: entryRuleBoundedMultiplicity returns [EObject current=null] : iv_ruleBoundedMultiplicity= ruleBoundedMultiplicity EOF ;
9059 public final EObject entryRuleBoundedMultiplicity() throws RecognitionException { 10186 public final EObject entryRuleBoundedMultiplicity() throws RecognitionException {
9060 EObject current = null; 10187 EObject current = null;
9061 10188
@@ -9063,8 +10190,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9063 10190
9064 10191
9065 try { 10192 try {
9066 // InternalSolverLanguageParser.g:3557:60: (iv_ruleBoundedMultiplicity= ruleBoundedMultiplicity EOF ) 10193 // InternalSolverLanguageParser.g:3976:60: (iv_ruleBoundedMultiplicity= ruleBoundedMultiplicity EOF )
9067 // InternalSolverLanguageParser.g:3558:2: iv_ruleBoundedMultiplicity= ruleBoundedMultiplicity EOF 10194 // InternalSolverLanguageParser.g:3977:2: iv_ruleBoundedMultiplicity= ruleBoundedMultiplicity EOF
9068 { 10195 {
9069 newCompositeNode(grammarAccess.getBoundedMultiplicityRule()); 10196 newCompositeNode(grammarAccess.getBoundedMultiplicityRule());
9070 pushFollow(FOLLOW_1); 10197 pushFollow(FOLLOW_1);
@@ -9091,7 +10218,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9091 10218
9092 10219
9093 // $ANTLR start "ruleBoundedMultiplicity" 10220 // $ANTLR start "ruleBoundedMultiplicity"
9094 // InternalSolverLanguageParser.g:3564:1: ruleBoundedMultiplicity returns [EObject current=null] : (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= FullStopFullStop ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= RightSquareBracket ) ; 10221 // InternalSolverLanguageParser.g:3983:1: ruleBoundedMultiplicity returns [EObject current=null] : (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= Comma ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= RightSquareBracket ) ;
9095 public final EObject ruleBoundedMultiplicity() throws RecognitionException { 10222 public final EObject ruleBoundedMultiplicity() throws RecognitionException {
9096 EObject current = null; 10223 EObject current = null;
9097 10224
@@ -9106,23 +10233,23 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9106 enterRule(); 10233 enterRule();
9107 10234
9108 try { 10235 try {
9109 // InternalSolverLanguageParser.g:3570:2: ( (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= FullStopFullStop ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= RightSquareBracket ) ) 10236 // InternalSolverLanguageParser.g:3989:2: ( (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= Comma ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= RightSquareBracket ) )
9110 // InternalSolverLanguageParser.g:3571:2: (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= FullStopFullStop ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= RightSquareBracket ) 10237 // InternalSolverLanguageParser.g:3990:2: (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= Comma ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= RightSquareBracket )
9111 { 10238 {
9112 // InternalSolverLanguageParser.g:3571:2: (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= FullStopFullStop ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= RightSquareBracket ) 10239 // InternalSolverLanguageParser.g:3990:2: (otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= Comma ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= RightSquareBracket )
9113 // InternalSolverLanguageParser.g:3572:3: otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= FullStopFullStop ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= RightSquareBracket 10240 // InternalSolverLanguageParser.g:3991:3: otherlv_0= LeftSquareBracket ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= Comma ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= RightSquareBracket
9114 { 10241 {
9115 otherlv_0=(Token)match(input,LeftSquareBracket,FOLLOW_53); 10242 otherlv_0=(Token)match(input,LeftSquareBracket,FOLLOW_57);
9116 10243
9117 newLeafNode(otherlv_0, grammarAccess.getBoundedMultiplicityAccess().getLeftSquareBracketKeyword_0()); 10244 newLeafNode(otherlv_0, grammarAccess.getBoundedMultiplicityAccess().getLeftSquareBracketKeyword_0());
9118 10245
9119 // InternalSolverLanguageParser.g:3576:3: ( (lv_lowerBound_1_0= RULE_INT ) ) 10246 // InternalSolverLanguageParser.g:3995:3: ( (lv_lowerBound_1_0= RULE_INT ) )
9120 // InternalSolverLanguageParser.g:3577:4: (lv_lowerBound_1_0= RULE_INT ) 10247 // InternalSolverLanguageParser.g:3996:4: (lv_lowerBound_1_0= RULE_INT )
9121 { 10248 {
9122 // InternalSolverLanguageParser.g:3577:4: (lv_lowerBound_1_0= RULE_INT ) 10249 // InternalSolverLanguageParser.g:3996:4: (lv_lowerBound_1_0= RULE_INT )
9123 // InternalSolverLanguageParser.g:3578:5: lv_lowerBound_1_0= RULE_INT 10250 // InternalSolverLanguageParser.g:3997:5: lv_lowerBound_1_0= RULE_INT
9124 { 10251 {
9125 lv_lowerBound_1_0=(Token)match(input,RULE_INT,FOLLOW_44); 10252 lv_lowerBound_1_0=(Token)match(input,RULE_INT,FOLLOW_48);
9126 10253
9127 newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedMultiplicityAccess().getLowerBoundINTTerminalRuleCall_1_0()); 10254 newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedMultiplicityAccess().getLowerBoundINTTerminalRuleCall_1_0());
9128 10255
@@ -9142,20 +10269,20 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9142 10269
9143 } 10270 }
9144 10271
9145 otherlv_2=(Token)match(input,FullStopFullStop,FOLLOW_52); 10272 otherlv_2=(Token)match(input,Comma,FOLLOW_56);
9146 10273
9147 newLeafNode(otherlv_2, grammarAccess.getBoundedMultiplicityAccess().getFullStopFullStopKeyword_2()); 10274 newLeafNode(otherlv_2, grammarAccess.getBoundedMultiplicityAccess().getCommaKeyword_2());
9148 10275
9149 // InternalSolverLanguageParser.g:3598:3: ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) 10276 // InternalSolverLanguageParser.g:4017:3: ( (lv_upperBound_3_0= ruleUpperMultiplicty ) )
9150 // InternalSolverLanguageParser.g:3599:4: (lv_upperBound_3_0= ruleUpperMultiplicty ) 10277 // InternalSolverLanguageParser.g:4018:4: (lv_upperBound_3_0= ruleUpperMultiplicty )
9151 { 10278 {
9152 // InternalSolverLanguageParser.g:3599:4: (lv_upperBound_3_0= ruleUpperMultiplicty ) 10279 // InternalSolverLanguageParser.g:4018:4: (lv_upperBound_3_0= ruleUpperMultiplicty )
9153 // InternalSolverLanguageParser.g:3600:5: lv_upperBound_3_0= ruleUpperMultiplicty 10280 // InternalSolverLanguageParser.g:4019:5: lv_upperBound_3_0= ruleUpperMultiplicty
9154 { 10281 {
9155 10282
9156 newCompositeNode(grammarAccess.getBoundedMultiplicityAccess().getUpperBoundUpperMultiplictyParserRuleCall_3_0()); 10283 newCompositeNode(grammarAccess.getBoundedMultiplicityAccess().getUpperBoundUpperMultiplictyParserRuleCall_3_0());
9157 10284
9158 pushFollow(FOLLOW_45); 10285 pushFollow(FOLLOW_49);
9159 lv_upperBound_3_0=ruleUpperMultiplicty(); 10286 lv_upperBound_3_0=ruleUpperMultiplicty();
9160 10287
9161 state._fsp--; 10288 state._fsp--;
@@ -9203,25 +10330,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9203 // $ANTLR end "ruleBoundedMultiplicity" 10330 // $ANTLR end "ruleBoundedMultiplicity"
9204 10331
9205 10332
9206 // $ANTLR start "entryRuleScopeDefinition" 10333 // $ANTLR start "entryRuleEnumDeclaration"
9207 // InternalSolverLanguageParser.g:3625:1: entryRuleScopeDefinition returns [EObject current=null] : iv_ruleScopeDefinition= ruleScopeDefinition EOF ; 10334 // InternalSolverLanguageParser.g:4044:1: entryRuleEnumDeclaration returns [EObject current=null] : iv_ruleEnumDeclaration= ruleEnumDeclaration EOF ;
9208 public final EObject entryRuleScopeDefinition() throws RecognitionException { 10335 public final EObject entryRuleEnumDeclaration() throws RecognitionException {
9209 EObject current = null; 10336 EObject current = null;
9210 10337
9211 EObject iv_ruleScopeDefinition = null; 10338 EObject iv_ruleEnumDeclaration = null;
9212 10339
9213 10340
9214 try { 10341 try {
9215 // InternalSolverLanguageParser.g:3625:56: (iv_ruleScopeDefinition= ruleScopeDefinition EOF ) 10342 // InternalSolverLanguageParser.g:4044:56: (iv_ruleEnumDeclaration= ruleEnumDeclaration EOF )
9216 // InternalSolverLanguageParser.g:3626:2: iv_ruleScopeDefinition= ruleScopeDefinition EOF 10343 // InternalSolverLanguageParser.g:4045:2: iv_ruleEnumDeclaration= ruleEnumDeclaration EOF
9217 { 10344 {
9218 newCompositeNode(grammarAccess.getScopeDefinitionRule()); 10345 newCompositeNode(grammarAccess.getEnumDeclarationRule());
9219 pushFollow(FOLLOW_1); 10346 pushFollow(FOLLOW_1);
9220 iv_ruleScopeDefinition=ruleScopeDefinition(); 10347 iv_ruleEnumDeclaration=ruleEnumDeclaration();
9221 10348
9222 state._fsp--; 10349 state._fsp--;
9223 10350
9224 current =iv_ruleScopeDefinition; 10351 current =iv_ruleEnumDeclaration;
9225 match(input,EOF,FOLLOW_2); 10352 match(input,EOF,FOLLOW_2);
9226 10353
9227 } 10354 }
@@ -9236,81 +10363,464 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9236 } 10363 }
9237 return current; 10364 return current;
9238 } 10365 }
9239 // $ANTLR end "entryRuleScopeDefinition" 10366 // $ANTLR end "entryRuleEnumDeclaration"
9240 10367
9241 10368
9242 // $ANTLR start "ruleScopeDefinition" 10369 // $ANTLR start "ruleEnumDeclaration"
9243 // InternalSolverLanguageParser.g:3632:1: ruleScopeDefinition returns [EObject current=null] : (this_ExactScopeDefinition_0= ruleExactScopeDefinition | this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition | this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition ) ; 10370 // InternalSolverLanguageParser.g:4051:1: ruleEnumDeclaration returns [EObject current=null] : (otherlv_0= Enum ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= LeftCurlyBracket ( ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* )? otherlv_6= RightCurlyBracket ) | this_FULL_STOP_7= RULE_FULL_STOP ) ) ;
9244 public final EObject ruleScopeDefinition() throws RecognitionException { 10371 public final EObject ruleEnumDeclaration() throws RecognitionException {
9245 EObject current = null; 10372 EObject current = null;
9246 10373
9247 EObject this_ExactScopeDefinition_0 = null; 10374 Token otherlv_0=null;
10375 Token lv_name_1_0=null;
10376 Token otherlv_2=null;
10377 Token otherlv_4=null;
10378 Token otherlv_6=null;
10379 Token this_FULL_STOP_7=null;
10380 EObject lv_literals_3_0 = null;
10381
10382 EObject lv_literals_5_0 = null;
10383
10384
10385
10386 enterRule();
10387
10388 try {
10389 // InternalSolverLanguageParser.g:4057:2: ( (otherlv_0= Enum ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= LeftCurlyBracket ( ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* )? otherlv_6= RightCurlyBracket ) | this_FULL_STOP_7= RULE_FULL_STOP ) ) )
10390 // InternalSolverLanguageParser.g:4058:2: (otherlv_0= Enum ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= LeftCurlyBracket ( ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* )? otherlv_6= RightCurlyBracket ) | this_FULL_STOP_7= RULE_FULL_STOP ) )
10391 {
10392 // InternalSolverLanguageParser.g:4058:2: (otherlv_0= Enum ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= LeftCurlyBracket ( ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* )? otherlv_6= RightCurlyBracket ) | this_FULL_STOP_7= RULE_FULL_STOP ) )
10393 // InternalSolverLanguageParser.g:4059:3: otherlv_0= Enum ( (lv_name_1_0= RULE_ID ) ) ( (otherlv_2= LeftCurlyBracket ( ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* )? otherlv_6= RightCurlyBracket ) | this_FULL_STOP_7= RULE_FULL_STOP )
10394 {
10395 otherlv_0=(Token)match(input,Enum,FOLLOW_28);
10396
10397 newLeafNode(otherlv_0, grammarAccess.getEnumDeclarationAccess().getEnumKeyword_0());
10398
10399 // InternalSolverLanguageParser.g:4063:3: ( (lv_name_1_0= RULE_ID ) )
10400 // InternalSolverLanguageParser.g:4064:4: (lv_name_1_0= RULE_ID )
10401 {
10402 // InternalSolverLanguageParser.g:4064:4: (lv_name_1_0= RULE_ID )
10403 // InternalSolverLanguageParser.g:4065:5: lv_name_1_0= RULE_ID
10404 {
10405 lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_58);
10406
10407 newLeafNode(lv_name_1_0, grammarAccess.getEnumDeclarationAccess().getNameIDTerminalRuleCall_1_0());
10408
10409
10410 if (current==null) {
10411 current = createModelElement(grammarAccess.getEnumDeclarationRule());
10412 }
10413 setWithLastConsumed(
10414 current,
10415 "name",
10416 lv_name_1_0,
10417 "org.eclipse.xtext.common.Terminals.ID");
10418
10419
10420 }
10421
10422
10423 }
10424
10425 // InternalSolverLanguageParser.g:4081:3: ( (otherlv_2= LeftCurlyBracket ( ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* )? otherlv_6= RightCurlyBracket ) | this_FULL_STOP_7= RULE_FULL_STOP )
10426 int alt52=2;
10427 int LA52_0 = input.LA(1);
10428
10429 if ( (LA52_0==LeftCurlyBracket) ) {
10430 alt52=1;
10431 }
10432 else if ( (LA52_0==RULE_FULL_STOP) ) {
10433 alt52=2;
10434 }
10435 else {
10436 NoViableAltException nvae =
10437 new NoViableAltException("", 52, 0, input);
10438
10439 throw nvae;
10440 }
10441 switch (alt52) {
10442 case 1 :
10443 // InternalSolverLanguageParser.g:4082:4: (otherlv_2= LeftCurlyBracket ( ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* )? otherlv_6= RightCurlyBracket )
10444 {
10445 // InternalSolverLanguageParser.g:4082:4: (otherlv_2= LeftCurlyBracket ( ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* )? otherlv_6= RightCurlyBracket )
10446 // InternalSolverLanguageParser.g:4083:5: otherlv_2= LeftCurlyBracket ( ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* )? otherlv_6= RightCurlyBracket
10447 {
10448 otherlv_2=(Token)match(input,LeftCurlyBracket,FOLLOW_59);
10449
10450 newLeafNode(otherlv_2, grammarAccess.getEnumDeclarationAccess().getLeftCurlyBracketKeyword_2_0_0());
10451
10452 // InternalSolverLanguageParser.g:4087:5: ( ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )* )?
10453 int alt51=2;
10454 int LA51_0 = input.LA(1);
10455
10456 if ( (LA51_0==RULE_ID) ) {
10457 alt51=1;
10458 }
10459 switch (alt51) {
10460 case 1 :
10461 // InternalSolverLanguageParser.g:4088:6: ( (lv_literals_3_0= ruleEnumLiteral ) ) ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )*
10462 {
10463 // InternalSolverLanguageParser.g:4088:6: ( (lv_literals_3_0= ruleEnumLiteral ) )
10464 // InternalSolverLanguageParser.g:4089:7: (lv_literals_3_0= ruleEnumLiteral )
10465 {
10466 // InternalSolverLanguageParser.g:4089:7: (lv_literals_3_0= ruleEnumLiteral )
10467 // InternalSolverLanguageParser.g:4090:8: lv_literals_3_0= ruleEnumLiteral
10468 {
10469
10470 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_0_0());
10471
10472 pushFollow(FOLLOW_60);
10473 lv_literals_3_0=ruleEnumLiteral();
9248 10474
9249 EObject this_BoundedScopeDefinition_1 = null; 10475 state._fsp--;
9250 10476
9251 EObject this_LowerBoundedScopeDefinition_2 = null; 10477
10478 if (current==null) {
10479 current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
10480 }
10481 add(
10482 current,
10483 "literals",
10484 lv_literals_3_0,
10485 "org.eclipse.viatra.solver.language.SolverLanguage.EnumLiteral");
10486 afterParserOrEnumRuleCall();
10487
10488
10489 }
10490
10491
10492 }
10493
10494 // InternalSolverLanguageParser.g:4107:6: ( (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) ) )*
10495 loop50:
10496 do {
10497 int alt50=2;
10498 int LA50_0 = input.LA(1);
10499
10500 if ( (LA50_0==Comma||LA50_0==RULE_ID) ) {
10501 alt50=1;
10502 }
10503
10504
10505 switch (alt50) {
10506 case 1 :
10507 // InternalSolverLanguageParser.g:4108:7: (otherlv_4= Comma )? ( (lv_literals_5_0= ruleEnumLiteral ) )
10508 {
10509 // InternalSolverLanguageParser.g:4108:7: (otherlv_4= Comma )?
10510 int alt49=2;
10511 int LA49_0 = input.LA(1);
10512
10513 if ( (LA49_0==Comma) ) {
10514 alt49=1;
10515 }
10516 switch (alt49) {
10517 case 1 :
10518 // InternalSolverLanguageParser.g:4109:8: otherlv_4= Comma
10519 {
10520 otherlv_4=(Token)match(input,Comma,FOLLOW_28);
10521
10522 newLeafNode(otherlv_4, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_1_0());
10523
10524
10525 }
10526 break;
10527
10528 }
10529
10530 // InternalSolverLanguageParser.g:4114:7: ( (lv_literals_5_0= ruleEnumLiteral ) )
10531 // InternalSolverLanguageParser.g:4115:8: (lv_literals_5_0= ruleEnumLiteral )
10532 {
10533 // InternalSolverLanguageParser.g:4115:8: (lv_literals_5_0= ruleEnumLiteral )
10534 // InternalSolverLanguageParser.g:4116:9: lv_literals_5_0= ruleEnumLiteral
10535 {
10536
10537 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0());
10538
10539 pushFollow(FOLLOW_60);
10540 lv_literals_5_0=ruleEnumLiteral();
10541
10542 state._fsp--;
10543
10544
10545 if (current==null) {
10546 current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
10547 }
10548 add(
10549 current,
10550 "literals",
10551 lv_literals_5_0,
10552 "org.eclipse.viatra.solver.language.SolverLanguage.EnumLiteral");
10553 afterParserOrEnumRuleCall();
10554
10555
10556 }
9252 10557
9253 10558
10559 }
10560
10561
10562 }
10563 break;
10564
10565 default :
10566 break loop50;
10567 }
10568 } while (true);
10569
10570
10571 }
10572 break;
10573
10574 }
10575
10576 otherlv_6=(Token)match(input,RightCurlyBracket,FOLLOW_2);
10577
10578 newLeafNode(otherlv_6, grammarAccess.getEnumDeclarationAccess().getRightCurlyBracketKeyword_2_0_2());
10579
10580
10581 }
10582
10583
10584 }
10585 break;
10586 case 2 :
10587 // InternalSolverLanguageParser.g:4141:4: this_FULL_STOP_7= RULE_FULL_STOP
10588 {
10589 this_FULL_STOP_7=(Token)match(input,RULE_FULL_STOP,FOLLOW_2);
10590
10591 newLeafNode(this_FULL_STOP_7, grammarAccess.getEnumDeclarationAccess().getFULL_STOPTerminalRuleCall_2_1());
10592
10593
10594 }
10595 break;
10596
10597 }
10598
10599
10600 }
10601
10602
10603 }
10604
10605
10606 leaveRule();
10607
10608 }
10609
10610 catch (RecognitionException re) {
10611 recover(input,re);
10612 appendSkippedTokens();
10613 }
10614 finally {
10615 }
10616 return current;
10617 }
10618 // $ANTLR end "ruleEnumDeclaration"
10619
10620
10621 // $ANTLR start "entryRuleEnumLiteral"
10622 // InternalSolverLanguageParser.g:4150:1: entryRuleEnumLiteral returns [EObject current=null] : iv_ruleEnumLiteral= ruleEnumLiteral EOF ;
10623 public final EObject entryRuleEnumLiteral() throws RecognitionException {
10624 EObject current = null;
10625
10626 EObject iv_ruleEnumLiteral = null;
10627
10628
10629 try {
10630 // InternalSolverLanguageParser.g:4150:52: (iv_ruleEnumLiteral= ruleEnumLiteral EOF )
10631 // InternalSolverLanguageParser.g:4151:2: iv_ruleEnumLiteral= ruleEnumLiteral EOF
10632 {
10633 newCompositeNode(grammarAccess.getEnumLiteralRule());
10634 pushFollow(FOLLOW_1);
10635 iv_ruleEnumLiteral=ruleEnumLiteral();
10636
10637 state._fsp--;
10638
10639 current =iv_ruleEnumLiteral;
10640 match(input,EOF,FOLLOW_2);
10641
10642 }
10643
10644 }
10645
10646 catch (RecognitionException re) {
10647 recover(input,re);
10648 appendSkippedTokens();
10649 }
10650 finally {
10651 }
10652 return current;
10653 }
10654 // $ANTLR end "entryRuleEnumLiteral"
10655
10656
10657 // $ANTLR start "ruleEnumLiteral"
10658 // InternalSolverLanguageParser.g:4157:1: ruleEnumLiteral returns [EObject current=null] : ( (lv_name_0_0= RULE_ID ) ) ;
10659 public final EObject ruleEnumLiteral() throws RecognitionException {
10660 EObject current = null;
10661
10662 Token lv_name_0_0=null;
10663
9254 10664
9255 enterRule(); 10665 enterRule();
9256 10666
9257 try { 10667 try {
9258 // InternalSolverLanguageParser.g:3638:2: ( (this_ExactScopeDefinition_0= ruleExactScopeDefinition | this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition | this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition ) ) 10668 // InternalSolverLanguageParser.g:4163:2: ( ( (lv_name_0_0= RULE_ID ) ) )
9259 // InternalSolverLanguageParser.g:3639:2: (this_ExactScopeDefinition_0= ruleExactScopeDefinition | this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition | this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition ) 10669 // InternalSolverLanguageParser.g:4164:2: ( (lv_name_0_0= RULE_ID ) )
9260 { 10670 {
9261 // InternalSolverLanguageParser.g:3639:2: (this_ExactScopeDefinition_0= ruleExactScopeDefinition | this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition | this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition ) 10671 // InternalSolverLanguageParser.g:4164:2: ( (lv_name_0_0= RULE_ID ) )
9262 int alt44=3; 10672 // InternalSolverLanguageParser.g:4165:3: (lv_name_0_0= RULE_ID )
9263 alt44 = dfa44.predict(input); 10673 {
9264 switch (alt44) { 10674 // InternalSolverLanguageParser.g:4165:3: (lv_name_0_0= RULE_ID )
10675 // InternalSolverLanguageParser.g:4166:4: lv_name_0_0= RULE_ID
10676 {
10677 lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_2);
10678
10679 newLeafNode(lv_name_0_0, grammarAccess.getEnumLiteralAccess().getNameIDTerminalRuleCall_0());
10680
10681
10682 if (current==null) {
10683 current = createModelElement(grammarAccess.getEnumLiteralRule());
10684 }
10685 setWithLastConsumed(
10686 current,
10687 "name",
10688 lv_name_0_0,
10689 "org.eclipse.xtext.common.Terminals.ID");
10690
10691
10692 }
10693
10694
10695 }
10696
10697
10698 }
10699
10700
10701 leaveRule();
10702
10703 }
10704
10705 catch (RecognitionException re) {
10706 recover(input,re);
10707 appendSkippedTokens();
10708 }
10709 finally {
10710 }
10711 return current;
10712 }
10713 // $ANTLR end "ruleEnumLiteral"
10714
10715
10716 // $ANTLR start "entryRuleScopeDeclaration"
10717 // InternalSolverLanguageParser.g:4185:1: entryRuleScopeDeclaration returns [EObject current=null] : iv_ruleScopeDeclaration= ruleScopeDeclaration EOF ;
10718 public final EObject entryRuleScopeDeclaration() throws RecognitionException {
10719 EObject current = null;
10720
10721 EObject iv_ruleScopeDeclaration = null;
10722
10723
10724 try {
10725 // InternalSolverLanguageParser.g:4185:57: (iv_ruleScopeDeclaration= ruleScopeDeclaration EOF )
10726 // InternalSolverLanguageParser.g:4186:2: iv_ruleScopeDeclaration= ruleScopeDeclaration EOF
10727 {
10728 newCompositeNode(grammarAccess.getScopeDeclarationRule());
10729 pushFollow(FOLLOW_1);
10730 iv_ruleScopeDeclaration=ruleScopeDeclaration();
10731
10732 state._fsp--;
10733
10734 current =iv_ruleScopeDeclaration;
10735 match(input,EOF,FOLLOW_2);
10736
10737 }
10738
10739 }
10740
10741 catch (RecognitionException re) {
10742 recover(input,re);
10743 appendSkippedTokens();
10744 }
10745 finally {
10746 }
10747 return current;
10748 }
10749 // $ANTLR end "entryRuleScopeDeclaration"
10750
10751
10752 // $ANTLR start "ruleScopeDeclaration"
10753 // InternalSolverLanguageParser.g:4192:1: ruleScopeDeclaration returns [EObject current=null] : (this_ExactScope_0= ruleExactScope | this_BoundedScope_1= ruleBoundedScope | this_LowerBoundedScope_2= ruleLowerBoundedScope ) ;
10754 public final EObject ruleScopeDeclaration() throws RecognitionException {
10755 EObject current = null;
10756
10757 EObject this_ExactScope_0 = null;
10758
10759 EObject this_BoundedScope_1 = null;
10760
10761 EObject this_LowerBoundedScope_2 = null;
10762
10763
10764
10765 enterRule();
10766
10767 try {
10768 // InternalSolverLanguageParser.g:4198:2: ( (this_ExactScope_0= ruleExactScope | this_BoundedScope_1= ruleBoundedScope | this_LowerBoundedScope_2= ruleLowerBoundedScope ) )
10769 // InternalSolverLanguageParser.g:4199:2: (this_ExactScope_0= ruleExactScope | this_BoundedScope_1= ruleBoundedScope | this_LowerBoundedScope_2= ruleLowerBoundedScope )
10770 {
10771 // InternalSolverLanguageParser.g:4199:2: (this_ExactScope_0= ruleExactScope | this_BoundedScope_1= ruleBoundedScope | this_LowerBoundedScope_2= ruleLowerBoundedScope )
10772 int alt53=3;
10773 alt53 = dfa53.predict(input);
10774 switch (alt53) {
9265 case 1 : 10775 case 1 :
9266 // InternalSolverLanguageParser.g:3640:3: this_ExactScopeDefinition_0= ruleExactScopeDefinition 10776 // InternalSolverLanguageParser.g:4200:3: this_ExactScope_0= ruleExactScope
9267 { 10777 {
9268 10778
9269 newCompositeNode(grammarAccess.getScopeDefinitionAccess().getExactScopeDefinitionParserRuleCall_0()); 10779 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getExactScopeParserRuleCall_0());
9270 10780
9271 pushFollow(FOLLOW_2); 10781 pushFollow(FOLLOW_2);
9272 this_ExactScopeDefinition_0=ruleExactScopeDefinition(); 10782 this_ExactScope_0=ruleExactScope();
9273 10783
9274 state._fsp--; 10784 state._fsp--;
9275 10785
9276 10786
9277 current = this_ExactScopeDefinition_0; 10787 current = this_ExactScope_0;
9278 afterParserOrEnumRuleCall(); 10788 afterParserOrEnumRuleCall();
9279 10789
9280 10790
9281 } 10791 }
9282 break; 10792 break;
9283 case 2 : 10793 case 2 :
9284 // InternalSolverLanguageParser.g:3649:3: this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition 10794 // InternalSolverLanguageParser.g:4209:3: this_BoundedScope_1= ruleBoundedScope
9285 { 10795 {
9286 10796
9287 newCompositeNode(grammarAccess.getScopeDefinitionAccess().getBoundedScopeDefinitionParserRuleCall_1()); 10797 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getBoundedScopeParserRuleCall_1());
9288 10798
9289 pushFollow(FOLLOW_2); 10799 pushFollow(FOLLOW_2);
9290 this_BoundedScopeDefinition_1=ruleBoundedScopeDefinition(); 10800 this_BoundedScope_1=ruleBoundedScope();
9291 10801
9292 state._fsp--; 10802 state._fsp--;
9293 10803
9294 10804
9295 current = this_BoundedScopeDefinition_1; 10805 current = this_BoundedScope_1;
9296 afterParserOrEnumRuleCall(); 10806 afterParserOrEnumRuleCall();
9297 10807
9298 10808
9299 } 10809 }
9300 break; 10810 break;
9301 case 3 : 10811 case 3 :
9302 // InternalSolverLanguageParser.g:3658:3: this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition 10812 // InternalSolverLanguageParser.g:4218:3: this_LowerBoundedScope_2= ruleLowerBoundedScope
9303 { 10813 {
9304 10814
9305 newCompositeNode(grammarAccess.getScopeDefinitionAccess().getLowerBoundedScopeDefinitionParserRuleCall_2()); 10815 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getLowerBoundedScopeParserRuleCall_2());
9306 10816
9307 pushFollow(FOLLOW_2); 10817 pushFollow(FOLLOW_2);
9308 this_LowerBoundedScopeDefinition_2=ruleLowerBoundedScopeDefinition(); 10818 this_LowerBoundedScope_2=ruleLowerBoundedScope();
9309 10819
9310 state._fsp--; 10820 state._fsp--;
9311 10821
9312 10822
9313 current = this_LowerBoundedScopeDefinition_2; 10823 current = this_LowerBoundedScope_2;
9314 afterParserOrEnumRuleCall(); 10824 afterParserOrEnumRuleCall();
9315 10825
9316 10826
@@ -9335,28 +10845,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9335 } 10845 }
9336 return current; 10846 return current;
9337 } 10847 }
9338 // $ANTLR end "ruleScopeDefinition" 10848 // $ANTLR end "ruleScopeDeclaration"
9339 10849
9340 10850
9341 // $ANTLR start "entryRuleExactScopeDefinition" 10851 // $ANTLR start "entryRuleExactScope"
9342 // InternalSolverLanguageParser.g:3670:1: entryRuleExactScopeDefinition returns [EObject current=null] : iv_ruleExactScopeDefinition= ruleExactScopeDefinition EOF ; 10852 // InternalSolverLanguageParser.g:4230:1: entryRuleExactScope returns [EObject current=null] : iv_ruleExactScope= ruleExactScope EOF ;
9343 public final EObject entryRuleExactScopeDefinition() throws RecognitionException { 10853 public final EObject entryRuleExactScope() throws RecognitionException {
9344 EObject current = null; 10854 EObject current = null;
9345 10855
9346 EObject iv_ruleExactScopeDefinition = null; 10856 EObject iv_ruleExactScope = null;
9347 10857
9348 10858
9349 try { 10859 try {
9350 // InternalSolverLanguageParser.g:3670:61: (iv_ruleExactScopeDefinition= ruleExactScopeDefinition EOF ) 10860 // InternalSolverLanguageParser.g:4230:51: (iv_ruleExactScope= ruleExactScope EOF )
9351 // InternalSolverLanguageParser.g:3671:2: iv_ruleExactScopeDefinition= ruleExactScopeDefinition EOF 10861 // InternalSolverLanguageParser.g:4231:2: iv_ruleExactScope= ruleExactScope EOF
9352 { 10862 {
9353 newCompositeNode(grammarAccess.getExactScopeDefinitionRule()); 10863 newCompositeNode(grammarAccess.getExactScopeRule());
9354 pushFollow(FOLLOW_1); 10864 pushFollow(FOLLOW_1);
9355 iv_ruleExactScopeDefinition=ruleExactScopeDefinition(); 10865 iv_ruleExactScope=ruleExactScope();
9356 10866
9357 state._fsp--; 10867 state._fsp--;
9358 10868
9359 current =iv_ruleExactScopeDefinition; 10869 current =iv_ruleExactScope;
9360 match(input,EOF,FOLLOW_2); 10870 match(input,EOF,FOLLOW_2);
9361 10871
9362 } 10872 }
@@ -9371,47 +10881,48 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9371 } 10881 }
9372 return current; 10882 return current;
9373 } 10883 }
9374 // $ANTLR end "entryRuleExactScopeDefinition" 10884 // $ANTLR end "entryRuleExactScope"
9375 10885
9376 10886
9377 // $ANTLR start "ruleExactScopeDefinition" 10887 // $ANTLR start "ruleExactScope"
9378 // InternalSolverLanguageParser.g:3677:1: ruleExactScopeDefinition returns [EObject current=null] : (otherlv_0= Scope ( ( ruleQualifiedName ) ) otherlv_2= EqualsSignEqualsSign ( (lv_exactScope_3_0= RULE_INT ) ) ) ; 10888 // InternalSolverLanguageParser.g:4237:1: ruleExactScope returns [EObject current=null] : (otherlv_0= Scope ( ( ruleQualifiedName ) ) otherlv_2= EqualsSignEqualsSign ( (lv_size_3_0= RULE_INT ) ) this_FULL_STOP_4= RULE_FULL_STOP ) ;
9379 public final EObject ruleExactScopeDefinition() throws RecognitionException { 10889 public final EObject ruleExactScope() throws RecognitionException {
9380 EObject current = null; 10890 EObject current = null;
9381 10891
9382 Token otherlv_0=null; 10892 Token otherlv_0=null;
9383 Token otherlv_2=null; 10893 Token otherlv_2=null;
9384 Token lv_exactScope_3_0=null; 10894 Token lv_size_3_0=null;
10895 Token this_FULL_STOP_4=null;
9385 10896
9386 10897
9387 enterRule(); 10898 enterRule();
9388 10899
9389 try { 10900 try {
9390 // InternalSolverLanguageParser.g:3683:2: ( (otherlv_0= Scope ( ( ruleQualifiedName ) ) otherlv_2= EqualsSignEqualsSign ( (lv_exactScope_3_0= RULE_INT ) ) ) ) 10901 // InternalSolverLanguageParser.g:4243:2: ( (otherlv_0= Scope ( ( ruleQualifiedName ) ) otherlv_2= EqualsSignEqualsSign ( (lv_size_3_0= RULE_INT ) ) this_FULL_STOP_4= RULE_FULL_STOP ) )
9391 // InternalSolverLanguageParser.g:3684:2: (otherlv_0= Scope ( ( ruleQualifiedName ) ) otherlv_2= EqualsSignEqualsSign ( (lv_exactScope_3_0= RULE_INT ) ) ) 10902 // InternalSolverLanguageParser.g:4244:2: (otherlv_0= Scope ( ( ruleQualifiedName ) ) otherlv_2= EqualsSignEqualsSign ( (lv_size_3_0= RULE_INT ) ) this_FULL_STOP_4= RULE_FULL_STOP )
9392 { 10903 {
9393 // InternalSolverLanguageParser.g:3684:2: (otherlv_0= Scope ( ( ruleQualifiedName ) ) otherlv_2= EqualsSignEqualsSign ( (lv_exactScope_3_0= RULE_INT ) ) ) 10904 // InternalSolverLanguageParser.g:4244:2: (otherlv_0= Scope ( ( ruleQualifiedName ) ) otherlv_2= EqualsSignEqualsSign ( (lv_size_3_0= RULE_INT ) ) this_FULL_STOP_4= RULE_FULL_STOP )
9394 // InternalSolverLanguageParser.g:3685:3: otherlv_0= Scope ( ( ruleQualifiedName ) ) otherlv_2= EqualsSignEqualsSign ( (lv_exactScope_3_0= RULE_INT ) ) 10905 // InternalSolverLanguageParser.g:4245:3: otherlv_0= Scope ( ( ruleQualifiedName ) ) otherlv_2= EqualsSignEqualsSign ( (lv_size_3_0= RULE_INT ) ) this_FULL_STOP_4= RULE_FULL_STOP
9395 { 10906 {
9396 otherlv_0=(Token)match(input,Scope,FOLLOW_8); 10907 otherlv_0=(Token)match(input,Scope,FOLLOW_3);
9397 10908
9398 newLeafNode(otherlv_0, grammarAccess.getExactScopeDefinitionAccess().getScopeKeyword_0()); 10909 newLeafNode(otherlv_0, grammarAccess.getExactScopeAccess().getScopeKeyword_0());
9399 10910
9400 // InternalSolverLanguageParser.g:3689:3: ( ( ruleQualifiedName ) ) 10911 // InternalSolverLanguageParser.g:4249:3: ( ( ruleQualifiedName ) )
9401 // InternalSolverLanguageParser.g:3690:4: ( ruleQualifiedName ) 10912 // InternalSolverLanguageParser.g:4250:4: ( ruleQualifiedName )
9402 { 10913 {
9403 // InternalSolverLanguageParser.g:3690:4: ( ruleQualifiedName ) 10914 // InternalSolverLanguageParser.g:4250:4: ( ruleQualifiedName )
9404 // InternalSolverLanguageParser.g:3691:5: ruleQualifiedName 10915 // InternalSolverLanguageParser.g:4251:5: ruleQualifiedName
9405 { 10916 {
9406 10917
9407 if (current==null) { 10918 if (current==null) {
9408 current = createModelElement(grammarAccess.getExactScopeDefinitionRule()); 10919 current = createModelElement(grammarAccess.getExactScopeRule());
9409 } 10920 }
9410 10921
9411 10922
9412 newCompositeNode(grammarAccess.getExactScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0()); 10923 newCompositeNode(grammarAccess.getExactScopeAccess().getTypeSymbolCrossReference_1_0());
9413 10924
9414 pushFollow(FOLLOW_54); 10925 pushFollow(FOLLOW_61);
9415 ruleQualifiedName(); 10926 ruleQualifiedName();
9416 10927
9417 state._fsp--; 10928 state._fsp--;
@@ -9425,28 +10936,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9425 10936
9426 } 10937 }
9427 10938
9428 otherlv_2=(Token)match(input,EqualsSignEqualsSign,FOLLOW_53); 10939 otherlv_2=(Token)match(input,EqualsSignEqualsSign,FOLLOW_57);
9429 10940
9430 newLeafNode(otherlv_2, grammarAccess.getExactScopeDefinitionAccess().getEqualsSignEqualsSignKeyword_2()); 10941 newLeafNode(otherlv_2, grammarAccess.getExactScopeAccess().getEqualsSignEqualsSignKeyword_2());
9431 10942
9432 // InternalSolverLanguageParser.g:3709:3: ( (lv_exactScope_3_0= RULE_INT ) ) 10943 // InternalSolverLanguageParser.g:4269:3: ( (lv_size_3_0= RULE_INT ) )
9433 // InternalSolverLanguageParser.g:3710:4: (lv_exactScope_3_0= RULE_INT ) 10944 // InternalSolverLanguageParser.g:4270:4: (lv_size_3_0= RULE_INT )
9434 { 10945 {
9435 // InternalSolverLanguageParser.g:3710:4: (lv_exactScope_3_0= RULE_INT ) 10946 // InternalSolverLanguageParser.g:4270:4: (lv_size_3_0= RULE_INT )
9436 // InternalSolverLanguageParser.g:3711:5: lv_exactScope_3_0= RULE_INT 10947 // InternalSolverLanguageParser.g:4271:5: lv_size_3_0= RULE_INT
9437 { 10948 {
9438 lv_exactScope_3_0=(Token)match(input,RULE_INT,FOLLOW_2); 10949 lv_size_3_0=(Token)match(input,RULE_INT,FOLLOW_4);
9439 10950
9440 newLeafNode(lv_exactScope_3_0, grammarAccess.getExactScopeDefinitionAccess().getExactScopeINTTerminalRuleCall_3_0()); 10951 newLeafNode(lv_size_3_0, grammarAccess.getExactScopeAccess().getSizeINTTerminalRuleCall_3_0());
9441 10952
9442 10953
9443 if (current==null) { 10954 if (current==null) {
9444 current = createModelElement(grammarAccess.getExactScopeDefinitionRule()); 10955 current = createModelElement(grammarAccess.getExactScopeRule());
9445 } 10956 }
9446 setWithLastConsumed( 10957 setWithLastConsumed(
9447 current, 10958 current,
9448 "exactScope", 10959 "size",
9449 lv_exactScope_3_0, 10960 lv_size_3_0,
9450 "org.eclipse.xtext.common.Terminals.INT"); 10961 "org.eclipse.xtext.common.Terminals.INT");
9451 10962
9452 10963
@@ -9455,6 +10966,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9455 10966
9456 } 10967 }
9457 10968
10969 this_FULL_STOP_4=(Token)match(input,RULE_FULL_STOP,FOLLOW_2);
10970
10971 newLeafNode(this_FULL_STOP_4, grammarAccess.getExactScopeAccess().getFULL_STOPTerminalRuleCall_4());
10972
9458 10973
9459 } 10974 }
9460 10975
@@ -9474,28 +10989,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9474 } 10989 }
9475 return current; 10990 return current;
9476 } 10991 }
9477 // $ANTLR end "ruleExactScopeDefinition" 10992 // $ANTLR end "ruleExactScope"
9478 10993
9479 10994
9480 // $ANTLR start "entryRuleBoundedScopeDefinition" 10995 // $ANTLR start "entryRuleBoundedScope"
9481 // InternalSolverLanguageParser.g:3731:1: entryRuleBoundedScopeDefinition returns [EObject current=null] : iv_ruleBoundedScopeDefinition= ruleBoundedScopeDefinition EOF ; 10996 // InternalSolverLanguageParser.g:4295:1: entryRuleBoundedScope returns [EObject current=null] : iv_ruleBoundedScope= ruleBoundedScope EOF ;
9482 public final EObject entryRuleBoundedScopeDefinition() throws RecognitionException { 10997 public final EObject entryRuleBoundedScope() throws RecognitionException {
9483 EObject current = null; 10998 EObject current = null;
9484 10999
9485 EObject iv_ruleBoundedScopeDefinition = null; 11000 EObject iv_ruleBoundedScope = null;
9486 11001
9487 11002
9488 try { 11003 try {
9489 // InternalSolverLanguageParser.g:3731:63: (iv_ruleBoundedScopeDefinition= ruleBoundedScopeDefinition EOF ) 11004 // InternalSolverLanguageParser.g:4295:53: (iv_ruleBoundedScope= ruleBoundedScope EOF )
9490 // InternalSolverLanguageParser.g:3732:2: iv_ruleBoundedScopeDefinition= ruleBoundedScopeDefinition EOF 11005 // InternalSolverLanguageParser.g:4296:2: iv_ruleBoundedScope= ruleBoundedScope EOF
9491 { 11006 {
9492 newCompositeNode(grammarAccess.getBoundedScopeDefinitionRule()); 11007 newCompositeNode(grammarAccess.getBoundedScopeRule());
9493 pushFollow(FOLLOW_1); 11008 pushFollow(FOLLOW_1);
9494 iv_ruleBoundedScopeDefinition=ruleBoundedScopeDefinition(); 11009 iv_ruleBoundedScope=ruleBoundedScope();
9495 11010
9496 state._fsp--; 11011 state._fsp--;
9497 11012
9498 current =iv_ruleBoundedScopeDefinition; 11013 current =iv_ruleBoundedScope;
9499 match(input,EOF,FOLLOW_2); 11014 match(input,EOF,FOLLOW_2);
9500 11015
9501 } 11016 }
@@ -9510,12 +11025,12 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9510 } 11025 }
9511 return current; 11026 return current;
9512 } 11027 }
9513 // $ANTLR end "entryRuleBoundedScopeDefinition" 11028 // $ANTLR end "entryRuleBoundedScope"
9514 11029
9515 11030
9516 // $ANTLR start "ruleBoundedScopeDefinition" 11031 // $ANTLR start "ruleBoundedScope"
9517 // InternalSolverLanguageParser.g:3738:1: ruleBoundedScopeDefinition returns [EObject current=null] : (otherlv_0= Scope ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) ) ; 11032 // InternalSolverLanguageParser.g:4302:1: ruleBoundedScope returns [EObject current=null] : (otherlv_0= Scope ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) this_FULL_STOP_11= RULE_FULL_STOP ) ;
9518 public final EObject ruleBoundedScopeDefinition() throws RecognitionException { 11033 public final EObject ruleBoundedScope() throws RecognitionException {
9519 EObject current = null; 11034 EObject current = null;
9520 11035
9521 Token otherlv_0=null; 11036 Token otherlv_0=null;
@@ -9527,81 +11042,82 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9527 Token otherlv_7=null; 11042 Token otherlv_7=null;
9528 Token otherlv_9=null; 11043 Token otherlv_9=null;
9529 Token lv_lowerBound_10_0=null; 11044 Token lv_lowerBound_10_0=null;
11045 Token this_FULL_STOP_11=null;
9530 11046
9531 11047
9532 enterRule(); 11048 enterRule();
9533 11049
9534 try { 11050 try {
9535 // InternalSolverLanguageParser.g:3744:2: ( (otherlv_0= Scope ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) ) ) 11051 // InternalSolverLanguageParser.g:4308:2: ( (otherlv_0= Scope ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) this_FULL_STOP_11= RULE_FULL_STOP ) )
9536 // InternalSolverLanguageParser.g:3745:2: (otherlv_0= Scope ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) ) 11052 // InternalSolverLanguageParser.g:4309:2: (otherlv_0= Scope ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) this_FULL_STOP_11= RULE_FULL_STOP )
9537 { 11053 {
9538 // InternalSolverLanguageParser.g:3745:2: (otherlv_0= Scope ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) ) 11054 // InternalSolverLanguageParser.g:4309:2: (otherlv_0= Scope ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) this_FULL_STOP_11= RULE_FULL_STOP )
9539 // InternalSolverLanguageParser.g:3746:3: otherlv_0= Scope ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) 11055 // InternalSolverLanguageParser.g:4310:3: otherlv_0= Scope ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) this_FULL_STOP_11= RULE_FULL_STOP
9540 { 11056 {
9541 otherlv_0=(Token)match(input,Scope,FOLLOW_55); 11057 otherlv_0=(Token)match(input,Scope,FOLLOW_62);
9542 11058
9543 newLeafNode(otherlv_0, grammarAccess.getBoundedScopeDefinitionAccess().getScopeKeyword_0()); 11059 newLeafNode(otherlv_0, grammarAccess.getBoundedScopeAccess().getScopeKeyword_0());
9544 11060
9545 // InternalSolverLanguageParser.g:3750:3: ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) 11061 // InternalSolverLanguageParser.g:4314:3: ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) )
9546 int alt47=2; 11062 int alt56=2;
9547 int LA47_0 = input.LA(1); 11063 int LA56_0 = input.LA(1);
9548 11064
9549 if ( (LA47_0==RULE_INT) ) { 11065 if ( (LA56_0==RULE_INT) ) {
9550 int LA47_1 = input.LA(2); 11066 int LA56_1 = input.LA(2);
9551 11067
9552 if ( (LA47_1==GreaterThanSignEqualsSign) ) { 11068 if ( (LA56_1==LessThanSignEqualsSign) ) {
9553 alt47=2; 11069 alt56=1;
9554 } 11070 }
9555 else if ( (LA47_1==LessThanSignEqualsSign) ) { 11071 else if ( (LA56_1==GreaterThanSignEqualsSign) ) {
9556 alt47=1; 11072 alt56=2;
9557 } 11073 }
9558 else { 11074 else {
9559 NoViableAltException nvae = 11075 NoViableAltException nvae =
9560 new NoViableAltException("", 47, 1, input); 11076 new NoViableAltException("", 56, 1, input);
9561 11077
9562 throw nvae; 11078 throw nvae;
9563 } 11079 }
9564 } 11080 }
9565 else if ( (LA47_0==RULE_QUOTED_ID||LA47_0==RULE_ID) ) { 11081 else if ( (LA56_0==Object||LA56_0==RULE_QUOTED_ID||LA56_0==RULE_ID) ) {
9566 alt47=1; 11082 alt56=1;
9567 } 11083 }
9568 else { 11084 else {
9569 NoViableAltException nvae = 11085 NoViableAltException nvae =
9570 new NoViableAltException("", 47, 0, input); 11086 new NoViableAltException("", 56, 0, input);
9571 11087
9572 throw nvae; 11088 throw nvae;
9573 } 11089 }
9574 switch (alt47) { 11090 switch (alt56) {
9575 case 1 : 11091 case 1 :
9576 // InternalSolverLanguageParser.g:3751:4: ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) 11092 // InternalSolverLanguageParser.g:4315:4: ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) )
9577 { 11093 {
9578 // InternalSolverLanguageParser.g:3751:4: ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) ) 11094 // InternalSolverLanguageParser.g:4315:4: ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) )
9579 // InternalSolverLanguageParser.g:3752:5: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) ) 11095 // InternalSolverLanguageParser.g:4316:5: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? ( ( ruleQualifiedName ) ) otherlv_4= LessThanSignEqualsSign ( (lv_upperBound_5_0= RULE_INT ) )
9580 { 11096 {
9581 // InternalSolverLanguageParser.g:3752:5: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )? 11097 // InternalSolverLanguageParser.g:4316:5: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign )?
9582 int alt45=2; 11098 int alt54=2;
9583 int LA45_0 = input.LA(1); 11099 int LA54_0 = input.LA(1);
9584 11100
9585 if ( (LA45_0==RULE_INT) ) { 11101 if ( (LA54_0==RULE_INT) ) {
9586 alt45=1; 11102 alt54=1;
9587 } 11103 }
9588 switch (alt45) { 11104 switch (alt54) {
9589 case 1 : 11105 case 1 :
9590 // InternalSolverLanguageParser.g:3753:6: ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign 11106 // InternalSolverLanguageParser.g:4317:6: ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign
9591 { 11107 {
9592 // InternalSolverLanguageParser.g:3753:6: ( (lv_lowerBound_1_0= RULE_INT ) ) 11108 // InternalSolverLanguageParser.g:4317:6: ( (lv_lowerBound_1_0= RULE_INT ) )
9593 // InternalSolverLanguageParser.g:3754:7: (lv_lowerBound_1_0= RULE_INT ) 11109 // InternalSolverLanguageParser.g:4318:7: (lv_lowerBound_1_0= RULE_INT )
9594 { 11110 {
9595 // InternalSolverLanguageParser.g:3754:7: (lv_lowerBound_1_0= RULE_INT ) 11111 // InternalSolverLanguageParser.g:4318:7: (lv_lowerBound_1_0= RULE_INT )
9596 // InternalSolverLanguageParser.g:3755:8: lv_lowerBound_1_0= RULE_INT 11112 // InternalSolverLanguageParser.g:4319:8: lv_lowerBound_1_0= RULE_INT
9597 { 11113 {
9598 lv_lowerBound_1_0=(Token)match(input,RULE_INT,FOLLOW_56); 11114 lv_lowerBound_1_0=(Token)match(input,RULE_INT,FOLLOW_63);
9599 11115
9600 newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0_0()); 11116 newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedScopeAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0_0());
9601 11117
9602 11118
9603 if (current==null) { 11119 if (current==null) {
9604 current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); 11120 current = createModelElement(grammarAccess.getBoundedScopeRule());
9605 } 11121 }
9606 setWithLastConsumed( 11122 setWithLastConsumed(
9607 current, 11123 current,
@@ -9615,9 +11131,9 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9615 11131
9616 } 11132 }
9617 11133
9618 otherlv_2=(Token)match(input,LessThanSignEqualsSign,FOLLOW_8); 11134 otherlv_2=(Token)match(input,LessThanSignEqualsSign,FOLLOW_3);
9619 11135
9620 newLeafNode(otherlv_2, grammarAccess.getBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_0_1()); 11136 newLeafNode(otherlv_2, grammarAccess.getBoundedScopeAccess().getLessThanSignEqualsSignKeyword_1_0_0_1());
9621 11137
9622 11138
9623 } 11139 }
@@ -9625,21 +11141,21 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9625 11141
9626 } 11142 }
9627 11143
9628 // InternalSolverLanguageParser.g:3776:5: ( ( ruleQualifiedName ) ) 11144 // InternalSolverLanguageParser.g:4340:5: ( ( ruleQualifiedName ) )
9629 // InternalSolverLanguageParser.g:3777:6: ( ruleQualifiedName ) 11145 // InternalSolverLanguageParser.g:4341:6: ( ruleQualifiedName )
9630 { 11146 {
9631 // InternalSolverLanguageParser.g:3777:6: ( ruleQualifiedName ) 11147 // InternalSolverLanguageParser.g:4341:6: ( ruleQualifiedName )
9632 // InternalSolverLanguageParser.g:3778:7: ruleQualifiedName 11148 // InternalSolverLanguageParser.g:4342:7: ruleQualifiedName
9633 { 11149 {
9634 11150
9635 if (current==null) { 11151 if (current==null) {
9636 current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); 11152 current = createModelElement(grammarAccess.getBoundedScopeRule());
9637 } 11153 }
9638 11154
9639 11155
9640 newCompositeNode(grammarAccess.getBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0_1_0()); 11156 newCompositeNode(grammarAccess.getBoundedScopeAccess().getTypeSymbolCrossReference_1_0_1_0());
9641 11157
9642 pushFollow(FOLLOW_56); 11158 pushFollow(FOLLOW_63);
9643 ruleQualifiedName(); 11159 ruleQualifiedName();
9644 11160
9645 state._fsp--; 11161 state._fsp--;
@@ -9653,23 +11169,23 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9653 11169
9654 } 11170 }
9655 11171
9656 otherlv_4=(Token)match(input,LessThanSignEqualsSign,FOLLOW_53); 11172 otherlv_4=(Token)match(input,LessThanSignEqualsSign,FOLLOW_57);
9657 11173
9658 newLeafNode(otherlv_4, grammarAccess.getBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_2()); 11174 newLeafNode(otherlv_4, grammarAccess.getBoundedScopeAccess().getLessThanSignEqualsSignKeyword_1_0_2());
9659 11175
9660 // InternalSolverLanguageParser.g:3796:5: ( (lv_upperBound_5_0= RULE_INT ) ) 11176 // InternalSolverLanguageParser.g:4360:5: ( (lv_upperBound_5_0= RULE_INT ) )
9661 // InternalSolverLanguageParser.g:3797:6: (lv_upperBound_5_0= RULE_INT ) 11177 // InternalSolverLanguageParser.g:4361:6: (lv_upperBound_5_0= RULE_INT )
9662 { 11178 {
9663 // InternalSolverLanguageParser.g:3797:6: (lv_upperBound_5_0= RULE_INT ) 11179 // InternalSolverLanguageParser.g:4361:6: (lv_upperBound_5_0= RULE_INT )
9664 // InternalSolverLanguageParser.g:3798:7: lv_upperBound_5_0= RULE_INT 11180 // InternalSolverLanguageParser.g:4362:7: lv_upperBound_5_0= RULE_INT
9665 { 11181 {
9666 lv_upperBound_5_0=(Token)match(input,RULE_INT,FOLLOW_2); 11182 lv_upperBound_5_0=(Token)match(input,RULE_INT,FOLLOW_4);
9667 11183
9668 newLeafNode(lv_upperBound_5_0, grammarAccess.getBoundedScopeDefinitionAccess().getUpperBoundINTTerminalRuleCall_1_0_3_0()); 11184 newLeafNode(lv_upperBound_5_0, grammarAccess.getBoundedScopeAccess().getUpperBoundINTTerminalRuleCall_1_0_3_0());
9669 11185
9670 11186
9671 if (current==null) { 11187 if (current==null) {
9672 current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); 11188 current = createModelElement(grammarAccess.getBoundedScopeRule());
9673 } 11189 }
9674 setWithLastConsumed( 11190 setWithLastConsumed(
9675 current, 11191 current,
@@ -9690,24 +11206,24 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9690 } 11206 }
9691 break; 11207 break;
9692 case 2 : 11208 case 2 :
9693 // InternalSolverLanguageParser.g:3816:4: ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) 11209 // InternalSolverLanguageParser.g:4380:4: ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? )
9694 { 11210 {
9695 // InternalSolverLanguageParser.g:3816:4: ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) 11211 // InternalSolverLanguageParser.g:4380:4: ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? )
9696 // InternalSolverLanguageParser.g:3817:5: ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? 11212 // InternalSolverLanguageParser.g:4381:5: ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= GreaterThanSignEqualsSign ( ( ruleQualifiedName ) ) (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )?
9697 { 11213 {
9698 // InternalSolverLanguageParser.g:3817:5: ( (lv_upperBound_6_0= RULE_INT ) ) 11214 // InternalSolverLanguageParser.g:4381:5: ( (lv_upperBound_6_0= RULE_INT ) )
9699 // InternalSolverLanguageParser.g:3818:6: (lv_upperBound_6_0= RULE_INT ) 11215 // InternalSolverLanguageParser.g:4382:6: (lv_upperBound_6_0= RULE_INT )
9700 { 11216 {
9701 // InternalSolverLanguageParser.g:3818:6: (lv_upperBound_6_0= RULE_INT ) 11217 // InternalSolverLanguageParser.g:4382:6: (lv_upperBound_6_0= RULE_INT )
9702 // InternalSolverLanguageParser.g:3819:7: lv_upperBound_6_0= RULE_INT 11218 // InternalSolverLanguageParser.g:4383:7: lv_upperBound_6_0= RULE_INT
9703 { 11219 {
9704 lv_upperBound_6_0=(Token)match(input,RULE_INT,FOLLOW_57); 11220 lv_upperBound_6_0=(Token)match(input,RULE_INT,FOLLOW_64);
9705 11221
9706 newLeafNode(lv_upperBound_6_0, grammarAccess.getBoundedScopeDefinitionAccess().getUpperBoundINTTerminalRuleCall_1_1_0_0()); 11222 newLeafNode(lv_upperBound_6_0, grammarAccess.getBoundedScopeAccess().getUpperBoundINTTerminalRuleCall_1_1_0_0());
9707 11223
9708 11224
9709 if (current==null) { 11225 if (current==null) {
9710 current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); 11226 current = createModelElement(grammarAccess.getBoundedScopeRule());
9711 } 11227 }
9712 setWithLastConsumed( 11228 setWithLastConsumed(
9713 current, 11229 current,
@@ -9721,25 +11237,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9721 11237
9722 } 11238 }
9723 11239
9724 otherlv_7=(Token)match(input,GreaterThanSignEqualsSign,FOLLOW_8); 11240 otherlv_7=(Token)match(input,GreaterThanSignEqualsSign,FOLLOW_3);
9725 11241
9726 newLeafNode(otherlv_7, grammarAccess.getBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_1()); 11242 newLeafNode(otherlv_7, grammarAccess.getBoundedScopeAccess().getGreaterThanSignEqualsSignKeyword_1_1_1());
9727 11243
9728 // InternalSolverLanguageParser.g:3839:5: ( ( ruleQualifiedName ) ) 11244 // InternalSolverLanguageParser.g:4403:5: ( ( ruleQualifiedName ) )
9729 // InternalSolverLanguageParser.g:3840:6: ( ruleQualifiedName ) 11245 // InternalSolverLanguageParser.g:4404:6: ( ruleQualifiedName )
9730 { 11246 {
9731 // InternalSolverLanguageParser.g:3840:6: ( ruleQualifiedName ) 11247 // InternalSolverLanguageParser.g:4404:6: ( ruleQualifiedName )
9732 // InternalSolverLanguageParser.g:3841:7: ruleQualifiedName 11248 // InternalSolverLanguageParser.g:4405:7: ruleQualifiedName
9733 { 11249 {
9734 11250
9735 if (current==null) { 11251 if (current==null) {
9736 current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); 11252 current = createModelElement(grammarAccess.getBoundedScopeRule());
9737 } 11253 }
9738 11254
9739 11255
9740 newCompositeNode(grammarAccess.getBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_1_2_0()); 11256 newCompositeNode(grammarAccess.getBoundedScopeAccess().getTypeSymbolCrossReference_1_1_2_0());
9741 11257
9742 pushFollow(FOLLOW_58); 11258 pushFollow(FOLLOW_65);
9743 ruleQualifiedName(); 11259 ruleQualifiedName();
9744 11260
9745 state._fsp--; 11261 state._fsp--;
@@ -9753,34 +11269,34 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9753 11269
9754 } 11270 }
9755 11271
9756 // InternalSolverLanguageParser.g:3855:5: (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )? 11272 // InternalSolverLanguageParser.g:4419:5: (otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) )?
9757 int alt46=2; 11273 int alt55=2;
9758 int LA46_0 = input.LA(1); 11274 int LA55_0 = input.LA(1);
9759 11275
9760 if ( (LA46_0==GreaterThanSignEqualsSign) ) { 11276 if ( (LA55_0==GreaterThanSignEqualsSign) ) {
9761 alt46=1; 11277 alt55=1;
9762 } 11278 }
9763 switch (alt46) { 11279 switch (alt55) {
9764 case 1 : 11280 case 1 :
9765 // InternalSolverLanguageParser.g:3856:6: otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) ) 11281 // InternalSolverLanguageParser.g:4420:6: otherlv_9= GreaterThanSignEqualsSign ( (lv_lowerBound_10_0= RULE_INT ) )
9766 { 11282 {
9767 otherlv_9=(Token)match(input,GreaterThanSignEqualsSign,FOLLOW_53); 11283 otherlv_9=(Token)match(input,GreaterThanSignEqualsSign,FOLLOW_57);
9768 11284
9769 newLeafNode(otherlv_9, grammarAccess.getBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_3_0()); 11285 newLeafNode(otherlv_9, grammarAccess.getBoundedScopeAccess().getGreaterThanSignEqualsSignKeyword_1_1_3_0());
9770 11286
9771 // InternalSolverLanguageParser.g:3860:6: ( (lv_lowerBound_10_0= RULE_INT ) ) 11287 // InternalSolverLanguageParser.g:4424:6: ( (lv_lowerBound_10_0= RULE_INT ) )
9772 // InternalSolverLanguageParser.g:3861:7: (lv_lowerBound_10_0= RULE_INT ) 11288 // InternalSolverLanguageParser.g:4425:7: (lv_lowerBound_10_0= RULE_INT )
9773 { 11289 {
9774 // InternalSolverLanguageParser.g:3861:7: (lv_lowerBound_10_0= RULE_INT ) 11290 // InternalSolverLanguageParser.g:4425:7: (lv_lowerBound_10_0= RULE_INT )
9775 // InternalSolverLanguageParser.g:3862:8: lv_lowerBound_10_0= RULE_INT 11291 // InternalSolverLanguageParser.g:4426:8: lv_lowerBound_10_0= RULE_INT
9776 { 11292 {
9777 lv_lowerBound_10_0=(Token)match(input,RULE_INT,FOLLOW_2); 11293 lv_lowerBound_10_0=(Token)match(input,RULE_INT,FOLLOW_4);
9778 11294
9779 newLeafNode(lv_lowerBound_10_0, grammarAccess.getBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_1_3_1_0()); 11295 newLeafNode(lv_lowerBound_10_0, grammarAccess.getBoundedScopeAccess().getLowerBoundINTTerminalRuleCall_1_1_3_1_0());
9780 11296
9781 11297
9782 if (current==null) { 11298 if (current==null) {
9783 current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); 11299 current = createModelElement(grammarAccess.getBoundedScopeRule());
9784 } 11300 }
9785 setWithLastConsumed( 11301 setWithLastConsumed(
9786 current, 11302 current,
@@ -9809,6 +11325,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9809 11325
9810 } 11326 }
9811 11327
11328 this_FULL_STOP_11=(Token)match(input,RULE_FULL_STOP,FOLLOW_2);
11329
11330 newLeafNode(this_FULL_STOP_11, grammarAccess.getBoundedScopeAccess().getFULL_STOPTerminalRuleCall_2());
11331
9812 11332
9813 } 11333 }
9814 11334
@@ -9828,28 +11348,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9828 } 11348 }
9829 return current; 11349 return current;
9830 } 11350 }
9831 // $ANTLR end "ruleBoundedScopeDefinition" 11351 // $ANTLR end "ruleBoundedScope"
9832 11352
9833 11353
9834 // $ANTLR start "entryRuleLowerBoundedScopeDefinition" 11354 // $ANTLR start "entryRuleLowerBoundedScope"
9835 // InternalSolverLanguageParser.g:3885:1: entryRuleLowerBoundedScopeDefinition returns [EObject current=null] : iv_ruleLowerBoundedScopeDefinition= ruleLowerBoundedScopeDefinition EOF ; 11355 // InternalSolverLanguageParser.g:4453:1: entryRuleLowerBoundedScope returns [EObject current=null] : iv_ruleLowerBoundedScope= ruleLowerBoundedScope EOF ;
9836 public final EObject entryRuleLowerBoundedScopeDefinition() throws RecognitionException { 11356 public final EObject entryRuleLowerBoundedScope() throws RecognitionException {
9837 EObject current = null; 11357 EObject current = null;
9838 11358
9839 EObject iv_ruleLowerBoundedScopeDefinition = null; 11359 EObject iv_ruleLowerBoundedScope = null;
9840 11360
9841 11361
9842 try { 11362 try {
9843 // InternalSolverLanguageParser.g:3885:68: (iv_ruleLowerBoundedScopeDefinition= ruleLowerBoundedScopeDefinition EOF ) 11363 // InternalSolverLanguageParser.g:4453:58: (iv_ruleLowerBoundedScope= ruleLowerBoundedScope EOF )
9844 // InternalSolverLanguageParser.g:3886:2: iv_ruleLowerBoundedScopeDefinition= ruleLowerBoundedScopeDefinition EOF 11364 // InternalSolverLanguageParser.g:4454:2: iv_ruleLowerBoundedScope= ruleLowerBoundedScope EOF
9845 { 11365 {
9846 newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionRule()); 11366 newCompositeNode(grammarAccess.getLowerBoundedScopeRule());
9847 pushFollow(FOLLOW_1); 11367 pushFollow(FOLLOW_1);
9848 iv_ruleLowerBoundedScopeDefinition=ruleLowerBoundedScopeDefinition(); 11368 iv_ruleLowerBoundedScope=ruleLowerBoundedScope();
9849 11369
9850 state._fsp--; 11370 state._fsp--;
9851 11371
9852 current =iv_ruleLowerBoundedScopeDefinition; 11372 current =iv_ruleLowerBoundedScope;
9853 match(input,EOF,FOLLOW_2); 11373 match(input,EOF,FOLLOW_2);
9854 11374
9855 } 11375 }
@@ -9864,12 +11384,12 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9864 } 11384 }
9865 return current; 11385 return current;
9866 } 11386 }
9867 // $ANTLR end "entryRuleLowerBoundedScopeDefinition" 11387 // $ANTLR end "entryRuleLowerBoundedScope"
9868 11388
9869 11389
9870 // $ANTLR start "ruleLowerBoundedScopeDefinition" 11390 // $ANTLR start "ruleLowerBoundedScope"
9871 // InternalSolverLanguageParser.g:3892:1: ruleLowerBoundedScopeDefinition returns [EObject current=null] : (otherlv_0= Scope ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) ) ; 11391 // InternalSolverLanguageParser.g:4460:1: ruleLowerBoundedScope returns [EObject current=null] : (otherlv_0= Scope ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) this_FULL_STOP_7= RULE_FULL_STOP ) ;
9872 public final EObject ruleLowerBoundedScopeDefinition() throws RecognitionException { 11392 public final EObject ruleLowerBoundedScope() throws RecognitionException {
9873 EObject current = null; 11393 EObject current = null;
9874 11394
9875 Token otherlv_0=null; 11395 Token otherlv_0=null;
@@ -9877,57 +11397,58 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9877 Token otherlv_2=null; 11397 Token otherlv_2=null;
9878 Token otherlv_5=null; 11398 Token otherlv_5=null;
9879 Token lv_lowerBound_6_0=null; 11399 Token lv_lowerBound_6_0=null;
11400 Token this_FULL_STOP_7=null;
9880 11401
9881 11402
9882 enterRule(); 11403 enterRule();
9883 11404
9884 try { 11405 try {
9885 // InternalSolverLanguageParser.g:3898:2: ( (otherlv_0= Scope ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) ) ) 11406 // InternalSolverLanguageParser.g:4466:2: ( (otherlv_0= Scope ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) this_FULL_STOP_7= RULE_FULL_STOP ) )
9886 // InternalSolverLanguageParser.g:3899:2: (otherlv_0= Scope ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) ) 11407 // InternalSolverLanguageParser.g:4467:2: (otherlv_0= Scope ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) this_FULL_STOP_7= RULE_FULL_STOP )
9887 { 11408 {
9888 // InternalSolverLanguageParser.g:3899:2: (otherlv_0= Scope ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) ) 11409 // InternalSolverLanguageParser.g:4467:2: (otherlv_0= Scope ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) this_FULL_STOP_7= RULE_FULL_STOP )
9889 // InternalSolverLanguageParser.g:3900:3: otherlv_0= Scope ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) 11410 // InternalSolverLanguageParser.g:4468:3: otherlv_0= Scope ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) this_FULL_STOP_7= RULE_FULL_STOP
9890 { 11411 {
9891 otherlv_0=(Token)match(input,Scope,FOLLOW_55); 11412 otherlv_0=(Token)match(input,Scope,FOLLOW_62);
9892 11413
9893 newLeafNode(otherlv_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getScopeKeyword_0()); 11414 newLeafNode(otherlv_0, grammarAccess.getLowerBoundedScopeAccess().getScopeKeyword_0());
9894 11415
9895 // InternalSolverLanguageParser.g:3904:3: ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) 11416 // InternalSolverLanguageParser.g:4472:3: ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) )
9896 int alt48=2; 11417 int alt57=2;
9897 int LA48_0 = input.LA(1); 11418 int LA57_0 = input.LA(1);
9898 11419
9899 if ( (LA48_0==RULE_INT) ) { 11420 if ( (LA57_0==RULE_INT) ) {
9900 alt48=1; 11421 alt57=1;
9901 } 11422 }
9902 else if ( (LA48_0==RULE_QUOTED_ID||LA48_0==RULE_ID) ) { 11423 else if ( (LA57_0==Object||LA57_0==RULE_QUOTED_ID||LA57_0==RULE_ID) ) {
9903 alt48=2; 11424 alt57=2;
9904 } 11425 }
9905 else { 11426 else {
9906 NoViableAltException nvae = 11427 NoViableAltException nvae =
9907 new NoViableAltException("", 48, 0, input); 11428 new NoViableAltException("", 57, 0, input);
9908 11429
9909 throw nvae; 11430 throw nvae;
9910 } 11431 }
9911 switch (alt48) { 11432 switch (alt57) {
9912 case 1 : 11433 case 1 :
9913 // InternalSolverLanguageParser.g:3905:4: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) 11434 // InternalSolverLanguageParser.g:4473:4: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) )
9914 { 11435 {
9915 // InternalSolverLanguageParser.g:3905:4: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) ) 11436 // InternalSolverLanguageParser.g:4473:4: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) )
9916 // InternalSolverLanguageParser.g:3906:5: ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) ) 11437 // InternalSolverLanguageParser.g:4474:5: ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= LessThanSignEqualsSign ( ( ruleQualifiedName ) )
9917 { 11438 {
9918 // InternalSolverLanguageParser.g:3906:5: ( (lv_lowerBound_1_0= RULE_INT ) ) 11439 // InternalSolverLanguageParser.g:4474:5: ( (lv_lowerBound_1_0= RULE_INT ) )
9919 // InternalSolverLanguageParser.g:3907:6: (lv_lowerBound_1_0= RULE_INT ) 11440 // InternalSolverLanguageParser.g:4475:6: (lv_lowerBound_1_0= RULE_INT )
9920 { 11441 {
9921 // InternalSolverLanguageParser.g:3907:6: (lv_lowerBound_1_0= RULE_INT ) 11442 // InternalSolverLanguageParser.g:4475:6: (lv_lowerBound_1_0= RULE_INT )
9922 // InternalSolverLanguageParser.g:3908:7: lv_lowerBound_1_0= RULE_INT 11443 // InternalSolverLanguageParser.g:4476:7: lv_lowerBound_1_0= RULE_INT
9923 { 11444 {
9924 lv_lowerBound_1_0=(Token)match(input,RULE_INT,FOLLOW_56); 11445 lv_lowerBound_1_0=(Token)match(input,RULE_INT,FOLLOW_63);
9925 11446
9926 newLeafNode(lv_lowerBound_1_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0()); 11447 newLeafNode(lv_lowerBound_1_0, grammarAccess.getLowerBoundedScopeAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0());
9927 11448
9928 11449
9929 if (current==null) { 11450 if (current==null) {
9930 current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); 11451 current = createModelElement(grammarAccess.getLowerBoundedScopeRule());
9931 } 11452 }
9932 setWithLastConsumed( 11453 setWithLastConsumed(
9933 current, 11454 current,
@@ -9941,25 +11462,25 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9941 11462
9942 } 11463 }
9943 11464
9944 otherlv_2=(Token)match(input,LessThanSignEqualsSign,FOLLOW_8); 11465 otherlv_2=(Token)match(input,LessThanSignEqualsSign,FOLLOW_3);
9945 11466
9946 newLeafNode(otherlv_2, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_1()); 11467 newLeafNode(otherlv_2, grammarAccess.getLowerBoundedScopeAccess().getLessThanSignEqualsSignKeyword_1_0_1());
9947 11468
9948 // InternalSolverLanguageParser.g:3928:5: ( ( ruleQualifiedName ) ) 11469 // InternalSolverLanguageParser.g:4496:5: ( ( ruleQualifiedName ) )
9949 // InternalSolverLanguageParser.g:3929:6: ( ruleQualifiedName ) 11470 // InternalSolverLanguageParser.g:4497:6: ( ruleQualifiedName )
9950 { 11471 {
9951 // InternalSolverLanguageParser.g:3929:6: ( ruleQualifiedName ) 11472 // InternalSolverLanguageParser.g:4497:6: ( ruleQualifiedName )
9952 // InternalSolverLanguageParser.g:3930:7: ruleQualifiedName 11473 // InternalSolverLanguageParser.g:4498:7: ruleQualifiedName
9953 { 11474 {
9954 11475
9955 if (current==null) { 11476 if (current==null) {
9956 current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); 11477 current = createModelElement(grammarAccess.getLowerBoundedScopeRule());
9957 } 11478 }
9958 11479
9959 11480
9960 newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0_2_0()); 11481 newCompositeNode(grammarAccess.getLowerBoundedScopeAccess().getTypeSymbolCrossReference_1_0_2_0());
9961 11482
9962 pushFollow(FOLLOW_2); 11483 pushFollow(FOLLOW_4);
9963 ruleQualifiedName(); 11484 ruleQualifiedName();
9964 11485
9965 state._fsp--; 11486 state._fsp--;
@@ -9980,26 +11501,26 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
9980 } 11501 }
9981 break; 11502 break;
9982 case 2 : 11503 case 2 :
9983 // InternalSolverLanguageParser.g:3946:4: ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) 11504 // InternalSolverLanguageParser.g:4514:4: ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) )
9984 { 11505 {
9985 // InternalSolverLanguageParser.g:3946:4: ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) ) 11506 // InternalSolverLanguageParser.g:4514:4: ( ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) )
9986 // InternalSolverLanguageParser.g:3947:5: ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) ) 11507 // InternalSolverLanguageParser.g:4515:5: ( ( ruleQualifiedName ) ) otherlv_5= GreaterThanSignEqualsSign ( (lv_lowerBound_6_0= RULE_INT ) )
9987 { 11508 {
9988 // InternalSolverLanguageParser.g:3947:5: ( ( ruleQualifiedName ) ) 11509 // InternalSolverLanguageParser.g:4515:5: ( ( ruleQualifiedName ) )
9989 // InternalSolverLanguageParser.g:3948:6: ( ruleQualifiedName ) 11510 // InternalSolverLanguageParser.g:4516:6: ( ruleQualifiedName )
9990 { 11511 {
9991 // InternalSolverLanguageParser.g:3948:6: ( ruleQualifiedName ) 11512 // InternalSolverLanguageParser.g:4516:6: ( ruleQualifiedName )
9992 // InternalSolverLanguageParser.g:3949:7: ruleQualifiedName 11513 // InternalSolverLanguageParser.g:4517:7: ruleQualifiedName
9993 { 11514 {
9994 11515
9995 if (current==null) { 11516 if (current==null) {
9996 current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); 11517 current = createModelElement(grammarAccess.getLowerBoundedScopeRule());
9997 } 11518 }
9998 11519
9999 11520
10000 newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_1_0_0()); 11521 newCompositeNode(grammarAccess.getLowerBoundedScopeAccess().getTypeSymbolCrossReference_1_1_0_0());
10001 11522
10002 pushFollow(FOLLOW_57); 11523 pushFollow(FOLLOW_64);
10003 ruleQualifiedName(); 11524 ruleQualifiedName();
10004 11525
10005 state._fsp--; 11526 state._fsp--;
@@ -10013,23 +11534,23 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10013 11534
10014 } 11535 }
10015 11536
10016 otherlv_5=(Token)match(input,GreaterThanSignEqualsSign,FOLLOW_53); 11537 otherlv_5=(Token)match(input,GreaterThanSignEqualsSign,FOLLOW_57);
10017 11538
10018 newLeafNode(otherlv_5, grammarAccess.getLowerBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_1()); 11539 newLeafNode(otherlv_5, grammarAccess.getLowerBoundedScopeAccess().getGreaterThanSignEqualsSignKeyword_1_1_1());
10019 11540
10020 // InternalSolverLanguageParser.g:3967:5: ( (lv_lowerBound_6_0= RULE_INT ) ) 11541 // InternalSolverLanguageParser.g:4535:5: ( (lv_lowerBound_6_0= RULE_INT ) )
10021 // InternalSolverLanguageParser.g:3968:6: (lv_lowerBound_6_0= RULE_INT ) 11542 // InternalSolverLanguageParser.g:4536:6: (lv_lowerBound_6_0= RULE_INT )
10022 { 11543 {
10023 // InternalSolverLanguageParser.g:3968:6: (lv_lowerBound_6_0= RULE_INT ) 11544 // InternalSolverLanguageParser.g:4536:6: (lv_lowerBound_6_0= RULE_INT )
10024 // InternalSolverLanguageParser.g:3969:7: lv_lowerBound_6_0= RULE_INT 11545 // InternalSolverLanguageParser.g:4537:7: lv_lowerBound_6_0= RULE_INT
10025 { 11546 {
10026 lv_lowerBound_6_0=(Token)match(input,RULE_INT,FOLLOW_2); 11547 lv_lowerBound_6_0=(Token)match(input,RULE_INT,FOLLOW_4);
10027 11548
10028 newLeafNode(lv_lowerBound_6_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_1_2_0()); 11549 newLeafNode(lv_lowerBound_6_0, grammarAccess.getLowerBoundedScopeAccess().getLowerBoundINTTerminalRuleCall_1_1_2_0());
10029 11550
10030 11551
10031 if (current==null) { 11552 if (current==null) {
10032 current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); 11553 current = createModelElement(grammarAccess.getLowerBoundedScopeRule());
10033 } 11554 }
10034 setWithLastConsumed( 11555 setWithLastConsumed(
10035 current, 11556 current,
@@ -10052,6 +11573,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10052 11573
10053 } 11574 }
10054 11575
11576 this_FULL_STOP_7=(Token)match(input,RULE_FULL_STOP,FOLLOW_2);
11577
11578 newLeafNode(this_FULL_STOP_7, grammarAccess.getLowerBoundedScopeAccess().getFULL_STOPTerminalRuleCall_2());
11579
10055 11580
10056 } 11581 }
10057 11582
@@ -10071,28 +11596,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10071 } 11596 }
10072 return current; 11597 return current;
10073 } 11598 }
10074 // $ANTLR end "ruleLowerBoundedScopeDefinition" 11599 // $ANTLR end "ruleLowerBoundedScope"
10075 11600
10076 11601
10077 // $ANTLR start "entryRuleObjectiveDefinition" 11602 // $ANTLR start "entryRuleObjectiveDeclaration"
10078 // InternalSolverLanguageParser.g:3991:1: entryRuleObjectiveDefinition returns [EObject current=null] : iv_ruleObjectiveDefinition= ruleObjectiveDefinition EOF ; 11603 // InternalSolverLanguageParser.g:4563:1: entryRuleObjectiveDeclaration returns [EObject current=null] : iv_ruleObjectiveDeclaration= ruleObjectiveDeclaration EOF ;
10079 public final EObject entryRuleObjectiveDefinition() throws RecognitionException { 11604 public final EObject entryRuleObjectiveDeclaration() throws RecognitionException {
10080 EObject current = null; 11605 EObject current = null;
10081 11606
10082 EObject iv_ruleObjectiveDefinition = null; 11607 EObject iv_ruleObjectiveDeclaration = null;
10083 11608
10084 11609
10085 try { 11610 try {
10086 // InternalSolverLanguageParser.g:3991:60: (iv_ruleObjectiveDefinition= ruleObjectiveDefinition EOF ) 11611 // InternalSolverLanguageParser.g:4563:61: (iv_ruleObjectiveDeclaration= ruleObjectiveDeclaration EOF )
10087 // InternalSolverLanguageParser.g:3992:2: iv_ruleObjectiveDefinition= ruleObjectiveDefinition EOF 11612 // InternalSolverLanguageParser.g:4564:2: iv_ruleObjectiveDeclaration= ruleObjectiveDeclaration EOF
10088 { 11613 {
10089 newCompositeNode(grammarAccess.getObjectiveDefinitionRule()); 11614 newCompositeNode(grammarAccess.getObjectiveDeclarationRule());
10090 pushFollow(FOLLOW_1); 11615 pushFollow(FOLLOW_1);
10091 iv_ruleObjectiveDefinition=ruleObjectiveDefinition(); 11616 iv_ruleObjectiveDeclaration=ruleObjectiveDeclaration();
10092 11617
10093 state._fsp--; 11618 state._fsp--;
10094 11619
10095 current =iv_ruleObjectiveDefinition; 11620 current =iv_ruleObjectiveDeclaration;
10096 match(input,EOF,FOLLOW_2); 11621 match(input,EOF,FOLLOW_2);
10097 11622
10098 } 11623 }
@@ -10107,14 +11632,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10107 } 11632 }
10108 return current; 11633 return current;
10109 } 11634 }
10110 // $ANTLR end "entryRuleObjectiveDefinition" 11635 // $ANTLR end "entryRuleObjectiveDeclaration"
10111 11636
10112 11637
10113 // $ANTLR start "ruleObjectiveDefinition" 11638 // $ANTLR start "ruleObjectiveDeclaration"
10114 // InternalSolverLanguageParser.g:3998:1: ruleObjectiveDefinition returns [EObject current=null] : ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) ) ; 11639 // InternalSolverLanguageParser.g:4570:1: ruleObjectiveDeclaration returns [EObject current=null] : ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) this_FULL_STOP_2= RULE_FULL_STOP ) ;
10115 public final EObject ruleObjectiveDefinition() throws RecognitionException { 11640 public final EObject ruleObjectiveDeclaration() throws RecognitionException {
10116 EObject current = null; 11641 EObject current = null;
10117 11642
11643 Token this_FULL_STOP_2=null;
10118 Enumerator lv_kind_0_0 = null; 11644 Enumerator lv_kind_0_0 = null;
10119 11645
10120 EObject lv_objective_1_0 = null; 11646 EObject lv_objective_1_0 = null;
@@ -10124,29 +11650,29 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10124 enterRule(); 11650 enterRule();
10125 11651
10126 try { 11652 try {
10127 // InternalSolverLanguageParser.g:4004:2: ( ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) ) ) 11653 // InternalSolverLanguageParser.g:4576:2: ( ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) this_FULL_STOP_2= RULE_FULL_STOP ) )
10128 // InternalSolverLanguageParser.g:4005:2: ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) ) 11654 // InternalSolverLanguageParser.g:4577:2: ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) this_FULL_STOP_2= RULE_FULL_STOP )
10129 { 11655 {
10130 // InternalSolverLanguageParser.g:4005:2: ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) ) 11656 // InternalSolverLanguageParser.g:4577:2: ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) this_FULL_STOP_2= RULE_FULL_STOP )
10131 // InternalSolverLanguageParser.g:4006:3: ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) 11657 // InternalSolverLanguageParser.g:4578:3: ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) this_FULL_STOP_2= RULE_FULL_STOP
10132 { 11658 {
10133 // InternalSolverLanguageParser.g:4006:3: ( (lv_kind_0_0= ruleObjectiveKind ) ) 11659 // InternalSolverLanguageParser.g:4578:3: ( (lv_kind_0_0= ruleObjectiveKind ) )
10134 // InternalSolverLanguageParser.g:4007:4: (lv_kind_0_0= ruleObjectiveKind ) 11660 // InternalSolverLanguageParser.g:4579:4: (lv_kind_0_0= ruleObjectiveKind )
10135 { 11661 {
10136 // InternalSolverLanguageParser.g:4007:4: (lv_kind_0_0= ruleObjectiveKind ) 11662 // InternalSolverLanguageParser.g:4579:4: (lv_kind_0_0= ruleObjectiveKind )
10137 // InternalSolverLanguageParser.g:4008:5: lv_kind_0_0= ruleObjectiveKind 11663 // InternalSolverLanguageParser.g:4580:5: lv_kind_0_0= ruleObjectiveKind
10138 { 11664 {
10139 11665
10140 newCompositeNode(grammarAccess.getObjectiveDefinitionAccess().getKindObjectiveKindEnumRuleCall_0_0()); 11666 newCompositeNode(grammarAccess.getObjectiveDeclarationAccess().getKindObjectiveKindEnumRuleCall_0_0());
10141 11667
10142 pushFollow(FOLLOW_6); 11668 pushFollow(FOLLOW_10);
10143 lv_kind_0_0=ruleObjectiveKind(); 11669 lv_kind_0_0=ruleObjectiveKind();
10144 11670
10145 state._fsp--; 11671 state._fsp--;
10146 11672
10147 11673
10148 if (current==null) { 11674 if (current==null) {
10149 current = createModelElementForParent(grammarAccess.getObjectiveDefinitionRule()); 11675 current = createModelElementForParent(grammarAccess.getObjectiveDeclarationRule());
10150 } 11676 }
10151 set( 11677 set(
10152 current, 11678 current,
@@ -10161,23 +11687,23 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10161 11687
10162 } 11688 }
10163 11689
10164 // InternalSolverLanguageParser.g:4025:3: ( (lv_objective_1_0= ruleExpression ) ) 11690 // InternalSolverLanguageParser.g:4597:3: ( (lv_objective_1_0= ruleExpression ) )
10165 // InternalSolverLanguageParser.g:4026:4: (lv_objective_1_0= ruleExpression ) 11691 // InternalSolverLanguageParser.g:4598:4: (lv_objective_1_0= ruleExpression )
10166 { 11692 {
10167 // InternalSolverLanguageParser.g:4026:4: (lv_objective_1_0= ruleExpression ) 11693 // InternalSolverLanguageParser.g:4598:4: (lv_objective_1_0= ruleExpression )
10168 // InternalSolverLanguageParser.g:4027:5: lv_objective_1_0= ruleExpression 11694 // InternalSolverLanguageParser.g:4599:5: lv_objective_1_0= ruleExpression
10169 { 11695 {
10170 11696
10171 newCompositeNode(grammarAccess.getObjectiveDefinitionAccess().getObjectiveExpressionParserRuleCall_1_0()); 11697 newCompositeNode(grammarAccess.getObjectiveDeclarationAccess().getObjectiveExpressionParserRuleCall_1_0());
10172 11698
10173 pushFollow(FOLLOW_2); 11699 pushFollow(FOLLOW_4);
10174 lv_objective_1_0=ruleExpression(); 11700 lv_objective_1_0=ruleExpression();
10175 11701
10176 state._fsp--; 11702 state._fsp--;
10177 11703
10178 11704
10179 if (current==null) { 11705 if (current==null) {
10180 current = createModelElementForParent(grammarAccess.getObjectiveDefinitionRule()); 11706 current = createModelElementForParent(grammarAccess.getObjectiveDeclarationRule());
10181 } 11707 }
10182 set( 11708 set(
10183 current, 11709 current,
@@ -10192,6 +11718,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10192 11718
10193 } 11719 }
10194 11720
11721 this_FULL_STOP_2=(Token)match(input,RULE_FULL_STOP,FOLLOW_2);
11722
11723 newLeafNode(this_FULL_STOP_2, grammarAccess.getObjectiveDeclarationAccess().getFULL_STOPTerminalRuleCall_2());
11724
10195 11725
10196 } 11726 }
10197 11727
@@ -10211,11 +11741,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10211 } 11741 }
10212 return current; 11742 return current;
10213 } 11743 }
10214 // $ANTLR end "ruleObjectiveDefinition" 11744 // $ANTLR end "ruleObjectiveDeclaration"
10215 11745
10216 11746
10217 // $ANTLR start "entryRuleUpperMultiplicty" 11747 // $ANTLR start "entryRuleUpperMultiplicty"
10218 // InternalSolverLanguageParser.g:4048:1: entryRuleUpperMultiplicty returns [String current=null] : iv_ruleUpperMultiplicty= ruleUpperMultiplicty EOF ; 11748 // InternalSolverLanguageParser.g:4624:1: entryRuleUpperMultiplicty returns [String current=null] : iv_ruleUpperMultiplicty= ruleUpperMultiplicty EOF ;
10219 public final String entryRuleUpperMultiplicty() throws RecognitionException { 11749 public final String entryRuleUpperMultiplicty() throws RecognitionException {
10220 String current = null; 11750 String current = null;
10221 11751
@@ -10223,8 +11753,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10223 11753
10224 11754
10225 try { 11755 try {
10226 // InternalSolverLanguageParser.g:4048:56: (iv_ruleUpperMultiplicty= ruleUpperMultiplicty EOF ) 11756 // InternalSolverLanguageParser.g:4624:56: (iv_ruleUpperMultiplicty= ruleUpperMultiplicty EOF )
10227 // InternalSolverLanguageParser.g:4049:2: iv_ruleUpperMultiplicty= ruleUpperMultiplicty EOF 11757 // InternalSolverLanguageParser.g:4625:2: iv_ruleUpperMultiplicty= ruleUpperMultiplicty EOF
10228 { 11758 {
10229 newCompositeNode(grammarAccess.getUpperMultiplictyRule()); 11759 newCompositeNode(grammarAccess.getUpperMultiplictyRule());
10230 pushFollow(FOLLOW_1); 11760 pushFollow(FOLLOW_1);
@@ -10251,7 +11781,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10251 11781
10252 11782
10253 // $ANTLR start "ruleUpperMultiplicty" 11783 // $ANTLR start "ruleUpperMultiplicty"
10254 // InternalSolverLanguageParser.g:4055:1: ruleUpperMultiplicty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT | kw= Asterisk ) ; 11784 // InternalSolverLanguageParser.g:4631:1: ruleUpperMultiplicty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT | kw= Asterisk ) ;
10255 public final AntlrDatatypeRuleToken ruleUpperMultiplicty() throws RecognitionException { 11785 public final AntlrDatatypeRuleToken ruleUpperMultiplicty() throws RecognitionException {
10256 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); 11786 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
10257 11787
@@ -10262,28 +11792,28 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10262 enterRule(); 11792 enterRule();
10263 11793
10264 try { 11794 try {
10265 // InternalSolverLanguageParser.g:4061:2: ( (this_INT_0= RULE_INT | kw= Asterisk ) ) 11795 // InternalSolverLanguageParser.g:4637:2: ( (this_INT_0= RULE_INT | kw= Asterisk ) )
10266 // InternalSolverLanguageParser.g:4062:2: (this_INT_0= RULE_INT | kw= Asterisk ) 11796 // InternalSolverLanguageParser.g:4638:2: (this_INT_0= RULE_INT | kw= Asterisk )
10267 { 11797 {
10268 // InternalSolverLanguageParser.g:4062:2: (this_INT_0= RULE_INT | kw= Asterisk ) 11798 // InternalSolverLanguageParser.g:4638:2: (this_INT_0= RULE_INT | kw= Asterisk )
10269 int alt49=2; 11799 int alt58=2;
10270 int LA49_0 = input.LA(1); 11800 int LA58_0 = input.LA(1);
10271 11801
10272 if ( (LA49_0==RULE_INT) ) { 11802 if ( (LA58_0==RULE_INT) ) {
10273 alt49=1; 11803 alt58=1;
10274 } 11804 }
10275 else if ( (LA49_0==Asterisk) ) { 11805 else if ( (LA58_0==Asterisk) ) {
10276 alt49=2; 11806 alt58=2;
10277 } 11807 }
10278 else { 11808 else {
10279 NoViableAltException nvae = 11809 NoViableAltException nvae =
10280 new NoViableAltException("", 49, 0, input); 11810 new NoViableAltException("", 58, 0, input);
10281 11811
10282 throw nvae; 11812 throw nvae;
10283 } 11813 }
10284 switch (alt49) { 11814 switch (alt58) {
10285 case 1 : 11815 case 1 :
10286 // InternalSolverLanguageParser.g:4063:3: this_INT_0= RULE_INT 11816 // InternalSolverLanguageParser.g:4639:3: this_INT_0= RULE_INT
10287 { 11817 {
10288 this_INT_0=(Token)match(input,RULE_INT,FOLLOW_2); 11818 this_INT_0=(Token)match(input,RULE_INT,FOLLOW_2);
10289 11819
@@ -10296,7 +11826,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10296 } 11826 }
10297 break; 11827 break;
10298 case 2 : 11828 case 2 :
10299 // InternalSolverLanguageParser.g:4071:3: kw= Asterisk 11829 // InternalSolverLanguageParser.g:4647:3: kw= Asterisk
10300 { 11830 {
10301 kw=(Token)match(input,Asterisk,FOLLOW_2); 11831 kw=(Token)match(input,Asterisk,FOLLOW_2);
10302 11832
@@ -10329,7 +11859,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10329 11859
10330 11860
10331 // $ANTLR start "entryRuleReal" 11861 // $ANTLR start "entryRuleReal"
10332 // InternalSolverLanguageParser.g:4080:1: entryRuleReal returns [String current=null] : iv_ruleReal= ruleReal EOF ; 11862 // InternalSolverLanguageParser.g:4656:1: entryRuleReal returns [String current=null] : iv_ruleReal= ruleReal EOF ;
10333 public final String entryRuleReal() throws RecognitionException { 11863 public final String entryRuleReal() throws RecognitionException {
10334 String current = null; 11864 String current = null;
10335 11865
@@ -10340,8 +11870,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10340 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens(); 11870 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
10341 11871
10342 try { 11872 try {
10343 // InternalSolverLanguageParser.g:4082:2: (iv_ruleReal= ruleReal EOF ) 11873 // InternalSolverLanguageParser.g:4658:2: (iv_ruleReal= ruleReal EOF )
10344 // InternalSolverLanguageParser.g:4083:2: iv_ruleReal= ruleReal EOF 11874 // InternalSolverLanguageParser.g:4659:2: iv_ruleReal= ruleReal EOF
10345 { 11875 {
10346 newCompositeNode(grammarAccess.getRealRule()); 11876 newCompositeNode(grammarAccess.getRealRule());
10347 pushFollow(FOLLOW_1); 11877 pushFollow(FOLLOW_1);
@@ -10371,7 +11901,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10371 11901
10372 11902
10373 // $ANTLR start "ruleReal" 11903 // $ANTLR start "ruleReal"
10374 // InternalSolverLanguageParser.g:4092:1: ruleReal returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT (kw= FullStop this_INT_2= RULE_INT )? ) ; 11904 // InternalSolverLanguageParser.g:4668:1: ruleReal returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT kw= FullStop this_INT_2= RULE_INT ) ;
10375 public final AntlrDatatypeRuleToken ruleReal() throws RecognitionException { 11905 public final AntlrDatatypeRuleToken ruleReal() throws RecognitionException {
10376 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); 11906 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
10377 11907
@@ -10384,48 +11914,171 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10384 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens(); 11914 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
10385 11915
10386 try { 11916 try {
10387 // InternalSolverLanguageParser.g:4099:2: ( (this_INT_0= RULE_INT (kw= FullStop this_INT_2= RULE_INT )? ) ) 11917 // InternalSolverLanguageParser.g:4675:2: ( (this_INT_0= RULE_INT kw= FullStop this_INT_2= RULE_INT ) )
10388 // InternalSolverLanguageParser.g:4100:2: (this_INT_0= RULE_INT (kw= FullStop this_INT_2= RULE_INT )? ) 11918 // InternalSolverLanguageParser.g:4676:2: (this_INT_0= RULE_INT kw= FullStop this_INT_2= RULE_INT )
10389 { 11919 {
10390 // InternalSolverLanguageParser.g:4100:2: (this_INT_0= RULE_INT (kw= FullStop this_INT_2= RULE_INT )? ) 11920 // InternalSolverLanguageParser.g:4676:2: (this_INT_0= RULE_INT kw= FullStop this_INT_2= RULE_INT )
10391 // InternalSolverLanguageParser.g:4101:3: this_INT_0= RULE_INT (kw= FullStop this_INT_2= RULE_INT )? 11921 // InternalSolverLanguageParser.g:4677:3: this_INT_0= RULE_INT kw= FullStop this_INT_2= RULE_INT
10392 { 11922 {
10393 this_INT_0=(Token)match(input,RULE_INT,FOLLOW_59); 11923 this_INT_0=(Token)match(input,RULE_INT,FOLLOW_66);
10394 11924
10395 current.merge(this_INT_0); 11925 current.merge(this_INT_0);
10396 11926
10397 11927
10398 newLeafNode(this_INT_0, grammarAccess.getRealAccess().getINTTerminalRuleCall_0()); 11928 newLeafNode(this_INT_0, grammarAccess.getRealAccess().getINTTerminalRuleCall_0());
10399 11929
10400 // InternalSolverLanguageParser.g:4108:3: (kw= FullStop this_INT_2= RULE_INT )? 11930 kw=(Token)match(input,FullStop,FOLLOW_57);
10401 int alt50=2; 11931
10402 int LA50_0 = input.LA(1); 11932 current.merge(kw);
11933 newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_1());
11934
11935 this_INT_2=(Token)match(input,RULE_INT,FOLLOW_2);
11936
11937 current.merge(this_INT_2);
11938
11939
11940 newLeafNode(this_INT_2, grammarAccess.getRealAccess().getINTTerminalRuleCall_2());
11941
11942
11943 }
11944
10403 11945
10404 if ( (LA50_0==FullStop) ) {
10405 alt50=1;
10406 } 11946 }
10407 switch (alt50) { 11947
11948
11949 leaveRule();
11950
11951 }
11952
11953 catch (RecognitionException re) {
11954 recover(input,re);
11955 appendSkippedTokens();
11956 }
11957 finally {
11958
11959 myHiddenTokenState.restore();
11960
11961 }
11962 return current;
11963 }
11964 // $ANTLR end "ruleReal"
11965
11966
11967 // $ANTLR start "entryRuleQualifiedNameSegment"
11968 // InternalSolverLanguageParser.g:4703:1: entryRuleQualifiedNameSegment returns [String current=null] : iv_ruleQualifiedNameSegment= ruleQualifiedNameSegment EOF ;
11969 public final String entryRuleQualifiedNameSegment() throws RecognitionException {
11970 String current = null;
11971
11972 AntlrDatatypeRuleToken iv_ruleQualifiedNameSegment = null;
11973
11974
11975 try {
11976 // InternalSolverLanguageParser.g:4703:60: (iv_ruleQualifiedNameSegment= ruleQualifiedNameSegment EOF )
11977 // InternalSolverLanguageParser.g:4704:2: iv_ruleQualifiedNameSegment= ruleQualifiedNameSegment EOF
11978 {
11979 newCompositeNode(grammarAccess.getQualifiedNameSegmentRule());
11980 pushFollow(FOLLOW_1);
11981 iv_ruleQualifiedNameSegment=ruleQualifiedNameSegment();
11982
11983 state._fsp--;
11984
11985 current =iv_ruleQualifiedNameSegment.getText();
11986 match(input,EOF,FOLLOW_2);
11987
11988 }
11989
11990 }
11991
11992 catch (RecognitionException re) {
11993 recover(input,re);
11994 appendSkippedTokens();
11995 }
11996 finally {
11997 }
11998 return current;
11999 }
12000 // $ANTLR end "entryRuleQualifiedNameSegment"
12001
12002
12003 // $ANTLR start "ruleQualifiedNameSegment"
12004 // InternalSolverLanguageParser.g:4710:1: ruleQualifiedNameSegment returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ID_0= RULE_ID | this_QUOTED_ID_1= RULE_QUOTED_ID | kw= Object ) ;
12005 public final AntlrDatatypeRuleToken ruleQualifiedNameSegment() throws RecognitionException {
12006 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
12007
12008 Token this_ID_0=null;
12009 Token this_QUOTED_ID_1=null;
12010 Token kw=null;
12011
12012
12013 enterRule();
12014
12015 try {
12016 // InternalSolverLanguageParser.g:4716:2: ( (this_ID_0= RULE_ID | this_QUOTED_ID_1= RULE_QUOTED_ID | kw= Object ) )
12017 // InternalSolverLanguageParser.g:4717:2: (this_ID_0= RULE_ID | this_QUOTED_ID_1= RULE_QUOTED_ID | kw= Object )
12018 {
12019 // InternalSolverLanguageParser.g:4717:2: (this_ID_0= RULE_ID | this_QUOTED_ID_1= RULE_QUOTED_ID | kw= Object )
12020 int alt59=3;
12021 switch ( input.LA(1) ) {
12022 case RULE_ID:
12023 {
12024 alt59=1;
12025 }
12026 break;
12027 case RULE_QUOTED_ID:
12028 {
12029 alt59=2;
12030 }
12031 break;
12032 case Object:
12033 {
12034 alt59=3;
12035 }
12036 break;
12037 default:
12038 NoViableAltException nvae =
12039 new NoViableAltException("", 59, 0, input);
12040
12041 throw nvae;
12042 }
12043
12044 switch (alt59) {
10408 case 1 : 12045 case 1 :
10409 // InternalSolverLanguageParser.g:4109:4: kw= FullStop this_INT_2= RULE_INT 12046 // InternalSolverLanguageParser.g:4718:3: this_ID_0= RULE_ID
10410 { 12047 {
10411 kw=(Token)match(input,FullStop,FOLLOW_53); 12048 this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2);
10412 12049
10413 current.merge(kw); 12050 current.merge(this_ID_0);
10414 newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_1_0()); 12051
10415
10416 this_INT_2=(Token)match(input,RULE_INT,FOLLOW_2);
10417 12052
10418 current.merge(this_INT_2); 12053 newLeafNode(this_ID_0, grammarAccess.getQualifiedNameSegmentAccess().getIDTerminalRuleCall_0());
10419 12054
10420 12055
10421 newLeafNode(this_INT_2, grammarAccess.getRealAccess().getINTTerminalRuleCall_1_1()); 12056 }
10422 12057 break;
12058 case 2 :
12059 // InternalSolverLanguageParser.g:4726:3: this_QUOTED_ID_1= RULE_QUOTED_ID
12060 {
12061 this_QUOTED_ID_1=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2);
12062
12063 current.merge(this_QUOTED_ID_1);
12064
12065
12066 newLeafNode(this_QUOTED_ID_1, grammarAccess.getQualifiedNameSegmentAccess().getQUOTED_IDTerminalRuleCall_1());
12067
10423 12068
10424 } 12069 }
10425 break; 12070 break;
12071 case 3 :
12072 // InternalSolverLanguageParser.g:4734:3: kw= Object
12073 {
12074 kw=(Token)match(input,Object,FOLLOW_2);
10426 12075
10427 } 12076 current.merge(kw);
12077 newLeafNode(kw, grammarAccess.getQualifiedNameSegmentAccess().getObjectKeyword_2());
12078
10428 12079
12080 }
12081 break;
10429 12082
10430 } 12083 }
10431 12084
@@ -10442,17 +12095,14 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10442 appendSkippedTokens(); 12095 appendSkippedTokens();
10443 } 12096 }
10444 finally { 12097 finally {
10445
10446 myHiddenTokenState.restore();
10447
10448 } 12098 }
10449 return current; 12099 return current;
10450 } 12100 }
10451 // $ANTLR end "ruleReal" 12101 // $ANTLR end "ruleQualifiedNameSegment"
10452 12102
10453 12103
10454 // $ANTLR start "entryRuleQualifiedName" 12104 // $ANTLR start "entryRuleQualifiedName"
10455 // InternalSolverLanguageParser.g:4129:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ; 12105 // InternalSolverLanguageParser.g:4743:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
10456 public final String entryRuleQualifiedName() throws RecognitionException { 12106 public final String entryRuleQualifiedName() throws RecognitionException {
10457 String current = null; 12107 String current = null;
10458 12108
@@ -10463,8 +12113,8 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10463 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens(); 12113 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
10464 12114
10465 try { 12115 try {
10466 // InternalSolverLanguageParser.g:4131:2: (iv_ruleQualifiedName= ruleQualifiedName EOF ) 12116 // InternalSolverLanguageParser.g:4745:2: (iv_ruleQualifiedName= ruleQualifiedName EOF )
10467 // InternalSolverLanguageParser.g:4132:2: iv_ruleQualifiedName= ruleQualifiedName EOF 12117 // InternalSolverLanguageParser.g:4746:2: iv_ruleQualifiedName= ruleQualifiedName EOF
10468 { 12118 {
10469 newCompositeNode(grammarAccess.getQualifiedNameRule()); 12119 newCompositeNode(grammarAccess.getQualifiedNameRule());
10470 pushFollow(FOLLOW_1); 12120 pushFollow(FOLLOW_1);
@@ -10494,108 +12144,84 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10494 12144
10495 12145
10496 // $ANTLR start "ruleQualifiedName" 12146 // $ANTLR start "ruleQualifiedName"
10497 // InternalSolverLanguageParser.g:4141:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (this_ID_0= RULE_ID (kw= FullStop this_ID_2= RULE_ID )* ) | this_QUOTED_ID_3= RULE_QUOTED_ID ) ; 12147 // InternalSolverLanguageParser.g:4755:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedNameSegment_0= ruleQualifiedNameSegment (kw= ColonColon this_QualifiedNameSegment_2= ruleQualifiedNameSegment )* ) ;
10498 public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException { 12148 public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
10499 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); 12149 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
10500 12150
10501 Token this_ID_0=null;
10502 Token kw=null; 12151 Token kw=null;
10503 Token this_ID_2=null; 12152 AntlrDatatypeRuleToken this_QualifiedNameSegment_0 = null;
10504 Token this_QUOTED_ID_3=null; 12153
12154 AntlrDatatypeRuleToken this_QualifiedNameSegment_2 = null;
12155
10505 12156
10506 12157
10507 enterRule(); 12158 enterRule();
10508 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens(); 12159 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
10509 12160
10510 try { 12161 try {
10511 // InternalSolverLanguageParser.g:4148:2: ( ( (this_ID_0= RULE_ID (kw= FullStop this_ID_2= RULE_ID )* ) | this_QUOTED_ID_3= RULE_QUOTED_ID ) ) 12162 // InternalSolverLanguageParser.g:4762:2: ( (this_QualifiedNameSegment_0= ruleQualifiedNameSegment (kw= ColonColon this_QualifiedNameSegment_2= ruleQualifiedNameSegment )* ) )
10512 // InternalSolverLanguageParser.g:4149:2: ( (this_ID_0= RULE_ID (kw= FullStop this_ID_2= RULE_ID )* ) | this_QUOTED_ID_3= RULE_QUOTED_ID ) 12163 // InternalSolverLanguageParser.g:4763:2: (this_QualifiedNameSegment_0= ruleQualifiedNameSegment (kw= ColonColon this_QualifiedNameSegment_2= ruleQualifiedNameSegment )* )
12164 {
12165 // InternalSolverLanguageParser.g:4763:2: (this_QualifiedNameSegment_0= ruleQualifiedNameSegment (kw= ColonColon this_QualifiedNameSegment_2= ruleQualifiedNameSegment )* )
12166 // InternalSolverLanguageParser.g:4764:3: this_QualifiedNameSegment_0= ruleQualifiedNameSegment (kw= ColonColon this_QualifiedNameSegment_2= ruleQualifiedNameSegment )*
10513 { 12167 {
10514 // InternalSolverLanguageParser.g:4149:2: ( (this_ID_0= RULE_ID (kw= FullStop this_ID_2= RULE_ID )* ) | this_QUOTED_ID_3= RULE_QUOTED_ID )
10515 int alt52=2;
10516 int LA52_0 = input.LA(1);
10517
10518 if ( (LA52_0==RULE_ID) ) {
10519 alt52=1;
10520 }
10521 else if ( (LA52_0==RULE_QUOTED_ID) ) {
10522 alt52=2;
10523 }
10524 else {
10525 NoViableAltException nvae =
10526 new NoViableAltException("", 52, 0, input);
10527
10528 throw nvae;
10529 }
10530 switch (alt52) {
10531 case 1 :
10532 // InternalSolverLanguageParser.g:4150:3: (this_ID_0= RULE_ID (kw= FullStop this_ID_2= RULE_ID )* )
10533 {
10534 // InternalSolverLanguageParser.g:4150:3: (this_ID_0= RULE_ID (kw= FullStop this_ID_2= RULE_ID )* )
10535 // InternalSolverLanguageParser.g:4151:4: this_ID_0= RULE_ID (kw= FullStop this_ID_2= RULE_ID )*
10536 {
10537 this_ID_0=(Token)match(input,RULE_ID,FOLLOW_59);
10538 12168
10539 current.merge(this_ID_0); 12169 newCompositeNode(grammarAccess.getQualifiedNameAccess().getQualifiedNameSegmentParserRuleCall_0());
10540 12170
12171 pushFollow(FOLLOW_67);
12172 this_QualifiedNameSegment_0=ruleQualifiedNameSegment();
10541 12173
10542 newLeafNode(this_ID_0, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0_0()); 12174 state._fsp--;
10543
10544 // InternalSolverLanguageParser.g:4158:4: (kw= FullStop this_ID_2= RULE_ID )*
10545 loop51:
10546 do {
10547 int alt51=2;
10548 int LA51_0 = input.LA(1);
10549 12175
10550 if ( (LA51_0==FullStop) ) {
10551 alt51=1;
10552 }
10553 12176
12177 current.merge(this_QualifiedNameSegment_0);
12178
10554 12179
10555 switch (alt51) { 12180 afterParserOrEnumRuleCall();
10556 case 1 : 12181
10557 // InternalSolverLanguageParser.g:4159:5: kw= FullStop this_ID_2= RULE_ID 12182 // InternalSolverLanguageParser.g:4774:3: (kw= ColonColon this_QualifiedNameSegment_2= ruleQualifiedNameSegment )*
10558 { 12183 loop60:
10559 kw=(Token)match(input,FullStop,FOLLOW_20); 12184 do {
12185 int alt60=2;
12186 int LA60_0 = input.LA(1);
10560 12187
10561 current.merge(kw); 12188 if ( (LA60_0==ColonColon) ) {
10562 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_0_1_0()); 12189 alt60=1;
10563 12190 }
10564 this_ID_2=(Token)match(input,RULE_ID,FOLLOW_59);
10565 12191
10566 current.merge(this_ID_2);
10567
10568 12192
10569 newLeafNode(this_ID_2, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0_1_1()); 12193 switch (alt60) {
10570 12194 case 1 :
12195 // InternalSolverLanguageParser.g:4775:4: kw= ColonColon this_QualifiedNameSegment_2= ruleQualifiedNameSegment
12196 {
12197 kw=(Token)match(input,ColonColon,FOLLOW_3);
10571 12198
10572 } 12199 current.merge(kw);
10573 break; 12200 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_0());
12201
10574 12202
10575 default : 12203 newCompositeNode(grammarAccess.getQualifiedNameAccess().getQualifiedNameSegmentParserRuleCall_1_1());
10576 break loop51; 12204
10577 } 12205 pushFollow(FOLLOW_67);
10578 } while (true); 12206 this_QualifiedNameSegment_2=ruleQualifiedNameSegment();
10579 12207
12208 state._fsp--;
10580 12209
10581 }
10582 12210
12211 current.merge(this_QualifiedNameSegment_2);
12212
10583 12213
10584 } 12214 afterParserOrEnumRuleCall();
10585 break; 12215
10586 case 2 :
10587 // InternalSolverLanguageParser.g:4174:3: this_QUOTED_ID_3= RULE_QUOTED_ID
10588 {
10589 this_QUOTED_ID_3=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2);
10590 12216
10591 current.merge(this_QUOTED_ID_3); 12217 }
10592 12218 break;
10593 12219
10594 newLeafNode(this_QUOTED_ID_3, grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_1()); 12220 default :
10595 12221 break loop60;
12222 }
12223 } while (true);
10596 12224
10597 }
10598 break;
10599 12225
10600 } 12226 }
10601 12227
@@ -10621,28 +12247,122 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10621 // $ANTLR end "ruleQualifiedName" 12247 // $ANTLR end "ruleQualifiedName"
10622 12248
10623 12249
10624 // $ANTLR start "ruleImplicationOperator" 12250 // $ANTLR start "ruleAttributeKind"
10625 // InternalSolverLanguageParser.g:4188:1: ruleImplicationOperator returns [Enumerator current=null] : (enumLiteral_0= EqualsSignGreaterThanSign ) ; 12251 // InternalSolverLanguageParser.g:4798:1: ruleAttributeKind returns [Enumerator current=null] : ( (enumLiteral_0= Functional ) | (enumLiteral_1= Error ) | (enumLiteral_2= Root ) | (enumLiteral_3= Containment ) ) ;
10626 public final Enumerator ruleImplicationOperator() throws RecognitionException { 12252 public final Enumerator ruleAttributeKind() throws RecognitionException {
10627 Enumerator current = null; 12253 Enumerator current = null;
10628 12254
10629 Token enumLiteral_0=null; 12255 Token enumLiteral_0=null;
12256 Token enumLiteral_1=null;
12257 Token enumLiteral_2=null;
12258 Token enumLiteral_3=null;
10630 12259
10631 12260
10632 enterRule(); 12261 enterRule();
10633 12262
10634 try { 12263 try {
10635 // InternalSolverLanguageParser.g:4194:2: ( (enumLiteral_0= EqualsSignGreaterThanSign ) ) 12264 // InternalSolverLanguageParser.g:4804:2: ( ( (enumLiteral_0= Functional ) | (enumLiteral_1= Error ) | (enumLiteral_2= Root ) | (enumLiteral_3= Containment ) ) )
10636 // InternalSolverLanguageParser.g:4195:2: (enumLiteral_0= EqualsSignGreaterThanSign ) 12265 // InternalSolverLanguageParser.g:4805:2: ( (enumLiteral_0= Functional ) | (enumLiteral_1= Error ) | (enumLiteral_2= Root ) | (enumLiteral_3= Containment ) )
10637 {
10638 // InternalSolverLanguageParser.g:4195:2: (enumLiteral_0= EqualsSignGreaterThanSign )
10639 // InternalSolverLanguageParser.g:4196:3: enumLiteral_0= EqualsSignGreaterThanSign
10640 { 12266 {
10641 enumLiteral_0=(Token)match(input,EqualsSignGreaterThanSign,FOLLOW_2); 12267 // InternalSolverLanguageParser.g:4805:2: ( (enumLiteral_0= Functional ) | (enumLiteral_1= Error ) | (enumLiteral_2= Root ) | (enumLiteral_3= Containment ) )
12268 int alt61=4;
12269 switch ( input.LA(1) ) {
12270 case Functional:
12271 {
12272 alt61=1;
12273 }
12274 break;
12275 case Error:
12276 {
12277 alt61=2;
12278 }
12279 break;
12280 case Root:
12281 {
12282 alt61=3;
12283 }
12284 break;
12285 case Containment:
12286 {
12287 alt61=4;
12288 }
12289 break;
12290 default:
12291 NoViableAltException nvae =
12292 new NoViableAltException("", 61, 0, input);
10642 12293
10643 current = grammarAccess.getImplicationOperatorAccess().getIMPLIESEnumLiteralDeclaration().getEnumLiteral().getInstance(); 12294 throw nvae;
10644 newLeafNode(enumLiteral_0, grammarAccess.getImplicationOperatorAccess().getIMPLIESEnumLiteralDeclaration()); 12295 }
10645 12296
12297 switch (alt61) {
12298 case 1 :
12299 // InternalSolverLanguageParser.g:4806:3: (enumLiteral_0= Functional )
12300 {
12301 // InternalSolverLanguageParser.g:4806:3: (enumLiteral_0= Functional )
12302 // InternalSolverLanguageParser.g:4807:4: enumLiteral_0= Functional
12303 {
12304 enumLiteral_0=(Token)match(input,Functional,FOLLOW_2);
12305
12306 current = grammarAccess.getAttributeKindAccess().getFUNCTIONALEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
12307 newLeafNode(enumLiteral_0, grammarAccess.getAttributeKindAccess().getFUNCTIONALEnumLiteralDeclaration_0());
12308
12309
12310 }
12311
12312
12313 }
12314 break;
12315 case 2 :
12316 // InternalSolverLanguageParser.g:4814:3: (enumLiteral_1= Error )
12317 {
12318 // InternalSolverLanguageParser.g:4814:3: (enumLiteral_1= Error )
12319 // InternalSolverLanguageParser.g:4815:4: enumLiteral_1= Error
12320 {
12321 enumLiteral_1=(Token)match(input,Error,FOLLOW_2);
12322
12323 current = grammarAccess.getAttributeKindAccess().getERROREnumLiteralDeclaration_1().getEnumLiteral().getInstance();
12324 newLeafNode(enumLiteral_1, grammarAccess.getAttributeKindAccess().getERROREnumLiteralDeclaration_1());
12325
12326
12327 }
12328
12329
12330 }
12331 break;
12332 case 3 :
12333 // InternalSolverLanguageParser.g:4822:3: (enumLiteral_2= Root )
12334 {
12335 // InternalSolverLanguageParser.g:4822:3: (enumLiteral_2= Root )
12336 // InternalSolverLanguageParser.g:4823:4: enumLiteral_2= Root
12337 {
12338 enumLiteral_2=(Token)match(input,Root,FOLLOW_2);
12339
12340 current = grammarAccess.getAttributeKindAccess().getROOTEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
12341 newLeafNode(enumLiteral_2, grammarAccess.getAttributeKindAccess().getROOTEnumLiteralDeclaration_2());
12342
12343
12344 }
12345
12346
12347 }
12348 break;
12349 case 4 :
12350 // InternalSolverLanguageParser.g:4830:3: (enumLiteral_3= Containment )
12351 {
12352 // InternalSolverLanguageParser.g:4830:3: (enumLiteral_3= Containment )
12353 // InternalSolverLanguageParser.g:4831:4: enumLiteral_3= Containment
12354 {
12355 enumLiteral_3=(Token)match(input,Containment,FOLLOW_2);
12356
12357 current = grammarAccess.getAttributeKindAccess().getCONTAINMENTEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
12358 newLeafNode(enumLiteral_3, grammarAccess.getAttributeKindAccess().getCONTAINMENTEnumLiteralDeclaration_3());
12359
12360
12361 }
12362
12363
12364 }
12365 break;
10646 12366
10647 } 12367 }
10648 12368
@@ -10662,11 +12382,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10662 } 12382 }
10663 return current; 12383 return current;
10664 } 12384 }
10665 // $ANTLR end "ruleImplicationOperator" 12385 // $ANTLR end "ruleAttributeKind"
10666 12386
10667 12387
10668 // $ANTLR start "ruleComparisonOperator" 12388 // $ANTLR start "ruleComparisonOperator"
10669 // InternalSolverLanguageParser.g:4205:1: ruleComparisonOperator returns [Enumerator current=null] : ( (enumLiteral_0= EqualsSignEqualsSign ) | (enumLiteral_1= ExclamationMarkEqualsSign ) | (enumLiteral_2= LessThanSign ) | (enumLiteral_3= LessThanSignEqualsSign ) | (enumLiteral_4= GreaterThanSign ) | (enumLiteral_5= GreaterThanSignEqualsSign ) | (enumLiteral_6= In ) ) ; 12389 // InternalSolverLanguageParser.g:4841:1: ruleComparisonOperator returns [Enumerator current=null] : ( (enumLiteral_0= EqualsSignEqualsSign ) | (enumLiteral_1= ExclamationMarkEqualsSign ) | (enumLiteral_2= LessThanSign ) | (enumLiteral_3= LessThanSignEqualsSign ) | (enumLiteral_4= GreaterThanSign ) | (enumLiteral_5= GreaterThanSignEqualsSign ) | (enumLiteral_6= In ) ) ;
10670 public final Enumerator ruleComparisonOperator() throws RecognitionException { 12390 public final Enumerator ruleComparisonOperator() throws RecognitionException {
10671 Enumerator current = null; 12391 Enumerator current = null;
10672 12392
@@ -10682,65 +12402,65 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10682 enterRule(); 12402 enterRule();
10683 12403
10684 try { 12404 try {
10685 // InternalSolverLanguageParser.g:4211:2: ( ( (enumLiteral_0= EqualsSignEqualsSign ) | (enumLiteral_1= ExclamationMarkEqualsSign ) | (enumLiteral_2= LessThanSign ) | (enumLiteral_3= LessThanSignEqualsSign ) | (enumLiteral_4= GreaterThanSign ) | (enumLiteral_5= GreaterThanSignEqualsSign ) | (enumLiteral_6= In ) ) ) 12405 // InternalSolverLanguageParser.g:4847:2: ( ( (enumLiteral_0= EqualsSignEqualsSign ) | (enumLiteral_1= ExclamationMarkEqualsSign ) | (enumLiteral_2= LessThanSign ) | (enumLiteral_3= LessThanSignEqualsSign ) | (enumLiteral_4= GreaterThanSign ) | (enumLiteral_5= GreaterThanSignEqualsSign ) | (enumLiteral_6= In ) ) )
10686 // InternalSolverLanguageParser.g:4212:2: ( (enumLiteral_0= EqualsSignEqualsSign ) | (enumLiteral_1= ExclamationMarkEqualsSign ) | (enumLiteral_2= LessThanSign ) | (enumLiteral_3= LessThanSignEqualsSign ) | (enumLiteral_4= GreaterThanSign ) | (enumLiteral_5= GreaterThanSignEqualsSign ) | (enumLiteral_6= In ) ) 12406 // InternalSolverLanguageParser.g:4848:2: ( (enumLiteral_0= EqualsSignEqualsSign ) | (enumLiteral_1= ExclamationMarkEqualsSign ) | (enumLiteral_2= LessThanSign ) | (enumLiteral_3= LessThanSignEqualsSign ) | (enumLiteral_4= GreaterThanSign ) | (enumLiteral_5= GreaterThanSignEqualsSign ) | (enumLiteral_6= In ) )
10687 { 12407 {
10688 // InternalSolverLanguageParser.g:4212:2: ( (enumLiteral_0= EqualsSignEqualsSign ) | (enumLiteral_1= ExclamationMarkEqualsSign ) | (enumLiteral_2= LessThanSign ) | (enumLiteral_3= LessThanSignEqualsSign ) | (enumLiteral_4= GreaterThanSign ) | (enumLiteral_5= GreaterThanSignEqualsSign ) | (enumLiteral_6= In ) ) 12408 // InternalSolverLanguageParser.g:4848:2: ( (enumLiteral_0= EqualsSignEqualsSign ) | (enumLiteral_1= ExclamationMarkEqualsSign ) | (enumLiteral_2= LessThanSign ) | (enumLiteral_3= LessThanSignEqualsSign ) | (enumLiteral_4= GreaterThanSign ) | (enumLiteral_5= GreaterThanSignEqualsSign ) | (enumLiteral_6= In ) )
10689 int alt53=7; 12409 int alt62=7;
10690 switch ( input.LA(1) ) { 12410 switch ( input.LA(1) ) {
10691 case EqualsSignEqualsSign: 12411 case EqualsSignEqualsSign:
10692 { 12412 {
10693 alt53=1; 12413 alt62=1;
10694 } 12414 }
10695 break; 12415 break;
10696 case ExclamationMarkEqualsSign: 12416 case ExclamationMarkEqualsSign:
10697 { 12417 {
10698 alt53=2; 12418 alt62=2;
10699 } 12419 }
10700 break; 12420 break;
10701 case LessThanSign: 12421 case LessThanSign:
10702 { 12422 {
10703 alt53=3; 12423 alt62=3;
10704 } 12424 }
10705 break; 12425 break;
10706 case LessThanSignEqualsSign: 12426 case LessThanSignEqualsSign:
10707 { 12427 {
10708 alt53=4; 12428 alt62=4;
10709 } 12429 }
10710 break; 12430 break;
10711 case GreaterThanSign: 12431 case GreaterThanSign:
10712 { 12432 {
10713 alt53=5; 12433 alt62=5;
10714 } 12434 }
10715 break; 12435 break;
10716 case GreaterThanSignEqualsSign: 12436 case GreaterThanSignEqualsSign:
10717 { 12437 {
10718 alt53=6; 12438 alt62=6;
10719 } 12439 }
10720 break; 12440 break;
10721 case In: 12441 case In:
10722 { 12442 {
10723 alt53=7; 12443 alt62=7;
10724 } 12444 }
10725 break; 12445 break;
10726 default: 12446 default:
10727 NoViableAltException nvae = 12447 NoViableAltException nvae =
10728 new NoViableAltException("", 53, 0, input); 12448 new NoViableAltException("", 62, 0, input);
10729 12449
10730 throw nvae; 12450 throw nvae;
10731 } 12451 }
10732 12452
10733 switch (alt53) { 12453 switch (alt62) {
10734 case 1 : 12454 case 1 :
10735 // InternalSolverLanguageParser.g:4213:3: (enumLiteral_0= EqualsSignEqualsSign ) 12455 // InternalSolverLanguageParser.g:4849:3: (enumLiteral_0= EqualsSignEqualsSign )
10736 { 12456 {
10737 // InternalSolverLanguageParser.g:4213:3: (enumLiteral_0= EqualsSignEqualsSign ) 12457 // InternalSolverLanguageParser.g:4849:3: (enumLiteral_0= EqualsSignEqualsSign )
10738 // InternalSolverLanguageParser.g:4214:4: enumLiteral_0= EqualsSignEqualsSign 12458 // InternalSolverLanguageParser.g:4850:4: enumLiteral_0= EqualsSignEqualsSign
10739 { 12459 {
10740 enumLiteral_0=(Token)match(input,EqualsSignEqualsSign,FOLLOW_2); 12460 enumLiteral_0=(Token)match(input,EqualsSignEqualsSign,FOLLOW_2);
10741 12461
10742 current = grammarAccess.getComparisonOperatorAccess().getEQEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); 12462 current = grammarAccess.getComparisonOperatorAccess().getEQUALSEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
10743 newLeafNode(enumLiteral_0, grammarAccess.getComparisonOperatorAccess().getEQEnumLiteralDeclaration_0()); 12463 newLeafNode(enumLiteral_0, grammarAccess.getComparisonOperatorAccess().getEQUALSEnumLiteralDeclaration_0());
10744 12464
10745 12465
10746 } 12466 }
@@ -10749,15 +12469,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10749 } 12469 }
10750 break; 12470 break;
10751 case 2 : 12471 case 2 :
10752 // InternalSolverLanguageParser.g:4221:3: (enumLiteral_1= ExclamationMarkEqualsSign ) 12472 // InternalSolverLanguageParser.g:4857:3: (enumLiteral_1= ExclamationMarkEqualsSign )
10753 { 12473 {
10754 // InternalSolverLanguageParser.g:4221:3: (enumLiteral_1= ExclamationMarkEqualsSign ) 12474 // InternalSolverLanguageParser.g:4857:3: (enumLiteral_1= ExclamationMarkEqualsSign )
10755 // InternalSolverLanguageParser.g:4222:4: enumLiteral_1= ExclamationMarkEqualsSign 12475 // InternalSolverLanguageParser.g:4858:4: enumLiteral_1= ExclamationMarkEqualsSign
10756 { 12476 {
10757 enumLiteral_1=(Token)match(input,ExclamationMarkEqualsSign,FOLLOW_2); 12477 enumLiteral_1=(Token)match(input,ExclamationMarkEqualsSign,FOLLOW_2);
10758 12478
10759 current = grammarAccess.getComparisonOperatorAccess().getNOT_EQEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); 12479 current = grammarAccess.getComparisonOperatorAccess().getNOT_EQUALSEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
10760 newLeafNode(enumLiteral_1, grammarAccess.getComparisonOperatorAccess().getNOT_EQEnumLiteralDeclaration_1()); 12480 newLeafNode(enumLiteral_1, grammarAccess.getComparisonOperatorAccess().getNOT_EQUALSEnumLiteralDeclaration_1());
10761 12481
10762 12482
10763 } 12483 }
@@ -10766,10 +12486,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10766 } 12486 }
10767 break; 12487 break;
10768 case 3 : 12488 case 3 :
10769 // InternalSolverLanguageParser.g:4229:3: (enumLiteral_2= LessThanSign ) 12489 // InternalSolverLanguageParser.g:4865:3: (enumLiteral_2= LessThanSign )
10770 { 12490 {
10771 // InternalSolverLanguageParser.g:4229:3: (enumLiteral_2= LessThanSign ) 12491 // InternalSolverLanguageParser.g:4865:3: (enumLiteral_2= LessThanSign )
10772 // InternalSolverLanguageParser.g:4230:4: enumLiteral_2= LessThanSign 12492 // InternalSolverLanguageParser.g:4866:4: enumLiteral_2= LessThanSign
10773 { 12493 {
10774 enumLiteral_2=(Token)match(input,LessThanSign,FOLLOW_2); 12494 enumLiteral_2=(Token)match(input,LessThanSign,FOLLOW_2);
10775 12495
@@ -10783,15 +12503,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10783 } 12503 }
10784 break; 12504 break;
10785 case 4 : 12505 case 4 :
10786 // InternalSolverLanguageParser.g:4237:3: (enumLiteral_3= LessThanSignEqualsSign ) 12506 // InternalSolverLanguageParser.g:4873:3: (enumLiteral_3= LessThanSignEqualsSign )
10787 { 12507 {
10788 // InternalSolverLanguageParser.g:4237:3: (enumLiteral_3= LessThanSignEqualsSign ) 12508 // InternalSolverLanguageParser.g:4873:3: (enumLiteral_3= LessThanSignEqualsSign )
10789 // InternalSolverLanguageParser.g:4238:4: enumLiteral_3= LessThanSignEqualsSign 12509 // InternalSolverLanguageParser.g:4874:4: enumLiteral_3= LessThanSignEqualsSign
10790 { 12510 {
10791 enumLiteral_3=(Token)match(input,LessThanSignEqualsSign,FOLLOW_2); 12511 enumLiteral_3=(Token)match(input,LessThanSignEqualsSign,FOLLOW_2);
10792 12512
10793 current = grammarAccess.getComparisonOperatorAccess().getLESS_EQEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); 12513 current = grammarAccess.getComparisonOperatorAccess().getLESS_EQUALSEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
10794 newLeafNode(enumLiteral_3, grammarAccess.getComparisonOperatorAccess().getLESS_EQEnumLiteralDeclaration_3()); 12514 newLeafNode(enumLiteral_3, grammarAccess.getComparisonOperatorAccess().getLESS_EQUALSEnumLiteralDeclaration_3());
10795 12515
10796 12516
10797 } 12517 }
@@ -10800,10 +12520,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10800 } 12520 }
10801 break; 12521 break;
10802 case 5 : 12522 case 5 :
10803 // InternalSolverLanguageParser.g:4245:3: (enumLiteral_4= GreaterThanSign ) 12523 // InternalSolverLanguageParser.g:4881:3: (enumLiteral_4= GreaterThanSign )
10804 { 12524 {
10805 // InternalSolverLanguageParser.g:4245:3: (enumLiteral_4= GreaterThanSign ) 12525 // InternalSolverLanguageParser.g:4881:3: (enumLiteral_4= GreaterThanSign )
10806 // InternalSolverLanguageParser.g:4246:4: enumLiteral_4= GreaterThanSign 12526 // InternalSolverLanguageParser.g:4882:4: enumLiteral_4= GreaterThanSign
10807 { 12527 {
10808 enumLiteral_4=(Token)match(input,GreaterThanSign,FOLLOW_2); 12528 enumLiteral_4=(Token)match(input,GreaterThanSign,FOLLOW_2);
10809 12529
@@ -10817,15 +12537,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10817 } 12537 }
10818 break; 12538 break;
10819 case 6 : 12539 case 6 :
10820 // InternalSolverLanguageParser.g:4253:3: (enumLiteral_5= GreaterThanSignEqualsSign ) 12540 // InternalSolverLanguageParser.g:4889:3: (enumLiteral_5= GreaterThanSignEqualsSign )
10821 { 12541 {
10822 // InternalSolverLanguageParser.g:4253:3: (enumLiteral_5= GreaterThanSignEqualsSign ) 12542 // InternalSolverLanguageParser.g:4889:3: (enumLiteral_5= GreaterThanSignEqualsSign )
10823 // InternalSolverLanguageParser.g:4254:4: enumLiteral_5= GreaterThanSignEqualsSign 12543 // InternalSolverLanguageParser.g:4890:4: enumLiteral_5= GreaterThanSignEqualsSign
10824 { 12544 {
10825 enumLiteral_5=(Token)match(input,GreaterThanSignEqualsSign,FOLLOW_2); 12545 enumLiteral_5=(Token)match(input,GreaterThanSignEqualsSign,FOLLOW_2);
10826 12546
10827 current = grammarAccess.getComparisonOperatorAccess().getGREATER_EQEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); 12547 current = grammarAccess.getComparisonOperatorAccess().getGREATER_EQUALSEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
10828 newLeafNode(enumLiteral_5, grammarAccess.getComparisonOperatorAccess().getGREATER_EQEnumLiteralDeclaration_5()); 12548 newLeafNode(enumLiteral_5, grammarAccess.getComparisonOperatorAccess().getGREATER_EQUALSEnumLiteralDeclaration_5());
10829 12549
10830 12550
10831 } 12551 }
@@ -10834,10 +12554,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10834 } 12554 }
10835 break; 12555 break;
10836 case 7 : 12556 case 7 :
10837 // InternalSolverLanguageParser.g:4261:3: (enumLiteral_6= In ) 12557 // InternalSolverLanguageParser.g:4897:3: (enumLiteral_6= In )
10838 { 12558 {
10839 // InternalSolverLanguageParser.g:4261:3: (enumLiteral_6= In ) 12559 // InternalSolverLanguageParser.g:4897:3: (enumLiteral_6= In )
10840 // InternalSolverLanguageParser.g:4262:4: enumLiteral_6= In 12560 // InternalSolverLanguageParser.g:4898:4: enumLiteral_6= In
10841 { 12561 {
10842 enumLiteral_6=(Token)match(input,In,FOLLOW_2); 12562 enumLiteral_6=(Token)match(input,In,FOLLOW_2);
10843 12563
@@ -10873,7 +12593,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10873 12593
10874 12594
10875 // $ANTLR start "ruleAdditiveBinaryOperator" 12595 // $ANTLR start "ruleAdditiveBinaryOperator"
10876 // InternalSolverLanguageParser.g:4272:1: ruleAdditiveBinaryOperator returns [Enumerator current=null] : ( (enumLiteral_0= PlusSign ) | (enumLiteral_1= HyphenMinus ) ) ; 12596 // InternalSolverLanguageParser.g:4908:1: ruleAdditiveBinaryOperator returns [Enumerator current=null] : ( (enumLiteral_0= PlusSign ) | (enumLiteral_1= HyphenMinus ) ) ;
10877 public final Enumerator ruleAdditiveBinaryOperator() throws RecognitionException { 12597 public final Enumerator ruleAdditiveBinaryOperator() throws RecognitionException {
10878 Enumerator current = null; 12598 Enumerator current = null;
10879 12599
@@ -10884,36 +12604,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10884 enterRule(); 12604 enterRule();
10885 12605
10886 try { 12606 try {
10887 // InternalSolverLanguageParser.g:4278:2: ( ( (enumLiteral_0= PlusSign ) | (enumLiteral_1= HyphenMinus ) ) ) 12607 // InternalSolverLanguageParser.g:4914:2: ( ( (enumLiteral_0= PlusSign ) | (enumLiteral_1= HyphenMinus ) ) )
10888 // InternalSolverLanguageParser.g:4279:2: ( (enumLiteral_0= PlusSign ) | (enumLiteral_1= HyphenMinus ) ) 12608 // InternalSolverLanguageParser.g:4915:2: ( (enumLiteral_0= PlusSign ) | (enumLiteral_1= HyphenMinus ) )
10889 { 12609 {
10890 // InternalSolverLanguageParser.g:4279:2: ( (enumLiteral_0= PlusSign ) | (enumLiteral_1= HyphenMinus ) ) 12610 // InternalSolverLanguageParser.g:4915:2: ( (enumLiteral_0= PlusSign ) | (enumLiteral_1= HyphenMinus ) )
10891 int alt54=2; 12611 int alt63=2;
10892 int LA54_0 = input.LA(1); 12612 int LA63_0 = input.LA(1);
10893 12613
10894 if ( (LA54_0==PlusSign) ) { 12614 if ( (LA63_0==PlusSign) ) {
10895 alt54=1; 12615 alt63=1;
10896 } 12616 }
10897 else if ( (LA54_0==HyphenMinus) ) { 12617 else if ( (LA63_0==HyphenMinus) ) {
10898 alt54=2; 12618 alt63=2;
10899 } 12619 }
10900 else { 12620 else {
10901 NoViableAltException nvae = 12621 NoViableAltException nvae =
10902 new NoViableAltException("", 54, 0, input); 12622 new NoViableAltException("", 63, 0, input);
10903 12623
10904 throw nvae; 12624 throw nvae;
10905 } 12625 }
10906 switch (alt54) { 12626 switch (alt63) {
10907 case 1 : 12627 case 1 :
10908 // InternalSolverLanguageParser.g:4280:3: (enumLiteral_0= PlusSign ) 12628 // InternalSolverLanguageParser.g:4916:3: (enumLiteral_0= PlusSign )
10909 { 12629 {
10910 // InternalSolverLanguageParser.g:4280:3: (enumLiteral_0= PlusSign ) 12630 // InternalSolverLanguageParser.g:4916:3: (enumLiteral_0= PlusSign )
10911 // InternalSolverLanguageParser.g:4281:4: enumLiteral_0= PlusSign 12631 // InternalSolverLanguageParser.g:4917:4: enumLiteral_0= PlusSign
10912 { 12632 {
10913 enumLiteral_0=(Token)match(input,PlusSign,FOLLOW_2); 12633 enumLiteral_0=(Token)match(input,PlusSign,FOLLOW_2);
10914 12634
10915 current = grammarAccess.getAdditiveBinaryOperatorAccess().getADDEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); 12635 current = grammarAccess.getAdditiveBinaryOperatorAccess().getPLUSEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
10916 newLeafNode(enumLiteral_0, grammarAccess.getAdditiveBinaryOperatorAccess().getADDEnumLiteralDeclaration_0()); 12636 newLeafNode(enumLiteral_0, grammarAccess.getAdditiveBinaryOperatorAccess().getPLUSEnumLiteralDeclaration_0());
10917 12637
10918 12638
10919 } 12639 }
@@ -10922,15 +12642,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10922 } 12642 }
10923 break; 12643 break;
10924 case 2 : 12644 case 2 :
10925 // InternalSolverLanguageParser.g:4288:3: (enumLiteral_1= HyphenMinus ) 12645 // InternalSolverLanguageParser.g:4924:3: (enumLiteral_1= HyphenMinus )
10926 { 12646 {
10927 // InternalSolverLanguageParser.g:4288:3: (enumLiteral_1= HyphenMinus ) 12647 // InternalSolverLanguageParser.g:4924:3: (enumLiteral_1= HyphenMinus )
10928 // InternalSolverLanguageParser.g:4289:4: enumLiteral_1= HyphenMinus 12648 // InternalSolverLanguageParser.g:4925:4: enumLiteral_1= HyphenMinus
10929 { 12649 {
10930 enumLiteral_1=(Token)match(input,HyphenMinus,FOLLOW_2); 12650 enumLiteral_1=(Token)match(input,HyphenMinus,FOLLOW_2);
10931 12651
10932 current = grammarAccess.getAdditiveBinaryOperatorAccess().getSUBEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); 12652 current = grammarAccess.getAdditiveBinaryOperatorAccess().getMINUSEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
10933 newLeafNode(enumLiteral_1, grammarAccess.getAdditiveBinaryOperatorAccess().getSUBEnumLiteralDeclaration_1()); 12653 newLeafNode(enumLiteral_1, grammarAccess.getAdditiveBinaryOperatorAccess().getMINUSEnumLiteralDeclaration_1());
10934 12654
10935 12655
10936 } 12656 }
@@ -10961,7 +12681,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10961 12681
10962 12682
10963 // $ANTLR start "ruleMultiplicativeBinaryOperator" 12683 // $ANTLR start "ruleMultiplicativeBinaryOperator"
10964 // InternalSolverLanguageParser.g:4299:1: ruleMultiplicativeBinaryOperator returns [Enumerator current=null] : ( (enumLiteral_0= Asterisk ) | (enumLiteral_1= Solidus ) ) ; 12684 // InternalSolverLanguageParser.g:4935:1: ruleMultiplicativeBinaryOperator returns [Enumerator current=null] : ( (enumLiteral_0= Asterisk ) | (enumLiteral_1= Solidus ) ) ;
10965 public final Enumerator ruleMultiplicativeBinaryOperator() throws RecognitionException { 12685 public final Enumerator ruleMultiplicativeBinaryOperator() throws RecognitionException {
10966 Enumerator current = null; 12686 Enumerator current = null;
10967 12687
@@ -10972,36 +12692,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
10972 enterRule(); 12692 enterRule();
10973 12693
10974 try { 12694 try {
10975 // InternalSolverLanguageParser.g:4305:2: ( ( (enumLiteral_0= Asterisk ) | (enumLiteral_1= Solidus ) ) ) 12695 // InternalSolverLanguageParser.g:4941:2: ( ( (enumLiteral_0= Asterisk ) | (enumLiteral_1= Solidus ) ) )
10976 // InternalSolverLanguageParser.g:4306:2: ( (enumLiteral_0= Asterisk ) | (enumLiteral_1= Solidus ) ) 12696 // InternalSolverLanguageParser.g:4942:2: ( (enumLiteral_0= Asterisk ) | (enumLiteral_1= Solidus ) )
10977 { 12697 {
10978 // InternalSolverLanguageParser.g:4306:2: ( (enumLiteral_0= Asterisk ) | (enumLiteral_1= Solidus ) ) 12698 // InternalSolverLanguageParser.g:4942:2: ( (enumLiteral_0= Asterisk ) | (enumLiteral_1= Solidus ) )
10979 int alt55=2; 12699 int alt64=2;
10980 int LA55_0 = input.LA(1); 12700 int LA64_0 = input.LA(1);
10981 12701
10982 if ( (LA55_0==Asterisk) ) { 12702 if ( (LA64_0==Asterisk) ) {
10983 alt55=1; 12703 alt64=1;
10984 } 12704 }
10985 else if ( (LA55_0==Solidus) ) { 12705 else if ( (LA64_0==Solidus) ) {
10986 alt55=2; 12706 alt64=2;
10987 } 12707 }
10988 else { 12708 else {
10989 NoViableAltException nvae = 12709 NoViableAltException nvae =
10990 new NoViableAltException("", 55, 0, input); 12710 new NoViableAltException("", 64, 0, input);
10991 12711
10992 throw nvae; 12712 throw nvae;
10993 } 12713 }
10994 switch (alt55) { 12714 switch (alt64) {
10995 case 1 : 12715 case 1 :
10996 // InternalSolverLanguageParser.g:4307:3: (enumLiteral_0= Asterisk ) 12716 // InternalSolverLanguageParser.g:4943:3: (enumLiteral_0= Asterisk )
10997 { 12717 {
10998 // InternalSolverLanguageParser.g:4307:3: (enumLiteral_0= Asterisk ) 12718 // InternalSolverLanguageParser.g:4943:3: (enumLiteral_0= Asterisk )
10999 // InternalSolverLanguageParser.g:4308:4: enumLiteral_0= Asterisk 12719 // InternalSolverLanguageParser.g:4944:4: enumLiteral_0= Asterisk
11000 { 12720 {
11001 enumLiteral_0=(Token)match(input,Asterisk,FOLLOW_2); 12721 enumLiteral_0=(Token)match(input,Asterisk,FOLLOW_2);
11002 12722
11003 current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); 12723 current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULTIPLYEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
11004 newLeafNode(enumLiteral_0, grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULEnumLiteralDeclaration_0()); 12724 newLeafNode(enumLiteral_0, grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULTIPLYEnumLiteralDeclaration_0());
11005 12725
11006 12726
11007 } 12727 }
@@ -11010,15 +12730,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
11010 } 12730 }
11011 break; 12731 break;
11012 case 2 : 12732 case 2 :
11013 // InternalSolverLanguageParser.g:4315:3: (enumLiteral_1= Solidus ) 12733 // InternalSolverLanguageParser.g:4951:3: (enumLiteral_1= Solidus )
11014 { 12734 {
11015 // InternalSolverLanguageParser.g:4315:3: (enumLiteral_1= Solidus ) 12735 // InternalSolverLanguageParser.g:4951:3: (enumLiteral_1= Solidus )
11016 // InternalSolverLanguageParser.g:4316:4: enumLiteral_1= Solidus 12736 // InternalSolverLanguageParser.g:4952:4: enumLiteral_1= Solidus
11017 { 12737 {
11018 enumLiteral_1=(Token)match(input,Solidus,FOLLOW_2); 12738 enumLiteral_1=(Token)match(input,Solidus,FOLLOW_2);
11019 12739
11020 current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); 12740 current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVIDEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
11021 newLeafNode(enumLiteral_1, grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVEnumLiteralDeclaration_1()); 12741 newLeafNode(enumLiteral_1, grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVIDEEnumLiteralDeclaration_1());
11022 12742
11023 12743
11024 } 12744 }
@@ -11049,7 +12769,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
11049 12769
11050 12770
11051 // $ANTLR start "ruleExponentialOp" 12771 // $ANTLR start "ruleExponentialOp"
11052 // InternalSolverLanguageParser.g:4326:1: ruleExponentialOp returns [Enumerator current=null] : (enumLiteral_0= CircumflexAccent ) ; 12772 // InternalSolverLanguageParser.g:4962:1: ruleExponentialOp returns [Enumerator current=null] : (enumLiteral_0= CircumflexAccent ) ;
11053 public final Enumerator ruleExponentialOp() throws RecognitionException { 12773 public final Enumerator ruleExponentialOp() throws RecognitionException {
11054 Enumerator current = null; 12774 Enumerator current = null;
11055 12775
@@ -11059,11 +12779,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
11059 enterRule(); 12779 enterRule();
11060 12780
11061 try { 12781 try {
11062 // InternalSolverLanguageParser.g:4332:2: ( (enumLiteral_0= CircumflexAccent ) ) 12782 // InternalSolverLanguageParser.g:4968:2: ( (enumLiteral_0= CircumflexAccent ) )
11063 // InternalSolverLanguageParser.g:4333:2: (enumLiteral_0= CircumflexAccent ) 12783 // InternalSolverLanguageParser.g:4969:2: (enumLiteral_0= CircumflexAccent )
11064 { 12784 {
11065 // InternalSolverLanguageParser.g:4333:2: (enumLiteral_0= CircumflexAccent ) 12785 // InternalSolverLanguageParser.g:4969:2: (enumLiteral_0= CircumflexAccent )
11066 // InternalSolverLanguageParser.g:4334:3: enumLiteral_0= CircumflexAccent 12786 // InternalSolverLanguageParser.g:4970:3: enumLiteral_0= CircumflexAccent
11067 { 12787 {
11068 enumLiteral_0=(Token)match(input,CircumflexAccent,FOLLOW_2); 12788 enumLiteral_0=(Token)match(input,CircumflexAccent,FOLLOW_2);
11069 12789
@@ -11092,76 +12812,64 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
11092 // $ANTLR end "ruleExponentialOp" 12812 // $ANTLR end "ruleExponentialOp"
11093 12813
11094 12814
11095 // $ANTLR start "ruleUnaryOp" 12815 // $ANTLR start "ruleUnaryOperator"
11096 // InternalSolverLanguageParser.g:4343:1: ruleUnaryOp returns [Enumerator current=null] : ( (enumLiteral_0= ExclamationMark ) | (enumLiteral_1= PlusSign ) | (enumLiteral_2= HyphenMinus ) | (enumLiteral_3= May ) | (enumLiteral_4= Must ) | (enumLiteral_5= Current ) ) ; 12816 // InternalSolverLanguageParser.g:4979:1: ruleUnaryOperator returns [Enumerator current=null] : ( (enumLiteral_0= ExclamationMark ) | (enumLiteral_1= PlusSign ) | (enumLiteral_2= HyphenMinus ) | (enumLiteral_3= QuestionMark ) ) ;
11097 public final Enumerator ruleUnaryOp() throws RecognitionException { 12817 public final Enumerator ruleUnaryOperator() throws RecognitionException {
11098 Enumerator current = null; 12818 Enumerator current = null;
11099 12819
11100 Token enumLiteral_0=null; 12820 Token enumLiteral_0=null;
11101 Token enumLiteral_1=null; 12821 Token enumLiteral_1=null;
11102 Token enumLiteral_2=null; 12822 Token enumLiteral_2=null;
11103 Token enumLiteral_3=null; 12823 Token enumLiteral_3=null;
11104 Token enumLiteral_4=null;
11105 Token enumLiteral_5=null;
11106 12824
11107 12825
11108 enterRule(); 12826 enterRule();
11109 12827
11110 try { 12828 try {
11111 // InternalSolverLanguageParser.g:4349:2: ( ( (enumLiteral_0= ExclamationMark ) | (enumLiteral_1= PlusSign ) | (enumLiteral_2= HyphenMinus ) | (enumLiteral_3= May ) | (enumLiteral_4= Must ) | (enumLiteral_5= Current ) ) ) 12829 // InternalSolverLanguageParser.g:4985:2: ( ( (enumLiteral_0= ExclamationMark ) | (enumLiteral_1= PlusSign ) | (enumLiteral_2= HyphenMinus ) | (enumLiteral_3= QuestionMark ) ) )
11112 // InternalSolverLanguageParser.g:4350:2: ( (enumLiteral_0= ExclamationMark ) | (enumLiteral_1= PlusSign ) | (enumLiteral_2= HyphenMinus ) | (enumLiteral_3= May ) | (enumLiteral_4= Must ) | (enumLiteral_5= Current ) ) 12830 // InternalSolverLanguageParser.g:4986:2: ( (enumLiteral_0= ExclamationMark ) | (enumLiteral_1= PlusSign ) | (enumLiteral_2= HyphenMinus ) | (enumLiteral_3= QuestionMark ) )
11113 { 12831 {
11114 // InternalSolverLanguageParser.g:4350:2: ( (enumLiteral_0= ExclamationMark ) | (enumLiteral_1= PlusSign ) | (enumLiteral_2= HyphenMinus ) | (enumLiteral_3= May ) | (enumLiteral_4= Must ) | (enumLiteral_5= Current ) ) 12832 // InternalSolverLanguageParser.g:4986:2: ( (enumLiteral_0= ExclamationMark ) | (enumLiteral_1= PlusSign ) | (enumLiteral_2= HyphenMinus ) | (enumLiteral_3= QuestionMark ) )
11115 int alt56=6; 12833 int alt65=4;
11116 switch ( input.LA(1) ) { 12834 switch ( input.LA(1) ) {
11117 case ExclamationMark: 12835 case ExclamationMark:
11118 { 12836 {
11119 alt56=1; 12837 alt65=1;
11120 } 12838 }
11121 break; 12839 break;
11122 case PlusSign: 12840 case PlusSign:
11123 { 12841 {
11124 alt56=2; 12842 alt65=2;
11125 } 12843 }
11126 break; 12844 break;
11127 case HyphenMinus: 12845 case HyphenMinus:
11128 { 12846 {
11129 alt56=3; 12847 alt65=3;
11130 }
11131 break;
11132 case May:
11133 {
11134 alt56=4;
11135 } 12848 }
11136 break; 12849 break;
11137 case Must: 12850 case QuestionMark:
11138 { 12851 {
11139 alt56=5; 12852 alt65=4;
11140 }
11141 break;
11142 case Current:
11143 {
11144 alt56=6;
11145 } 12853 }
11146 break; 12854 break;
11147 default: 12855 default:
11148 NoViableAltException nvae = 12856 NoViableAltException nvae =
11149 new NoViableAltException("", 56, 0, input); 12857 new NoViableAltException("", 65, 0, input);
11150 12858
11151 throw nvae; 12859 throw nvae;
11152 } 12860 }
11153 12861
11154 switch (alt56) { 12862 switch (alt65) {
11155 case 1 : 12863 case 1 :
11156 // InternalSolverLanguageParser.g:4351:3: (enumLiteral_0= ExclamationMark ) 12864 // InternalSolverLanguageParser.g:4987:3: (enumLiteral_0= ExclamationMark )
11157 { 12865 {
11158 // InternalSolverLanguageParser.g:4351:3: (enumLiteral_0= ExclamationMark ) 12866 // InternalSolverLanguageParser.g:4987:3: (enumLiteral_0= ExclamationMark )
11159 // InternalSolverLanguageParser.g:4352:4: enumLiteral_0= ExclamationMark 12867 // InternalSolverLanguageParser.g:4988:4: enumLiteral_0= ExclamationMark
11160 { 12868 {
11161 enumLiteral_0=(Token)match(input,ExclamationMark,FOLLOW_2); 12869 enumLiteral_0=(Token)match(input,ExclamationMark,FOLLOW_2);
11162 12870
11163 current = grammarAccess.getUnaryOpAccess().getNEGEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); 12871 current = grammarAccess.getUnaryOperatorAccess().getNOTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
11164 newLeafNode(enumLiteral_0, grammarAccess.getUnaryOpAccess().getNEGEnumLiteralDeclaration_0()); 12872 newLeafNode(enumLiteral_0, grammarAccess.getUnaryOperatorAccess().getNOTEnumLiteralDeclaration_0());
11165 12873
11166 12874
11167 } 12875 }
@@ -11170,15 +12878,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
11170 } 12878 }
11171 break; 12879 break;
11172 case 2 : 12880 case 2 :
11173 // InternalSolverLanguageParser.g:4359:3: (enumLiteral_1= PlusSign ) 12881 // InternalSolverLanguageParser.g:4995:3: (enumLiteral_1= PlusSign )
11174 { 12882 {
11175 // InternalSolverLanguageParser.g:4359:3: (enumLiteral_1= PlusSign ) 12883 // InternalSolverLanguageParser.g:4995:3: (enumLiteral_1= PlusSign )
11176 // InternalSolverLanguageParser.g:4360:4: enumLiteral_1= PlusSign 12884 // InternalSolverLanguageParser.g:4996:4: enumLiteral_1= PlusSign
11177 { 12885 {
11178 enumLiteral_1=(Token)match(input,PlusSign,FOLLOW_2); 12886 enumLiteral_1=(Token)match(input,PlusSign,FOLLOW_2);
11179 12887
11180 current = grammarAccess.getUnaryOpAccess().getPLUSEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); 12888 current = grammarAccess.getUnaryOperatorAccess().getPLUSEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
11181 newLeafNode(enumLiteral_1, grammarAccess.getUnaryOpAccess().getPLUSEnumLiteralDeclaration_1()); 12889 newLeafNode(enumLiteral_1, grammarAccess.getUnaryOperatorAccess().getPLUSEnumLiteralDeclaration_1());
11182 12890
11183 12891
11184 } 12892 }
@@ -11187,15 +12895,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
11187 } 12895 }
11188 break; 12896 break;
11189 case 3 : 12897 case 3 :
11190 // InternalSolverLanguageParser.g:4367:3: (enumLiteral_2= HyphenMinus ) 12898 // InternalSolverLanguageParser.g:5003:3: (enumLiteral_2= HyphenMinus )
11191 { 12899 {
11192 // InternalSolverLanguageParser.g:4367:3: (enumLiteral_2= HyphenMinus ) 12900 // InternalSolverLanguageParser.g:5003:3: (enumLiteral_2= HyphenMinus )
11193 // InternalSolverLanguageParser.g:4368:4: enumLiteral_2= HyphenMinus 12901 // InternalSolverLanguageParser.g:5004:4: enumLiteral_2= HyphenMinus
11194 { 12902 {
11195 enumLiteral_2=(Token)match(input,HyphenMinus,FOLLOW_2); 12903 enumLiteral_2=(Token)match(input,HyphenMinus,FOLLOW_2);
11196 12904
11197 current = grammarAccess.getUnaryOpAccess().getMINUSEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); 12905 current = grammarAccess.getUnaryOperatorAccess().getMINUSEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
11198 newLeafNode(enumLiteral_2, grammarAccess.getUnaryOpAccess().getMINUSEnumLiteralDeclaration_2()); 12906 newLeafNode(enumLiteral_2, grammarAccess.getUnaryOperatorAccess().getMINUSEnumLiteralDeclaration_2());
11199 12907
11200 12908
11201 } 12909 }
@@ -11204,49 +12912,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
11204 } 12912 }
11205 break; 12913 break;
11206 case 4 : 12914 case 4 :
11207 // InternalSolverLanguageParser.g:4375:3: (enumLiteral_3= May ) 12915 // InternalSolverLanguageParser.g:5011:3: (enumLiteral_3= QuestionMark )
11208 {
11209 // InternalSolverLanguageParser.g:4375:3: (enumLiteral_3= May )
11210 // InternalSolverLanguageParser.g:4376:4: enumLiteral_3= May
11211 {
11212 enumLiteral_3=(Token)match(input,May,FOLLOW_2);
11213
11214 current = grammarAccess.getUnaryOpAccess().getMAYEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
11215 newLeafNode(enumLiteral_3, grammarAccess.getUnaryOpAccess().getMAYEnumLiteralDeclaration_3());
11216
11217
11218 }
11219
11220
11221 }
11222 break;
11223 case 5 :
11224 // InternalSolverLanguageParser.g:4383:3: (enumLiteral_4= Must )
11225 {
11226 // InternalSolverLanguageParser.g:4383:3: (enumLiteral_4= Must )
11227 // InternalSolverLanguageParser.g:4384:4: enumLiteral_4= Must
11228 {
11229 enumLiteral_4=(Token)match(input,Must,FOLLOW_2);
11230
11231 current = grammarAccess.getUnaryOpAccess().getMUSTEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
11232 newLeafNode(enumLiteral_4, grammarAccess.getUnaryOpAccess().getMUSTEnumLiteralDeclaration_4());
11233
11234
11235 }
11236
11237
11238 }
11239 break;
11240 case 6 :
11241 // InternalSolverLanguageParser.g:4391:3: (enumLiteral_5= Current )
11242 { 12916 {
11243 // InternalSolverLanguageParser.g:4391:3: (enumLiteral_5= Current ) 12917 // InternalSolverLanguageParser.g:5011:3: (enumLiteral_3= QuestionMark )
11244 // InternalSolverLanguageParser.g:4392:4: enumLiteral_5= Current 12918 // InternalSolverLanguageParser.g:5012:4: enumLiteral_3= QuestionMark
11245 { 12919 {
11246 enumLiteral_5=(Token)match(input,Current,FOLLOW_2); 12920 enumLiteral_3=(Token)match(input,QuestionMark,FOLLOW_2);
11247 12921
11248 current = grammarAccess.getUnaryOpAccess().getCURRENTEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); 12922 current = grammarAccess.getUnaryOperatorAccess().getMAYBEEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
11249 newLeafNode(enumLiteral_5, grammarAccess.getUnaryOpAccess().getCURRENTEnumLiteralDeclaration_5()); 12923 newLeafNode(enumLiteral_3, grammarAccess.getUnaryOperatorAccess().getMAYBEEnumLiteralDeclaration_3());
11250 12924
11251 12925
11252 } 12926 }
@@ -11273,126 +12947,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
11273 } 12947 }
11274 return current; 12948 return current;
11275 } 12949 }
11276 // $ANTLR end "ruleUnaryOp" 12950 // $ANTLR end "ruleUnaryOperator"
11277
11278
11279 // $ANTLR start "ruleQuantifier"
11280 // InternalSolverLanguageParser.g:4402:1: ruleQuantifier returns [Enumerator current=null] : ( (enumLiteral_0= Exists ) | (enumLiteral_1= Forall ) | (enumLiteral_2= Count ) ) ;
11281 public final Enumerator ruleQuantifier() throws RecognitionException {
11282 Enumerator current = null;
11283
11284 Token enumLiteral_0=null;
11285 Token enumLiteral_1=null;
11286 Token enumLiteral_2=null;
11287
11288
11289 enterRule();
11290
11291 try {
11292 // InternalSolverLanguageParser.g:4408:2: ( ( (enumLiteral_0= Exists ) | (enumLiteral_1= Forall ) | (enumLiteral_2= Count ) ) )
11293 // InternalSolverLanguageParser.g:4409:2: ( (enumLiteral_0= Exists ) | (enumLiteral_1= Forall ) | (enumLiteral_2= Count ) )
11294 {
11295 // InternalSolverLanguageParser.g:4409:2: ( (enumLiteral_0= Exists ) | (enumLiteral_1= Forall ) | (enumLiteral_2= Count ) )
11296 int alt57=3;
11297 switch ( input.LA(1) ) {
11298 case Exists:
11299 {
11300 alt57=1;
11301 }
11302 break;
11303 case Forall:
11304 {
11305 alt57=2;
11306 }
11307 break;
11308 case Count:
11309 {
11310 alt57=3;
11311 }
11312 break;
11313 default:
11314 NoViableAltException nvae =
11315 new NoViableAltException("", 57, 0, input);
11316
11317 throw nvae;
11318 }
11319
11320 switch (alt57) {
11321 case 1 :
11322 // InternalSolverLanguageParser.g:4410:3: (enumLiteral_0= Exists )
11323 {
11324 // InternalSolverLanguageParser.g:4410:3: (enumLiteral_0= Exists )
11325 // InternalSolverLanguageParser.g:4411:4: enumLiteral_0= Exists
11326 {
11327 enumLiteral_0=(Token)match(input,Exists,FOLLOW_2);
11328
11329 current = grammarAccess.getQuantifierAccess().getEXISTSEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
11330 newLeafNode(enumLiteral_0, grammarAccess.getQuantifierAccess().getEXISTSEnumLiteralDeclaration_0());
11331
11332
11333 }
11334
11335
11336 }
11337 break;
11338 case 2 :
11339 // InternalSolverLanguageParser.g:4418:3: (enumLiteral_1= Forall )
11340 {
11341 // InternalSolverLanguageParser.g:4418:3: (enumLiteral_1= Forall )
11342 // InternalSolverLanguageParser.g:4419:4: enumLiteral_1= Forall
11343 {
11344 enumLiteral_1=(Token)match(input,Forall,FOLLOW_2);
11345
11346 current = grammarAccess.getQuantifierAccess().getFORALLEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
11347 newLeafNode(enumLiteral_1, grammarAccess.getQuantifierAccess().getFORALLEnumLiteralDeclaration_1());
11348
11349
11350 }
11351
11352
11353 }
11354 break;
11355 case 3 :
11356 // InternalSolverLanguageParser.g:4426:3: (enumLiteral_2= Count )
11357 {
11358 // InternalSolverLanguageParser.g:4426:3: (enumLiteral_2= Count )
11359 // InternalSolverLanguageParser.g:4427:4: enumLiteral_2= Count
11360 {
11361 enumLiteral_2=(Token)match(input,Count,FOLLOW_2);
11362
11363 current = grammarAccess.getQuantifierAccess().getCOUNTEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
11364 newLeafNode(enumLiteral_2, grammarAccess.getQuantifierAccess().getCOUNTEnumLiteralDeclaration_2());
11365
11366
11367 }
11368
11369
11370 }
11371 break;
11372
11373 }
11374
11375
11376 }
11377
11378
11379 leaveRule();
11380
11381 }
11382
11383 catch (RecognitionException re) {
11384 recover(input,re);
11385 appendSkippedTokens();
11386 }
11387 finally {
11388 }
11389 return current;
11390 }
11391 // $ANTLR end "ruleQuantifier"
11392 12951
11393 12952
11394 // $ANTLR start "ruleLogicValue" 12953 // $ANTLR start "ruleLogicValue"
11395 // InternalSolverLanguageParser.g:4437:1: ruleLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= True ) | (enumLiteral_1= False ) | (enumLiteral_2= Unknown ) | (enumLiteral_3= Error ) ) ; 12954 // InternalSolverLanguageParser.g:5022:1: ruleLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= True ) | (enumLiteral_1= False ) | (enumLiteral_2= Unknown ) | (enumLiteral_3= Error ) ) ;
11396 public final Enumerator ruleLogicValue() throws RecognitionException { 12955 public final Enumerator ruleLogicValue() throws RecognitionException {
11397 Enumerator current = null; 12956 Enumerator current = null;
11398 12957
@@ -11405,45 +12964,45 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
11405 enterRule(); 12964 enterRule();
11406 12965
11407 try { 12966 try {
11408 // InternalSolverLanguageParser.g:4443:2: ( ( (enumLiteral_0= True ) | (enumLiteral_1= False ) | (enumLiteral_2= Unknown ) | (enumLiteral_3= Error ) ) ) 12967 // InternalSolverLanguageParser.g:5028:2: ( ( (enumLiteral_0= True ) | (enumLiteral_1= False ) | (enumLiteral_2= Unknown ) | (enumLiteral_3= Error ) ) )
11409 // InternalSolverLanguageParser.g:4444:2: ( (enumLiteral_0= True ) | (enumLiteral_1= False ) | (enumLiteral_2= Unknown ) | (enumLiteral_3= Error ) ) 12968 // InternalSolverLanguageParser.g:5029:2: ( (enumLiteral_0= True ) | (enumLiteral_1= False ) | (enumLiteral_2= Unknown ) | (enumLiteral_3= Error ) )
11410 { 12969 {
11411 // InternalSolverLanguageParser.g:4444:2: ( (enumLiteral_0= True ) | (enumLiteral_1= False ) | (enumLiteral_2= Unknown ) | (enumLiteral_3= Error ) ) 12970 // InternalSolverLanguageParser.g:5029:2: ( (enumLiteral_0= True ) | (enumLiteral_1= False ) | (enumLiteral_2= Unknown ) | (enumLiteral_3= Error ) )
11412 int alt58=4; 12971 int alt66=4;
11413 switch ( input.LA(1) ) { 12972 switch ( input.LA(1) ) {
11414 case True: 12973 case True:
11415 { 12974 {
11416 alt58=1; 12975 alt66=1;
11417 } 12976 }
11418 break; 12977 break;
11419 case False: 12978 case False:
11420 { 12979 {
11421 alt58=2; 12980 alt66=2;
11422 } 12981 }
11423 break; 12982 break;
11424 case Unknown: 12983 case Unknown:
11425 { 12984 {
11426 alt58=3; 12985 alt66=3;
11427 } 12986 }
11428 break; 12987 break;
11429 case Error: 12988 case Error:
11430 { 12989 {
11431 alt58=4; 12990 alt66=4;
11432 } 12991 }
11433 break; 12992 break;
11434 default: 12993 default:
11435 NoViableAltException nvae = 12994 NoViableAltException nvae =
11436 new NoViableAltException("", 58, 0, input); 12995 new NoViableAltException("", 66, 0, input);
11437 12996
11438 throw nvae; 12997 throw nvae;
11439 } 12998 }
11440 12999
11441 switch (alt58) { 13000 switch (alt66) {
11442 case 1 : 13001 case 1 :
11443 // InternalSolverLanguageParser.g:4445:3: (enumLiteral_0= True ) 13002 // InternalSolverLanguageParser.g:5030:3: (enumLiteral_0= True )
11444 { 13003 {
11445 // InternalSolverLanguageParser.g:4445:3: (enumLiteral_0= True ) 13004 // InternalSolverLanguageParser.g:5030:3: (enumLiteral_0= True )
11446 // InternalSolverLanguageParser.g:4446:4: enumLiteral_0= True 13005 // InternalSolverLanguageParser.g:5031:4: enumLiteral_0= True
11447 { 13006 {
11448 enumLiteral_0=(Token)match(input,True,FOLLOW_2); 13007 enumLiteral_0=(Token)match(input,True,FOLLOW_2);
11449 13008
@@ -11457,10 +13016,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
11457 } 13016 }
11458 break; 13017 break;
11459 case 2 : 13018 case 2 :
11460 // InternalSolverLanguageParser.g:4453:3: (enumLiteral_1= False ) 13019 // InternalSolverLanguageParser.g:5038:3: (enumLiteral_1= False )
11461 { 13020 {
11462 // InternalSolverLanguageParser.g:4453:3: (enumLiteral_1= False ) 13021 // InternalSolverLanguageParser.g:5038:3: (enumLiteral_1= False )
11463 // InternalSolverLanguageParser.g:4454:4: enumLiteral_1= False 13022 // InternalSolverLanguageParser.g:5039:4: enumLiteral_1= False
11464 { 13023 {
11465 enumLiteral_1=(Token)match(input,False,FOLLOW_2); 13024 enumLiteral_1=(Token)match(input,False,FOLLOW_2);
11466 13025
@@ -11474,10 +13033,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
11474 } 13033 }
11475 break; 13034 break;
11476 case 3 : 13035 case 3 :
11477 // InternalSolverLanguageParser.g:4461:3: (enumLiteral_2= Unknown ) 13036 // InternalSolverLanguageParser.g:5046:3: (enumLiteral_2= Unknown )
11478 { 13037 {
11479 // InternalSolverLanguageParser.g:4461:3: (enumLiteral_2= Unknown ) 13038 // InternalSolverLanguageParser.g:5046:3: (enumLiteral_2= Unknown )
11480 // InternalSolverLanguageParser.g:4462:4: enumLiteral_2= Unknown 13039 // InternalSolverLanguageParser.g:5047:4: enumLiteral_2= Unknown
11481 { 13040 {
11482 enumLiteral_2=(Token)match(input,Unknown,FOLLOW_2); 13041 enumLiteral_2=(Token)match(input,Unknown,FOLLOW_2);
11483 13042
@@ -11491,10 +13050,10 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
11491 } 13050 }
11492 break; 13051 break;
11493 case 4 : 13052 case 4 :
11494 // InternalSolverLanguageParser.g:4469:3: (enumLiteral_3= Error ) 13053 // InternalSolverLanguageParser.g:5054:3: (enumLiteral_3= Error )
11495 { 13054 {
11496 // InternalSolverLanguageParser.g:4469:3: (enumLiteral_3= Error ) 13055 // InternalSolverLanguageParser.g:5054:3: (enumLiteral_3= Error )
11497 // InternalSolverLanguageParser.g:4470:4: enumLiteral_3= Error 13056 // InternalSolverLanguageParser.g:5055:4: enumLiteral_3= Error
11498 { 13057 {
11499 enumLiteral_3=(Token)match(input,Error,FOLLOW_2); 13058 enumLiteral_3=(Token)match(input,Error,FOLLOW_2);
11500 13059
@@ -11530,7 +13089,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
11530 13089
11531 13090
11532 // $ANTLR start "ruleObjectiveKind" 13091 // $ANTLR start "ruleObjectiveKind"
11533 // InternalSolverLanguageParser.g:4480:1: ruleObjectiveKind returns [Enumerator current=null] : ( (enumLiteral_0= Minimize ) | (enumLiteral_1= Maximize ) ) ; 13092 // InternalSolverLanguageParser.g:5065:1: ruleObjectiveKind returns [Enumerator current=null] : ( (enumLiteral_0= Minimize ) | (enumLiteral_1= Maximize ) ) ;
11534 public final Enumerator ruleObjectiveKind() throws RecognitionException { 13093 public final Enumerator ruleObjectiveKind() throws RecognitionException {
11535 Enumerator current = null; 13094 Enumerator current = null;
11536 13095
@@ -11541,36 +13100,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
11541 enterRule(); 13100 enterRule();
11542 13101
11543 try { 13102 try {
11544 // InternalSolverLanguageParser.g:4486:2: ( ( (enumLiteral_0= Minimize ) | (enumLiteral_1= Maximize ) ) ) 13103 // InternalSolverLanguageParser.g:5071:2: ( ( (enumLiteral_0= Minimize ) | (enumLiteral_1= Maximize ) ) )
11545 // InternalSolverLanguageParser.g:4487:2: ( (enumLiteral_0= Minimize ) | (enumLiteral_1= Maximize ) ) 13104 // InternalSolverLanguageParser.g:5072:2: ( (enumLiteral_0= Minimize ) | (enumLiteral_1= Maximize ) )
11546 { 13105 {
11547 // InternalSolverLanguageParser.g:4487:2: ( (enumLiteral_0= Minimize ) | (enumLiteral_1= Maximize ) ) 13106 // InternalSolverLanguageParser.g:5072:2: ( (enumLiteral_0= Minimize ) | (enumLiteral_1= Maximize ) )
11548 int alt59=2; 13107 int alt67=2;
11549 int LA59_0 = input.LA(1); 13108 int LA67_0 = input.LA(1);
11550 13109
11551 if ( (LA59_0==Minimize) ) { 13110 if ( (LA67_0==Minimize) ) {
11552 alt59=1; 13111 alt67=1;
11553 } 13112 }
11554 else if ( (LA59_0==Maximize) ) { 13113 else if ( (LA67_0==Maximize) ) {
11555 alt59=2; 13114 alt67=2;
11556 } 13115 }
11557 else { 13116 else {
11558 NoViableAltException nvae = 13117 NoViableAltException nvae =
11559 new NoViableAltException("", 59, 0, input); 13118 new NoViableAltException("", 67, 0, input);
11560 13119
11561 throw nvae; 13120 throw nvae;
11562 } 13121 }
11563 switch (alt59) { 13122 switch (alt67) {
11564 case 1 : 13123 case 1 :
11565 // InternalSolverLanguageParser.g:4488:3: (enumLiteral_0= Minimize ) 13124 // InternalSolverLanguageParser.g:5073:3: (enumLiteral_0= Minimize )
11566 { 13125 {
11567 // InternalSolverLanguageParser.g:4488:3: (enumLiteral_0= Minimize ) 13126 // InternalSolverLanguageParser.g:5073:3: (enumLiteral_0= Minimize )
11568 // InternalSolverLanguageParser.g:4489:4: enumLiteral_0= Minimize 13127 // InternalSolverLanguageParser.g:5074:4: enumLiteral_0= Minimize
11569 { 13128 {
11570 enumLiteral_0=(Token)match(input,Minimize,FOLLOW_2); 13129 enumLiteral_0=(Token)match(input,Minimize,FOLLOW_2);
11571 13130
11572 current = grammarAccess.getObjectiveKindAccess().getMINIMIZEEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); 13131 current = grammarAccess.getObjectiveKindAccess().getMINIMIZATIONEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
11573 newLeafNode(enumLiteral_0, grammarAccess.getObjectiveKindAccess().getMINIMIZEEnumLiteralDeclaration_0()); 13132 newLeafNode(enumLiteral_0, grammarAccess.getObjectiveKindAccess().getMINIMIZATIONEnumLiteralDeclaration_0());
11574 13133
11575 13134
11576 } 13135 }
@@ -11579,15 +13138,15 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
11579 } 13138 }
11580 break; 13139 break;
11581 case 2 : 13140 case 2 :
11582 // InternalSolverLanguageParser.g:4496:3: (enumLiteral_1= Maximize ) 13141 // InternalSolverLanguageParser.g:5081:3: (enumLiteral_1= Maximize )
11583 { 13142 {
11584 // InternalSolverLanguageParser.g:4496:3: (enumLiteral_1= Maximize ) 13143 // InternalSolverLanguageParser.g:5081:3: (enumLiteral_1= Maximize )
11585 // InternalSolverLanguageParser.g:4497:4: enumLiteral_1= Maximize 13144 // InternalSolverLanguageParser.g:5082:4: enumLiteral_1= Maximize
11586 { 13145 {
11587 enumLiteral_1=(Token)match(input,Maximize,FOLLOW_2); 13146 enumLiteral_1=(Token)match(input,Maximize,FOLLOW_2);
11588 13147
11589 current = grammarAccess.getObjectiveKindAccess().getMAXIMIZEEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); 13148 current = grammarAccess.getObjectiveKindAccess().getMAXIMIZATIONEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
11590 newLeafNode(enumLiteral_1, grammarAccess.getObjectiveKindAccess().getMAXIMIZEEnumLiteralDeclaration_1()); 13149 newLeafNode(enumLiteral_1, grammarAccess.getObjectiveKindAccess().getMAXIMIZATIONEnumLiteralDeclaration_1());
11591 13150
11592 13151
11593 } 13152 }
@@ -11619,44 +13178,47 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
11619 // Delegated rules 13178 // Delegated rules
11620 13179
11621 13180
11622 protected DFA2 dfa2 = new DFA2(this); 13181 protected DFA4 dfa4 = new DFA4(this);
11623 protected DFA23 dfa23 = new DFA23(this); 13182 protected DFA13 dfa13 = new DFA13(this);
11624 protected DFA29 dfa29 = new DFA29(this); 13183 protected DFA30 dfa30 = new DFA30(this);
11625 protected DFA33 dfa33 = new DFA33(this); 13184 protected DFA31 dfa31 = new DFA31(this);
11626 protected DFA44 dfa44 = new DFA44(this); 13185 protected DFA34 dfa34 = new DFA34(this);
11627 static final String dfa_1s = "\33\uffff"; 13186 protected DFA53 dfa53 = new DFA53(this);
11628 static final String dfa_2s = "\1\4\1\uffff\2\40\1\4\2\uffff\1\7\3\uffff\1\105\2\uffff\2\54\1\uffff\1\40\1\105\2\54\1\uffff\1\54\1\105\2\uffff\1\54"; 13187 static final String dfa_1s = "\35\uffff";
11629 static final String dfa_3s = "\1\106\1\uffff\3\105\2\uffff\1\105\3\uffff\1\105\2\uffff\2\105\1\uffff\2\105\2\74\1\uffff\2\105\2\uffff\1\74"; 13188 static final String dfa_2s = "\1\4\1\uffff\3\22\1\5\1\22\1\uffff\1\6\6\uffff\1\22\2\uffff\3\45\1\uffff\4\22\3\45";
11630 static final String dfa_4s = "\1\uffff\1\1\3\uffff\1\2\1\4\1\uffff\1\12\1\13\1\14\1\uffff\1\5\1\3\2\uffff\1\11\4\uffff\1\6\2\uffff\1\7\1\10\1\uffff"; 13189 static final String dfa_3s = "\1\113\1\uffff\5\112\1\uffff\1\112\6\uffff\1\112\2\uffff\3\111\1\uffff\4\112\3\111";
11631 static final String dfa_5s = "\33\uffff}>"; 13190 static final String dfa_4s = "\1\uffff\1\1\5\uffff\1\4\1\uffff\1\6\1\7\1\10\1\11\1\12\1\13\1\uffff\1\5\1\2\3\uffff\1\3\7\uffff";
13191 static final String dfa_5s = "\35\uffff}>";
11632 static final String[] dfa_6s = { 13192 static final String[] dfa_6s = {
11633 "\1\5\1\10\2\uffff\2\12\1\uffff\1\1\1\6\1\uffff\2\1\1\7\1\1\1\10\2\1\1\4\1\1\1\11\1\uffff\1\1\1\uffff\1\1\1\uffff\3\1\11\uffff\1\1\1\uffff\2\1\2\uffff\1\1\1\uffff\1\1\7\uffff\1\1\5\uffff\1\1\1\3\4\uffff\1\2\1\1", 13193 "\1\11\1\6\1\15\2\uffff\2\14\1\uffff\1\7\2\uffff\1\1\1\12\1\uffff\1\4\1\uffff\1\15\2\1\1\5\1\1\1\13\1\uffff\1\16\1\10\1\uffff\1\1\1\uffff\2\1\12\uffff\1\1\1\uffff\2\1\2\uffff\1\1\1\uffff\1\1\7\uffff\2\1\5\uffff\2\1\1\3\4\uffff\1\2\1\1",
11634 "",
11635 "\2\1\1\uffff\6\1\1\uffff\1\1\1\uffff\1\1\1\uffff\4\1\1\13\7\1\1\uffff\2\1\3\uffff\1\14\1\uffff\3\1\1\14",
11636 "\2\1\1\uffff\6\1\1\uffff\1\1\1\uffff\1\1\1\uffff\4\1\1\uffff\7\1\1\uffff\2\1\3\uffff\1\14\1\uffff\3\1\1\14",
11637 "\1\5\33\uffff\2\1\1\uffff\6\1\1\uffff\1\1\1\uffff\1\15\1\uffff\4\1\1\uffff\6\1\2\uffff\1\1\4\uffff\1\5\3\uffff\1\1\1\5",
11638 "", 13194 "",
13195 "\1\20\17\uffff\3\1\1\17\6\1\1\uffff\1\1\1\uffff\1\1\1\uffff\11\1\1\uffff\1\1\3\uffff\2\1\2\uffff\1\20\1\uffff\1\20\1\uffff\3\1\1\20",
13196 "\1\20\17\uffff\3\1\1\17\6\1\1\uffff\1\1\1\uffff\1\1\1\uffff\11\1\1\uffff\1\1\3\uffff\2\1\2\uffff\1\20\1\uffff\1\20\1\uffff\3\1\1\20",
13197 "\1\20\17\uffff\3\1\1\17\6\1\1\uffff\1\1\1\uffff\1\1\1\uffff\11\1\1\uffff\1\1\3\uffff\2\1\2\uffff\1\20\1\uffff\1\20\1\uffff\3\1\1\20",
13198 "\1\21\14\uffff\1\24\17\uffff\3\1\1\uffff\6\1\1\uffff\1\1\1\uffff\1\25\1\uffff\4\1\1\uffff\4\1\1\uffff\1\1\3\uffff\1\1\3\uffff\1\21\1\uffff\1\23\3\uffff\1\1\1\22",
13199 "\1\24\4\uffff\1\21\53\uffff\1\21\1\uffff\1\23\4\uffff\1\22",
11639 "", 13200 "",
11640 "\1\20\70\uffff\1\17\4\uffff\1\16", 13201 "\1\15\13\uffff\1\11\1\uffff\1\15\7\uffff\1\15\50\uffff\1\11\4\uffff\1\11",
11641 "", 13202 "",
11642 "", 13203 "",
11643 "", 13204 "",
11644 "\1\21",
11645 "", 13205 "",
11646 "", 13206 "",
11647 "\1\25\5\uffff\1\22\15\uffff\1\24\4\uffff\1\23",
11648 "\1\25\23\uffff\1\24\4\uffff\1\23",
11649 "", 13207 "",
11650 "\2\1\1\uffff\6\1\1\uffff\1\1\1\uffff\1\1\1\uffff\4\1\1\13\7\1\1\uffff\2\1\3\uffff\1\14\1\uffff\3\1\1\14", 13208 "\1\30\62\uffff\1\27\4\uffff\1\26",
11651 "\1\26",
11652 "\1\30\5\uffff\1\27\11\uffff\1\31",
11653 "\1\30\17\uffff\1\31",
11654 "", 13209 "",
11655 "\1\25\5\uffff\1\22\15\uffff\1\24\4\uffff\1\23",
11656 "\1\32",
11657 "", 13210 "",
13211 "\1\31\11\uffff\1\21\5\uffff\1\21\21\uffff\2\21\1\11",
13212 "\1\31\11\uffff\1\21\5\uffff\1\21\21\uffff\2\21\1\11",
13213 "\1\31\11\uffff\1\21\5\uffff\1\21\21\uffff\2\21\1\11",
11658 "", 13214 "",
11659 "\1\30\5\uffff\1\27\11\uffff\1\31" 13215 "\1\20\17\uffff\3\1\1\17\6\1\1\uffff\1\1\1\uffff\1\1\1\uffff\11\1\1\uffff\1\1\3\uffff\2\1\2\uffff\1\20\1\uffff\1\20\1\uffff\3\1\1\20",
13216 "\1\20\17\uffff\3\1\1\17\6\1\1\uffff\1\1\1\uffff\1\1\1\uffff\11\1\1\uffff\1\1\3\uffff\2\1\2\uffff\1\20\1\uffff\1\20\1\uffff\3\1\1\20",
13217 "\1\20\17\uffff\3\1\1\17\6\1\1\uffff\1\1\1\uffff\1\1\1\uffff\11\1\1\uffff\1\1\3\uffff\2\1\2\uffff\1\20\1\uffff\1\20\1\uffff\3\1\1\20",
13218 "\1\34\62\uffff\1\33\4\uffff\1\32",
13219 "\1\31\11\uffff\1\21\5\uffff\1\21\21\uffff\2\21\1\11",
13220 "\1\31\11\uffff\1\21\5\uffff\1\21\21\uffff\2\21\1\11",
13221 "\1\31\11\uffff\1\21\5\uffff\1\21\21\uffff\2\21\1\11"
11660 }; 13222 };
11661 13223
11662 static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s); 13224 static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
@@ -11666,11 +13228,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
11666 static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s); 13228 static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
11667 static final short[][] dfa_6 = unpackEncodedStringArray(dfa_6s); 13229 static final short[][] dfa_6 = unpackEncodedStringArray(dfa_6s);
11668 13230
11669 class DFA2 extends DFA { 13231 class DFA4 extends DFA {
11670 13232
11671 public DFA2(BaseRecognizer recognizer) { 13233 public DFA4(BaseRecognizer recognizer) {
11672 this.recognizer = recognizer; 13234 this.recognizer = recognizer;
11673 this.decisionNumber = 2; 13235 this.decisionNumber = 4;
11674 this.eot = dfa_1; 13236 this.eot = dfa_1;
11675 this.eof = dfa_1; 13237 this.eof = dfa_1;
11676 this.min = dfa_2; 13238 this.min = dfa_2;
@@ -11680,243 +13242,336 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
11680 this.transition = dfa_6; 13242 this.transition = dfa_6;
11681 } 13243 }
11682 public String getDescription() { 13244 public String getDescription() {
11683 return "109:3: (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_MetricDefinition_4= ruleMetricDefinition | this_ExternPredicateDefinition_5= ruleExternPredicateDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ExternAggregatorDefinition_7= ruleExternAggregatorDefinition | this_ExternDatatypeDefinition_8= ruleExternDatatypeDefinition | this_ClassDefinition_9= ruleClassDefinition | this_ScopeDefinition_10= ruleScopeDefinition | this_ObjectiveDefinition_11= ruleObjectiveDefinition )"; 13245 return "158:2: (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPredicateDefintion_2= ruleUnnamedErrorPredicateDefintion | this_DefaultAssertion_3= ruleDefaultAssertion | this_FunctionDefinition_4= ruleFunctionDefinition | this_Attribute_5= ruleAttribute | this_ExternDeclaration_6= ruleExternDeclaration | this_ScopeDeclaration_7= ruleScopeDeclaration | this_ObjectiveDeclaration_8= ruleObjectiveDeclaration | this_ClassDeclaration_9= ruleClassDeclaration | this_EnumDeclaration_10= ruleEnumDeclaration )";
11684 } 13246 }
11685 } 13247 }
11686 static final String dfa_7s = "\10\uffff"; 13248 static final String dfa_7s = "\24\uffff";
11687 static final String dfa_8s = "\1\uffff\2\3\4\uffff\1\3"; 13249 static final String dfa_8s = "\1\20\1\5\2\uffff\4\22\3\45\4\22\2\uffff\3\45";
11688 static final String dfa_9s = "\1\16\2\30\2\uffff\1\105\1\uffff\1\30"; 13250 static final String dfa_9s = "\1\20\1\112\2\uffff\4\112\3\100\4\112\2\uffff\3\100";
11689 static final String dfa_10s = "\1\106\2\104\2\uffff\1\105\1\uffff\1\104"; 13251 static final String dfa_10s = "\2\uffff\1\4\1\1\13\uffff\1\3\1\2\3\uffff";
11690 static final String dfa_11s = "\3\uffff\1\1\1\2\1\uffff\1\3\1\uffff"; 13252 static final String dfa_11s = "\24\uffff}>";
11691 static final String dfa_12s = "\10\uffff}>"; 13253 static final String[] dfa_12s = {
11692 static final String[] dfa_13s = { 13254 "\1\1",
11693 "\1\3\1\4\1\uffff\1\4\1\uffff\1\4\3\3\4\uffff\1\3\1\uffff\1\3\16\uffff\1\3\14\uffff\1\3\5\uffff\1\3\1\2\4\uffff\1\1\1\3", 13255 "\1\3\2\uffff\1\2\11\uffff\1\6\4\uffff\1\3\55\uffff\1\5\4\uffff\1\4",
11694 "\1\3\1\uffff\1\3\5\uffff\11\3\1\uffff\1\3\1\uffff\6\3\1\5\6\3\1\6\2\3\1\6\2\3\3\uffff\3\3", 13256 "",
11695 "\1\3\1\uffff\1\3\5\uffff\11\3\1\uffff\1\3\1\uffff\6\3\1\uffff\6\3\1\6\2\3\1\6\2\3\3\uffff\3\3",
11696 "", 13257 "",
13258 "\1\12\22\uffff\1\7\11\uffff\1\3\25\uffff\1\11\4\uffff\1\10",
13259 "\1\12\22\uffff\1\7\11\uffff\1\3\25\uffff\1\11\4\uffff\1\10",
13260 "\1\12\22\uffff\1\7\11\uffff\1\3\25\uffff\1\11\4\uffff\1\10",
13261 "\1\15\62\uffff\1\14\4\uffff\1\13",
13262 "\1\16\11\uffff\1\20\20\uffff\1\17",
13263 "\1\16\11\uffff\1\20\20\uffff\1\17",
13264 "\1\16\11\uffff\1\20\20\uffff\1\17",
13265 "\1\12\22\uffff\1\7\11\uffff\1\3\25\uffff\1\11\4\uffff\1\10",
13266 "\1\12\22\uffff\1\7\11\uffff\1\3\25\uffff\1\11\4\uffff\1\10",
13267 "\1\12\22\uffff\1\7\11\uffff\1\3\25\uffff\1\11\4\uffff\1\10",
13268 "\1\23\62\uffff\1\22\4\uffff\1\21",
11697 "", 13269 "",
11698 "\1\7",
11699 "", 13270 "",
11700 "\1\3\1\uffff\1\3\5\uffff\11\3\1\uffff\1\3\1\uffff\6\3\1\5\6\3\1\6\2\3\1\6\2\3\3\uffff\3\3" 13271 "\1\16\11\uffff\1\20\20\uffff\1\17",
13272 "\1\16\11\uffff\1\20\20\uffff\1\17",
13273 "\1\16\11\uffff\1\20\20\uffff\1\17"
11701 }; 13274 };
11702 13275
11703 static final short[] dfa_7 = DFA.unpackEncodedString(dfa_7s); 13276 static final short[] dfa_7 = DFA.unpackEncodedString(dfa_7s);
11704 static final short[] dfa_8 = DFA.unpackEncodedString(dfa_8s); 13277 static final char[] dfa_8 = DFA.unpackEncodedStringToUnsignedChars(dfa_8s);
11705 static final char[] dfa_9 = DFA.unpackEncodedStringToUnsignedChars(dfa_9s); 13278 static final char[] dfa_9 = DFA.unpackEncodedStringToUnsignedChars(dfa_9s);
11706 static final char[] dfa_10 = DFA.unpackEncodedStringToUnsignedChars(dfa_10s); 13279 static final short[] dfa_10 = DFA.unpackEncodedString(dfa_10s);
11707 static final short[] dfa_11 = DFA.unpackEncodedString(dfa_11s); 13280 static final short[] dfa_11 = DFA.unpackEncodedString(dfa_11s);
11708 static final short[] dfa_12 = DFA.unpackEncodedString(dfa_12s); 13281 static final short[][] dfa_12 = unpackEncodedStringArray(dfa_12s);
11709 static final short[][] dfa_13 = unpackEncodedStringArray(dfa_13s);
11710 13282
11711 class DFA23 extends DFA { 13283 class DFA13 extends DFA {
11712 13284
11713 public DFA23(BaseRecognizer recognizer) { 13285 public DFA13(BaseRecognizer recognizer) {
11714 this.recognizer = recognizer; 13286 this.recognizer = recognizer;
11715 this.decisionNumber = 23; 13287 this.decisionNumber = 13;
11716 this.eot = dfa_7; 13288 this.eot = dfa_7;
11717 this.eof = dfa_8; 13289 this.eof = dfa_7;
11718 this.min = dfa_9; 13290 this.min = dfa_8;
11719 this.max = dfa_10; 13291 this.max = dfa_9;
11720 this.accept = dfa_11; 13292 this.accept = dfa_10;
11721 this.special = dfa_12; 13293 this.special = dfa_11;
11722 this.transition = dfa_13; 13294 this.transition = dfa_12;
11723 } 13295 }
11724 public String getDescription() { 13296 public String getDescription() {
11725 return "2100:2: (this_AtomicExpression_0= ruleAtomicExpression | this_QuantifiedExpression_1= ruleQuantifiedExpression | this_Aggregation_2= ruleAggregation )"; 13297 return "1041:2: (this_ExternPredicateDeclaration_0= ruleExternPredicateDeclaration | this_ExternFunctionDeclaration_1= ruleExternFunctionDeclaration | this_ExternAggregationOperatorDeclaration_2= ruleExternAggregationOperatorDeclaration | this_ExternDatatypeDeclaration_3= ruleExternDatatypeDeclaration )";
11726 } 13298 }
11727 } 13299 }
11728 static final String dfa_14s = "\12\uffff"; 13300 static final String dfa_13s = "\13\uffff";
11729 static final String dfa_15s = "\1\uffff\2\10\6\uffff\1\10"; 13301 static final String dfa_14s = "\2\uffff\3\1\3\uffff\3\1";
11730 static final String dfa_16s = "\1\16\2\30\3\uffff\1\105\2\uffff\1\30"; 13302 static final String dfa_15s = "\1\17\1\uffff\3\32\1\uffff\1\22\1\uffff\3\32";
11731 static final String dfa_17s = "\1\106\2\104\3\uffff\1\105\2\uffff\1\104"; 13303 static final String dfa_16s = "\1\113\1\uffff\3\111\1\uffff\1\112\1\uffff\3\111";
11732 static final String dfa_18s = "\3\uffff\1\3\1\4\1\5\1\uffff\1\2\1\1\1\uffff"; 13304 static final String dfa_17s = "\1\uffff\1\1\3\uffff\1\3\1\uffff\1\2\3\uffff";
11733 static final String dfa_19s = "\12\uffff}>"; 13305 static final String dfa_18s = "\13\uffff}>";
11734 static final String[] dfa_20s = { 13306 static final String[] dfa_19s = {
11735 "\1\4\5\uffff\3\4\4\uffff\1\4\1\uffff\1\4\16\uffff\1\5\14\uffff\1\3\5\uffff\1\4\1\2\4\uffff\1\1\1\4", 13307 "\1\1\2\uffff\1\4\2\uffff\1\5\3\1\5\uffff\1\1\1\uffff\1\1\16\uffff\1\1\15\uffff\1\1\5\uffff\2\1\1\3\4\uffff\1\2\1\1",
11736 "\1\10\1\uffff\1\10\5\uffff\11\10\1\uffff\1\10\1\uffff\1\7\5\10\1\6\6\10\1\uffff\2\10\1\uffff\2\10\3\uffff\2\7\1\10",
11737 "\1\10\1\uffff\1\10\5\uffff\11\10\1\uffff\1\10\1\uffff\1\7\5\10\1\uffff\6\10\1\uffff\2\10\1\uffff\2\10\3\uffff\2\7\1\10",
11738 "",
11739 "",
11740 "", 13308 "",
11741 "\1\11", 13309 "\1\1\2\uffff\1\1\4\uffff\3\1\1\6\6\1\1\uffff\1\1\1\uffff\13\1\1\uffff\1\1\2\uffff\2\1\1\7\2\1\4\uffff\3\1",
13310 "\1\1\2\uffff\1\1\4\uffff\3\1\1\6\6\1\1\uffff\1\1\1\uffff\13\1\1\uffff\1\1\2\uffff\2\1\1\7\2\1\4\uffff\3\1",
13311 "\1\1\2\uffff\1\1\4\uffff\3\1\1\6\6\1\1\uffff\1\1\1\uffff\13\1\1\uffff\1\1\2\uffff\2\1\1\7\2\1\4\uffff\3\1",
11742 "", 13312 "",
13313 "\1\12\62\uffff\1\11\4\uffff\1\10",
11743 "", 13314 "",
11744 "\1\10\1\uffff\1\10\5\uffff\11\10\1\uffff\1\10\1\uffff\1\7\5\10\1\6\6\10\1\uffff\2\10\1\uffff\2\10\3\uffff\2\7\1\10" 13315 "\1\1\2\uffff\1\1\4\uffff\3\1\1\6\6\1\1\uffff\1\1\1\uffff\13\1\1\uffff\1\1\2\uffff\2\1\1\7\2\1\4\uffff\3\1",
13316 "\1\1\2\uffff\1\1\4\uffff\3\1\1\6\6\1\1\uffff\1\1\1\uffff\13\1\1\uffff\1\1\2\uffff\2\1\1\7\2\1\4\uffff\3\1",
13317 "\1\1\2\uffff\1\1\4\uffff\3\1\1\6\6\1\1\uffff\1\1\1\uffff\13\1\1\uffff\1\1\2\uffff\2\1\1\7\2\1\4\uffff\3\1"
11745 }; 13318 };
11746 13319
13320 static final short[] dfa_13 = DFA.unpackEncodedString(dfa_13s);
11747 static final short[] dfa_14 = DFA.unpackEncodedString(dfa_14s); 13321 static final short[] dfa_14 = DFA.unpackEncodedString(dfa_14s);
11748 static final short[] dfa_15 = DFA.unpackEncodedString(dfa_15s); 13322 static final char[] dfa_15 = DFA.unpackEncodedStringToUnsignedChars(dfa_15s);
11749 static final char[] dfa_16 = DFA.unpackEncodedStringToUnsignedChars(dfa_16s); 13323 static final char[] dfa_16 = DFA.unpackEncodedStringToUnsignedChars(dfa_16s);
11750 static final char[] dfa_17 = DFA.unpackEncodedStringToUnsignedChars(dfa_17s); 13324 static final short[] dfa_17 = DFA.unpackEncodedString(dfa_17s);
11751 static final short[] dfa_18 = DFA.unpackEncodedString(dfa_18s); 13325 static final short[] dfa_18 = DFA.unpackEncodedString(dfa_18s);
11752 static final short[] dfa_19 = DFA.unpackEncodedString(dfa_19s); 13326 static final short[][] dfa_19 = unpackEncodedStringArray(dfa_19s);
11753 static final short[][] dfa_20 = unpackEncodedStringArray(dfa_20s);
11754 13327
11755 class DFA29 extends DFA { 13328 class DFA30 extends DFA {
11756 13329
11757 public DFA29(BaseRecognizer recognizer) { 13330 public DFA30(BaseRecognizer recognizer) {
11758 this.recognizer = recognizer; 13331 this.recognizer = recognizer;
11759 this.decisionNumber = 29; 13332 this.decisionNumber = 30;
11760 this.eot = dfa_14; 13333 this.eot = dfa_13;
11761 this.eof = dfa_15; 13334 this.eof = dfa_14;
11762 this.min = dfa_16; 13335 this.min = dfa_15;
11763 this.max = dfa_17; 13336 this.max = dfa_16;
11764 this.accept = dfa_18; 13337 this.accept = dfa_17;
11765 this.special = dfa_19; 13338 this.special = dfa_18;
11766 this.transition = dfa_20; 13339 this.transition = dfa_19;
11767 } 13340 }
11768 public String getDescription() { 13341 public String getDescription() {
11769 return "2415:2: (this_Reference_0= ruleReference | this_Call_1= ruleCall | this_Interval_2= ruleInterval | this_Literal_3= ruleLiteral | (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) )"; 13342 return "2451:2: (this_AtomicExpression_0= ruleAtomicExpression | this_Aggregation_1= ruleAggregation | this_Count_2= ruleCount )";
11770 } 13343 }
11771 } 13344 }
11772 static final String dfa_21s = "\1\uffff\2\3\3\uffff\1\11\1\uffff\1\3\1\uffff"; 13345 static final String dfa_20s = "\33\uffff";
11773 static final String dfa_22s = "\1\13\2\40\2\uffff\1\105\1\13\1\uffff\1\40\1\uffff"; 13346 static final String dfa_21s = "\2\uffff\3\14\4\uffff\2\14\3\uffff\3\14\1\uffff\3\14\1\uffff\5\14";
11774 static final String dfa_23s = "\1\106\2\105\2\uffff\1\105\1\106\1\uffff\1\105\1\uffff"; 13347 static final String dfa_22s = "\1\17\1\22\3\32\3\uffff\1\22\2\32\1\22\2\uffff\3\32\1\22\3\32\1\22\5\32";
11775 static final String dfa_24s = "\3\uffff\1\1\1\2\2\uffff\1\3\1\uffff\1\4"; 13348 static final String dfa_23s = "\1\113\1\112\3\111\3\uffff\1\112\2\111\1\112\2\uffff\3\111\1\112\3\111\1\112\5\111";
11776 static final String[] dfa_25s = { 13349 static final String dfa_24s = "\5\uffff\1\3\1\4\1\5\4\uffff\1\1\1\2\15\uffff";
11777 "\1\3\2\uffff\2\3\1\uffff\1\3\1\uffff\4\3\2\uffff\1\3\1\uffff\1\3\1\uffff\1\3\1\uffff\1\3\13\uffff\2\3\1\uffff\1\4\1\3\1\uffff\1\3\7\uffff\1\3\5\uffff\1\3\1\2\4\uffff\1\1\1\3", 13350 static final String dfa_25s = "\33\uffff}>";
11778 "\1\3\3\uffff\2\3\1\uffff\2\3\1\uffff\1\3\1\uffff\2\3\1\6\3\3\1\5\1\3\2\uffff\1\3\1\uffff\2\3\1\uffff\2\3\3\uffff\1\7\1\uffff\2\3\1\uffff\1\7", 13351 static final String[] dfa_26s = {
11779 "\1\3\3\uffff\2\3\1\uffff\2\3\1\uffff\1\3\1\uffff\2\3\1\6\3\3\1\uffff\1\3\2\uffff\1\3\1\uffff\2\3\1\uffff\2\3\3\uffff\1\7\1\uffff\2\3\1\uffff\1\7", 13352 "\1\6\2\uffff\1\4\3\uffff\3\6\5\uffff\1\6\1\uffff\1\6\16\uffff\1\7\15\uffff\1\5\5\uffff\1\1\1\6\1\3\4\uffff\1\2\1\6",
13353 "\1\4\62\uffff\1\3\4\uffff\1\2",
13354 "\1\14\2\uffff\1\14\4\uffff\3\14\1\10\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\11\1\12\1\14",
13355 "\1\14\2\uffff\1\14\4\uffff\3\14\1\10\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\11\1\12\1\14",
13356 "\1\14\2\uffff\1\14\4\uffff\3\14\1\10\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\11\1\12\1\14",
11780 "", 13357 "",
11781 "", 13358 "",
11782 "\1\10",
11783 "\1\3\2\uffff\2\3\1\uffff\1\3\1\uffff\4\3\2\uffff\1\3\1\uffff\1\3\1\uffff\1\3\1\uffff\1\3\13\uffff\2\3\1\11\1\uffff\1\3\1\11\1\3\7\uffff\1\3\5\uffff\2\3\4\uffff\2\3",
11784 "", 13359 "",
11785 "\1\3\3\uffff\2\3\1\uffff\2\3\1\uffff\1\3\1\uffff\2\3\1\6\3\3\1\5\1\3\2\uffff\1\3\1\uffff\2\3\1\uffff\2\3\3\uffff\1\7\1\uffff\2\3\1\uffff\1\7", 13360 "\1\20\62\uffff\1\17\4\uffff\1\16",
11786 "" 13361 "\1\14\2\uffff\1\14\4\uffff\3\14\1\uffff\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\6\uffff\1\14",
13362 "\1\14\2\uffff\1\14\4\uffff\3\14\1\uffff\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\6\uffff\1\14",
13363 "\1\24\60\uffff\1\21\1\uffff\1\23\4\uffff\1\22",
13364 "",
13365 "",
13366 "\1\14\2\uffff\1\14\4\uffff\3\14\1\10\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\11\1\12\1\14",
13367 "\1\14\2\uffff\1\14\4\uffff\3\14\1\10\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\11\1\12\1\14",
13368 "\1\14\2\uffff\1\14\4\uffff\3\14\1\10\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\11\1\12\1\14",
13369 "\1\24\62\uffff\1\23\4\uffff\1\22",
13370 "\1\14\2\uffff\1\14\4\uffff\3\14\1\25\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\26\1\27\1\14",
13371 "\1\14\2\uffff\1\14\4\uffff\3\14\1\25\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\26\1\27\1\14",
13372 "\1\14\2\uffff\1\14\4\uffff\3\14\1\25\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\26\1\27\1\14",
13373 "\1\32\62\uffff\1\31\4\uffff\1\30",
13374 "\1\14\2\uffff\1\14\4\uffff\3\14\1\uffff\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\6\uffff\1\14",
13375 "\1\14\2\uffff\1\14\4\uffff\3\14\1\uffff\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\6\uffff\1\14",
13376 "\1\14\2\uffff\1\14\4\uffff\3\14\1\25\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\26\1\27\1\14",
13377 "\1\14\2\uffff\1\14\4\uffff\3\14\1\25\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\26\1\27\1\14",
13378 "\1\14\2\uffff\1\14\4\uffff\3\14\1\25\6\14\1\uffff\1\14\1\uffff\1\15\5\14\1\13\4\14\1\uffff\1\14\2\uffff\2\14\1\uffff\2\14\4\uffff\1\26\1\27\1\14"
11787 }; 13379 };
13380
13381 static final short[] dfa_20 = DFA.unpackEncodedString(dfa_20s);
11788 static final short[] dfa_21 = DFA.unpackEncodedString(dfa_21s); 13382 static final short[] dfa_21 = DFA.unpackEncodedString(dfa_21s);
11789 static final char[] dfa_22 = DFA.unpackEncodedStringToUnsignedChars(dfa_22s); 13383 static final char[] dfa_22 = DFA.unpackEncodedStringToUnsignedChars(dfa_22s);
11790 static final char[] dfa_23 = DFA.unpackEncodedStringToUnsignedChars(dfa_23s); 13384 static final char[] dfa_23 = DFA.unpackEncodedStringToUnsignedChars(dfa_23s);
11791 static final short[] dfa_24 = DFA.unpackEncodedString(dfa_24s); 13385 static final short[] dfa_24 = DFA.unpackEncodedString(dfa_24s);
11792 static final short[][] dfa_25 = unpackEncodedStringArray(dfa_25s); 13386 static final short[] dfa_25 = DFA.unpackEncodedString(dfa_25s);
13387 static final short[][] dfa_26 = unpackEncodedStringArray(dfa_26s);
11793 13388
11794 class DFA33 extends DFA { 13389 class DFA31 extends DFA {
11795 13390
11796 public DFA33(BaseRecognizer recognizer) { 13391 public DFA31(BaseRecognizer recognizer) {
11797 this.recognizer = recognizer; 13392 this.recognizer = recognizer;
11798 this.decisionNumber = 33; 13393 this.decisionNumber = 31;
11799 this.eot = dfa_14; 13394 this.eot = dfa_20;
11800 this.eof = dfa_21; 13395 this.eof = dfa_21;
11801 this.min = dfa_22; 13396 this.min = dfa_22;
11802 this.max = dfa_23; 13397 this.max = dfa_23;
11803 this.accept = dfa_24; 13398 this.accept = dfa_24;
11804 this.special = dfa_19; 13399 this.special = dfa_25;
11805 this.transition = dfa_25; 13400 this.transition = dfa_26;
11806 } 13401 }
11807 public String getDescription() { 13402 public String getDescription() {
11808 return "2664:2: (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedArgument_2= ruleTypedArgument | this_TypedStarArgument_3= ruleTypedStarArgument )"; 13403 return "2631:2: (this_Reference_0= ruleReference | this_Call_1= ruleCall | this_Interval_2= ruleInterval | this_Literal_3= ruleLiteral | (otherlv_4= LeftParenthesis this_Expression_5= ruleExpression otherlv_6= RightParenthesis ) )";
11809 } 13404 }
11810 } 13405 }
11811 static final String dfa_26s = "\17\uffff"; 13406 static final String dfa_27s = "\16\uffff";
11812 static final String dfa_27s = "\12\uffff\2\10\2\uffff\1\10"; 13407 static final String dfa_28s = "\2\uffff\3\1\2\uffff\1\15\2\uffff\3\1\1\uffff";
11813 static final String dfa_28s = "\1\27\1\100\3\44\1\100\1\uffff\1\105\2\uffff\3\44\1\105\1\44"; 13408 static final String dfa_29s = "\1\17\1\uffff\3\22\1\uffff\1\22\1\17\1\61\1\uffff\3\22\1\uffff";
11814 static final String dfa_29s = "\1\27\1\106\1\47\1\62\1\47\1\105\1\uffff\1\105\2\uffff\2\104\1\62\1\105\1\104"; 13409 static final String dfa_30s = "\1\113\1\uffff\3\112\1\uffff\1\112\1\113\1\112\1\uffff\3\112\1\uffff";
11815 static final String dfa_30s = "\6\uffff\1\2\1\uffff\1\3\1\1\5\uffff"; 13410 static final String dfa_31s = "\1\uffff\1\1\3\uffff\1\2\3\uffff\1\3\3\uffff\1\4";
11816 static final String dfa_31s = "\17\uffff}>"; 13411 static final String dfa_32s = "\16\uffff}>";
11817 static final String[] dfa_32s = { 13412 static final String[] dfa_33s = {
11818 "\1\1", 13413 "\1\1\2\uffff\1\4\2\uffff\4\1\5\uffff\1\1\1\uffff\1\1\15\uffff\2\1\1\uffff\1\5\1\1\1\uffff\1\1\7\uffff\2\1\5\uffff\2\1\1\3\4\uffff\1\2\1\1",
11819 "\1\4\4\uffff\1\3\1\2",
11820 "\1\5\2\uffff\1\6",
11821 "\1\6\1\11\1\uffff\1\10\12\uffff\1\7",
11822 "\1\6\1\11\1\uffff\1\10",
11823 "\1\13\4\uffff\1\12",
11824 "", 13414 "",
11825 "\1\14", 13415 "\1\10\17\uffff\1\1\2\uffff\1\6\1\uffff\2\1\1\uffff\2\1\1\uffff\1\1\1\uffff\2\1\1\7\5\1\2\uffff\1\1\1\uffff\1\1\3\uffff\2\1\6\uffff\2\1\1\uffff\1\11",
13416 "\1\10\17\uffff\1\1\2\uffff\1\6\1\uffff\2\1\1\uffff\2\1\1\uffff\1\1\1\uffff\2\1\1\7\5\1\2\uffff\1\1\1\uffff\1\1\3\uffff\2\1\6\uffff\2\1\1\uffff\1\11",
13417 "\1\10\17\uffff\1\1\2\uffff\1\6\1\uffff\2\1\1\uffff\2\1\1\uffff\1\1\1\uffff\2\1\1\7\5\1\2\uffff\1\1\1\uffff\1\1\3\uffff\2\1\6\uffff\2\1\1\uffff\1\11",
11826 "", 13418 "",
13419 "\1\14\62\uffff\1\13\4\uffff\1\12",
13420 "\1\1\2\uffff\1\1\2\uffff\4\1\5\uffff\1\1\1\uffff\1\1\15\uffff\2\1\1\15\1\uffff\1\1\1\15\1\1\7\uffff\2\1\5\uffff\3\1\4\uffff\2\1",
13421 "\1\15\30\uffff\1\11",
11827 "", 13422 "",
11828 "\1\6\15\uffff\1\15\21\uffff\1\10", 13423 "\1\10\17\uffff\1\1\2\uffff\1\6\1\uffff\2\1\1\uffff\2\1\1\uffff\1\1\1\uffff\2\1\1\7\5\1\2\uffff\1\1\1\uffff\1\1\3\uffff\2\1\6\uffff\2\1\1\uffff\1\11",
11829 "\1\6\37\uffff\1\10", 13424 "\1\10\17\uffff\1\1\2\uffff\1\6\1\uffff\2\1\1\uffff\2\1\1\uffff\1\1\1\uffff\2\1\1\7\5\1\2\uffff\1\1\1\uffff\1\1\3\uffff\2\1\6\uffff\2\1\1\uffff\1\11",
11830 "\1\6\1\11\1\uffff\1\10\12\uffff\1\7", 13425 "\1\10\17\uffff\1\1\2\uffff\1\6\1\uffff\2\1\1\uffff\2\1\1\uffff\1\1\1\uffff\2\1\1\7\5\1\2\uffff\1\1\1\uffff\1\1\3\uffff\2\1\6\uffff\2\1\1\uffff\1\11",
11831 "\1\16", 13426 ""
11832 "\1\6\15\uffff\1\15\21\uffff\1\10"
11833 }; 13427 };
11834 13428
11835 static final short[] dfa_26 = DFA.unpackEncodedString(dfa_26s);
11836 static final short[] dfa_27 = DFA.unpackEncodedString(dfa_27s); 13429 static final short[] dfa_27 = DFA.unpackEncodedString(dfa_27s);
11837 static final char[] dfa_28 = DFA.unpackEncodedStringToUnsignedChars(dfa_28s); 13430 static final short[] dfa_28 = DFA.unpackEncodedString(dfa_28s);
11838 static final char[] dfa_29 = DFA.unpackEncodedStringToUnsignedChars(dfa_29s); 13431 static final char[] dfa_29 = DFA.unpackEncodedStringToUnsignedChars(dfa_29s);
11839 static final short[] dfa_30 = DFA.unpackEncodedString(dfa_30s); 13432 static final char[] dfa_30 = DFA.unpackEncodedStringToUnsignedChars(dfa_30s);
11840 static final short[] dfa_31 = DFA.unpackEncodedString(dfa_31s); 13433 static final short[] dfa_31 = DFA.unpackEncodedString(dfa_31s);
11841 static final short[][] dfa_32 = unpackEncodedStringArray(dfa_32s); 13434 static final short[] dfa_32 = DFA.unpackEncodedString(dfa_32s);
13435 static final short[][] dfa_33 = unpackEncodedStringArray(dfa_33s);
13436
13437 class DFA34 extends DFA {
13438
13439 public DFA34(BaseRecognizer recognizer) {
13440 this.recognizer = recognizer;
13441 this.decisionNumber = 34;
13442 this.eot = dfa_27;
13443 this.eof = dfa_28;
13444 this.min = dfa_29;
13445 this.max = dfa_30;
13446 this.accept = dfa_31;
13447 this.special = dfa_32;
13448 this.transition = dfa_33;
13449 }
13450 public String getDescription() {
13451 return "2841:2: (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedVariableArgument_2= ruleTypedVariableArgument | this_TypedStarArgument_3= ruleTypedStarArgument )";
13452 }
13453 }
13454 static final String dfa_34s = "\25\uffff";
13455 static final String dfa_35s = "\1\31\1\22\1\47\3\45\1\22\1\uffff\1\22\2\uffff\6\45\1\22\3\45";
13456 static final String dfa_36s = "\1\31\1\113\4\52\1\112\1\uffff\1\112\2\uffff\3\111\3\52\1\112\3\111";
13457 static final String dfa_37s = "\7\uffff\1\2\1\uffff\1\1\1\3\12\uffff";
13458 static final String dfa_38s = "\25\uffff}>";
13459 static final String[] dfa_39s = {
13460 "\1\1",
13461 "\1\5\62\uffff\1\4\4\uffff\1\3\1\2",
13462 "\1\6\2\uffff\1\7",
13463 "\1\10\1\uffff\1\7\1\11\1\uffff\1\12",
13464 "\1\10\1\uffff\1\7\1\11\1\uffff\1\12",
13465 "\1\10\1\uffff\1\7\1\11\1\uffff\1\12",
13466 "\1\15\62\uffff\1\14\4\uffff\1\13",
13467 "",
13468 "\1\20\62\uffff\1\17\4\uffff\1\16",
13469 "",
13470 "",
13471 "\1\21\1\uffff\1\7\41\uffff\1\12",
13472 "\1\21\1\uffff\1\7\41\uffff\1\12",
13473 "\1\21\1\uffff\1\7\41\uffff\1\12",
13474 "\1\10\1\uffff\1\7\1\11\1\uffff\1\12",
13475 "\1\10\1\uffff\1\7\1\11\1\uffff\1\12",
13476 "\1\10\1\uffff\1\7\1\11\1\uffff\1\12",
13477 "\1\24\62\uffff\1\23\4\uffff\1\22",
13478 "\1\21\1\uffff\1\7\41\uffff\1\12",
13479 "\1\21\1\uffff\1\7\41\uffff\1\12",
13480 "\1\21\1\uffff\1\7\41\uffff\1\12"
13481 };
13482
13483 static final short[] dfa_34 = DFA.unpackEncodedString(dfa_34s);
13484 static final char[] dfa_35 = DFA.unpackEncodedStringToUnsignedChars(dfa_35s);
13485 static final char[] dfa_36 = DFA.unpackEncodedStringToUnsignedChars(dfa_36s);
13486 static final short[] dfa_37 = DFA.unpackEncodedString(dfa_37s);
13487 static final short[] dfa_38 = DFA.unpackEncodedString(dfa_38s);
13488 static final short[][] dfa_39 = unpackEncodedStringArray(dfa_39s);
11842 13489
11843 class DFA44 extends DFA { 13490 class DFA53 extends DFA {
11844 13491
11845 public DFA44(BaseRecognizer recognizer) { 13492 public DFA53(BaseRecognizer recognizer) {
11846 this.recognizer = recognizer; 13493 this.recognizer = recognizer;
11847 this.decisionNumber = 44; 13494 this.decisionNumber = 53;
11848 this.eot = dfa_26; 13495 this.eot = dfa_34;
11849 this.eof = dfa_27; 13496 this.eof = dfa_34;
11850 this.min = dfa_28; 13497 this.min = dfa_35;
11851 this.max = dfa_29; 13498 this.max = dfa_36;
11852 this.accept = dfa_30; 13499 this.accept = dfa_37;
11853 this.special = dfa_31; 13500 this.special = dfa_38;
11854 this.transition = dfa_32; 13501 this.transition = dfa_39;
11855 } 13502 }
11856 public String getDescription() { 13503 public String getDescription() {
11857 return "3639:2: (this_ExactScopeDefinition_0= ruleExactScopeDefinition | this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition | this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition )"; 13504 return "4199:2: (this_ExactScope_0= ruleExactScope | this_BoundedScope_1= ruleBoundedScope | this_LowerBoundedScope_2= ruleLowerBoundedScope )";
11858 } 13505 }
11859 } 13506 }
11860 13507
11861 13508
11862 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L}); 13509 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
11863 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L}); 13510 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
11864 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x82029A00EAFFDB32L,0x0000000000000061L}); 13511 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000040000L,0x0000000000000420L});
11865 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L}); 13512 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
11866 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0090000800000002L}); 13513 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x3014D0035BF79672L,0x0000000000000C38L});
11867 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x82029A00EA7AC800L,0x0000000000000061L}); 13514 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x3014D0035BF59672L,0x0000000000000C38L});
11868 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000200000L,0x0000000000000021L}); 13515 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
11869 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000021L}); 13516 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000080000000000L});
11870 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000000010L,0x0000000000000021L}); 13517 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0080005000000000L,0x0000000000000200L});
11871 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000800000000L}); 13518 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x3014D00341E48000L,0x0000000000000C38L});
11872 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000100000000000L}); 13519 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000840000L,0x0000000000000428L});
11873 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0010000000000000L}); 13520 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000040000L,0x0000000000000428L});
11874 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0080000000000000L}); 13521 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000040020L,0x0000000000000428L});
11875 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x1000000000000000L}); 13522 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000001000000000L});
11876 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000010000000L}); 13523 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000800000000000L});
11877 public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x4000000000000000L}); 13524 public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0080000000000000L,0x0000000000000200L});
11878 public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000000080L}); 13525 public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000004000000000L});
11879 public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000002000L}); 13526 public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000040002L});
11880 public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0001000000000002L}); 13527 public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000840020L,0x0000000000000420L});
11881 public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L}); 13528 public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
11882 public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000004000000L}); 13529 public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000080000000L});
11883 public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000001000000L}); 13530 public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
11884 public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0001040000000000L}); 13531 public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000000000100L});
11885 public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000004000000002L}); 13532 public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000020000000002L});
11886 public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0020000200000002L}); 13533 public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000020000000L});
11887 public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0020000000000002L}); 13534 public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000004000000L});
11888 public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000200000000L}); 13535 public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0008200000000000L});
11889 public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x014004B100000002L}); 13536 public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
11890 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0002800000000002L}); 13537 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0400000000000000L});
11891 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0008400000000002L}); 13538 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0100000800000002L});
11892 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0800000000000002L}); 13539 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0100000000000002L});
11893 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000010000000002L}); 13540 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000800000000L});
11894 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x82001000287AC000L,0x0000000000000061L}); 13541 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0008000000000002L});
11895 public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0400000000000000L,0x0000000000000021L}); 13542 public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0A00258400000002L});
11896 public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0401000000000000L}); 13543 public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0014000000000002L});
11897 public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x1200000000000000L}); 13544 public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0042000000000002L});
11898 public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x6000000000000000L}); 13545 public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x8000000000000002L});
11899 public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000200000000000L}); 13546 public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000080000000002L});
11900 public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000100000000000L,0x000000000000000CL}); 13547 public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x2000800141E48000L,0x0000000000000C38L});
11901 public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x8202FA00EA7AC800L,0x0000000000000061L}); 13548 public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
11902 public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0001200000000000L}); 13549 public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0001000000000000L});
11903 public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x8202DA00EA7AC800L,0x0000000000000061L}); 13550 public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x3017D00341E48000L,0x0000000000000C38L});
11904 public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000400000000000L}); 13551 public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0009000000000000L});
11905 public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000400000000L}); 13552 public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x3016D00341E48000L,0x0000000000000C38L});
11906 public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0400000000000000L}); 13553 public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0002000000000000L});
11907 public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000040000L}); 13554 public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0020000000000002L});
11908 public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x1000000000002000L}); 13555 public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000180L});
11909 public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x1001000000000000L}); 13556 public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0008000000000000L});
11910 public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x4000000000000040L,0x0000000000000021L}); 13557 public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x4000000000000000L});
11911 public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000020L}); 13558 public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000010100040L});
11912 public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0020000000000402L}); 13559 public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000002000L,0x0000000000000201L});
11913 public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000400000000000L,0x0000000000000040L}); 13560 public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0008000000000000L,0x0000000000000201L});
11914 public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L}); 13561 public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x00000000000C0080L,0x0000000000000424L});
11915 public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000002000000000L}); 13562 public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x2000000000000000L,0x0000000000000400L});
11916 public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000061L}); 13563 public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0100000000000802L});
11917 public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000001000000000L}); 13564 public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0002000000000000L,0x0000000000000800L});
11918 public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000008000000000L}); 13565 public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
11919 public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000008000000002L}); 13566 public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000201L});
11920 public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0004000000000002L}); 13567 public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000404L});
11921 13568 public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0008000000000000L,0x0000000000000404L});
11922} \ No newline at end of file 13569 public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000010000000000L});
13570 public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000040000L,0x0000000000000C20L});
13571 public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0000008000000000L});
13572 public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000040000000000L});
13573 public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0000040000000000L,0x0000000000000200L});
13574 public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0020000000000000L});
13575 public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0000002000000002L});
13576
13577}
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.tokens b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.tokens
index 736b2f0a..591c0e60 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.tokens
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.tokens
@@ -1,70 +1,75 @@
1'!'=43 1'!'=46
2'!='=32 2'!='=34
3'('=44 3'('=47
4')'=45 4')'=48
5'*'=46 5'*'=49
6'+'=47 6'+'=50
7','=48 7','=51
8'-'=49 8'-'=52
9'->'=33 9'->'=35
10'.'=50 10'.'=53
11'..'=34 11'...'=31
12'...'=28 12'/'=54
13'/'=51 13':'=55
14':'=52 14':-'=36
15':-'=35 15'::'=37
16';'=53 16':='=38
17'<'=54 17';'=56
18'<='=36 18'<'=57
19'='=55 19'<='=39
20'=='=37 20'='=58
21'=>'=38 21'=='=40
22'>'=56 22'=>'=41
23'>='=39 23'>'=59
24'['=57 24'>='=42
25']'=58 25'?'=60
26'^'=59 26'['=61
27'abstract'=5 27']'=62
28'as'=40 28'^'=63
29'class'=18 29'abstract'=6
30'contains'=6 30'as'=43
31'count'=19 31'class'=20
32'current'=11 32'containment'=4
33'datatype'=7 33'contains'=7
34'count'=21
35'datatype'=8
34'default'=12 36'default'=12
35'else'=24 37'else'=26
36'empty'=20 38'empty'=22
37'error'=21 39'enum'=27
38'exists'=15 40'error'=23
39'extends'=13 41'extends'=13
40'extern'=16 42'extern'=16
41'false'=22 43'false'=24
42'forall'=17 44'functional'=5
43'functional'=4 45'if'=44
44'if'=41 46'import'=17
45'in'=42 47'in'=45
46'inf'=29 48'inf'=32
47'let'=30 49'let'=33
48'maximize'=8 50'maximize'=9
49'may'=31 51'minimize'=10
50'minimize'=9 52'object'=18
51'must'=25 53'opposite'=11
52'opposite'=10 54'problem'=14
53'scope'=23 55'refers'=19
54'then'=26 56'root'=28
55'true'=27 57'scope'=25
56'unknown'=14 58'then'=29
57'{'=60 59'true'=30
58'|'=61 60'unknown'=15
59'}'=62 61'{'=64
60RULE_ANY_OTHER=73 62'|'=65
61RULE_FULL_STOP=68 63'}'=66
62RULE_ID=69 64'~'=67
63RULE_INT=70 65RULE_ANY_OTHER=78
64RULE_ML_COMMENT=71 66RULE_FULL_STOP=73
65RULE_QUOTED_ID=64 67RULE_ID=74
66RULE_REFLEXIVE_TRANSITIVE_CLOSURE=67 68RULE_INT=75
67RULE_SL_COMMENT=65 69RULE_ML_COMMENT=76
68RULE_STRING=63 70RULE_QUOTED_ID=69
69RULE_TRANSITIVE_CLOSURE=66 71RULE_REFLEXIVE_TRANSITIVE_CLOSURE=72
70RULE_WS=72 72RULE_SL_COMMENT=70
73RULE_STRING=68
74RULE_TRANSITIVE_CLOSURE=71
75RULE_WS=77
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.g b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.g
index 3c496e8a..074932ca 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.g
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.g
@@ -11,6 +11,8 @@ package org.eclipse.viatra.solver.language.parser.antlr.lexer;
11import org.eclipse.xtext.parser.antlr.Lexer; 11import org.eclipse.xtext.parser.antlr.Lexer;
12} 12}
13 13
14Containment : 'containment';
15
14Functional : 'functional'; 16Functional : 'functional';
15 17
16Abstract : 'abstract'; 18Abstract : 'abstract';
@@ -25,19 +27,21 @@ Minimize : 'minimize';
25 27
26Opposite : 'opposite'; 28Opposite : 'opposite';
27 29
28Current : 'current';
29
30Default : 'default'; 30Default : 'default';
31 31
32Extends : 'extends'; 32Extends : 'extends';
33 33
34Unknown : 'unknown'; 34Problem : 'problem';
35 35
36Exists : 'exists'; 36Unknown : 'unknown';
37 37
38Extern : 'extern'; 38Extern : 'extern';
39 39
40Forall : 'forall'; 40Import : 'import';
41
42Object : 'object';
43
44Refers : 'refers';
41 45
42Class : 'class'; 46Class : 'class';
43 47
@@ -53,7 +57,9 @@ Scope : 'scope';
53 57
54Else : 'else'; 58Else : 'else';
55 59
56Must : 'must'; 60Enum : 'enum';
61
62Root : 'root';
57 63
58Then : 'then'; 64Then : 'then';
59 65
@@ -65,16 +71,16 @@ Inf : 'inf';
65 71
66Let : 'let'; 72Let : 'let';
67 73
68May : 'may';
69
70ExclamationMarkEqualsSign : '!='; 74ExclamationMarkEqualsSign : '!=';
71 75
72HyphenMinusGreaterThanSign : '->'; 76HyphenMinusGreaterThanSign : '->';
73 77
74FullStopFullStop : '..';
75
76ColonHyphenMinus : ':-'; 78ColonHyphenMinus : ':-';
77 79
80ColonColon : '::';
81
82ColonEqualsSign : ':=';
83
78LessThanSignEqualsSign : '<='; 84LessThanSignEqualsSign : '<=';
79 85
80EqualsSignEqualsSign : '=='; 86EqualsSignEqualsSign : '==';
@@ -117,6 +123,8 @@ EqualsSign : '=';
117 123
118GreaterThanSign : '>'; 124GreaterThanSign : '>';
119 125
126QuestionMark : '?';
127
120LeftSquareBracket : '['; 128LeftSquareBracket : '[';
121 129
122RightSquareBracket : ']'; 130RightSquareBracket : ']';
@@ -129,6 +137,8 @@ VerticalLine : '|';
129 137
130RightCurlyBracket : '}'; 138RightCurlyBracket : '}';
131 139
140Tilde : '~';
141
132RULE_STRING : '"' ('\\' .|~(('\\'|'"')))* '"'; 142RULE_STRING : '"' ('\\' .|~(('\\'|'"')))* '"';
133 143
134RULE_QUOTED_ID : '\'' ('\\' .|~(('\\'|'\'')))* '\''; 144RULE_QUOTED_ID : '\'' ('\\' .|~(('\\'|'\'')))* '\'';
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.java
index b113baaf..4281bac0 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.java
@@ -12,77 +12,82 @@ import java.util.ArrayList;
12 12
13@SuppressWarnings("all") 13@SuppressWarnings("all")
14public class InternalSolverLanguageLexer extends Lexer { 14public class InternalSolverLanguageLexer extends Lexer {
15 public static final int EqualsSignGreaterThanSign=38; 15 public static final int Enum=27;
16 public static final int True=27; 16 public static final int Import=17;
17 public static final int Count=19; 17 public static final int EqualsSignGreaterThanSign=41;
18 public static final int False=22; 18 public static final int True=30;
19 public static final int Must=25; 19 public static final int Count=21;
20 public static final int FullStopFullStopFullStop=28; 20 public static final int False=24;
21 public static final int LessThanSign=54; 21 public static final int FullStopFullStopFullStop=31;
22 public static final int Datatype=7; 22 public static final int LessThanSign=57;
23 public static final int LeftParenthesis=44; 23 public static final int Datatype=8;
24 public static final int Unknown=14; 24 public static final int LeftParenthesis=47;
25 public static final int RULE_REFLEXIVE_TRANSITIVE_CLOSURE=67; 25 public static final int Unknown=15;
26 public static final int FullStopFullStop=34; 26 public static final int RULE_REFLEXIVE_TRANSITIVE_CLOSURE=72;
27 public static final int Then=26; 27 public static final int Then=29;
28 public static final int Extends=13; 28 public static final int Extends=13;
29 public static final int Forall=17; 29 public static final int RightSquareBracket=62;
30 public static final int RightSquareBracket=58; 30 public static final int ExclamationMark=46;
31 public static final int ExclamationMark=43; 31 public static final int Opposite=11;
32 public static final int Opposite=10; 32 public static final int GreaterThanSign=59;
33 public static final int GreaterThanSign=56; 33 public static final int Root=28;
34 public static final int RULE_ID=69; 34 public static final int RULE_ID=74;
35 public static final int RULE_QUOTED_ID=64; 35 public static final int RULE_QUOTED_ID=69;
36 public static final int RightParenthesis=45; 36 public static final int RightParenthesis=48;
37 public static final int GreaterThanSignEqualsSign=39; 37 public static final int ColonEqualsSign=38;
38 public static final int Functional=4; 38 public static final int GreaterThanSignEqualsSign=42;
39 public static final int EqualsSignEqualsSign=37; 39 public static final int Functional=5;
40 public static final int VerticalLine=61; 40 public static final int ColonColon=37;
41 public static final int PlusSign=47; 41 public static final int EqualsSignEqualsSign=40;
42 public static final int RULE_INT=70; 42 public static final int VerticalLine=65;
43 public static final int Contains=6; 43 public static final int PlusSign=50;
44 public static final int RULE_ML_COMMENT=71; 44 public static final int RULE_INT=75;
45 public static final int RULE_TRANSITIVE_CLOSURE=66; 45 public static final int Contains=7;
46 public static final int Class=18; 46 public static final int RULE_ML_COMMENT=76;
47 public static final int LeftSquareBracket=57; 47 public static final int RULE_TRANSITIVE_CLOSURE=71;
48 public static final int RULE_FULL_STOP=68; 48 public static final int Problem=14;
49 public static final int Current=11; 49 public static final int Object=18;
50 public static final int If=41; 50 public static final int Class=20;
51 public static final int Inf=29; 51 public static final int LeftSquareBracket=61;
52 public static final int May=31; 52 public static final int RULE_FULL_STOP=73;
53 public static final int In=42; 53 public static final int If=44;
54 public static final int RULE_STRING=63; 54 public static final int Refers=19;
55 public static final int Inf=32;
56 public static final int In=45;
57 public static final int RULE_STRING=68;
55 public static final int Extern=16; 58 public static final int Extern=16;
56 public static final int RULE_SL_COMMENT=65; 59 public static final int RULE_SL_COMMENT=70;
57 public static final int Comma=48; 60 public static final int Comma=51;
58 public static final int EqualsSign=55; 61 public static final int EqualsSign=58;
59 public static final int Empty=20; 62 public static final int Empty=22;
60 public static final int As=40; 63 public static final int As=43;
61 public static final int HyphenMinus=49; 64 public static final int HyphenMinus=52;
62 public static final int Maximize=8; 65 public static final int Maximize=9;
63 public static final int LessThanSignEqualsSign=36; 66 public static final int LessThanSignEqualsSign=39;
64 public static final int Solidus=51; 67 public static final int Solidus=54;
65 public static final int Colon=52; 68 public static final int Colon=55;
66 public static final int RightCurlyBracket=62; 69 public static final int RightCurlyBracket=66;
67 public static final int EOF=-1; 70 public static final int EOF=-1;
68 public static final int Asterisk=46; 71 public static final int Asterisk=49;
69 public static final int FullStop=50; 72 public static final int Containment=4;
70 public static final int RULE_WS=72; 73 public static final int FullStop=53;
71 public static final int Abstract=5; 74 public static final int RULE_WS=77;
72 public static final int Minimize=9; 75 public static final int Abstract=6;
73 public static final int LeftCurlyBracket=60; 76 public static final int Minimize=10;
74 public static final int Error=21; 77 public static final int LeftCurlyBracket=64;
75 public static final int RULE_ANY_OTHER=73; 78 public static final int Error=23;
79 public static final int Tilde=67;
80 public static final int RULE_ANY_OTHER=78;
76 public static final int Default=12; 81 public static final int Default=12;
77 public static final int ColonHyphenMinus=35; 82 public static final int ColonHyphenMinus=36;
78 public static final int CircumflexAccent=59; 83 public static final int CircumflexAccent=63;
79 public static final int Semicolon=53; 84 public static final int Semicolon=56;
80 public static final int Scope=23; 85 public static final int Scope=25;
81 public static final int Exists=15; 86 public static final int QuestionMark=60;
82 public static final int Else=24; 87 public static final int Else=26;
83 public static final int Let=30; 88 public static final int Let=33;
84 public static final int ExclamationMarkEqualsSign=32; 89 public static final int ExclamationMarkEqualsSign=34;
85 public static final int HyphenMinusGreaterThanSign=33; 90 public static final int HyphenMinusGreaterThanSign=35;
86 91
87 // delegates 92 // delegates
88 // delegators 93 // delegators
@@ -97,13 +102,34 @@ public class InternalSolverLanguageLexer extends Lexer {
97 } 102 }
98 public String getGrammarFileName() { return "InternalSolverLanguageLexer.g"; } 103 public String getGrammarFileName() { return "InternalSolverLanguageLexer.g"; }
99 104
105 // $ANTLR start "Containment"
106 public final void mContainment() throws RecognitionException {
107 try {
108 int _type = Containment;
109 int _channel = DEFAULT_TOKEN_CHANNEL;
110 // InternalSolverLanguageLexer.g:14:13: ( 'containment' )
111 // InternalSolverLanguageLexer.g:14:15: 'containment'
112 {
113 match("containment");
114
115
116 }
117
118 state.type = _type;
119 state.channel = _channel;
120 }
121 finally {
122 }
123 }
124 // $ANTLR end "Containment"
125
100 // $ANTLR start "Functional" 126 // $ANTLR start "Functional"
101 public final void mFunctional() throws RecognitionException { 127 public final void mFunctional() throws RecognitionException {
102 try { 128 try {
103 int _type = Functional; 129 int _type = Functional;
104 int _channel = DEFAULT_TOKEN_CHANNEL; 130 int _channel = DEFAULT_TOKEN_CHANNEL;
105 // InternalSolverLanguageLexer.g:14:12: ( 'functional' ) 131 // InternalSolverLanguageLexer.g:16:12: ( 'functional' )
106 // InternalSolverLanguageLexer.g:14:14: 'functional' 132 // InternalSolverLanguageLexer.g:16:14: 'functional'
107 { 133 {
108 match("functional"); 134 match("functional");
109 135
@@ -123,8 +149,8 @@ public class InternalSolverLanguageLexer extends Lexer {
123 try { 149 try {
124 int _type = Abstract; 150 int _type = Abstract;
125 int _channel = DEFAULT_TOKEN_CHANNEL; 151 int _channel = DEFAULT_TOKEN_CHANNEL;
126 // InternalSolverLanguageLexer.g:16:10: ( 'abstract' ) 152 // InternalSolverLanguageLexer.g:18:10: ( 'abstract' )
127 // InternalSolverLanguageLexer.g:16:12: 'abstract' 153 // InternalSolverLanguageLexer.g:18:12: 'abstract'
128 { 154 {
129 match("abstract"); 155 match("abstract");
130 156
@@ -144,8 +170,8 @@ public class InternalSolverLanguageLexer extends Lexer {
144 try { 170 try {
145 int _type = Contains; 171 int _type = Contains;
146 int _channel = DEFAULT_TOKEN_CHANNEL; 172 int _channel = DEFAULT_TOKEN_CHANNEL;
147 // InternalSolverLanguageLexer.g:18:10: ( 'contains' ) 173 // InternalSolverLanguageLexer.g:20:10: ( 'contains' )
148 // InternalSolverLanguageLexer.g:18:12: 'contains' 174 // InternalSolverLanguageLexer.g:20:12: 'contains'
149 { 175 {
150 match("contains"); 176 match("contains");
151 177
@@ -165,8 +191,8 @@ public class InternalSolverLanguageLexer extends Lexer {
165 try { 191 try {
166 int _type = Datatype; 192 int _type = Datatype;
167 int _channel = DEFAULT_TOKEN_CHANNEL; 193 int _channel = DEFAULT_TOKEN_CHANNEL;
168 // InternalSolverLanguageLexer.g:20:10: ( 'datatype' ) 194 // InternalSolverLanguageLexer.g:22:10: ( 'datatype' )
169 // InternalSolverLanguageLexer.g:20:12: 'datatype' 195 // InternalSolverLanguageLexer.g:22:12: 'datatype'
170 { 196 {
171 match("datatype"); 197 match("datatype");
172 198
@@ -186,8 +212,8 @@ public class InternalSolverLanguageLexer extends Lexer {
186 try { 212 try {
187 int _type = Maximize; 213 int _type = Maximize;
188 int _channel = DEFAULT_TOKEN_CHANNEL; 214 int _channel = DEFAULT_TOKEN_CHANNEL;
189 // InternalSolverLanguageLexer.g:22:10: ( 'maximize' ) 215 // InternalSolverLanguageLexer.g:24:10: ( 'maximize' )
190 // InternalSolverLanguageLexer.g:22:12: 'maximize' 216 // InternalSolverLanguageLexer.g:24:12: 'maximize'
191 { 217 {
192 match("maximize"); 218 match("maximize");
193 219
@@ -207,8 +233,8 @@ public class InternalSolverLanguageLexer extends Lexer {
207 try { 233 try {
208 int _type = Minimize; 234 int _type = Minimize;
209 int _channel = DEFAULT_TOKEN_CHANNEL; 235 int _channel = DEFAULT_TOKEN_CHANNEL;
210 // InternalSolverLanguageLexer.g:24:10: ( 'minimize' ) 236 // InternalSolverLanguageLexer.g:26:10: ( 'minimize' )
211 // InternalSolverLanguageLexer.g:24:12: 'minimize' 237 // InternalSolverLanguageLexer.g:26:12: 'minimize'
212 { 238 {
213 match("minimize"); 239 match("minimize");
214 240
@@ -228,8 +254,8 @@ public class InternalSolverLanguageLexer extends Lexer {
228 try { 254 try {
229 int _type = Opposite; 255 int _type = Opposite;
230 int _channel = DEFAULT_TOKEN_CHANNEL; 256 int _channel = DEFAULT_TOKEN_CHANNEL;
231 // InternalSolverLanguageLexer.g:26:10: ( 'opposite' ) 257 // InternalSolverLanguageLexer.g:28:10: ( 'opposite' )
232 // InternalSolverLanguageLexer.g:26:12: 'opposite' 258 // InternalSolverLanguageLexer.g:28:12: 'opposite'
233 { 259 {
234 match("opposite"); 260 match("opposite");
235 261
@@ -244,27 +270,6 @@ public class InternalSolverLanguageLexer extends Lexer {
244 } 270 }
245 // $ANTLR end "Opposite" 271 // $ANTLR end "Opposite"
246 272
247 // $ANTLR start "Current"
248 public final void mCurrent() throws RecognitionException {
249 try {
250 int _type = Current;
251 int _channel = DEFAULT_TOKEN_CHANNEL;
252 // InternalSolverLanguageLexer.g:28:9: ( 'current' )
253 // InternalSolverLanguageLexer.g:28:11: 'current'
254 {
255 match("current");
256
257
258 }
259
260 state.type = _type;
261 state.channel = _channel;
262 }
263 finally {
264 }
265 }
266 // $ANTLR end "Current"
267
268 // $ANTLR start "Default" 273 // $ANTLR start "Default"
269 public final void mDefault() throws RecognitionException { 274 public final void mDefault() throws RecognitionException {
270 try { 275 try {
@@ -307,15 +312,15 @@ public class InternalSolverLanguageLexer extends Lexer {
307 } 312 }
308 // $ANTLR end "Extends" 313 // $ANTLR end "Extends"
309 314
310 // $ANTLR start "Unknown" 315 // $ANTLR start "Problem"
311 public final void mUnknown() throws RecognitionException { 316 public final void mProblem() throws RecognitionException {
312 try { 317 try {
313 int _type = Unknown; 318 int _type = Problem;
314 int _channel = DEFAULT_TOKEN_CHANNEL; 319 int _channel = DEFAULT_TOKEN_CHANNEL;
315 // InternalSolverLanguageLexer.g:34:9: ( 'unknown' ) 320 // InternalSolverLanguageLexer.g:34:9: ( 'problem' )
316 // InternalSolverLanguageLexer.g:34:11: 'unknown' 321 // InternalSolverLanguageLexer.g:34:11: 'problem'
317 { 322 {
318 match("unknown"); 323 match("problem");
319 324
320 325
321 } 326 }
@@ -326,17 +331,17 @@ public class InternalSolverLanguageLexer extends Lexer {
326 finally { 331 finally {
327 } 332 }
328 } 333 }
329 // $ANTLR end "Unknown" 334 // $ANTLR end "Problem"
330 335
331 // $ANTLR start "Exists" 336 // $ANTLR start "Unknown"
332 public final void mExists() throws RecognitionException { 337 public final void mUnknown() throws RecognitionException {
333 try { 338 try {
334 int _type = Exists; 339 int _type = Unknown;
335 int _channel = DEFAULT_TOKEN_CHANNEL; 340 int _channel = DEFAULT_TOKEN_CHANNEL;
336 // InternalSolverLanguageLexer.g:36:8: ( 'exists' ) 341 // InternalSolverLanguageLexer.g:36:9: ( 'unknown' )
337 // InternalSolverLanguageLexer.g:36:10: 'exists' 342 // InternalSolverLanguageLexer.g:36:11: 'unknown'
338 { 343 {
339 match("exists"); 344 match("unknown");
340 345
341 346
342 } 347 }
@@ -347,7 +352,7 @@ public class InternalSolverLanguageLexer extends Lexer {
347 finally { 352 finally {
348 } 353 }
349 } 354 }
350 // $ANTLR end "Exists" 355 // $ANTLR end "Unknown"
351 356
352 // $ANTLR start "Extern" 357 // $ANTLR start "Extern"
353 public final void mExtern() throws RecognitionException { 358 public final void mExtern() throws RecognitionException {
@@ -370,15 +375,15 @@ public class InternalSolverLanguageLexer extends Lexer {
370 } 375 }
371 // $ANTLR end "Extern" 376 // $ANTLR end "Extern"
372 377
373 // $ANTLR start "Forall" 378 // $ANTLR start "Import"
374 public final void mForall() throws RecognitionException { 379 public final void mImport() throws RecognitionException {
375 try { 380 try {
376 int _type = Forall; 381 int _type = Import;
377 int _channel = DEFAULT_TOKEN_CHANNEL; 382 int _channel = DEFAULT_TOKEN_CHANNEL;
378 // InternalSolverLanguageLexer.g:40:8: ( 'forall' ) 383 // InternalSolverLanguageLexer.g:40:8: ( 'import' )
379 // InternalSolverLanguageLexer.g:40:10: 'forall' 384 // InternalSolverLanguageLexer.g:40:10: 'import'
380 { 385 {
381 match("forall"); 386 match("import");
382 387
383 388
384 } 389 }
@@ -389,15 +394,57 @@ public class InternalSolverLanguageLexer extends Lexer {
389 finally { 394 finally {
390 } 395 }
391 } 396 }
392 // $ANTLR end "Forall" 397 // $ANTLR end "Import"
398
399 // $ANTLR start "Object"
400 public final void mObject() throws RecognitionException {
401 try {
402 int _type = Object;
403 int _channel = DEFAULT_TOKEN_CHANNEL;
404 // InternalSolverLanguageLexer.g:42:8: ( 'object' )
405 // InternalSolverLanguageLexer.g:42:10: 'object'
406 {
407 match("object");
408
409
410 }
411
412 state.type = _type;
413 state.channel = _channel;
414 }
415 finally {
416 }
417 }
418 // $ANTLR end "Object"
419
420 // $ANTLR start "Refers"
421 public final void mRefers() throws RecognitionException {
422 try {
423 int _type = Refers;
424 int _channel = DEFAULT_TOKEN_CHANNEL;
425 // InternalSolverLanguageLexer.g:44:8: ( 'refers' )
426 // InternalSolverLanguageLexer.g:44:10: 'refers'
427 {
428 match("refers");
429
430
431 }
432
433 state.type = _type;
434 state.channel = _channel;
435 }
436 finally {
437 }
438 }
439 // $ANTLR end "Refers"
393 440
394 // $ANTLR start "Class" 441 // $ANTLR start "Class"
395 public final void mClass() throws RecognitionException { 442 public final void mClass() throws RecognitionException {
396 try { 443 try {
397 int _type = Class; 444 int _type = Class;
398 int _channel = DEFAULT_TOKEN_CHANNEL; 445 int _channel = DEFAULT_TOKEN_CHANNEL;
399 // InternalSolverLanguageLexer.g:42:7: ( 'class' ) 446 // InternalSolverLanguageLexer.g:46:7: ( 'class' )
400 // InternalSolverLanguageLexer.g:42:9: 'class' 447 // InternalSolverLanguageLexer.g:46:9: 'class'
401 { 448 {
402 match("class"); 449 match("class");
403 450
@@ -417,8 +464,8 @@ public class InternalSolverLanguageLexer extends Lexer {
417 try { 464 try {
418 int _type = Count; 465 int _type = Count;
419 int _channel = DEFAULT_TOKEN_CHANNEL; 466 int _channel = DEFAULT_TOKEN_CHANNEL;
420 // InternalSolverLanguageLexer.g:44:7: ( 'count' ) 467 // InternalSolverLanguageLexer.g:48:7: ( 'count' )
421 // InternalSolverLanguageLexer.g:44:9: 'count' 468 // InternalSolverLanguageLexer.g:48:9: 'count'
422 { 469 {
423 match("count"); 470 match("count");
424 471
@@ -438,8 +485,8 @@ public class InternalSolverLanguageLexer extends Lexer {
438 try { 485 try {
439 int _type = Empty; 486 int _type = Empty;
440 int _channel = DEFAULT_TOKEN_CHANNEL; 487 int _channel = DEFAULT_TOKEN_CHANNEL;
441 // InternalSolverLanguageLexer.g:46:7: ( 'empty' ) 488 // InternalSolverLanguageLexer.g:50:7: ( 'empty' )
442 // InternalSolverLanguageLexer.g:46:9: 'empty' 489 // InternalSolverLanguageLexer.g:50:9: 'empty'
443 { 490 {
444 match("empty"); 491 match("empty");
445 492
@@ -459,8 +506,8 @@ public class InternalSolverLanguageLexer extends Lexer {
459 try { 506 try {
460 int _type = Error; 507 int _type = Error;
461 int _channel = DEFAULT_TOKEN_CHANNEL; 508 int _channel = DEFAULT_TOKEN_CHANNEL;
462 // InternalSolverLanguageLexer.g:48:7: ( 'error' ) 509 // InternalSolverLanguageLexer.g:52:7: ( 'error' )
463 // InternalSolverLanguageLexer.g:48:9: 'error' 510 // InternalSolverLanguageLexer.g:52:9: 'error'
464 { 511 {
465 match("error"); 512 match("error");
466 513
@@ -480,8 +527,8 @@ public class InternalSolverLanguageLexer extends Lexer {
480 try { 527 try {
481 int _type = False; 528 int _type = False;
482 int _channel = DEFAULT_TOKEN_CHANNEL; 529 int _channel = DEFAULT_TOKEN_CHANNEL;
483 // InternalSolverLanguageLexer.g:50:7: ( 'false' ) 530 // InternalSolverLanguageLexer.g:54:7: ( 'false' )
484 // InternalSolverLanguageLexer.g:50:9: 'false' 531 // InternalSolverLanguageLexer.g:54:9: 'false'
485 { 532 {
486 match("false"); 533 match("false");
487 534
@@ -501,8 +548,8 @@ public class InternalSolverLanguageLexer extends Lexer {
501 try { 548 try {
502 int _type = Scope; 549 int _type = Scope;
503 int _channel = DEFAULT_TOKEN_CHANNEL; 550 int _channel = DEFAULT_TOKEN_CHANNEL;
504 // InternalSolverLanguageLexer.g:52:7: ( 'scope' ) 551 // InternalSolverLanguageLexer.g:56:7: ( 'scope' )
505 // InternalSolverLanguageLexer.g:52:9: 'scope' 552 // InternalSolverLanguageLexer.g:56:9: 'scope'
506 { 553 {
507 match("scope"); 554 match("scope");
508 555
@@ -522,8 +569,8 @@ public class InternalSolverLanguageLexer extends Lexer {
522 try { 569 try {
523 int _type = Else; 570 int _type = Else;
524 int _channel = DEFAULT_TOKEN_CHANNEL; 571 int _channel = DEFAULT_TOKEN_CHANNEL;
525 // InternalSolverLanguageLexer.g:54:6: ( 'else' ) 572 // InternalSolverLanguageLexer.g:58:6: ( 'else' )
526 // InternalSolverLanguageLexer.g:54:8: 'else' 573 // InternalSolverLanguageLexer.g:58:8: 'else'
527 { 574 {
528 match("else"); 575 match("else");
529 576
@@ -538,15 +585,15 @@ public class InternalSolverLanguageLexer extends Lexer {
538 } 585 }
539 // $ANTLR end "Else" 586 // $ANTLR end "Else"
540 587
541 // $ANTLR start "Must" 588 // $ANTLR start "Enum"
542 public final void mMust() throws RecognitionException { 589 public final void mEnum() throws RecognitionException {
543 try { 590 try {
544 int _type = Must; 591 int _type = Enum;
545 int _channel = DEFAULT_TOKEN_CHANNEL; 592 int _channel = DEFAULT_TOKEN_CHANNEL;
546 // InternalSolverLanguageLexer.g:56:6: ( 'must' ) 593 // InternalSolverLanguageLexer.g:60:6: ( 'enum' )
547 // InternalSolverLanguageLexer.g:56:8: 'must' 594 // InternalSolverLanguageLexer.g:60:8: 'enum'
548 { 595 {
549 match("must"); 596 match("enum");
550 597
551 598
552 } 599 }
@@ -557,15 +604,36 @@ public class InternalSolverLanguageLexer extends Lexer {
557 finally { 604 finally {
558 } 605 }
559 } 606 }
560 // $ANTLR end "Must" 607 // $ANTLR end "Enum"
608
609 // $ANTLR start "Root"
610 public final void mRoot() throws RecognitionException {
611 try {
612 int _type = Root;
613 int _channel = DEFAULT_TOKEN_CHANNEL;
614 // InternalSolverLanguageLexer.g:62:6: ( 'root' )
615 // InternalSolverLanguageLexer.g:62:8: 'root'
616 {
617 match("root");
618
619
620 }
621
622 state.type = _type;
623 state.channel = _channel;
624 }
625 finally {
626 }
627 }
628 // $ANTLR end "Root"
561 629
562 // $ANTLR start "Then" 630 // $ANTLR start "Then"
563 public final void mThen() throws RecognitionException { 631 public final void mThen() throws RecognitionException {
564 try { 632 try {
565 int _type = Then; 633 int _type = Then;
566 int _channel = DEFAULT_TOKEN_CHANNEL; 634 int _channel = DEFAULT_TOKEN_CHANNEL;
567 // InternalSolverLanguageLexer.g:58:6: ( 'then' ) 635 // InternalSolverLanguageLexer.g:64:6: ( 'then' )
568 // InternalSolverLanguageLexer.g:58:8: 'then' 636 // InternalSolverLanguageLexer.g:64:8: 'then'
569 { 637 {
570 match("then"); 638 match("then");
571 639
@@ -585,8 +653,8 @@ public class InternalSolverLanguageLexer extends Lexer {
585 try { 653 try {
586 int _type = True; 654 int _type = True;
587 int _channel = DEFAULT_TOKEN_CHANNEL; 655 int _channel = DEFAULT_TOKEN_CHANNEL;
588 // InternalSolverLanguageLexer.g:60:6: ( 'true' ) 656 // InternalSolverLanguageLexer.g:66:6: ( 'true' )
589 // InternalSolverLanguageLexer.g:60:8: 'true' 657 // InternalSolverLanguageLexer.g:66:8: 'true'
590 { 658 {
591 match("true"); 659 match("true");
592 660
@@ -606,8 +674,8 @@ public class InternalSolverLanguageLexer extends Lexer {
606 try { 674 try {
607 int _type = FullStopFullStopFullStop; 675 int _type = FullStopFullStopFullStop;
608 int _channel = DEFAULT_TOKEN_CHANNEL; 676 int _channel = DEFAULT_TOKEN_CHANNEL;
609 // InternalSolverLanguageLexer.g:62:26: ( '...' ) 677 // InternalSolverLanguageLexer.g:68:26: ( '...' )
610 // InternalSolverLanguageLexer.g:62:28: '...' 678 // InternalSolverLanguageLexer.g:68:28: '...'
611 { 679 {
612 match("..."); 680 match("...");
613 681
@@ -627,8 +695,8 @@ public class InternalSolverLanguageLexer extends Lexer {
627 try { 695 try {
628 int _type = Inf; 696 int _type = Inf;
629 int _channel = DEFAULT_TOKEN_CHANNEL; 697 int _channel = DEFAULT_TOKEN_CHANNEL;
630 // InternalSolverLanguageLexer.g:64:5: ( 'inf' ) 698 // InternalSolverLanguageLexer.g:70:5: ( 'inf' )
631 // InternalSolverLanguageLexer.g:64:7: 'inf' 699 // InternalSolverLanguageLexer.g:70:7: 'inf'
632 { 700 {
633 match("inf"); 701 match("inf");
634 702
@@ -648,8 +716,8 @@ public class InternalSolverLanguageLexer extends Lexer {
648 try { 716 try {
649 int _type = Let; 717 int _type = Let;
650 int _channel = DEFAULT_TOKEN_CHANNEL; 718 int _channel = DEFAULT_TOKEN_CHANNEL;
651 // InternalSolverLanguageLexer.g:66:5: ( 'let' ) 719 // InternalSolverLanguageLexer.g:72:5: ( 'let' )
652 // InternalSolverLanguageLexer.g:66:7: 'let' 720 // InternalSolverLanguageLexer.g:72:7: 'let'
653 { 721 {
654 match("let"); 722 match("let");
655 723
@@ -664,15 +732,15 @@ public class InternalSolverLanguageLexer extends Lexer {
664 } 732 }
665 // $ANTLR end "Let" 733 // $ANTLR end "Let"
666 734
667 // $ANTLR start "May" 735 // $ANTLR start "ExclamationMarkEqualsSign"
668 public final void mMay() throws RecognitionException { 736 public final void mExclamationMarkEqualsSign() throws RecognitionException {
669 try { 737 try {
670 int _type = May; 738 int _type = ExclamationMarkEqualsSign;
671 int _channel = DEFAULT_TOKEN_CHANNEL; 739 int _channel = DEFAULT_TOKEN_CHANNEL;
672 // InternalSolverLanguageLexer.g:68:5: ( 'may' ) 740 // InternalSolverLanguageLexer.g:74:27: ( '!=' )
673 // InternalSolverLanguageLexer.g:68:7: 'may' 741 // InternalSolverLanguageLexer.g:74:29: '!='
674 { 742 {
675 match("may"); 743 match("!=");
676 744
677 745
678 } 746 }
@@ -683,17 +751,17 @@ public class InternalSolverLanguageLexer extends Lexer {
683 finally { 751 finally {
684 } 752 }
685 } 753 }
686 // $ANTLR end "May" 754 // $ANTLR end "ExclamationMarkEqualsSign"
687 755
688 // $ANTLR start "ExclamationMarkEqualsSign" 756 // $ANTLR start "HyphenMinusGreaterThanSign"
689 public final void mExclamationMarkEqualsSign() throws RecognitionException { 757 public final void mHyphenMinusGreaterThanSign() throws RecognitionException {
690 try { 758 try {
691 int _type = ExclamationMarkEqualsSign; 759 int _type = HyphenMinusGreaterThanSign;
692 int _channel = DEFAULT_TOKEN_CHANNEL; 760 int _channel = DEFAULT_TOKEN_CHANNEL;
693 // InternalSolverLanguageLexer.g:70:27: ( '!=' ) 761 // InternalSolverLanguageLexer.g:76:28: ( '->' )
694 // InternalSolverLanguageLexer.g:70:29: '!=' 762 // InternalSolverLanguageLexer.g:76:30: '->'
695 { 763 {
696 match("!="); 764 match("->");
697 765
698 766
699 } 767 }
@@ -704,17 +772,17 @@ public class InternalSolverLanguageLexer extends Lexer {
704 finally { 772 finally {
705 } 773 }
706 } 774 }
707 // $ANTLR end "ExclamationMarkEqualsSign" 775 // $ANTLR end "HyphenMinusGreaterThanSign"
708 776
709 // $ANTLR start "HyphenMinusGreaterThanSign" 777 // $ANTLR start "ColonHyphenMinus"
710 public final void mHyphenMinusGreaterThanSign() throws RecognitionException { 778 public final void mColonHyphenMinus() throws RecognitionException {
711 try { 779 try {
712 int _type = HyphenMinusGreaterThanSign; 780 int _type = ColonHyphenMinus;
713 int _channel = DEFAULT_TOKEN_CHANNEL; 781 int _channel = DEFAULT_TOKEN_CHANNEL;
714 // InternalSolverLanguageLexer.g:72:28: ( '->' ) 782 // InternalSolverLanguageLexer.g:78:18: ( ':-' )
715 // InternalSolverLanguageLexer.g:72:30: '->' 783 // InternalSolverLanguageLexer.g:78:20: ':-'
716 { 784 {
717 match("->"); 785 match(":-");
718 786
719 787
720 } 788 }
@@ -725,17 +793,17 @@ public class InternalSolverLanguageLexer extends Lexer {
725 finally { 793 finally {
726 } 794 }
727 } 795 }
728 // $ANTLR end "HyphenMinusGreaterThanSign" 796 // $ANTLR end "ColonHyphenMinus"
729 797
730 // $ANTLR start "FullStopFullStop" 798 // $ANTLR start "ColonColon"
731 public final void mFullStopFullStop() throws RecognitionException { 799 public final void mColonColon() throws RecognitionException {
732 try { 800 try {
733 int _type = FullStopFullStop; 801 int _type = ColonColon;
734 int _channel = DEFAULT_TOKEN_CHANNEL; 802 int _channel = DEFAULT_TOKEN_CHANNEL;
735 // InternalSolverLanguageLexer.g:74:18: ( '..' ) 803 // InternalSolverLanguageLexer.g:80:12: ( '::' )
736 // InternalSolverLanguageLexer.g:74:20: '..' 804 // InternalSolverLanguageLexer.g:80:14: '::'
737 { 805 {
738 match(".."); 806 match("::");
739 807
740 808
741 } 809 }
@@ -746,17 +814,17 @@ public class InternalSolverLanguageLexer extends Lexer {
746 finally { 814 finally {
747 } 815 }
748 } 816 }
749 // $ANTLR end "FullStopFullStop" 817 // $ANTLR end "ColonColon"
750 818
751 // $ANTLR start "ColonHyphenMinus" 819 // $ANTLR start "ColonEqualsSign"
752 public final void mColonHyphenMinus() throws RecognitionException { 820 public final void mColonEqualsSign() throws RecognitionException {
753 try { 821 try {
754 int _type = ColonHyphenMinus; 822 int _type = ColonEqualsSign;
755 int _channel = DEFAULT_TOKEN_CHANNEL; 823 int _channel = DEFAULT_TOKEN_CHANNEL;
756 // InternalSolverLanguageLexer.g:76:18: ( ':-' ) 824 // InternalSolverLanguageLexer.g:82:17: ( ':=' )
757 // InternalSolverLanguageLexer.g:76:20: ':-' 825 // InternalSolverLanguageLexer.g:82:19: ':='
758 { 826 {
759 match(":-"); 827 match(":=");
760 828
761 829
762 } 830 }
@@ -767,15 +835,15 @@ public class InternalSolverLanguageLexer extends Lexer {
767 finally { 835 finally {
768 } 836 }
769 } 837 }
770 // $ANTLR end "ColonHyphenMinus" 838 // $ANTLR end "ColonEqualsSign"
771 839
772 // $ANTLR start "LessThanSignEqualsSign" 840 // $ANTLR start "LessThanSignEqualsSign"
773 public final void mLessThanSignEqualsSign() throws RecognitionException { 841 public final void mLessThanSignEqualsSign() throws RecognitionException {
774 try { 842 try {
775 int _type = LessThanSignEqualsSign; 843 int _type = LessThanSignEqualsSign;
776 int _channel = DEFAULT_TOKEN_CHANNEL; 844 int _channel = DEFAULT_TOKEN_CHANNEL;
777 // InternalSolverLanguageLexer.g:78:24: ( '<=' ) 845 // InternalSolverLanguageLexer.g:84:24: ( '<=' )
778 // InternalSolverLanguageLexer.g:78:26: '<=' 846 // InternalSolverLanguageLexer.g:84:26: '<='
779 { 847 {
780 match("<="); 848 match("<=");
781 849
@@ -795,8 +863,8 @@ public class InternalSolverLanguageLexer extends Lexer {
795 try { 863 try {
796 int _type = EqualsSignEqualsSign; 864 int _type = EqualsSignEqualsSign;
797 int _channel = DEFAULT_TOKEN_CHANNEL; 865 int _channel = DEFAULT_TOKEN_CHANNEL;
798 // InternalSolverLanguageLexer.g:80:22: ( '==' ) 866 // InternalSolverLanguageLexer.g:86:22: ( '==' )
799 // InternalSolverLanguageLexer.g:80:24: '==' 867 // InternalSolverLanguageLexer.g:86:24: '=='
800 { 868 {
801 match("=="); 869 match("==");
802 870
@@ -816,8 +884,8 @@ public class InternalSolverLanguageLexer extends Lexer {
816 try { 884 try {
817 int _type = EqualsSignGreaterThanSign; 885 int _type = EqualsSignGreaterThanSign;
818 int _channel = DEFAULT_TOKEN_CHANNEL; 886 int _channel = DEFAULT_TOKEN_CHANNEL;
819 // InternalSolverLanguageLexer.g:82:27: ( '=>' ) 887 // InternalSolverLanguageLexer.g:88:27: ( '=>' )
820 // InternalSolverLanguageLexer.g:82:29: '=>' 888 // InternalSolverLanguageLexer.g:88:29: '=>'
821 { 889 {
822 match("=>"); 890 match("=>");
823 891
@@ -837,8 +905,8 @@ public class InternalSolverLanguageLexer extends Lexer {
837 try { 905 try {
838 int _type = GreaterThanSignEqualsSign; 906 int _type = GreaterThanSignEqualsSign;
839 int _channel = DEFAULT_TOKEN_CHANNEL; 907 int _channel = DEFAULT_TOKEN_CHANNEL;
840 // InternalSolverLanguageLexer.g:84:27: ( '>=' ) 908 // InternalSolverLanguageLexer.g:90:27: ( '>=' )
841 // InternalSolverLanguageLexer.g:84:29: '>=' 909 // InternalSolverLanguageLexer.g:90:29: '>='
842 { 910 {
843 match(">="); 911 match(">=");
844 912
@@ -858,8 +926,8 @@ public class InternalSolverLanguageLexer extends Lexer {
858 try { 926 try {
859 int _type = As; 927 int _type = As;
860 int _channel = DEFAULT_TOKEN_CHANNEL; 928 int _channel = DEFAULT_TOKEN_CHANNEL;
861 // InternalSolverLanguageLexer.g:86:4: ( 'as' ) 929 // InternalSolverLanguageLexer.g:92:4: ( 'as' )
862 // InternalSolverLanguageLexer.g:86:6: 'as' 930 // InternalSolverLanguageLexer.g:92:6: 'as'
863 { 931 {
864 match("as"); 932 match("as");
865 933
@@ -879,8 +947,8 @@ public class InternalSolverLanguageLexer extends Lexer {
879 try { 947 try {
880 int _type = If; 948 int _type = If;
881 int _channel = DEFAULT_TOKEN_CHANNEL; 949 int _channel = DEFAULT_TOKEN_CHANNEL;
882 // InternalSolverLanguageLexer.g:88:4: ( 'if' ) 950 // InternalSolverLanguageLexer.g:94:4: ( 'if' )
883 // InternalSolverLanguageLexer.g:88:6: 'if' 951 // InternalSolverLanguageLexer.g:94:6: 'if'
884 { 952 {
885 match("if"); 953 match("if");
886 954
@@ -900,8 +968,8 @@ public class InternalSolverLanguageLexer extends Lexer {
900 try { 968 try {
901 int _type = In; 969 int _type = In;
902 int _channel = DEFAULT_TOKEN_CHANNEL; 970 int _channel = DEFAULT_TOKEN_CHANNEL;
903 // InternalSolverLanguageLexer.g:90:4: ( 'in' ) 971 // InternalSolverLanguageLexer.g:96:4: ( 'in' )
904 // InternalSolverLanguageLexer.g:90:6: 'in' 972 // InternalSolverLanguageLexer.g:96:6: 'in'
905 { 973 {
906 match("in"); 974 match("in");
907 975
@@ -921,8 +989,8 @@ public class InternalSolverLanguageLexer extends Lexer {
921 try { 989 try {
922 int _type = ExclamationMark; 990 int _type = ExclamationMark;
923 int _channel = DEFAULT_TOKEN_CHANNEL; 991 int _channel = DEFAULT_TOKEN_CHANNEL;
924 // InternalSolverLanguageLexer.g:92:17: ( '!' ) 992 // InternalSolverLanguageLexer.g:98:17: ( '!' )
925 // InternalSolverLanguageLexer.g:92:19: '!' 993 // InternalSolverLanguageLexer.g:98:19: '!'
926 { 994 {
927 match('!'); 995 match('!');
928 996
@@ -941,8 +1009,8 @@ public class InternalSolverLanguageLexer extends Lexer {
941 try { 1009 try {
942 int _type = LeftParenthesis; 1010 int _type = LeftParenthesis;
943 int _channel = DEFAULT_TOKEN_CHANNEL; 1011 int _channel = DEFAULT_TOKEN_CHANNEL;
944 // InternalSolverLanguageLexer.g:94:17: ( '(' ) 1012 // InternalSolverLanguageLexer.g:100:17: ( '(' )
945 // InternalSolverLanguageLexer.g:94:19: '(' 1013 // InternalSolverLanguageLexer.g:100:19: '('
946 { 1014 {
947 match('('); 1015 match('(');
948 1016
@@ -961,8 +1029,8 @@ public class InternalSolverLanguageLexer extends Lexer {
961 try { 1029 try {
962 int _type = RightParenthesis; 1030 int _type = RightParenthesis;
963 int _channel = DEFAULT_TOKEN_CHANNEL; 1031 int _channel = DEFAULT_TOKEN_CHANNEL;
964 // InternalSolverLanguageLexer.g:96:18: ( ')' ) 1032 // InternalSolverLanguageLexer.g:102:18: ( ')' )
965 // InternalSolverLanguageLexer.g:96:20: ')' 1033 // InternalSolverLanguageLexer.g:102:20: ')'
966 { 1034 {
967 match(')'); 1035 match(')');
968 1036
@@ -981,8 +1049,8 @@ public class InternalSolverLanguageLexer extends Lexer {
981 try { 1049 try {
982 int _type = Asterisk; 1050 int _type = Asterisk;
983 int _channel = DEFAULT_TOKEN_CHANNEL; 1051 int _channel = DEFAULT_TOKEN_CHANNEL;
984 // InternalSolverLanguageLexer.g:98:10: ( '*' ) 1052 // InternalSolverLanguageLexer.g:104:10: ( '*' )
985 // InternalSolverLanguageLexer.g:98:12: '*' 1053 // InternalSolverLanguageLexer.g:104:12: '*'
986 { 1054 {
987 match('*'); 1055 match('*');
988 1056
@@ -1001,8 +1069,8 @@ public class InternalSolverLanguageLexer extends Lexer {
1001 try { 1069 try {
1002 int _type = PlusSign; 1070 int _type = PlusSign;
1003 int _channel = DEFAULT_TOKEN_CHANNEL; 1071 int _channel = DEFAULT_TOKEN_CHANNEL;
1004 // InternalSolverLanguageLexer.g:100:10: ( '+' ) 1072 // InternalSolverLanguageLexer.g:106:10: ( '+' )
1005 // InternalSolverLanguageLexer.g:100:12: '+' 1073 // InternalSolverLanguageLexer.g:106:12: '+'
1006 { 1074 {
1007 match('+'); 1075 match('+');
1008 1076
@@ -1021,8 +1089,8 @@ public class InternalSolverLanguageLexer extends Lexer {
1021 try { 1089 try {
1022 int _type = Comma; 1090 int _type = Comma;
1023 int _channel = DEFAULT_TOKEN_CHANNEL; 1091 int _channel = DEFAULT_TOKEN_CHANNEL;
1024 // InternalSolverLanguageLexer.g:102:7: ( ',' ) 1092 // InternalSolverLanguageLexer.g:108:7: ( ',' )
1025 // InternalSolverLanguageLexer.g:102:9: ',' 1093 // InternalSolverLanguageLexer.g:108:9: ','
1026 { 1094 {
1027 match(','); 1095 match(',');
1028 1096
@@ -1041,8 +1109,8 @@ public class InternalSolverLanguageLexer extends Lexer {
1041 try { 1109 try {
1042 int _type = HyphenMinus; 1110 int _type = HyphenMinus;
1043 int _channel = DEFAULT_TOKEN_CHANNEL; 1111 int _channel = DEFAULT_TOKEN_CHANNEL;
1044 // InternalSolverLanguageLexer.g:104:13: ( '-' ) 1112 // InternalSolverLanguageLexer.g:110:13: ( '-' )
1045 // InternalSolverLanguageLexer.g:104:15: '-' 1113 // InternalSolverLanguageLexer.g:110:15: '-'
1046 { 1114 {
1047 match('-'); 1115 match('-');
1048 1116
@@ -1061,8 +1129,8 @@ public class InternalSolverLanguageLexer extends Lexer {
1061 try { 1129 try {
1062 int _type = FullStop; 1130 int _type = FullStop;
1063 int _channel = DEFAULT_TOKEN_CHANNEL; 1131 int _channel = DEFAULT_TOKEN_CHANNEL;
1064 // InternalSolverLanguageLexer.g:106:10: ( '.' ) 1132 // InternalSolverLanguageLexer.g:112:10: ( '.' )
1065 // InternalSolverLanguageLexer.g:106:12: '.' 1133 // InternalSolverLanguageLexer.g:112:12: '.'
1066 { 1134 {
1067 match('.'); 1135 match('.');
1068 1136
@@ -1081,8 +1149,8 @@ public class InternalSolverLanguageLexer extends Lexer {
1081 try { 1149 try {
1082 int _type = Solidus; 1150 int _type = Solidus;
1083 int _channel = DEFAULT_TOKEN_CHANNEL; 1151 int _channel = DEFAULT_TOKEN_CHANNEL;
1084 // InternalSolverLanguageLexer.g:108:9: ( '/' ) 1152 // InternalSolverLanguageLexer.g:114:9: ( '/' )
1085 // InternalSolverLanguageLexer.g:108:11: '/' 1153 // InternalSolverLanguageLexer.g:114:11: '/'
1086 { 1154 {
1087 match('/'); 1155 match('/');
1088 1156
@@ -1101,8 +1169,8 @@ public class InternalSolverLanguageLexer extends Lexer {
1101 try { 1169 try {
1102 int _type = Colon; 1170 int _type = Colon;
1103 int _channel = DEFAULT_TOKEN_CHANNEL; 1171 int _channel = DEFAULT_TOKEN_CHANNEL;
1104 // InternalSolverLanguageLexer.g:110:7: ( ':' ) 1172 // InternalSolverLanguageLexer.g:116:7: ( ':' )
1105 // InternalSolverLanguageLexer.g:110:9: ':' 1173 // InternalSolverLanguageLexer.g:116:9: ':'
1106 { 1174 {
1107 match(':'); 1175 match(':');
1108 1176
@@ -1121,8 +1189,8 @@ public class InternalSolverLanguageLexer extends Lexer {
1121 try { 1189 try {
1122 int _type = Semicolon; 1190 int _type = Semicolon;
1123 int _channel = DEFAULT_TOKEN_CHANNEL; 1191 int _channel = DEFAULT_TOKEN_CHANNEL;
1124 // InternalSolverLanguageLexer.g:112:11: ( ';' ) 1192 // InternalSolverLanguageLexer.g:118:11: ( ';' )
1125 // InternalSolverLanguageLexer.g:112:13: ';' 1193 // InternalSolverLanguageLexer.g:118:13: ';'
1126 { 1194 {
1127 match(';'); 1195 match(';');
1128 1196
@@ -1141,8 +1209,8 @@ public class InternalSolverLanguageLexer extends Lexer {
1141 try { 1209 try {
1142 int _type = LessThanSign; 1210 int _type = LessThanSign;
1143 int _channel = DEFAULT_TOKEN_CHANNEL; 1211 int _channel = DEFAULT_TOKEN_CHANNEL;
1144 // InternalSolverLanguageLexer.g:114:14: ( '<' ) 1212 // InternalSolverLanguageLexer.g:120:14: ( '<' )
1145 // InternalSolverLanguageLexer.g:114:16: '<' 1213 // InternalSolverLanguageLexer.g:120:16: '<'
1146 { 1214 {
1147 match('<'); 1215 match('<');
1148 1216
@@ -1161,8 +1229,8 @@ public class InternalSolverLanguageLexer extends Lexer {
1161 try { 1229 try {
1162 int _type = EqualsSign; 1230 int _type = EqualsSign;
1163 int _channel = DEFAULT_TOKEN_CHANNEL; 1231 int _channel = DEFAULT_TOKEN_CHANNEL;
1164 // InternalSolverLanguageLexer.g:116:12: ( '=' ) 1232 // InternalSolverLanguageLexer.g:122:12: ( '=' )
1165 // InternalSolverLanguageLexer.g:116:14: '=' 1233 // InternalSolverLanguageLexer.g:122:14: '='
1166 { 1234 {
1167 match('='); 1235 match('=');
1168 1236
@@ -1181,8 +1249,8 @@ public class InternalSolverLanguageLexer extends Lexer {
1181 try { 1249 try {
1182 int _type = GreaterThanSign; 1250 int _type = GreaterThanSign;
1183 int _channel = DEFAULT_TOKEN_CHANNEL; 1251 int _channel = DEFAULT_TOKEN_CHANNEL;
1184 // InternalSolverLanguageLexer.g:118:17: ( '>' ) 1252 // InternalSolverLanguageLexer.g:124:17: ( '>' )
1185 // InternalSolverLanguageLexer.g:118:19: '>' 1253 // InternalSolverLanguageLexer.g:124:19: '>'
1186 { 1254 {
1187 match('>'); 1255 match('>');
1188 1256
@@ -1196,13 +1264,33 @@ public class InternalSolverLanguageLexer extends Lexer {
1196 } 1264 }
1197 // $ANTLR end "GreaterThanSign" 1265 // $ANTLR end "GreaterThanSign"
1198 1266
1267 // $ANTLR start "QuestionMark"
1268 public final void mQuestionMark() throws RecognitionException {
1269 try {
1270 int _type = QuestionMark;
1271 int _channel = DEFAULT_TOKEN_CHANNEL;
1272 // InternalSolverLanguageLexer.g:126:14: ( '?' )
1273 // InternalSolverLanguageLexer.g:126:16: '?'
1274 {
1275 match('?');
1276
1277 }
1278
1279 state.type = _type;
1280 state.channel = _channel;
1281 }
1282 finally {
1283 }
1284 }
1285 // $ANTLR end "QuestionMark"
1286
1199 // $ANTLR start "LeftSquareBracket" 1287 // $ANTLR start "LeftSquareBracket"
1200 public final void mLeftSquareBracket() throws RecognitionException { 1288 public final void mLeftSquareBracket() throws RecognitionException {
1201 try { 1289 try {
1202 int _type = LeftSquareBracket; 1290 int _type = LeftSquareBracket;
1203 int _channel = DEFAULT_TOKEN_CHANNEL; 1291 int _channel = DEFAULT_TOKEN_CHANNEL;
1204 // InternalSolverLanguageLexer.g:120:19: ( '[' ) 1292 // InternalSolverLanguageLexer.g:128:19: ( '[' )
1205 // InternalSolverLanguageLexer.g:120:21: '[' 1293 // InternalSolverLanguageLexer.g:128:21: '['
1206 { 1294 {
1207 match('['); 1295 match('[');
1208 1296
@@ -1221,8 +1309,8 @@ public class InternalSolverLanguageLexer extends Lexer {
1221 try { 1309 try {
1222 int _type = RightSquareBracket; 1310 int _type = RightSquareBracket;
1223 int _channel = DEFAULT_TOKEN_CHANNEL; 1311 int _channel = DEFAULT_TOKEN_CHANNEL;
1224 // InternalSolverLanguageLexer.g:122:20: ( ']' ) 1312 // InternalSolverLanguageLexer.g:130:20: ( ']' )
1225 // InternalSolverLanguageLexer.g:122:22: ']' 1313 // InternalSolverLanguageLexer.g:130:22: ']'
1226 { 1314 {
1227 match(']'); 1315 match(']');
1228 1316
@@ -1241,8 +1329,8 @@ public class InternalSolverLanguageLexer extends Lexer {
1241 try { 1329 try {
1242 int _type = CircumflexAccent; 1330 int _type = CircumflexAccent;
1243 int _channel = DEFAULT_TOKEN_CHANNEL; 1331 int _channel = DEFAULT_TOKEN_CHANNEL;
1244 // InternalSolverLanguageLexer.g:124:18: ( '^' ) 1332 // InternalSolverLanguageLexer.g:132:18: ( '^' )
1245 // InternalSolverLanguageLexer.g:124:20: '^' 1333 // InternalSolverLanguageLexer.g:132:20: '^'
1246 { 1334 {
1247 match('^'); 1335 match('^');
1248 1336
@@ -1261,8 +1349,8 @@ public class InternalSolverLanguageLexer extends Lexer {
1261 try { 1349 try {
1262 int _type = LeftCurlyBracket; 1350 int _type = LeftCurlyBracket;
1263 int _channel = DEFAULT_TOKEN_CHANNEL; 1351 int _channel = DEFAULT_TOKEN_CHANNEL;
1264 // InternalSolverLanguageLexer.g:126:18: ( '{' ) 1352 // InternalSolverLanguageLexer.g:134:18: ( '{' )
1265 // InternalSolverLanguageLexer.g:126:20: '{' 1353 // InternalSolverLanguageLexer.g:134:20: '{'
1266 { 1354 {
1267 match('{'); 1355 match('{');
1268 1356
@@ -1281,8 +1369,8 @@ public class InternalSolverLanguageLexer extends Lexer {
1281 try { 1369 try {
1282 int _type = VerticalLine; 1370 int _type = VerticalLine;
1283 int _channel = DEFAULT_TOKEN_CHANNEL; 1371 int _channel = DEFAULT_TOKEN_CHANNEL;
1284 // InternalSolverLanguageLexer.g:128:14: ( '|' ) 1372 // InternalSolverLanguageLexer.g:136:14: ( '|' )
1285 // InternalSolverLanguageLexer.g:128:16: '|' 1373 // InternalSolverLanguageLexer.g:136:16: '|'
1286 { 1374 {
1287 match('|'); 1375 match('|');
1288 1376
@@ -1301,8 +1389,8 @@ public class InternalSolverLanguageLexer extends Lexer {
1301 try { 1389 try {
1302 int _type = RightCurlyBracket; 1390 int _type = RightCurlyBracket;
1303 int _channel = DEFAULT_TOKEN_CHANNEL; 1391 int _channel = DEFAULT_TOKEN_CHANNEL;
1304 // InternalSolverLanguageLexer.g:130:19: ( '}' ) 1392 // InternalSolverLanguageLexer.g:138:19: ( '}' )
1305 // InternalSolverLanguageLexer.g:130:21: '}' 1393 // InternalSolverLanguageLexer.g:138:21: '}'
1306 { 1394 {
1307 match('}'); 1395 match('}');
1308 1396
@@ -1316,16 +1404,36 @@ public class InternalSolverLanguageLexer extends Lexer {
1316 } 1404 }
1317 // $ANTLR end "RightCurlyBracket" 1405 // $ANTLR end "RightCurlyBracket"
1318 1406
1407 // $ANTLR start "Tilde"
1408 public final void mTilde() throws RecognitionException {
1409 try {
1410 int _type = Tilde;
1411 int _channel = DEFAULT_TOKEN_CHANNEL;
1412 // InternalSolverLanguageLexer.g:140:7: ( '~' )
1413 // InternalSolverLanguageLexer.g:140:9: '~'
1414 {
1415 match('~');
1416
1417 }
1418
1419 state.type = _type;
1420 state.channel = _channel;
1421 }
1422 finally {
1423 }
1424 }
1425 // $ANTLR end "Tilde"
1426
1319 // $ANTLR start "RULE_STRING" 1427 // $ANTLR start "RULE_STRING"
1320 public final void mRULE_STRING() throws RecognitionException { 1428 public final void mRULE_STRING() throws RecognitionException {
1321 try { 1429 try {
1322 int _type = RULE_STRING; 1430 int _type = RULE_STRING;
1323 int _channel = DEFAULT_TOKEN_CHANNEL; 1431 int _channel = DEFAULT_TOKEN_CHANNEL;
1324 // InternalSolverLanguageLexer.g:132:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' ) 1432 // InternalSolverLanguageLexer.g:142:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
1325 // InternalSolverLanguageLexer.g:132:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' 1433 // InternalSolverLanguageLexer.g:142:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
1326 { 1434 {
1327 match('\"'); 1435 match('\"');
1328 // InternalSolverLanguageLexer.g:132:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* 1436 // InternalSolverLanguageLexer.g:142:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
1329 loop1: 1437 loop1:
1330 do { 1438 do {
1331 int alt1=3; 1439 int alt1=3;
@@ -1341,7 +1449,7 @@ public class InternalSolverLanguageLexer extends Lexer {
1341 1449
1342 switch (alt1) { 1450 switch (alt1) {
1343 case 1 : 1451 case 1 :
1344 // InternalSolverLanguageLexer.g:132:20: '\\\\' . 1452 // InternalSolverLanguageLexer.g:142:20: '\\\\' .
1345 { 1453 {
1346 match('\\'); 1454 match('\\');
1347 matchAny(); 1455 matchAny();
@@ -1349,7 +1457,7 @@ public class InternalSolverLanguageLexer extends Lexer {
1349 } 1457 }
1350 break; 1458 break;
1351 case 2 : 1459 case 2 :
1352 // InternalSolverLanguageLexer.g:132:27: ~ ( ( '\\\\' | '\"' ) ) 1460 // InternalSolverLanguageLexer.g:142:27: ~ ( ( '\\\\' | '\"' ) )
1353 { 1461 {
1354 if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { 1462 if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
1355 input.consume(); 1463 input.consume();
@@ -1386,11 +1494,11 @@ public class InternalSolverLanguageLexer extends Lexer {
1386 try { 1494 try {
1387 int _type = RULE_QUOTED_ID; 1495 int _type = RULE_QUOTED_ID;
1388 int _channel = DEFAULT_TOKEN_CHANNEL; 1496 int _channel = DEFAULT_TOKEN_CHANNEL;
1389 // InternalSolverLanguageLexer.g:134:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) 1497 // InternalSolverLanguageLexer.g:144:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
1390 // InternalSolverLanguageLexer.g:134:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' 1498 // InternalSolverLanguageLexer.g:144:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
1391 { 1499 {
1392 match('\''); 1500 match('\'');
1393 // InternalSolverLanguageLexer.g:134:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* 1501 // InternalSolverLanguageLexer.g:144:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
1394 loop2: 1502 loop2:
1395 do { 1503 do {
1396 int alt2=3; 1504 int alt2=3;
@@ -1406,7 +1514,7 @@ public class InternalSolverLanguageLexer extends Lexer {
1406 1514
1407 switch (alt2) { 1515 switch (alt2) {
1408 case 1 : 1516 case 1 :
1409 // InternalSolverLanguageLexer.g:134:24: '\\\\' . 1517 // InternalSolverLanguageLexer.g:144:24: '\\\\' .
1410 { 1518 {
1411 match('\\'); 1519 match('\\');
1412 matchAny(); 1520 matchAny();
@@ -1414,7 +1522,7 @@ public class InternalSolverLanguageLexer extends Lexer {
1414 } 1522 }
1415 break; 1523 break;
1416 case 2 : 1524 case 2 :
1417 // InternalSolverLanguageLexer.g:134:31: ~ ( ( '\\\\' | '\\'' ) ) 1525 // InternalSolverLanguageLexer.g:144:31: ~ ( ( '\\\\' | '\\'' ) )
1418 { 1526 {
1419 if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { 1527 if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
1420 input.consume(); 1528 input.consume();
@@ -1451,10 +1559,10 @@ public class InternalSolverLanguageLexer extends Lexer {
1451 try { 1559 try {
1452 int _type = RULE_SL_COMMENT; 1560 int _type = RULE_SL_COMMENT;
1453 int _channel = DEFAULT_TOKEN_CHANNEL; 1561 int _channel = DEFAULT_TOKEN_CHANNEL;
1454 // InternalSolverLanguageLexer.g:136:17: ( ( '%' | '//' ) (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) 1562 // InternalSolverLanguageLexer.g:146:17: ( ( '%' | '//' ) (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
1455 // InternalSolverLanguageLexer.g:136:19: ( '%' | '//' ) (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? 1563 // InternalSolverLanguageLexer.g:146:19: ( '%' | '//' ) (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
1456 { 1564 {
1457 // InternalSolverLanguageLexer.g:136:19: ( '%' | '//' ) 1565 // InternalSolverLanguageLexer.g:146:19: ( '%' | '//' )
1458 int alt3=2; 1566 int alt3=2;
1459 int LA3_0 = input.LA(1); 1567 int LA3_0 = input.LA(1);
1460 1568
@@ -1472,14 +1580,14 @@ public class InternalSolverLanguageLexer extends Lexer {
1472 } 1580 }
1473 switch (alt3) { 1581 switch (alt3) {
1474 case 1 : 1582 case 1 :
1475 // InternalSolverLanguageLexer.g:136:20: '%' 1583 // InternalSolverLanguageLexer.g:146:20: '%'
1476 { 1584 {
1477 match('%'); 1585 match('%');
1478 1586
1479 } 1587 }
1480 break; 1588 break;
1481 case 2 : 1589 case 2 :
1482 // InternalSolverLanguageLexer.g:136:24: '//' 1590 // InternalSolverLanguageLexer.g:146:24: '//'
1483 { 1591 {
1484 match("//"); 1592 match("//");
1485 1593
@@ -1489,7 +1597,7 @@ public class InternalSolverLanguageLexer extends Lexer {
1489 1597
1490 } 1598 }
1491 1599
1492 // InternalSolverLanguageLexer.g:136:30: (~ ( ( '\\n' | '\\r' ) ) )* 1600 // InternalSolverLanguageLexer.g:146:30: (~ ( ( '\\n' | '\\r' ) ) )*
1493 loop4: 1601 loop4:
1494 do { 1602 do {
1495 int alt4=2; 1603 int alt4=2;
@@ -1502,7 +1610,7 @@ public class InternalSolverLanguageLexer extends Lexer {
1502 1610
1503 switch (alt4) { 1611 switch (alt4) {
1504 case 1 : 1612 case 1 :
1505 // InternalSolverLanguageLexer.g:136:30: ~ ( ( '\\n' | '\\r' ) ) 1613 // InternalSolverLanguageLexer.g:146:30: ~ ( ( '\\n' | '\\r' ) )
1506 { 1614 {
1507 if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) { 1615 if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
1508 input.consume(); 1616 input.consume();
@@ -1522,7 +1630,7 @@ public class InternalSolverLanguageLexer extends Lexer {
1522 } 1630 }
1523 } while (true); 1631 } while (true);
1524 1632
1525 // InternalSolverLanguageLexer.g:136:46: ( ( '\\r' )? '\\n' )? 1633 // InternalSolverLanguageLexer.g:146:46: ( ( '\\r' )? '\\n' )?
1526 int alt6=2; 1634 int alt6=2;
1527 int LA6_0 = input.LA(1); 1635 int LA6_0 = input.LA(1);
1528 1636
@@ -1531,9 +1639,9 @@ public class InternalSolverLanguageLexer extends Lexer {
1531 } 1639 }
1532 switch (alt6) { 1640 switch (alt6) {
1533 case 1 : 1641 case 1 :
1534 // InternalSolverLanguageLexer.g:136:47: ( '\\r' )? '\\n' 1642 // InternalSolverLanguageLexer.g:146:47: ( '\\r' )? '\\n'
1535 { 1643 {
1536 // InternalSolverLanguageLexer.g:136:47: ( '\\r' )? 1644 // InternalSolverLanguageLexer.g:146:47: ( '\\r' )?
1537 int alt5=2; 1645 int alt5=2;
1538 int LA5_0 = input.LA(1); 1646 int LA5_0 = input.LA(1);
1539 1647
@@ -1542,7 +1650,7 @@ public class InternalSolverLanguageLexer extends Lexer {
1542 } 1650 }
1543 switch (alt5) { 1651 switch (alt5) {
1544 case 1 : 1652 case 1 :
1545 // InternalSolverLanguageLexer.g:136:47: '\\r' 1653 // InternalSolverLanguageLexer.g:146:47: '\\r'
1546 { 1654 {
1547 match('\r'); 1655 match('\r');
1548 1656
@@ -1572,8 +1680,8 @@ public class InternalSolverLanguageLexer extends Lexer {
1572 // $ANTLR start "RULE_TRANSITIVE_CLOSURE" 1680 // $ANTLR start "RULE_TRANSITIVE_CLOSURE"
1573 public final void mRULE_TRANSITIVE_CLOSURE() throws RecognitionException { 1681 public final void mRULE_TRANSITIVE_CLOSURE() throws RecognitionException {
1574 try { 1682 try {
1575 // InternalSolverLanguageLexer.g:138:34: () 1683 // InternalSolverLanguageLexer.g:148:34: ()
1576 // InternalSolverLanguageLexer.g:138:36: 1684 // InternalSolverLanguageLexer.g:148:36:
1577 { 1685 {
1578 } 1686 }
1579 1687
@@ -1586,8 +1694,8 @@ public class InternalSolverLanguageLexer extends Lexer {
1586 // $ANTLR start "RULE_REFLEXIVE_TRANSITIVE_CLOSURE" 1694 // $ANTLR start "RULE_REFLEXIVE_TRANSITIVE_CLOSURE"
1587 public final void mRULE_REFLEXIVE_TRANSITIVE_CLOSURE() throws RecognitionException { 1695 public final void mRULE_REFLEXIVE_TRANSITIVE_CLOSURE() throws RecognitionException {
1588 try { 1696 try {
1589 // InternalSolverLanguageLexer.g:140:44: () 1697 // InternalSolverLanguageLexer.g:150:44: ()
1590 // InternalSolverLanguageLexer.g:140:46: 1698 // InternalSolverLanguageLexer.g:150:46:
1591 { 1699 {
1592 } 1700 }
1593 1701
@@ -1600,8 +1708,8 @@ public class InternalSolverLanguageLexer extends Lexer {
1600 // $ANTLR start "RULE_FULL_STOP" 1708 // $ANTLR start "RULE_FULL_STOP"
1601 public final void mRULE_FULL_STOP() throws RecognitionException { 1709 public final void mRULE_FULL_STOP() throws RecognitionException {
1602 try { 1710 try {
1603 // InternalSolverLanguageLexer.g:142:25: () 1711 // InternalSolverLanguageLexer.g:152:25: ()
1604 // InternalSolverLanguageLexer.g:142:27: 1712 // InternalSolverLanguageLexer.g:152:27:
1605 { 1713 {
1606 } 1714 }
1607 1715
@@ -1616,10 +1724,10 @@ public class InternalSolverLanguageLexer extends Lexer {
1616 try { 1724 try {
1617 int _type = RULE_ID; 1725 int _type = RULE_ID;
1618 int _channel = DEFAULT_TOKEN_CHANNEL; 1726 int _channel = DEFAULT_TOKEN_CHANNEL;
1619 // InternalSolverLanguageLexer.g:144:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) 1727 // InternalSolverLanguageLexer.g:154:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
1620 // InternalSolverLanguageLexer.g:144:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* 1728 // InternalSolverLanguageLexer.g:154:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
1621 { 1729 {
1622 // InternalSolverLanguageLexer.g:144:11: ( '^' )? 1730 // InternalSolverLanguageLexer.g:154:11: ( '^' )?
1623 int alt7=2; 1731 int alt7=2;
1624 int LA7_0 = input.LA(1); 1732 int LA7_0 = input.LA(1);
1625 1733
@@ -1628,7 +1736,7 @@ public class InternalSolverLanguageLexer extends Lexer {
1628 } 1736 }
1629 switch (alt7) { 1737 switch (alt7) {
1630 case 1 : 1738 case 1 :
1631 // InternalSolverLanguageLexer.g:144:11: '^' 1739 // InternalSolverLanguageLexer.g:154:11: '^'
1632 { 1740 {
1633 match('^'); 1741 match('^');
1634 1742
@@ -1646,7 +1754,7 @@ public class InternalSolverLanguageLexer extends Lexer {
1646 recover(mse); 1754 recover(mse);
1647 throw mse;} 1755 throw mse;}
1648 1756
1649 // InternalSolverLanguageLexer.g:144:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* 1757 // InternalSolverLanguageLexer.g:154:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
1650 loop8: 1758 loop8:
1651 do { 1759 do {
1652 int alt8=2; 1760 int alt8=2;
@@ -1695,10 +1803,10 @@ public class InternalSolverLanguageLexer extends Lexer {
1695 try { 1803 try {
1696 int _type = RULE_INT; 1804 int _type = RULE_INT;
1697 int _channel = DEFAULT_TOKEN_CHANNEL; 1805 int _channel = DEFAULT_TOKEN_CHANNEL;
1698 // InternalSolverLanguageLexer.g:146:10: ( ( '0' .. '9' )+ ) 1806 // InternalSolverLanguageLexer.g:156:10: ( ( '0' .. '9' )+ )
1699 // InternalSolverLanguageLexer.g:146:12: ( '0' .. '9' )+ 1807 // InternalSolverLanguageLexer.g:156:12: ( '0' .. '9' )+
1700 { 1808 {
1701 // InternalSolverLanguageLexer.g:146:12: ( '0' .. '9' )+ 1809 // InternalSolverLanguageLexer.g:156:12: ( '0' .. '9' )+
1702 int cnt9=0; 1810 int cnt9=0;
1703 loop9: 1811 loop9:
1704 do { 1812 do {
@@ -1712,7 +1820,7 @@ public class InternalSolverLanguageLexer extends Lexer {
1712 1820
1713 switch (alt9) { 1821 switch (alt9) {
1714 case 1 : 1822 case 1 :
1715 // InternalSolverLanguageLexer.g:146:13: '0' .. '9' 1823 // InternalSolverLanguageLexer.g:156:13: '0' .. '9'
1716 { 1824 {
1717 matchRange('0','9'); 1825 matchRange('0','9');
1718 1826
@@ -1744,12 +1852,12 @@ public class InternalSolverLanguageLexer extends Lexer {
1744 try { 1852 try {
1745 int _type = RULE_ML_COMMENT; 1853 int _type = RULE_ML_COMMENT;
1746 int _channel = DEFAULT_TOKEN_CHANNEL; 1854 int _channel = DEFAULT_TOKEN_CHANNEL;
1747 // InternalSolverLanguageLexer.g:148:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) 1855 // InternalSolverLanguageLexer.g:158:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
1748 // InternalSolverLanguageLexer.g:148:19: '/*' ( options {greedy=false; } : . )* '*/' 1856 // InternalSolverLanguageLexer.g:158:19: '/*' ( options {greedy=false; } : . )* '*/'
1749 { 1857 {
1750 match("/*"); 1858 match("/*");
1751 1859
1752 // InternalSolverLanguageLexer.g:148:24: ( options {greedy=false; } : . )* 1860 // InternalSolverLanguageLexer.g:158:24: ( options {greedy=false; } : . )*
1753 loop10: 1861 loop10:
1754 do { 1862 do {
1755 int alt10=2; 1863 int alt10=2;
@@ -1774,7 +1882,7 @@ public class InternalSolverLanguageLexer extends Lexer {
1774 1882
1775 switch (alt10) { 1883 switch (alt10) {
1776 case 1 : 1884 case 1 :
1777 // InternalSolverLanguageLexer.g:148:52: . 1885 // InternalSolverLanguageLexer.g:158:52: .
1778 { 1886 {
1779 matchAny(); 1887 matchAny();
1780 1888
@@ -1804,10 +1912,10 @@ public class InternalSolverLanguageLexer extends Lexer {
1804 try { 1912 try {
1805 int _type = RULE_WS; 1913 int _type = RULE_WS;
1806 int _channel = DEFAULT_TOKEN_CHANNEL; 1914 int _channel = DEFAULT_TOKEN_CHANNEL;
1807 // InternalSolverLanguageLexer.g:150:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) 1915 // InternalSolverLanguageLexer.g:160:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
1808 // InternalSolverLanguageLexer.g:150:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ 1916 // InternalSolverLanguageLexer.g:160:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1809 { 1917 {
1810 // InternalSolverLanguageLexer.g:150:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ 1918 // InternalSolverLanguageLexer.g:160:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1811 int cnt11=0; 1919 int cnt11=0;
1812 loop11: 1920 loop11:
1813 do { 1921 do {
@@ -1861,8 +1969,8 @@ public class InternalSolverLanguageLexer extends Lexer {
1861 try { 1969 try {
1862 int _type = RULE_ANY_OTHER; 1970 int _type = RULE_ANY_OTHER;
1863 int _channel = DEFAULT_TOKEN_CHANNEL; 1971 int _channel = DEFAULT_TOKEN_CHANNEL;
1864 // InternalSolverLanguageLexer.g:152:16: ( . ) 1972 // InternalSolverLanguageLexer.g:162:16: ( . )
1865 // InternalSolverLanguageLexer.g:152:18: . 1973 // InternalSolverLanguageLexer.g:162:18: .
1866 { 1974 {
1867 matchAny(); 1975 matchAny();
1868 1976
@@ -1877,474 +1985,509 @@ public class InternalSolverLanguageLexer extends Lexer {
1877 // $ANTLR end "RULE_ANY_OTHER" 1985 // $ANTLR end "RULE_ANY_OTHER"
1878 1986
1879 public void mTokens() throws RecognitionException { 1987 public void mTokens() throws RecognitionException {
1880 // InternalSolverLanguageLexer.g:1:8: ( Functional | Abstract | Contains | Datatype | Maximize | Minimize | Opposite | Current | Default | Extends | Unknown | Exists | Extern | Forall | Class | Count | Empty | Error | False | Scope | Else | Must | Then | True | FullStopFullStopFullStop | Inf | Let | May | ExclamationMarkEqualsSign | HyphenMinusGreaterThanSign | FullStopFullStop | ColonHyphenMinus | LessThanSignEqualsSign | EqualsSignEqualsSign | EqualsSignGreaterThanSign | GreaterThanSignEqualsSign | As | If | In | ExclamationMark | LeftParenthesis | RightParenthesis | Asterisk | PlusSign | Comma | HyphenMinus | FullStop | Solidus | Colon | Semicolon | LessThanSign | EqualsSign | GreaterThanSign | LeftSquareBracket | RightSquareBracket | CircumflexAccent | LeftCurlyBracket | VerticalLine | RightCurlyBracket | RULE_STRING | RULE_QUOTED_ID | RULE_SL_COMMENT | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_WS | RULE_ANY_OTHER ) 1988 // InternalSolverLanguageLexer.g:1:8: ( Containment | Functional | Abstract | Contains | Datatype | Maximize | Minimize | Opposite | Default | Extends | Problem | Unknown | Extern | Import | Object | Refers | Class | Count | Empty | Error | False | Scope | Else | Enum | Root | Then | True | FullStopFullStopFullStop | Inf | Let | ExclamationMarkEqualsSign | HyphenMinusGreaterThanSign | ColonHyphenMinus | ColonColon | ColonEqualsSign | LessThanSignEqualsSign | EqualsSignEqualsSign | EqualsSignGreaterThanSign | GreaterThanSignEqualsSign | As | If | In | ExclamationMark | LeftParenthesis | RightParenthesis | Asterisk | PlusSign | Comma | HyphenMinus | FullStop | Solidus | Colon | Semicolon | LessThanSign | EqualsSign | GreaterThanSign | QuestionMark | LeftSquareBracket | RightSquareBracket | CircumflexAccent | LeftCurlyBracket | VerticalLine | RightCurlyBracket | Tilde | RULE_STRING | RULE_QUOTED_ID | RULE_SL_COMMENT | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_WS | RULE_ANY_OTHER )
1881 int alt12=67; 1989 int alt12=72;
1882 alt12 = dfa12.predict(input); 1990 alt12 = dfa12.predict(input);
1883 switch (alt12) { 1991 switch (alt12) {
1884 case 1 : 1992 case 1 :
1885 // InternalSolverLanguageLexer.g:1:10: Functional 1993 // InternalSolverLanguageLexer.g:1:10: Containment
1886 { 1994 {
1887 mFunctional(); 1995 mContainment();
1888 1996
1889 } 1997 }
1890 break; 1998 break;
1891 case 2 : 1999 case 2 :
1892 // InternalSolverLanguageLexer.g:1:21: Abstract 2000 // InternalSolverLanguageLexer.g:1:22: Functional
1893 { 2001 {
1894 mAbstract(); 2002 mFunctional();
1895 2003
1896 } 2004 }
1897 break; 2005 break;
1898 case 3 : 2006 case 3 :
1899 // InternalSolverLanguageLexer.g:1:30: Contains 2007 // InternalSolverLanguageLexer.g:1:33: Abstract
1900 { 2008 {
1901 mContains(); 2009 mAbstract();
1902 2010
1903 } 2011 }
1904 break; 2012 break;
1905 case 4 : 2013 case 4 :
1906 // InternalSolverLanguageLexer.g:1:39: Datatype 2014 // InternalSolverLanguageLexer.g:1:42: Contains
1907 { 2015 {
1908 mDatatype(); 2016 mContains();
1909 2017
1910 } 2018 }
1911 break; 2019 break;
1912 case 5 : 2020 case 5 :
1913 // InternalSolverLanguageLexer.g:1:48: Maximize 2021 // InternalSolverLanguageLexer.g:1:51: Datatype
1914 { 2022 {
1915 mMaximize(); 2023 mDatatype();
1916 2024
1917 } 2025 }
1918 break; 2026 break;
1919 case 6 : 2027 case 6 :
1920 // InternalSolverLanguageLexer.g:1:57: Minimize 2028 // InternalSolverLanguageLexer.g:1:60: Maximize
1921 { 2029 {
1922 mMinimize(); 2030 mMaximize();
1923 2031
1924 } 2032 }
1925 break; 2033 break;
1926 case 7 : 2034 case 7 :
1927 // InternalSolverLanguageLexer.g:1:66: Opposite 2035 // InternalSolverLanguageLexer.g:1:69: Minimize
1928 { 2036 {
1929 mOpposite(); 2037 mMinimize();
1930 2038
1931 } 2039 }
1932 break; 2040 break;
1933 case 8 : 2041 case 8 :
1934 // InternalSolverLanguageLexer.g:1:75: Current 2042 // InternalSolverLanguageLexer.g:1:78: Opposite
1935 { 2043 {
1936 mCurrent(); 2044 mOpposite();
1937 2045
1938 } 2046 }
1939 break; 2047 break;
1940 case 9 : 2048 case 9 :
1941 // InternalSolverLanguageLexer.g:1:83: Default 2049 // InternalSolverLanguageLexer.g:1:87: Default
1942 { 2050 {
1943 mDefault(); 2051 mDefault();
1944 2052
1945 } 2053 }
1946 break; 2054 break;
1947 case 10 : 2055 case 10 :
1948 // InternalSolverLanguageLexer.g:1:91: Extends 2056 // InternalSolverLanguageLexer.g:1:95: Extends
1949 { 2057 {
1950 mExtends(); 2058 mExtends();
1951 2059
1952 } 2060 }
1953 break; 2061 break;
1954 case 11 : 2062 case 11 :
1955 // InternalSolverLanguageLexer.g:1:99: Unknown 2063 // InternalSolverLanguageLexer.g:1:103: Problem
1956 { 2064 {
1957 mUnknown(); 2065 mProblem();
1958 2066
1959 } 2067 }
1960 break; 2068 break;
1961 case 12 : 2069 case 12 :
1962 // InternalSolverLanguageLexer.g:1:107: Exists 2070 // InternalSolverLanguageLexer.g:1:111: Unknown
1963 { 2071 {
1964 mExists(); 2072 mUnknown();
1965 2073
1966 } 2074 }
1967 break; 2075 break;
1968 case 13 : 2076 case 13 :
1969 // InternalSolverLanguageLexer.g:1:114: Extern 2077 // InternalSolverLanguageLexer.g:1:119: Extern
1970 { 2078 {
1971 mExtern(); 2079 mExtern();
1972 2080
1973 } 2081 }
1974 break; 2082 break;
1975 case 14 : 2083 case 14 :
1976 // InternalSolverLanguageLexer.g:1:121: Forall 2084 // InternalSolverLanguageLexer.g:1:126: Import
1977 { 2085 {
1978 mForall(); 2086 mImport();
1979 2087
1980 } 2088 }
1981 break; 2089 break;
1982 case 15 : 2090 case 15 :
1983 // InternalSolverLanguageLexer.g:1:128: Class 2091 // InternalSolverLanguageLexer.g:1:133: Object
1984 { 2092 {
1985 mClass(); 2093 mObject();
1986 2094
1987 } 2095 }
1988 break; 2096 break;
1989 case 16 : 2097 case 16 :
1990 // InternalSolverLanguageLexer.g:1:134: Count 2098 // InternalSolverLanguageLexer.g:1:140: Refers
1991 { 2099 {
1992 mCount(); 2100 mRefers();
1993 2101
1994 } 2102 }
1995 break; 2103 break;
1996 case 17 : 2104 case 17 :
1997 // InternalSolverLanguageLexer.g:1:140: Empty 2105 // InternalSolverLanguageLexer.g:1:147: Class
1998 { 2106 {
1999 mEmpty(); 2107 mClass();
2000 2108
2001 } 2109 }
2002 break; 2110 break;
2003 case 18 : 2111 case 18 :
2004 // InternalSolverLanguageLexer.g:1:146: Error 2112 // InternalSolverLanguageLexer.g:1:153: Count
2005 { 2113 {
2006 mError(); 2114 mCount();
2007 2115
2008 } 2116 }
2009 break; 2117 break;
2010 case 19 : 2118 case 19 :
2011 // InternalSolverLanguageLexer.g:1:152: False 2119 // InternalSolverLanguageLexer.g:1:159: Empty
2012 { 2120 {
2013 mFalse(); 2121 mEmpty();
2014 2122
2015 } 2123 }
2016 break; 2124 break;
2017 case 20 : 2125 case 20 :
2018 // InternalSolverLanguageLexer.g:1:158: Scope 2126 // InternalSolverLanguageLexer.g:1:165: Error
2019 { 2127 {
2020 mScope(); 2128 mError();
2021 2129
2022 } 2130 }
2023 break; 2131 break;
2024 case 21 : 2132 case 21 :
2025 // InternalSolverLanguageLexer.g:1:164: Else 2133 // InternalSolverLanguageLexer.g:1:171: False
2026 { 2134 {
2027 mElse(); 2135 mFalse();
2028 2136
2029 } 2137 }
2030 break; 2138 break;
2031 case 22 : 2139 case 22 :
2032 // InternalSolverLanguageLexer.g:1:169: Must 2140 // InternalSolverLanguageLexer.g:1:177: Scope
2033 { 2141 {
2034 mMust(); 2142 mScope();
2035 2143
2036 } 2144 }
2037 break; 2145 break;
2038 case 23 : 2146 case 23 :
2039 // InternalSolverLanguageLexer.g:1:174: Then 2147 // InternalSolverLanguageLexer.g:1:183: Else
2040 { 2148 {
2041 mThen(); 2149 mElse();
2042 2150
2043 } 2151 }
2044 break; 2152 break;
2045 case 24 : 2153 case 24 :
2046 // InternalSolverLanguageLexer.g:1:179: True 2154 // InternalSolverLanguageLexer.g:1:188: Enum
2047 { 2155 {
2048 mTrue(); 2156 mEnum();
2049 2157
2050 } 2158 }
2051 break; 2159 break;
2052 case 25 : 2160 case 25 :
2053 // InternalSolverLanguageLexer.g:1:184: FullStopFullStopFullStop 2161 // InternalSolverLanguageLexer.g:1:193: Root
2054 { 2162 {
2055 mFullStopFullStopFullStop(); 2163 mRoot();
2056 2164
2057 } 2165 }
2058 break; 2166 break;
2059 case 26 : 2167 case 26 :
2060 // InternalSolverLanguageLexer.g:1:209: Inf 2168 // InternalSolverLanguageLexer.g:1:198: Then
2061 { 2169 {
2062 mInf(); 2170 mThen();
2063 2171
2064 } 2172 }
2065 break; 2173 break;
2066 case 27 : 2174 case 27 :
2067 // InternalSolverLanguageLexer.g:1:213: Let 2175 // InternalSolverLanguageLexer.g:1:203: True
2068 { 2176 {
2069 mLet(); 2177 mTrue();
2070 2178
2071 } 2179 }
2072 break; 2180 break;
2073 case 28 : 2181 case 28 :
2074 // InternalSolverLanguageLexer.g:1:217: May 2182 // InternalSolverLanguageLexer.g:1:208: FullStopFullStopFullStop
2075 { 2183 {
2076 mMay(); 2184 mFullStopFullStopFullStop();
2077 2185
2078 } 2186 }
2079 break; 2187 break;
2080 case 29 : 2188 case 29 :
2081 // InternalSolverLanguageLexer.g:1:221: ExclamationMarkEqualsSign 2189 // InternalSolverLanguageLexer.g:1:233: Inf
2082 { 2190 {
2083 mExclamationMarkEqualsSign(); 2191 mInf();
2084 2192
2085 } 2193 }
2086 break; 2194 break;
2087 case 30 : 2195 case 30 :
2088 // InternalSolverLanguageLexer.g:1:247: HyphenMinusGreaterThanSign 2196 // InternalSolverLanguageLexer.g:1:237: Let
2089 { 2197 {
2090 mHyphenMinusGreaterThanSign(); 2198 mLet();
2091 2199
2092 } 2200 }
2093 break; 2201 break;
2094 case 31 : 2202 case 31 :
2095 // InternalSolverLanguageLexer.g:1:274: FullStopFullStop 2203 // InternalSolverLanguageLexer.g:1:241: ExclamationMarkEqualsSign
2096 { 2204 {
2097 mFullStopFullStop(); 2205 mExclamationMarkEqualsSign();
2098 2206
2099 } 2207 }
2100 break; 2208 break;
2101 case 32 : 2209 case 32 :
2102 // InternalSolverLanguageLexer.g:1:291: ColonHyphenMinus 2210 // InternalSolverLanguageLexer.g:1:267: HyphenMinusGreaterThanSign
2103 { 2211 {
2104 mColonHyphenMinus(); 2212 mHyphenMinusGreaterThanSign();
2105 2213
2106 } 2214 }
2107 break; 2215 break;
2108 case 33 : 2216 case 33 :
2109 // InternalSolverLanguageLexer.g:1:308: LessThanSignEqualsSign 2217 // InternalSolverLanguageLexer.g:1:294: ColonHyphenMinus
2110 { 2218 {
2111 mLessThanSignEqualsSign(); 2219 mColonHyphenMinus();
2112 2220
2113 } 2221 }
2114 break; 2222 break;
2115 case 34 : 2223 case 34 :
2116 // InternalSolverLanguageLexer.g:1:331: EqualsSignEqualsSign 2224 // InternalSolverLanguageLexer.g:1:311: ColonColon
2117 { 2225 {
2118 mEqualsSignEqualsSign(); 2226 mColonColon();
2119 2227
2120 } 2228 }
2121 break; 2229 break;
2122 case 35 : 2230 case 35 :
2123 // InternalSolverLanguageLexer.g:1:352: EqualsSignGreaterThanSign 2231 // InternalSolverLanguageLexer.g:1:322: ColonEqualsSign
2124 { 2232 {
2125 mEqualsSignGreaterThanSign(); 2233 mColonEqualsSign();
2126 2234
2127 } 2235 }
2128 break; 2236 break;
2129 case 36 : 2237 case 36 :
2130 // InternalSolverLanguageLexer.g:1:378: GreaterThanSignEqualsSign 2238 // InternalSolverLanguageLexer.g:1:338: LessThanSignEqualsSign
2131 { 2239 {
2132 mGreaterThanSignEqualsSign(); 2240 mLessThanSignEqualsSign();
2133 2241
2134 } 2242 }
2135 break; 2243 break;
2136 case 37 : 2244 case 37 :
2137 // InternalSolverLanguageLexer.g:1:404: As 2245 // InternalSolverLanguageLexer.g:1:361: EqualsSignEqualsSign
2138 { 2246 {
2139 mAs(); 2247 mEqualsSignEqualsSign();
2140 2248
2141 } 2249 }
2142 break; 2250 break;
2143 case 38 : 2251 case 38 :
2144 // InternalSolverLanguageLexer.g:1:407: If 2252 // InternalSolverLanguageLexer.g:1:382: EqualsSignGreaterThanSign
2145 { 2253 {
2146 mIf(); 2254 mEqualsSignGreaterThanSign();
2147 2255
2148 } 2256 }
2149 break; 2257 break;
2150 case 39 : 2258 case 39 :
2151 // InternalSolverLanguageLexer.g:1:410: In 2259 // InternalSolverLanguageLexer.g:1:408: GreaterThanSignEqualsSign
2152 { 2260 {
2153 mIn(); 2261 mGreaterThanSignEqualsSign();
2154 2262
2155 } 2263 }
2156 break; 2264 break;
2157 case 40 : 2265 case 40 :
2158 // InternalSolverLanguageLexer.g:1:413: ExclamationMark 2266 // InternalSolverLanguageLexer.g:1:434: As
2159 { 2267 {
2160 mExclamationMark(); 2268 mAs();
2161 2269
2162 } 2270 }
2163 break; 2271 break;
2164 case 41 : 2272 case 41 :
2165 // InternalSolverLanguageLexer.g:1:429: LeftParenthesis 2273 // InternalSolverLanguageLexer.g:1:437: If
2166 { 2274 {
2167 mLeftParenthesis(); 2275 mIf();
2168 2276
2169 } 2277 }
2170 break; 2278 break;
2171 case 42 : 2279 case 42 :
2172 // InternalSolverLanguageLexer.g:1:445: RightParenthesis 2280 // InternalSolverLanguageLexer.g:1:440: In
2173 { 2281 {
2174 mRightParenthesis(); 2282 mIn();
2175 2283
2176 } 2284 }
2177 break; 2285 break;
2178 case 43 : 2286 case 43 :
2179 // InternalSolverLanguageLexer.g:1:462: Asterisk 2287 // InternalSolverLanguageLexer.g:1:443: ExclamationMark
2180 { 2288 {
2181 mAsterisk(); 2289 mExclamationMark();
2182 2290
2183 } 2291 }
2184 break; 2292 break;
2185 case 44 : 2293 case 44 :
2186 // InternalSolverLanguageLexer.g:1:471: PlusSign 2294 // InternalSolverLanguageLexer.g:1:459: LeftParenthesis
2187 { 2295 {
2188 mPlusSign(); 2296 mLeftParenthesis();
2189 2297
2190 } 2298 }
2191 break; 2299 break;
2192 case 45 : 2300 case 45 :
2193 // InternalSolverLanguageLexer.g:1:480: Comma 2301 // InternalSolverLanguageLexer.g:1:475: RightParenthesis
2194 { 2302 {
2195 mComma(); 2303 mRightParenthesis();
2196 2304
2197 } 2305 }
2198 break; 2306 break;
2199 case 46 : 2307 case 46 :
2200 // InternalSolverLanguageLexer.g:1:486: HyphenMinus 2308 // InternalSolverLanguageLexer.g:1:492: Asterisk
2201 { 2309 {
2202 mHyphenMinus(); 2310 mAsterisk();
2203 2311
2204 } 2312 }
2205 break; 2313 break;
2206 case 47 : 2314 case 47 :
2207 // InternalSolverLanguageLexer.g:1:498: FullStop 2315 // InternalSolverLanguageLexer.g:1:501: PlusSign
2208 { 2316 {
2209 mFullStop(); 2317 mPlusSign();
2210 2318
2211 } 2319 }
2212 break; 2320 break;
2213 case 48 : 2321 case 48 :
2214 // InternalSolverLanguageLexer.g:1:507: Solidus 2322 // InternalSolverLanguageLexer.g:1:510: Comma
2215 { 2323 {
2216 mSolidus(); 2324 mComma();
2217 2325
2218 } 2326 }
2219 break; 2327 break;
2220 case 49 : 2328 case 49 :
2221 // InternalSolverLanguageLexer.g:1:515: Colon 2329 // InternalSolverLanguageLexer.g:1:516: HyphenMinus
2222 { 2330 {
2223 mColon(); 2331 mHyphenMinus();
2224 2332
2225 } 2333 }
2226 break; 2334 break;
2227 case 50 : 2335 case 50 :
2228 // InternalSolverLanguageLexer.g:1:521: Semicolon 2336 // InternalSolverLanguageLexer.g:1:528: FullStop
2229 { 2337 {
2230 mSemicolon(); 2338 mFullStop();
2231 2339
2232 } 2340 }
2233 break; 2341 break;
2234 case 51 : 2342 case 51 :
2235 // InternalSolverLanguageLexer.g:1:531: LessThanSign 2343 // InternalSolverLanguageLexer.g:1:537: Solidus
2236 { 2344 {
2237 mLessThanSign(); 2345 mSolidus();
2238 2346
2239 } 2347 }
2240 break; 2348 break;
2241 case 52 : 2349 case 52 :
2242 // InternalSolverLanguageLexer.g:1:544: EqualsSign 2350 // InternalSolverLanguageLexer.g:1:545: Colon
2243 { 2351 {
2244 mEqualsSign(); 2352 mColon();
2245 2353
2246 } 2354 }
2247 break; 2355 break;
2248 case 53 : 2356 case 53 :
2249 // InternalSolverLanguageLexer.g:1:555: GreaterThanSign 2357 // InternalSolverLanguageLexer.g:1:551: Semicolon
2250 { 2358 {
2251 mGreaterThanSign(); 2359 mSemicolon();
2252 2360
2253 } 2361 }
2254 break; 2362 break;
2255 case 54 : 2363 case 54 :
2256 // InternalSolverLanguageLexer.g:1:571: LeftSquareBracket 2364 // InternalSolverLanguageLexer.g:1:561: LessThanSign
2257 { 2365 {
2258 mLeftSquareBracket(); 2366 mLessThanSign();
2259 2367
2260 } 2368 }
2261 break; 2369 break;
2262 case 55 : 2370 case 55 :
2263 // InternalSolverLanguageLexer.g:1:589: RightSquareBracket 2371 // InternalSolverLanguageLexer.g:1:574: EqualsSign
2264 { 2372 {
2265 mRightSquareBracket(); 2373 mEqualsSign();
2266 2374
2267 } 2375 }
2268 break; 2376 break;
2269 case 56 : 2377 case 56 :
2270 // InternalSolverLanguageLexer.g:1:608: CircumflexAccent 2378 // InternalSolverLanguageLexer.g:1:585: GreaterThanSign
2271 { 2379 {
2272 mCircumflexAccent(); 2380 mGreaterThanSign();
2273 2381
2274 } 2382 }
2275 break; 2383 break;
2276 case 57 : 2384 case 57 :
2277 // InternalSolverLanguageLexer.g:1:625: LeftCurlyBracket 2385 // InternalSolverLanguageLexer.g:1:601: QuestionMark
2278 { 2386 {
2279 mLeftCurlyBracket(); 2387 mQuestionMark();
2280 2388
2281 } 2389 }
2282 break; 2390 break;
2283 case 58 : 2391 case 58 :
2284 // InternalSolverLanguageLexer.g:1:642: VerticalLine 2392 // InternalSolverLanguageLexer.g:1:614: LeftSquareBracket
2285 { 2393 {
2286 mVerticalLine(); 2394 mLeftSquareBracket();
2287 2395
2288 } 2396 }
2289 break; 2397 break;
2290 case 59 : 2398 case 59 :
2291 // InternalSolverLanguageLexer.g:1:655: RightCurlyBracket 2399 // InternalSolverLanguageLexer.g:1:632: RightSquareBracket
2292 { 2400 {
2293 mRightCurlyBracket(); 2401 mRightSquareBracket();
2294 2402
2295 } 2403 }
2296 break; 2404 break;
2297 case 60 : 2405 case 60 :
2298 // InternalSolverLanguageLexer.g:1:673: RULE_STRING 2406 // InternalSolverLanguageLexer.g:1:651: CircumflexAccent
2299 { 2407 {
2300 mRULE_STRING(); 2408 mCircumflexAccent();
2301 2409
2302 } 2410 }
2303 break; 2411 break;
2304 case 61 : 2412 case 61 :
2305 // InternalSolverLanguageLexer.g:1:685: RULE_QUOTED_ID 2413 // InternalSolverLanguageLexer.g:1:668: LeftCurlyBracket
2306 { 2414 {
2307 mRULE_QUOTED_ID(); 2415 mLeftCurlyBracket();
2308 2416
2309 } 2417 }
2310 break; 2418 break;
2311 case 62 : 2419 case 62 :
2312 // InternalSolverLanguageLexer.g:1:700: RULE_SL_COMMENT 2420 // InternalSolverLanguageLexer.g:1:685: VerticalLine
2313 { 2421 {
2314 mRULE_SL_COMMENT(); 2422 mVerticalLine();
2315 2423
2316 } 2424 }
2317 break; 2425 break;
2318 case 63 : 2426 case 63 :
2319 // InternalSolverLanguageLexer.g:1:716: RULE_ID 2427 // InternalSolverLanguageLexer.g:1:698: RightCurlyBracket
2320 { 2428 {
2321 mRULE_ID(); 2429 mRightCurlyBracket();
2322 2430
2323 } 2431 }
2324 break; 2432 break;
2325 case 64 : 2433 case 64 :
2326 // InternalSolverLanguageLexer.g:1:724: RULE_INT 2434 // InternalSolverLanguageLexer.g:1:716: Tilde
2327 { 2435 {
2328 mRULE_INT(); 2436 mTilde();
2329 2437
2330 } 2438 }
2331 break; 2439 break;
2332 case 65 : 2440 case 65 :
2333 // InternalSolverLanguageLexer.g:1:733: RULE_ML_COMMENT 2441 // InternalSolverLanguageLexer.g:1:722: RULE_STRING
2334 { 2442 {
2335 mRULE_ML_COMMENT(); 2443 mRULE_STRING();
2336 2444
2337 } 2445 }
2338 break; 2446 break;
2339 case 66 : 2447 case 66 :
2340 // InternalSolverLanguageLexer.g:1:749: RULE_WS 2448 // InternalSolverLanguageLexer.g:1:734: RULE_QUOTED_ID
2341 { 2449 {
2342 mRULE_WS(); 2450 mRULE_QUOTED_ID();
2343 2451
2344 } 2452 }
2345 break; 2453 break;
2346 case 67 : 2454 case 67 :
2347 // InternalSolverLanguageLexer.g:1:757: RULE_ANY_OTHER 2455 // InternalSolverLanguageLexer.g:1:749: RULE_SL_COMMENT
2456 {
2457 mRULE_SL_COMMENT();
2458
2459 }
2460 break;
2461 case 68 :
2462 // InternalSolverLanguageLexer.g:1:765: RULE_ID
2463 {
2464 mRULE_ID();
2465
2466 }
2467 break;
2468 case 69 :
2469 // InternalSolverLanguageLexer.g:1:773: RULE_INT
2470 {
2471 mRULE_INT();
2472
2473 }
2474 break;
2475 case 70 :
2476 // InternalSolverLanguageLexer.g:1:782: RULE_ML_COMMENT
2477 {
2478 mRULE_ML_COMMENT();
2479
2480 }
2481 break;
2482 case 71 :
2483 // InternalSolverLanguageLexer.g:1:798: RULE_WS
2484 {
2485 mRULE_WS();
2486
2487 }
2488 break;
2489 case 72 :
2490 // InternalSolverLanguageLexer.g:1:806: RULE_ANY_OTHER
2348 { 2491 {
2349 mRULE_ANY_OTHER(); 2492 mRULE_ANY_OTHER();
2350 2493
@@ -2358,74 +2501,69 @@ public class InternalSolverLanguageLexer extends Lexer {
2358 2501
2359 protected DFA12 dfa12 = new DFA12(this); 2502 protected DFA12 dfa12 = new DFA12(this);
2360 static final String DFA12_eotS = 2503 static final String DFA12_eotS =
2361 "\1\uffff\12\53\1\100\2\53\1\105\1\107\1\111\1\113\1\116\1\120\5\uffff\1\130\3\uffff\1\134\3\uffff\2\47\5\uffff\3\53\1\uffff\1\53\1\150\21\53\1\176\1\uffff\1\u0080\1\u0081\1\53\40\uffff\4\53\1\uffff\7\53\1\u008e\14\53\2\uffff\1\u009b\2\uffff\1\u009c\13\53\1\uffff\1\53\1\u00a9\5\53\1\u00b0\2\53\1\u00b3\1\u00b4\2\uffff\2\53\1\u00b7\2\53\1\u00ba\1\53\1\u00bc\4\53\1\uffff\4\53\1\u00c5\1\u00c6\1\uffff\1\53\1\u00c8\2\uffff\1\53\1\u00ca\1\uffff\2\53\1\uffff\1\53\1\uffff\6\53\1\u00d4\1\u00d5\2\uffff\1\53\1\uffff\1\53\1\uffff\2\53\1\u00da\1\53\1\u00dc\3\53\1\u00e0\2\uffff\1\u00e1\1\53\1\u00e3\1\u00e4\1\uffff\1\u00e5\1\uffff\1\u00e6\1\u00e7\1\u00e8\2\uffff\1\53\6\uffff\1\u00ea\1\uffff"; 2504 "\1\uffff\15\56\1\111\1\56\1\114\1\116\1\122\1\124\1\127\1\131\5\uffff\1\141\4\uffff\1\146\4\uffff\2\53\5\uffff\2\56\1\uffff\3\56\1\165\16\56\1\u0085\1\u0086\5\56\2\uffff\1\56\44\uffff\6\56\1\uffff\16\56\1\u00a1\2\uffff\5\56\1\u00a7\17\56\1\u00b8\1\u00b9\3\56\1\uffff\1\56\1\u00be\1\56\1\u00c0\1\u00c1\1\uffff\1\56\1\u00c3\1\u00c4\1\56\1\u00c6\11\56\1\u00d0\1\u00d1\2\uffff\4\56\1\uffff\1\u00d6\2\uffff\1\56\2\uffff\1\56\1\uffff\6\56\1\u00df\1\56\1\u00e1\2\uffff\2\56\1\u00e4\1\u00e5\1\uffff\4\56\1\u00eb\3\56\1\uffff\1\u00ef\1\uffff\1\u00f0\1\u00f1\2\uffff\1\56\1\u00f3\1\56\1\u00f5\1\u00f6\1\uffff\1\u00f7\1\u00f8\1\u00f9\3\uffff\1\56\1\uffff\1\56\5\uffff\1\56\1\u00fd\1\u00fe\2\uffff";
2362 static final String DFA12_eofS = 2505 static final String DFA12_eofS =
2363 "\u00eb\uffff"; 2506 "\u00ff\uffff";
2364 static final String DFA12_minS = 2507 static final String DFA12_minS =
2365 "\1\0\1\141\1\142\1\154\2\141\1\160\1\154\1\156\1\143\1\150\1\56\1\146\1\145\1\75\1\76\1\55\3\75\5\uffff\1\52\3\uffff\1\101\3\uffff\2\0\5\uffff\1\156\1\162\1\154\1\uffff\1\163\1\60\1\156\1\162\1\141\1\164\1\146\1\170\1\156\1\163\1\160\1\151\1\160\1\162\1\163\1\153\1\157\1\145\1\165\1\56\1\uffff\2\60\1\164\40\uffff\1\143\1\141\1\163\1\164\1\uffff\1\164\1\156\1\162\1\163\2\141\1\151\1\60\1\151\1\164\1\157\1\145\1\163\1\164\1\157\1\145\1\156\1\160\1\156\1\145\2\uffff\1\60\2\uffff\1\60\1\164\1\154\1\145\1\162\1\141\1\164\1\145\1\163\1\164\1\165\1\155\1\uffff\1\155\1\60\1\163\1\156\1\164\1\171\1\162\1\60\1\157\1\145\2\60\2\uffff\1\151\1\154\1\60\1\141\1\151\1\60\1\156\1\60\1\171\1\154\2\151\1\uffff\1\151\1\144\1\156\1\163\2\60\1\uffff\1\167\1\60\2\uffff\1\157\1\60\1\uffff\1\143\1\156\1\uffff\1\164\1\uffff\1\160\1\164\2\172\1\164\1\163\2\60\2\uffff\1\156\1\uffff\1\156\1\uffff\1\164\1\163\1\60\1\145\1\60\3\145\1\60\2\uffff\1\60\1\141\2\60\1\uffff\1\60\1\uffff\3\60\2\uffff\1\154\6\uffff\1\60\1\uffff"; 2508 "\1\0\1\154\1\141\1\142\2\141\1\142\1\154\1\162\1\156\1\146\1\145\1\143\1\150\1\56\1\145\1\75\1\76\1\55\3\75\5\uffff\1\52\4\uffff\1\101\4\uffff\2\0\5\uffff\1\156\1\141\1\uffff\1\156\1\154\1\163\1\60\1\164\1\146\1\170\1\156\1\160\1\152\1\164\1\160\1\162\1\163\1\165\1\157\1\153\1\160\2\60\1\146\2\157\1\145\1\165\2\uffff\1\164\44\uffff\1\164\1\156\1\163\1\143\1\163\1\164\1\uffff\2\141\2\151\1\157\2\145\1\164\1\157\1\145\1\155\1\142\1\156\1\157\1\60\2\uffff\1\145\1\164\1\160\1\156\1\145\1\60\1\141\1\164\1\163\1\164\1\145\1\162\1\164\1\165\2\155\1\163\1\143\1\156\1\171\1\162\2\60\1\154\1\157\1\162\1\uffff\1\162\1\60\1\145\2\60\1\uffff\1\151\2\60\1\151\1\60\1\141\1\171\1\154\3\151\1\164\1\144\1\156\2\60\2\uffff\1\145\1\167\1\164\1\163\1\uffff\1\60\2\uffff\1\156\2\uffff\1\157\1\uffff\1\143\1\160\1\164\2\172\1\164\1\60\1\163\1\60\2\uffff\1\155\1\156\2\60\1\uffff\1\155\1\156\1\164\1\145\1\60\3\145\1\uffff\1\60\1\uffff\2\60\2\uffff\1\145\1\60\1\141\2\60\1\uffff\3\60\3\uffff\1\156\1\uffff\1\154\5\uffff\1\164\2\60\2\uffff";
2366 static final String DFA12_maxS = 2509 static final String DFA12_maxS =
2367 "\1\uffff\1\165\1\163\1\165\1\145\1\165\1\160\1\170\1\156\1\143\1\162\1\56\1\156\1\145\1\75\1\76\1\55\1\75\1\76\1\75\5\uffff\1\57\3\uffff\1\172\3\uffff\2\uffff\5\uffff\1\156\1\162\1\154\1\uffff\1\163\1\172\1\165\1\162\1\141\1\164\1\146\1\171\1\156\1\163\1\160\1\164\1\160\1\162\1\163\1\153\1\157\1\145\1\165\1\56\1\uffff\2\172\1\164\40\uffff\1\143\1\141\1\163\1\164\1\uffff\1\164\1\156\1\162\1\163\2\141\1\151\1\172\1\151\1\164\1\157\1\145\1\163\1\164\1\157\1\145\1\156\1\160\1\156\1\145\2\uffff\1\172\2\uffff\1\172\1\164\1\154\1\145\1\162\1\141\1\164\1\145\1\163\1\164\1\165\1\155\1\uffff\1\155\1\172\1\163\1\162\1\164\1\171\1\162\1\172\1\157\1\145\2\172\2\uffff\1\151\1\154\1\172\1\141\1\151\1\172\1\156\1\172\1\171\1\154\2\151\1\uffff\1\151\1\144\1\156\1\163\2\172\1\uffff\1\167\1\172\2\uffff\1\157\1\172\1\uffff\1\143\1\156\1\uffff\1\164\1\uffff\1\160\1\164\2\172\1\164\1\163\2\172\2\uffff\1\156\1\uffff\1\156\1\uffff\1\164\1\163\1\172\1\145\1\172\3\145\1\172\2\uffff\1\172\1\141\2\172\1\uffff\1\172\1\uffff\3\172\2\uffff\1\154\6\uffff\1\172\1\uffff"; 2510 "\1\uffff\1\157\1\165\1\163\1\145\1\151\1\160\1\170\1\162\2\156\1\157\1\143\1\162\1\56\1\145\1\75\1\76\2\75\1\76\1\75\5\uffff\1\57\4\uffff\1\172\4\uffff\2\uffff\5\uffff\1\165\1\141\1\uffff\1\156\1\154\1\163\1\172\1\164\1\146\1\170\1\156\1\160\1\152\1\164\1\160\1\162\1\163\1\165\1\157\1\153\1\160\2\172\1\146\2\157\1\145\1\165\2\uffff\1\164\44\uffff\1\164\1\156\1\163\1\143\1\163\1\164\1\uffff\2\141\2\151\1\157\2\145\1\164\1\157\1\145\1\155\1\142\1\156\1\157\1\172\2\uffff\1\145\1\164\1\160\1\156\1\145\1\172\1\141\1\164\1\163\1\164\1\145\1\162\1\164\1\165\2\155\1\163\1\143\1\162\1\171\1\162\2\172\1\154\1\157\1\162\1\uffff\1\162\1\172\1\145\2\172\1\uffff\1\151\2\172\1\151\1\172\1\141\1\171\1\154\3\151\1\164\1\144\1\156\2\172\2\uffff\1\145\1\167\1\164\1\163\1\uffff\1\172\2\uffff\1\156\2\uffff\1\157\1\uffff\1\143\1\160\1\164\2\172\1\164\1\172\1\163\1\172\2\uffff\1\155\1\156\2\172\1\uffff\1\163\1\156\1\164\1\145\1\172\3\145\1\uffff\1\172\1\uffff\2\172\2\uffff\1\145\1\172\1\141\2\172\1\uffff\3\172\3\uffff\1\156\1\uffff\1\154\5\uffff\1\164\2\172\2\uffff";
2368 static final String DFA12_acceptS = 2511 static final String DFA12_acceptS =
2369 "\24\uffff\1\51\1\52\1\53\1\54\1\55\1\uffff\1\62\1\66\1\67\1\uffff\1\71\1\72\1\73\2\uffff\1\76\1\77\1\100\1\102\1\103\3\uffff\1\77\24\uffff\1\57\3\uffff\1\35\1\50\1\36\1\56\1\40\1\61\1\41\1\63\1\42\1\43\1\64\1\44\1\65\1\51\1\52\1\53\1\54\1\55\1\76\1\101\1\60\1\62\1\66\1\67\1\70\1\71\1\72\1\73\1\74\1\75\1\100\1\102\4\uffff\1\45\24\uffff\1\31\1\37\1\uffff\1\47\1\46\14\uffff\1\34\14\uffff\1\32\1\33\14\uffff\1\26\6\uffff\1\25\2\uffff\1\27\1\30\2\uffff\1\23\2\uffff\1\20\1\uffff\1\17\10\uffff\1\21\1\22\1\uffff\1\24\1\uffff\1\16\11\uffff\1\15\1\14\4\uffff\1\10\1\uffff\1\11\3\uffff\1\12\1\13\1\uffff\1\2\1\3\1\4\1\5\1\6\1\7\1\uffff\1\1"; 2512 "\26\uffff\1\54\1\55\1\56\1\57\1\60\1\uffff\1\65\1\71\1\72\1\73\1\uffff\1\75\1\76\1\77\1\100\2\uffff\1\103\1\104\1\105\1\107\1\110\2\uffff\1\104\31\uffff\1\34\1\62\1\uffff\1\37\1\53\1\40\1\61\1\41\1\42\1\43\1\64\1\44\1\66\1\45\1\46\1\67\1\47\1\70\1\54\1\55\1\56\1\57\1\60\1\103\1\106\1\63\1\65\1\71\1\72\1\73\1\74\1\75\1\76\1\77\1\100\1\101\1\102\1\105\1\107\6\uffff\1\50\17\uffff\1\52\1\51\32\uffff\1\35\5\uffff\1\36\20\uffff\1\27\1\30\4\uffff\1\31\1\uffff\1\32\1\33\1\uffff\1\22\1\21\1\uffff\1\25\11\uffff\1\23\1\24\4\uffff\1\26\10\uffff\1\17\1\uffff\1\15\2\uffff\1\16\1\20\5\uffff\1\11\3\uffff\1\12\1\13\1\14\1\uffff\1\4\1\uffff\1\3\1\5\1\6\1\7\1\10\3\uffff\1\2\1\1";
2370 static final String DFA12_specialS = 2513 static final String DFA12_specialS =
2371 "\1\2\40\uffff\1\0\1\1\u00c8\uffff}>"; 2514 "\1\1\44\uffff\1\0\1\2\u00d8\uffff}>";
2372 static final String[] DFA12_transitionS = { 2515 static final String[] DFA12_transitionS = {
2373 "\11\47\2\46\2\47\1\46\22\47\1\46\1\16\1\41\2\47\1\43\1\47\1\42\1\24\1\25\1\26\1\27\1\30\1\17\1\13\1\31\12\45\1\20\1\32\1\21\1\22\1\23\2\47\32\44\1\33\1\47\1\34\1\35\1\44\1\47\1\2\1\44\1\3\1\4\1\7\1\1\2\44\1\14\2\44\1\15\1\5\1\44\1\6\3\44\1\11\1\12\1\10\5\44\1\36\1\37\1\40\uff82\47", 2516 "\11\53\2\52\2\53\1\52\22\53\1\52\1\20\1\45\2\53\1\47\1\53\1\46\1\26\1\27\1\30\1\31\1\32\1\21\1\16\1\33\12\51\1\22\1\34\1\23\1\24\1\25\1\35\1\53\32\50\1\36\1\53\1\37\1\40\1\50\1\53\1\3\1\50\1\1\1\4\1\7\1\2\2\50\1\12\2\50\1\17\1\5\1\50\1\6\1\10\1\50\1\13\1\14\1\15\1\11\5\50\1\41\1\42\1\43\1\44\uff81\53",
2374 "\1\52\15\uffff\1\51\5\uffff\1\50", 2517 "\1\55\2\uffff\1\54",
2375 "\1\54\20\uffff\1\55", 2518 "\1\60\23\uffff\1\57",
2376 "\1\60\2\uffff\1\56\5\uffff\1\57", 2519 "\1\61\20\uffff\1\62",
2377 "\1\61\3\uffff\1\62", 2520 "\1\63\3\uffff\1\64",
2378 "\1\63\7\uffff\1\64\13\uffff\1\65", 2521 "\1\65\7\uffff\1\66",
2379 "\1\66", 2522 "\1\70\15\uffff\1\67",
2380 "\1\72\1\70\4\uffff\1\71\5\uffff\1\67", 2523 "\1\74\1\72\1\75\3\uffff\1\73\5\uffff\1\71",
2381 "\1\73", 2524 "\1\76",
2382 "\1\74",
2383 "\1\75\11\uffff\1\76",
2384 "\1\77", 2525 "\1\77",
2385 "\1\102\7\uffff\1\101", 2526 "\1\102\6\uffff\1\100\1\101",
2386 "\1\103", 2527 "\1\103\11\uffff\1\104",
2387 "\1\104", 2528 "\1\105",
2388 "\1\106", 2529 "\1\106\11\uffff\1\107",
2389 "\1\110", 2530 "\1\110",
2390 "\1\112", 2531 "\1\112",
2391 "\1\114\1\115", 2532 "\1\113",
2392 "\1\117", 2533 "\1\115",
2534 "\1\117\14\uffff\1\120\2\uffff\1\121",
2535 "\1\123",
2536 "\1\125\1\126",
2537 "\1\130",
2538 "",
2393 "", 2539 "",
2394 "", 2540 "",
2395 "", 2541 "",
2396 "", 2542 "",
2543 "\1\140\4\uffff\1\137",
2397 "", 2544 "",
2398 "\1\127\4\uffff\1\126",
2399 "", 2545 "",
2400 "", 2546 "",
2401 "", 2547 "",
2402 "\32\53\4\uffff\1\53\1\uffff\32\53", 2548 "\32\56\4\uffff\1\56\1\uffff\32\56",
2403 "", 2549 "",
2404 "", 2550 "",
2405 "", 2551 "",
2406 "\0\140",
2407 "\0\141",
2408 "", 2552 "",
2553 "\0\153",
2554 "\0\154",
2409 "", 2555 "",
2410 "", 2556 "",
2411 "", 2557 "",
2412 "", 2558 "",
2413 "\1\144",
2414 "\1\145",
2415 "\1\146",
2416 "", 2559 "",
2417 "\1\147", 2560 "\1\157\6\uffff\1\160",
2418 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53",
2419 "\1\151\6\uffff\1\152",
2420 "\1\153",
2421 "\1\154",
2422 "\1\155",
2423 "\1\156",
2424 "\1\157\1\160",
2425 "\1\161", 2561 "\1\161",
2562 "",
2426 "\1\162", 2563 "\1\162",
2427 "\1\163", 2564 "\1\163",
2428 "\1\165\12\uffff\1\164", 2565 "\1\164",
2566 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2429 "\1\166", 2567 "\1\166",
2430 "\1\167", 2568 "\1\167",
2431 "\1\170", 2569 "\1\170",
@@ -2434,10 +2572,25 @@ public class InternalSolverLanguageLexer extends Lexer {
2434 "\1\173", 2572 "\1\173",
2435 "\1\174", 2573 "\1\174",
2436 "\1\175", 2574 "\1\175",
2437 "", 2575 "\1\176",
2438 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\5\53\1\177\24\53", 2576 "\1\177",
2439 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2577 "\1\u0080",
2578 "\1\u0081",
2440 "\1\u0082", 2579 "\1\u0082",
2580 "\1\u0083",
2581 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\5\56\1\u0084\24\56",
2582 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2583 "\1\u0087",
2584 "\1\u0088",
2585 "\1\u0089",
2586 "\1\u008a",
2587 "\1\u008b",
2588 "",
2589 "",
2590 "\1\u008c",
2591 "",
2592 "",
2593 "",
2441 "", 2594 "",
2442 "", 2595 "",
2443 "", 2596 "",
@@ -2470,23 +2623,14 @@ public class InternalSolverLanguageLexer extends Lexer {
2470 "", 2623 "",
2471 "", 2624 "",
2472 "", 2625 "",
2473 "\1\u0083",
2474 "\1\u0084",
2475 "\1\u0085",
2476 "\1\u0086",
2477 "", 2626 "",
2478 "\1\u0087",
2479 "\1\u0088",
2480 "\1\u0089",
2481 "\1\u008a",
2482 "\1\u008b",
2483 "\1\u008c",
2484 "\1\u008d", 2627 "\1\u008d",
2485 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2628 "\1\u008e",
2486 "\1\u008f", 2629 "\1\u008f",
2487 "\1\u0090", 2630 "\1\u0090",
2488 "\1\u0091", 2631 "\1\u0091",
2489 "\1\u0092", 2632 "\1\u0092",
2633 "",
2490 "\1\u0093", 2634 "\1\u0093",
2491 "\1\u0094", 2635 "\1\u0094",
2492 "\1\u0095", 2636 "\1\u0095",
@@ -2495,115 +2639,134 @@ public class InternalSolverLanguageLexer extends Lexer {
2495 "\1\u0098", 2639 "\1\u0098",
2496 "\1\u0099", 2640 "\1\u0099",
2497 "\1\u009a", 2641 "\1\u009a",
2498 "", 2642 "\1\u009b",
2499 "", 2643 "\1\u009c",
2500 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53",
2501 "",
2502 "",
2503 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53",
2504 "\1\u009d", 2644 "\1\u009d",
2505 "\1\u009e", 2645 "\1\u009e",
2506 "\1\u009f", 2646 "\1\u009f",
2507 "\1\u00a0", 2647 "\1\u00a0",
2508 "\1\u00a1", 2648 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2649 "",
2650 "",
2509 "\1\u00a2", 2651 "\1\u00a2",
2510 "\1\u00a3", 2652 "\1\u00a3",
2511 "\1\u00a4", 2653 "\1\u00a4",
2512 "\1\u00a5", 2654 "\1\u00a5",
2513 "\1\u00a6", 2655 "\1\u00a6",
2514 "\1\u00a7", 2656 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2515 "",
2516 "\1\u00a8", 2657 "\1\u00a8",
2517 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2658 "\1\u00a9",
2518 "\1\u00aa", 2659 "\1\u00aa",
2519 "\1\u00ab\3\uffff\1\u00ac", 2660 "\1\u00ab",
2661 "\1\u00ac",
2520 "\1\u00ad", 2662 "\1\u00ad",
2521 "\1\u00ae", 2663 "\1\u00ae",
2522 "\1\u00af", 2664 "\1\u00af",
2523 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2665 "\1\u00b0",
2524 "\1\u00b1", 2666 "\1\u00b1",
2525 "\1\u00b2", 2667 "\1\u00b2",
2526 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2668 "\1\u00b3",
2527 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2669 "\1\u00b4\3\uffff\1\u00b5",
2528 "",
2529 "",
2530 "\1\u00b5",
2531 "\1\u00b6", 2670 "\1\u00b6",
2532 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2671 "\1\u00b7",
2533 "\1\u00b8", 2672 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2534 "\1\u00b9", 2673 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2535 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2674 "\1\u00ba",
2536 "\1\u00bb", 2675 "\1\u00bb",
2537 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2676 "\1\u00bc",
2677 "",
2538 "\1\u00bd", 2678 "\1\u00bd",
2539 "\1\u00be", 2679 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2540 "\1\u00bf", 2680 "\1\u00bf",
2541 "\1\u00c0", 2681 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2682 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2542 "", 2683 "",
2543 "\1\u00c1",
2544 "\1\u00c2", 2684 "\1\u00c2",
2545 "\1\u00c3", 2685 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2546 "\1\u00c4", 2686 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2547 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2687 "\1\u00c5",
2548 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2688 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2549 "",
2550 "\1\u00c7", 2689 "\1\u00c7",
2551 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2690 "\1\u00c8",
2552 "",
2553 "",
2554 "\1\u00c9", 2691 "\1\u00c9",
2555 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2692 "\1\u00ca",
2556 "",
2557 "\1\u00cb", 2693 "\1\u00cb",
2558 "\1\u00cc", 2694 "\1\u00cc",
2559 "",
2560 "\1\u00cd", 2695 "\1\u00cd",
2561 "",
2562 "\1\u00ce", 2696 "\1\u00ce",
2563 "\1\u00cf", 2697 "\1\u00cf",
2564 "\1\u00d0", 2698 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2565 "\1\u00d1", 2699 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2700 "",
2701 "",
2566 "\1\u00d2", 2702 "\1\u00d2",
2567 "\1\u00d3", 2703 "\1\u00d3",
2568 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2704 "\1\u00d4",
2569 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2705 "\1\u00d5",
2570 "", 2706 "",
2707 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2571 "", 2708 "",
2572 "\1\u00d6",
2573 "", 2709 "",
2574 "\1\u00d7", 2710 "\1\u00d7",
2575 "", 2711 "",
2712 "",
2576 "\1\u00d8", 2713 "\1\u00d8",
2714 "",
2577 "\1\u00d9", 2715 "\1\u00d9",
2578 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2716 "\1\u00da",
2579 "\1\u00db", 2717 "\1\u00db",
2580 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2718 "\1\u00dc",
2581 "\1\u00dd", 2719 "\1\u00dd",
2582 "\1\u00de", 2720 "\1\u00de",
2583 "\1\u00df", 2721 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2584 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2722 "\1\u00e0",
2723 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2585 "", 2724 "",
2586 "", 2725 "",
2587 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53",
2588 "\1\u00e2", 2726 "\1\u00e2",
2589 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2727 "\1\u00e3",
2590 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2728 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2729 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2591 "", 2730 "",
2592 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2731 "\1\u00e6\5\uffff\1\u00e7",
2732 "\1\u00e8",
2733 "\1\u00e9",
2734 "\1\u00ea",
2735 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2736 "\1\u00ec",
2737 "\1\u00ed",
2738 "\1\u00ee",
2593 "", 2739 "",
2594 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2740 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2595 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53",
2596 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53",
2597 "", 2741 "",
2742 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2743 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2744 "",
2745 "",
2746 "\1\u00f2",
2747 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2748 "\1\u00f4",
2749 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2750 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2751 "",
2752 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2753 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2754 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2598 "", 2755 "",
2599 "\1\u00e9",
2600 "", 2756 "",
2601 "", 2757 "",
2758 "\1\u00fa",
2602 "", 2759 "",
2760 "\1\u00fb",
2603 "", 2761 "",
2604 "", 2762 "",
2605 "", 2763 "",
2606 "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53", 2764 "",
2765 "",
2766 "\1\u00fc",
2767 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2768 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2769 "",
2607 "" 2770 ""
2608 }; 2771 };
2609 2772
@@ -2637,41 +2800,31 @@ public class InternalSolverLanguageLexer extends Lexer {
2637 this.transition = DFA12_transition; 2800 this.transition = DFA12_transition;
2638 } 2801 }
2639 public String getDescription() { 2802 public String getDescription() {
2640 return "1:1: Tokens : ( Functional | Abstract | Contains | Datatype | Maximize | Minimize | Opposite | Current | Default | Extends | Unknown | Exists | Extern | Forall | Class | Count | Empty | Error | False | Scope | Else | Must | Then | True | FullStopFullStopFullStop | Inf | Let | May | ExclamationMarkEqualsSign | HyphenMinusGreaterThanSign | FullStopFullStop | ColonHyphenMinus | LessThanSignEqualsSign | EqualsSignEqualsSign | EqualsSignGreaterThanSign | GreaterThanSignEqualsSign | As | If | In | ExclamationMark | LeftParenthesis | RightParenthesis | Asterisk | PlusSign | Comma | HyphenMinus | FullStop | Solidus | Colon | Semicolon | LessThanSign | EqualsSign | GreaterThanSign | LeftSquareBracket | RightSquareBracket | CircumflexAccent | LeftCurlyBracket | VerticalLine | RightCurlyBracket | RULE_STRING | RULE_QUOTED_ID | RULE_SL_COMMENT | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_WS | RULE_ANY_OTHER );"; 2803 return "1:1: Tokens : ( Containment | Functional | Abstract | Contains | Datatype | Maximize | Minimize | Opposite | Default | Extends | Problem | Unknown | Extern | Import | Object | Refers | Class | Count | Empty | Error | False | Scope | Else | Enum | Root | Then | True | FullStopFullStopFullStop | Inf | Let | ExclamationMarkEqualsSign | HyphenMinusGreaterThanSign | ColonHyphenMinus | ColonColon | ColonEqualsSign | LessThanSignEqualsSign | EqualsSignEqualsSign | EqualsSignGreaterThanSign | GreaterThanSignEqualsSign | As | If | In | ExclamationMark | LeftParenthesis | RightParenthesis | Asterisk | PlusSign | Comma | HyphenMinus | FullStop | Solidus | Colon | Semicolon | LessThanSign | EqualsSign | GreaterThanSign | QuestionMark | LeftSquareBracket | RightSquareBracket | CircumflexAccent | LeftCurlyBracket | VerticalLine | RightCurlyBracket | Tilde | RULE_STRING | RULE_QUOTED_ID | RULE_SL_COMMENT | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_WS | RULE_ANY_OTHER );";
2641 } 2804 }
2642 public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { 2805 public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
2643 IntStream input = _input; 2806 IntStream input = _input;
2644 int _s = s; 2807 int _s = s;
2645 switch ( s ) { 2808 switch ( s ) {
2646 case 0 : 2809 case 0 :
2647 int LA12_33 = input.LA(1); 2810 int LA12_37 = input.LA(1);
2648 2811
2649 s = -1; 2812 s = -1;
2650 if ( ((LA12_33>='\u0000' && LA12_33<='\uFFFF')) ) {s = 96;} 2813 if ( ((LA12_37>='\u0000' && LA12_37<='\uFFFF')) ) {s = 107;}
2651 2814
2652 else s = 39; 2815 else s = 43;
2653 2816
2654 if ( s>=0 ) return s; 2817 if ( s>=0 ) return s;
2655 break; 2818 break;
2656 case 1 : 2819 case 1 :
2657 int LA12_34 = input.LA(1);
2658
2659 s = -1;
2660 if ( ((LA12_34>='\u0000' && LA12_34<='\uFFFF')) ) {s = 97;}
2661
2662 else s = 39;
2663
2664 if ( s>=0 ) return s;
2665 break;
2666 case 2 :
2667 int LA12_0 = input.LA(1); 2820 int LA12_0 = input.LA(1);
2668 2821
2669 s = -1; 2822 s = -1;
2670 if ( (LA12_0=='f') ) {s = 1;} 2823 if ( (LA12_0=='c') ) {s = 1;}
2671 2824
2672 else if ( (LA12_0=='a') ) {s = 2;} 2825 else if ( (LA12_0=='f') ) {s = 2;}
2673 2826
2674 else if ( (LA12_0=='c') ) {s = 3;} 2827 else if ( (LA12_0=='a') ) {s = 3;}
2675 2828
2676 else if ( (LA12_0=='d') ) {s = 4;} 2829 else if ( (LA12_0=='d') ) {s = 4;}
2677 2830
@@ -2681,69 +2834,87 @@ public class InternalSolverLanguageLexer extends Lexer {
2681 2834
2682 else if ( (LA12_0=='e') ) {s = 7;} 2835 else if ( (LA12_0=='e') ) {s = 7;}
2683 2836
2684 else if ( (LA12_0=='u') ) {s = 8;} 2837 else if ( (LA12_0=='p') ) {s = 8;}
2838
2839 else if ( (LA12_0=='u') ) {s = 9;}
2685 2840
2686 else if ( (LA12_0=='s') ) {s = 9;} 2841 else if ( (LA12_0=='i') ) {s = 10;}
2687 2842
2688 else if ( (LA12_0=='t') ) {s = 10;} 2843 else if ( (LA12_0=='r') ) {s = 11;}
2689 2844
2690 else if ( (LA12_0=='.') ) {s = 11;} 2845 else if ( (LA12_0=='s') ) {s = 12;}
2691 2846
2692 else if ( (LA12_0=='i') ) {s = 12;} 2847 else if ( (LA12_0=='t') ) {s = 13;}
2693 2848
2694 else if ( (LA12_0=='l') ) {s = 13;} 2849 else if ( (LA12_0=='.') ) {s = 14;}
2695 2850
2696 else if ( (LA12_0=='!') ) {s = 14;} 2851 else if ( (LA12_0=='l') ) {s = 15;}
2697 2852
2698 else if ( (LA12_0=='-') ) {s = 15;} 2853 else if ( (LA12_0=='!') ) {s = 16;}
2699 2854
2700 else if ( (LA12_0==':') ) {s = 16;} 2855 else if ( (LA12_0=='-') ) {s = 17;}
2701 2856
2702 else if ( (LA12_0=='<') ) {s = 17;} 2857 else if ( (LA12_0==':') ) {s = 18;}
2703 2858
2704 else if ( (LA12_0=='=') ) {s = 18;} 2859 else if ( (LA12_0=='<') ) {s = 19;}
2705 2860
2706 else if ( (LA12_0=='>') ) {s = 19;} 2861 else if ( (LA12_0=='=') ) {s = 20;}
2707 2862
2708 else if ( (LA12_0=='(') ) {s = 20;} 2863 else if ( (LA12_0=='>') ) {s = 21;}
2709 2864
2710 else if ( (LA12_0==')') ) {s = 21;} 2865 else if ( (LA12_0=='(') ) {s = 22;}
2711 2866
2712 else if ( (LA12_0=='*') ) {s = 22;} 2867 else if ( (LA12_0==')') ) {s = 23;}
2713 2868
2714 else if ( (LA12_0=='+') ) {s = 23;} 2869 else if ( (LA12_0=='*') ) {s = 24;}
2715 2870
2716 else if ( (LA12_0==',') ) {s = 24;} 2871 else if ( (LA12_0=='+') ) {s = 25;}
2717 2872
2718 else if ( (LA12_0=='/') ) {s = 25;} 2873 else if ( (LA12_0==',') ) {s = 26;}
2719 2874
2720 else if ( (LA12_0==';') ) {s = 26;} 2875 else if ( (LA12_0=='/') ) {s = 27;}
2721 2876
2722 else if ( (LA12_0=='[') ) {s = 27;} 2877 else if ( (LA12_0==';') ) {s = 28;}
2723 2878
2724 else if ( (LA12_0==']') ) {s = 28;} 2879 else if ( (LA12_0=='?') ) {s = 29;}
2725 2880
2726 else if ( (LA12_0=='^') ) {s = 29;} 2881 else if ( (LA12_0=='[') ) {s = 30;}
2727 2882
2728 else if ( (LA12_0=='{') ) {s = 30;} 2883 else if ( (LA12_0==']') ) {s = 31;}
2729 2884
2730 else if ( (LA12_0=='|') ) {s = 31;} 2885 else if ( (LA12_0=='^') ) {s = 32;}
2731 2886
2732 else if ( (LA12_0=='}') ) {s = 32;} 2887 else if ( (LA12_0=='{') ) {s = 33;}
2733 2888
2734 else if ( (LA12_0=='\"') ) {s = 33;} 2889 else if ( (LA12_0=='|') ) {s = 34;}
2735 2890
2736 else if ( (LA12_0=='\'') ) {s = 34;} 2891 else if ( (LA12_0=='}') ) {s = 35;}
2737 2892
2738 else if ( (LA12_0=='%') ) {s = 35;} 2893 else if ( (LA12_0=='~') ) {s = 36;}
2739 2894
2740 else if ( ((LA12_0>='A' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='b'||(LA12_0>='g' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='k')||LA12_0=='n'||(LA12_0>='p' && LA12_0<='r')||(LA12_0>='v' && LA12_0<='z')) ) {s = 36;} 2895 else if ( (LA12_0=='\"') ) {s = 37;}
2741 2896
2742 else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 37;} 2897 else if ( (LA12_0=='\'') ) {s = 38;}
2743 2898
2744 else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 38;} 2899 else if ( (LA12_0=='%') ) {s = 39;}
2900
2901 else if ( ((LA12_0>='A' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='b'||(LA12_0>='g' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='k')||LA12_0=='n'||LA12_0=='q'||(LA12_0>='v' && LA12_0<='z')) ) {s = 40;}
2902
2903 else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 41;}
2904
2905 else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 42;}
2906
2907 else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||(LA12_0>='#' && LA12_0<='$')||LA12_0=='&'||LA12_0=='@'||LA12_0=='\\'||LA12_0=='`'||(LA12_0>='\u007F' && LA12_0<='\uFFFF')) ) {s = 43;}
2908
2909 if ( s>=0 ) return s;
2910 break;
2911 case 2 :
2912 int LA12_38 = input.LA(1);
2913
2914 s = -1;
2915 if ( ((LA12_38>='\u0000' && LA12_38<='\uFFFF')) ) {s = 108;}
2745 2916
2746 else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||(LA12_0>='#' && LA12_0<='$')||LA12_0=='&'||(LA12_0>='?' && LA12_0<='@')||LA12_0=='\\'||LA12_0=='`'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 39;} 2917 else s = 43;
2747 2918
2748 if ( s>=0 ) return s; 2919 if ( s>=0 ) return s;
2749 break; 2920 break;
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.tokens b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.tokens
index 178103e2..f6269b97 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.tokens
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/lexer/InternalSolverLanguageLexer.tokens
@@ -1,70 +1,75 @@
1Abstract=5 1Abstract=6
2As=40 2As=43
3Asterisk=46 3Asterisk=49
4CircumflexAccent=59 4CircumflexAccent=63
5Class=18 5Class=20
6Colon=52 6Colon=55
7ColonHyphenMinus=35 7ColonColon=37
8Comma=48 8ColonEqualsSign=38
9Contains=6 9ColonHyphenMinus=36
10Count=19 10Comma=51
11Current=11 11Containment=4
12Datatype=7 12Contains=7
13Count=21
14Datatype=8
13Default=12 15Default=12
14Else=24 16Else=26
15Empty=20 17Empty=22
16EqualsSign=55 18Enum=27
17EqualsSignEqualsSign=37 19EqualsSign=58
18EqualsSignGreaterThanSign=38 20EqualsSignEqualsSign=40
19Error=21 21EqualsSignGreaterThanSign=41
20ExclamationMark=43 22Error=23
21ExclamationMarkEqualsSign=32 23ExclamationMark=46
22Exists=15 24ExclamationMarkEqualsSign=34
23Extends=13 25Extends=13
24Extern=16 26Extern=16
25False=22 27False=24
26Forall=17 28FullStop=53
27FullStop=50 29FullStopFullStopFullStop=31
28FullStopFullStop=34 30Functional=5
29FullStopFullStopFullStop=28 31GreaterThanSign=59
30Functional=4 32GreaterThanSignEqualsSign=42
31GreaterThanSign=56 33HyphenMinus=52
32GreaterThanSignEqualsSign=39 34HyphenMinusGreaterThanSign=35
33HyphenMinus=49 35If=44
34HyphenMinusGreaterThanSign=33 36Import=17
35If=41 37In=45
36In=42 38Inf=32
37Inf=29 39LeftCurlyBracket=64
38LeftCurlyBracket=60 40LeftParenthesis=47
39LeftParenthesis=44 41LeftSquareBracket=61
40LeftSquareBracket=57 42LessThanSign=57
41LessThanSign=54 43LessThanSignEqualsSign=39
42LessThanSignEqualsSign=36 44Let=33
43Let=30 45Maximize=9
44Maximize=8 46Minimize=10
45May=31 47Object=18
46Minimize=9 48Opposite=11
47Must=25 49PlusSign=50
48Opposite=10 50Problem=14
49PlusSign=47 51QuestionMark=60
50RULE_ANY_OTHER=73 52RULE_ANY_OTHER=78
51RULE_FULL_STOP=68 53RULE_FULL_STOP=73
52RULE_ID=69 54RULE_ID=74
53RULE_INT=70 55RULE_INT=75
54RULE_ML_COMMENT=71 56RULE_ML_COMMENT=76
55RULE_QUOTED_ID=64 57RULE_QUOTED_ID=69
56RULE_REFLEXIVE_TRANSITIVE_CLOSURE=67 58RULE_REFLEXIVE_TRANSITIVE_CLOSURE=72
57RULE_SL_COMMENT=65 59RULE_SL_COMMENT=70
58RULE_STRING=63 60RULE_STRING=68
59RULE_TRANSITIVE_CLOSURE=66 61RULE_TRANSITIVE_CLOSURE=71
60RULE_WS=72 62RULE_WS=77
61RightCurlyBracket=62 63Refers=19
62RightParenthesis=45 64RightCurlyBracket=66
63RightSquareBracket=58 65RightParenthesis=48
64Scope=23 66RightSquareBracket=62
65Semicolon=53 67Root=28
66Solidus=51 68Scope=25
67Then=26 69Semicolon=56
68True=27 70Solidus=54
69Unknown=14 71Then=29
70VerticalLine=61 72Tilde=67
73True=30
74Unknown=15
75VerticalLine=65
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSemanticSequencer.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSemanticSequencer.java
index dc93975f..49326024 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSemanticSequencer.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSemanticSequencer.java
@@ -10,52 +10,58 @@ import org.eclipse.emf.ecore.EPackage;
10import org.eclipse.viatra.solver.language.services.SolverLanguageGrammarAccess; 10import org.eclipse.viatra.solver.language.services.SolverLanguageGrammarAccess;
11import org.eclipse.viatra.solver.language.solverLanguage.Aggregation; 11import org.eclipse.viatra.solver.language.solverLanguage.Aggregation;
12import org.eclipse.viatra.solver.language.solverLanguage.ArgumentList; 12import org.eclipse.viatra.solver.language.solverLanguage.ArgumentList;
13import org.eclipse.viatra.solver.language.solverLanguage.Assertion;
14import org.eclipse.viatra.solver.language.solverLanguage.Attribute;
13import org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression; 15import org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression;
14import org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity; 16import org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity;
15import org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition; 17import org.eclipse.viatra.solver.language.solverLanguage.BoundedScope;
16import org.eclipse.viatra.solver.language.solverLanguage.Call; 18import org.eclipse.viatra.solver.language.solverLanguage.Call;
17import org.eclipse.viatra.solver.language.solverLanguage.Case; 19import org.eclipse.viatra.solver.language.solverLanguage.Case;
18import org.eclipse.viatra.solver.language.solverLanguage.CastExpression; 20import org.eclipse.viatra.solver.language.solverLanguage.CastExpression;
19import org.eclipse.viatra.solver.language.solverLanguage.ClassDefinition; 21import org.eclipse.viatra.solver.language.solverLanguage.ClassDeclaration;
20import org.eclipse.viatra.solver.language.solverLanguage.Comparison; 22import org.eclipse.viatra.solver.language.solverLanguage.ConditionalExpression;
21import org.eclipse.viatra.solver.language.solverLanguage.Conjunction; 23import org.eclipse.viatra.solver.language.solverLanguage.Conjunction;
22import org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition; 24import org.eclipse.viatra.solver.language.solverLanguage.Count;
25import org.eclipse.viatra.solver.language.solverLanguage.DefaultAssertion;
23import org.eclipse.viatra.solver.language.solverLanguage.Disjunction; 26import org.eclipse.viatra.solver.language.solverLanguage.Disjunction;
24import org.eclipse.viatra.solver.language.solverLanguage.EmptyIntervalLiteral; 27import org.eclipse.viatra.solver.language.solverLanguage.EmptyLiteral;
28import org.eclipse.viatra.solver.language.solverLanguage.EnumDeclaration;
29import org.eclipse.viatra.solver.language.solverLanguage.EnumLiteral;
25import org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity; 30import org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity;
26import org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition; 31import org.eclipse.viatra.solver.language.solverLanguage.ExactScope;
27import org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument; 32import org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument;
28import org.eclipse.viatra.solver.language.solverLanguage.ExternAggregatorDefinition; 33import org.eclipse.viatra.solver.language.solverLanguage.ExternAggregationOperatorDeclaration;
29import org.eclipse.viatra.solver.language.solverLanguage.ExternDatatypeDefinition; 34import org.eclipse.viatra.solver.language.solverLanguage.ExternDatatypeDeclaration;
30import org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition; 35import org.eclipse.viatra.solver.language.solverLanguage.ExternFunctionDeclaration;
31import org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition; 36import org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDeclaration;
32import org.eclipse.viatra.solver.language.solverLanguage.IfElse; 37import org.eclipse.viatra.solver.language.solverLanguage.Field;
38import org.eclipse.viatra.solver.language.solverLanguage.Forall;
39import org.eclipse.viatra.solver.language.solverLanguage.FunctionDefinition;
33import org.eclipse.viatra.solver.language.solverLanguage.InfinityLiteral; 40import org.eclipse.viatra.solver.language.solverLanguage.InfinityLiteral;
34import org.eclipse.viatra.solver.language.solverLanguage.Interpretation; 41import org.eclipse.viatra.solver.language.solverLanguage.IntLiteral;
35import org.eclipse.viatra.solver.language.solverLanguage.Interval; 42import org.eclipse.viatra.solver.language.solverLanguage.Interval;
36import org.eclipse.viatra.solver.language.solverLanguage.Let;
37import org.eclipse.viatra.solver.language.solverLanguage.LetBinding; 43import org.eclipse.viatra.solver.language.solverLanguage.LetBinding;
38import org.eclipse.viatra.solver.language.solverLanguage.LocalVariables; 44import org.eclipse.viatra.solver.language.solverLanguage.LetExpression;
39import org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral; 45import org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral;
40import org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition; 46import org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScope;
41import org.eclipse.viatra.solver.language.solverLanguage.ManyMultiplicity; 47import org.eclipse.viatra.solver.language.solverLanguage.NamespaceImport;
42import org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition; 48import org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDeclaration;
43import org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition; 49import org.eclipse.viatra.solver.language.solverLanguage.PathComponent;
44import org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral;
45import org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition;
46import org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition; 50import org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition;
47import org.eclipse.viatra.solver.language.solverLanguage.Problem; 51import org.eclipse.viatra.solver.language.solverLanguage.Problem;
48import org.eclipse.viatra.solver.language.solverLanguage.QuantifiedExpression; 52import org.eclipse.viatra.solver.language.solverLanguage.RealLiteral;
49import org.eclipse.viatra.solver.language.solverLanguage.Reference; 53import org.eclipse.viatra.solver.language.solverLanguage.Reference;
50import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 54import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
51import org.eclipse.viatra.solver.language.solverLanguage.StarArgument; 55import org.eclipse.viatra.solver.language.solverLanguage.StarArgument;
52import org.eclipse.viatra.solver.language.solverLanguage.StringLiteral; 56import org.eclipse.viatra.solver.language.solverLanguage.StringLiteral;
53import org.eclipse.viatra.solver.language.solverLanguage.Switch; 57import org.eclipse.viatra.solver.language.solverLanguage.Switch;
54import org.eclipse.viatra.solver.language.solverLanguage.TypedArgument; 58import org.eclipse.viatra.solver.language.solverLanguage.TypeReference;
55import org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument; 59import org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument;
60import org.eclipse.viatra.solver.language.solverLanguage.TypedVariableArgument;
56import org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression; 61import org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression;
57import org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition; 62import org.eclipse.viatra.solver.language.solverLanguage.UnboundedMultiplicity;
58import org.eclipse.viatra.solver.language.solverLanguage.Variable; 63import org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPredicateDefintion;
64import org.eclipse.viatra.solver.language.solverLanguage.UriImport;
59import org.eclipse.xtext.Action; 65import org.eclipse.xtext.Action;
60import org.eclipse.xtext.Parameter; 66import org.eclipse.xtext.Parameter;
61import org.eclipse.xtext.ParserRule; 67import org.eclipse.xtext.ParserRule;
@@ -84,14 +90,20 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
84 case SolverLanguagePackage.ARGUMENT_LIST: 90 case SolverLanguagePackage.ARGUMENT_LIST:
85 sequence_ArgumentList(context, (ArgumentList) semanticObject); 91 sequence_ArgumentList(context, (ArgumentList) semanticObject);
86 return; 92 return;
93 case SolverLanguagePackage.ASSERTION:
94 sequence_AssertionOrDefinition(context, (Assertion) semanticObject);
95 return;
96 case SolverLanguagePackage.ATTRIBUTE:
97 sequence_Attribute(context, (Attribute) semanticObject);
98 return;
87 case SolverLanguagePackage.BINARY_EXPRESSION: 99 case SolverLanguagePackage.BINARY_EXPRESSION:
88 sequence_AdditiveExpression_ExponentialExpression_ImplicationExpression_MultiplicativeExpression(context, (BinaryExpression) semanticObject); 100 sequence_AdditiveExpression_ComparisonExpression_ExponentialExpression_MultiplicativeExpression(context, (BinaryExpression) semanticObject);
89 return; 101 return;
90 case SolverLanguagePackage.BOUNDED_MULTIPLICITY: 102 case SolverLanguagePackage.BOUNDED_MULTIPLICITY:
91 sequence_BoundedMultiplicity(context, (BoundedMultiplicity) semanticObject); 103 sequence_BoundedMultiplicity(context, (BoundedMultiplicity) semanticObject);
92 return; 104 return;
93 case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION: 105 case SolverLanguagePackage.BOUNDED_SCOPE:
94 sequence_BoundedScopeDefinition(context, (BoundedScopeDefinition) semanticObject); 106 sequence_BoundedScope(context, (BoundedScope) semanticObject);
95 return; 107 return;
96 case SolverLanguagePackage.CALL: 108 case SolverLanguagePackage.CALL:
97 sequence_Call(context, (Call) semanticObject); 109 sequence_Call(context, (Call) semanticObject);
@@ -109,97 +121,103 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
109 case SolverLanguagePackage.CAST_EXPRESSION: 121 case SolverLanguagePackage.CAST_EXPRESSION:
110 sequence_CastExpression(context, (CastExpression) semanticObject); 122 sequence_CastExpression(context, (CastExpression) semanticObject);
111 return; 123 return;
112 case SolverLanguagePackage.CLASS_DEFINITION: 124 case SolverLanguagePackage.CLASS_DECLARATION:
113 sequence_ClassDefinition(context, (ClassDefinition) semanticObject); 125 sequence_ClassDeclaration(context, (ClassDeclaration) semanticObject);
114 return; 126 return;
115 case SolverLanguagePackage.COMPARISON: 127 case SolverLanguagePackage.CONDITIONAL_EXPRESSION:
116 sequence_ComparisonExpression(context, (Comparison) semanticObject); 128 sequence_ConditionalExpression(context, (ConditionalExpression) semanticObject);
117 return; 129 return;
118 case SolverLanguagePackage.CONJUNCTION: 130 case SolverLanguagePackage.CONJUNCTION:
119 sequence_ConjunctiveExpression(context, (Conjunction) semanticObject); 131 sequence_ConjunctiveExpression(context, (Conjunction) semanticObject);
120 return; 132 return;
121 case SolverLanguagePackage.DEFAULT_DEFINITION: 133 case SolverLanguagePackage.COUNT:
122 sequence_DefaultDefinition(context, (DefaultDefinition) semanticObject); 134 sequence_Count(context, (Count) semanticObject);
135 return;
136 case SolverLanguagePackage.DEFAULT_ASSERTION:
137 sequence_DefaultAssertion(context, (DefaultAssertion) semanticObject);
123 return; 138 return;
124 case SolverLanguagePackage.DISJUNCTION: 139 case SolverLanguagePackage.DISJUNCTION:
125 sequence_DisjunctiveExpression(context, (Disjunction) semanticObject); 140 sequence_DisjunctiveExpression(context, (Disjunction) semanticObject);
126 return; 141 return;
127 case SolverLanguagePackage.EMPTY_INTERVAL_LITERAL: 142 case SolverLanguagePackage.EMPTY_LITERAL:
128 sequence_EmptyIntervalLiteral(context, (EmptyIntervalLiteral) semanticObject); 143 sequence_EmptyLiteral(context, (EmptyLiteral) semanticObject);
144 return;
145 case SolverLanguagePackage.ENUM_DECLARATION:
146 sequence_EnumDeclaration(context, (EnumDeclaration) semanticObject);
147 return;
148 case SolverLanguagePackage.ENUM_LITERAL:
149 sequence_EnumLiteral(context, (EnumLiteral) semanticObject);
129 return; 150 return;
130 case SolverLanguagePackage.EXACT_MULTIPLICITY: 151 case SolverLanguagePackage.EXACT_MULTIPLICITY:
131 sequence_ExactMultiplicity(context, (ExactMultiplicity) semanticObject); 152 sequence_ExactMultiplicity(context, (ExactMultiplicity) semanticObject);
132 return; 153 return;
133 case SolverLanguagePackage.EXACT_SCOPE_DEFINITION: 154 case SolverLanguagePackage.EXACT_SCOPE:
134 sequence_ExactScopeDefinition(context, (ExactScopeDefinition) semanticObject); 155 sequence_ExactScope(context, (ExactScope) semanticObject);
135 return; 156 return;
136 case SolverLanguagePackage.EXPRESSION_ARGUMENT: 157 case SolverLanguagePackage.EXPRESSION_ARGUMENT:
137 sequence_ExpressionArgument(context, (ExpressionArgument) semanticObject); 158 sequence_ExpressionArgument(context, (ExpressionArgument) semanticObject);
138 return; 159 return;
139 case SolverLanguagePackage.EXTERN_AGGREGATOR_DEFINITION: 160 case SolverLanguagePackage.EXTERN_AGGREGATION_OPERATOR_DECLARATION:
140 sequence_ExternAggregatorDefinition(context, (ExternAggregatorDefinition) semanticObject); 161 sequence_ExternAggregationOperatorDeclaration(context, (ExternAggregationOperatorDeclaration) semanticObject);
162 return;
163 case SolverLanguagePackage.EXTERN_DATATYPE_DECLARATION:
164 sequence_ExternDatatypeDeclaration(context, (ExternDatatypeDeclaration) semanticObject);
141 return; 165 return;
142 case SolverLanguagePackage.EXTERN_DATATYPE_DEFINITION: 166 case SolverLanguagePackage.EXTERN_FUNCTION_DECLARATION:
143 sequence_ExternDatatypeDefinition(context, (ExternDatatypeDefinition) semanticObject); 167 sequence_ExternFunctionDeclaration(context, (ExternFunctionDeclaration) semanticObject);
144 return; 168 return;
145 case SolverLanguagePackage.EXTERN_METRIC_DEFINITION: 169 case SolverLanguagePackage.EXTERN_PREDICATE_DECLARATION:
146 sequence_ExternMetricDefinition(context, (ExternMetricDefinition) semanticObject); 170 sequence_ExternPredicateDeclaration(context, (ExternPredicateDeclaration) semanticObject);
147 return; 171 return;
148 case SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION: 172 case SolverLanguagePackage.FIELD:
149 sequence_ExternPredicateDefinition(context, (ExternPredicateDefinition) semanticObject); 173 sequence_Field(context, (Field) semanticObject);
150 return; 174 return;
151 case SolverLanguagePackage.IF_ELSE: 175 case SolverLanguagePackage.FORALL:
152 sequence_IfElse(context, (IfElse) semanticObject); 176 sequence_Expression(context, (Forall) semanticObject);
153 return; 177 return;
178 case SolverLanguagePackage.FUNCTION_DEFINITION:
179 if (rule == grammarAccess.getAssertionOrDefinitionRule()) {
180 sequence_AssertionOrDefinition(context, (FunctionDefinition) semanticObject);
181 return;
182 }
183 else if (rule == grammarAccess.getStatementRule()) {
184 sequence_AssertionOrDefinition_FunctionDefinition(context, (FunctionDefinition) semanticObject);
185 return;
186 }
187 else if (rule == grammarAccess.getFunctionDefinitionRule()) {
188 sequence_FunctionDefinition(context, (FunctionDefinition) semanticObject);
189 return;
190 }
191 else break;
154 case SolverLanguagePackage.INFINITY_LITERAL: 192 case SolverLanguagePackage.INFINITY_LITERAL:
155 sequence_InfinityLiteral(context, (InfinityLiteral) semanticObject); 193 sequence_InfinityLiteral(context, (InfinityLiteral) semanticObject);
156 return; 194 return;
157 case SolverLanguagePackage.INTERPRETATION: 195 case SolverLanguagePackage.INT_LITERAL:
158 sequence_AssertionOrDefinition(context, (Interpretation) semanticObject); 196 sequence_IntLiteral(context, (IntLiteral) semanticObject);
159 return; 197 return;
160 case SolverLanguagePackage.INTERVAL: 198 case SolverLanguagePackage.INTERVAL:
161 sequence_Interval(context, (Interval) semanticObject); 199 sequence_Interval(context, (Interval) semanticObject);
162 return; 200 return;
163 case SolverLanguagePackage.LET:
164 sequence_Let(context, (Let) semanticObject);
165 return;
166 case SolverLanguagePackage.LET_BINDING: 201 case SolverLanguagePackage.LET_BINDING:
167 sequence_LetBinding(context, (LetBinding) semanticObject); 202 sequence_LetBinding(context, (LetBinding) semanticObject);
168 return; 203 return;
169 case SolverLanguagePackage.LOCAL_VARIABLES: 204 case SolverLanguagePackage.LET_EXPRESSION:
170 sequence_LocalVariables(context, (LocalVariables) semanticObject); 205 sequence_LetExpression(context, (LetExpression) semanticObject);
171 return; 206 return;
172 case SolverLanguagePackage.LOGIC_LITERAL: 207 case SolverLanguagePackage.LOGIC_LITERAL:
173 sequence_LogicLiteral(context, (LogicLiteral) semanticObject); 208 sequence_LogicLiteral(context, (LogicLiteral) semanticObject);
174 return; 209 return;
175 case SolverLanguagePackage.LOWER_BOUNDED_SCOPE_DEFINITION: 210 case SolverLanguagePackage.LOWER_BOUNDED_SCOPE:
176 sequence_LowerBoundedScopeDefinition(context, (LowerBoundedScopeDefinition) semanticObject); 211 sequence_LowerBoundedScope(context, (LowerBoundedScope) semanticObject);
177 return; 212 return;
178 case SolverLanguagePackage.MANY_MULTIPLICITY: 213 case SolverLanguagePackage.NAMESPACE_IMPORT:
179 sequence_ManyMultiplicity(context, (ManyMultiplicity) semanticObject); 214 sequence_NamespaceImport(context, (NamespaceImport) semanticObject);
180 return; 215 return;
181 case SolverLanguagePackage.MEMBER_DEFINITION: 216 case SolverLanguagePackage.OBJECTIVE_DECLARATION:
182 sequence_MemberDefinition(context, (MemberDefinition) semanticObject); 217 sequence_ObjectiveDeclaration(context, (ObjectiveDeclaration) semanticObject);
183 return; 218 return;
184 case SolverLanguagePackage.METRIC_DEFINITION: 219 case SolverLanguagePackage.PATH_COMPONENT:
185 if (rule == grammarAccess.getAssertionOrDefinitionRule()) { 220 sequence_PathComponent(context, (PathComponent) semanticObject);
186 sequence_AssertionOrDefinition(context, (MetricDefinition) semanticObject);
187 return;
188 }
189 else if (rule == grammarAccess.getStatementRule()) {
190 sequence_AssertionOrDefinition_MetricDefinition(context, (MetricDefinition) semanticObject);
191 return;
192 }
193 else if (rule == grammarAccess.getMetricDefinitionRule()) {
194 sequence_MetricDefinition(context, (MetricDefinition) semanticObject);
195 return;
196 }
197 else break;
198 case SolverLanguagePackage.NUMERIC_LITERAL:
199 sequence_NumericLiteral(context, (NumericLiteral) semanticObject);
200 return;
201 case SolverLanguagePackage.OBJECTIVE_DEFINITION:
202 sequence_ObjectiveDefinition(context, (ObjectiveDefinition) semanticObject);
203 return; 221 return;
204 case SolverLanguagePackage.PREDICATE_DEFINITION: 222 case SolverLanguagePackage.PREDICATE_DEFINITION:
205 if (rule == grammarAccess.getAssertionOrDefinitionRule()) { 223 if (rule == grammarAccess.getAssertionOrDefinitionRule()) {
@@ -218,8 +236,8 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
218 case SolverLanguagePackage.PROBLEM: 236 case SolverLanguagePackage.PROBLEM:
219 sequence_Problem(context, (Problem) semanticObject); 237 sequence_Problem(context, (Problem) semanticObject);
220 return; 238 return;
221 case SolverLanguagePackage.QUANTIFIED_EXPRESSION: 239 case SolverLanguagePackage.REAL_LITERAL:
222 sequence_QuantifiedExpression(context, (QuantifiedExpression) semanticObject); 240 sequence_RealLiteral(context, (RealLiteral) semanticObject);
223 return; 241 return;
224 case SolverLanguagePackage.REFERENCE: 242 case SolverLanguagePackage.REFERENCE:
225 sequence_Reference(context, (Reference) semanticObject); 243 sequence_Reference(context, (Reference) semanticObject);
@@ -233,20 +251,26 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
233 case SolverLanguagePackage.SWITCH: 251 case SolverLanguagePackage.SWITCH:
234 sequence_DisjunctiveExpression(context, (Switch) semanticObject); 252 sequence_DisjunctiveExpression(context, (Switch) semanticObject);
235 return; 253 return;
236 case SolverLanguagePackage.TYPED_ARGUMENT: 254 case SolverLanguagePackage.TYPE_REFERENCE:
237 sequence_TypedArgument(context, (TypedArgument) semanticObject); 255 sequence_TypeReference(context, (TypeReference) semanticObject);
238 return; 256 return;
239 case SolverLanguagePackage.TYPED_STAR_ARGUMENT: 257 case SolverLanguagePackage.TYPED_STAR_ARGUMENT:
240 sequence_TypedStarArgument(context, (TypedStarArgument) semanticObject); 258 sequence_TypedStarArgument(context, (TypedStarArgument) semanticObject);
241 return; 259 return;
260 case SolverLanguagePackage.TYPED_VARIABLE_ARGUMENT:
261 sequence_TypedVariableArgument(context, (TypedVariableArgument) semanticObject);
262 return;
242 case SolverLanguagePackage.UNARY_EXPRESSION: 263 case SolverLanguagePackage.UNARY_EXPRESSION:
243 sequence_UnaryExpression(context, (UnaryExpression) semanticObject); 264 sequence_UnaryExpression(context, (UnaryExpression) semanticObject);
244 return; 265 return;
245 case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION: 266 case SolverLanguagePackage.UNBOUNDED_MULTIPLICITY:
246 sequence_UnnamedErrorPrediateDefinition(context, (UnnamedErrorPrediateDefinition) semanticObject); 267 sequence_UnboundedMultiplicity(context, (UnboundedMultiplicity) semanticObject);
247 return; 268 return;
248 case SolverLanguagePackage.VARIABLE: 269 case SolverLanguagePackage.UNNAMED_ERROR_PREDICATE_DEFINTION:
249 sequence_Variable(context, (Variable) semanticObject); 270 sequence_UnnamedErrorPredicateDefintion(context, (UnnamedErrorPredicateDefintion) semanticObject);
271 return;
272 case SolverLanguagePackage.URI_IMPORT:
273 sequence_UriImport(context, (UriImport) semanticObject);
250 return; 274 return;
251 } 275 }
252 if (errorAcceptor != null) 276 if (errorAcceptor != null)
@@ -255,21 +279,18 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
255 279
256 /** 280 /**
257 * Contexts: 281 * Contexts:
258 * Statement returns BinaryExpression 282 * AssertionOrDefinition.Assertion_1_0_0 returns BinaryExpression
259 * AssertionOrDefinition returns BinaryExpression
260 * AssertionOrDefinition.Interpretation_1_0_0 returns BinaryExpression
261 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns BinaryExpression 283 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns BinaryExpression
262 * AssertionOrDefinition.MetricDefinition_1_2_0 returns BinaryExpression 284 * AssertionOrDefinition.FunctionDefinition_1_2_0 returns BinaryExpression
263 * Expression returns BinaryExpression 285 * Expression returns BinaryExpression
264 * ImplicationExpression returns BinaryExpression 286 * Expression.Forall_2_1_0 returns BinaryExpression
265 * ImplicationExpression.BinaryExpression_1_0 returns BinaryExpression
266 * DisjunctiveExpression returns BinaryExpression 287 * DisjunctiveExpression returns BinaryExpression
267 * DisjunctiveExpression.Disjunction_1_0_0 returns BinaryExpression 288 * DisjunctiveExpression.Disjunction_1_0_0 returns BinaryExpression
268 * DisjunctiveExpression.Case_1_1_0 returns BinaryExpression 289 * DisjunctiveExpression.Case_1_1_0 returns BinaryExpression
269 * ConjunctiveExpression returns BinaryExpression 290 * ConjunctiveExpression returns BinaryExpression
270 * ConjunctiveExpression.Conjunction_1_0 returns BinaryExpression 291 * ConjunctiveExpression.Conjunction_1_0 returns BinaryExpression
271 * ComparisonExpression returns BinaryExpression 292 * ComparisonExpression returns BinaryExpression
272 * ComparisonExpression.Comparison_1_0 returns BinaryExpression 293 * ComparisonExpression.BinaryExpression_1_0 returns BinaryExpression
273 * AdditiveExpression returns BinaryExpression 294 * AdditiveExpression returns BinaryExpression
274 * AdditiveExpression.BinaryExpression_1_0 returns BinaryExpression 295 * AdditiveExpression.BinaryExpression_1_0 returns BinaryExpression
275 * MultiplicativeExpression returns BinaryExpression 296 * MultiplicativeExpression returns BinaryExpression
@@ -279,39 +300,36 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
279 * CastExpression returns BinaryExpression 300 * CastExpression returns BinaryExpression
280 * CastExpression.CastExpression_1_0 returns BinaryExpression 301 * CastExpression.CastExpression_1_0 returns BinaryExpression
281 * UnaryExpression returns BinaryExpression 302 * UnaryExpression returns BinaryExpression
282 * AggregationExpression returns BinaryExpression 303 * BracedAggregateExpression returns BinaryExpression
283 * AtomicExpression returns BinaryExpression 304 * AtomicExpression returns BinaryExpression
284 * 305 *
285 * Constraint: 306 * Constraint:
286 * ( 307 * (
287 * (left=ImplicationExpression_BinaryExpression_1_0 op=ImplicationOperator right=ImplicationExpression) | 308 * (left=ComparisonExpression_BinaryExpression_1_0 op=ComparisonOperator right=AdditiveExpression) |
288 * (left=AdditiveExpression_BinaryExpression_1_0 op=AdditiveBinaryOperator right=MultiplicativeExpression) | 309 * (left=AdditiveExpression_BinaryExpression_1_0 op=AdditiveBinaryOperator right=MultiplicativeExpression) |
289 * (left=MultiplicativeExpression_BinaryExpression_1_0 op=MultiplicativeBinaryOperator right=ExponentialExpression) | 310 * (left=MultiplicativeExpression_BinaryExpression_1_0 op=MultiplicativeBinaryOperator right=ExponentialExpression) |
290 * (left=ExponentialExpression_BinaryExpression_1_0 op=ExponentialOp right=CastExpression) 311 * (left=ExponentialExpression_BinaryExpression_1_0 op=ExponentialOp right=CastExpression)
291 * ) 312 * )
292 */ 313 */
293 protected void sequence_AdditiveExpression_ExponentialExpression_ImplicationExpression_MultiplicativeExpression(ISerializationContext context, BinaryExpression semanticObject) { 314 protected void sequence_AdditiveExpression_ComparisonExpression_ExponentialExpression_MultiplicativeExpression(ISerializationContext context, BinaryExpression semanticObject) {
294 genericSequencer.createSequence(context, semanticObject); 315 genericSequencer.createSequence(context, semanticObject);
295 } 316 }
296 317
297 318
298 /** 319 /**
299 * Contexts: 320 * Contexts:
300 * Statement returns Aggregation 321 * AssertionOrDefinition.Assertion_1_0_0 returns Aggregation
301 * AssertionOrDefinition returns Aggregation
302 * AssertionOrDefinition.Interpretation_1_0_0 returns Aggregation
303 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Aggregation 322 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Aggregation
304 * AssertionOrDefinition.MetricDefinition_1_2_0 returns Aggregation 323 * AssertionOrDefinition.FunctionDefinition_1_2_0 returns Aggregation
305 * Expression returns Aggregation 324 * Expression returns Aggregation
306 * ImplicationExpression returns Aggregation 325 * Expression.Forall_2_1_0 returns Aggregation
307 * ImplicationExpression.BinaryExpression_1_0 returns Aggregation
308 * DisjunctiveExpression returns Aggregation 326 * DisjunctiveExpression returns Aggregation
309 * DisjunctiveExpression.Disjunction_1_0_0 returns Aggregation 327 * DisjunctiveExpression.Disjunction_1_0_0 returns Aggregation
310 * DisjunctiveExpression.Case_1_1_0 returns Aggregation 328 * DisjunctiveExpression.Case_1_1_0 returns Aggregation
311 * ConjunctiveExpression returns Aggregation 329 * ConjunctiveExpression returns Aggregation
312 * ConjunctiveExpression.Conjunction_1_0 returns Aggregation 330 * ConjunctiveExpression.Conjunction_1_0 returns Aggregation
313 * ComparisonExpression returns Aggregation 331 * ComparisonExpression returns Aggregation
314 * ComparisonExpression.Comparison_1_0 returns Aggregation 332 * ComparisonExpression.BinaryExpression_1_0 returns Aggregation
315 * AdditiveExpression returns Aggregation 333 * AdditiveExpression returns Aggregation
316 * AdditiveExpression.BinaryExpression_1_0 returns Aggregation 334 * AdditiveExpression.BinaryExpression_1_0 returns Aggregation
317 * MultiplicativeExpression returns Aggregation 335 * MultiplicativeExpression returns Aggregation
@@ -321,15 +339,27 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
321 * CastExpression returns Aggregation 339 * CastExpression returns Aggregation
322 * CastExpression.CastExpression_1_0 returns Aggregation 340 * CastExpression.CastExpression_1_0 returns Aggregation
323 * UnaryExpression returns Aggregation 341 * UnaryExpression returns Aggregation
324 * AggregationExpression returns Aggregation 342 * BracedAggregateExpression returns Aggregation
325 * Aggregation returns Aggregation 343 * Aggregation returns Aggregation
326 * AtomicExpression returns Aggregation 344 * AtomicExpression returns Aggregation
327 * 345 *
328 * Constraint: 346 * Constraint:
329 * (op=[NamedElement|QualifiedName] localVariables=LocalVariables? body=Expression condition=Expression?) 347 * (op=[Symbol|QualifiedName] value=Expression condition=Expression)
330 */ 348 */
331 protected void sequence_Aggregation(ISerializationContext context, Aggregation semanticObject) { 349 protected void sequence_Aggregation(ISerializationContext context, Aggregation semanticObject) {
332 genericSequencer.createSequence(context, semanticObject); 350 if (errorAcceptor != null) {
351 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.AGGREGATION__OP) == ValueTransient.YES)
352 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.AGGREGATION__OP));
353 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.AGGREGATION__VALUE) == ValueTransient.YES)
354 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.AGGREGATION__VALUE));
355 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.AGGREGATE_EXPRESSION__CONDITION) == ValueTransient.YES)
356 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.AGGREGATE_EXPRESSION__CONDITION));
357 }
358 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
359 feeder.accept(grammarAccess.getAggregationAccess().getOpSymbolQualifiedNameParserRuleCall_0_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.AGGREGATION__OP, false));
360 feeder.accept(grammarAccess.getAggregationAccess().getValueExpressionParserRuleCall_2_0(), semanticObject.getValue());
361 feeder.accept(grammarAccess.getAggregationAccess().getConditionExpressionParserRuleCall_4_0(), semanticObject.getCondition());
362 feeder.finish();
333 } 363 }
334 364
335 365
@@ -347,42 +377,33 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
347 377
348 /** 378 /**
349 * Contexts: 379 * Contexts:
350 * Statement returns Interpretation 380 * Statement returns Assertion
351 * AssertionOrDefinition returns Interpretation 381 * AssertionOrDefinition returns Assertion
352 * 382 *
353 * Constraint: 383 * Constraint:
354 * (body=AssertionOrDefinition_Interpretation_1_0_0 range=Expression) 384 * (expression=AssertionOrDefinition_Assertion_1_0_0 range=Expression?)
355 */ 385 */
356 protected void sequence_AssertionOrDefinition(ISerializationContext context, Interpretation semanticObject) { 386 protected void sequence_AssertionOrDefinition(ISerializationContext context, Assertion semanticObject) {
357 if (errorAcceptor != null) { 387 genericSequencer.createSequence(context, semanticObject);
358 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.INTERPRETATION__BODY) == ValueTransient.YES)
359 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.INTERPRETATION__BODY));
360 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.INTERPRETATION__RANGE) == ValueTransient.YES)
361 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.INTERPRETATION__RANGE));
362 }
363 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
364 feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getInterpretationBodyAction_1_0_0(), semanticObject.getBody());
365 feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getRangeExpressionParserRuleCall_1_0_2_0(), semanticObject.getRange());
366 feeder.finish();
367 } 388 }
368 389
369 390
370 /** 391 /**
371 * Contexts: 392 * Contexts:
372 * AssertionOrDefinition returns MetricDefinition 393 * AssertionOrDefinition returns FunctionDefinition
373 * 394 *
374 * Constraint: 395 * Constraint:
375 * (head=AssertionOrDefinition_MetricDefinition_1_2_0 body=Expression) 396 * (head=AssertionOrDefinition_FunctionDefinition_1_2_0 body=Expression)
376 */ 397 */
377 protected void sequence_AssertionOrDefinition(ISerializationContext context, MetricDefinition semanticObject) { 398 protected void sequence_AssertionOrDefinition(ISerializationContext context, FunctionDefinition semanticObject) {
378 if (errorAcceptor != null) { 399 if (errorAcceptor != null) {
379 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__HEAD) == ValueTransient.YES) 400 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__HEAD) == ValueTransient.YES)
380 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__HEAD)); 401 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__HEAD));
381 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__BODY) == ValueTransient.YES) 402 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__BODY) == ValueTransient.YES)
382 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__BODY)); 403 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__BODY));
383 } 404 }
384 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 405 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
385 feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getMetricDefinitionHeadAction_1_2_0(), semanticObject.getHead()); 406 feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getFunctionDefinitionHeadAction_1_2_0(), semanticObject.getHead());
386 feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_2_2_0(), semanticObject.getBody()); 407 feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_2_2_0(), semanticObject.getBody());
387 feeder.finish(); 408 feeder.finish();
388 } 409 }
@@ -390,12 +411,12 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
390 411
391 /** 412 /**
392 * Contexts: 413 * Contexts:
393 * Statement returns MetricDefinition 414 * Statement returns FunctionDefinition
394 * 415 *
395 * Constraint: 416 * Constraint:
396 * ((head=AssertionOrDefinition_MetricDefinition_1_2_0 body=Expression) | (type=[NamedElement|QualifiedName] head=Call body=Expression)) 417 * ((head=AssertionOrDefinition_FunctionDefinition_1_2_0 body=Expression) | (resultType=[Symbol|QualifiedName] head=Call body=Expression))
397 */ 418 */
398 protected void sequence_AssertionOrDefinition_MetricDefinition(ISerializationContext context, MetricDefinition semanticObject) { 419 protected void sequence_AssertionOrDefinition_FunctionDefinition(ISerializationContext context, FunctionDefinition semanticObject) {
399 genericSequencer.createSequence(context, semanticObject); 420 genericSequencer.createSequence(context, semanticObject);
400 } 421 }
401 422
@@ -409,10 +430,10 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
409 */ 430 */
410 protected void sequence_AssertionOrDefinition(ISerializationContext context, PredicateDefinition semanticObject) { 431 protected void sequence_AssertionOrDefinition(ISerializationContext context, PredicateDefinition semanticObject) {
411 if (errorAcceptor != null) { 432 if (errorAcceptor != null) {
412 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.PREDICATE_DEFINITION__HEAD) == ValueTransient.YES) 433 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__HEAD) == ValueTransient.YES)
413 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.PREDICATE_DEFINITION__HEAD)); 434 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__HEAD));
414 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.PREDICATE_DEFINITION__BODY) == ValueTransient.YES) 435 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__BODY) == ValueTransient.YES)
415 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.PREDICATE_DEFINITION__BODY)); 436 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__BODY));
416 } 437 }
417 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 438 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
418 feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getPredicateDefinitionHeadAction_1_1_0(), semanticObject.getHead()); 439 feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getPredicateDefinitionHeadAction_1_1_0(), semanticObject.getHead());
@@ -438,6 +459,28 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
438 459
439 /** 460 /**
440 * Contexts: 461 * Contexts:
462 * Statement returns Attribute
463 * Attribute returns Attribute
464 *
465 * Constraint:
466 * (kind=AttributeKind target=[Symbol|QualifiedName])
467 */
468 protected void sequence_Attribute(ISerializationContext context, Attribute semanticObject) {
469 if (errorAcceptor != null) {
470 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.ATTRIBUTE__KIND) == ValueTransient.YES)
471 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.ATTRIBUTE__KIND));
472 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.ATTRIBUTE__TARGET) == ValueTransient.YES)
473 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.ATTRIBUTE__TARGET));
474 }
475 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
476 feeder.accept(grammarAccess.getAttributeAccess().getKindAttributeKindEnumRuleCall_0_0(), semanticObject.getKind());
477 feeder.accept(grammarAccess.getAttributeAccess().getTargetSymbolQualifiedNameParserRuleCall_1_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.ATTRIBUTE__TARGET, false));
478 feeder.finish();
479 }
480
481
482 /**
483 * Contexts:
441 * Multiplicity returns BoundedMultiplicity 484 * Multiplicity returns BoundedMultiplicity
442 * BoundedMultiplicity returns BoundedMultiplicity 485 * BoundedMultiplicity returns BoundedMultiplicity
443 * 486 *
@@ -460,35 +503,32 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
460 503
461 /** 504 /**
462 * Contexts: 505 * Contexts:
463 * Statement returns BoundedScopeDefinition 506 * Statement returns BoundedScope
464 * ScopeDefinition returns BoundedScopeDefinition 507 * ScopeDeclaration returns BoundedScope
465 * BoundedScopeDefinition returns BoundedScopeDefinition 508 * BoundedScope returns BoundedScope
466 * 509 *
467 * Constraint: 510 * Constraint:
468 * ((lowerBound=INT? type=[NamedElement|QualifiedName] upperBound=INT) | (upperBound=INT type=[NamedElement|QualifiedName] lowerBound=INT?)) 511 * ((lowerBound=INT? type=[Symbol|QualifiedName] upperBound=INT) | (upperBound=INT type=[Symbol|QualifiedName] lowerBound=INT?))
469 */ 512 */
470 protected void sequence_BoundedScopeDefinition(ISerializationContext context, BoundedScopeDefinition semanticObject) { 513 protected void sequence_BoundedScope(ISerializationContext context, BoundedScope semanticObject) {
471 genericSequencer.createSequence(context, semanticObject); 514 genericSequencer.createSequence(context, semanticObject);
472 } 515 }
473 516
474 517
475 /** 518 /**
476 * Contexts: 519 * Contexts:
477 * Statement returns Call 520 * AssertionOrDefinition.Assertion_1_0_0 returns Call
478 * AssertionOrDefinition returns Call
479 * AssertionOrDefinition.Interpretation_1_0_0 returns Call
480 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Call 521 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Call
481 * AssertionOrDefinition.MetricDefinition_1_2_0 returns Call 522 * AssertionOrDefinition.FunctionDefinition_1_2_0 returns Call
482 * Expression returns Call 523 * Expression returns Call
483 * ImplicationExpression returns Call 524 * Expression.Forall_2_1_0 returns Call
484 * ImplicationExpression.BinaryExpression_1_0 returns Call
485 * DisjunctiveExpression returns Call 525 * DisjunctiveExpression returns Call
486 * DisjunctiveExpression.Disjunction_1_0_0 returns Call 526 * DisjunctiveExpression.Disjunction_1_0_0 returns Call
487 * DisjunctiveExpression.Case_1_1_0 returns Call 527 * DisjunctiveExpression.Case_1_1_0 returns Call
488 * ConjunctiveExpression returns Call 528 * ConjunctiveExpression returns Call
489 * ConjunctiveExpression.Conjunction_1_0 returns Call 529 * ConjunctiveExpression.Conjunction_1_0 returns Call
490 * ComparisonExpression returns Call 530 * ComparisonExpression returns Call
491 * ComparisonExpression.Comparison_1_0 returns Call 531 * ComparisonExpression.BinaryExpression_1_0 returns Call
492 * AdditiveExpression returns Call 532 * AdditiveExpression returns Call
493 * AdditiveExpression.BinaryExpression_1_0 returns Call 533 * AdditiveExpression.BinaryExpression_1_0 returns Call
494 * MultiplicativeExpression returns Call 534 * MultiplicativeExpression returns Call
@@ -498,19 +538,24 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
498 * CastExpression returns Call 538 * CastExpression returns Call
499 * CastExpression.CastExpression_1_0 returns Call 539 * CastExpression.CastExpression_1_0 returns Call
500 * UnaryExpression returns Call 540 * UnaryExpression returns Call
501 * AggregationExpression returns Call 541 * BracedAggregateExpression returns Call
502 * AtomicExpression returns Call 542 * AtomicExpression returns Call
503 * Call returns Call 543 * Call returns Call
504 * 544 *
505 * Constraint: 545 * Constraint:
506 * ( 546 * (functor=Reference argumentList=ArgumentList)
507 * functor=Reference
508 * (transitiveClosure?=TRANSITIVE_CLOSURE | reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE)?
509 * argumentList=ArgumentList
510 * )
511 */ 547 */
512 protected void sequence_Call(ISerializationContext context, Call semanticObject) { 548 protected void sequence_Call(ISerializationContext context, Call semanticObject) {
513 genericSequencer.createSequence(context, semanticObject); 549 if (errorAcceptor != null) {
550 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CALL__FUNCTOR) == ValueTransient.YES)
551 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CALL__FUNCTOR));
552 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CALL__ARGUMENT_LIST) == ValueTransient.YES)
553 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CALL__ARGUMENT_LIST));
554 }
555 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
556 feeder.accept(grammarAccess.getCallAccess().getFunctorReferenceParserRuleCall_0_0(), semanticObject.getFunctor());
557 feeder.accept(grammarAccess.getCallAccess().getArgumentListArgumentListParserRuleCall_1_0(), semanticObject.getArgumentList());
558 feeder.finish();
514 } 559 }
515 560
516 561
@@ -537,21 +582,18 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
537 582
538 /** 583 /**
539 * Contexts: 584 * Contexts:
540 * Statement returns CastExpression 585 * AssertionOrDefinition.Assertion_1_0_0 returns CastExpression
541 * AssertionOrDefinition returns CastExpression
542 * AssertionOrDefinition.Interpretation_1_0_0 returns CastExpression
543 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns CastExpression 586 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns CastExpression
544 * AssertionOrDefinition.MetricDefinition_1_2_0 returns CastExpression 587 * AssertionOrDefinition.FunctionDefinition_1_2_0 returns CastExpression
545 * Expression returns CastExpression 588 * Expression returns CastExpression
546 * ImplicationExpression returns CastExpression 589 * Expression.Forall_2_1_0 returns CastExpression
547 * ImplicationExpression.BinaryExpression_1_0 returns CastExpression
548 * DisjunctiveExpression returns CastExpression 590 * DisjunctiveExpression returns CastExpression
549 * DisjunctiveExpression.Disjunction_1_0_0 returns CastExpression 591 * DisjunctiveExpression.Disjunction_1_0_0 returns CastExpression
550 * DisjunctiveExpression.Case_1_1_0 returns CastExpression 592 * DisjunctiveExpression.Case_1_1_0 returns CastExpression
551 * ConjunctiveExpression returns CastExpression 593 * ConjunctiveExpression returns CastExpression
552 * ConjunctiveExpression.Conjunction_1_0 returns CastExpression 594 * ConjunctiveExpression.Conjunction_1_0 returns CastExpression
553 * ComparisonExpression returns CastExpression 595 * ComparisonExpression returns CastExpression
554 * ComparisonExpression.Comparison_1_0 returns CastExpression 596 * ComparisonExpression.BinaryExpression_1_0 returns CastExpression
555 * AdditiveExpression returns CastExpression 597 * AdditiveExpression returns CastExpression
556 * AdditiveExpression.BinaryExpression_1_0 returns CastExpression 598 * AdditiveExpression.BinaryExpression_1_0 returns CastExpression
557 * MultiplicativeExpression returns CastExpression 599 * MultiplicativeExpression returns CastExpression
@@ -561,110 +603,100 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
561 * CastExpression returns CastExpression 603 * CastExpression returns CastExpression
562 * CastExpression.CastExpression_1_0 returns CastExpression 604 * CastExpression.CastExpression_1_0 returns CastExpression
563 * UnaryExpression returns CastExpression 605 * UnaryExpression returns CastExpression
564 * AggregationExpression returns CastExpression 606 * BracedAggregateExpression returns CastExpression
565 * AtomicExpression returns CastExpression 607 * AtomicExpression returns CastExpression
566 * 608 *
567 * Constraint: 609 * Constraint:
568 * (body=CastExpression_CastExpression_1_0 type=[NamedElement|QualifiedName]) 610 * (body=CastExpression_CastExpression_1_0 targetType=[Symbol|QualifiedName])
569 */ 611 */
570 protected void sequence_CastExpression(ISerializationContext context, CastExpression semanticObject) { 612 protected void sequence_CastExpression(ISerializationContext context, CastExpression semanticObject) {
571 if (errorAcceptor != null) { 613 if (errorAcceptor != null) {
572 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CAST_EXPRESSION__BODY) == ValueTransient.YES) 614 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CAST_EXPRESSION__BODY) == ValueTransient.YES)
573 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CAST_EXPRESSION__BODY)); 615 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CAST_EXPRESSION__BODY));
574 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CAST_EXPRESSION__TYPE) == ValueTransient.YES) 616 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CAST_EXPRESSION__TARGET_TYPE) == ValueTransient.YES)
575 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CAST_EXPRESSION__TYPE)); 617 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CAST_EXPRESSION__TARGET_TYPE));
576 } 618 }
577 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 619 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
578 feeder.accept(grammarAccess.getCastExpressionAccess().getCastExpressionBodyAction_1_0(), semanticObject.getBody()); 620 feeder.accept(grammarAccess.getCastExpressionAccess().getCastExpressionBodyAction_1_0(), semanticObject.getBody());
579 feeder.accept(grammarAccess.getCastExpressionAccess().getTypeNamedElementQualifiedNameParserRuleCall_1_2_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.CAST_EXPRESSION__TYPE, false)); 621 feeder.accept(grammarAccess.getCastExpressionAccess().getTargetTypeSymbolQualifiedNameParserRuleCall_1_2_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.CAST_EXPRESSION__TARGET_TYPE, false));
580 feeder.finish(); 622 feeder.finish();
581 } 623 }
582 624
583 625
584 /** 626 /**
585 * Contexts: 627 * Contexts:
586 * Statement returns ClassDefinition 628 * Statement returns ClassDeclaration
587 * ClassDefinition returns ClassDefinition 629 * ClassDeclaration returns ClassDeclaration
588 * 630 *
589 * Constraint: 631 * Constraint:
590 * ( 632 * ((abstract?='abstract' | root?='root')* name=ID (supertypes+=[Symbol|QualifiedName] supertypes+=[Symbol|QualifiedName]*)? fields+=Field*)
591 * abstract?='abstract'?
592 * name=ID
593 * (superclasses+=[NamedElement|QualifiedName] superclasses+=[NamedElement|QualifiedName]*)?
594 * members+=MemberDefinition*
595 * )
596 */ 633 */
597 protected void sequence_ClassDefinition(ISerializationContext context, ClassDefinition semanticObject) { 634 protected void sequence_ClassDeclaration(ISerializationContext context, ClassDeclaration semanticObject) {
598 genericSequencer.createSequence(context, semanticObject); 635 genericSequencer.createSequence(context, semanticObject);
599 } 636 }
600 637
601 638
602 /** 639 /**
603 * Contexts: 640 * Contexts:
604 * Statement returns Comparison 641 * AssertionOrDefinition.Assertion_1_0_0 returns ConditionalExpression
605 * AssertionOrDefinition returns Comparison 642 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns ConditionalExpression
606 * AssertionOrDefinition.Interpretation_1_0_0 returns Comparison 643 * AssertionOrDefinition.FunctionDefinition_1_2_0 returns ConditionalExpression
607 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Comparison 644 * Expression returns ConditionalExpression
608 * AssertionOrDefinition.MetricDefinition_1_2_0 returns Comparison 645 * Expression.Forall_2_1_0 returns ConditionalExpression
609 * Expression returns Comparison 646 * ConditionalExpression returns ConditionalExpression
610 * ImplicationExpression returns Comparison 647 * DisjunctiveExpression returns ConditionalExpression
611 * ImplicationExpression.BinaryExpression_1_0 returns Comparison 648 * DisjunctiveExpression.Disjunction_1_0_0 returns ConditionalExpression
612 * DisjunctiveExpression returns Comparison 649 * DisjunctiveExpression.Case_1_1_0 returns ConditionalExpression
613 * DisjunctiveExpression.Disjunction_1_0_0 returns Comparison 650 * ConjunctiveExpression returns ConditionalExpression
614 * DisjunctiveExpression.Case_1_1_0 returns Comparison 651 * ConjunctiveExpression.Conjunction_1_0 returns ConditionalExpression
615 * ConjunctiveExpression returns Comparison 652 * ComparisonExpression returns ConditionalExpression
616 * ConjunctiveExpression.Conjunction_1_0 returns Comparison 653 * ComparisonExpression.BinaryExpression_1_0 returns ConditionalExpression
617 * ComparisonExpression returns Comparison 654 * AdditiveExpression returns ConditionalExpression
618 * ComparisonExpression.Comparison_1_0 returns Comparison 655 * AdditiveExpression.BinaryExpression_1_0 returns ConditionalExpression
619 * AdditiveExpression returns Comparison 656 * MultiplicativeExpression returns ConditionalExpression
620 * AdditiveExpression.BinaryExpression_1_0 returns Comparison 657 * MultiplicativeExpression.BinaryExpression_1_0 returns ConditionalExpression
621 * MultiplicativeExpression returns Comparison 658 * ExponentialExpression returns ConditionalExpression
622 * MultiplicativeExpression.BinaryExpression_1_0 returns Comparison 659 * ExponentialExpression.BinaryExpression_1_0 returns ConditionalExpression
623 * ExponentialExpression returns Comparison 660 * CastExpression returns ConditionalExpression
624 * ExponentialExpression.BinaryExpression_1_0 returns Comparison 661 * CastExpression.CastExpression_1_0 returns ConditionalExpression
625 * CastExpression returns Comparison 662 * UnaryExpression returns ConditionalExpression
626 * CastExpression.CastExpression_1_0 returns Comparison 663 * BracedAggregateExpression returns ConditionalExpression
627 * UnaryExpression returns Comparison 664 * AtomicExpression returns ConditionalExpression
628 * AggregationExpression returns Comparison
629 * AtomicExpression returns Comparison
630 * 665 *
631 * Constraint: 666 * Constraint:
632 * (left=ComparisonExpression_Comparison_1_0 op=ComparisonOperator right=AdditiveExpression) 667 * (condition=DisjunctiveExpression then=Expression else=Expression)
633 */ 668 */
634 protected void sequence_ComparisonExpression(ISerializationContext context, Comparison semanticObject) { 669 protected void sequence_ConditionalExpression(ISerializationContext context, ConditionalExpression semanticObject) {
635 if (errorAcceptor != null) { 670 if (errorAcceptor != null) {
636 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.COMPARISON__LEFT) == ValueTransient.YES) 671 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CONDITIONAL_EXPRESSION__CONDITION) == ValueTransient.YES)
637 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.COMPARISON__LEFT)); 672 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CONDITIONAL_EXPRESSION__CONDITION));
638 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.COMPARISON__OP) == ValueTransient.YES) 673 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CONDITIONAL_EXPRESSION__THEN) == ValueTransient.YES)
639 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.COMPARISON__OP)); 674 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CONDITIONAL_EXPRESSION__THEN));
640 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.COMPARISON__RIGHT) == ValueTransient.YES) 675 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CONDITIONAL_EXPRESSION__ELSE) == ValueTransient.YES)
641 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.COMPARISON__RIGHT)); 676 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CONDITIONAL_EXPRESSION__ELSE));
642 } 677 }
643 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 678 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
644 feeder.accept(grammarAccess.getComparisonExpressionAccess().getComparisonLeftAction_1_0(), semanticObject.getLeft()); 679 feeder.accept(grammarAccess.getConditionalExpressionAccess().getConditionDisjunctiveExpressionParserRuleCall_1_0(), semanticObject.getCondition());
645 feeder.accept(grammarAccess.getComparisonExpressionAccess().getOpComparisonOperatorEnumRuleCall_1_1_0(), semanticObject.getOp()); 680 feeder.accept(grammarAccess.getConditionalExpressionAccess().getThenExpressionParserRuleCall_3_0(), semanticObject.getThen());
646 feeder.accept(grammarAccess.getComparisonExpressionAccess().getRightAdditiveExpressionParserRuleCall_1_2_0(), semanticObject.getRight()); 681 feeder.accept(grammarAccess.getConditionalExpressionAccess().getElseExpressionParserRuleCall_5_0(), semanticObject.getElse());
647 feeder.finish(); 682 feeder.finish();
648 } 683 }
649 684
650 685
651 /** 686 /**
652 * Contexts: 687 * Contexts:
653 * Statement returns Conjunction 688 * AssertionOrDefinition.Assertion_1_0_0 returns Conjunction
654 * AssertionOrDefinition returns Conjunction
655 * AssertionOrDefinition.Interpretation_1_0_0 returns Conjunction
656 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Conjunction 689 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Conjunction
657 * AssertionOrDefinition.MetricDefinition_1_2_0 returns Conjunction 690 * AssertionOrDefinition.FunctionDefinition_1_2_0 returns Conjunction
658 * Expression returns Conjunction 691 * Expression returns Conjunction
659 * ImplicationExpression returns Conjunction 692 * Expression.Forall_2_1_0 returns Conjunction
660 * ImplicationExpression.BinaryExpression_1_0 returns Conjunction
661 * DisjunctiveExpression returns Conjunction 693 * DisjunctiveExpression returns Conjunction
662 * DisjunctiveExpression.Disjunction_1_0_0 returns Conjunction 694 * DisjunctiveExpression.Disjunction_1_0_0 returns Conjunction
663 * DisjunctiveExpression.Case_1_1_0 returns Conjunction 695 * DisjunctiveExpression.Case_1_1_0 returns Conjunction
664 * ConjunctiveExpression returns Conjunction 696 * ConjunctiveExpression returns Conjunction
665 * ConjunctiveExpression.Conjunction_1_0 returns Conjunction 697 * ConjunctiveExpression.Conjunction_1_0 returns Conjunction
666 * ComparisonExpression returns Conjunction 698 * ComparisonExpression returns Conjunction
667 * ComparisonExpression.Comparison_1_0 returns Conjunction 699 * ComparisonExpression.BinaryExpression_1_0 returns Conjunction
668 * AdditiveExpression returns Conjunction 700 * AdditiveExpression returns Conjunction
669 * AdditiveExpression.BinaryExpression_1_0 returns Conjunction 701 * AdditiveExpression.BinaryExpression_1_0 returns Conjunction
670 * MultiplicativeExpression returns Conjunction 702 * MultiplicativeExpression returns Conjunction
@@ -674,7 +706,7 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
674 * CastExpression returns Conjunction 706 * CastExpression returns Conjunction
675 * CastExpression.CastExpression_1_0 returns Conjunction 707 * CastExpression.CastExpression_1_0 returns Conjunction
676 * UnaryExpression returns Conjunction 708 * UnaryExpression returns Conjunction
677 * AggregationExpression returns Conjunction 709 * BracedAggregateExpression returns Conjunction
678 * AtomicExpression returns Conjunction 710 * AtomicExpression returns Conjunction
679 * 711 *
680 * Constraint: 712 * Constraint:
@@ -687,43 +719,72 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
687 719
688 /** 720 /**
689 * Contexts: 721 * Contexts:
690 * Statement returns DefaultDefinition 722 * AssertionOrDefinition.Assertion_1_0_0 returns Count
691 * DefaultDefinition returns DefaultDefinition 723 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Count
724 * AssertionOrDefinition.FunctionDefinition_1_2_0 returns Count
725 * Expression returns Count
726 * Expression.Forall_2_1_0 returns Count
727 * DisjunctiveExpression returns Count
728 * DisjunctiveExpression.Disjunction_1_0_0 returns Count
729 * DisjunctiveExpression.Case_1_1_0 returns Count
730 * ConjunctiveExpression returns Count
731 * ConjunctiveExpression.Conjunction_1_0 returns Count
732 * ComparisonExpression returns Count
733 * ComparisonExpression.BinaryExpression_1_0 returns Count
734 * AdditiveExpression returns Count
735 * AdditiveExpression.BinaryExpression_1_0 returns Count
736 * MultiplicativeExpression returns Count
737 * MultiplicativeExpression.BinaryExpression_1_0 returns Count
738 * ExponentialExpression returns Count
739 * ExponentialExpression.BinaryExpression_1_0 returns Count
740 * CastExpression returns Count
741 * CastExpression.CastExpression_1_0 returns Count
742 * UnaryExpression returns Count
743 * BracedAggregateExpression returns Count
744 * Count returns Count
745 * AtomicExpression returns Count
692 * 746 *
693 * Constraint: 747 * Constraint:
694 * (head=Call range=Expression) 748 * condition=Expression
695 */ 749 */
696 protected void sequence_DefaultDefinition(ISerializationContext context, DefaultDefinition semanticObject) { 750 protected void sequence_Count(ISerializationContext context, Count semanticObject) {
697 if (errorAcceptor != null) { 751 if (errorAcceptor != null) {
698 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.DEFAULT_DEFINITION__HEAD) == ValueTransient.YES) 752 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.AGGREGATE_EXPRESSION__CONDITION) == ValueTransient.YES)
699 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.DEFAULT_DEFINITION__HEAD)); 753 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.AGGREGATE_EXPRESSION__CONDITION));
700 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.DEFAULT_DEFINITION__RANGE) == ValueTransient.YES)
701 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.DEFAULT_DEFINITION__RANGE));
702 } 754 }
703 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 755 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
704 feeder.accept(grammarAccess.getDefaultDefinitionAccess().getHeadCallParserRuleCall_1_0(), semanticObject.getHead()); 756 feeder.accept(grammarAccess.getCountAccess().getConditionExpressionParserRuleCall_2_0(), semanticObject.getCondition());
705 feeder.accept(grammarAccess.getDefaultDefinitionAccess().getRangeExpressionParserRuleCall_3_0(), semanticObject.getRange());
706 feeder.finish(); 757 feeder.finish();
707 } 758 }
708 759
709 760
710 /** 761 /**
711 * Contexts: 762 * Contexts:
712 * Statement returns Disjunction 763 * Statement returns DefaultAssertion
713 * AssertionOrDefinition returns Disjunction 764 * DefaultAssertion returns DefaultAssertion
714 * AssertionOrDefinition.Interpretation_1_0_0 returns Disjunction 765 *
766 * Constraint:
767 * (expression=Call range=Expression?)
768 */
769 protected void sequence_DefaultAssertion(ISerializationContext context, DefaultAssertion semanticObject) {
770 genericSequencer.createSequence(context, semanticObject);
771 }
772
773
774 /**
775 * Contexts:
776 * AssertionOrDefinition.Assertion_1_0_0 returns Disjunction
715 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Disjunction 777 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Disjunction
716 * AssertionOrDefinition.MetricDefinition_1_2_0 returns Disjunction 778 * AssertionOrDefinition.FunctionDefinition_1_2_0 returns Disjunction
717 * Expression returns Disjunction 779 * Expression returns Disjunction
718 * ImplicationExpression returns Disjunction 780 * Expression.Forall_2_1_0 returns Disjunction
719 * ImplicationExpression.BinaryExpression_1_0 returns Disjunction
720 * DisjunctiveExpression returns Disjunction 781 * DisjunctiveExpression returns Disjunction
721 * DisjunctiveExpression.Disjunction_1_0_0 returns Disjunction 782 * DisjunctiveExpression.Disjunction_1_0_0 returns Disjunction
722 * DisjunctiveExpression.Case_1_1_0 returns Disjunction 783 * DisjunctiveExpression.Case_1_1_0 returns Disjunction
723 * ConjunctiveExpression returns Disjunction 784 * ConjunctiveExpression returns Disjunction
724 * ConjunctiveExpression.Conjunction_1_0 returns Disjunction 785 * ConjunctiveExpression.Conjunction_1_0 returns Disjunction
725 * ComparisonExpression returns Disjunction 786 * ComparisonExpression returns Disjunction
726 * ComparisonExpression.Comparison_1_0 returns Disjunction 787 * ComparisonExpression.BinaryExpression_1_0 returns Disjunction
727 * AdditiveExpression returns Disjunction 788 * AdditiveExpression returns Disjunction
728 * AdditiveExpression.BinaryExpression_1_0 returns Disjunction 789 * AdditiveExpression.BinaryExpression_1_0 returns Disjunction
729 * MultiplicativeExpression returns Disjunction 790 * MultiplicativeExpression returns Disjunction
@@ -733,7 +794,7 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
733 * CastExpression returns Disjunction 794 * CastExpression returns Disjunction
734 * CastExpression.CastExpression_1_0 returns Disjunction 795 * CastExpression.CastExpression_1_0 returns Disjunction
735 * UnaryExpression returns Disjunction 796 * UnaryExpression returns Disjunction
736 * AggregationExpression returns Disjunction 797 * BracedAggregateExpression returns Disjunction
737 * AtomicExpression returns Disjunction 798 * AtomicExpression returns Disjunction
738 * 799 *
739 * Constraint: 800 * Constraint:
@@ -746,21 +807,18 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
746 807
747 /** 808 /**
748 * Contexts: 809 * Contexts:
749 * Statement returns Switch 810 * AssertionOrDefinition.Assertion_1_0_0 returns Switch
750 * AssertionOrDefinition returns Switch
751 * AssertionOrDefinition.Interpretation_1_0_0 returns Switch
752 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Switch 811 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Switch
753 * AssertionOrDefinition.MetricDefinition_1_2_0 returns Switch 812 * AssertionOrDefinition.FunctionDefinition_1_2_0 returns Switch
754 * Expression returns Switch 813 * Expression returns Switch
755 * ImplicationExpression returns Switch 814 * Expression.Forall_2_1_0 returns Switch
756 * ImplicationExpression.BinaryExpression_1_0 returns Switch
757 * DisjunctiveExpression returns Switch 815 * DisjunctiveExpression returns Switch
758 * DisjunctiveExpression.Disjunction_1_0_0 returns Switch 816 * DisjunctiveExpression.Disjunction_1_0_0 returns Switch
759 * DisjunctiveExpression.Case_1_1_0 returns Switch 817 * DisjunctiveExpression.Case_1_1_0 returns Switch
760 * ConjunctiveExpression returns Switch 818 * ConjunctiveExpression returns Switch
761 * ConjunctiveExpression.Conjunction_1_0 returns Switch 819 * ConjunctiveExpression.Conjunction_1_0 returns Switch
762 * ComparisonExpression returns Switch 820 * ComparisonExpression returns Switch
763 * ComparisonExpression.Comparison_1_0 returns Switch 821 * ComparisonExpression.BinaryExpression_1_0 returns Switch
764 * AdditiveExpression returns Switch 822 * AdditiveExpression returns Switch
765 * AdditiveExpression.BinaryExpression_1_0 returns Switch 823 * AdditiveExpression.BinaryExpression_1_0 returns Switch
766 * MultiplicativeExpression returns Switch 824 * MultiplicativeExpression returns Switch
@@ -770,7 +828,7 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
770 * CastExpression returns Switch 828 * CastExpression returns Switch
771 * CastExpression.CastExpression_1_0 returns Switch 829 * CastExpression.CastExpression_1_0 returns Switch
772 * UnaryExpression returns Switch 830 * UnaryExpression returns Switch
773 * AggregationExpression returns Switch 831 * BracedAggregateExpression returns Switch
774 * AtomicExpression returns Switch 832 * AtomicExpression returns Switch
775 * 833 *
776 * Constraint: 834 * Constraint:
@@ -804,81 +862,109 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
804 862
805 /** 863 /**
806 * Contexts: 864 * Contexts:
807 * Statement returns EmptyIntervalLiteral 865 * AssertionOrDefinition.Assertion_1_0_0 returns EmptyLiteral
808 * AssertionOrDefinition returns EmptyIntervalLiteral 866 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns EmptyLiteral
809 * AssertionOrDefinition.Interpretation_1_0_0 returns EmptyIntervalLiteral 867 * AssertionOrDefinition.FunctionDefinition_1_2_0 returns EmptyLiteral
810 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns EmptyIntervalLiteral 868 * Expression returns EmptyLiteral
811 * AssertionOrDefinition.MetricDefinition_1_2_0 returns EmptyIntervalLiteral 869 * Expression.Forall_2_1_0 returns EmptyLiteral
812 * Expression returns EmptyIntervalLiteral 870 * DisjunctiveExpression returns EmptyLiteral
813 * ImplicationExpression returns EmptyIntervalLiteral 871 * DisjunctiveExpression.Disjunction_1_0_0 returns EmptyLiteral
814 * ImplicationExpression.BinaryExpression_1_0 returns EmptyIntervalLiteral 872 * DisjunctiveExpression.Case_1_1_0 returns EmptyLiteral
815 * DisjunctiveExpression returns EmptyIntervalLiteral 873 * ConjunctiveExpression returns EmptyLiteral
816 * DisjunctiveExpression.Disjunction_1_0_0 returns EmptyIntervalLiteral 874 * ConjunctiveExpression.Conjunction_1_0 returns EmptyLiteral
817 * DisjunctiveExpression.Case_1_1_0 returns EmptyIntervalLiteral 875 * ComparisonExpression returns EmptyLiteral
818 * ConjunctiveExpression returns EmptyIntervalLiteral 876 * ComparisonExpression.BinaryExpression_1_0 returns EmptyLiteral
819 * ConjunctiveExpression.Conjunction_1_0 returns EmptyIntervalLiteral 877 * AdditiveExpression returns EmptyLiteral
820 * ComparisonExpression returns EmptyIntervalLiteral 878 * AdditiveExpression.BinaryExpression_1_0 returns EmptyLiteral
821 * ComparisonExpression.Comparison_1_0 returns EmptyIntervalLiteral 879 * MultiplicativeExpression returns EmptyLiteral
822 * AdditiveExpression returns EmptyIntervalLiteral 880 * MultiplicativeExpression.BinaryExpression_1_0 returns EmptyLiteral
823 * AdditiveExpression.BinaryExpression_1_0 returns EmptyIntervalLiteral 881 * ExponentialExpression returns EmptyLiteral
824 * MultiplicativeExpression returns EmptyIntervalLiteral 882 * ExponentialExpression.BinaryExpression_1_0 returns EmptyLiteral
825 * MultiplicativeExpression.BinaryExpression_1_0 returns EmptyIntervalLiteral 883 * CastExpression returns EmptyLiteral
826 * ExponentialExpression returns EmptyIntervalLiteral 884 * CastExpression.CastExpression_1_0 returns EmptyLiteral
827 * ExponentialExpression.BinaryExpression_1_0 returns EmptyIntervalLiteral 885 * UnaryExpression returns EmptyLiteral
828 * CastExpression returns EmptyIntervalLiteral 886 * BracedAggregateExpression returns EmptyLiteral
829 * CastExpression.CastExpression_1_0 returns EmptyIntervalLiteral 887 * AtomicExpression returns EmptyLiteral
830 * UnaryExpression returns EmptyIntervalLiteral 888 * Literal returns EmptyLiteral
831 * AggregationExpression returns EmptyIntervalLiteral 889 * EmptyLiteral returns EmptyLiteral
832 * AtomicExpression returns EmptyIntervalLiteral
833 * Literal returns EmptyIntervalLiteral
834 * EmptyIntervalLiteral returns EmptyIntervalLiteral
835 * 890 *
836 * Constraint: 891 * Constraint:
837 * {EmptyIntervalLiteral} 892 * {EmptyLiteral}
838 */ 893 */
839 protected void sequence_EmptyIntervalLiteral(ISerializationContext context, EmptyIntervalLiteral semanticObject) { 894 protected void sequence_EmptyLiteral(ISerializationContext context, EmptyLiteral semanticObject) {
840 genericSequencer.createSequence(context, semanticObject); 895 genericSequencer.createSequence(context, semanticObject);
841 } 896 }
842 897
843 898
844 /** 899 /**
845 * Contexts: 900 * Contexts:
901 * Statement returns EnumDeclaration
902 * EnumDeclaration returns EnumDeclaration
903 *
904 * Constraint:
905 * (name=ID (literals+=EnumLiteral literals+=EnumLiteral*)?)
906 */
907 protected void sequence_EnumDeclaration(ISerializationContext context, EnumDeclaration semanticObject) {
908 genericSequencer.createSequence(context, semanticObject);
909 }
910
911
912 /**
913 * Contexts:
914 * EnumLiteral returns EnumLiteral
915 *
916 * Constraint:
917 * name=ID
918 */
919 protected void sequence_EnumLiteral(ISerializationContext context, EnumLiteral semanticObject) {
920 if (errorAcceptor != null) {
921 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.ENUM_LITERAL__NAME) == ValueTransient.YES)
922 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.ENUM_LITERAL__NAME));
923 }
924 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
925 feeder.accept(grammarAccess.getEnumLiteralAccess().getNameIDTerminalRuleCall_0(), semanticObject.getName());
926 feeder.finish();
927 }
928
929
930 /**
931 * Contexts:
846 * Multiplicity returns ExactMultiplicity 932 * Multiplicity returns ExactMultiplicity
847 * ExactMultiplicity returns ExactMultiplicity 933 * ExactMultiplicity returns ExactMultiplicity
848 * 934 *
849 * Constraint: 935 * Constraint:
850 * multiplicity=UpperMultiplicty 936 * value=UpperMultiplicty
851 */ 937 */
852 protected void sequence_ExactMultiplicity(ISerializationContext context, ExactMultiplicity semanticObject) { 938 protected void sequence_ExactMultiplicity(ISerializationContext context, ExactMultiplicity semanticObject) {
853 if (errorAcceptor != null) { 939 if (errorAcceptor != null) {
854 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXACT_MULTIPLICITY__MULTIPLICITY) == ValueTransient.YES) 940 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXACT_MULTIPLICITY__VALUE) == ValueTransient.YES)
855 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXACT_MULTIPLICITY__MULTIPLICITY)); 941 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXACT_MULTIPLICITY__VALUE));
856 } 942 }
857 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 943 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
858 feeder.accept(grammarAccess.getExactMultiplicityAccess().getMultiplicityUpperMultiplictyParserRuleCall_1_0(), semanticObject.getMultiplicity()); 944 feeder.accept(grammarAccess.getExactMultiplicityAccess().getValueUpperMultiplictyParserRuleCall_1_0(), semanticObject.getValue());
859 feeder.finish(); 945 feeder.finish();
860 } 946 }
861 947
862 948
863 /** 949 /**
864 * Contexts: 950 * Contexts:
865 * Statement returns ExactScopeDefinition 951 * Statement returns ExactScope
866 * ScopeDefinition returns ExactScopeDefinition 952 * ScopeDeclaration returns ExactScope
867 * ExactScopeDefinition returns ExactScopeDefinition 953 * ExactScope returns ExactScope
868 * 954 *
869 * Constraint: 955 * Constraint:
870 * (type=[NamedElement|QualifiedName] exactScope=INT) 956 * (type=[Symbol|QualifiedName] size=INT)
871 */ 957 */
872 protected void sequence_ExactScopeDefinition(ISerializationContext context, ExactScopeDefinition semanticObject) { 958 protected void sequence_ExactScope(ISerializationContext context, ExactScope semanticObject) {
873 if (errorAcceptor != null) { 959 if (errorAcceptor != null) {
874 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.SCOPE_DEFINITION__TYPE) == ValueTransient.YES) 960 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.SCOPE_DECLARATION__TYPE) == ValueTransient.YES)
875 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.SCOPE_DEFINITION__TYPE)); 961 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.SCOPE_DECLARATION__TYPE));
876 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXACT_SCOPE_DEFINITION__EXACT_SCOPE) == ValueTransient.YES) 962 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXACT_SCOPE__SIZE) == ValueTransient.YES)
877 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXACT_SCOPE_DEFINITION__EXACT_SCOPE)); 963 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXACT_SCOPE__SIZE));
878 } 964 }
879 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 965 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
880 feeder.accept(grammarAccess.getExactScopeDefinitionAccess().getTypeNamedElementQualifiedNameParserRuleCall_1_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.SCOPE_DEFINITION__TYPE, false)); 966 feeder.accept(grammarAccess.getExactScopeAccess().getTypeSymbolQualifiedNameParserRuleCall_1_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.SCOPE_DECLARATION__TYPE, false));
881 feeder.accept(grammarAccess.getExactScopeDefinitionAccess().getExactScopeINTTerminalRuleCall_3_0(), semanticObject.getExactScope()); 967 feeder.accept(grammarAccess.getExactScopeAccess().getSizeINTTerminalRuleCall_3_0(), semanticObject.getSize());
882 feeder.finish(); 968 feeder.finish();
883 } 969 }
884 970
@@ -889,171 +975,204 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
889 * ExpressionArgument returns ExpressionArgument 975 * ExpressionArgument returns ExpressionArgument
890 * 976 *
891 * Constraint: 977 * Constraint:
892 * body=ComparisonExpression 978 * expression=ComparisonExpression
893 */ 979 */
894 protected void sequence_ExpressionArgument(ISerializationContext context, ExpressionArgument semanticObject) { 980 protected void sequence_ExpressionArgument(ISerializationContext context, ExpressionArgument semanticObject) {
895 if (errorAcceptor != null) { 981 if (errorAcceptor != null) {
896 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXPRESSION_ARGUMENT__BODY) == ValueTransient.YES) 982 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXPRESSION_ARGUMENT__EXPRESSION) == ValueTransient.YES)
897 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXPRESSION_ARGUMENT__BODY)); 983 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXPRESSION_ARGUMENT__EXPRESSION));
898 } 984 }
899 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 985 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
900 feeder.accept(grammarAccess.getExpressionArgumentAccess().getBodyComparisonExpressionParserRuleCall_0(), semanticObject.getBody()); 986 feeder.accept(grammarAccess.getExpressionArgumentAccess().getExpressionComparisonExpressionParserRuleCall_0(), semanticObject.getExpression());
901 feeder.finish(); 987 feeder.finish();
902 } 988 }
903 989
904 990
905 /** 991 /**
906 * Contexts: 992 * Contexts:
907 * Statement returns ExternAggregatorDefinition 993 * AssertionOrDefinition.Assertion_1_0_0 returns Forall
908 * ExternAggregatorDefinition returns ExternAggregatorDefinition 994 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Forall
995 * AssertionOrDefinition.FunctionDefinition_1_2_0 returns Forall
996 * Expression returns Forall
997 * Expression.Forall_2_1_0 returns Forall
998 * DisjunctiveExpression returns Forall
999 * DisjunctiveExpression.Disjunction_1_0_0 returns Forall
1000 * DisjunctiveExpression.Case_1_1_0 returns Forall
1001 * ConjunctiveExpression returns Forall
1002 * ConjunctiveExpression.Conjunction_1_0 returns Forall
1003 * ComparisonExpression returns Forall
1004 * ComparisonExpression.BinaryExpression_1_0 returns Forall
1005 * AdditiveExpression returns Forall
1006 * AdditiveExpression.BinaryExpression_1_0 returns Forall
1007 * MultiplicativeExpression returns Forall
1008 * MultiplicativeExpression.BinaryExpression_1_0 returns Forall
1009 * ExponentialExpression returns Forall
1010 * ExponentialExpression.BinaryExpression_1_0 returns Forall
1011 * CastExpression returns Forall
1012 * CastExpression.CastExpression_1_0 returns Forall
1013 * UnaryExpression returns Forall
1014 * BracedAggregateExpression returns Forall
1015 * AtomicExpression returns Forall
909 * 1016 *
910 * Constraint: 1017 * Constraint:
911 * (type=[NamedElement|QualifiedName] name=QualifiedName inputType=[NamedElement|QualifiedName]) 1018 * (condition=Expression_Forall_2_1_0 body=DisjunctiveExpression)
912 */ 1019 */
913 protected void sequence_ExternAggregatorDefinition(ISerializationContext context, ExternAggregatorDefinition semanticObject) { 1020 protected void sequence_Expression(ISerializationContext context, Forall semanticObject) {
914 if (errorAcceptor != null) { 1021 if (errorAcceptor != null) {
915 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_AGGREGATOR_DEFINITION__TYPE) == ValueTransient.YES) 1022 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.AGGREGATE_EXPRESSION__CONDITION) == ValueTransient.YES)
916 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_AGGREGATOR_DEFINITION__TYPE)); 1023 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.AGGREGATE_EXPRESSION__CONDITION));
917 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_AGGREGATOR_DEFINITION__NAME) == ValueTransient.YES) 1024 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.FORALL__BODY) == ValueTransient.YES)
918 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_AGGREGATOR_DEFINITION__NAME)); 1025 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.FORALL__BODY));
919 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_AGGREGATOR_DEFINITION__INPUT_TYPE) == ValueTransient.YES)
920 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_AGGREGATOR_DEFINITION__INPUT_TYPE));
921 } 1026 }
922 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 1027 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
923 feeder.accept(grammarAccess.getExternAggregatorDefinitionAccess().getTypeNamedElementQualifiedNameParserRuleCall_1_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.EXTERN_AGGREGATOR_DEFINITION__TYPE, false)); 1028 feeder.accept(grammarAccess.getExpressionAccess().getForallConditionAction_2_1_0(), semanticObject.getCondition());
924 feeder.accept(grammarAccess.getExternAggregatorDefinitionAccess().getNameQualifiedNameParserRuleCall_2_0(), semanticObject.getName()); 1029 feeder.accept(grammarAccess.getExpressionAccess().getBodyDisjunctiveExpressionParserRuleCall_2_1_2_0(), semanticObject.getBody());
925 feeder.accept(grammarAccess.getExternAggregatorDefinitionAccess().getInputTypeNamedElementQualifiedNameParserRuleCall_4_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.EXTERN_AGGREGATOR_DEFINITION__INPUT_TYPE, false));
926 feeder.finish(); 1030 feeder.finish();
927 } 1031 }
928 1032
929 1033
930 /** 1034 /**
931 * Contexts: 1035 * Contexts:
932 * Statement returns ExternDatatypeDefinition 1036 * Statement returns ExternAggregationOperatorDeclaration
933 * ExternDatatypeDefinition returns ExternDatatypeDefinition 1037 * ExternDeclaration returns ExternAggregationOperatorDeclaration
1038 * ExternAggregationOperatorDeclaration returns ExternAggregationOperatorDeclaration
934 * 1039 *
935 * Constraint: 1040 * Constraint:
936 * (name=QualifiedName supertypes+=[NamedElement|QualifiedName] supertypes+=[NamedElement|QualifiedName]*) 1041 * (resultType=[Symbol|QualifiedName] name=QualifiedName argumentType=[Symbol|QualifiedName])
937 */ 1042 */
938 protected void sequence_ExternDatatypeDefinition(ISerializationContext context, ExternDatatypeDefinition semanticObject) { 1043 protected void sequence_ExternAggregationOperatorDeclaration(ISerializationContext context, ExternAggregationOperatorDeclaration semanticObject) {
939 genericSequencer.createSequence(context, semanticObject); 1044 if (errorAcceptor != null) {
1045 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_AGGREGATION_OPERATOR_DECLARATION__RESULT_TYPE) == ValueTransient.YES)
1046 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_AGGREGATION_OPERATOR_DECLARATION__RESULT_TYPE));
1047 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_DECLARATION__NAME) == ValueTransient.YES)
1048 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_DECLARATION__NAME));
1049 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_AGGREGATION_OPERATOR_DECLARATION__ARGUMENT_TYPE) == ValueTransient.YES)
1050 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_AGGREGATION_OPERATOR_DECLARATION__ARGUMENT_TYPE));
1051 }
1052 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1053 feeder.accept(grammarAccess.getExternAggregationOperatorDeclarationAccess().getResultTypeSymbolQualifiedNameParserRuleCall_1_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.EXTERN_AGGREGATION_OPERATOR_DECLARATION__RESULT_TYPE, false));
1054 feeder.accept(grammarAccess.getExternAggregationOperatorDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0(), semanticObject.getName());
1055 feeder.accept(grammarAccess.getExternAggregationOperatorDeclarationAccess().getArgumentTypeSymbolQualifiedNameParserRuleCall_4_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.EXTERN_AGGREGATION_OPERATOR_DECLARATION__ARGUMENT_TYPE, false));
1056 feeder.finish();
940 } 1057 }
941 1058
942 1059
943 /** 1060 /**
944 * Contexts: 1061 * Contexts:
945 * Statement returns ExternMetricDefinition 1062 * Statement returns ExternDatatypeDeclaration
946 * ExternMetricDefinition returns ExternMetricDefinition 1063 * ExternDeclaration returns ExternDatatypeDeclaration
1064 * ExternDatatypeDeclaration returns ExternDatatypeDeclaration
947 * 1065 *
948 * Constraint: 1066 * Constraint:
949 * (type=[NamedElement|QualifiedName] name=QualifiedName argumentList=ArgumentList) 1067 * name=QualifiedName
950 */ 1068 */
951 protected void sequence_ExternMetricDefinition(ISerializationContext context, ExternMetricDefinition semanticObject) { 1069 protected void sequence_ExternDatatypeDeclaration(ISerializationContext context, ExternDatatypeDeclaration semanticObject) {
952 if (errorAcceptor != null) { 1070 if (errorAcceptor != null) {
953 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__TYPE) == ValueTransient.YES) 1071 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_DECLARATION__NAME) == ValueTransient.YES)
954 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__TYPE)); 1072 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_DECLARATION__NAME));
955 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__NAME) == ValueTransient.YES)
956 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__NAME));
957 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__ARGUMENT_LIST) == ValueTransient.YES)
958 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__ARGUMENT_LIST));
959 } 1073 }
960 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 1074 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
961 feeder.accept(grammarAccess.getExternMetricDefinitionAccess().getTypeNamedElementQualifiedNameParserRuleCall_1_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__TYPE, false)); 1075 feeder.accept(grammarAccess.getExternDatatypeDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0(), semanticObject.getName());
962 feeder.accept(grammarAccess.getExternMetricDefinitionAccess().getNameQualifiedNameParserRuleCall_2_0(), semanticObject.getName());
963 feeder.accept(grammarAccess.getExternMetricDefinitionAccess().getArgumentListArgumentListParserRuleCall_3_0(), semanticObject.getArgumentList());
964 feeder.finish(); 1076 feeder.finish();
965 } 1077 }
966 1078
967 1079
968 /** 1080 /**
969 * Contexts: 1081 * Contexts:
970 * Statement returns ExternPredicateDefinition 1082 * Statement returns ExternFunctionDeclaration
971 * ExternPredicateDefinition returns ExternPredicateDefinition 1083 * ExternDeclaration returns ExternFunctionDeclaration
1084 * ExternFunctionDeclaration returns ExternFunctionDeclaration
972 * 1085 *
973 * Constraint: 1086 * Constraint:
974 * (name=QualifiedName argumentList=ArgumentList) 1087 * (resultType=[Symbol|QualifiedName] name=QualifiedName argumentList=ArgumentList)
975 */ 1088 */
976 protected void sequence_ExternPredicateDefinition(ISerializationContext context, ExternPredicateDefinition semanticObject) { 1089 protected void sequence_ExternFunctionDeclaration(ISerializationContext context, ExternFunctionDeclaration semanticObject) {
977 if (errorAcceptor != null) { 1090 if (errorAcceptor != null) {
978 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_PREDICATE_DEFINITION__NAME) == ValueTransient.YES) 1091 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_FUNCTION_DECLARATION__RESULT_TYPE) == ValueTransient.YES)
979 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_PREDICATE_DEFINITION__NAME)); 1092 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_FUNCTION_DECLARATION__RESULT_TYPE));
980 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_PREDICATE_DEFINITION__ARGUMENT_LIST) == ValueTransient.YES) 1093 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_DECLARATION__NAME) == ValueTransient.YES)
981 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_PREDICATE_DEFINITION__ARGUMENT_LIST)); 1094 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_DECLARATION__NAME));
1095 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_FUNCTOR_DECLARATION__ARGUMENT_LIST) == ValueTransient.YES)
1096 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_FUNCTOR_DECLARATION__ARGUMENT_LIST));
982 } 1097 }
983 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 1098 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
984 feeder.accept(grammarAccess.getExternPredicateDefinitionAccess().getNameQualifiedNameParserRuleCall_1_0(), semanticObject.getName()); 1099 feeder.accept(grammarAccess.getExternFunctionDeclarationAccess().getResultTypeSymbolQualifiedNameParserRuleCall_1_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.EXTERN_FUNCTION_DECLARATION__RESULT_TYPE, false));
985 feeder.accept(grammarAccess.getExternPredicateDefinitionAccess().getArgumentListArgumentListParserRuleCall_2_0(), semanticObject.getArgumentList()); 1100 feeder.accept(grammarAccess.getExternFunctionDeclarationAccess().getNameQualifiedNameParserRuleCall_2_0(), semanticObject.getName());
1101 feeder.accept(grammarAccess.getExternFunctionDeclarationAccess().getArgumentListArgumentListParserRuleCall_3_0(), semanticObject.getArgumentList());
986 feeder.finish(); 1102 feeder.finish();
987 } 1103 }
988 1104
989 1105
990 /** 1106 /**
991 * Contexts: 1107 * Contexts:
992 * Statement returns IfElse 1108 * Statement returns ExternPredicateDeclaration
993 * AssertionOrDefinition returns IfElse 1109 * ExternDeclaration returns ExternPredicateDeclaration
994 * AssertionOrDefinition.Interpretation_1_0_0 returns IfElse 1110 * ExternPredicateDeclaration returns ExternPredicateDeclaration
995 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns IfElse 1111 *
996 * AssertionOrDefinition.MetricDefinition_1_2_0 returns IfElse 1112 * Constraint:
997 * Expression returns IfElse 1113 * ((functional?='functional' | error?='error')* name=QualifiedName argumentList=ArgumentList)
998 * IfElse returns IfElse 1114 */
999 * ImplicationExpression returns IfElse 1115 protected void sequence_ExternPredicateDeclaration(ISerializationContext context, ExternPredicateDeclaration semanticObject) {
1000 * ImplicationExpression.BinaryExpression_1_0 returns IfElse 1116 genericSequencer.createSequence(context, semanticObject);
1001 * DisjunctiveExpression returns IfElse 1117 }
1002 * DisjunctiveExpression.Disjunction_1_0_0 returns IfElse 1118
1003 * DisjunctiveExpression.Case_1_1_0 returns IfElse 1119
1004 * ConjunctiveExpression returns IfElse 1120 /**
1005 * ConjunctiveExpression.Conjunction_1_0 returns IfElse 1121 * Contexts:
1006 * ComparisonExpression returns IfElse 1122 * Field returns Field
1007 * ComparisonExpression.Comparison_1_0 returns IfElse 1123 *
1008 * AdditiveExpression returns IfElse 1124 * Constraint:
1009 * AdditiveExpression.BinaryExpression_1_0 returns IfElse 1125 * (
1010 * MultiplicativeExpression returns IfElse 1126 * (containment?='contains' | crossReference?='refers')?
1011 * MultiplicativeExpression.BinaryExpression_1_0 returns IfElse 1127 * type=[Symbol|QualifiedName]
1012 * ExponentialExpression returns IfElse 1128 * multiplicity=Multiplicity?
1013 * ExponentialExpression.BinaryExpression_1_0 returns IfElse 1129 * name=ID
1014 * CastExpression returns IfElse 1130 * opposite=[Symbol|QualifiedName]?
1015 * CastExpression.CastExpression_1_0 returns IfElse 1131 * )
1016 * UnaryExpression returns IfElse 1132 */
1017 * AggregationExpression returns IfElse 1133 protected void sequence_Field(ISerializationContext context, Field semanticObject) {
1018 * AtomicExpression returns IfElse 1134 genericSequencer.createSequence(context, semanticObject);
1135 }
1136
1137
1138 /**
1139 * Contexts:
1140 * FunctionDefinition returns FunctionDefinition
1019 * 1141 *
1020 * Constraint: 1142 * Constraint:
1021 * (condition=Expression then=Expression else=Expression) 1143 * (resultType=[Symbol|QualifiedName] head=Call body=Expression)
1022 */ 1144 */
1023 protected void sequence_IfElse(ISerializationContext context, IfElse semanticObject) { 1145 protected void sequence_FunctionDefinition(ISerializationContext context, FunctionDefinition semanticObject) {
1024 if (errorAcceptor != null) { 1146 if (errorAcceptor != null) {
1025 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__CONDITION) == ValueTransient.YES) 1147 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.FUNCTION_DEFINITION__RESULT_TYPE) == ValueTransient.YES)
1026 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__CONDITION)); 1148 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.FUNCTION_DEFINITION__RESULT_TYPE));
1027 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__THEN) == ValueTransient.YES) 1149 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__HEAD) == ValueTransient.YES)
1028 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__THEN)); 1150 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__HEAD));
1029 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__ELSE) == ValueTransient.YES) 1151 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__BODY) == ValueTransient.YES)
1030 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__ELSE)); 1152 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.FUNCTOR_DEFINITON__BODY));
1031 } 1153 }
1032 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 1154 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1033 feeder.accept(grammarAccess.getIfElseAccess().getConditionExpressionParserRuleCall_1_0(), semanticObject.getCondition()); 1155 feeder.accept(grammarAccess.getFunctionDefinitionAccess().getResultTypeSymbolQualifiedNameParserRuleCall_0_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.FUNCTION_DEFINITION__RESULT_TYPE, false));
1034 feeder.accept(grammarAccess.getIfElseAccess().getThenExpressionParserRuleCall_3_0(), semanticObject.getThen()); 1156 feeder.accept(grammarAccess.getFunctionDefinitionAccess().getHeadCallParserRuleCall_1_0(), semanticObject.getHead());
1035 feeder.accept(grammarAccess.getIfElseAccess().getElseExpressionParserRuleCall_5_0(), semanticObject.getElse()); 1157 feeder.accept(grammarAccess.getFunctionDefinitionAccess().getBodyExpressionParserRuleCall_3_0(), semanticObject.getBody());
1036 feeder.finish(); 1158 feeder.finish();
1037 } 1159 }
1038 1160
1039 1161
1040 /** 1162 /**
1041 * Contexts: 1163 * Contexts:
1042 * Statement returns InfinityLiteral 1164 * AssertionOrDefinition.Assertion_1_0_0 returns InfinityLiteral
1043 * AssertionOrDefinition returns InfinityLiteral
1044 * AssertionOrDefinition.Interpretation_1_0_0 returns InfinityLiteral
1045 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns InfinityLiteral 1165 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns InfinityLiteral
1046 * AssertionOrDefinition.MetricDefinition_1_2_0 returns InfinityLiteral 1166 * AssertionOrDefinition.FunctionDefinition_1_2_0 returns InfinityLiteral
1047 * Expression returns InfinityLiteral 1167 * Expression returns InfinityLiteral
1048 * ImplicationExpression returns InfinityLiteral 1168 * Expression.Forall_2_1_0 returns InfinityLiteral
1049 * ImplicationExpression.BinaryExpression_1_0 returns InfinityLiteral
1050 * DisjunctiveExpression returns InfinityLiteral 1169 * DisjunctiveExpression returns InfinityLiteral
1051 * DisjunctiveExpression.Disjunction_1_0_0 returns InfinityLiteral 1170 * DisjunctiveExpression.Disjunction_1_0_0 returns InfinityLiteral
1052 * DisjunctiveExpression.Case_1_1_0 returns InfinityLiteral 1171 * DisjunctiveExpression.Case_1_1_0 returns InfinityLiteral
1053 * ConjunctiveExpression returns InfinityLiteral 1172 * ConjunctiveExpression returns InfinityLiteral
1054 * ConjunctiveExpression.Conjunction_1_0 returns InfinityLiteral 1173 * ConjunctiveExpression.Conjunction_1_0 returns InfinityLiteral
1055 * ComparisonExpression returns InfinityLiteral 1174 * ComparisonExpression returns InfinityLiteral
1056 * ComparisonExpression.Comparison_1_0 returns InfinityLiteral 1175 * ComparisonExpression.BinaryExpression_1_0 returns InfinityLiteral
1057 * AdditiveExpression returns InfinityLiteral 1176 * AdditiveExpression returns InfinityLiteral
1058 * AdditiveExpression.BinaryExpression_1_0 returns InfinityLiteral 1177 * AdditiveExpression.BinaryExpression_1_0 returns InfinityLiteral
1059 * MultiplicativeExpression returns InfinityLiteral 1178 * MultiplicativeExpression returns InfinityLiteral
@@ -1063,7 +1182,7 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
1063 * CastExpression returns InfinityLiteral 1182 * CastExpression returns InfinityLiteral
1064 * CastExpression.CastExpression_1_0 returns InfinityLiteral 1183 * CastExpression.CastExpression_1_0 returns InfinityLiteral
1065 * UnaryExpression returns InfinityLiteral 1184 * UnaryExpression returns InfinityLiteral
1066 * AggregationExpression returns InfinityLiteral 1185 * BracedAggregateExpression returns InfinityLiteral
1067 * AtomicExpression returns InfinityLiteral 1186 * AtomicExpression returns InfinityLiteral
1068 * Literal returns InfinityLiteral 1187 * Literal returns InfinityLiteral
1069 * InfinityLiteral returns InfinityLiteral 1188 * InfinityLiteral returns InfinityLiteral
@@ -1078,21 +1197,60 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
1078 1197
1079 /** 1198 /**
1080 * Contexts: 1199 * Contexts:
1081 * Statement returns Interval 1200 * AssertionOrDefinition.Assertion_1_0_0 returns IntLiteral
1082 * AssertionOrDefinition returns Interval 1201 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns IntLiteral
1083 * AssertionOrDefinition.Interpretation_1_0_0 returns Interval 1202 * AssertionOrDefinition.FunctionDefinition_1_2_0 returns IntLiteral
1203 * Expression returns IntLiteral
1204 * Expression.Forall_2_1_0 returns IntLiteral
1205 * DisjunctiveExpression returns IntLiteral
1206 * DisjunctiveExpression.Disjunction_1_0_0 returns IntLiteral
1207 * DisjunctiveExpression.Case_1_1_0 returns IntLiteral
1208 * ConjunctiveExpression returns IntLiteral
1209 * ConjunctiveExpression.Conjunction_1_0 returns IntLiteral
1210 * ComparisonExpression returns IntLiteral
1211 * ComparisonExpression.BinaryExpression_1_0 returns IntLiteral
1212 * AdditiveExpression returns IntLiteral
1213 * AdditiveExpression.BinaryExpression_1_0 returns IntLiteral
1214 * MultiplicativeExpression returns IntLiteral
1215 * MultiplicativeExpression.BinaryExpression_1_0 returns IntLiteral
1216 * ExponentialExpression returns IntLiteral
1217 * ExponentialExpression.BinaryExpression_1_0 returns IntLiteral
1218 * CastExpression returns IntLiteral
1219 * CastExpression.CastExpression_1_0 returns IntLiteral
1220 * UnaryExpression returns IntLiteral
1221 * BracedAggregateExpression returns IntLiteral
1222 * AtomicExpression returns IntLiteral
1223 * Literal returns IntLiteral
1224 * IntLiteral returns IntLiteral
1225 *
1226 * Constraint:
1227 * value=INT
1228 */
1229 protected void sequence_IntLiteral(ISerializationContext context, IntLiteral semanticObject) {
1230 if (errorAcceptor != null) {
1231 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.INT_LITERAL__VALUE) == ValueTransient.YES)
1232 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.INT_LITERAL__VALUE));
1233 }
1234 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1235 feeder.accept(grammarAccess.getIntLiteralAccess().getValueINTTerminalRuleCall_0(), semanticObject.getValue());
1236 feeder.finish();
1237 }
1238
1239
1240 /**
1241 * Contexts:
1242 * AssertionOrDefinition.Assertion_1_0_0 returns Interval
1084 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Interval 1243 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Interval
1085 * AssertionOrDefinition.MetricDefinition_1_2_0 returns Interval 1244 * AssertionOrDefinition.FunctionDefinition_1_2_0 returns Interval
1086 * Expression returns Interval 1245 * Expression returns Interval
1087 * ImplicationExpression returns Interval 1246 * Expression.Forall_2_1_0 returns Interval
1088 * ImplicationExpression.BinaryExpression_1_0 returns Interval
1089 * DisjunctiveExpression returns Interval 1247 * DisjunctiveExpression returns Interval
1090 * DisjunctiveExpression.Disjunction_1_0_0 returns Interval 1248 * DisjunctiveExpression.Disjunction_1_0_0 returns Interval
1091 * DisjunctiveExpression.Case_1_1_0 returns Interval 1249 * DisjunctiveExpression.Case_1_1_0 returns Interval
1092 * ConjunctiveExpression returns Interval 1250 * ConjunctiveExpression returns Interval
1093 * ConjunctiveExpression.Conjunction_1_0 returns Interval 1251 * ConjunctiveExpression.Conjunction_1_0 returns Interval
1094 * ComparisonExpression returns Interval 1252 * ComparisonExpression returns Interval
1095 * ComparisonExpression.Comparison_1_0 returns Interval 1253 * ComparisonExpression.BinaryExpression_1_0 returns Interval
1096 * AdditiveExpression returns Interval 1254 * AdditiveExpression returns Interval
1097 * AdditiveExpression.BinaryExpression_1_0 returns Interval 1255 * AdditiveExpression.BinaryExpression_1_0 returns Interval
1098 * MultiplicativeExpression returns Interval 1256 * MultiplicativeExpression returns Interval
@@ -1102,12 +1260,12 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
1102 * CastExpression returns Interval 1260 * CastExpression returns Interval
1103 * CastExpression.CastExpression_1_0 returns Interval 1261 * CastExpression.CastExpression_1_0 returns Interval
1104 * UnaryExpression returns Interval 1262 * UnaryExpression returns Interval
1105 * AggregationExpression returns Interval 1263 * BracedAggregateExpression returns Interval
1106 * AtomicExpression returns Interval 1264 * AtomicExpression returns Interval
1107 * Interval returns Interval 1265 * Interval returns Interval
1108 * 1266 *
1109 * Constraint: 1267 * Constraint:
1110 * (lowerBound=Expression upperBound=Expression) 1268 * (lowerBound=AdditiveExpression upperBound=AdditiveExpression)
1111 */ 1269 */
1112 protected void sequence_Interval(ISerializationContext context, Interval semanticObject) { 1270 protected void sequence_Interval(ISerializationContext context, Interval semanticObject) {
1113 if (errorAcceptor != null) { 1271 if (errorAcceptor != null) {
@@ -1117,8 +1275,8 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
1117 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.INTERVAL__UPPER_BOUND)); 1275 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.INTERVAL__UPPER_BOUND));
1118 } 1276 }
1119 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 1277 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1120 feeder.accept(grammarAccess.getIntervalAccess().getLowerBoundExpressionParserRuleCall_1_0(), semanticObject.getLowerBound()); 1278 feeder.accept(grammarAccess.getIntervalAccess().getLowerBoundAdditiveExpressionParserRuleCall_1_0(), semanticObject.getLowerBound());
1121 feeder.accept(grammarAccess.getIntervalAccess().getUpperBoundExpressionParserRuleCall_3_0(), semanticObject.getUpperBound()); 1279 feeder.accept(grammarAccess.getIntervalAccess().getUpperBoundAdditiveExpressionParserRuleCall_3_0(), semanticObject.getUpperBound());
1122 feeder.finish(); 1280 feeder.finish();
1123 } 1281 }
1124 1282
@@ -1128,89 +1286,62 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
1128 * LetBinding returns LetBinding 1286 * LetBinding returns LetBinding
1129 * 1287 *
1130 * Constraint: 1288 * Constraint:
1131 * (variable=Variable value=AdditiveExpression) 1289 * (type=[Symbol|QualifiedName]? name=ID value=AdditiveExpression)
1132 */ 1290 */
1133 protected void sequence_LetBinding(ISerializationContext context, LetBinding semanticObject) { 1291 protected void sequence_LetBinding(ISerializationContext context, LetBinding semanticObject) {
1134 if (errorAcceptor != null) {
1135 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.LET_BINDING__VARIABLE) == ValueTransient.YES)
1136 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.LET_BINDING__VARIABLE));
1137 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.LET_BINDING__VALUE) == ValueTransient.YES)
1138 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.LET_BINDING__VALUE));
1139 }
1140 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1141 feeder.accept(grammarAccess.getLetBindingAccess().getVariableVariableParserRuleCall_0_0(), semanticObject.getVariable());
1142 feeder.accept(grammarAccess.getLetBindingAccess().getValueAdditiveExpressionParserRuleCall_2_0(), semanticObject.getValue());
1143 feeder.finish();
1144 }
1145
1146
1147 /**
1148 * Contexts:
1149 * Statement returns Let
1150 * AssertionOrDefinition returns Let
1151 * AssertionOrDefinition.Interpretation_1_0_0 returns Let
1152 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Let
1153 * AssertionOrDefinition.MetricDefinition_1_2_0 returns Let
1154 * Expression returns Let
1155 * Let returns Let
1156 * ImplicationExpression returns Let
1157 * ImplicationExpression.BinaryExpression_1_0 returns Let
1158 * DisjunctiveExpression returns Let
1159 * DisjunctiveExpression.Disjunction_1_0_0 returns Let
1160 * DisjunctiveExpression.Case_1_1_0 returns Let
1161 * ConjunctiveExpression returns Let
1162 * ConjunctiveExpression.Conjunction_1_0 returns Let
1163 * ComparisonExpression returns Let
1164 * ComparisonExpression.Comparison_1_0 returns Let
1165 * AdditiveExpression returns Let
1166 * AdditiveExpression.BinaryExpression_1_0 returns Let
1167 * MultiplicativeExpression returns Let
1168 * MultiplicativeExpression.BinaryExpression_1_0 returns Let
1169 * ExponentialExpression returns Let
1170 * ExponentialExpression.BinaryExpression_1_0 returns Let
1171 * CastExpression returns Let
1172 * CastExpression.CastExpression_1_0 returns Let
1173 * UnaryExpression returns Let
1174 * AggregationExpression returns Let
1175 * AtomicExpression returns Let
1176 *
1177 * Constraint:
1178 * (bindings+=LetBinding bindings+=LetBinding* body=Expression)
1179 */
1180 protected void sequence_Let(ISerializationContext context, Let semanticObject) {
1181 genericSequencer.createSequence(context, semanticObject); 1292 genericSequencer.createSequence(context, semanticObject);
1182 } 1293 }
1183 1294
1184 1295
1185 /** 1296 /**
1186 * Contexts: 1297 * Contexts:
1187 * LocalVariables returns LocalVariables 1298 * AssertionOrDefinition.Assertion_1_0_0 returns LetExpression
1299 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns LetExpression
1300 * AssertionOrDefinition.FunctionDefinition_1_2_0 returns LetExpression
1301 * Expression returns LetExpression
1302 * Expression.Forall_2_1_0 returns LetExpression
1303 * LetExpression returns LetExpression
1304 * DisjunctiveExpression returns LetExpression
1305 * DisjunctiveExpression.Disjunction_1_0_0 returns LetExpression
1306 * DisjunctiveExpression.Case_1_1_0 returns LetExpression
1307 * ConjunctiveExpression returns LetExpression
1308 * ConjunctiveExpression.Conjunction_1_0 returns LetExpression
1309 * ComparisonExpression returns LetExpression
1310 * ComparisonExpression.BinaryExpression_1_0 returns LetExpression
1311 * AdditiveExpression returns LetExpression
1312 * AdditiveExpression.BinaryExpression_1_0 returns LetExpression
1313 * MultiplicativeExpression returns LetExpression
1314 * MultiplicativeExpression.BinaryExpression_1_0 returns LetExpression
1315 * ExponentialExpression returns LetExpression
1316 * ExponentialExpression.BinaryExpression_1_0 returns LetExpression
1317 * CastExpression returns LetExpression
1318 * CastExpression.CastExpression_1_0 returns LetExpression
1319 * UnaryExpression returns LetExpression
1320 * BracedAggregateExpression returns LetExpression
1321 * AtomicExpression returns LetExpression
1188 * 1322 *
1189 * Constraint: 1323 * Constraint:
1190 * (variables+=Variable variables+=Variable*)? 1324 * (bindings+=LetBinding bindings+=LetBinding* body=Expression)
1191 */ 1325 */
1192 protected void sequence_LocalVariables(ISerializationContext context, LocalVariables semanticObject) { 1326 protected void sequence_LetExpression(ISerializationContext context, LetExpression semanticObject) {
1193 genericSequencer.createSequence(context, semanticObject); 1327 genericSequencer.createSequence(context, semanticObject);
1194 } 1328 }
1195 1329
1196 1330
1197 /** 1331 /**
1198 * Contexts: 1332 * Contexts:
1199 * Statement returns LogicLiteral 1333 * AssertionOrDefinition.Assertion_1_0_0 returns LogicLiteral
1200 * AssertionOrDefinition returns LogicLiteral
1201 * AssertionOrDefinition.Interpretation_1_0_0 returns LogicLiteral
1202 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns LogicLiteral 1334 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns LogicLiteral
1203 * AssertionOrDefinition.MetricDefinition_1_2_0 returns LogicLiteral 1335 * AssertionOrDefinition.FunctionDefinition_1_2_0 returns LogicLiteral
1204 * Expression returns LogicLiteral 1336 * Expression returns LogicLiteral
1205 * ImplicationExpression returns LogicLiteral 1337 * Expression.Forall_2_1_0 returns LogicLiteral
1206 * ImplicationExpression.BinaryExpression_1_0 returns LogicLiteral
1207 * DisjunctiveExpression returns LogicLiteral 1338 * DisjunctiveExpression returns LogicLiteral
1208 * DisjunctiveExpression.Disjunction_1_0_0 returns LogicLiteral 1339 * DisjunctiveExpression.Disjunction_1_0_0 returns LogicLiteral
1209 * DisjunctiveExpression.Case_1_1_0 returns LogicLiteral 1340 * DisjunctiveExpression.Case_1_1_0 returns LogicLiteral
1210 * ConjunctiveExpression returns LogicLiteral 1341 * ConjunctiveExpression returns LogicLiteral
1211 * ConjunctiveExpression.Conjunction_1_0 returns LogicLiteral 1342 * ConjunctiveExpression.Conjunction_1_0 returns LogicLiteral
1212 * ComparisonExpression returns LogicLiteral 1343 * ComparisonExpression returns LogicLiteral
1213 * ComparisonExpression.Comparison_1_0 returns LogicLiteral 1344 * ComparisonExpression.BinaryExpression_1_0 returns LogicLiteral
1214 * AdditiveExpression returns LogicLiteral 1345 * AdditiveExpression returns LogicLiteral
1215 * AdditiveExpression.BinaryExpression_1_0 returns LogicLiteral 1346 * AdditiveExpression.BinaryExpression_1_0 returns LogicLiteral
1216 * MultiplicativeExpression returns LogicLiteral 1347 * MultiplicativeExpression returns LogicLiteral
@@ -1220,7 +1351,7 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
1220 * CastExpression returns LogicLiteral 1351 * CastExpression returns LogicLiteral
1221 * CastExpression.CastExpression_1_0 returns LogicLiteral 1352 * CastExpression.CastExpression_1_0 returns LogicLiteral
1222 * UnaryExpression returns LogicLiteral 1353 * UnaryExpression returns LogicLiteral
1223 * AggregationExpression returns LogicLiteral 1354 * BracedAggregateExpression returns LogicLiteral
1224 * AtomicExpression returns LogicLiteral 1355 * AtomicExpression returns LogicLiteral
1225 * Literal returns LogicLiteral 1356 * Literal returns LogicLiteral
1226 * LogicLiteral returns LogicLiteral 1357 * LogicLiteral returns LogicLiteral
@@ -1241,131 +1372,75 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
1241 1372
1242 /** 1373 /**
1243 * Contexts: 1374 * Contexts:
1244 * Statement returns LowerBoundedScopeDefinition 1375 * Statement returns LowerBoundedScope
1245 * ScopeDefinition returns LowerBoundedScopeDefinition 1376 * ScopeDeclaration returns LowerBoundedScope
1246 * LowerBoundedScopeDefinition returns LowerBoundedScopeDefinition 1377 * LowerBoundedScope returns LowerBoundedScope
1247 *
1248 * Constraint:
1249 * ((lowerBound=INT type=[NamedElement|QualifiedName]) | (type=[NamedElement|QualifiedName] lowerBound=INT))
1250 */
1251 protected void sequence_LowerBoundedScopeDefinition(ISerializationContext context, LowerBoundedScopeDefinition semanticObject) {
1252 genericSequencer.createSequence(context, semanticObject);
1253 }
1254
1255
1256 /**
1257 * Contexts:
1258 * Multiplicity returns ManyMultiplicity
1259 * ManyMultiplicity returns ManyMultiplicity
1260 * 1378 *
1261 * Constraint: 1379 * Constraint:
1262 * {ManyMultiplicity} 1380 * ((lowerBound=INT type=[Symbol|QualifiedName]) | (type=[Symbol|QualifiedName] lowerBound=INT))
1263 */ 1381 */
1264 protected void sequence_ManyMultiplicity(ISerializationContext context, ManyMultiplicity semanticObject) { 1382 protected void sequence_LowerBoundedScope(ISerializationContext context, LowerBoundedScope semanticObject) {
1265 genericSequencer.createSequence(context, semanticObject); 1383 genericSequencer.createSequence(context, semanticObject);
1266 } 1384 }
1267 1385
1268 1386
1269 /** 1387 /**
1270 * Contexts: 1388 * Contexts:
1271 * MemberDefinition returns MemberDefinition 1389 * Import returns NamespaceImport
1390 * NamespaceImport returns NamespaceImport
1272 * 1391 *
1273 * Constraint: 1392 * Constraint:
1274 * (containment?='contains'? type=[NamedElement|QualifiedName] multiplicity=Multiplicity? name=ID opposite=[NamedElement|QualifiedName]?) 1393 * (importedNamespace=QualifiedName alias=QualifiedName)
1275 */ 1394 */
1276 protected void sequence_MemberDefinition(ISerializationContext context, MemberDefinition semanticObject) { 1395 protected void sequence_NamespaceImport(ISerializationContext context, NamespaceImport semanticObject) {
1277 genericSequencer.createSequence(context, semanticObject);
1278 }
1279
1280
1281 /**
1282 * Contexts:
1283 * MetricDefinition returns MetricDefinition
1284 *
1285 * Constraint:
1286 * (type=[NamedElement|QualifiedName] head=Call body=Expression)
1287 */
1288 protected void sequence_MetricDefinition(ISerializationContext context, MetricDefinition semanticObject) {
1289 if (errorAcceptor != null) { 1396 if (errorAcceptor != null) {
1290 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__TYPE) == ValueTransient.YES) 1397 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.NAMESPACE_IMPORT__IMPORTED_NAMESPACE) == ValueTransient.YES)
1291 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__TYPE)); 1398 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.NAMESPACE_IMPORT__IMPORTED_NAMESPACE));
1292 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__HEAD) == ValueTransient.YES) 1399 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.IMPORT__ALIAS) == ValueTransient.YES)
1293 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__HEAD)); 1400 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.IMPORT__ALIAS));
1294 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__BODY) == ValueTransient.YES)
1295 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__BODY));
1296 } 1401 }
1297 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 1402 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1298 feeder.accept(grammarAccess.getMetricDefinitionAccess().getTypeNamedElementQualifiedNameParserRuleCall_0_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.METRIC_DEFINITION__TYPE, false)); 1403 feeder.accept(grammarAccess.getNamespaceImportAccess().getImportedNamespaceQualifiedNameParserRuleCall_1_0(), semanticObject.getImportedNamespace());
1299 feeder.accept(grammarAccess.getMetricDefinitionAccess().getHeadCallParserRuleCall_1_0(), semanticObject.getHead()); 1404 feeder.accept(grammarAccess.getNamespaceImportAccess().getAliasQualifiedNameParserRuleCall_2_1_0(), semanticObject.getAlias());
1300 feeder.accept(grammarAccess.getMetricDefinitionAccess().getBodyExpressionParserRuleCall_3_0(), semanticObject.getBody());
1301 feeder.finish(); 1405 feeder.finish();
1302 } 1406 }
1303 1407
1304 1408
1305 /** 1409 /**
1306 * Contexts: 1410 * Contexts:
1307 * Statement returns NumericLiteral 1411 * Statement returns ObjectiveDeclaration
1308 * AssertionOrDefinition returns NumericLiteral 1412 * ObjectiveDeclaration returns ObjectiveDeclaration
1309 * AssertionOrDefinition.Interpretation_1_0_0 returns NumericLiteral
1310 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns NumericLiteral
1311 * AssertionOrDefinition.MetricDefinition_1_2_0 returns NumericLiteral
1312 * Expression returns NumericLiteral
1313 * ImplicationExpression returns NumericLiteral
1314 * ImplicationExpression.BinaryExpression_1_0 returns NumericLiteral
1315 * DisjunctiveExpression returns NumericLiteral
1316 * DisjunctiveExpression.Disjunction_1_0_0 returns NumericLiteral
1317 * DisjunctiveExpression.Case_1_1_0 returns NumericLiteral
1318 * ConjunctiveExpression returns NumericLiteral
1319 * ConjunctiveExpression.Conjunction_1_0 returns NumericLiteral
1320 * ComparisonExpression returns NumericLiteral
1321 * ComparisonExpression.Comparison_1_0 returns NumericLiteral
1322 * AdditiveExpression returns NumericLiteral
1323 * AdditiveExpression.BinaryExpression_1_0 returns NumericLiteral
1324 * MultiplicativeExpression returns NumericLiteral
1325 * MultiplicativeExpression.BinaryExpression_1_0 returns NumericLiteral
1326 * ExponentialExpression returns NumericLiteral
1327 * ExponentialExpression.BinaryExpression_1_0 returns NumericLiteral
1328 * CastExpression returns NumericLiteral
1329 * CastExpression.CastExpression_1_0 returns NumericLiteral
1330 * UnaryExpression returns NumericLiteral
1331 * AggregationExpression returns NumericLiteral
1332 * AtomicExpression returns NumericLiteral
1333 * Literal returns NumericLiteral
1334 * NumericLiteral returns NumericLiteral
1335 * 1413 *
1336 * Constraint: 1414 * Constraint:
1337 * value=Real 1415 * (kind=ObjectiveKind objective=Expression)
1338 */ 1416 */
1339 protected void sequence_NumericLiteral(ISerializationContext context, NumericLiteral semanticObject) { 1417 protected void sequence_ObjectiveDeclaration(ISerializationContext context, ObjectiveDeclaration semanticObject) {
1340 if (errorAcceptor != null) { 1418 if (errorAcceptor != null) {
1341 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.NUMERIC_LITERAL__VALUE) == ValueTransient.YES) 1419 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DECLARATION__KIND) == ValueTransient.YES)
1342 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.NUMERIC_LITERAL__VALUE)); 1420 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DECLARATION__KIND));
1421 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DECLARATION__OBJECTIVE) == ValueTransient.YES)
1422 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DECLARATION__OBJECTIVE));
1343 } 1423 }
1344 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 1424 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1345 feeder.accept(grammarAccess.getNumericLiteralAccess().getValueRealParserRuleCall_0(), semanticObject.getValue()); 1425 feeder.accept(grammarAccess.getObjectiveDeclarationAccess().getKindObjectiveKindEnumRuleCall_0_0(), semanticObject.getKind());
1426 feeder.accept(grammarAccess.getObjectiveDeclarationAccess().getObjectiveExpressionParserRuleCall_1_0(), semanticObject.getObjective());
1346 feeder.finish(); 1427 feeder.finish();
1347 } 1428 }
1348 1429
1349 1430
1350 /** 1431 /**
1351 * Contexts: 1432 * Contexts:
1352 * Statement returns ObjectiveDefinition 1433 * PathComponent returns PathComponent
1353 * ObjectiveDefinition returns ObjectiveDefinition
1354 * 1434 *
1355 * Constraint: 1435 * Constraint:
1356 * (kind=ObjectiveKind objective=Expression) 1436 * (
1437 * inverse?='~'?
1438 * symbol=[Symbol|QualifiedName]
1439 * (transitiveClosure?=TRANSITIVE_CLOSURE | reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE)?
1440 * )
1357 */ 1441 */
1358 protected void sequence_ObjectiveDefinition(ISerializationContext context, ObjectiveDefinition semanticObject) { 1442 protected void sequence_PathComponent(ISerializationContext context, PathComponent semanticObject) {
1359 if (errorAcceptor != null) { 1443 genericSequencer.createSequence(context, semanticObject);
1360 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DEFINITION__KIND) == ValueTransient.YES)
1361 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DEFINITION__KIND));
1362 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DEFINITION__OBJECTIVE) == ValueTransient.YES)
1363 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DEFINITION__OBJECTIVE));
1364 }
1365 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1366 feeder.accept(grammarAccess.getObjectiveDefinitionAccess().getKindObjectiveKindEnumRuleCall_0_0(), semanticObject.getKind());
1367 feeder.accept(grammarAccess.getObjectiveDefinitionAccess().getObjectiveExpressionParserRuleCall_1_0(), semanticObject.getObjective());
1368 feeder.finish();
1369 } 1444 }
1370 1445
1371 1446
@@ -1386,7 +1461,7 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
1386 * Problem returns Problem 1461 * Problem returns Problem
1387 * 1462 *
1388 * Constraint: 1463 * Constraint:
1389 * statements+=Statement+ 1464 * ((name=QualifiedName? imports+=Import+ statements+=Statement+) | (name=QualifiedName? statements+=Statement+) | statements+=Statement+)?
1390 */ 1465 */
1391 protected void sequence_Problem(ISerializationContext context, Problem semanticObject) { 1466 protected void sequence_Problem(ISerializationContext context, Problem semanticObject) {
1392 genericSequencer.createSequence(context, semanticObject); 1467 genericSequencer.createSequence(context, semanticObject);
@@ -1395,59 +1470,60 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
1395 1470
1396 /** 1471 /**
1397 * Contexts: 1472 * Contexts:
1398 * Statement returns QuantifiedExpression 1473 * AssertionOrDefinition.Assertion_1_0_0 returns RealLiteral
1399 * AssertionOrDefinition returns QuantifiedExpression 1474 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns RealLiteral
1400 * AssertionOrDefinition.Interpretation_1_0_0 returns QuantifiedExpression 1475 * AssertionOrDefinition.FunctionDefinition_1_2_0 returns RealLiteral
1401 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns QuantifiedExpression 1476 * Expression returns RealLiteral
1402 * AssertionOrDefinition.MetricDefinition_1_2_0 returns QuantifiedExpression 1477 * Expression.Forall_2_1_0 returns RealLiteral
1403 * Expression returns QuantifiedExpression 1478 * DisjunctiveExpression returns RealLiteral
1404 * ImplicationExpression returns QuantifiedExpression 1479 * DisjunctiveExpression.Disjunction_1_0_0 returns RealLiteral
1405 * ImplicationExpression.BinaryExpression_1_0 returns QuantifiedExpression 1480 * DisjunctiveExpression.Case_1_1_0 returns RealLiteral
1406 * DisjunctiveExpression returns QuantifiedExpression 1481 * ConjunctiveExpression returns RealLiteral
1407 * DisjunctiveExpression.Disjunction_1_0_0 returns QuantifiedExpression 1482 * ConjunctiveExpression.Conjunction_1_0 returns RealLiteral
1408 * DisjunctiveExpression.Case_1_1_0 returns QuantifiedExpression 1483 * ComparisonExpression returns RealLiteral
1409 * ConjunctiveExpression returns QuantifiedExpression 1484 * ComparisonExpression.BinaryExpression_1_0 returns RealLiteral
1410 * ConjunctiveExpression.Conjunction_1_0 returns QuantifiedExpression 1485 * AdditiveExpression returns RealLiteral
1411 * ComparisonExpression returns QuantifiedExpression 1486 * AdditiveExpression.BinaryExpression_1_0 returns RealLiteral
1412 * ComparisonExpression.Comparison_1_0 returns QuantifiedExpression 1487 * MultiplicativeExpression returns RealLiteral
1413 * AdditiveExpression returns QuantifiedExpression 1488 * MultiplicativeExpression.BinaryExpression_1_0 returns RealLiteral
1414 * AdditiveExpression.BinaryExpression_1_0 returns QuantifiedExpression 1489 * ExponentialExpression returns RealLiteral
1415 * MultiplicativeExpression returns QuantifiedExpression 1490 * ExponentialExpression.BinaryExpression_1_0 returns RealLiteral
1416 * MultiplicativeExpression.BinaryExpression_1_0 returns QuantifiedExpression 1491 * CastExpression returns RealLiteral
1417 * ExponentialExpression returns QuantifiedExpression 1492 * CastExpression.CastExpression_1_0 returns RealLiteral
1418 * ExponentialExpression.BinaryExpression_1_0 returns QuantifiedExpression 1493 * UnaryExpression returns RealLiteral
1419 * CastExpression returns QuantifiedExpression 1494 * BracedAggregateExpression returns RealLiteral
1420 * CastExpression.CastExpression_1_0 returns QuantifiedExpression 1495 * AtomicExpression returns RealLiteral
1421 * UnaryExpression returns QuantifiedExpression 1496 * Literal returns RealLiteral
1422 * AggregationExpression returns QuantifiedExpression 1497 * RealLiteral returns RealLiteral
1423 * QuantifiedExpression returns QuantifiedExpression
1424 * AtomicExpression returns QuantifiedExpression
1425 * 1498 *
1426 * Constraint: 1499 * Constraint:
1427 * (quantifier=Quantifier localVariables=LocalVariables? body=Expression) 1500 * value=Real
1428 */ 1501 */
1429 protected void sequence_QuantifiedExpression(ISerializationContext context, QuantifiedExpression semanticObject) { 1502 protected void sequence_RealLiteral(ISerializationContext context, RealLiteral semanticObject) {
1430 genericSequencer.createSequence(context, semanticObject); 1503 if (errorAcceptor != null) {
1504 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.REAL_LITERAL__VALUE) == ValueTransient.YES)
1505 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.REAL_LITERAL__VALUE));
1506 }
1507 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1508 feeder.accept(grammarAccess.getRealLiteralAccess().getValueRealParserRuleCall_0(), semanticObject.getValue());
1509 feeder.finish();
1431 } 1510 }
1432 1511
1433 1512
1434 /** 1513 /**
1435 * Contexts: 1514 * Contexts:
1436 * Statement returns Reference 1515 * AssertionOrDefinition.Assertion_1_0_0 returns Reference
1437 * AssertionOrDefinition returns Reference
1438 * AssertionOrDefinition.Interpretation_1_0_0 returns Reference
1439 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Reference 1516 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Reference
1440 * AssertionOrDefinition.MetricDefinition_1_2_0 returns Reference 1517 * AssertionOrDefinition.FunctionDefinition_1_2_0 returns Reference
1441 * Expression returns Reference 1518 * Expression returns Reference
1442 * ImplicationExpression returns Reference 1519 * Expression.Forall_2_1_0 returns Reference
1443 * ImplicationExpression.BinaryExpression_1_0 returns Reference
1444 * DisjunctiveExpression returns Reference 1520 * DisjunctiveExpression returns Reference
1445 * DisjunctiveExpression.Disjunction_1_0_0 returns Reference 1521 * DisjunctiveExpression.Disjunction_1_0_0 returns Reference
1446 * DisjunctiveExpression.Case_1_1_0 returns Reference 1522 * DisjunctiveExpression.Case_1_1_0 returns Reference
1447 * ConjunctiveExpression returns Reference 1523 * ConjunctiveExpression returns Reference
1448 * ConjunctiveExpression.Conjunction_1_0 returns Reference 1524 * ConjunctiveExpression.Conjunction_1_0 returns Reference
1449 * ComparisonExpression returns Reference 1525 * ComparisonExpression returns Reference
1450 * ComparisonExpression.Comparison_1_0 returns Reference 1526 * ComparisonExpression.BinaryExpression_1_0 returns Reference
1451 * AdditiveExpression returns Reference 1527 * AdditiveExpression returns Reference
1452 * AdditiveExpression.BinaryExpression_1_0 returns Reference 1528 * AdditiveExpression.BinaryExpression_1_0 returns Reference
1453 * MultiplicativeExpression returns Reference 1529 * MultiplicativeExpression returns Reference
@@ -1457,21 +1533,15 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
1457 * CastExpression returns Reference 1533 * CastExpression returns Reference
1458 * CastExpression.CastExpression_1_0 returns Reference 1534 * CastExpression.CastExpression_1_0 returns Reference
1459 * UnaryExpression returns Reference 1535 * UnaryExpression returns Reference
1460 * AggregationExpression returns Reference 1536 * BracedAggregateExpression returns Reference
1461 * AtomicExpression returns Reference 1537 * AtomicExpression returns Reference
1462 * Reference returns Reference 1538 * Reference returns Reference
1463 * 1539 *
1464 * Constraint: 1540 * Constraint:
1465 * referred=[NamedElement|QualifiedName] 1541 * (components+=PathComponent components+=PathComponent*)
1466 */ 1542 */
1467 protected void sequence_Reference(ISerializationContext context, Reference semanticObject) { 1543 protected void sequence_Reference(ISerializationContext context, Reference semanticObject) {
1468 if (errorAcceptor != null) { 1544 genericSequencer.createSequence(context, semanticObject);
1469 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.REFERENCE__REFERRED) == ValueTransient.YES)
1470 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.REFERENCE__REFERRED));
1471 }
1472 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1473 feeder.accept(grammarAccess.getReferenceAccess().getReferredNamedElementQualifiedNameParserRuleCall_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.REFERENCE__REFERRED, false));
1474 feeder.finish();
1475 } 1545 }
1476 1546
1477 1547
@@ -1490,21 +1560,18 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
1490 1560
1491 /** 1561 /**
1492 * Contexts: 1562 * Contexts:
1493 * Statement returns StringLiteral 1563 * AssertionOrDefinition.Assertion_1_0_0 returns StringLiteral
1494 * AssertionOrDefinition returns StringLiteral
1495 * AssertionOrDefinition.Interpretation_1_0_0 returns StringLiteral
1496 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns StringLiteral 1564 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns StringLiteral
1497 * AssertionOrDefinition.MetricDefinition_1_2_0 returns StringLiteral 1565 * AssertionOrDefinition.FunctionDefinition_1_2_0 returns StringLiteral
1498 * Expression returns StringLiteral 1566 * Expression returns StringLiteral
1499 * ImplicationExpression returns StringLiteral 1567 * Expression.Forall_2_1_0 returns StringLiteral
1500 * ImplicationExpression.BinaryExpression_1_0 returns StringLiteral
1501 * DisjunctiveExpression returns StringLiteral 1568 * DisjunctiveExpression returns StringLiteral
1502 * DisjunctiveExpression.Disjunction_1_0_0 returns StringLiteral 1569 * DisjunctiveExpression.Disjunction_1_0_0 returns StringLiteral
1503 * DisjunctiveExpression.Case_1_1_0 returns StringLiteral 1570 * DisjunctiveExpression.Case_1_1_0 returns StringLiteral
1504 * ConjunctiveExpression returns StringLiteral 1571 * ConjunctiveExpression returns StringLiteral
1505 * ConjunctiveExpression.Conjunction_1_0 returns StringLiteral 1572 * ConjunctiveExpression.Conjunction_1_0 returns StringLiteral
1506 * ComparisonExpression returns StringLiteral 1573 * ComparisonExpression returns StringLiteral
1507 * ComparisonExpression.Comparison_1_0 returns StringLiteral 1574 * ComparisonExpression.BinaryExpression_1_0 returns StringLiteral
1508 * AdditiveExpression returns StringLiteral 1575 * AdditiveExpression returns StringLiteral
1509 * AdditiveExpression.BinaryExpression_1_0 returns StringLiteral 1576 * AdditiveExpression.BinaryExpression_1_0 returns StringLiteral
1510 * MultiplicativeExpression returns StringLiteral 1577 * MultiplicativeExpression returns StringLiteral
@@ -1514,7 +1581,7 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
1514 * CastExpression returns StringLiteral 1581 * CastExpression returns StringLiteral
1515 * CastExpression.CastExpression_1_0 returns StringLiteral 1582 * CastExpression.CastExpression_1_0 returns StringLiteral
1516 * UnaryExpression returns StringLiteral 1583 * UnaryExpression returns StringLiteral
1517 * AggregationExpression returns StringLiteral 1584 * BracedAggregateExpression returns StringLiteral
1518 * AtomicExpression returns StringLiteral 1585 * AtomicExpression returns StringLiteral
1519 * Literal returns StringLiteral 1586 * Literal returns StringLiteral
1520 * StringLiteral returns StringLiteral 1587 * StringLiteral returns StringLiteral
@@ -1535,62 +1602,71 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
1535 1602
1536 /** 1603 /**
1537 * Contexts: 1604 * Contexts:
1538 * Argument returns TypedArgument 1605 * TypeReference returns TypeReference
1539 * TypedArgument returns TypedArgument 1606 *
1607 * Constraint:
1608 * (type=[Symbol|QualifiedName] forceObjectType?='object'?)
1609 */
1610 protected void sequence_TypeReference(ISerializationContext context, TypeReference semanticObject) {
1611 genericSequencer.createSequence(context, semanticObject);
1612 }
1613
1614
1615 /**
1616 * Contexts:
1617 * Argument returns TypedStarArgument
1618 * TypedStarArgument returns TypedStarArgument
1540 * 1619 *
1541 * Constraint: 1620 * Constraint:
1542 * (type=[NamedElement|QualifiedName] variable=[NamedElement|QualifiedName]) 1621 * typeReference=TypeReference
1543 */ 1622 */
1544 protected void sequence_TypedArgument(ISerializationContext context, TypedArgument semanticObject) { 1623 protected void sequence_TypedStarArgument(ISerializationContext context, TypedStarArgument semanticObject) {
1545 if (errorAcceptor != null) { 1624 if (errorAcceptor != null) {
1546 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__TYPE) == ValueTransient.YES) 1625 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__TYPE_REFERENCE) == ValueTransient.YES)
1547 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__TYPE)); 1626 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__TYPE_REFERENCE));
1548 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__VARIABLE) == ValueTransient.YES)
1549 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__VARIABLE));
1550 } 1627 }
1551 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 1628 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1552 feeder.accept(grammarAccess.getTypedArgumentAccess().getTypeNamedElementQualifiedNameParserRuleCall_0_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.TYPED_ARGUMENT__TYPE, false)); 1629 feeder.accept(grammarAccess.getTypedStarArgumentAccess().getTypeReferenceTypeReferenceParserRuleCall_0_0(), semanticObject.getTypeReference());
1553 feeder.accept(grammarAccess.getTypedArgumentAccess().getVariableNamedElementQualifiedNameParserRuleCall_1_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.TYPED_ARGUMENT__VARIABLE, false));
1554 feeder.finish(); 1630 feeder.finish();
1555 } 1631 }
1556 1632
1557 1633
1558 /** 1634 /**
1559 * Contexts: 1635 * Contexts:
1560 * Argument returns TypedStarArgument 1636 * Argument returns TypedVariableArgument
1561 * TypedStarArgument returns TypedStarArgument 1637 * TypedVariableArgument returns TypedVariableArgument
1562 * 1638 *
1563 * Constraint: 1639 * Constraint:
1564 * type=[NamedElement|QualifiedName] 1640 * (typeReference=TypeReference name=ID)
1565 */ 1641 */
1566 protected void sequence_TypedStarArgument(ISerializationContext context, TypedStarArgument semanticObject) { 1642 protected void sequence_TypedVariableArgument(ISerializationContext context, TypedVariableArgument semanticObject) {
1567 if (errorAcceptor != null) { 1643 if (errorAcceptor != null) {
1568 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.TYPED_STAR_ARGUMENT__TYPE) == ValueTransient.YES) 1644 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__TYPE_REFERENCE) == ValueTransient.YES)
1569 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.TYPED_STAR_ARGUMENT__TYPE)); 1645 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__TYPE_REFERENCE));
1646 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.TYPED_VARIABLE_ARGUMENT__NAME) == ValueTransient.YES)
1647 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.TYPED_VARIABLE_ARGUMENT__NAME));
1570 } 1648 }
1571 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 1649 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1572 feeder.accept(grammarAccess.getTypedStarArgumentAccess().getTypeNamedElementQualifiedNameParserRuleCall_0_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.TYPED_STAR_ARGUMENT__TYPE, false)); 1650 feeder.accept(grammarAccess.getTypedVariableArgumentAccess().getTypeReferenceTypeReferenceParserRuleCall_0_0(), semanticObject.getTypeReference());
1651 feeder.accept(grammarAccess.getTypedVariableArgumentAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName());
1573 feeder.finish(); 1652 feeder.finish();
1574 } 1653 }
1575 1654
1576 1655
1577 /** 1656 /**
1578 * Contexts: 1657 * Contexts:
1579 * Statement returns UnaryExpression 1658 * AssertionOrDefinition.Assertion_1_0_0 returns UnaryExpression
1580 * AssertionOrDefinition returns UnaryExpression
1581 * AssertionOrDefinition.Interpretation_1_0_0 returns UnaryExpression
1582 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns UnaryExpression 1659 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns UnaryExpression
1583 * AssertionOrDefinition.MetricDefinition_1_2_0 returns UnaryExpression 1660 * AssertionOrDefinition.FunctionDefinition_1_2_0 returns UnaryExpression
1584 * Expression returns UnaryExpression 1661 * Expression returns UnaryExpression
1585 * ImplicationExpression returns UnaryExpression 1662 * Expression.Forall_2_1_0 returns UnaryExpression
1586 * ImplicationExpression.BinaryExpression_1_0 returns UnaryExpression
1587 * DisjunctiveExpression returns UnaryExpression 1663 * DisjunctiveExpression returns UnaryExpression
1588 * DisjunctiveExpression.Disjunction_1_0_0 returns UnaryExpression 1664 * DisjunctiveExpression.Disjunction_1_0_0 returns UnaryExpression
1589 * DisjunctiveExpression.Case_1_1_0 returns UnaryExpression 1665 * DisjunctiveExpression.Case_1_1_0 returns UnaryExpression
1590 * ConjunctiveExpression returns UnaryExpression 1666 * ConjunctiveExpression returns UnaryExpression
1591 * ConjunctiveExpression.Conjunction_1_0 returns UnaryExpression 1667 * ConjunctiveExpression.Conjunction_1_0 returns UnaryExpression
1592 * ComparisonExpression returns UnaryExpression 1668 * ComparisonExpression returns UnaryExpression
1593 * ComparisonExpression.Comparison_1_0 returns UnaryExpression 1669 * ComparisonExpression.BinaryExpression_1_0 returns UnaryExpression
1594 * AdditiveExpression returns UnaryExpression 1670 * AdditiveExpression returns UnaryExpression
1595 * AdditiveExpression.BinaryExpression_1_0 returns UnaryExpression 1671 * AdditiveExpression.BinaryExpression_1_0 returns UnaryExpression
1596 * MultiplicativeExpression returns UnaryExpression 1672 * MultiplicativeExpression returns UnaryExpression
@@ -1600,11 +1676,11 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
1600 * CastExpression returns UnaryExpression 1676 * CastExpression returns UnaryExpression
1601 * CastExpression.CastExpression_1_0 returns UnaryExpression 1677 * CastExpression.CastExpression_1_0 returns UnaryExpression
1602 * UnaryExpression returns UnaryExpression 1678 * UnaryExpression returns UnaryExpression
1603 * AggregationExpression returns UnaryExpression 1679 * BracedAggregateExpression returns UnaryExpression
1604 * AtomicExpression returns UnaryExpression 1680 * AtomicExpression returns UnaryExpression
1605 * 1681 *
1606 * Constraint: 1682 * Constraint:
1607 * (op=UnaryOp body=AggregationExpression) 1683 * (op=UnaryOperator body=BracedAggregateExpression)
1608 */ 1684 */
1609 protected void sequence_UnaryExpression(ISerializationContext context, UnaryExpression semanticObject) { 1685 protected void sequence_UnaryExpression(ISerializationContext context, UnaryExpression semanticObject) {
1610 if (errorAcceptor != null) { 1686 if (errorAcceptor != null) {
@@ -1614,43 +1690,66 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
1614 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNARY_EXPRESSION__BODY)); 1690 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNARY_EXPRESSION__BODY));
1615 } 1691 }
1616 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 1692 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1617 feeder.accept(grammarAccess.getUnaryExpressionAccess().getOpUnaryOpEnumRuleCall_1_1_0(), semanticObject.getOp()); 1693 feeder.accept(grammarAccess.getUnaryExpressionAccess().getOpUnaryOperatorEnumRuleCall_1_1_0(), semanticObject.getOp());
1618 feeder.accept(grammarAccess.getUnaryExpressionAccess().getBodyAggregationExpressionParserRuleCall_1_2_0(), semanticObject.getBody()); 1694 feeder.accept(grammarAccess.getUnaryExpressionAccess().getBodyBracedAggregateExpressionParserRuleCall_1_2_0(), semanticObject.getBody());
1619 feeder.finish(); 1695 feeder.finish();
1620 } 1696 }
1621 1697
1622 1698
1623 /** 1699 /**
1624 * Contexts: 1700 * Contexts:
1625 * Statement returns UnnamedErrorPrediateDefinition 1701 * Multiplicity returns UnboundedMultiplicity
1626 * UnnamedErrorPrediateDefinition returns UnnamedErrorPrediateDefinition 1702 * UnboundedMultiplicity returns UnboundedMultiplicity
1703 *
1704 * Constraint:
1705 * {UnboundedMultiplicity}
1706 */
1707 protected void sequence_UnboundedMultiplicity(ISerializationContext context, UnboundedMultiplicity semanticObject) {
1708 genericSequencer.createSequence(context, semanticObject);
1709 }
1710
1711
1712 /**
1713 * Contexts:
1714 * Statement returns UnnamedErrorPredicateDefintion
1715 * UnnamedErrorPredicateDefintion returns UnnamedErrorPredicateDefintion
1627 * 1716 *
1628 * Constraint: 1717 * Constraint:
1629 * (argumentList=ArgumentList body=Expression) 1718 * (argumentList=ArgumentList body=Expression)
1630 */ 1719 */
1631 protected void sequence_UnnamedErrorPrediateDefinition(ISerializationContext context, UnnamedErrorPrediateDefinition semanticObject) { 1720 protected void sequence_UnnamedErrorPredicateDefintion(ISerializationContext context, UnnamedErrorPredicateDefintion semanticObject) {
1632 if (errorAcceptor != null) { 1721 if (errorAcceptor != null) {
1633 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST) == ValueTransient.YES) 1722 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDICATE_DEFINTION__ARGUMENT_LIST) == ValueTransient.YES)
1634 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST)); 1723 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDICATE_DEFINTION__ARGUMENT_LIST));
1635 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY) == ValueTransient.YES) 1724 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDICATE_DEFINTION__BODY) == ValueTransient.YES)
1636 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY)); 1725 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDICATE_DEFINTION__BODY));
1637 } 1726 }
1638 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 1727 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1639 feeder.accept(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getArgumentListArgumentListParserRuleCall_1_0(), semanticObject.getArgumentList()); 1728 feeder.accept(grammarAccess.getUnnamedErrorPredicateDefintionAccess().getArgumentListArgumentListParserRuleCall_1_0(), semanticObject.getArgumentList());
1640 feeder.accept(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getBodyExpressionParserRuleCall_3_0(), semanticObject.getBody()); 1729 feeder.accept(grammarAccess.getUnnamedErrorPredicateDefintionAccess().getBodyExpressionParserRuleCall_3_0(), semanticObject.getBody());
1641 feeder.finish(); 1730 feeder.finish();
1642 } 1731 }
1643 1732
1644 1733
1645 /** 1734 /**
1646 * Contexts: 1735 * Contexts:
1647 * Variable returns Variable 1736 * Import returns UriImport
1737 * UriImport returns UriImport
1648 * 1738 *
1649 * Constraint: 1739 * Constraint:
1650 * (type=[NamedElement|QualifiedName]? name=ID) 1740 * (uri=STRING alias=QualifiedName)
1651 */ 1741 */
1652 protected void sequence_Variable(ISerializationContext context, Variable semanticObject) { 1742 protected void sequence_UriImport(ISerializationContext context, UriImport semanticObject) {
1653 genericSequencer.createSequence(context, semanticObject); 1743 if (errorAcceptor != null) {
1744 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.URI_IMPORT__URI) == ValueTransient.YES)
1745 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.URI_IMPORT__URI));
1746 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.IMPORT__ALIAS) == ValueTransient.YES)
1747 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.IMPORT__ALIAS));
1748 }
1749 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1750 feeder.accept(grammarAccess.getUriImportAccess().getUriSTRINGTerminalRuleCall_1_0(), semanticObject.getUri());
1751 feeder.accept(grammarAccess.getUriImportAccess().getAliasQualifiedNameParserRuleCall_2_1_0(), semanticObject.getAlias());
1752 feeder.finish();
1654 } 1753 }
1655 1754
1656 1755
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSyntacticSequencer.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSyntacticSequencer.java
index 8b187721..2f9ea8a3 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSyntacticSequencer.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSyntacticSequencer.java
@@ -11,6 +11,8 @@ import org.eclipse.xtext.IGrammarAccess;
11import org.eclipse.xtext.RuleCall; 11import org.eclipse.xtext.RuleCall;
12import org.eclipse.xtext.nodemodel.INode; 12import org.eclipse.xtext.nodemodel.INode;
13import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias; 13import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias;
14import org.eclipse.xtext.serializer.analysis.GrammarAlias.AlternativeAlias;
15import org.eclipse.xtext.serializer.analysis.GrammarAlias.GroupAlias;
14import org.eclipse.xtext.serializer.analysis.GrammarAlias.TokenAlias; 16import org.eclipse.xtext.serializer.analysis.GrammarAlias.TokenAlias;
15import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynNavigable; 17import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynNavigable;
16import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition; 18import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition;
@@ -22,14 +24,20 @@ public class SolverLanguageSyntacticSequencer extends AbstractSyntacticSequencer
22 protected SolverLanguageGrammarAccess grammarAccess; 24 protected SolverLanguageGrammarAccess grammarAccess;
23 protected AbstractElementAlias match_AtomicExpression_LeftParenthesisKeyword_4_0_a; 25 protected AbstractElementAlias match_AtomicExpression_LeftParenthesisKeyword_4_0_a;
24 protected AbstractElementAlias match_AtomicExpression_LeftParenthesisKeyword_4_0_p; 26 protected AbstractElementAlias match_AtomicExpression_LeftParenthesisKeyword_4_0_p;
25 protected AbstractElementAlias match_MemberDefinition_SemicolonKeyword_5_q; 27 protected AbstractElementAlias match_ClassDeclaration_FULL_STOPTerminalRuleCall_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__;
28 protected AbstractElementAlias match_EnumDeclaration_CommaKeyword_2_0_1_1_0_q;
29 protected AbstractElementAlias match_EnumDeclaration_FULL_STOPTerminalRuleCall_2_1_or___LeftCurlyBracketKeyword_2_0_0_RightCurlyBracketKeyword_2_0_2__;
30 protected AbstractElementAlias match_Field_SemicolonKeyword_5_q;
26 31
27 @Inject 32 @Inject
28 protected void init(IGrammarAccess access) { 33 protected void init(IGrammarAccess access) {
29 grammarAccess = (SolverLanguageGrammarAccess) access; 34 grammarAccess = (SolverLanguageGrammarAccess) access;
30 match_AtomicExpression_LeftParenthesisKeyword_4_0_a = new TokenAlias(true, true, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_4_0()); 35 match_AtomicExpression_LeftParenthesisKeyword_4_0_a = new TokenAlias(true, true, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_4_0());
31 match_AtomicExpression_LeftParenthesisKeyword_4_0_p = new TokenAlias(true, false, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_4_0()); 36 match_AtomicExpression_LeftParenthesisKeyword_4_0_p = new TokenAlias(true, false, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_4_0());
32 match_MemberDefinition_SemicolonKeyword_5_q = new TokenAlias(false, true, grammarAccess.getMemberDefinitionAccess().getSemicolonKeyword_5()); 37 match_ClassDeclaration_FULL_STOPTerminalRuleCall_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getClassDeclarationAccess().getRightCurlyBracketKeyword_4_0_2())), new TokenAlias(false, false, grammarAccess.getClassDeclarationAccess().getFULL_STOPTerminalRuleCall_4_1()));
38 match_EnumDeclaration_CommaKeyword_2_0_1_1_0_q = new TokenAlias(false, true, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_1_0());
39 match_EnumDeclaration_FULL_STOPTerminalRuleCall_2_1_or___LeftCurlyBracketKeyword_2_0_0_RightCurlyBracketKeyword_2_0_2__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getEnumDeclarationAccess().getLeftCurlyBracketKeyword_2_0_0()), new TokenAlias(false, false, grammarAccess.getEnumDeclarationAccess().getRightCurlyBracketKeyword_2_0_2())), new TokenAlias(false, false, grammarAccess.getEnumDeclarationAccess().getFULL_STOPTerminalRuleCall_2_1()));
40 match_Field_SemicolonKeyword_5_q = new TokenAlias(false, true, grammarAccess.getFieldAccess().getSemicolonKeyword_5());
33 } 41 }
34 42
35 @Override 43 @Override
@@ -71,8 +79,14 @@ public class SolverLanguageSyntacticSequencer extends AbstractSyntacticSequencer
71 emit_AtomicExpression_LeftParenthesisKeyword_4_0_a(semanticObject, getLastNavigableState(), syntaxNodes); 79 emit_AtomicExpression_LeftParenthesisKeyword_4_0_a(semanticObject, getLastNavigableState(), syntaxNodes);
72 else if (match_AtomicExpression_LeftParenthesisKeyword_4_0_p.equals(syntax)) 80 else if (match_AtomicExpression_LeftParenthesisKeyword_4_0_p.equals(syntax))
73 emit_AtomicExpression_LeftParenthesisKeyword_4_0_p(semanticObject, getLastNavigableState(), syntaxNodes); 81 emit_AtomicExpression_LeftParenthesisKeyword_4_0_p(semanticObject, getLastNavigableState(), syntaxNodes);
74 else if (match_MemberDefinition_SemicolonKeyword_5_q.equals(syntax)) 82 else if (match_ClassDeclaration_FULL_STOPTerminalRuleCall_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__.equals(syntax))
75 emit_MemberDefinition_SemicolonKeyword_5_q(semanticObject, getLastNavigableState(), syntaxNodes); 83 emit_ClassDeclaration_FULL_STOPTerminalRuleCall_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__(semanticObject, getLastNavigableState(), syntaxNodes);
84 else if (match_EnumDeclaration_CommaKeyword_2_0_1_1_0_q.equals(syntax))
85 emit_EnumDeclaration_CommaKeyword_2_0_1_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
86 else if (match_EnumDeclaration_FULL_STOPTerminalRuleCall_2_1_or___LeftCurlyBracketKeyword_2_0_0_RightCurlyBracketKeyword_2_0_2__.equals(syntax))
87 emit_EnumDeclaration_FULL_STOPTerminalRuleCall_2_1_or___LeftCurlyBracketKeyword_2_0_0_RightCurlyBracketKeyword_2_0_2__(semanticObject, getLastNavigableState(), syntaxNodes);
88 else if (match_Field_SemicolonKeyword_5_q.equals(syntax))
89 emit_Field_SemicolonKeyword_5_q(semanticObject, getLastNavigableState(), syntaxNodes);
76 else acceptNodes(getLastNavigableState(), syntaxNodes); 90 else acceptNodes(getLastNavigableState(), syntaxNodes);
77 } 91 }
78 } 92 }
@@ -82,26 +96,25 @@ public class SolverLanguageSyntacticSequencer extends AbstractSyntacticSequencer
82 * '('* 96 * '('*
83 * 97 *
84 * This ambiguous syntax occurs at: 98 * This ambiguous syntax occurs at:
85 * (rule start) (ambiguity) '[' lowerBound=Expression 99 * (rule start) (ambiguity) '[' lowerBound=AdditiveExpression
100 * (rule start) (ambiguity) 'count' '{' condition=Expression
86 * (rule start) (ambiguity) 'empty' (rule start) 101 * (rule start) (ambiguity) 'empty' (rule start)
87 * (rule start) (ambiguity) 'empty' FULL_STOP (rule start) 102 * (rule start) (ambiguity) 'if' condition=DisjunctiveExpression
88 * (rule start) (ambiguity) 'if' condition=Expression
89 * (rule start) (ambiguity) 'inf' (rule start) 103 * (rule start) (ambiguity) 'inf' (rule start)
90 * (rule start) (ambiguity) 'inf' FULL_STOP (rule start)
91 * (rule start) (ambiguity) 'let' bindings+=LetBinding 104 * (rule start) (ambiguity) 'let' bindings+=LetBinding
105 * (rule start) (ambiguity) components+=PathComponent
92 * (rule start) (ambiguity) functor=Reference 106 * (rule start) (ambiguity) functor=Reference
93 * (rule start) (ambiguity) op=UnaryOp 107 * (rule start) (ambiguity) op=UnaryOperator
94 * (rule start) (ambiguity) op=[NamedElement|QualifiedName] 108 * (rule start) (ambiguity) op=[Symbol|QualifiedName]
95 * (rule start) (ambiguity) quantifier=Quantifier 109 * (rule start) (ambiguity) value=INT
96 * (rule start) (ambiguity) referred=[NamedElement|QualifiedName]
97 * (rule start) (ambiguity) value=LogicValue 110 * (rule start) (ambiguity) value=LogicValue
98 * (rule start) (ambiguity) value=Real 111 * (rule start) (ambiguity) value=Real
99 * (rule start) (ambiguity) value=STRING 112 * (rule start) (ambiguity) value=STRING
100 * (rule start) (ambiguity) {BinaryExpression.left=} 113 * (rule start) (ambiguity) {BinaryExpression.left=}
101 * (rule start) (ambiguity) {CastExpression.body=} 114 * (rule start) (ambiguity) {CastExpression.body=}
102 * (rule start) (ambiguity) {Comparison.left=}
103 * (rule start) (ambiguity) {Conjunction.children+=} 115 * (rule start) (ambiguity) {Conjunction.children+=}
104 * (rule start) (ambiguity) {Disjunction.children+=} 116 * (rule start) (ambiguity) {Disjunction.children+=}
117 * (rule start) (ambiguity) {Forall.condition=}
105 * (rule start) (ambiguity) {Switch.cases+=} 118 * (rule start) (ambiguity) {Switch.cases+=}
106 */ 119 */
107 protected void emit_AtomicExpression_LeftParenthesisKeyword_4_0_a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) { 120 protected void emit_AtomicExpression_LeftParenthesisKeyword_4_0_a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
@@ -113,16 +126,16 @@ public class SolverLanguageSyntacticSequencer extends AbstractSyntacticSequencer
113 * '('+ 126 * '('+
114 * 127 *
115 * This ambiguous syntax occurs at: 128 * This ambiguous syntax occurs at:
116 * (rule start) (ambiguity) 'if' condition=Expression 129 * (rule start) (ambiguity) 'count' '{' condition=Expression
130 * (rule start) (ambiguity) 'if' condition=DisjunctiveExpression
117 * (rule start) (ambiguity) 'let' bindings+=LetBinding 131 * (rule start) (ambiguity) 'let' bindings+=LetBinding
118 * (rule start) (ambiguity) op=UnaryOp 132 * (rule start) (ambiguity) op=UnaryOperator
119 * (rule start) (ambiguity) op=[NamedElement|QualifiedName] 133 * (rule start) (ambiguity) op=[Symbol|QualifiedName]
120 * (rule start) (ambiguity) quantifier=Quantifier
121 * (rule start) (ambiguity) {BinaryExpression.left=} 134 * (rule start) (ambiguity) {BinaryExpression.left=}
122 * (rule start) (ambiguity) {CastExpression.body=} 135 * (rule start) (ambiguity) {CastExpression.body=}
123 * (rule start) (ambiguity) {Comparison.left=}
124 * (rule start) (ambiguity) {Conjunction.children+=} 136 * (rule start) (ambiguity) {Conjunction.children+=}
125 * (rule start) (ambiguity) {Disjunction.children+=} 137 * (rule start) (ambiguity) {Disjunction.children+=}
138 * (rule start) (ambiguity) {Forall.condition=}
126 * (rule start) (ambiguity) {Switch.cases+=} 139 * (rule start) (ambiguity) {Switch.cases+=}
127 */ 140 */
128 protected void emit_AtomicExpression_LeftParenthesisKeyword_4_0_p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) { 141 protected void emit_AtomicExpression_LeftParenthesisKeyword_4_0_p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
@@ -131,13 +144,47 @@ public class SolverLanguageSyntacticSequencer extends AbstractSyntacticSequencer
131 144
132 /** 145 /**
133 * Ambiguous syntax: 146 * Ambiguous syntax:
147 * ('{' '}') | FULL_STOP
148 *
149 * This ambiguous syntax occurs at:
150 * name=ID (ambiguity) (rule end)
151 * supertypes+=[Symbol|QualifiedName] (ambiguity) (rule end)
152 */
153 protected void emit_ClassDeclaration_FULL_STOPTerminalRuleCall_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
154 acceptNodes(transition, nodes);
155 }
156
157 /**
158 * Ambiguous syntax:
159 * ','?
160 *
161 * This ambiguous syntax occurs at:
162 * literals+=EnumLiteral (ambiguity) literals+=EnumLiteral
163 */
164 protected void emit_EnumDeclaration_CommaKeyword_2_0_1_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
165 acceptNodes(transition, nodes);
166 }
167
168 /**
169 * Ambiguous syntax:
170 * ('{' '}') | FULL_STOP
171 *
172 * This ambiguous syntax occurs at:
173 * name=ID (ambiguity) (rule end)
174 */
175 protected void emit_EnumDeclaration_FULL_STOPTerminalRuleCall_2_1_or___LeftCurlyBracketKeyword_2_0_0_RightCurlyBracketKeyword_2_0_2__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
176 acceptNodes(transition, nodes);
177 }
178
179 /**
180 * Ambiguous syntax:
134 * ';'? 181 * ';'?
135 * 182 *
136 * This ambiguous syntax occurs at: 183 * This ambiguous syntax occurs at:
137 * name=ID (ambiguity) (rule end) 184 * name=ID (ambiguity) (rule end)
138 * opposite=[NamedElement|QualifiedName] (ambiguity) (rule end) 185 * opposite=[Symbol|QualifiedName] (ambiguity) (rule end)
139 */ 186 */
140 protected void emit_MemberDefinition_SemicolonKeyword_5_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) { 187 protected void emit_Field_SemicolonKeyword_5_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
141 acceptNodes(transition, nodes); 188 acceptNodes(transition, nodes);
142 } 189 }
143 190
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/services/SolverLanguageGrammarAccess.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/services/SolverLanguageGrammarAccess.java
index ed1569a5..a70729d4 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/services/SolverLanguageGrammarAccess.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/services/SolverLanguageGrammarAccess.java
@@ -19,6 +19,7 @@ import org.eclipse.xtext.Keyword;
19import org.eclipse.xtext.ParserRule; 19import org.eclipse.xtext.ParserRule;
20import org.eclipse.xtext.RuleCall; 20import org.eclipse.xtext.RuleCall;
21import org.eclipse.xtext.TerminalRule; 21import org.eclipse.xtext.TerminalRule;
22import org.eclipse.xtext.UnorderedGroup;
22import org.eclipse.xtext.common.services.TerminalsGrammarAccess; 23import org.eclipse.xtext.common.services.TerminalsGrammarAccess;
23import org.eclipse.xtext.service.AbstractElementFinder.AbstractEnumRuleElementFinder; 24import org.eclipse.xtext.service.AbstractElementFinder.AbstractEnumRuleElementFinder;
24import org.eclipse.xtext.service.AbstractElementFinder.AbstractGrammarElementFinder; 25import org.eclipse.xtext.service.AbstractElementFinder.AbstractGrammarElementFinder;
@@ -29,91 +30,214 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
29 30
30 public class ProblemElements extends AbstractParserRuleElementFinder { 31 public class ProblemElements extends AbstractParserRuleElementFinder {
31 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Problem"); 32 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Problem");
32 private final Assignment cStatementsAssignment = (Assignment)rule.eContents().get(1); 33 private final Group cGroup = (Group)rule.eContents().get(1);
33 private final RuleCall cStatementsStatementParserRuleCall_0 = (RuleCall)cStatementsAssignment.eContents().get(0); 34 private final Group cGroup_0 = (Group)cGroup.eContents().get(0);
35 private final Keyword cProblemKeyword_0_0 = (Keyword)cGroup_0.eContents().get(0);
36 private final Assignment cNameAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1);
37 private final RuleCall cNameQualifiedNameParserRuleCall_0_1_0 = (RuleCall)cNameAssignment_0_1.eContents().get(0);
38 private final RuleCall cFULL_STOPTerminalRuleCall_0_2 = (RuleCall)cGroup_0.eContents().get(2);
39 private final Assignment cImportsAssignment_1 = (Assignment)cGroup.eContents().get(1);
40 private final RuleCall cImportsImportParserRuleCall_1_0 = (RuleCall)cImportsAssignment_1.eContents().get(0);
41 private final Assignment cStatementsAssignment_2 = (Assignment)cGroup.eContents().get(2);
42 private final RuleCall cStatementsStatementParserRuleCall_2_0 = (RuleCall)cStatementsAssignment_2.eContents().get(0);
34 43
35 //Problem: 44 //Problem:
45 // ("problem" name=QualifiedName FULL_STOP)?
46 // imports+=Import*
36 // statements+=Statement*; 47 // statements+=Statement*;
37 @Override public ParserRule getRule() { return rule; } 48 @Override public ParserRule getRule() { return rule; }
38 49
50 //("problem" name=QualifiedName FULL_STOP)? imports+=Import* statements+=Statement*
51 public Group getGroup() { return cGroup; }
52
53 //("problem" name=QualifiedName FULL_STOP)?
54 public Group getGroup_0() { return cGroup_0; }
55
56 //"problem"
57 public Keyword getProblemKeyword_0_0() { return cProblemKeyword_0_0; }
58
59 //name=QualifiedName
60 public Assignment getNameAssignment_0_1() { return cNameAssignment_0_1; }
61
62 //QualifiedName
63 public RuleCall getNameQualifiedNameParserRuleCall_0_1_0() { return cNameQualifiedNameParserRuleCall_0_1_0; }
64
65 //FULL_STOP
66 public RuleCall getFULL_STOPTerminalRuleCall_0_2() { return cFULL_STOPTerminalRuleCall_0_2; }
67
68 //imports+=Import*
69 public Assignment getImportsAssignment_1() { return cImportsAssignment_1; }
70
71 //Import
72 public RuleCall getImportsImportParserRuleCall_1_0() { return cImportsImportParserRuleCall_1_0; }
73
39 //statements+=Statement* 74 //statements+=Statement*
40 public Assignment getStatementsAssignment() { return cStatementsAssignment; } 75 public Assignment getStatementsAssignment_2() { return cStatementsAssignment_2; }
41 76
42 //Statement 77 //Statement
43 public RuleCall getStatementsStatementParserRuleCall_0() { return cStatementsStatementParserRuleCall_0; } 78 public RuleCall getStatementsStatementParserRuleCall_2_0() { return cStatementsStatementParserRuleCall_2_0; }
44 } 79 }
45 public class StatementElements extends AbstractParserRuleElementFinder { 80 public class StatementElements extends AbstractParserRuleElementFinder {
46 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Statement"); 81 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Statement");
47 private final Group cGroup = (Group)rule.eContents().get(1); 82 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
48 private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0); 83 private final RuleCall cAssertionOrDefinitionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
49 private final RuleCall cAssertionOrDefinitionParserRuleCall_0_0 = (RuleCall)cAlternatives_0.eContents().get(0); 84 private final RuleCall cPredicateDefinitionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
50 private final RuleCall cPredicateDefinitionParserRuleCall_0_1 = (RuleCall)cAlternatives_0.eContents().get(1); 85 private final RuleCall cUnnamedErrorPredicateDefintionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
51 private final RuleCall cUnnamedErrorPrediateDefinitionParserRuleCall_0_2 = (RuleCall)cAlternatives_0.eContents().get(2); 86 private final RuleCall cDefaultAssertionParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
52 private final RuleCall cDefaultDefinitionParserRuleCall_0_3 = (RuleCall)cAlternatives_0.eContents().get(3); 87 private final RuleCall cFunctionDefinitionParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
53 private final RuleCall cMetricDefinitionParserRuleCall_0_4 = (RuleCall)cAlternatives_0.eContents().get(4); 88 private final RuleCall cAttributeParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
54 private final RuleCall cExternPredicateDefinitionParserRuleCall_0_5 = (RuleCall)cAlternatives_0.eContents().get(5); 89 private final RuleCall cExternDeclarationParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
55 private final RuleCall cExternMetricDefinitionParserRuleCall_0_6 = (RuleCall)cAlternatives_0.eContents().get(6); 90 private final RuleCall cScopeDeclarationParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
56 private final RuleCall cExternAggregatorDefinitionParserRuleCall_0_7 = (RuleCall)cAlternatives_0.eContents().get(7); 91 private final RuleCall cObjectiveDeclarationParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8);
57 private final RuleCall cExternDatatypeDefinitionParserRuleCall_0_8 = (RuleCall)cAlternatives_0.eContents().get(8); 92 private final RuleCall cClassDeclarationParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9);
58 private final RuleCall cClassDefinitionParserRuleCall_0_9 = (RuleCall)cAlternatives_0.eContents().get(9); 93 private final RuleCall cEnumDeclarationParserRuleCall_10 = (RuleCall)cAlternatives.eContents().get(10);
59 private final RuleCall cScopeDefinitionParserRuleCall_0_10 = (RuleCall)cAlternatives_0.eContents().get(10);
60 private final RuleCall cObjectiveDefinitionParserRuleCall_0_11 = (RuleCall)cAlternatives_0.eContents().get(11);
61 private final RuleCall cFULL_STOPTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1);
62 94
63 //Statement: 95 //Statement:
64 // (AssertionOrDefinition | PredicateDefinition | UnnamedErrorPrediateDefinition | DefaultDefinition | MetricDefinition 96 // AssertionOrDefinition | PredicateDefinition | UnnamedErrorPredicateDefintion | DefaultAssertion | FunctionDefinition
65 // | ExternPredicateDefinition | ExternMetricDefinition | ExternAggregatorDefinition | ExternDatatypeDefinition | 97 // | Attribute | ExternDeclaration | ScopeDeclaration | ObjectiveDeclaration | ClassDeclaration | EnumDeclaration;
66 // ClassDefinition | ScopeDefinition | ObjectiveDefinition) FULL_STOP;
67 @Override public ParserRule getRule() { return rule; } 98 @Override public ParserRule getRule() { return rule; }
68 99
69 //(AssertionOrDefinition | PredicateDefinition | UnnamedErrorPrediateDefinition | DefaultDefinition | MetricDefinition | 100 //AssertionOrDefinition | PredicateDefinition | UnnamedErrorPredicateDefintion | DefaultAssertion | FunctionDefinition |
70 //ExternPredicateDefinition | ExternMetricDefinition | ExternAggregatorDefinition | ExternDatatypeDefinition | 101 //Attribute | ExternDeclaration | ScopeDeclaration | ObjectiveDeclaration | ClassDeclaration | EnumDeclaration
71 //ClassDefinition | ScopeDefinition | ObjectiveDefinition) FULL_STOP 102 public Alternatives getAlternatives() { return cAlternatives; }
72 public Group getGroup() { return cGroup; }
73
74 //(AssertionOrDefinition | PredicateDefinition | UnnamedErrorPrediateDefinition | DefaultDefinition | MetricDefinition |
75 //ExternPredicateDefinition | ExternMetricDefinition | ExternAggregatorDefinition | ExternDatatypeDefinition |
76 //ClassDefinition | ScopeDefinition | ObjectiveDefinition)
77 public Alternatives getAlternatives_0() { return cAlternatives_0; }
78 103
79 //AssertionOrDefinition 104 //AssertionOrDefinition
80 public RuleCall getAssertionOrDefinitionParserRuleCall_0_0() { return cAssertionOrDefinitionParserRuleCall_0_0; } 105 public RuleCall getAssertionOrDefinitionParserRuleCall_0() { return cAssertionOrDefinitionParserRuleCall_0; }
81 106
82 //PredicateDefinition 107 //PredicateDefinition
83 public RuleCall getPredicateDefinitionParserRuleCall_0_1() { return cPredicateDefinitionParserRuleCall_0_1; } 108 public RuleCall getPredicateDefinitionParserRuleCall_1() { return cPredicateDefinitionParserRuleCall_1; }
109
110 //UnnamedErrorPredicateDefintion
111 public RuleCall getUnnamedErrorPredicateDefintionParserRuleCall_2() { return cUnnamedErrorPredicateDefintionParserRuleCall_2; }
112
113 //DefaultAssertion
114 public RuleCall getDefaultAssertionParserRuleCall_3() { return cDefaultAssertionParserRuleCall_3; }
84 115
85 //UnnamedErrorPrediateDefinition 116 //FunctionDefinition
86 public RuleCall getUnnamedErrorPrediateDefinitionParserRuleCall_0_2() { return cUnnamedErrorPrediateDefinitionParserRuleCall_0_2; } 117 public RuleCall getFunctionDefinitionParserRuleCall_4() { return cFunctionDefinitionParserRuleCall_4; }
87 118
88 //DefaultDefinition 119 //Attribute
89 public RuleCall getDefaultDefinitionParserRuleCall_0_3() { return cDefaultDefinitionParserRuleCall_0_3; } 120 public RuleCall getAttributeParserRuleCall_5() { return cAttributeParserRuleCall_5; }
90 121
91 //MetricDefinition 122 //ExternDeclaration
92 public RuleCall getMetricDefinitionParserRuleCall_0_4() { return cMetricDefinitionParserRuleCall_0_4; } 123 public RuleCall getExternDeclarationParserRuleCall_6() { return cExternDeclarationParserRuleCall_6; }
93 124
94 //ExternPredicateDefinition 125 //ScopeDeclaration
95 public RuleCall getExternPredicateDefinitionParserRuleCall_0_5() { return cExternPredicateDefinitionParserRuleCall_0_5; } 126 public RuleCall getScopeDeclarationParserRuleCall_7() { return cScopeDeclarationParserRuleCall_7; }
96 127
97 //ExternMetricDefinition 128 //ObjectiveDeclaration
98 public RuleCall getExternMetricDefinitionParserRuleCall_0_6() { return cExternMetricDefinitionParserRuleCall_0_6; } 129 public RuleCall getObjectiveDeclarationParserRuleCall_8() { return cObjectiveDeclarationParserRuleCall_8; }
99 130
100 //ExternAggregatorDefinition 131 //ClassDeclaration
101 public RuleCall getExternAggregatorDefinitionParserRuleCall_0_7() { return cExternAggregatorDefinitionParserRuleCall_0_7; } 132 public RuleCall getClassDeclarationParserRuleCall_9() { return cClassDeclarationParserRuleCall_9; }
133
134 //EnumDeclaration
135 public RuleCall getEnumDeclarationParserRuleCall_10() { return cEnumDeclarationParserRuleCall_10; }
136 }
137 public class ImportElements extends AbstractParserRuleElementFinder {
138 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Import");
139 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
140 private final RuleCall cUriImportParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
141 private final RuleCall cNamespaceImportParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
102 142
103 //ExternDatatypeDefinition 143 //Import:
104 public RuleCall getExternDatatypeDefinitionParserRuleCall_0_8() { return cExternDatatypeDefinitionParserRuleCall_0_8; } 144 // UriImport | NamespaceImport;
145 @Override public ParserRule getRule() { return rule; }
105 146
106 //ClassDefinition 147 //UriImport | NamespaceImport
107 public RuleCall getClassDefinitionParserRuleCall_0_9() { return cClassDefinitionParserRuleCall_0_9; } 148 public Alternatives getAlternatives() { return cAlternatives; }
108 149
109 //ScopeDefinition 150 //UriImport
110 public RuleCall getScopeDefinitionParserRuleCall_0_10() { return cScopeDefinitionParserRuleCall_0_10; } 151 public RuleCall getUriImportParserRuleCall_0() { return cUriImportParserRuleCall_0; }
111 152
112 //ObjectiveDefinition 153 //NamespaceImport
113 public RuleCall getObjectiveDefinitionParserRuleCall_0_11() { return cObjectiveDefinitionParserRuleCall_0_11; } 154 public RuleCall getNamespaceImportParserRuleCall_1() { return cNamespaceImportParserRuleCall_1; }
155 }
156 public class UriImportElements extends AbstractParserRuleElementFinder {
157 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UriImport");
158 private final Group cGroup = (Group)rule.eContents().get(1);
159 private final Keyword cImportKeyword_0 = (Keyword)cGroup.eContents().get(0);
160 private final Assignment cUriAssignment_1 = (Assignment)cGroup.eContents().get(1);
161 private final RuleCall cUriSTRINGTerminalRuleCall_1_0 = (RuleCall)cUriAssignment_1.eContents().get(0);
162 private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
163 private final Keyword cAsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
164 private final Assignment cAliasAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
165 private final RuleCall cAliasQualifiedNameParserRuleCall_2_1_0 = (RuleCall)cAliasAssignment_2_1.eContents().get(0);
166 private final RuleCall cFULL_STOPTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3);
167
168 //UriImport:
169 // "import" uri=STRING ("as" alias=QualifiedName) FULL_STOP;
170 @Override public ParserRule getRule() { return rule; }
171
172 //"import" uri=STRING ("as" alias=QualifiedName) FULL_STOP
173 public Group getGroup() { return cGroup; }
174
175 //"import"
176 public Keyword getImportKeyword_0() { return cImportKeyword_0; }
177
178 //uri=STRING
179 public Assignment getUriAssignment_1() { return cUriAssignment_1; }
180
181 //STRING
182 public RuleCall getUriSTRINGTerminalRuleCall_1_0() { return cUriSTRINGTerminalRuleCall_1_0; }
183
184 //("as" alias=QualifiedName)
185 public Group getGroup_2() { return cGroup_2; }
186
187 //"as"
188 public Keyword getAsKeyword_2_0() { return cAsKeyword_2_0; }
189
190 //alias=QualifiedName
191 public Assignment getAliasAssignment_2_1() { return cAliasAssignment_2_1; }
192
193 //QualifiedName
194 public RuleCall getAliasQualifiedNameParserRuleCall_2_1_0() { return cAliasQualifiedNameParserRuleCall_2_1_0; }
195
196 //FULL_STOP
197 public RuleCall getFULL_STOPTerminalRuleCall_3() { return cFULL_STOPTerminalRuleCall_3; }
198 }
199 public class NamespaceImportElements extends AbstractParserRuleElementFinder {
200 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.NamespaceImport");
201 private final Group cGroup = (Group)rule.eContents().get(1);
202 private final Keyword cImportKeyword_0 = (Keyword)cGroup.eContents().get(0);
203 private final Assignment cImportedNamespaceAssignment_1 = (Assignment)cGroup.eContents().get(1);
204 private final RuleCall cImportedNamespaceQualifiedNameParserRuleCall_1_0 = (RuleCall)cImportedNamespaceAssignment_1.eContents().get(0);
205 private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
206 private final Keyword cAsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
207 private final Assignment cAliasAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
208 private final RuleCall cAliasQualifiedNameParserRuleCall_2_1_0 = (RuleCall)cAliasAssignment_2_1.eContents().get(0);
209 private final RuleCall cFULL_STOPTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3);
210
211 //NamespaceImport:
212 // "import" importedNamespace=QualifiedName ("as" alias=QualifiedName) FULL_STOP;
213 @Override public ParserRule getRule() { return rule; }
214
215 //"import" importedNamespace=QualifiedName ("as" alias=QualifiedName) FULL_STOP
216 public Group getGroup() { return cGroup; }
217
218 //"import"
219 public Keyword getImportKeyword_0() { return cImportKeyword_0; }
220
221 //importedNamespace=QualifiedName
222 public Assignment getImportedNamespaceAssignment_1() { return cImportedNamespaceAssignment_1; }
223
224 //QualifiedName
225 public RuleCall getImportedNamespaceQualifiedNameParserRuleCall_1_0() { return cImportedNamespaceQualifiedNameParserRuleCall_1_0; }
226
227 //("as" alias=QualifiedName)
228 public Group getGroup_2() { return cGroup_2; }
229
230 //"as"
231 public Keyword getAsKeyword_2_0() { return cAsKeyword_2_0; }
232
233 //alias=QualifiedName
234 public Assignment getAliasAssignment_2_1() { return cAliasAssignment_2_1; }
235
236 //QualifiedName
237 public RuleCall getAliasQualifiedNameParserRuleCall_2_1_0() { return cAliasQualifiedNameParserRuleCall_2_1_0; }
114 238
115 //FULL_STOP 239 //FULL_STOP
116 public RuleCall getFULL_STOPTerminalRuleCall_1() { return cFULL_STOPTerminalRuleCall_1; } 240 public RuleCall getFULL_STOPTerminalRuleCall_3() { return cFULL_STOPTerminalRuleCall_3; }
117 } 241 }
118 public class AssertionOrDefinitionElements extends AbstractParserRuleElementFinder { 242 public class AssertionOrDefinitionElements extends AbstractParserRuleElementFinder {
119 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AssertionOrDefinition"); 243 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AssertionOrDefinition");
@@ -121,51 +245,56 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
121 private final RuleCall cExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); 245 private final RuleCall cExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
122 private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); 246 private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
123 private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0); 247 private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0);
124 private final Action cInterpretationBodyAction_1_0_0 = (Action)cGroup_1_0.eContents().get(0); 248 private final Action cAssertionExpressionAction_1_0_0 = (Action)cGroup_1_0.eContents().get(0);
125 private final Keyword cColonKeyword_1_0_1 = (Keyword)cGroup_1_0.eContents().get(1); 249 private final Group cGroup_1_0_1 = (Group)cGroup_1_0.eContents().get(1);
126 private final Assignment cRangeAssignment_1_0_2 = (Assignment)cGroup_1_0.eContents().get(2); 250 private final Keyword cColonKeyword_1_0_1_0 = (Keyword)cGroup_1_0_1.eContents().get(0);
127 private final RuleCall cRangeExpressionParserRuleCall_1_0_2_0 = (RuleCall)cRangeAssignment_1_0_2.eContents().get(0); 251 private final Assignment cRangeAssignment_1_0_1_1 = (Assignment)cGroup_1_0_1.eContents().get(1);
252 private final RuleCall cRangeExpressionParserRuleCall_1_0_1_1_0 = (RuleCall)cRangeAssignment_1_0_1_1.eContents().get(0);
128 private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1); 253 private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1);
129 private final Action cPredicateDefinitionHeadAction_1_1_0 = (Action)cGroup_1_1.eContents().get(0); 254 private final Action cPredicateDefinitionHeadAction_1_1_0 = (Action)cGroup_1_1.eContents().get(0);
130 private final Keyword cColonHyphenMinusKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1); 255 private final Keyword cColonHyphenMinusKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1);
131 private final Assignment cBodyAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2); 256 private final Assignment cBodyAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2);
132 private final RuleCall cBodyExpressionParserRuleCall_1_1_2_0 = (RuleCall)cBodyAssignment_1_1_2.eContents().get(0); 257 private final RuleCall cBodyExpressionParserRuleCall_1_1_2_0 = (RuleCall)cBodyAssignment_1_1_2.eContents().get(0);
133 private final Group cGroup_1_2 = (Group)cAlternatives_1.eContents().get(2); 258 private final Group cGroup_1_2 = (Group)cAlternatives_1.eContents().get(2);
134 private final Action cMetricDefinitionHeadAction_1_2_0 = (Action)cGroup_1_2.eContents().get(0); 259 private final Action cFunctionDefinitionHeadAction_1_2_0 = (Action)cGroup_1_2.eContents().get(0);
135 private final Keyword cEqualsSignKeyword_1_2_1 = (Keyword)cGroup_1_2.eContents().get(1); 260 private final Keyword cColonEqualsSignKeyword_1_2_1 = (Keyword)cGroup_1_2.eContents().get(1);
136 private final Assignment cBodyAssignment_1_2_2 = (Assignment)cGroup_1_2.eContents().get(2); 261 private final Assignment cBodyAssignment_1_2_2 = (Assignment)cGroup_1_2.eContents().get(2);
137 private final RuleCall cBodyExpressionParserRuleCall_1_2_2_0 = (RuleCall)cBodyAssignment_1_2_2.eContents().get(0); 262 private final RuleCall cBodyExpressionParserRuleCall_1_2_2_0 = (RuleCall)cBodyAssignment_1_2_2.eContents().get(0);
263 private final RuleCall cFULL_STOPTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
138 264
139 //AssertionOrDefinition Statement: 265 //AssertionOrDefinition Statement:
140 // Expression ({Interpretation.body=current} ":" range=Expression | {PredicateDefinition.head=current} ":-" 266 // Expression ({Assertion.expression=current} (":" range=Expression)? | {PredicateDefinition.head=current} ":-"
141 // body=Expression | {MetricDefinition.head=current} "=" body=Expression)?; 267 // body=Expression | {FunctionDefinition.head=current} ":=" body=Expression) FULL_STOP;
142 @Override public ParserRule getRule() { return rule; } 268 @Override public ParserRule getRule() { return rule; }
143 269
144 //Expression ({Interpretation.body=current} ":" range=Expression | {PredicateDefinition.head=current} ":-" body=Expression 270 //Expression ({Assertion.expression=current} (":" range=Expression)? | {PredicateDefinition.head=current} ":-"
145 //| {MetricDefinition.head=current} "=" body=Expression)? 271 //body=Expression | {FunctionDefinition.head=current} ":=" body=Expression) FULL_STOP
146 public Group getGroup() { return cGroup; } 272 public Group getGroup() { return cGroup; }
147 273
148 //Expression 274 //Expression
149 public RuleCall getExpressionParserRuleCall_0() { return cExpressionParserRuleCall_0; } 275 public RuleCall getExpressionParserRuleCall_0() { return cExpressionParserRuleCall_0; }
150 276
151 //({Interpretation.body=current} ":" range=Expression | {PredicateDefinition.head=current} ":-" body=Expression | 277 //({Assertion.expression=current} (":" range=Expression)? | {PredicateDefinition.head=current} ":-" body=Expression |
152 //{MetricDefinition.head=current} "=" body=Expression)? 278 //{FunctionDefinition.head=current} ":=" body=Expression)
153 public Alternatives getAlternatives_1() { return cAlternatives_1; } 279 public Alternatives getAlternatives_1() { return cAlternatives_1; }
154 280
155 //{Interpretation.body=current} ":" range=Expression 281 //{Assertion.expression=current} (":" range=Expression)?
156 public Group getGroup_1_0() { return cGroup_1_0; } 282 public Group getGroup_1_0() { return cGroup_1_0; }
157 283
158 //{Interpretation.body=current} 284 //{Assertion.expression=current}
159 public Action getInterpretationBodyAction_1_0_0() { return cInterpretationBodyAction_1_0_0; } 285 public Action getAssertionExpressionAction_1_0_0() { return cAssertionExpressionAction_1_0_0; }
286
287 //(":" range=Expression)?
288 public Group getGroup_1_0_1() { return cGroup_1_0_1; }
160 289
161 //":" 290 //":"
162 public Keyword getColonKeyword_1_0_1() { return cColonKeyword_1_0_1; } 291 public Keyword getColonKeyword_1_0_1_0() { return cColonKeyword_1_0_1_0; }
163 292
164 //range=Expression 293 //range=Expression
165 public Assignment getRangeAssignment_1_0_2() { return cRangeAssignment_1_0_2; } 294 public Assignment getRangeAssignment_1_0_1_1() { return cRangeAssignment_1_0_1_1; }
166 295
167 //Expression 296 //Expression
168 public RuleCall getRangeExpressionParserRuleCall_1_0_2_0() { return cRangeExpressionParserRuleCall_1_0_2_0; } 297 public RuleCall getRangeExpressionParserRuleCall_1_0_1_1_0() { return cRangeExpressionParserRuleCall_1_0_1_1_0; }
169 298
170 //{PredicateDefinition.head=current} ":-" body=Expression 299 //{PredicateDefinition.head=current} ":-" body=Expression
171 public Group getGroup_1_1() { return cGroup_1_1; } 300 public Group getGroup_1_1() { return cGroup_1_1; }
@@ -182,20 +311,23 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
182 //Expression 311 //Expression
183 public RuleCall getBodyExpressionParserRuleCall_1_1_2_0() { return cBodyExpressionParserRuleCall_1_1_2_0; } 312 public RuleCall getBodyExpressionParserRuleCall_1_1_2_0() { return cBodyExpressionParserRuleCall_1_1_2_0; }
184 313
185 //{MetricDefinition.head=current} "=" body=Expression 314 //{FunctionDefinition.head=current} ":=" body=Expression
186 public Group getGroup_1_2() { return cGroup_1_2; } 315 public Group getGroup_1_2() { return cGroup_1_2; }
187 316
188 //{MetricDefinition.head=current} 317 //{FunctionDefinition.head=current}
189 public Action getMetricDefinitionHeadAction_1_2_0() { return cMetricDefinitionHeadAction_1_2_0; } 318 public Action getFunctionDefinitionHeadAction_1_2_0() { return cFunctionDefinitionHeadAction_1_2_0; }
190 319
191 //"=" 320 //":="
192 public Keyword getEqualsSignKeyword_1_2_1() { return cEqualsSignKeyword_1_2_1; } 321 public Keyword getColonEqualsSignKeyword_1_2_1() { return cColonEqualsSignKeyword_1_2_1; }
193 322
194 //body=Expression 323 //body=Expression
195 public Assignment getBodyAssignment_1_2_2() { return cBodyAssignment_1_2_2; } 324 public Assignment getBodyAssignment_1_2_2() { return cBodyAssignment_1_2_2; }
196 325
197 //Expression 326 //Expression
198 public RuleCall getBodyExpressionParserRuleCall_1_2_2_0() { return cBodyExpressionParserRuleCall_1_2_2_0; } 327 public RuleCall getBodyExpressionParserRuleCall_1_2_2_0() { return cBodyExpressionParserRuleCall_1_2_2_0; }
328
329 //FULL_STOP
330 public RuleCall getFULL_STOPTerminalRuleCall_2() { return cFULL_STOPTerminalRuleCall_2; }
199 } 331 }
200 public class PredicateDefinitionElements extends AbstractParserRuleElementFinder { 332 public class PredicateDefinitionElements extends AbstractParserRuleElementFinder {
201 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.PredicateDefinition"); 333 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.PredicateDefinition");
@@ -216,12 +348,15 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
216 private final Keyword cColonHyphenMinusKeyword_2 = (Keyword)cGroup.eContents().get(2); 348 private final Keyword cColonHyphenMinusKeyword_2 = (Keyword)cGroup.eContents().get(2);
217 private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3); 349 private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3);
218 private final RuleCall cBodyExpressionParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0); 350 private final RuleCall cBodyExpressionParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0);
351 private final RuleCall cFULL_STOPTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
219 352
220 //PredicateDefinition: 353 //PredicateDefinition:
221 // (functional?="functional" error?="error"? | error?="error" functional?="functional"?) head=Call ":-" body=Expression; 354 // (functional?="functional" error?="error"? | error?="error" functional?="functional"?) head=Call ":-" body=Expression
355 // FULL_STOP;
222 @Override public ParserRule getRule() { return rule; } 356 @Override public ParserRule getRule() { return rule; }
223 357
224 //(functional?="functional" error?="error"? | error?="error" functional?="functional"?) head=Call ":-" body=Expression 358 //(functional?="functional" error?="error"? | error?="error" functional?="functional"?) head=Call ":-" body=Expression
359 //FULL_STOP
225 public Group getGroup() { return cGroup; } 360 public Group getGroup() { return cGroup; }
226 361
227 //(functional?="functional" error?="error"? | error?="error" functional?="functional"?) 362 //(functional?="functional" error?="error"? | error?="error" functional?="functional"?)
@@ -271,9 +406,12 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
271 406
272 //Expression 407 //Expression
273 public RuleCall getBodyExpressionParserRuleCall_3_0() { return cBodyExpressionParserRuleCall_3_0; } 408 public RuleCall getBodyExpressionParserRuleCall_3_0() { return cBodyExpressionParserRuleCall_3_0; }
409
410 //FULL_STOP
411 public RuleCall getFULL_STOPTerminalRuleCall_4() { return cFULL_STOPTerminalRuleCall_4; }
274 } 412 }
275 public class UnnamedErrorPrediateDefinitionElements extends AbstractParserRuleElementFinder { 413 public class UnnamedErrorPredicateDefintionElements extends AbstractParserRuleElementFinder {
276 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnnamedErrorPrediateDefinition"); 414 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnnamedErrorPredicateDefintion");
277 private final Group cGroup = (Group)rule.eContents().get(1); 415 private final Group cGroup = (Group)rule.eContents().get(1);
278 private final Keyword cErrorKeyword_0 = (Keyword)cGroup.eContents().get(0); 416 private final Keyword cErrorKeyword_0 = (Keyword)cGroup.eContents().get(0);
279 private final Assignment cArgumentListAssignment_1 = (Assignment)cGroup.eContents().get(1); 417 private final Assignment cArgumentListAssignment_1 = (Assignment)cGroup.eContents().get(1);
@@ -281,12 +419,13 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
281 private final Keyword cColonHyphenMinusKeyword_2 = (Keyword)cGroup.eContents().get(2); 419 private final Keyword cColonHyphenMinusKeyword_2 = (Keyword)cGroup.eContents().get(2);
282 private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3); 420 private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3);
283 private final RuleCall cBodyExpressionParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0); 421 private final RuleCall cBodyExpressionParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0);
422 private final RuleCall cFULL_STOPTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
284 423
285 //UnnamedErrorPrediateDefinition: 424 //UnnamedErrorPredicateDefintion:
286 // "error" argumentList=ArgumentList ":-" body=Expression; 425 // "error" argumentList=ArgumentList ":-" body=Expression FULL_STOP;
287 @Override public ParserRule getRule() { return rule; } 426 @Override public ParserRule getRule() { return rule; }
288 427
289 //"error" argumentList=ArgumentList ":-" body=Expression 428 //"error" argumentList=ArgumentList ":-" body=Expression FULL_STOP
290 public Group getGroup() { return cGroup; } 429 public Group getGroup() { return cGroup; }
291 430
292 //"error" 431 //"error"
@@ -306,69 +445,81 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
306 445
307 //Expression 446 //Expression
308 public RuleCall getBodyExpressionParserRuleCall_3_0() { return cBodyExpressionParserRuleCall_3_0; } 447 public RuleCall getBodyExpressionParserRuleCall_3_0() { return cBodyExpressionParserRuleCall_3_0; }
448
449 //FULL_STOP
450 public RuleCall getFULL_STOPTerminalRuleCall_4() { return cFULL_STOPTerminalRuleCall_4; }
309 } 451 }
310 public class DefaultDefinitionElements extends AbstractParserRuleElementFinder { 452 public class DefaultAssertionElements extends AbstractParserRuleElementFinder {
311 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.DefaultDefinition"); 453 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.DefaultAssertion");
312 private final Group cGroup = (Group)rule.eContents().get(1); 454 private final Group cGroup = (Group)rule.eContents().get(1);
313 private final Keyword cDefaultKeyword_0 = (Keyword)cGroup.eContents().get(0); 455 private final Keyword cDefaultKeyword_0 = (Keyword)cGroup.eContents().get(0);
314 private final Assignment cHeadAssignment_1 = (Assignment)cGroup.eContents().get(1); 456 private final Assignment cExpressionAssignment_1 = (Assignment)cGroup.eContents().get(1);
315 private final RuleCall cHeadCallParserRuleCall_1_0 = (RuleCall)cHeadAssignment_1.eContents().get(0); 457 private final RuleCall cExpressionCallParserRuleCall_1_0 = (RuleCall)cExpressionAssignment_1.eContents().get(0);
316 private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2); 458 private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
317 private final Assignment cRangeAssignment_3 = (Assignment)cGroup.eContents().get(3); 459 private final Keyword cColonKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
318 private final RuleCall cRangeExpressionParserRuleCall_3_0 = (RuleCall)cRangeAssignment_3.eContents().get(0); 460 private final Assignment cRangeAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
461 private final RuleCall cRangeExpressionParserRuleCall_2_1_0 = (RuleCall)cRangeAssignment_2_1.eContents().get(0);
462 private final RuleCall cFULL_STOPTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3);
319 463
320 //DefaultDefinition: 464 //DefaultAssertion:
321 // "default" head=Call ":" range=Expression; 465 // "default" expression=Call (":" range=Expression)? FULL_STOP;
322 @Override public ParserRule getRule() { return rule; } 466 @Override public ParserRule getRule() { return rule; }
323 467
324 //"default" head=Call ":" range=Expression 468 //"default" expression=Call (":" range=Expression)? FULL_STOP
325 public Group getGroup() { return cGroup; } 469 public Group getGroup() { return cGroup; }
326 470
327 //"default" 471 //"default"
328 public Keyword getDefaultKeyword_0() { return cDefaultKeyword_0; } 472 public Keyword getDefaultKeyword_0() { return cDefaultKeyword_0; }
329 473
330 //head=Call 474 //expression=Call
331 public Assignment getHeadAssignment_1() { return cHeadAssignment_1; } 475 public Assignment getExpressionAssignment_1() { return cExpressionAssignment_1; }
332 476
333 //Call 477 //Call
334 public RuleCall getHeadCallParserRuleCall_1_0() { return cHeadCallParserRuleCall_1_0; } 478 public RuleCall getExpressionCallParserRuleCall_1_0() { return cExpressionCallParserRuleCall_1_0; }
479
480 //(":" range=Expression)?
481 public Group getGroup_2() { return cGroup_2; }
335 482
336 //":" 483 //":"
337 public Keyword getColonKeyword_2() { return cColonKeyword_2; } 484 public Keyword getColonKeyword_2_0() { return cColonKeyword_2_0; }
338 485
339 //range=Expression 486 //range=Expression
340 public Assignment getRangeAssignment_3() { return cRangeAssignment_3; } 487 public Assignment getRangeAssignment_2_1() { return cRangeAssignment_2_1; }
341 488
342 //Expression 489 //Expression
343 public RuleCall getRangeExpressionParserRuleCall_3_0() { return cRangeExpressionParserRuleCall_3_0; } 490 public RuleCall getRangeExpressionParserRuleCall_2_1_0() { return cRangeExpressionParserRuleCall_2_1_0; }
491
492 //FULL_STOP
493 public RuleCall getFULL_STOPTerminalRuleCall_3() { return cFULL_STOPTerminalRuleCall_3; }
344 } 494 }
345 public class MetricDefinitionElements extends AbstractParserRuleElementFinder { 495 public class FunctionDefinitionElements extends AbstractParserRuleElementFinder {
346 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.MetricDefinition"); 496 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.FunctionDefinition");
347 private final Group cGroup = (Group)rule.eContents().get(1); 497 private final Group cGroup = (Group)rule.eContents().get(1);
348 private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0); 498 private final Assignment cResultTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
349 private final CrossReference cTypeNamedElementCrossReference_0_0 = (CrossReference)cTypeAssignment_0.eContents().get(0); 499 private final CrossReference cResultTypeSymbolCrossReference_0_0 = (CrossReference)cResultTypeAssignment_0.eContents().get(0);
350 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cTypeNamedElementCrossReference_0_0.eContents().get(1); 500 private final RuleCall cResultTypeSymbolQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cResultTypeSymbolCrossReference_0_0.eContents().get(1);
351 private final Assignment cHeadAssignment_1 = (Assignment)cGroup.eContents().get(1); 501 private final Assignment cHeadAssignment_1 = (Assignment)cGroup.eContents().get(1);
352 private final RuleCall cHeadCallParserRuleCall_1_0 = (RuleCall)cHeadAssignment_1.eContents().get(0); 502 private final RuleCall cHeadCallParserRuleCall_1_0 = (RuleCall)cHeadAssignment_1.eContents().get(0);
353 private final Keyword cEqualsSignKeyword_2 = (Keyword)cGroup.eContents().get(2); 503 private final Keyword cColonEqualsSignKeyword_2 = (Keyword)cGroup.eContents().get(2);
354 private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3); 504 private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3);
355 private final RuleCall cBodyExpressionParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0); 505 private final RuleCall cBodyExpressionParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0);
506 private final RuleCall cFULL_STOPTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
356 507
357 //MetricDefinition: 508 //FunctionDefinition:
358 // type=[NamedElement|QualifiedName] head=Call "=" body=Expression; 509 // resultType=[Symbol|QualifiedName] head=Call ":=" body=Expression FULL_STOP;
359 @Override public ParserRule getRule() { return rule; } 510 @Override public ParserRule getRule() { return rule; }
360 511
361 //type=[NamedElement|QualifiedName] head=Call "=" body=Expression 512 //resultType=[Symbol|QualifiedName] head=Call ":=" body=Expression FULL_STOP
362 public Group getGroup() { return cGroup; } 513 public Group getGroup() { return cGroup; }
363 514
364 //type=[NamedElement|QualifiedName] 515 //resultType=[Symbol|QualifiedName]
365 public Assignment getTypeAssignment_0() { return cTypeAssignment_0; } 516 public Assignment getResultTypeAssignment_0() { return cResultTypeAssignment_0; }
366 517
367 //[NamedElement|QualifiedName] 518 //[Symbol|QualifiedName]
368 public CrossReference getTypeNamedElementCrossReference_0_0() { return cTypeNamedElementCrossReference_0_0; } 519 public CrossReference getResultTypeSymbolCrossReference_0_0() { return cResultTypeSymbolCrossReference_0_0; }
369 520
370 //QualifiedName 521 //QualifiedName
371 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_0_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_0_0_1; } 522 public RuleCall getResultTypeSymbolQualifiedNameParserRuleCall_0_0_1() { return cResultTypeSymbolQualifiedNameParserRuleCall_0_0_1; }
372 523
373 //head=Call 524 //head=Call
374 public Assignment getHeadAssignment_1() { return cHeadAssignment_1; } 525 public Assignment getHeadAssignment_1() { return cHeadAssignment_1; }
@@ -376,76 +527,199 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
376 //Call 527 //Call
377 public RuleCall getHeadCallParserRuleCall_1_0() { return cHeadCallParserRuleCall_1_0; } 528 public RuleCall getHeadCallParserRuleCall_1_0() { return cHeadCallParserRuleCall_1_0; }
378 529
379 //"=" 530 //":="
380 public Keyword getEqualsSignKeyword_2() { return cEqualsSignKeyword_2; } 531 public Keyword getColonEqualsSignKeyword_2() { return cColonEqualsSignKeyword_2; }
381 532
382 //body=Expression 533 //body=Expression
383 public Assignment getBodyAssignment_3() { return cBodyAssignment_3; } 534 public Assignment getBodyAssignment_3() { return cBodyAssignment_3; }
384 535
385 //Expression 536 //Expression
386 public RuleCall getBodyExpressionParserRuleCall_3_0() { return cBodyExpressionParserRuleCall_3_0; } 537 public RuleCall getBodyExpressionParserRuleCall_3_0() { return cBodyExpressionParserRuleCall_3_0; }
538
539 //FULL_STOP
540 public RuleCall getFULL_STOPTerminalRuleCall_4() { return cFULL_STOPTerminalRuleCall_4; }
541 }
542 public class TypeReferenceElements extends AbstractParserRuleElementFinder {
543 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.TypeReference");
544 private final Group cGroup = (Group)rule.eContents().get(1);
545 private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
546 private final CrossReference cTypeSymbolCrossReference_0_0 = (CrossReference)cTypeAssignment_0.eContents().get(0);
547 private final RuleCall cTypeSymbolQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cTypeSymbolCrossReference_0_0.eContents().get(1);
548 private final Assignment cForceObjectTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
549 private final Keyword cForceObjectTypeObjectKeyword_1_0 = (Keyword)cForceObjectTypeAssignment_1.eContents().get(0);
550
551 //TypeReference:
552 // type=[Symbol|QualifiedName] forceObjectType?="object"?;
553 @Override public ParserRule getRule() { return rule; }
554
555 //type=[Symbol|QualifiedName] forceObjectType?="object"?
556 public Group getGroup() { return cGroup; }
557
558 //type=[Symbol|QualifiedName]
559 public Assignment getTypeAssignment_0() { return cTypeAssignment_0; }
560
561 //[Symbol|QualifiedName]
562 public CrossReference getTypeSymbolCrossReference_0_0() { return cTypeSymbolCrossReference_0_0; }
563
564 //QualifiedName
565 public RuleCall getTypeSymbolQualifiedNameParserRuleCall_0_0_1() { return cTypeSymbolQualifiedNameParserRuleCall_0_0_1; }
566
567 //forceObjectType?="object"?
568 public Assignment getForceObjectTypeAssignment_1() { return cForceObjectTypeAssignment_1; }
569
570 //"object"
571 public Keyword getForceObjectTypeObjectKeyword_1_0() { return cForceObjectTypeObjectKeyword_1_0; }
572 }
573 public class AttributeElements extends AbstractParserRuleElementFinder {
574 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Attribute");
575 private final Group cGroup = (Group)rule.eContents().get(1);
576 private final Assignment cKindAssignment_0 = (Assignment)cGroup.eContents().get(0);
577 private final RuleCall cKindAttributeKindEnumRuleCall_0_0 = (RuleCall)cKindAssignment_0.eContents().get(0);
578 private final Assignment cTargetAssignment_1 = (Assignment)cGroup.eContents().get(1);
579 private final CrossReference cTargetSymbolCrossReference_1_0 = (CrossReference)cTargetAssignment_1.eContents().get(0);
580 private final RuleCall cTargetSymbolQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTargetSymbolCrossReference_1_0.eContents().get(1);
581 private final RuleCall cFULL_STOPTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
582
583 //Attribute:
584 // kind=AttributeKind target=[Symbol|QualifiedName] FULL_STOP;
585 @Override public ParserRule getRule() { return rule; }
586
587 //kind=AttributeKind target=[Symbol|QualifiedName] FULL_STOP
588 public Group getGroup() { return cGroup; }
589
590 //kind=AttributeKind
591 public Assignment getKindAssignment_0() { return cKindAssignment_0; }
592
593 //AttributeKind
594 public RuleCall getKindAttributeKindEnumRuleCall_0_0() { return cKindAttributeKindEnumRuleCall_0_0; }
595
596 //target=[Symbol|QualifiedName]
597 public Assignment getTargetAssignment_1() { return cTargetAssignment_1; }
598
599 //[Symbol|QualifiedName]
600 public CrossReference getTargetSymbolCrossReference_1_0() { return cTargetSymbolCrossReference_1_0; }
601
602 //QualifiedName
603 public RuleCall getTargetSymbolQualifiedNameParserRuleCall_1_0_1() { return cTargetSymbolQualifiedNameParserRuleCall_1_0_1; }
604
605 //FULL_STOP
606 public RuleCall getFULL_STOPTerminalRuleCall_2() { return cFULL_STOPTerminalRuleCall_2; }
387 } 607 }
388 public class ExternPredicateDefinitionElements extends AbstractParserRuleElementFinder { 608 public class ExternDeclarationElements extends AbstractParserRuleElementFinder {
389 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternPredicateDefinition"); 609 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternDeclaration");
610 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
611 private final RuleCall cExternPredicateDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
612 private final RuleCall cExternFunctionDeclarationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
613 private final RuleCall cExternAggregationOperatorDeclarationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
614 private final RuleCall cExternDatatypeDeclarationParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
615
616 //ExternDeclaration:
617 // ExternPredicateDeclaration | ExternFunctionDeclaration | ExternAggregationOperatorDeclaration |
618 // ExternDatatypeDeclaration;
619 @Override public ParserRule getRule() { return rule; }
620
621 //ExternPredicateDeclaration | ExternFunctionDeclaration | ExternAggregationOperatorDeclaration |
622 //ExternDatatypeDeclaration
623 public Alternatives getAlternatives() { return cAlternatives; }
624
625 //ExternPredicateDeclaration
626 public RuleCall getExternPredicateDeclarationParserRuleCall_0() { return cExternPredicateDeclarationParserRuleCall_0; }
627
628 //ExternFunctionDeclaration
629 public RuleCall getExternFunctionDeclarationParserRuleCall_1() { return cExternFunctionDeclarationParserRuleCall_1; }
630
631 //ExternAggregationOperatorDeclaration
632 public RuleCall getExternAggregationOperatorDeclarationParserRuleCall_2() { return cExternAggregationOperatorDeclarationParserRuleCall_2; }
633
634 //ExternDatatypeDeclaration
635 public RuleCall getExternDatatypeDeclarationParserRuleCall_3() { return cExternDatatypeDeclarationParserRuleCall_3; }
636 }
637 public class ExternPredicateDeclarationElements extends AbstractParserRuleElementFinder {
638 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternPredicateDeclaration");
390 private final Group cGroup = (Group)rule.eContents().get(1); 639 private final Group cGroup = (Group)rule.eContents().get(1);
391 private final Keyword cExternKeyword_0 = (Keyword)cGroup.eContents().get(0); 640 private final Keyword cExternKeyword_0 = (Keyword)cGroup.eContents().get(0);
392 private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); 641 private final UnorderedGroup cUnorderedGroup_1 = (UnorderedGroup)cGroup.eContents().get(1);
393 private final RuleCall cNameQualifiedNameParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); 642 private final Assignment cFunctionalAssignment_1_0 = (Assignment)cUnorderedGroup_1.eContents().get(0);
394 private final Assignment cArgumentListAssignment_2 = (Assignment)cGroup.eContents().get(2); 643 private final Keyword cFunctionalFunctionalKeyword_1_0_0 = (Keyword)cFunctionalAssignment_1_0.eContents().get(0);
395 private final RuleCall cArgumentListArgumentListParserRuleCall_2_0 = (RuleCall)cArgumentListAssignment_2.eContents().get(0); 644 private final Assignment cErrorAssignment_1_1 = (Assignment)cUnorderedGroup_1.eContents().get(1);
645 private final Keyword cErrorErrorKeyword_1_1_0 = (Keyword)cErrorAssignment_1_1.eContents().get(0);
646 private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
647 private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
648 private final Assignment cArgumentListAssignment_3 = (Assignment)cGroup.eContents().get(3);
649 private final RuleCall cArgumentListArgumentListParserRuleCall_3_0 = (RuleCall)cArgumentListAssignment_3.eContents().get(0);
650 private final RuleCall cFULL_STOPTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
396 651
397 //ExternPredicateDefinition: 652 //ExternPredicateDeclaration:
398 // "extern" name=QualifiedName argumentList=ArgumentList; 653 // "extern" (functional?="functional"? & error?="error"?) name=QualifiedName argumentList=ArgumentList FULL_STOP;
399 @Override public ParserRule getRule() { return rule; } 654 @Override public ParserRule getRule() { return rule; }
400 655
401 //"extern" name=QualifiedName argumentList=ArgumentList 656 //"extern" (functional?="functional"? & error?="error"?) name=QualifiedName argumentList=ArgumentList FULL_STOP
402 public Group getGroup() { return cGroup; } 657 public Group getGroup() { return cGroup; }
403 658
404 //"extern" 659 //"extern"
405 public Keyword getExternKeyword_0() { return cExternKeyword_0; } 660 public Keyword getExternKeyword_0() { return cExternKeyword_0; }
406 661
662 //(functional?="functional"? & error?="error"?)
663 public UnorderedGroup getUnorderedGroup_1() { return cUnorderedGroup_1; }
664
665 //functional?="functional"?
666 public Assignment getFunctionalAssignment_1_0() { return cFunctionalAssignment_1_0; }
667
668 //"functional"
669 public Keyword getFunctionalFunctionalKeyword_1_0_0() { return cFunctionalFunctionalKeyword_1_0_0; }
670
671 //error?="error"?
672 public Assignment getErrorAssignment_1_1() { return cErrorAssignment_1_1; }
673
674 //"error"
675 public Keyword getErrorErrorKeyword_1_1_0() { return cErrorErrorKeyword_1_1_0; }
676
407 //name=QualifiedName 677 //name=QualifiedName
408 public Assignment getNameAssignment_1() { return cNameAssignment_1; } 678 public Assignment getNameAssignment_2() { return cNameAssignment_2; }
409 679
410 //QualifiedName 680 //QualifiedName
411 public RuleCall getNameQualifiedNameParserRuleCall_1_0() { return cNameQualifiedNameParserRuleCall_1_0; } 681 public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
412 682
413 //argumentList=ArgumentList 683 //argumentList=ArgumentList
414 public Assignment getArgumentListAssignment_2() { return cArgumentListAssignment_2; } 684 public Assignment getArgumentListAssignment_3() { return cArgumentListAssignment_3; }
415 685
416 //ArgumentList 686 //ArgumentList
417 public RuleCall getArgumentListArgumentListParserRuleCall_2_0() { return cArgumentListArgumentListParserRuleCall_2_0; } 687 public RuleCall getArgumentListArgumentListParserRuleCall_3_0() { return cArgumentListArgumentListParserRuleCall_3_0; }
688
689 //FULL_STOP
690 public RuleCall getFULL_STOPTerminalRuleCall_4() { return cFULL_STOPTerminalRuleCall_4; }
418 } 691 }
419 public class ExternMetricDefinitionElements extends AbstractParserRuleElementFinder { 692 public class ExternFunctionDeclarationElements extends AbstractParserRuleElementFinder {
420 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternMetricDefinition"); 693 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternFunctionDeclaration");
421 private final Group cGroup = (Group)rule.eContents().get(1); 694 private final Group cGroup = (Group)rule.eContents().get(1);
422 private final Keyword cExternKeyword_0 = (Keyword)cGroup.eContents().get(0); 695 private final Keyword cExternKeyword_0 = (Keyword)cGroup.eContents().get(0);
423 private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1); 696 private final Assignment cResultTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
424 private final CrossReference cTypeNamedElementCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0); 697 private final CrossReference cResultTypeSymbolCrossReference_1_0 = (CrossReference)cResultTypeAssignment_1.eContents().get(0);
425 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_0.eContents().get(1); 698 private final RuleCall cResultTypeSymbolQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cResultTypeSymbolCrossReference_1_0.eContents().get(1);
426 private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); 699 private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
427 private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); 700 private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
428 private final Assignment cArgumentListAssignment_3 = (Assignment)cGroup.eContents().get(3); 701 private final Assignment cArgumentListAssignment_3 = (Assignment)cGroup.eContents().get(3);
429 private final RuleCall cArgumentListArgumentListParserRuleCall_3_0 = (RuleCall)cArgumentListAssignment_3.eContents().get(0); 702 private final RuleCall cArgumentListArgumentListParserRuleCall_3_0 = (RuleCall)cArgumentListAssignment_3.eContents().get(0);
703 private final RuleCall cFULL_STOPTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
430 704
431 //ExternMetricDefinition: 705 //ExternFunctionDeclaration:
432 // "extern" type=[NamedElement|QualifiedName] name=QualifiedName argumentList=ArgumentList; 706 // "extern" resultType=[Symbol|QualifiedName] name=QualifiedName argumentList=ArgumentList FULL_STOP;
433 @Override public ParserRule getRule() { return rule; } 707 @Override public ParserRule getRule() { return rule; }
434 708
435 //"extern" type=[NamedElement|QualifiedName] name=QualifiedName argumentList=ArgumentList 709 //"extern" resultType=[Symbol|QualifiedName] name=QualifiedName argumentList=ArgumentList FULL_STOP
436 public Group getGroup() { return cGroup; } 710 public Group getGroup() { return cGroup; }
437 711
438 //"extern" 712 //"extern"
439 public Keyword getExternKeyword_0() { return cExternKeyword_0; } 713 public Keyword getExternKeyword_0() { return cExternKeyword_0; }
440 714
441 //type=[NamedElement|QualifiedName] 715 //resultType=[Symbol|QualifiedName]
442 public Assignment getTypeAssignment_1() { return cTypeAssignment_1; } 716 public Assignment getResultTypeAssignment_1() { return cResultTypeAssignment_1; }
443 717
444 //[NamedElement|QualifiedName] 718 //[Symbol|QualifiedName]
445 public CrossReference getTypeNamedElementCrossReference_1_0() { return cTypeNamedElementCrossReference_1_0; } 719 public CrossReference getResultTypeSymbolCrossReference_1_0() { return cResultTypeSymbolCrossReference_1_0; }
446 720
447 //QualifiedName 721 //QualifiedName
448 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_0_1; } 722 public RuleCall getResultTypeSymbolQualifiedNameParserRuleCall_1_0_1() { return cResultTypeSymbolQualifiedNameParserRuleCall_1_0_1; }
449 723
450 //name=QualifiedName 724 //name=QualifiedName
451 public Assignment getNameAssignment_2() { return cNameAssignment_2; } 725 public Assignment getNameAssignment_2() { return cNameAssignment_2; }
@@ -458,41 +732,47 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
458 732
459 //ArgumentList 733 //ArgumentList
460 public RuleCall getArgumentListArgumentListParserRuleCall_3_0() { return cArgumentListArgumentListParserRuleCall_3_0; } 734 public RuleCall getArgumentListArgumentListParserRuleCall_3_0() { return cArgumentListArgumentListParserRuleCall_3_0; }
735
736 //FULL_STOP
737 public RuleCall getFULL_STOPTerminalRuleCall_4() { return cFULL_STOPTerminalRuleCall_4; }
461 } 738 }
462 public class ExternAggregatorDefinitionElements extends AbstractParserRuleElementFinder { 739 public class ExternAggregationOperatorDeclarationElements extends AbstractParserRuleElementFinder {
463 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternAggregatorDefinition"); 740 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternAggregationOperatorDeclaration");
464 private final Group cGroup = (Group)rule.eContents().get(1); 741 private final Group cGroup = (Group)rule.eContents().get(1);
465 private final Keyword cExternKeyword_0 = (Keyword)cGroup.eContents().get(0); 742 private final Keyword cExternKeyword_0 = (Keyword)cGroup.eContents().get(0);
466 private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1); 743 private final Assignment cResultTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
467 private final CrossReference cTypeNamedElementCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0); 744 private final CrossReference cResultTypeSymbolCrossReference_1_0 = (CrossReference)cResultTypeAssignment_1.eContents().get(0);
468 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_0.eContents().get(1); 745 private final RuleCall cResultTypeSymbolQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cResultTypeSymbolCrossReference_1_0.eContents().get(1);
469 private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); 746 private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
470 private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); 747 private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
471 private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3); 748 private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
472 private final Assignment cInputTypeAssignment_4 = (Assignment)cGroup.eContents().get(4); 749 private final Assignment cArgumentTypeAssignment_4 = (Assignment)cGroup.eContents().get(4);
473 private final CrossReference cInputTypeNamedElementCrossReference_4_0 = (CrossReference)cInputTypeAssignment_4.eContents().get(0); 750 private final CrossReference cArgumentTypeSymbolCrossReference_4_0 = (CrossReference)cArgumentTypeAssignment_4.eContents().get(0);
474 private final RuleCall cInputTypeNamedElementQualifiedNameParserRuleCall_4_0_1 = (RuleCall)cInputTypeNamedElementCrossReference_4_0.eContents().get(1); 751 private final RuleCall cArgumentTypeSymbolQualifiedNameParserRuleCall_4_0_1 = (RuleCall)cArgumentTypeSymbolCrossReference_4_0.eContents().get(1);
475 private final Keyword cFullStopFullStopFullStopKeyword_5 = (Keyword)cGroup.eContents().get(5); 752 private final Keyword cFullStopFullStopFullStopKeyword_5 = (Keyword)cGroup.eContents().get(5);
476 private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6); 753 private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
754 private final RuleCall cFULL_STOPTerminalRuleCall_7 = (RuleCall)cGroup.eContents().get(7);
477 755
478 //ExternAggregatorDefinition: 756 //ExternAggregationOperatorDeclaration:
479 // "extern" type=[NamedElement|QualifiedName] name=QualifiedName "{" inputType=[NamedElement|QualifiedName] "..." "}"; 757 // "extern" resultType=[Symbol|QualifiedName] name=QualifiedName "{" argumentType=[Symbol|QualifiedName] "..." "}"
758 // FULL_STOP;
480 @Override public ParserRule getRule() { return rule; } 759 @Override public ParserRule getRule() { return rule; }
481 760
482 //"extern" type=[NamedElement|QualifiedName] name=QualifiedName "{" inputType=[NamedElement|QualifiedName] "..." "}" 761 //"extern" resultType=[Symbol|QualifiedName] name=QualifiedName "{" argumentType=[Symbol|QualifiedName] "..." "}"
762 //FULL_STOP
483 public Group getGroup() { return cGroup; } 763 public Group getGroup() { return cGroup; }
484 764
485 //"extern" 765 //"extern"
486 public Keyword getExternKeyword_0() { return cExternKeyword_0; } 766 public Keyword getExternKeyword_0() { return cExternKeyword_0; }
487 767
488 //type=[NamedElement|QualifiedName] 768 //resultType=[Symbol|QualifiedName]
489 public Assignment getTypeAssignment_1() { return cTypeAssignment_1; } 769 public Assignment getResultTypeAssignment_1() { return cResultTypeAssignment_1; }
490 770
491 //[NamedElement|QualifiedName] 771 //[Symbol|QualifiedName]
492 public CrossReference getTypeNamedElementCrossReference_1_0() { return cTypeNamedElementCrossReference_1_0; } 772 public CrossReference getResultTypeSymbolCrossReference_1_0() { return cResultTypeSymbolCrossReference_1_0; }
493 773
494 //QualifiedName 774 //QualifiedName
495 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_0_1; } 775 public RuleCall getResultTypeSymbolQualifiedNameParserRuleCall_1_0_1() { return cResultTypeSymbolQualifiedNameParserRuleCall_1_0_1; }
496 776
497 //name=QualifiedName 777 //name=QualifiedName
498 public Assignment getNameAssignment_2() { return cNameAssignment_2; } 778 public Assignment getNameAssignment_2() { return cNameAssignment_2; }
@@ -503,46 +783,38 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
503 //"{" 783 //"{"
504 public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; } 784 public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
505 785
506 //inputType=[NamedElement|QualifiedName] 786 //argumentType=[Symbol|QualifiedName]
507 public Assignment getInputTypeAssignment_4() { return cInputTypeAssignment_4; } 787 public Assignment getArgumentTypeAssignment_4() { return cArgumentTypeAssignment_4; }
508 788
509 //[NamedElement|QualifiedName] 789 //[Symbol|QualifiedName]
510 public CrossReference getInputTypeNamedElementCrossReference_4_0() { return cInputTypeNamedElementCrossReference_4_0; } 790 public CrossReference getArgumentTypeSymbolCrossReference_4_0() { return cArgumentTypeSymbolCrossReference_4_0; }
511 791
512 //QualifiedName 792 //QualifiedName
513 public RuleCall getInputTypeNamedElementQualifiedNameParserRuleCall_4_0_1() { return cInputTypeNamedElementQualifiedNameParserRuleCall_4_0_1; } 793 public RuleCall getArgumentTypeSymbolQualifiedNameParserRuleCall_4_0_1() { return cArgumentTypeSymbolQualifiedNameParserRuleCall_4_0_1; }
514 794
515 //"..." 795 //"..."
516 public Keyword getFullStopFullStopFullStopKeyword_5() { return cFullStopFullStopFullStopKeyword_5; } 796 public Keyword getFullStopFullStopFullStopKeyword_5() { return cFullStopFullStopFullStopKeyword_5; }
517 797
518 //"}" 798 //"}"
519 public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; } 799 public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
800
801 //FULL_STOP
802 public RuleCall getFULL_STOPTerminalRuleCall_7() { return cFULL_STOPTerminalRuleCall_7; }
520 } 803 }
521 public class ExternDatatypeDefinitionElements extends AbstractParserRuleElementFinder { 804 public class ExternDatatypeDeclarationElements extends AbstractParserRuleElementFinder {
522 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternDatatypeDefinition"); 805 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternDatatypeDeclaration");
523 private final Group cGroup = (Group)rule.eContents().get(1); 806 private final Group cGroup = (Group)rule.eContents().get(1);
524 private final Keyword cExternKeyword_0 = (Keyword)cGroup.eContents().get(0); 807 private final Keyword cExternKeyword_0 = (Keyword)cGroup.eContents().get(0);
525 private final Keyword cDatatypeKeyword_1 = (Keyword)cGroup.eContents().get(1); 808 private final Keyword cDatatypeKeyword_1 = (Keyword)cGroup.eContents().get(1);
526 private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); 809 private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
527 private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); 810 private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
528 private final Group cGroup_3 = (Group)cGroup.eContents().get(3); 811 private final RuleCall cFULL_STOPTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3);
529 private final Keyword cExtendsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
530 private final Assignment cSupertypesAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
531 private final CrossReference cSupertypesNamedElementCrossReference_3_1_0 = (CrossReference)cSupertypesAssignment_3_1.eContents().get(0);
532 private final RuleCall cSupertypesNamedElementQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cSupertypesNamedElementCrossReference_3_1_0.eContents().get(1);
533 private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2);
534 private final Keyword cCommaKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0);
535 private final Assignment cSupertypesAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1);
536 private final CrossReference cSupertypesNamedElementCrossReference_3_2_1_0 = (CrossReference)cSupertypesAssignment_3_2_1.eContents().get(0);
537 private final RuleCall cSupertypesNamedElementQualifiedNameParserRuleCall_3_2_1_0_1 = (RuleCall)cSupertypesNamedElementCrossReference_3_2_1_0.eContents().get(1);
538 812
539 //ExternDatatypeDefinition: 813 //ExternDatatypeDeclaration:
540 // "extern" "datatype" name=QualifiedName ("extends" supertypes+=[NamedElement|QualifiedName] ("," 814 // "extern" "datatype" name=QualifiedName FULL_STOP;
541 // supertypes+=[NamedElement|QualifiedName])*);
542 @Override public ParserRule getRule() { return rule; } 815 @Override public ParserRule getRule() { return rule; }
543 816
544 //"extern" "datatype" name=QualifiedName ("extends" supertypes+=[NamedElement|QualifiedName] ("," 817 //"extern" "datatype" name=QualifiedName FULL_STOP
545 //supertypes+=[NamedElement|QualifiedName])*)
546 public Group getGroup() { return cGroup; } 818 public Group getGroup() { return cGroup; }
547 819
548 //"extern" 820 //"extern"
@@ -557,96 +829,64 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
557 //QualifiedName 829 //QualifiedName
558 public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; } 830 public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
559 831
560 //("extends" supertypes+=[NamedElement|QualifiedName] ("," supertypes+=[NamedElement|QualifiedName])*) 832 //FULL_STOP
561 public Group getGroup_3() { return cGroup_3; } 833 public RuleCall getFULL_STOPTerminalRuleCall_3() { return cFULL_STOPTerminalRuleCall_3; }
562
563 //"extends"
564 public Keyword getExtendsKeyword_3_0() { return cExtendsKeyword_3_0; }
565
566 //supertypes+=[NamedElement|QualifiedName]
567 public Assignment getSupertypesAssignment_3_1() { return cSupertypesAssignment_3_1; }
568
569 //[NamedElement|QualifiedName]
570 public CrossReference getSupertypesNamedElementCrossReference_3_1_0() { return cSupertypesNamedElementCrossReference_3_1_0; }
571
572 //QualifiedName
573 public RuleCall getSupertypesNamedElementQualifiedNameParserRuleCall_3_1_0_1() { return cSupertypesNamedElementQualifiedNameParserRuleCall_3_1_0_1; }
574
575 //("," supertypes+=[NamedElement|QualifiedName])*
576 public Group getGroup_3_2() { return cGroup_3_2; }
577
578 //","
579 public Keyword getCommaKeyword_3_2_0() { return cCommaKeyword_3_2_0; }
580
581 //supertypes+=[NamedElement|QualifiedName]
582 public Assignment getSupertypesAssignment_3_2_1() { return cSupertypesAssignment_3_2_1; }
583
584 //[NamedElement|QualifiedName]
585 public CrossReference getSupertypesNamedElementCrossReference_3_2_1_0() { return cSupertypesNamedElementCrossReference_3_2_1_0; }
586
587 //QualifiedName
588 public RuleCall getSupertypesNamedElementQualifiedNameParserRuleCall_3_2_1_0_1() { return cSupertypesNamedElementQualifiedNameParserRuleCall_3_2_1_0_1; }
589 } 834 }
590 public class VariableElements extends AbstractParserRuleElementFinder { 835 public class ExpressionElements extends AbstractParserRuleElementFinder {
591 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Variable"); 836 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
592 private final Group cGroup = (Group)rule.eContents().get(1); 837 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
593 private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0); 838 private final RuleCall cConditionalExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
594 private final CrossReference cTypeNamedElementCrossReference_0_0 = (CrossReference)cTypeAssignment_0.eContents().get(0); 839 private final RuleCall cLetExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
595 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cTypeNamedElementCrossReference_0_0.eContents().get(1); 840 private final Group cGroup_2 = (Group)cAlternatives.eContents().get(2);
596 private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); 841 private final RuleCall cDisjunctiveExpressionParserRuleCall_2_0 = (RuleCall)cGroup_2.eContents().get(0);
597 private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); 842 private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1);
843 private final Action cForallConditionAction_2_1_0 = (Action)cGroup_2_1.eContents().get(0);
844 private final Keyword cEqualsSignGreaterThanSignKeyword_2_1_1 = (Keyword)cGroup_2_1.eContents().get(1);
845 private final Assignment cBodyAssignment_2_1_2 = (Assignment)cGroup_2_1.eContents().get(2);
846 private final RuleCall cBodyDisjunctiveExpressionParserRuleCall_2_1_2_0 = (RuleCall)cBodyAssignment_2_1_2.eContents().get(0);
598 847
599 //Variable: 848 //Expression:
600 // type=[NamedElement|QualifiedName]? name=ID; 849 // ConditionalExpression | LetExpression | DisjunctiveExpression ({Forall.condition=current} "=>"
850 // body=DisjunctiveExpression)?;
601 @Override public ParserRule getRule() { return rule; } 851 @Override public ParserRule getRule() { return rule; }
602 852
603 //type=[NamedElement|QualifiedName]? name=ID 853 //ConditionalExpression | LetExpression | DisjunctiveExpression ({Forall.condition=current} "=>"
604 public Group getGroup() { return cGroup; } 854 //body=DisjunctiveExpression)?
855 public Alternatives getAlternatives() { return cAlternatives; }
605 856
606 //type=[NamedElement|QualifiedName]? 857 //ConditionalExpression
607 public Assignment getTypeAssignment_0() { return cTypeAssignment_0; } 858 public RuleCall getConditionalExpressionParserRuleCall_0() { return cConditionalExpressionParserRuleCall_0; }
608 859
609 //[NamedElement|QualifiedName] 860 //LetExpression
610 public CrossReference getTypeNamedElementCrossReference_0_0() { return cTypeNamedElementCrossReference_0_0; } 861 public RuleCall getLetExpressionParserRuleCall_1() { return cLetExpressionParserRuleCall_1; }
611 862
612 //QualifiedName 863 //DisjunctiveExpression ({Forall.condition=current} "=>" body=DisjunctiveExpression)?
613 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_0_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_0_0_1; } 864 public Group getGroup_2() { return cGroup_2; }
614
615 //name=ID
616 public Assignment getNameAssignment_1() { return cNameAssignment_1; }
617 865
618 //ID 866 //DisjunctiveExpression
619 public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } 867 public RuleCall getDisjunctiveExpressionParserRuleCall_2_0() { return cDisjunctiveExpressionParserRuleCall_2_0; }
620 }
621 public class ExpressionElements extends AbstractParserRuleElementFinder {
622 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
623 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
624 private final RuleCall cIfElseParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
625 private final RuleCall cLetParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
626 private final RuleCall cImplicationExpressionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
627 868
628 //Expression: 869 //({Forall.condition=current} "=>" body=DisjunctiveExpression)?
629 // IfElse | Let | ImplicationExpression; 870 public Group getGroup_2_1() { return cGroup_2_1; }
630 @Override public ParserRule getRule() { return rule; }
631 871
632 //IfElse | Let | ImplicationExpression 872 //{Forall.condition=current}
633 public Alternatives getAlternatives() { return cAlternatives; } 873 public Action getForallConditionAction_2_1_0() { return cForallConditionAction_2_1_0; }
634 874
635 //IfElse 875 //"=>"
636 public RuleCall getIfElseParserRuleCall_0() { return cIfElseParserRuleCall_0; } 876 public Keyword getEqualsSignGreaterThanSignKeyword_2_1_1() { return cEqualsSignGreaterThanSignKeyword_2_1_1; }
637 877
638 //Let 878 //body=DisjunctiveExpression
639 public RuleCall getLetParserRuleCall_1() { return cLetParserRuleCall_1; } 879 public Assignment getBodyAssignment_2_1_2() { return cBodyAssignment_2_1_2; }
640 880
641 //ImplicationExpression 881 //DisjunctiveExpression
642 public RuleCall getImplicationExpressionParserRuleCall_2() { return cImplicationExpressionParserRuleCall_2; } 882 public RuleCall getBodyDisjunctiveExpressionParserRuleCall_2_1_2_0() { return cBodyDisjunctiveExpressionParserRuleCall_2_1_2_0; }
643 } 883 }
644 public class IfElseElements extends AbstractParserRuleElementFinder { 884 public class ConditionalExpressionElements extends AbstractParserRuleElementFinder {
645 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.IfElse"); 885 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ConditionalExpression");
646 private final Group cGroup = (Group)rule.eContents().get(1); 886 private final Group cGroup = (Group)rule.eContents().get(1);
647 private final Keyword cIfKeyword_0 = (Keyword)cGroup.eContents().get(0); 887 private final Keyword cIfKeyword_0 = (Keyword)cGroup.eContents().get(0);
648 private final Assignment cConditionAssignment_1 = (Assignment)cGroup.eContents().get(1); 888 private final Assignment cConditionAssignment_1 = (Assignment)cGroup.eContents().get(1);
649 private final RuleCall cConditionExpressionParserRuleCall_1_0 = (RuleCall)cConditionAssignment_1.eContents().get(0); 889 private final RuleCall cConditionDisjunctiveExpressionParserRuleCall_1_0 = (RuleCall)cConditionAssignment_1.eContents().get(0);
650 private final Keyword cThenKeyword_2 = (Keyword)cGroup.eContents().get(2); 890 private final Keyword cThenKeyword_2 = (Keyword)cGroup.eContents().get(2);
651 private final Assignment cThenAssignment_3 = (Assignment)cGroup.eContents().get(3); 891 private final Assignment cThenAssignment_3 = (Assignment)cGroup.eContents().get(3);
652 private final RuleCall cThenExpressionParserRuleCall_3_0 = (RuleCall)cThenAssignment_3.eContents().get(0); 892 private final RuleCall cThenExpressionParserRuleCall_3_0 = (RuleCall)cThenAssignment_3.eContents().get(0);
@@ -654,21 +894,21 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
654 private final Assignment cElseAssignment_5 = (Assignment)cGroup.eContents().get(5); 894 private final Assignment cElseAssignment_5 = (Assignment)cGroup.eContents().get(5);
655 private final RuleCall cElseExpressionParserRuleCall_5_0 = (RuleCall)cElseAssignment_5.eContents().get(0); 895 private final RuleCall cElseExpressionParserRuleCall_5_0 = (RuleCall)cElseAssignment_5.eContents().get(0);
656 896
657 //IfElse: 897 //ConditionalExpression:
658 // "if" condition=Expression "then" then=Expression "else" else=Expression; 898 // "if" condition=DisjunctiveExpression "then" then=Expression "else" else=Expression;
659 @Override public ParserRule getRule() { return rule; } 899 @Override public ParserRule getRule() { return rule; }
660 900
661 //"if" condition=Expression "then" then=Expression "else" else=Expression 901 //"if" condition=DisjunctiveExpression "then" then=Expression "else" else=Expression
662 public Group getGroup() { return cGroup; } 902 public Group getGroup() { return cGroup; }
663 903
664 //"if" 904 //"if"
665 public Keyword getIfKeyword_0() { return cIfKeyword_0; } 905 public Keyword getIfKeyword_0() { return cIfKeyword_0; }
666 906
667 //condition=Expression 907 //condition=DisjunctiveExpression
668 public Assignment getConditionAssignment_1() { return cConditionAssignment_1; } 908 public Assignment getConditionAssignment_1() { return cConditionAssignment_1; }
669 909
670 //Expression 910 //DisjunctiveExpression
671 public RuleCall getConditionExpressionParserRuleCall_1_0() { return cConditionExpressionParserRuleCall_1_0; } 911 public RuleCall getConditionDisjunctiveExpressionParserRuleCall_1_0() { return cConditionDisjunctiveExpressionParserRuleCall_1_0; }
672 912
673 //"then" 913 //"then"
674 public Keyword getThenKeyword_2() { return cThenKeyword_2; } 914 public Keyword getThenKeyword_2() { return cThenKeyword_2; }
@@ -688,8 +928,8 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
688 //Expression 928 //Expression
689 public RuleCall getElseExpressionParserRuleCall_5_0() { return cElseExpressionParserRuleCall_5_0; } 929 public RuleCall getElseExpressionParserRuleCall_5_0() { return cElseExpressionParserRuleCall_5_0; }
690 } 930 }
691 public class LetElements extends AbstractParserRuleElementFinder { 931 public class LetExpressionElements extends AbstractParserRuleElementFinder {
692 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Let"); 932 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LetExpression");
693 private final Group cGroup = (Group)rule.eContents().get(1); 933 private final Group cGroup = (Group)rule.eContents().get(1);
694 private final Keyword cLetKeyword_0 = (Keyword)cGroup.eContents().get(0); 934 private final Keyword cLetKeyword_0 = (Keyword)cGroup.eContents().get(0);
695 private final Assignment cBindingsAssignment_1 = (Assignment)cGroup.eContents().get(1); 935 private final Assignment cBindingsAssignment_1 = (Assignment)cGroup.eContents().get(1);
@@ -702,7 +942,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
702 private final Assignment cBodyAssignment_4 = (Assignment)cGroup.eContents().get(4); 942 private final Assignment cBodyAssignment_4 = (Assignment)cGroup.eContents().get(4);
703 private final RuleCall cBodyExpressionParserRuleCall_4_0 = (RuleCall)cBodyAssignment_4.eContents().get(0); 943 private final RuleCall cBodyExpressionParserRuleCall_4_0 = (RuleCall)cBodyAssignment_4.eContents().get(0);
704 944
705 //Let: 945 //LetExpression:
706 // "let" bindings+=LetBinding ("," bindings+=LetBinding)* "in" body=Expression; 946 // "let" bindings+=LetBinding ("," bindings+=LetBinding)* "in" body=Expression;
707 @Override public ParserRule getRule() { return rule; } 947 @Override public ParserRule getRule() { return rule; }
708 948
@@ -742,72 +982,45 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
742 public class LetBindingElements extends AbstractParserRuleElementFinder { 982 public class LetBindingElements extends AbstractParserRuleElementFinder {
743 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LetBinding"); 983 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LetBinding");
744 private final Group cGroup = (Group)rule.eContents().get(1); 984 private final Group cGroup = (Group)rule.eContents().get(1);
745 private final Assignment cVariableAssignment_0 = (Assignment)cGroup.eContents().get(0); 985 private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
746 private final RuleCall cVariableVariableParserRuleCall_0_0 = (RuleCall)cVariableAssignment_0.eContents().get(0); 986 private final CrossReference cTypeSymbolCrossReference_0_0 = (CrossReference)cTypeAssignment_0.eContents().get(0);
747 private final Keyword cEqualsSignKeyword_1 = (Keyword)cGroup.eContents().get(1); 987 private final RuleCall cTypeSymbolQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cTypeSymbolCrossReference_0_0.eContents().get(1);
748 private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2); 988 private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
749 private final RuleCall cValueAdditiveExpressionParserRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0); 989 private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
990 private final Keyword cEqualsSignKeyword_2 = (Keyword)cGroup.eContents().get(2);
991 private final Assignment cValueAssignment_3 = (Assignment)cGroup.eContents().get(3);
992 private final RuleCall cValueAdditiveExpressionParserRuleCall_3_0 = (RuleCall)cValueAssignment_3.eContents().get(0);
750 993
751 //LetBinding: 994 //LetBinding:
752 // variable=Variable "=" value=AdditiveExpression; 995 // type=[Symbol|QualifiedName]? name=ID "=" value=AdditiveExpression;
753 @Override public ParserRule getRule() { return rule; } 996 @Override public ParserRule getRule() { return rule; }
754 997
755 //variable=Variable "=" value=AdditiveExpression 998 //type=[Symbol|QualifiedName]? name=ID "=" value=AdditiveExpression
756 public Group getGroup() { return cGroup; } 999 public Group getGroup() { return cGroup; }
757 1000
758 //variable=Variable 1001 //type=[Symbol|QualifiedName]?
759 public Assignment getVariableAssignment_0() { return cVariableAssignment_0; } 1002 public Assignment getTypeAssignment_0() { return cTypeAssignment_0; }
760
761 //Variable
762 public RuleCall getVariableVariableParserRuleCall_0_0() { return cVariableVariableParserRuleCall_0_0; }
763
764 //"="
765 public Keyword getEqualsSignKeyword_1() { return cEqualsSignKeyword_1; }
766
767 //value=AdditiveExpression
768 public Assignment getValueAssignment_2() { return cValueAssignment_2; }
769
770 //AdditiveExpression
771 public RuleCall getValueAdditiveExpressionParserRuleCall_2_0() { return cValueAdditiveExpressionParserRuleCall_2_0; }
772 }
773 public class ImplicationExpressionElements extends AbstractParserRuleElementFinder {
774 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ImplicationExpression");
775 private final Group cGroup = (Group)rule.eContents().get(1);
776 private final RuleCall cDisjunctiveExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
777 private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
778 private final Action cBinaryExpressionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0);
779 private final Assignment cOpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
780 private final RuleCall cOpImplicationOperatorEnumRuleCall_1_1_0 = (RuleCall)cOpAssignment_1_1.eContents().get(0);
781 private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2);
782 private final RuleCall cRightImplicationExpressionParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0);
783
784 //ImplicationExpression Expression:
785 // DisjunctiveExpression ({BinaryExpression.left=current} op=ImplicationOperator right=ImplicationExpression)?;
786 @Override public ParserRule getRule() { return rule; }
787
788 //DisjunctiveExpression ({BinaryExpression.left=current} op=ImplicationOperator right=ImplicationExpression)?
789 public Group getGroup() { return cGroup; }
790 1003
791 //DisjunctiveExpression 1004 //[Symbol|QualifiedName]
792 public RuleCall getDisjunctiveExpressionParserRuleCall_0() { return cDisjunctiveExpressionParserRuleCall_0; } 1005 public CrossReference getTypeSymbolCrossReference_0_0() { return cTypeSymbolCrossReference_0_0; }
793 1006
794 //({BinaryExpression.left=current} op=ImplicationOperator right=ImplicationExpression)? 1007 //QualifiedName
795 public Group getGroup_1() { return cGroup_1; } 1008 public RuleCall getTypeSymbolQualifiedNameParserRuleCall_0_0_1() { return cTypeSymbolQualifiedNameParserRuleCall_0_0_1; }
796 1009
797 //{BinaryExpression.left=current} 1010 //name=ID
798 public Action getBinaryExpressionLeftAction_1_0() { return cBinaryExpressionLeftAction_1_0; } 1011 public Assignment getNameAssignment_1() { return cNameAssignment_1; }
799 1012
800 //op=ImplicationOperator 1013 //ID
801 public Assignment getOpAssignment_1_1() { return cOpAssignment_1_1; } 1014 public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
802 1015
803 //ImplicationOperator 1016 //"="
804 public RuleCall getOpImplicationOperatorEnumRuleCall_1_1_0() { return cOpImplicationOperatorEnumRuleCall_1_1_0; } 1017 public Keyword getEqualsSignKeyword_2() { return cEqualsSignKeyword_2; }
805 1018
806 //right=ImplicationExpression 1019 //value=AdditiveExpression
807 public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } 1020 public Assignment getValueAssignment_3() { return cValueAssignment_3; }
808 1021
809 //ImplicationExpression 1022 //AdditiveExpression
810 public RuleCall getRightImplicationExpressionParserRuleCall_1_2_0() { return cRightImplicationExpressionParserRuleCall_1_2_0; } 1023 public RuleCall getValueAdditiveExpressionParserRuleCall_3_0() { return cValueAdditiveExpressionParserRuleCall_3_0; }
811 } 1024 }
812 public class DisjunctiveExpressionElements extends AbstractParserRuleElementFinder { 1025 public class DisjunctiveExpressionElements extends AbstractParserRuleElementFinder {
813 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.DisjunctiveExpression"); 1026 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.DisjunctiveExpression");
@@ -970,27 +1183,27 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
970 private final Group cGroup = (Group)rule.eContents().get(1); 1183 private final Group cGroup = (Group)rule.eContents().get(1);
971 private final RuleCall cAdditiveExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); 1184 private final RuleCall cAdditiveExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
972 private final Group cGroup_1 = (Group)cGroup.eContents().get(1); 1185 private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
973 private final Action cComparisonLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); 1186 private final Action cBinaryExpressionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0);
974 private final Assignment cOpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); 1187 private final Assignment cOpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
975 private final RuleCall cOpComparisonOperatorEnumRuleCall_1_1_0 = (RuleCall)cOpAssignment_1_1.eContents().get(0); 1188 private final RuleCall cOpComparisonOperatorEnumRuleCall_1_1_0 = (RuleCall)cOpAssignment_1_1.eContents().get(0);
976 private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); 1189 private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2);
977 private final RuleCall cRightAdditiveExpressionParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); 1190 private final RuleCall cRightAdditiveExpressionParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0);
978 1191
979 //ComparisonExpression Expression: 1192 //ComparisonExpression Expression:
980 // AdditiveExpression ({Comparison.left=current} op=ComparisonOperator right=AdditiveExpression)?; 1193 // AdditiveExpression ({BinaryExpression.left=current} op=ComparisonOperator right=AdditiveExpression)?;
981 @Override public ParserRule getRule() { return rule; } 1194 @Override public ParserRule getRule() { return rule; }
982 1195
983 //AdditiveExpression ({Comparison.left=current} op=ComparisonOperator right=AdditiveExpression)? 1196 //AdditiveExpression ({BinaryExpression.left=current} op=ComparisonOperator right=AdditiveExpression)?
984 public Group getGroup() { return cGroup; } 1197 public Group getGroup() { return cGroup; }
985 1198
986 //AdditiveExpression 1199 //AdditiveExpression
987 public RuleCall getAdditiveExpressionParserRuleCall_0() { return cAdditiveExpressionParserRuleCall_0; } 1200 public RuleCall getAdditiveExpressionParserRuleCall_0() { return cAdditiveExpressionParserRuleCall_0; }
988 1201
989 //({Comparison.left=current} op=ComparisonOperator right=AdditiveExpression)? 1202 //({BinaryExpression.left=current} op=ComparisonOperator right=AdditiveExpression)?
990 public Group getGroup_1() { return cGroup_1; } 1203 public Group getGroup_1() { return cGroup_1; }
991 1204
992 //{Comparison.left=current} 1205 //{BinaryExpression.left=current}
993 public Action getComparisonLeftAction_1_0() { return cComparisonLeftAction_1_0; } 1206 public Action getBinaryExpressionLeftAction_1_0() { return cBinaryExpressionLeftAction_1_0; }
994 1207
995 //op=ComparisonOperator 1208 //op=ComparisonOperator
996 public Assignment getOpAssignment_1_1() { return cOpAssignment_1_1; } 1209 public Assignment getOpAssignment_1_1() { return cOpAssignment_1_1; }
@@ -1128,21 +1341,21 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
1128 private final Group cGroup_1 = (Group)cGroup.eContents().get(1); 1341 private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
1129 private final Action cCastExpressionBodyAction_1_0 = (Action)cGroup_1.eContents().get(0); 1342 private final Action cCastExpressionBodyAction_1_0 = (Action)cGroup_1.eContents().get(0);
1130 private final Keyword cAsKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); 1343 private final Keyword cAsKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1);
1131 private final Assignment cTypeAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); 1344 private final Assignment cTargetTypeAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2);
1132 private final CrossReference cTypeNamedElementCrossReference_1_2_0 = (CrossReference)cTypeAssignment_1_2.eContents().get(0); 1345 private final CrossReference cTargetTypeSymbolCrossReference_1_2_0 = (CrossReference)cTargetTypeAssignment_1_2.eContents().get(0);
1133 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_2_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_2_0.eContents().get(1); 1346 private final RuleCall cTargetTypeSymbolQualifiedNameParserRuleCall_1_2_0_1 = (RuleCall)cTargetTypeSymbolCrossReference_1_2_0.eContents().get(1);
1134 1347
1135 //CastExpression Expression: 1348 //CastExpression Expression:
1136 // UnaryExpression ({CastExpression.body=current} "as" type=[NamedElement|QualifiedName])?; 1349 // UnaryExpression ({CastExpression.body=current} "as" targetType=[Symbol|QualifiedName])?;
1137 @Override public ParserRule getRule() { return rule; } 1350 @Override public ParserRule getRule() { return rule; }
1138 1351
1139 //UnaryExpression ({CastExpression.body=current} "as" type=[NamedElement|QualifiedName])? 1352 //UnaryExpression ({CastExpression.body=current} "as" targetType=[Symbol|QualifiedName])?
1140 public Group getGroup() { return cGroup; } 1353 public Group getGroup() { return cGroup; }
1141 1354
1142 //UnaryExpression 1355 //UnaryExpression
1143 public RuleCall getUnaryExpressionParserRuleCall_0() { return cUnaryExpressionParserRuleCall_0; } 1356 public RuleCall getUnaryExpressionParserRuleCall_0() { return cUnaryExpressionParserRuleCall_0; }
1144 1357
1145 //({CastExpression.body=current} "as" type=[NamedElement|QualifiedName])? 1358 //({CastExpression.body=current} "as" targetType=[Symbol|QualifiedName])?
1146 public Group getGroup_1() { return cGroup_1; } 1359 public Group getGroup_1() { return cGroup_1; }
1147 1360
1148 //{CastExpression.body=current} 1361 //{CastExpression.body=current}
@@ -1151,233 +1364,158 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
1151 //"as" 1364 //"as"
1152 public Keyword getAsKeyword_1_1() { return cAsKeyword_1_1; } 1365 public Keyword getAsKeyword_1_1() { return cAsKeyword_1_1; }
1153 1366
1154 //type=[NamedElement|QualifiedName] 1367 //targetType=[Symbol|QualifiedName]
1155 public Assignment getTypeAssignment_1_2() { return cTypeAssignment_1_2; } 1368 public Assignment getTargetTypeAssignment_1_2() { return cTargetTypeAssignment_1_2; }
1156 1369
1157 //[NamedElement|QualifiedName] 1370 //[Symbol|QualifiedName]
1158 public CrossReference getTypeNamedElementCrossReference_1_2_0() { return cTypeNamedElementCrossReference_1_2_0; } 1371 public CrossReference getTargetTypeSymbolCrossReference_1_2_0() { return cTargetTypeSymbolCrossReference_1_2_0; }
1159 1372
1160 //QualifiedName 1373 //QualifiedName
1161 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_2_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_2_0_1; } 1374 public RuleCall getTargetTypeSymbolQualifiedNameParserRuleCall_1_2_0_1() { return cTargetTypeSymbolQualifiedNameParserRuleCall_1_2_0_1; }
1162 } 1375 }
1163 public class UnaryExpressionElements extends AbstractParserRuleElementFinder { 1376 public class UnaryExpressionElements extends AbstractParserRuleElementFinder {
1164 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnaryExpression"); 1377 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnaryExpression");
1165 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 1378 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1166 private final RuleCall cAggregationExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); 1379 private final RuleCall cBracedAggregateExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1167 private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); 1380 private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1);
1168 private final Action cUnaryExpressionAction_1_0 = (Action)cGroup_1.eContents().get(0); 1381 private final Action cUnaryExpressionAction_1_0 = (Action)cGroup_1.eContents().get(0);
1169 private final Assignment cOpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); 1382 private final Assignment cOpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
1170 private final RuleCall cOpUnaryOpEnumRuleCall_1_1_0 = (RuleCall)cOpAssignment_1_1.eContents().get(0); 1383 private final RuleCall cOpUnaryOperatorEnumRuleCall_1_1_0 = (RuleCall)cOpAssignment_1_1.eContents().get(0);
1171 private final Assignment cBodyAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); 1384 private final Assignment cBodyAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2);
1172 private final RuleCall cBodyAggregationExpressionParserRuleCall_1_2_0 = (RuleCall)cBodyAssignment_1_2.eContents().get(0); 1385 private final RuleCall cBodyBracedAggregateExpressionParserRuleCall_1_2_0 = (RuleCall)cBodyAssignment_1_2.eContents().get(0);
1173 1386
1174 //UnaryExpression Expression: 1387 //UnaryExpression Expression:
1175 // AggregationExpression | {UnaryExpression} op=UnaryOp body=AggregationExpression; 1388 // BracedAggregateExpression | {UnaryExpression} op=UnaryOperator body=BracedAggregateExpression;
1176 @Override public ParserRule getRule() { return rule; } 1389 @Override public ParserRule getRule() { return rule; }
1177 1390
1178 //AggregationExpression | {UnaryExpression} op=UnaryOp body=AggregationExpression 1391 //BracedAggregateExpression | {UnaryExpression} op=UnaryOperator body=BracedAggregateExpression
1179 public Alternatives getAlternatives() { return cAlternatives; } 1392 public Alternatives getAlternatives() { return cAlternatives; }
1180 1393
1181 //AggregationExpression 1394 //BracedAggregateExpression
1182 public RuleCall getAggregationExpressionParserRuleCall_0() { return cAggregationExpressionParserRuleCall_0; } 1395 public RuleCall getBracedAggregateExpressionParserRuleCall_0() { return cBracedAggregateExpressionParserRuleCall_0; }
1183 1396
1184 //{UnaryExpression} op=UnaryOp body=AggregationExpression 1397 //{UnaryExpression} op=UnaryOperator body=BracedAggregateExpression
1185 public Group getGroup_1() { return cGroup_1; } 1398 public Group getGroup_1() { return cGroup_1; }
1186 1399
1187 //{UnaryExpression} 1400 //{UnaryExpression}
1188 public Action getUnaryExpressionAction_1_0() { return cUnaryExpressionAction_1_0; } 1401 public Action getUnaryExpressionAction_1_0() { return cUnaryExpressionAction_1_0; }
1189 1402
1190 //op=UnaryOp 1403 //op=UnaryOperator
1191 public Assignment getOpAssignment_1_1() { return cOpAssignment_1_1; } 1404 public Assignment getOpAssignment_1_1() { return cOpAssignment_1_1; }
1192 1405
1193 //UnaryOp 1406 //UnaryOperator
1194 public RuleCall getOpUnaryOpEnumRuleCall_1_1_0() { return cOpUnaryOpEnumRuleCall_1_1_0; } 1407 public RuleCall getOpUnaryOperatorEnumRuleCall_1_1_0() { return cOpUnaryOperatorEnumRuleCall_1_1_0; }
1195 1408
1196 //body=AggregationExpression 1409 //body=BracedAggregateExpression
1197 public Assignment getBodyAssignment_1_2() { return cBodyAssignment_1_2; } 1410 public Assignment getBodyAssignment_1_2() { return cBodyAssignment_1_2; }
1198 1411
1199 //AggregationExpression 1412 //BracedAggregateExpression
1200 public RuleCall getBodyAggregationExpressionParserRuleCall_1_2_0() { return cBodyAggregationExpressionParserRuleCall_1_2_0; } 1413 public RuleCall getBodyBracedAggregateExpressionParserRuleCall_1_2_0() { return cBodyBracedAggregateExpressionParserRuleCall_1_2_0; }
1201 } 1414 }
1202 public class AggregationExpressionElements extends AbstractParserRuleElementFinder { 1415 public class BracedAggregateExpressionElements extends AbstractParserRuleElementFinder {
1203 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AggregationExpression"); 1416 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.BracedAggregateExpression");
1204 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 1417 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1205 private final RuleCall cAtomicExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); 1418 private final RuleCall cAtomicExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1206 private final RuleCall cQuantifiedExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); 1419 private final RuleCall cAggregationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
1207 private final RuleCall cAggregationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); 1420 private final RuleCall cCountParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
1208 1421
1209 //AggregationExpression Expression: 1422 //BracedAggregateExpression Expression:
1210 // AtomicExpression | QuantifiedExpression | Aggregation; 1423 // AtomicExpression | Aggregation | Count;
1211 @Override public ParserRule getRule() { return rule; } 1424 @Override public ParserRule getRule() { return rule; }
1212 1425
1213 //AtomicExpression | QuantifiedExpression | Aggregation 1426 //AtomicExpression | Aggregation | Count
1214 public Alternatives getAlternatives() { return cAlternatives; } 1427 public Alternatives getAlternatives() { return cAlternatives; }
1215 1428
1216 //AtomicExpression 1429 //AtomicExpression
1217 public RuleCall getAtomicExpressionParserRuleCall_0() { return cAtomicExpressionParserRuleCall_0; } 1430 public RuleCall getAtomicExpressionParserRuleCall_0() { return cAtomicExpressionParserRuleCall_0; }
1218 1431
1219 //QuantifiedExpression
1220 public RuleCall getQuantifiedExpressionParserRuleCall_1() { return cQuantifiedExpressionParserRuleCall_1; }
1221
1222 //Aggregation 1432 //Aggregation
1223 public RuleCall getAggregationParserRuleCall_2() { return cAggregationParserRuleCall_2; } 1433 public RuleCall getAggregationParserRuleCall_1() { return cAggregationParserRuleCall_1; }
1434
1435 //Count
1436 public RuleCall getCountParserRuleCall_2() { return cCountParserRuleCall_2; }
1224 } 1437 }
1225 public class LocalVariablesElements extends AbstractParserRuleElementFinder { 1438 public class AggregationElements extends AbstractParserRuleElementFinder {
1226 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LocalVariables"); 1439 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Aggregation");
1227 private final Group cGroup = (Group)rule.eContents().get(1); 1440 private final Group cGroup = (Group)rule.eContents().get(1);
1228 private final Action cLocalVariablesAction_0 = (Action)cGroup.eContents().get(0); 1441 private final Assignment cOpAssignment_0 = (Assignment)cGroup.eContents().get(0);
1229 private final Keyword cLeftSquareBracketKeyword_1 = (Keyword)cGroup.eContents().get(1); 1442 private final CrossReference cOpSymbolCrossReference_0_0 = (CrossReference)cOpAssignment_0.eContents().get(0);
1230 private final Group cGroup_2 = (Group)cGroup.eContents().get(2); 1443 private final RuleCall cOpSymbolQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cOpSymbolCrossReference_0_0.eContents().get(1);
1231 private final Assignment cVariablesAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0); 1444 private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
1232 private final RuleCall cVariablesVariableParserRuleCall_2_0_0 = (RuleCall)cVariablesAssignment_2_0.eContents().get(0); 1445 private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
1233 private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1); 1446 private final RuleCall cValueExpressionParserRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0);
1234 private final Keyword cCommaKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0); 1447 private final Keyword cVerticalLineKeyword_3 = (Keyword)cGroup.eContents().get(3);
1235 private final Assignment cVariablesAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1); 1448 private final Assignment cConditionAssignment_4 = (Assignment)cGroup.eContents().get(4);
1236 private final RuleCall cVariablesVariableParserRuleCall_2_1_1_0 = (RuleCall)cVariablesAssignment_2_1_1.eContents().get(0); 1449 private final RuleCall cConditionExpressionParserRuleCall_4_0 = (RuleCall)cConditionAssignment_4.eContents().get(0);
1237 private final Keyword cRightSquareBracketKeyword_3 = (Keyword)cGroup.eContents().get(3); 1450 private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
1238 1451
1239 //LocalVariables: 1452 //Aggregation:
1240 // {LocalVariables} "[" (variables+=Variable ("," variables+=Variable)*)? "]"; 1453 // op=[Symbol|QualifiedName] "{" value=Expression "|" condition=Expression "}";
1241 @Override public ParserRule getRule() { return rule; } 1454 @Override public ParserRule getRule() { return rule; }
1242 1455
1243 //{LocalVariables} "[" (variables+=Variable ("," variables+=Variable)*)? "]" 1456 //op=[Symbol|QualifiedName] "{" value=Expression "|" condition=Expression "}"
1244 public Group getGroup() { return cGroup; } 1457 public Group getGroup() { return cGroup; }
1245 1458
1246 //{LocalVariables} 1459 //op=[Symbol|QualifiedName]
1247 public Action getLocalVariablesAction_0() { return cLocalVariablesAction_0; } 1460 public Assignment getOpAssignment_0() { return cOpAssignment_0; }
1248
1249 //"["
1250 public Keyword getLeftSquareBracketKeyword_1() { return cLeftSquareBracketKeyword_1; }
1251
1252 //(variables+=Variable ("," variables+=Variable)*)?
1253 public Group getGroup_2() { return cGroup_2; }
1254
1255 //variables+=Variable
1256 public Assignment getVariablesAssignment_2_0() { return cVariablesAssignment_2_0; }
1257
1258 //Variable
1259 public RuleCall getVariablesVariableParserRuleCall_2_0_0() { return cVariablesVariableParserRuleCall_2_0_0; }
1260
1261 //("," variables+=Variable)*
1262 public Group getGroup_2_1() { return cGroup_2_1; }
1263
1264 //","
1265 public Keyword getCommaKeyword_2_1_0() { return cCommaKeyword_2_1_0; }
1266
1267 //variables+=Variable
1268 public Assignment getVariablesAssignment_2_1_1() { return cVariablesAssignment_2_1_1; }
1269
1270 //Variable
1271 public RuleCall getVariablesVariableParserRuleCall_2_1_1_0() { return cVariablesVariableParserRuleCall_2_1_1_0; }
1272
1273 //"]"
1274 public Keyword getRightSquareBracketKeyword_3() { return cRightSquareBracketKeyword_3; }
1275 }
1276 public class QuantifiedExpressionElements extends AbstractParserRuleElementFinder {
1277 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.QuantifiedExpression");
1278 private final Group cGroup = (Group)rule.eContents().get(1);
1279 private final Assignment cQuantifierAssignment_0 = (Assignment)cGroup.eContents().get(0);
1280 private final RuleCall cQuantifierQuantifierEnumRuleCall_0_0 = (RuleCall)cQuantifierAssignment_0.eContents().get(0);
1281 private final Assignment cLocalVariablesAssignment_1 = (Assignment)cGroup.eContents().get(1);
1282 private final RuleCall cLocalVariablesLocalVariablesParserRuleCall_1_0 = (RuleCall)cLocalVariablesAssignment_1.eContents().get(0);
1283 private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
1284 private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3);
1285 private final RuleCall cBodyExpressionParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0);
1286 private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
1287
1288 //QuantifiedExpression:
1289 // quantifier=Quantifier localVariables=LocalVariables? "{" body=Expression "}";
1290 @Override public ParserRule getRule() { return rule; }
1291 1461
1292 //quantifier=Quantifier localVariables=LocalVariables? "{" body=Expression "}" 1462 //[Symbol|QualifiedName]
1293 public Group getGroup() { return cGroup; } 1463 public CrossReference getOpSymbolCrossReference_0_0() { return cOpSymbolCrossReference_0_0; }
1294 1464
1295 //quantifier=Quantifier 1465 //QualifiedName
1296 public Assignment getQuantifierAssignment_0() { return cQuantifierAssignment_0; } 1466 public RuleCall getOpSymbolQualifiedNameParserRuleCall_0_0_1() { return cOpSymbolQualifiedNameParserRuleCall_0_0_1; }
1297 1467
1298 //Quantifier 1468 //"{"
1299 public RuleCall getQuantifierQuantifierEnumRuleCall_0_0() { return cQuantifierQuantifierEnumRuleCall_0_0; } 1469 public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
1300 1470
1301 //localVariables=LocalVariables? 1471 //value=Expression
1302 public Assignment getLocalVariablesAssignment_1() { return cLocalVariablesAssignment_1; } 1472 public Assignment getValueAssignment_2() { return cValueAssignment_2; }
1303 1473
1304 //LocalVariables 1474 //Expression
1305 public RuleCall getLocalVariablesLocalVariablesParserRuleCall_1_0() { return cLocalVariablesLocalVariablesParserRuleCall_1_0; } 1475 public RuleCall getValueExpressionParserRuleCall_2_0() { return cValueExpressionParserRuleCall_2_0; }
1306 1476
1307 //"{" 1477 //"|"
1308 public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } 1478 public Keyword getVerticalLineKeyword_3() { return cVerticalLineKeyword_3; }
1309 1479
1310 //body=Expression 1480 //condition=Expression
1311 public Assignment getBodyAssignment_3() { return cBodyAssignment_3; } 1481 public Assignment getConditionAssignment_4() { return cConditionAssignment_4; }
1312 1482
1313 //Expression 1483 //Expression
1314 public RuleCall getBodyExpressionParserRuleCall_3_0() { return cBodyExpressionParserRuleCall_3_0; } 1484 public RuleCall getConditionExpressionParserRuleCall_4_0() { return cConditionExpressionParserRuleCall_4_0; }
1315 1485
1316 //"}" 1486 //"}"
1317 public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; } 1487 public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
1318 } 1488 }
1319 public class AggregationElements extends AbstractParserRuleElementFinder { 1489 public class CountElements extends AbstractParserRuleElementFinder {
1320 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Aggregation"); 1490 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Count");
1321 private final Group cGroup = (Group)rule.eContents().get(1); 1491 private final Group cGroup = (Group)rule.eContents().get(1);
1322 private final Assignment cOpAssignment_0 = (Assignment)cGroup.eContents().get(0); 1492 private final Keyword cCountKeyword_0 = (Keyword)cGroup.eContents().get(0);
1323 private final CrossReference cOpNamedElementCrossReference_0_0 = (CrossReference)cOpAssignment_0.eContents().get(0); 1493 private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
1324 private final RuleCall cOpNamedElementQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cOpNamedElementCrossReference_0_0.eContents().get(1); 1494 private final Assignment cConditionAssignment_2 = (Assignment)cGroup.eContents().get(2);
1325 private final Assignment cLocalVariablesAssignment_1 = (Assignment)cGroup.eContents().get(1); 1495 private final RuleCall cConditionExpressionParserRuleCall_2_0 = (RuleCall)cConditionAssignment_2.eContents().get(0);
1326 private final RuleCall cLocalVariablesLocalVariablesParserRuleCall_1_0 = (RuleCall)cLocalVariablesAssignment_1.eContents().get(0); 1496 private final Keyword cRightCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
1327 private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); 1497
1328 private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3); 1498 //Count:
1329 private final RuleCall cBodyExpressionParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0); 1499 // "count" "{" condition=Expression "}";
1330 private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
1331 private final Keyword cVerticalLineKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
1332 private final Assignment cConditionAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
1333 private final RuleCall cConditionExpressionParserRuleCall_4_1_0 = (RuleCall)cConditionAssignment_4_1.eContents().get(0);
1334 private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
1335
1336 //Aggregation:
1337 // op=[NamedElement|QualifiedName] localVariables=LocalVariables? "{" body=Expression ("|" condition=Expression)? "}";
1338 @Override public ParserRule getRule() { return rule; } 1500 @Override public ParserRule getRule() { return rule; }
1339 1501
1340 //op=[NamedElement|QualifiedName] localVariables=LocalVariables? "{" body=Expression ("|" condition=Expression)? "}" 1502 //"count" "{" condition=Expression "}"
1341 public Group getGroup() { return cGroup; } 1503 public Group getGroup() { return cGroup; }
1342 1504
1343 //op=[NamedElement|QualifiedName] 1505 //"count"
1344 public Assignment getOpAssignment_0() { return cOpAssignment_0; } 1506 public Keyword getCountKeyword_0() { return cCountKeyword_0; }
1345
1346 //[NamedElement|QualifiedName]
1347 public CrossReference getOpNamedElementCrossReference_0_0() { return cOpNamedElementCrossReference_0_0; }
1348
1349 //QualifiedName
1350 public RuleCall getOpNamedElementQualifiedNameParserRuleCall_0_0_1() { return cOpNamedElementQualifiedNameParserRuleCall_0_0_1; }
1351
1352 //localVariables=LocalVariables?
1353 public Assignment getLocalVariablesAssignment_1() { return cLocalVariablesAssignment_1; }
1354
1355 //LocalVariables
1356 public RuleCall getLocalVariablesLocalVariablesParserRuleCall_1_0() { return cLocalVariablesLocalVariablesParserRuleCall_1_0; }
1357 1507
1358 //"{" 1508 //"{"
1359 public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } 1509 public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
1360
1361 //body=Expression
1362 public Assignment getBodyAssignment_3() { return cBodyAssignment_3; }
1363
1364 //Expression
1365 public RuleCall getBodyExpressionParserRuleCall_3_0() { return cBodyExpressionParserRuleCall_3_0; }
1366
1367 //("|" condition=Expression)?
1368 public Group getGroup_4() { return cGroup_4; }
1369
1370 //"|"
1371 public Keyword getVerticalLineKeyword_4_0() { return cVerticalLineKeyword_4_0; }
1372 1510
1373 //condition=Expression 1511 //condition=Expression
1374 public Assignment getConditionAssignment_4_1() { return cConditionAssignment_4_1; } 1512 public Assignment getConditionAssignment_2() { return cConditionAssignment_2; }
1375 1513
1376 //Expression 1514 //Expression
1377 public RuleCall getConditionExpressionParserRuleCall_4_1_0() { return cConditionExpressionParserRuleCall_4_1_0; } 1515 public RuleCall getConditionExpressionParserRuleCall_2_0() { return cConditionExpressionParserRuleCall_2_0; }
1378 1516
1379 //"}" 1517 //"}"
1380 public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; } 1518 public Keyword getRightCurlyBracketKeyword_3() { return cRightCurlyBracketKeyword_3; }
1381 } 1519 }
1382 public class AtomicExpressionElements extends AbstractParserRuleElementFinder { 1520 public class AtomicExpressionElements extends AbstractParserRuleElementFinder {
1383 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AtomicExpression"); 1521 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AtomicExpression");
@@ -1427,21 +1565,14 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
1427 private final Group cGroup = (Group)rule.eContents().get(1); 1565 private final Group cGroup = (Group)rule.eContents().get(1);
1428 private final Assignment cFunctorAssignment_0 = (Assignment)cGroup.eContents().get(0); 1566 private final Assignment cFunctorAssignment_0 = (Assignment)cGroup.eContents().get(0);
1429 private final RuleCall cFunctorReferenceParserRuleCall_0_0 = (RuleCall)cFunctorAssignment_0.eContents().get(0); 1567 private final RuleCall cFunctorReferenceParserRuleCall_0_0 = (RuleCall)cFunctorAssignment_0.eContents().get(0);
1430 private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); 1568 private final Assignment cArgumentListAssignment_1 = (Assignment)cGroup.eContents().get(1);
1431 private final Assignment cTransitiveClosureAssignment_1_0 = (Assignment)cAlternatives_1.eContents().get(0); 1569 private final RuleCall cArgumentListArgumentListParserRuleCall_1_0 = (RuleCall)cArgumentListAssignment_1.eContents().get(0);
1432 private final RuleCall cTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_1_0_0 = (RuleCall)cTransitiveClosureAssignment_1_0.eContents().get(0);
1433 private final Assignment cReflexiveTransitiveClosureAssignment_1_1 = (Assignment)cAlternatives_1.eContents().get(1);
1434 private final RuleCall cReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_1_1_0 = (RuleCall)cReflexiveTransitiveClosureAssignment_1_1.eContents().get(0);
1435 private final Assignment cArgumentListAssignment_2 = (Assignment)cGroup.eContents().get(2);
1436 private final RuleCall cArgumentListArgumentListParserRuleCall_2_0 = (RuleCall)cArgumentListAssignment_2.eContents().get(0);
1437 1570
1438 //Call: 1571 //Call:
1439 // functor=Reference (transitiveClosure?=TRANSITIVE_CLOSURE | reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE)? 1572 // functor=Reference argumentList=ArgumentList;
1440 // argumentList=ArgumentList;
1441 @Override public ParserRule getRule() { return rule; } 1573 @Override public ParserRule getRule() { return rule; }
1442 1574
1443 //functor=Reference (transitiveClosure?=TRANSITIVE_CLOSURE | reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE)? 1575 //functor=Reference argumentList=ArgumentList
1444 //argumentList=ArgumentList
1445 public Group getGroup() { return cGroup; } 1576 public Group getGroup() { return cGroup; }
1446 1577
1447 //functor=Reference 1578 //functor=Reference
@@ -1450,26 +1581,11 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
1450 //Reference 1581 //Reference
1451 public RuleCall getFunctorReferenceParserRuleCall_0_0() { return cFunctorReferenceParserRuleCall_0_0; } 1582 public RuleCall getFunctorReferenceParserRuleCall_0_0() { return cFunctorReferenceParserRuleCall_0_0; }
1452 1583
1453 //(transitiveClosure?=TRANSITIVE_CLOSURE | reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE)?
1454 public Alternatives getAlternatives_1() { return cAlternatives_1; }
1455
1456 //transitiveClosure?=TRANSITIVE_CLOSURE
1457 public Assignment getTransitiveClosureAssignment_1_0() { return cTransitiveClosureAssignment_1_0; }
1458
1459 //TRANSITIVE_CLOSURE
1460 public RuleCall getTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_1_0_0() { return cTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_1_0_0; }
1461
1462 //reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE
1463 public Assignment getReflexiveTransitiveClosureAssignment_1_1() { return cReflexiveTransitiveClosureAssignment_1_1; }
1464
1465 //REFLEXIVE_TRANSITIVE_CLOSURE
1466 public RuleCall getReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_1_1_0() { return cReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_1_1_0; }
1467
1468 //argumentList=ArgumentList 1584 //argumentList=ArgumentList
1469 public Assignment getArgumentListAssignment_2() { return cArgumentListAssignment_2; } 1585 public Assignment getArgumentListAssignment_1() { return cArgumentListAssignment_1; }
1470 1586
1471 //ArgumentList 1587 //ArgumentList
1472 public RuleCall getArgumentListArgumentListParserRuleCall_2_0() { return cArgumentListArgumentListParserRuleCall_2_0; } 1588 public RuleCall getArgumentListArgumentListParserRuleCall_1_0() { return cArgumentListArgumentListParserRuleCall_1_0; }
1473 } 1589 }
1474 public class ArgumentListElements extends AbstractParserRuleElementFinder { 1590 public class ArgumentListElements extends AbstractParserRuleElementFinder {
1475 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); 1591 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList");
@@ -1527,14 +1643,14 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
1527 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 1643 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1528 private final RuleCall cExpressionArgumentParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); 1644 private final RuleCall cExpressionArgumentParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1529 private final RuleCall cStarArgumentParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); 1645 private final RuleCall cStarArgumentParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
1530 private final RuleCall cTypedArgumentParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); 1646 private final RuleCall cTypedVariableArgumentParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
1531 private final RuleCall cTypedStarArgumentParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); 1647 private final RuleCall cTypedStarArgumentParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
1532 1648
1533 //Argument: 1649 //Argument:
1534 // ExpressionArgument | StarArgument | TypedArgument | TypedStarArgument; 1650 // ExpressionArgument | StarArgument | TypedVariableArgument | TypedStarArgument;
1535 @Override public ParserRule getRule() { return rule; } 1651 @Override public ParserRule getRule() { return rule; }
1536 1652
1537 //ExpressionArgument | StarArgument | TypedArgument | TypedStarArgument 1653 //ExpressionArgument | StarArgument | TypedVariableArgument | TypedStarArgument
1538 public Alternatives getAlternatives() { return cAlternatives; } 1654 public Alternatives getAlternatives() { return cAlternatives; }
1539 1655
1540 //ExpressionArgument 1656 //ExpressionArgument
@@ -1543,26 +1659,26 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
1543 //StarArgument 1659 //StarArgument
1544 public RuleCall getStarArgumentParserRuleCall_1() { return cStarArgumentParserRuleCall_1; } 1660 public RuleCall getStarArgumentParserRuleCall_1() { return cStarArgumentParserRuleCall_1; }
1545 1661
1546 //TypedArgument 1662 //TypedVariableArgument
1547 public RuleCall getTypedArgumentParserRuleCall_2() { return cTypedArgumentParserRuleCall_2; } 1663 public RuleCall getTypedVariableArgumentParserRuleCall_2() { return cTypedVariableArgumentParserRuleCall_2; }
1548 1664
1549 //TypedStarArgument 1665 //TypedStarArgument
1550 public RuleCall getTypedStarArgumentParserRuleCall_3() { return cTypedStarArgumentParserRuleCall_3; } 1666 public RuleCall getTypedStarArgumentParserRuleCall_3() { return cTypedStarArgumentParserRuleCall_3; }
1551 } 1667 }
1552 public class ExpressionArgumentElements extends AbstractParserRuleElementFinder { 1668 public class ExpressionArgumentElements extends AbstractParserRuleElementFinder {
1553 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExpressionArgument"); 1669 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExpressionArgument");
1554 private final Assignment cBodyAssignment = (Assignment)rule.eContents().get(1); 1670 private final Assignment cExpressionAssignment = (Assignment)rule.eContents().get(1);
1555 private final RuleCall cBodyComparisonExpressionParserRuleCall_0 = (RuleCall)cBodyAssignment.eContents().get(0); 1671 private final RuleCall cExpressionComparisonExpressionParserRuleCall_0 = (RuleCall)cExpressionAssignment.eContents().get(0);
1556 1672
1557 //ExpressionArgument: 1673 //ExpressionArgument:
1558 // body=ComparisonExpression; 1674 // expression=ComparisonExpression;
1559 @Override public ParserRule getRule() { return rule; } 1675 @Override public ParserRule getRule() { return rule; }
1560 1676
1561 //body=ComparisonExpression 1677 //expression=ComparisonExpression
1562 public Assignment getBodyAssignment() { return cBodyAssignment; } 1678 public Assignment getExpressionAssignment() { return cExpressionAssignment; }
1563 1679
1564 //ComparisonExpression 1680 //ComparisonExpression
1565 public RuleCall getBodyComparisonExpressionParserRuleCall_0() { return cBodyComparisonExpressionParserRuleCall_0; } 1681 public RuleCall getExpressionComparisonExpressionParserRuleCall_0() { return cExpressionComparisonExpressionParserRuleCall_0; }
1566 } 1682 }
1567 public class StarArgumentElements extends AbstractParserRuleElementFinder { 1683 public class StarArgumentElements extends AbstractParserRuleElementFinder {
1568 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.StarArgument"); 1684 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.StarArgument");
@@ -1583,122 +1699,179 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
1583 //"*" 1699 //"*"
1584 public Keyword getAsteriskKeyword_1() { return cAsteriskKeyword_1; } 1700 public Keyword getAsteriskKeyword_1() { return cAsteriskKeyword_1; }
1585 } 1701 }
1586 public class TypedArgumentElements extends AbstractParserRuleElementFinder { 1702 public class TypedVariableArgumentElements extends AbstractParserRuleElementFinder {
1587 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.TypedArgument"); 1703 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.TypedVariableArgument");
1588 private final Group cGroup = (Group)rule.eContents().get(1); 1704 private final Group cGroup = (Group)rule.eContents().get(1);
1589 private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0); 1705 private final Assignment cTypeReferenceAssignment_0 = (Assignment)cGroup.eContents().get(0);
1590 private final CrossReference cTypeNamedElementCrossReference_0_0 = (CrossReference)cTypeAssignment_0.eContents().get(0); 1706 private final RuleCall cTypeReferenceTypeReferenceParserRuleCall_0_0 = (RuleCall)cTypeReferenceAssignment_0.eContents().get(0);
1591 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cTypeNamedElementCrossReference_0_0.eContents().get(1); 1707 private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
1592 private final Assignment cVariableAssignment_1 = (Assignment)cGroup.eContents().get(1); 1708 private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
1593 private final CrossReference cVariableNamedElementCrossReference_1_0 = (CrossReference)cVariableAssignment_1.eContents().get(0);
1594 private final RuleCall cVariableNamedElementQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cVariableNamedElementCrossReference_1_0.eContents().get(1);
1595 1709
1596 //TypedArgument: 1710 //TypedVariableArgument:
1597 // type=[NamedElement|QualifiedName] variable=[NamedElement|QualifiedName]; 1711 // typeReference=TypeReference name=ID;
1598 @Override public ParserRule getRule() { return rule; } 1712 @Override public ParserRule getRule() { return rule; }
1599 1713
1600 //type=[NamedElement|QualifiedName] variable=[NamedElement|QualifiedName] 1714 //typeReference=TypeReference name=ID
1601 public Group getGroup() { return cGroup; } 1715 public Group getGroup() { return cGroup; }
1602 1716
1603 //type=[NamedElement|QualifiedName] 1717 //typeReference=TypeReference
1604 public Assignment getTypeAssignment_0() { return cTypeAssignment_0; } 1718 public Assignment getTypeReferenceAssignment_0() { return cTypeReferenceAssignment_0; }
1605 1719
1606 //[NamedElement|QualifiedName] 1720 //TypeReference
1607 public CrossReference getTypeNamedElementCrossReference_0_0() { return cTypeNamedElementCrossReference_0_0; } 1721 public RuleCall getTypeReferenceTypeReferenceParserRuleCall_0_0() { return cTypeReferenceTypeReferenceParserRuleCall_0_0; }
1608 1722
1609 //QualifiedName 1723 //name=ID
1610 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_0_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_0_0_1; } 1724 public Assignment getNameAssignment_1() { return cNameAssignment_1; }
1611
1612 //variable=[NamedElement|QualifiedName]
1613 public Assignment getVariableAssignment_1() { return cVariableAssignment_1; }
1614
1615 //[NamedElement|QualifiedName]
1616 public CrossReference getVariableNamedElementCrossReference_1_0() { return cVariableNamedElementCrossReference_1_0; }
1617 1725
1618 //QualifiedName 1726 //ID
1619 public RuleCall getVariableNamedElementQualifiedNameParserRuleCall_1_0_1() { return cVariableNamedElementQualifiedNameParserRuleCall_1_0_1; } 1727 public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
1620 } 1728 }
1621 public class TypedStarArgumentElements extends AbstractParserRuleElementFinder { 1729 public class TypedStarArgumentElements extends AbstractParserRuleElementFinder {
1622 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.TypedStarArgument"); 1730 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.TypedStarArgument");
1623 private final Group cGroup = (Group)rule.eContents().get(1); 1731 private final Group cGroup = (Group)rule.eContents().get(1);
1624 private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0); 1732 private final Assignment cTypeReferenceAssignment_0 = (Assignment)cGroup.eContents().get(0);
1625 private final CrossReference cTypeNamedElementCrossReference_0_0 = (CrossReference)cTypeAssignment_0.eContents().get(0); 1733 private final RuleCall cTypeReferenceTypeReferenceParserRuleCall_0_0 = (RuleCall)cTypeReferenceAssignment_0.eContents().get(0);
1626 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cTypeNamedElementCrossReference_0_0.eContents().get(1);
1627 private final Keyword cAsteriskKeyword_1 = (Keyword)cGroup.eContents().get(1); 1734 private final Keyword cAsteriskKeyword_1 = (Keyword)cGroup.eContents().get(1);
1628 1735
1629 //TypedStarArgument: 1736 //TypedStarArgument:
1630 // type=[NamedElement|QualifiedName] "*"; 1737 // typeReference=TypeReference "*";
1631 @Override public ParserRule getRule() { return rule; } 1738 @Override public ParserRule getRule() { return rule; }
1632 1739
1633 //type=[NamedElement|QualifiedName] "*" 1740 //typeReference=TypeReference "*"
1634 public Group getGroup() { return cGroup; } 1741 public Group getGroup() { return cGroup; }
1635 1742
1636 //type=[NamedElement|QualifiedName] 1743 //typeReference=TypeReference
1637 public Assignment getTypeAssignment_0() { return cTypeAssignment_0; } 1744 public Assignment getTypeReferenceAssignment_0() { return cTypeReferenceAssignment_0; }
1638
1639 //[NamedElement|QualifiedName]
1640 public CrossReference getTypeNamedElementCrossReference_0_0() { return cTypeNamedElementCrossReference_0_0; }
1641 1745
1642 //QualifiedName 1746 //TypeReference
1643 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_0_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_0_0_1; } 1747 public RuleCall getTypeReferenceTypeReferenceParserRuleCall_0_0() { return cTypeReferenceTypeReferenceParserRuleCall_0_0; }
1644 1748
1645 //"*" 1749 //"*"
1646 public Keyword getAsteriskKeyword_1() { return cAsteriskKeyword_1; } 1750 public Keyword getAsteriskKeyword_1() { return cAsteriskKeyword_1; }
1647 } 1751 }
1648 public class ReferenceElements extends AbstractParserRuleElementFinder { 1752 public class ReferenceElements extends AbstractParserRuleElementFinder {
1649 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Reference"); 1753 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Reference");
1650 private final Assignment cReferredAssignment = (Assignment)rule.eContents().get(1); 1754 private final Group cGroup = (Group)rule.eContents().get(1);
1651 private final CrossReference cReferredNamedElementCrossReference_0 = (CrossReference)cReferredAssignment.eContents().get(0); 1755 private final Assignment cComponentsAssignment_0 = (Assignment)cGroup.eContents().get(0);
1652 private final RuleCall cReferredNamedElementQualifiedNameParserRuleCall_0_1 = (RuleCall)cReferredNamedElementCrossReference_0.eContents().get(1); 1756 private final RuleCall cComponentsPathComponentParserRuleCall_0_0 = (RuleCall)cComponentsAssignment_0.eContents().get(0);
1757 private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
1758 private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
1759 private final Assignment cComponentsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
1760 private final RuleCall cComponentsPathComponentParserRuleCall_1_1_0 = (RuleCall)cComponentsAssignment_1_1.eContents().get(0);
1653 1761
1654 //Reference: 1762 //Reference:
1655 // referred=[NamedElement|QualifiedName]; 1763 // components+=PathComponent ("." components+=PathComponent)*;
1656 @Override public ParserRule getRule() { return rule; } 1764 @Override public ParserRule getRule() { return rule; }
1657 1765
1658 //referred=[NamedElement|QualifiedName] 1766 //components+=PathComponent ("." components+=PathComponent)*
1659 public Assignment getReferredAssignment() { return cReferredAssignment; } 1767 public Group getGroup() { return cGroup; }
1768
1769 //components+=PathComponent
1770 public Assignment getComponentsAssignment_0() { return cComponentsAssignment_0; }
1660 1771
1661 //[NamedElement|QualifiedName] 1772 //PathComponent
1662 public CrossReference getReferredNamedElementCrossReference_0() { return cReferredNamedElementCrossReference_0; } 1773 public RuleCall getComponentsPathComponentParserRuleCall_0_0() { return cComponentsPathComponentParserRuleCall_0_0; }
1774
1775 //("." components+=PathComponent)*
1776 public Group getGroup_1() { return cGroup_1; }
1777
1778 //"."
1779 public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }
1780
1781 //components+=PathComponent
1782 public Assignment getComponentsAssignment_1_1() { return cComponentsAssignment_1_1; }
1783
1784 //PathComponent
1785 public RuleCall getComponentsPathComponentParserRuleCall_1_1_0() { return cComponentsPathComponentParserRuleCall_1_1_0; }
1786 }
1787 public class PathComponentElements extends AbstractParserRuleElementFinder {
1788 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.PathComponent");
1789 private final Group cGroup = (Group)rule.eContents().get(1);
1790 private final Assignment cInverseAssignment_0 = (Assignment)cGroup.eContents().get(0);
1791 private final Keyword cInverseTildeKeyword_0_0 = (Keyword)cInverseAssignment_0.eContents().get(0);
1792 private final Assignment cSymbolAssignment_1 = (Assignment)cGroup.eContents().get(1);
1793 private final CrossReference cSymbolSymbolCrossReference_1_0 = (CrossReference)cSymbolAssignment_1.eContents().get(0);
1794 private final RuleCall cSymbolSymbolQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cSymbolSymbolCrossReference_1_0.eContents().get(1);
1795 private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
1796 private final Assignment cTransitiveClosureAssignment_2_0 = (Assignment)cAlternatives_2.eContents().get(0);
1797 private final RuleCall cTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_2_0_0 = (RuleCall)cTransitiveClosureAssignment_2_0.eContents().get(0);
1798 private final Assignment cReflexiveTransitiveClosureAssignment_2_1 = (Assignment)cAlternatives_2.eContents().get(1);
1799 private final RuleCall cReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_2_1_0 = (RuleCall)cReflexiveTransitiveClosureAssignment_2_1.eContents().get(0);
1800
1801 //PathComponent:
1802 // inverse?="~"? symbol=[Symbol|QualifiedName] (transitiveClosure?=TRANSITIVE_CLOSURE |
1803 // reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE)?;
1804 @Override public ParserRule getRule() { return rule; }
1805
1806 //inverse?="~"? symbol=[Symbol|QualifiedName] (transitiveClosure?=TRANSITIVE_CLOSURE |
1807 //reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE)?
1808 public Group getGroup() { return cGroup; }
1809
1810 //inverse?="~"?
1811 public Assignment getInverseAssignment_0() { return cInverseAssignment_0; }
1812
1813 //"~"
1814 public Keyword getInverseTildeKeyword_0_0() { return cInverseTildeKeyword_0_0; }
1815
1816 //symbol=[Symbol|QualifiedName]
1817 public Assignment getSymbolAssignment_1() { return cSymbolAssignment_1; }
1818
1819 //[Symbol|QualifiedName]
1820 public CrossReference getSymbolSymbolCrossReference_1_0() { return cSymbolSymbolCrossReference_1_0; }
1663 1821
1664 //QualifiedName 1822 //QualifiedName
1665 public RuleCall getReferredNamedElementQualifiedNameParserRuleCall_0_1() { return cReferredNamedElementQualifiedNameParserRuleCall_0_1; } 1823 public RuleCall getSymbolSymbolQualifiedNameParserRuleCall_1_0_1() { return cSymbolSymbolQualifiedNameParserRuleCall_1_0_1; }
1824
1825 //(transitiveClosure?=TRANSITIVE_CLOSURE | reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE)?
1826 public Alternatives getAlternatives_2() { return cAlternatives_2; }
1827
1828 //transitiveClosure?=TRANSITIVE_CLOSURE
1829 public Assignment getTransitiveClosureAssignment_2_0() { return cTransitiveClosureAssignment_2_0; }
1830
1831 //TRANSITIVE_CLOSURE
1832 public RuleCall getTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_2_0_0() { return cTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_2_0_0; }
1833
1834 //reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE
1835 public Assignment getReflexiveTransitiveClosureAssignment_2_1() { return cReflexiveTransitiveClosureAssignment_2_1; }
1836
1837 //REFLEXIVE_TRANSITIVE_CLOSURE
1838 public RuleCall getReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_2_1_0() { return cReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_2_1_0; }
1666 } 1839 }
1667 public class IntervalElements extends AbstractParserRuleElementFinder { 1840 public class IntervalElements extends AbstractParserRuleElementFinder {
1668 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Interval"); 1841 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Interval");
1669 private final Group cGroup = (Group)rule.eContents().get(1); 1842 private final Group cGroup = (Group)rule.eContents().get(1);
1670 private final Keyword cLeftSquareBracketKeyword_0 = (Keyword)cGroup.eContents().get(0); 1843 private final Keyword cLeftSquareBracketKeyword_0 = (Keyword)cGroup.eContents().get(0);
1671 private final Assignment cLowerBoundAssignment_1 = (Assignment)cGroup.eContents().get(1); 1844 private final Assignment cLowerBoundAssignment_1 = (Assignment)cGroup.eContents().get(1);
1672 private final RuleCall cLowerBoundExpressionParserRuleCall_1_0 = (RuleCall)cLowerBoundAssignment_1.eContents().get(0); 1845 private final RuleCall cLowerBoundAdditiveExpressionParserRuleCall_1_0 = (RuleCall)cLowerBoundAssignment_1.eContents().get(0);
1673 private final Keyword cFullStopFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2); 1846 private final Keyword cCommaKeyword_2 = (Keyword)cGroup.eContents().get(2);
1674 private final Assignment cUpperBoundAssignment_3 = (Assignment)cGroup.eContents().get(3); 1847 private final Assignment cUpperBoundAssignment_3 = (Assignment)cGroup.eContents().get(3);
1675 private final RuleCall cUpperBoundExpressionParserRuleCall_3_0 = (RuleCall)cUpperBoundAssignment_3.eContents().get(0); 1848 private final RuleCall cUpperBoundAdditiveExpressionParserRuleCall_3_0 = (RuleCall)cUpperBoundAssignment_3.eContents().get(0);
1676 private final Keyword cRightSquareBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); 1849 private final Keyword cRightSquareBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
1677 1850
1678 //Interval: 1851 //Interval:
1679 // "[" lowerBound=Expression ".." upperBound=Expression "]"; 1852 // "[" lowerBound=AdditiveExpression "," upperBound=AdditiveExpression "]";
1680 @Override public ParserRule getRule() { return rule; } 1853 @Override public ParserRule getRule() { return rule; }
1681 1854
1682 //"[" lowerBound=Expression ".." upperBound=Expression "]" 1855 //"[" lowerBound=AdditiveExpression "," upperBound=AdditiveExpression "]"
1683 public Group getGroup() { return cGroup; } 1856 public Group getGroup() { return cGroup; }
1684 1857
1685 //"[" 1858 //"["
1686 public Keyword getLeftSquareBracketKeyword_0() { return cLeftSquareBracketKeyword_0; } 1859 public Keyword getLeftSquareBracketKeyword_0() { return cLeftSquareBracketKeyword_0; }
1687 1860
1688 //lowerBound=Expression 1861 //lowerBound=AdditiveExpression
1689 public Assignment getLowerBoundAssignment_1() { return cLowerBoundAssignment_1; } 1862 public Assignment getLowerBoundAssignment_1() { return cLowerBoundAssignment_1; }
1690 1863
1691 //Expression 1864 //AdditiveExpression
1692 public RuleCall getLowerBoundExpressionParserRuleCall_1_0() { return cLowerBoundExpressionParserRuleCall_1_0; } 1865 public RuleCall getLowerBoundAdditiveExpressionParserRuleCall_1_0() { return cLowerBoundAdditiveExpressionParserRuleCall_1_0; }
1693 1866
1694 //".." 1867 //","
1695 public Keyword getFullStopFullStopKeyword_2() { return cFullStopFullStopKeyword_2; } 1868 public Keyword getCommaKeyword_2() { return cCommaKeyword_2; }
1696 1869
1697 //upperBound=Expression 1870 //upperBound=AdditiveExpression
1698 public Assignment getUpperBoundAssignment_3() { return cUpperBoundAssignment_3; } 1871 public Assignment getUpperBoundAssignment_3() { return cUpperBoundAssignment_3; }
1699 1872
1700 //Expression 1873 //AdditiveExpression
1701 public RuleCall getUpperBoundExpressionParserRuleCall_3_0() { return cUpperBoundExpressionParserRuleCall_3_0; } 1874 public RuleCall getUpperBoundAdditiveExpressionParserRuleCall_3_0() { return cUpperBoundAdditiveExpressionParserRuleCall_3_0; }
1702 1875
1703 //"]" 1876 //"]"
1704 public Keyword getRightSquareBracketKeyword_4() { return cRightSquareBracketKeyword_4; } 1877 public Keyword getRightSquareBracketKeyword_4() { return cRightSquareBracketKeyword_4; }
@@ -1707,32 +1880,36 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
1707 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Literal"); 1880 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Literal");
1708 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 1881 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1709 private final RuleCall cLogicLiteralParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); 1882 private final RuleCall cLogicLiteralParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1710 private final RuleCall cNumericLiteralParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); 1883 private final RuleCall cIntLiteralParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
1711 private final RuleCall cInfinityLiteralParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); 1884 private final RuleCall cRealLiteralParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
1712 private final RuleCall cEmptyIntervalLiteralParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); 1885 private final RuleCall cInfinityLiteralParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
1713 private final RuleCall cStringLiteralParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4); 1886 private final RuleCall cEmptyLiteralParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
1887 private final RuleCall cStringLiteralParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
1714 1888
1715 //Literal: 1889 //Literal:
1716 // LogicLiteral | NumericLiteral | InfinityLiteral | EmptyIntervalLiteral | StringLiteral; 1890 // LogicLiteral | IntLiteral | RealLiteral | InfinityLiteral | EmptyLiteral | StringLiteral;
1717 @Override public ParserRule getRule() { return rule; } 1891 @Override public ParserRule getRule() { return rule; }
1718 1892
1719 //LogicLiteral | NumericLiteral | InfinityLiteral | EmptyIntervalLiteral | StringLiteral 1893 //LogicLiteral | IntLiteral | RealLiteral | InfinityLiteral | EmptyLiteral | StringLiteral
1720 public Alternatives getAlternatives() { return cAlternatives; } 1894 public Alternatives getAlternatives() { return cAlternatives; }
1721 1895
1722 //LogicLiteral 1896 //LogicLiteral
1723 public RuleCall getLogicLiteralParserRuleCall_0() { return cLogicLiteralParserRuleCall_0; } 1897 public RuleCall getLogicLiteralParserRuleCall_0() { return cLogicLiteralParserRuleCall_0; }
1724 1898
1725 //NumericLiteral 1899 //IntLiteral
1726 public RuleCall getNumericLiteralParserRuleCall_1() { return cNumericLiteralParserRuleCall_1; } 1900 public RuleCall getIntLiteralParserRuleCall_1() { return cIntLiteralParserRuleCall_1; }
1901
1902 //RealLiteral
1903 public RuleCall getRealLiteralParserRuleCall_2() { return cRealLiteralParserRuleCall_2; }
1727 1904
1728 //InfinityLiteral 1905 //InfinityLiteral
1729 public RuleCall getInfinityLiteralParserRuleCall_2() { return cInfinityLiteralParserRuleCall_2; } 1906 public RuleCall getInfinityLiteralParserRuleCall_3() { return cInfinityLiteralParserRuleCall_3; }
1730 1907
1731 //EmptyIntervalLiteral 1908 //EmptyLiteral
1732 public RuleCall getEmptyIntervalLiteralParserRuleCall_3() { return cEmptyIntervalLiteralParserRuleCall_3; } 1909 public RuleCall getEmptyLiteralParserRuleCall_4() { return cEmptyLiteralParserRuleCall_4; }
1733 1910
1734 //StringLiteral 1911 //StringLiteral
1735 public RuleCall getStringLiteralParserRuleCall_4() { return cStringLiteralParserRuleCall_4; } 1912 public RuleCall getStringLiteralParserRuleCall_5() { return cStringLiteralParserRuleCall_5; }
1736 } 1913 }
1737 public class LogicLiteralElements extends AbstractParserRuleElementFinder { 1914 public class LogicLiteralElements extends AbstractParserRuleElementFinder {
1738 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LogicLiteral"); 1915 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LogicLiteral");
@@ -1749,12 +1926,27 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
1749 //LogicValue 1926 //LogicValue
1750 public RuleCall getValueLogicValueEnumRuleCall_0() { return cValueLogicValueEnumRuleCall_0; } 1927 public RuleCall getValueLogicValueEnumRuleCall_0() { return cValueLogicValueEnumRuleCall_0; }
1751 } 1928 }
1752 public class NumericLiteralElements extends AbstractParserRuleElementFinder { 1929 public class IntLiteralElements extends AbstractParserRuleElementFinder {
1753 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.NumericLiteral"); 1930 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.IntLiteral");
1931 private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
1932 private final RuleCall cValueINTTerminalRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
1933
1934 //IntLiteral:
1935 // value=INT;
1936 @Override public ParserRule getRule() { return rule; }
1937
1938 //value=INT
1939 public Assignment getValueAssignment() { return cValueAssignment; }
1940
1941 //INT
1942 public RuleCall getValueINTTerminalRuleCall_0() { return cValueINTTerminalRuleCall_0; }
1943 }
1944 public class RealLiteralElements extends AbstractParserRuleElementFinder {
1945 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.RealLiteral");
1754 private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1); 1946 private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
1755 private final RuleCall cValueRealParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0); 1947 private final RuleCall cValueRealParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
1756 1948
1757 //NumericLiteral: 1949 //RealLiteral:
1758 // value=Real; 1950 // value=Real;
1759 @Override public ParserRule getRule() { return rule; } 1951 @Override public ParserRule getRule() { return rule; }
1760 1952
@@ -1783,21 +1975,21 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
1783 //"inf" 1975 //"inf"
1784 public Keyword getInfKeyword_1() { return cInfKeyword_1; } 1976 public Keyword getInfKeyword_1() { return cInfKeyword_1; }
1785 } 1977 }
1786 public class EmptyIntervalLiteralElements extends AbstractParserRuleElementFinder { 1978 public class EmptyLiteralElements extends AbstractParserRuleElementFinder {
1787 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.EmptyIntervalLiteral"); 1979 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.EmptyLiteral");
1788 private final Group cGroup = (Group)rule.eContents().get(1); 1980 private final Group cGroup = (Group)rule.eContents().get(1);
1789 private final Action cEmptyIntervalLiteralAction_0 = (Action)cGroup.eContents().get(0); 1981 private final Action cEmptyLiteralAction_0 = (Action)cGroup.eContents().get(0);
1790 private final Keyword cEmptyKeyword_1 = (Keyword)cGroup.eContents().get(1); 1982 private final Keyword cEmptyKeyword_1 = (Keyword)cGroup.eContents().get(1);
1791 1983
1792 //EmptyIntervalLiteral: 1984 //EmptyLiteral:
1793 // {EmptyIntervalLiteral} "empty"; 1985 // {EmptyLiteral} "empty";
1794 @Override public ParserRule getRule() { return rule; } 1986 @Override public ParserRule getRule() { return rule; }
1795 1987
1796 //{EmptyIntervalLiteral} "empty" 1988 //{EmptyLiteral} "empty"
1797 public Group getGroup() { return cGroup; } 1989 public Group getGroup() { return cGroup; }
1798 1990
1799 //{EmptyIntervalLiteral} 1991 //{EmptyLiteral}
1800 public Action getEmptyIntervalLiteralAction_0() { return cEmptyIntervalLiteralAction_0; } 1992 public Action getEmptyLiteralAction_0() { return cEmptyLiteralAction_0; }
1801 1993
1802 //"empty" 1994 //"empty"
1803 public Keyword getEmptyKeyword_1() { return cEmptyKeyword_1; } 1995 public Keyword getEmptyKeyword_1() { return cEmptyKeyword_1; }
@@ -1817,44 +2009,58 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
1817 //STRING 2009 //STRING
1818 public RuleCall getValueSTRINGTerminalRuleCall_0() { return cValueSTRINGTerminalRuleCall_0; } 2010 public RuleCall getValueSTRINGTerminalRuleCall_0() { return cValueSTRINGTerminalRuleCall_0; }
1819 } 2011 }
1820 public class ClassDefinitionElements extends AbstractParserRuleElementFinder { 2012 public class ClassDeclarationElements extends AbstractParserRuleElementFinder {
1821 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ClassDefinition"); 2013 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ClassDeclaration");
1822 private final Group cGroup = (Group)rule.eContents().get(1); 2014 private final Group cGroup = (Group)rule.eContents().get(1);
1823 private final Assignment cAbstractAssignment_0 = (Assignment)cGroup.eContents().get(0); 2015 private final UnorderedGroup cUnorderedGroup_0 = (UnorderedGroup)cGroup.eContents().get(0);
1824 private final Keyword cAbstractAbstractKeyword_0_0 = (Keyword)cAbstractAssignment_0.eContents().get(0); 2016 private final Assignment cAbstractAssignment_0_0 = (Assignment)cUnorderedGroup_0.eContents().get(0);
2017 private final Keyword cAbstractAbstractKeyword_0_0_0 = (Keyword)cAbstractAssignment_0_0.eContents().get(0);
2018 private final Assignment cRootAssignment_0_1 = (Assignment)cUnorderedGroup_0.eContents().get(1);
2019 private final Keyword cRootRootKeyword_0_1_0 = (Keyword)cRootAssignment_0_1.eContents().get(0);
1825 private final Keyword cClassKeyword_1 = (Keyword)cGroup.eContents().get(1); 2020 private final Keyword cClassKeyword_1 = (Keyword)cGroup.eContents().get(1);
1826 private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); 2021 private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
1827 private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); 2022 private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
1828 private final Group cGroup_3 = (Group)cGroup.eContents().get(3); 2023 private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
1829 private final Keyword cExtendsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); 2024 private final Keyword cExtendsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
1830 private final Assignment cSuperclassesAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1); 2025 private final Assignment cSupertypesAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
1831 private final CrossReference cSuperclassesNamedElementCrossReference_3_1_0 = (CrossReference)cSuperclassesAssignment_3_1.eContents().get(0); 2026 private final CrossReference cSupertypesSymbolCrossReference_3_1_0 = (CrossReference)cSupertypesAssignment_3_1.eContents().get(0);
1832 private final RuleCall cSuperclassesNamedElementQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cSuperclassesNamedElementCrossReference_3_1_0.eContents().get(1); 2027 private final RuleCall cSupertypesSymbolQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cSupertypesSymbolCrossReference_3_1_0.eContents().get(1);
1833 private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2); 2028 private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2);
1834 private final Keyword cCommaKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0); 2029 private final Keyword cCommaKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0);
1835 private final Assignment cSuperclassesAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1); 2030 private final Assignment cSupertypesAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1);
1836 private final CrossReference cSuperclassesNamedElementCrossReference_3_2_1_0 = (CrossReference)cSuperclassesAssignment_3_2_1.eContents().get(0); 2031 private final CrossReference cSupertypesSymbolCrossReference_3_2_1_0 = (CrossReference)cSupertypesAssignment_3_2_1.eContents().get(0);
1837 private final RuleCall cSuperclassesNamedElementQualifiedNameParserRuleCall_3_2_1_0_1 = (RuleCall)cSuperclassesNamedElementCrossReference_3_2_1_0.eContents().get(1); 2032 private final RuleCall cSupertypesSymbolQualifiedNameParserRuleCall_3_2_1_0_1 = (RuleCall)cSupertypesSymbolCrossReference_3_2_1_0.eContents().get(1);
1838 private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); 2033 private final Alternatives cAlternatives_4 = (Alternatives)cGroup.eContents().get(4);
1839 private final Assignment cMembersAssignment_5 = (Assignment)cGroup.eContents().get(5); 2034 private final Group cGroup_4_0 = (Group)cAlternatives_4.eContents().get(0);
1840 private final RuleCall cMembersMemberDefinitionParserRuleCall_5_0 = (RuleCall)cMembersAssignment_5.eContents().get(0); 2035 private final Keyword cLeftCurlyBracketKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
1841 private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6); 2036 private final Assignment cFieldsAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1);
1842 2037 private final RuleCall cFieldsFieldParserRuleCall_4_0_1_0 = (RuleCall)cFieldsAssignment_4_0_1.eContents().get(0);
1843 //ClassDefinition: 2038 private final Keyword cRightCurlyBracketKeyword_4_0_2 = (Keyword)cGroup_4_0.eContents().get(2);
1844 // abstract?="abstract"? "class" name=ID ("extends" superclasses+=[NamedElement|QualifiedName] ("," 2039 private final RuleCall cFULL_STOPTerminalRuleCall_4_1 = (RuleCall)cAlternatives_4.eContents().get(1);
1845 // superclasses+=[NamedElement|QualifiedName])*)? 2040
1846 // "{" members+=MemberDefinition* "}"; 2041 //ClassDeclaration:
2042 // (abstract?="abstract"? & root?="root"?) "class" name=ID ("extends" supertypes+=[Symbol|QualifiedName] (","
2043 // supertypes+=[Symbol|QualifiedName])*)? ("{" fields+=Field* "}" | FULL_STOP);
1847 @Override public ParserRule getRule() { return rule; } 2044 @Override public ParserRule getRule() { return rule; }
1848 2045
1849 //abstract?="abstract"? "class" name=ID ("extends" superclasses+=[NamedElement|QualifiedName] ("," 2046 //(abstract?="abstract"? & root?="root"?) "class" name=ID ("extends" supertypes+=[Symbol|QualifiedName] (","
1850 //superclasses+=[NamedElement|QualifiedName])*)? "{" members+=MemberDefinition* "}" 2047 //supertypes+=[Symbol|QualifiedName])*)? ("{" fields+=Field* "}" | FULL_STOP)
1851 public Group getGroup() { return cGroup; } 2048 public Group getGroup() { return cGroup; }
1852 2049
2050 //(abstract?="abstract"? & root?="root"?)
2051 public UnorderedGroup getUnorderedGroup_0() { return cUnorderedGroup_0; }
2052
1853 //abstract?="abstract"? 2053 //abstract?="abstract"?
1854 public Assignment getAbstractAssignment_0() { return cAbstractAssignment_0; } 2054 public Assignment getAbstractAssignment_0_0() { return cAbstractAssignment_0_0; }
1855 2055
1856 //"abstract" 2056 //"abstract"
1857 public Keyword getAbstractAbstractKeyword_0_0() { return cAbstractAbstractKeyword_0_0; } 2057 public Keyword getAbstractAbstractKeyword_0_0_0() { return cAbstractAbstractKeyword_0_0_0; }
2058
2059 //root?="root"?
2060 public Assignment getRootAssignment_0_1() { return cRootAssignment_0_1; }
2061
2062 //"root"
2063 public Keyword getRootRootKeyword_0_1_0() { return cRootRootKeyword_0_1_0; }
1858 2064
1859 //"class" 2065 //"class"
1860 public Keyword getClassKeyword_1() { return cClassKeyword_1; } 2066 public Keyword getClassKeyword_1() { return cClassKeyword_1; }
@@ -1865,56 +2071,68 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
1865 //ID 2071 //ID
1866 public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; } 2072 public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
1867 2073
1868 //("extends" superclasses+=[NamedElement|QualifiedName] ("," superclasses+=[NamedElement|QualifiedName])*)? 2074 //("extends" supertypes+=[Symbol|QualifiedName] ("," supertypes+=[Symbol|QualifiedName])*)?
1869 public Group getGroup_3() { return cGroup_3; } 2075 public Group getGroup_3() { return cGroup_3; }
1870 2076
1871 //"extends" 2077 //"extends"
1872 public Keyword getExtendsKeyword_3_0() { return cExtendsKeyword_3_0; } 2078 public Keyword getExtendsKeyword_3_0() { return cExtendsKeyword_3_0; }
1873 2079
1874 //superclasses+=[NamedElement|QualifiedName] 2080 //supertypes+=[Symbol|QualifiedName]
1875 public Assignment getSuperclassesAssignment_3_1() { return cSuperclassesAssignment_3_1; } 2081 public Assignment getSupertypesAssignment_3_1() { return cSupertypesAssignment_3_1; }
1876 2082
1877 //[NamedElement|QualifiedName] 2083 //[Symbol|QualifiedName]
1878 public CrossReference getSuperclassesNamedElementCrossReference_3_1_0() { return cSuperclassesNamedElementCrossReference_3_1_0; } 2084 public CrossReference getSupertypesSymbolCrossReference_3_1_0() { return cSupertypesSymbolCrossReference_3_1_0; }
1879 2085
1880 //QualifiedName 2086 //QualifiedName
1881 public RuleCall getSuperclassesNamedElementQualifiedNameParserRuleCall_3_1_0_1() { return cSuperclassesNamedElementQualifiedNameParserRuleCall_3_1_0_1; } 2087 public RuleCall getSupertypesSymbolQualifiedNameParserRuleCall_3_1_0_1() { return cSupertypesSymbolQualifiedNameParserRuleCall_3_1_0_1; }
1882 2088
1883 //("," superclasses+=[NamedElement|QualifiedName])* 2089 //("," supertypes+=[Symbol|QualifiedName])*
1884 public Group getGroup_3_2() { return cGroup_3_2; } 2090 public Group getGroup_3_2() { return cGroup_3_2; }
1885 2091
1886 //"," 2092 //","
1887 public Keyword getCommaKeyword_3_2_0() { return cCommaKeyword_3_2_0; } 2093 public Keyword getCommaKeyword_3_2_0() { return cCommaKeyword_3_2_0; }
1888 2094
1889 //superclasses+=[NamedElement|QualifiedName] 2095 //supertypes+=[Symbol|QualifiedName]
1890 public Assignment getSuperclassesAssignment_3_2_1() { return cSuperclassesAssignment_3_2_1; } 2096 public Assignment getSupertypesAssignment_3_2_1() { return cSupertypesAssignment_3_2_1; }
1891 2097
1892 //[NamedElement|QualifiedName] 2098 //[Symbol|QualifiedName]
1893 public CrossReference getSuperclassesNamedElementCrossReference_3_2_1_0() { return cSuperclassesNamedElementCrossReference_3_2_1_0; } 2099 public CrossReference getSupertypesSymbolCrossReference_3_2_1_0() { return cSupertypesSymbolCrossReference_3_2_1_0; }
1894 2100
1895 //QualifiedName 2101 //QualifiedName
1896 public RuleCall getSuperclassesNamedElementQualifiedNameParserRuleCall_3_2_1_0_1() { return cSuperclassesNamedElementQualifiedNameParserRuleCall_3_2_1_0_1; } 2102 public RuleCall getSupertypesSymbolQualifiedNameParserRuleCall_3_2_1_0_1() { return cSupertypesSymbolQualifiedNameParserRuleCall_3_2_1_0_1; }
2103
2104 //("{" fields+=Field* "}" | FULL_STOP)
2105 public Alternatives getAlternatives_4() { return cAlternatives_4; }
2106
2107 //"{" fields+=Field* "}"
2108 public Group getGroup_4_0() { return cGroup_4_0; }
1897 2109
1898 //"{" 2110 //"{"
1899 public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; } 2111 public Keyword getLeftCurlyBracketKeyword_4_0_0() { return cLeftCurlyBracketKeyword_4_0_0; }
1900 2112
1901 //members+=MemberDefinition* 2113 //fields+=Field*
1902 public Assignment getMembersAssignment_5() { return cMembersAssignment_5; } 2114 public Assignment getFieldsAssignment_4_0_1() { return cFieldsAssignment_4_0_1; }
1903 2115
1904 //MemberDefinition 2116 //Field
1905 public RuleCall getMembersMemberDefinitionParserRuleCall_5_0() { return cMembersMemberDefinitionParserRuleCall_5_0; } 2117 public RuleCall getFieldsFieldParserRuleCall_4_0_1_0() { return cFieldsFieldParserRuleCall_4_0_1_0; }
1906 2118
1907 //"}" 2119 //"}"
1908 public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; } 2120 public Keyword getRightCurlyBracketKeyword_4_0_2() { return cRightCurlyBracketKeyword_4_0_2; }
2121
2122 //FULL_STOP
2123 public RuleCall getFULL_STOPTerminalRuleCall_4_1() { return cFULL_STOPTerminalRuleCall_4_1; }
1909 } 2124 }
1910 public class MemberDefinitionElements extends AbstractParserRuleElementFinder { 2125 public class FieldElements extends AbstractParserRuleElementFinder {
1911 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.MemberDefinition"); 2126 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Field");
1912 private final Group cGroup = (Group)rule.eContents().get(1); 2127 private final Group cGroup = (Group)rule.eContents().get(1);
1913 private final Assignment cContainmentAssignment_0 = (Assignment)cGroup.eContents().get(0); 2128 private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
1914 private final Keyword cContainmentContainsKeyword_0_0 = (Keyword)cContainmentAssignment_0.eContents().get(0); 2129 private final Assignment cContainmentAssignment_0_0 = (Assignment)cAlternatives_0.eContents().get(0);
2130 private final Keyword cContainmentContainsKeyword_0_0_0 = (Keyword)cContainmentAssignment_0_0.eContents().get(0);
2131 private final Assignment cCrossReferenceAssignment_0_1 = (Assignment)cAlternatives_0.eContents().get(1);
2132 private final Keyword cCrossReferenceRefersKeyword_0_1_0 = (Keyword)cCrossReferenceAssignment_0_1.eContents().get(0);
1915 private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1); 2133 private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
1916 private final CrossReference cTypeNamedElementCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0); 2134 private final CrossReference cTypeSymbolCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0);
1917 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_0.eContents().get(1); 2135 private final RuleCall cTypeSymbolQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeSymbolCrossReference_1_0.eContents().get(1);
1918 private final Assignment cMultiplicityAssignment_2 = (Assignment)cGroup.eContents().get(2); 2136 private final Assignment cMultiplicityAssignment_2 = (Assignment)cGroup.eContents().get(2);
1919 private final RuleCall cMultiplicityMultiplicityParserRuleCall_2_0 = (RuleCall)cMultiplicityAssignment_2.eContents().get(0); 2137 private final RuleCall cMultiplicityMultiplicityParserRuleCall_2_0 = (RuleCall)cMultiplicityAssignment_2.eContents().get(0);
1920 private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3); 2138 private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3);
@@ -1922,33 +2140,42 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
1922 private final Group cGroup_4 = (Group)cGroup.eContents().get(4); 2140 private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
1923 private final Keyword cOppositeKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0); 2141 private final Keyword cOppositeKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
1924 private final Assignment cOppositeAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1); 2142 private final Assignment cOppositeAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
1925 private final CrossReference cOppositeNamedElementCrossReference_4_1_0 = (CrossReference)cOppositeAssignment_4_1.eContents().get(0); 2143 private final CrossReference cOppositeSymbolCrossReference_4_1_0 = (CrossReference)cOppositeAssignment_4_1.eContents().get(0);
1926 private final RuleCall cOppositeNamedElementQualifiedNameParserRuleCall_4_1_0_1 = (RuleCall)cOppositeNamedElementCrossReference_4_1_0.eContents().get(1); 2144 private final RuleCall cOppositeSymbolQualifiedNameParserRuleCall_4_1_0_1 = (RuleCall)cOppositeSymbolCrossReference_4_1_0.eContents().get(1);
1927 private final Keyword cSemicolonKeyword_5 = (Keyword)cGroup.eContents().get(5); 2145 private final Keyword cSemicolonKeyword_5 = (Keyword)cGroup.eContents().get(5);
1928 2146
1929 //MemberDefinition: 2147 //Field:
1930 // containment?="contains"? type=[NamedElement|QualifiedName] multiplicity=Multiplicity? name=ID ("opposite" 2148 // (containment?="contains" | crossReference?="refers")? type=[Symbol|QualifiedName] multiplicity=Multiplicity?
1931 // opposite=[NamedElement|QualifiedName])? ";"?; 2149 // name=ID ("opposite" opposite=[Symbol|QualifiedName])? ";"?;
1932 @Override public ParserRule getRule() { return rule; } 2150 @Override public ParserRule getRule() { return rule; }
1933 2151
1934 //containment?="contains"? type=[NamedElement|QualifiedName] multiplicity=Multiplicity? name=ID ("opposite" 2152 //(containment?="contains" | crossReference?="refers")? type=[Symbol|QualifiedName] multiplicity=Multiplicity? name=ID
1935 //opposite=[NamedElement|QualifiedName])? ";"? 2153 //("opposite" opposite=[Symbol|QualifiedName])? ";"?
1936 public Group getGroup() { return cGroup; } 2154 public Group getGroup() { return cGroup; }
1937 2155
1938 //containment?="contains"? 2156 //(containment?="contains" | crossReference?="refers")?
1939 public Assignment getContainmentAssignment_0() { return cContainmentAssignment_0; } 2157 public Alternatives getAlternatives_0() { return cAlternatives_0; }
2158
2159 //containment?="contains"
2160 public Assignment getContainmentAssignment_0_0() { return cContainmentAssignment_0_0; }
1940 2161
1941 //"contains" 2162 //"contains"
1942 public Keyword getContainmentContainsKeyword_0_0() { return cContainmentContainsKeyword_0_0; } 2163 public Keyword getContainmentContainsKeyword_0_0_0() { return cContainmentContainsKeyword_0_0_0; }
2164
2165 //crossReference?="refers"
2166 public Assignment getCrossReferenceAssignment_0_1() { return cCrossReferenceAssignment_0_1; }
1943 2167
1944 //type=[NamedElement|QualifiedName] 2168 //"refers"
2169 public Keyword getCrossReferenceRefersKeyword_0_1_0() { return cCrossReferenceRefersKeyword_0_1_0; }
2170
2171 //type=[Symbol|QualifiedName]
1945 public Assignment getTypeAssignment_1() { return cTypeAssignment_1; } 2172 public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }
1946 2173
1947 //[NamedElement|QualifiedName] 2174 //[Symbol|QualifiedName]
1948 public CrossReference getTypeNamedElementCrossReference_1_0() { return cTypeNamedElementCrossReference_1_0; } 2175 public CrossReference getTypeSymbolCrossReference_1_0() { return cTypeSymbolCrossReference_1_0; }
1949 2176
1950 //QualifiedName 2177 //QualifiedName
1951 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_0_1; } 2178 public RuleCall getTypeSymbolQualifiedNameParserRuleCall_1_0_1() { return cTypeSymbolQualifiedNameParserRuleCall_1_0_1; }
1952 2179
1953 //multiplicity=Multiplicity? 2180 //multiplicity=Multiplicity?
1954 public Assignment getMultiplicityAssignment_2() { return cMultiplicityAssignment_2; } 2181 public Assignment getMultiplicityAssignment_2() { return cMultiplicityAssignment_2; }
@@ -1962,20 +2189,20 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
1962 //ID 2189 //ID
1963 public RuleCall getNameIDTerminalRuleCall_3_0() { return cNameIDTerminalRuleCall_3_0; } 2190 public RuleCall getNameIDTerminalRuleCall_3_0() { return cNameIDTerminalRuleCall_3_0; }
1964 2191
1965 //("opposite" opposite=[NamedElement|QualifiedName])? 2192 //("opposite" opposite=[Symbol|QualifiedName])?
1966 public Group getGroup_4() { return cGroup_4; } 2193 public Group getGroup_4() { return cGroup_4; }
1967 2194
1968 //"opposite" 2195 //"opposite"
1969 public Keyword getOppositeKeyword_4_0() { return cOppositeKeyword_4_0; } 2196 public Keyword getOppositeKeyword_4_0() { return cOppositeKeyword_4_0; }
1970 2197
1971 //opposite=[NamedElement|QualifiedName] 2198 //opposite=[Symbol|QualifiedName]
1972 public Assignment getOppositeAssignment_4_1() { return cOppositeAssignment_4_1; } 2199 public Assignment getOppositeAssignment_4_1() { return cOppositeAssignment_4_1; }
1973 2200
1974 //[NamedElement|QualifiedName] 2201 //[Symbol|QualifiedName]
1975 public CrossReference getOppositeNamedElementCrossReference_4_1_0() { return cOppositeNamedElementCrossReference_4_1_0; } 2202 public CrossReference getOppositeSymbolCrossReference_4_1_0() { return cOppositeSymbolCrossReference_4_1_0; }
1976 2203
1977 //QualifiedName 2204 //QualifiedName
1978 public RuleCall getOppositeNamedElementQualifiedNameParserRuleCall_4_1_0_1() { return cOppositeNamedElementQualifiedNameParserRuleCall_4_1_0_1; } 2205 public RuleCall getOppositeSymbolQualifiedNameParserRuleCall_4_1_0_1() { return cOppositeSymbolQualifiedNameParserRuleCall_4_1_0_1; }
1979 2206
1980 //";"? 2207 //";"?
1981 public Keyword getSemicolonKeyword_5() { return cSemicolonKeyword_5; } 2208 public Keyword getSemicolonKeyword_5() { return cSemicolonKeyword_5; }
@@ -1983,19 +2210,19 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
1983 public class MultiplicityElements extends AbstractParserRuleElementFinder { 2210 public class MultiplicityElements extends AbstractParserRuleElementFinder {
1984 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Multiplicity"); 2211 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Multiplicity");
1985 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 2212 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1986 private final RuleCall cManyMultiplicityParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); 2213 private final RuleCall cUnboundedMultiplicityParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1987 private final RuleCall cExactMultiplicityParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); 2214 private final RuleCall cExactMultiplicityParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
1988 private final RuleCall cBoundedMultiplicityParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); 2215 private final RuleCall cBoundedMultiplicityParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
1989 2216
1990 //Multiplicity: 2217 //Multiplicity:
1991 // ManyMultiplicity | ExactMultiplicity | BoundedMultiplicity; 2218 // UnboundedMultiplicity | ExactMultiplicity | BoundedMultiplicity;
1992 @Override public ParserRule getRule() { return rule; } 2219 @Override public ParserRule getRule() { return rule; }
1993 2220
1994 //ManyMultiplicity | ExactMultiplicity | BoundedMultiplicity 2221 //UnboundedMultiplicity | ExactMultiplicity | BoundedMultiplicity
1995 public Alternatives getAlternatives() { return cAlternatives; } 2222 public Alternatives getAlternatives() { return cAlternatives; }
1996 2223
1997 //ManyMultiplicity 2224 //UnboundedMultiplicity
1998 public RuleCall getManyMultiplicityParserRuleCall_0() { return cManyMultiplicityParserRuleCall_0; } 2225 public RuleCall getUnboundedMultiplicityParserRuleCall_0() { return cUnboundedMultiplicityParserRuleCall_0; }
1999 2226
2000 //ExactMultiplicity 2227 //ExactMultiplicity
2001 public RuleCall getExactMultiplicityParserRuleCall_1() { return cExactMultiplicityParserRuleCall_1; } 2228 public RuleCall getExactMultiplicityParserRuleCall_1() { return cExactMultiplicityParserRuleCall_1; }
@@ -2003,22 +2230,22 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2003 //BoundedMultiplicity 2230 //BoundedMultiplicity
2004 public RuleCall getBoundedMultiplicityParserRuleCall_2() { return cBoundedMultiplicityParserRuleCall_2; } 2231 public RuleCall getBoundedMultiplicityParserRuleCall_2() { return cBoundedMultiplicityParserRuleCall_2; }
2005 } 2232 }
2006 public class ManyMultiplicityElements extends AbstractParserRuleElementFinder { 2233 public class UnboundedMultiplicityElements extends AbstractParserRuleElementFinder {
2007 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ManyMultiplicity"); 2234 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnboundedMultiplicity");
2008 private final Group cGroup = (Group)rule.eContents().get(1); 2235 private final Group cGroup = (Group)rule.eContents().get(1);
2009 private final Action cManyMultiplicityAction_0 = (Action)cGroup.eContents().get(0); 2236 private final Action cUnboundedMultiplicityAction_0 = (Action)cGroup.eContents().get(0);
2010 private final Keyword cLeftSquareBracketKeyword_1 = (Keyword)cGroup.eContents().get(1); 2237 private final Keyword cLeftSquareBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
2011 private final Keyword cRightSquareBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); 2238 private final Keyword cRightSquareBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
2012 2239
2013 //ManyMultiplicity: 2240 //UnboundedMultiplicity:
2014 // {ManyMultiplicity} "[" "]"; 2241 // {UnboundedMultiplicity} "[" "]";
2015 @Override public ParserRule getRule() { return rule; } 2242 @Override public ParserRule getRule() { return rule; }
2016 2243
2017 //{ManyMultiplicity} "[" "]" 2244 //{UnboundedMultiplicity} "[" "]"
2018 public Group getGroup() { return cGroup; } 2245 public Group getGroup() { return cGroup; }
2019 2246
2020 //{ManyMultiplicity} 2247 //{UnboundedMultiplicity}
2021 public Action getManyMultiplicityAction_0() { return cManyMultiplicityAction_0; } 2248 public Action getUnboundedMultiplicityAction_0() { return cUnboundedMultiplicityAction_0; }
2022 2249
2023 //"[" 2250 //"["
2024 public Keyword getLeftSquareBracketKeyword_1() { return cLeftSquareBracketKeyword_1; } 2251 public Keyword getLeftSquareBracketKeyword_1() { return cLeftSquareBracketKeyword_1; }
@@ -2030,25 +2257,25 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2030 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExactMultiplicity"); 2257 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExactMultiplicity");
2031 private final Group cGroup = (Group)rule.eContents().get(1); 2258 private final Group cGroup = (Group)rule.eContents().get(1);
2032 private final Keyword cLeftSquareBracketKeyword_0 = (Keyword)cGroup.eContents().get(0); 2259 private final Keyword cLeftSquareBracketKeyword_0 = (Keyword)cGroup.eContents().get(0);
2033 private final Assignment cMultiplicityAssignment_1 = (Assignment)cGroup.eContents().get(1); 2260 private final Assignment cValueAssignment_1 = (Assignment)cGroup.eContents().get(1);
2034 private final RuleCall cMultiplicityUpperMultiplictyParserRuleCall_1_0 = (RuleCall)cMultiplicityAssignment_1.eContents().get(0); 2261 private final RuleCall cValueUpperMultiplictyParserRuleCall_1_0 = (RuleCall)cValueAssignment_1.eContents().get(0);
2035 private final Keyword cRightSquareBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); 2262 private final Keyword cRightSquareBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
2036 2263
2037 //ExactMultiplicity: 2264 //ExactMultiplicity:
2038 // "[" multiplicity=UpperMultiplicty "]"; 2265 // "[" value=UpperMultiplicty "]";
2039 @Override public ParserRule getRule() { return rule; } 2266 @Override public ParserRule getRule() { return rule; }
2040 2267
2041 //"[" multiplicity=UpperMultiplicty "]" 2268 //"[" value=UpperMultiplicty "]"
2042 public Group getGroup() { return cGroup; } 2269 public Group getGroup() { return cGroup; }
2043 2270
2044 //"[" 2271 //"["
2045 public Keyword getLeftSquareBracketKeyword_0() { return cLeftSquareBracketKeyword_0; } 2272 public Keyword getLeftSquareBracketKeyword_0() { return cLeftSquareBracketKeyword_0; }
2046 2273
2047 //multiplicity=UpperMultiplicty 2274 //value=UpperMultiplicty
2048 public Assignment getMultiplicityAssignment_1() { return cMultiplicityAssignment_1; } 2275 public Assignment getValueAssignment_1() { return cValueAssignment_1; }
2049 2276
2050 //UpperMultiplicty 2277 //UpperMultiplicty
2051 public RuleCall getMultiplicityUpperMultiplictyParserRuleCall_1_0() { return cMultiplicityUpperMultiplictyParserRuleCall_1_0; } 2278 public RuleCall getValueUpperMultiplictyParserRuleCall_1_0() { return cValueUpperMultiplictyParserRuleCall_1_0; }
2052 2279
2053 //"]" 2280 //"]"
2054 public Keyword getRightSquareBracketKeyword_2() { return cRightSquareBracketKeyword_2; } 2281 public Keyword getRightSquareBracketKeyword_2() { return cRightSquareBracketKeyword_2; }
@@ -2059,16 +2286,16 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2059 private final Keyword cLeftSquareBracketKeyword_0 = (Keyword)cGroup.eContents().get(0); 2286 private final Keyword cLeftSquareBracketKeyword_0 = (Keyword)cGroup.eContents().get(0);
2060 private final Assignment cLowerBoundAssignment_1 = (Assignment)cGroup.eContents().get(1); 2287 private final Assignment cLowerBoundAssignment_1 = (Assignment)cGroup.eContents().get(1);
2061 private final RuleCall cLowerBoundINTTerminalRuleCall_1_0 = (RuleCall)cLowerBoundAssignment_1.eContents().get(0); 2288 private final RuleCall cLowerBoundINTTerminalRuleCall_1_0 = (RuleCall)cLowerBoundAssignment_1.eContents().get(0);
2062 private final Keyword cFullStopFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2); 2289 private final Keyword cCommaKeyword_2 = (Keyword)cGroup.eContents().get(2);
2063 private final Assignment cUpperBoundAssignment_3 = (Assignment)cGroup.eContents().get(3); 2290 private final Assignment cUpperBoundAssignment_3 = (Assignment)cGroup.eContents().get(3);
2064 private final RuleCall cUpperBoundUpperMultiplictyParserRuleCall_3_0 = (RuleCall)cUpperBoundAssignment_3.eContents().get(0); 2291 private final RuleCall cUpperBoundUpperMultiplictyParserRuleCall_3_0 = (RuleCall)cUpperBoundAssignment_3.eContents().get(0);
2065 private final Keyword cRightSquareBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); 2292 private final Keyword cRightSquareBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
2066 2293
2067 //BoundedMultiplicity: 2294 //BoundedMultiplicity:
2068 // "[" lowerBound=INT ".." upperBound=UpperMultiplicty "]"; 2295 // "[" lowerBound=INT "," upperBound=UpperMultiplicty "]";
2069 @Override public ParserRule getRule() { return rule; } 2296 @Override public ParserRule getRule() { return rule; }
2070 2297
2071 //"[" lowerBound=INT ".." upperBound=UpperMultiplicty "]" 2298 //"[" lowerBound=INT "," upperBound=UpperMultiplicty "]"
2072 public Group getGroup() { return cGroup; } 2299 public Group getGroup() { return cGroup; }
2073 2300
2074 //"[" 2301 //"["
@@ -2080,8 +2307,8 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2080 //INT 2307 //INT
2081 public RuleCall getLowerBoundINTTerminalRuleCall_1_0() { return cLowerBoundINTTerminalRuleCall_1_0; } 2308 public RuleCall getLowerBoundINTTerminalRuleCall_1_0() { return cLowerBoundINTTerminalRuleCall_1_0; }
2082 2309
2083 //".." 2310 //","
2084 public Keyword getFullStopFullStopKeyword_2() { return cFullStopFullStopKeyword_2; } 2311 public Keyword getCommaKeyword_2() { return cCommaKeyword_2; }
2085 2312
2086 //upperBound=UpperMultiplicty 2313 //upperBound=UpperMultiplicty
2087 public Assignment getUpperBoundAssignment_3() { return cUpperBoundAssignment_3; } 2314 public Assignment getUpperBoundAssignment_3() { return cUpperBoundAssignment_3; }
@@ -2092,70 +2319,160 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2092 //"]" 2319 //"]"
2093 public Keyword getRightSquareBracketKeyword_4() { return cRightSquareBracketKeyword_4; } 2320 public Keyword getRightSquareBracketKeyword_4() { return cRightSquareBracketKeyword_4; }
2094 } 2321 }
2095 public class ScopeDefinitionElements extends AbstractParserRuleElementFinder { 2322 public class EnumDeclarationElements extends AbstractParserRuleElementFinder {
2096 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ScopeDefinition"); 2323 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.EnumDeclaration");
2324 private final Group cGroup = (Group)rule.eContents().get(1);
2325 private final Keyword cEnumKeyword_0 = (Keyword)cGroup.eContents().get(0);
2326 private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
2327 private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
2328 private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
2329 private final Group cGroup_2_0 = (Group)cAlternatives_2.eContents().get(0);
2330 private final Keyword cLeftCurlyBracketKeyword_2_0_0 = (Keyword)cGroup_2_0.eContents().get(0);
2331 private final Group cGroup_2_0_1 = (Group)cGroup_2_0.eContents().get(1);
2332 private final Assignment cLiteralsAssignment_2_0_1_0 = (Assignment)cGroup_2_0_1.eContents().get(0);
2333 private final RuleCall cLiteralsEnumLiteralParserRuleCall_2_0_1_0_0 = (RuleCall)cLiteralsAssignment_2_0_1_0.eContents().get(0);
2334 private final Group cGroup_2_0_1_1 = (Group)cGroup_2_0_1.eContents().get(1);
2335 private final Keyword cCommaKeyword_2_0_1_1_0 = (Keyword)cGroup_2_0_1_1.eContents().get(0);
2336 private final Assignment cLiteralsAssignment_2_0_1_1_1 = (Assignment)cGroup_2_0_1_1.eContents().get(1);
2337 private final RuleCall cLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0 = (RuleCall)cLiteralsAssignment_2_0_1_1_1.eContents().get(0);
2338 private final Keyword cRightCurlyBracketKeyword_2_0_2 = (Keyword)cGroup_2_0.eContents().get(2);
2339 private final RuleCall cFULL_STOPTerminalRuleCall_2_1 = (RuleCall)cAlternatives_2.eContents().get(1);
2340
2341 //EnumDeclaration:
2342 // "enum" name=ID ("{" (literals+=EnumLiteral (","? literals+=EnumLiteral)*)? "}" | FULL_STOP);
2343 @Override public ParserRule getRule() { return rule; }
2344
2345 //"enum" name=ID ("{" (literals+=EnumLiteral (","? literals+=EnumLiteral)*)? "}" | FULL_STOP)
2346 public Group getGroup() { return cGroup; }
2347
2348 //"enum"
2349 public Keyword getEnumKeyword_0() { return cEnumKeyword_0; }
2350
2351 //name=ID
2352 public Assignment getNameAssignment_1() { return cNameAssignment_1; }
2353
2354 //ID
2355 public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
2356
2357 //("{" (literals+=EnumLiteral (","? literals+=EnumLiteral)*)? "}" | FULL_STOP)
2358 public Alternatives getAlternatives_2() { return cAlternatives_2; }
2359
2360 //"{" (literals+=EnumLiteral (","? literals+=EnumLiteral)*)? "}"
2361 public Group getGroup_2_0() { return cGroup_2_0; }
2362
2363 //"{"
2364 public Keyword getLeftCurlyBracketKeyword_2_0_0() { return cLeftCurlyBracketKeyword_2_0_0; }
2365
2366 //(literals+=EnumLiteral (","? literals+=EnumLiteral)*)?
2367 public Group getGroup_2_0_1() { return cGroup_2_0_1; }
2368
2369 //literals+=EnumLiteral
2370 public Assignment getLiteralsAssignment_2_0_1_0() { return cLiteralsAssignment_2_0_1_0; }
2371
2372 //EnumLiteral
2373 public RuleCall getLiteralsEnumLiteralParserRuleCall_2_0_1_0_0() { return cLiteralsEnumLiteralParserRuleCall_2_0_1_0_0; }
2374
2375 //(","? literals+=EnumLiteral)*
2376 public Group getGroup_2_0_1_1() { return cGroup_2_0_1_1; }
2377
2378 //","?
2379 public Keyword getCommaKeyword_2_0_1_1_0() { return cCommaKeyword_2_0_1_1_0; }
2380
2381 //literals+=EnumLiteral
2382 public Assignment getLiteralsAssignment_2_0_1_1_1() { return cLiteralsAssignment_2_0_1_1_1; }
2383
2384 //EnumLiteral
2385 public RuleCall getLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0() { return cLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0; }
2386
2387 //"}"
2388 public Keyword getRightCurlyBracketKeyword_2_0_2() { return cRightCurlyBracketKeyword_2_0_2; }
2389
2390 //FULL_STOP
2391 public RuleCall getFULL_STOPTerminalRuleCall_2_1() { return cFULL_STOPTerminalRuleCall_2_1; }
2392 }
2393 public class EnumLiteralElements extends AbstractParserRuleElementFinder {
2394 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.EnumLiteral");
2395 private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1);
2396 private final RuleCall cNameIDTerminalRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0);
2397
2398 //EnumLiteral:
2399 // name=ID;
2400 @Override public ParserRule getRule() { return rule; }
2401
2402 //name=ID
2403 public Assignment getNameAssignment() { return cNameAssignment; }
2404
2405 //ID
2406 public RuleCall getNameIDTerminalRuleCall_0() { return cNameIDTerminalRuleCall_0; }
2407 }
2408 public class ScopeDeclarationElements extends AbstractParserRuleElementFinder {
2409 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ScopeDeclaration");
2097 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 2410 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
2098 private final RuleCall cExactScopeDefinitionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); 2411 private final RuleCall cExactScopeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
2099 private final RuleCall cBoundedScopeDefinitionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); 2412 private final RuleCall cBoundedScopeParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
2100 private final RuleCall cLowerBoundedScopeDefinitionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); 2413 private final RuleCall cLowerBoundedScopeParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
2101 2414
2102 //ScopeDefinition: 2415 //ScopeDeclaration:
2103 // ExactScopeDefinition | BoundedScopeDefinition | LowerBoundedScopeDefinition; 2416 // ExactScope | BoundedScope | LowerBoundedScope;
2104 @Override public ParserRule getRule() { return rule; } 2417 @Override public ParserRule getRule() { return rule; }
2105 2418
2106 //ExactScopeDefinition | BoundedScopeDefinition | LowerBoundedScopeDefinition 2419 //ExactScope | BoundedScope | LowerBoundedScope
2107 public Alternatives getAlternatives() { return cAlternatives; } 2420 public Alternatives getAlternatives() { return cAlternatives; }
2108 2421
2109 //ExactScopeDefinition 2422 //ExactScope
2110 public RuleCall getExactScopeDefinitionParserRuleCall_0() { return cExactScopeDefinitionParserRuleCall_0; } 2423 public RuleCall getExactScopeParserRuleCall_0() { return cExactScopeParserRuleCall_0; }
2111 2424
2112 //BoundedScopeDefinition 2425 //BoundedScope
2113 public RuleCall getBoundedScopeDefinitionParserRuleCall_1() { return cBoundedScopeDefinitionParserRuleCall_1; } 2426 public RuleCall getBoundedScopeParserRuleCall_1() { return cBoundedScopeParserRuleCall_1; }
2114 2427
2115 //LowerBoundedScopeDefinition 2428 //LowerBoundedScope
2116 public RuleCall getLowerBoundedScopeDefinitionParserRuleCall_2() { return cLowerBoundedScopeDefinitionParserRuleCall_2; } 2429 public RuleCall getLowerBoundedScopeParserRuleCall_2() { return cLowerBoundedScopeParserRuleCall_2; }
2117 } 2430 }
2118 public class ExactScopeDefinitionElements extends AbstractParserRuleElementFinder { 2431 public class ExactScopeElements extends AbstractParserRuleElementFinder {
2119 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExactScopeDefinition"); 2432 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExactScope");
2120 private final Group cGroup = (Group)rule.eContents().get(1); 2433 private final Group cGroup = (Group)rule.eContents().get(1);
2121 private final Keyword cScopeKeyword_0 = (Keyword)cGroup.eContents().get(0); 2434 private final Keyword cScopeKeyword_0 = (Keyword)cGroup.eContents().get(0);
2122 private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1); 2435 private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
2123 private final CrossReference cTypeNamedElementCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0); 2436 private final CrossReference cTypeSymbolCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0);
2124 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_0.eContents().get(1); 2437 private final RuleCall cTypeSymbolQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeSymbolCrossReference_1_0.eContents().get(1);
2125 private final Keyword cEqualsSignEqualsSignKeyword_2 = (Keyword)cGroup.eContents().get(2); 2438 private final Keyword cEqualsSignEqualsSignKeyword_2 = (Keyword)cGroup.eContents().get(2);
2126 private final Assignment cExactScopeAssignment_3 = (Assignment)cGroup.eContents().get(3); 2439 private final Assignment cSizeAssignment_3 = (Assignment)cGroup.eContents().get(3);
2127 private final RuleCall cExactScopeINTTerminalRuleCall_3_0 = (RuleCall)cExactScopeAssignment_3.eContents().get(0); 2440 private final RuleCall cSizeINTTerminalRuleCall_3_0 = (RuleCall)cSizeAssignment_3.eContents().get(0);
2441 private final RuleCall cFULL_STOPTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
2128 2442
2129 //ExactScopeDefinition: 2443 //ExactScope:
2130 // "scope" type=[NamedElement|QualifiedName] "==" exactScope=INT; 2444 // "scope" type=[Symbol|QualifiedName] "==" size=INT FULL_STOP;
2131 @Override public ParserRule getRule() { return rule; } 2445 @Override public ParserRule getRule() { return rule; }
2132 2446
2133 //"scope" type=[NamedElement|QualifiedName] "==" exactScope=INT 2447 //"scope" type=[Symbol|QualifiedName] "==" size=INT FULL_STOP
2134 public Group getGroup() { return cGroup; } 2448 public Group getGroup() { return cGroup; }
2135 2449
2136 //"scope" 2450 //"scope"
2137 public Keyword getScopeKeyword_0() { return cScopeKeyword_0; } 2451 public Keyword getScopeKeyword_0() { return cScopeKeyword_0; }
2138 2452
2139 //type=[NamedElement|QualifiedName] 2453 //type=[Symbol|QualifiedName]
2140 public Assignment getTypeAssignment_1() { return cTypeAssignment_1; } 2454 public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }
2141 2455
2142 //[NamedElement|QualifiedName] 2456 //[Symbol|QualifiedName]
2143 public CrossReference getTypeNamedElementCrossReference_1_0() { return cTypeNamedElementCrossReference_1_0; } 2457 public CrossReference getTypeSymbolCrossReference_1_0() { return cTypeSymbolCrossReference_1_0; }
2144 2458
2145 //QualifiedName 2459 //QualifiedName
2146 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_0_1; } 2460 public RuleCall getTypeSymbolQualifiedNameParserRuleCall_1_0_1() { return cTypeSymbolQualifiedNameParserRuleCall_1_0_1; }
2147 2461
2148 //"==" 2462 //"=="
2149 public Keyword getEqualsSignEqualsSignKeyword_2() { return cEqualsSignEqualsSignKeyword_2; } 2463 public Keyword getEqualsSignEqualsSignKeyword_2() { return cEqualsSignEqualsSignKeyword_2; }
2150 2464
2151 //exactScope=INT 2465 //size=INT
2152 public Assignment getExactScopeAssignment_3() { return cExactScopeAssignment_3; } 2466 public Assignment getSizeAssignment_3() { return cSizeAssignment_3; }
2153 2467
2154 //INT 2468 //INT
2155 public RuleCall getExactScopeINTTerminalRuleCall_3_0() { return cExactScopeINTTerminalRuleCall_3_0; } 2469 public RuleCall getSizeINTTerminalRuleCall_3_0() { return cSizeINTTerminalRuleCall_3_0; }
2470
2471 //FULL_STOP
2472 public RuleCall getFULL_STOPTerminalRuleCall_4() { return cFULL_STOPTerminalRuleCall_4; }
2156 } 2473 }
2157 public class BoundedScopeDefinitionElements extends AbstractParserRuleElementFinder { 2474 public class BoundedScopeElements extends AbstractParserRuleElementFinder {
2158 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.BoundedScopeDefinition"); 2475 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.BoundedScope");
2159 private final Group cGroup = (Group)rule.eContents().get(1); 2476 private final Group cGroup = (Group)rule.eContents().get(1);
2160 private final Keyword cScopeKeyword_0 = (Keyword)cGroup.eContents().get(0); 2477 private final Keyword cScopeKeyword_0 = (Keyword)cGroup.eContents().get(0);
2161 private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); 2478 private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
@@ -2165,8 +2482,8 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2165 private final RuleCall cLowerBoundINTTerminalRuleCall_1_0_0_0_0 = (RuleCall)cLowerBoundAssignment_1_0_0_0.eContents().get(0); 2482 private final RuleCall cLowerBoundINTTerminalRuleCall_1_0_0_0_0 = (RuleCall)cLowerBoundAssignment_1_0_0_0.eContents().get(0);
2166 private final Keyword cLessThanSignEqualsSignKeyword_1_0_0_1 = (Keyword)cGroup_1_0_0.eContents().get(1); 2483 private final Keyword cLessThanSignEqualsSignKeyword_1_0_0_1 = (Keyword)cGroup_1_0_0.eContents().get(1);
2167 private final Assignment cTypeAssignment_1_0_1 = (Assignment)cGroup_1_0.eContents().get(1); 2484 private final Assignment cTypeAssignment_1_0_1 = (Assignment)cGroup_1_0.eContents().get(1);
2168 private final CrossReference cTypeNamedElementCrossReference_1_0_1_0 = (CrossReference)cTypeAssignment_1_0_1.eContents().get(0); 2485 private final CrossReference cTypeSymbolCrossReference_1_0_1_0 = (CrossReference)cTypeAssignment_1_0_1.eContents().get(0);
2169 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_0_1_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_0_1_0.eContents().get(1); 2486 private final RuleCall cTypeSymbolQualifiedNameParserRuleCall_1_0_1_0_1 = (RuleCall)cTypeSymbolCrossReference_1_0_1_0.eContents().get(1);
2170 private final Keyword cLessThanSignEqualsSignKeyword_1_0_2 = (Keyword)cGroup_1_0.eContents().get(2); 2487 private final Keyword cLessThanSignEqualsSignKeyword_1_0_2 = (Keyword)cGroup_1_0.eContents().get(2);
2171 private final Assignment cUpperBoundAssignment_1_0_3 = (Assignment)cGroup_1_0.eContents().get(3); 2488 private final Assignment cUpperBoundAssignment_1_0_3 = (Assignment)cGroup_1_0.eContents().get(3);
2172 private final RuleCall cUpperBoundINTTerminalRuleCall_1_0_3_0 = (RuleCall)cUpperBoundAssignment_1_0_3.eContents().get(0); 2489 private final RuleCall cUpperBoundINTTerminalRuleCall_1_0_3_0 = (RuleCall)cUpperBoundAssignment_1_0_3.eContents().get(0);
@@ -2175,30 +2492,31 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2175 private final RuleCall cUpperBoundINTTerminalRuleCall_1_1_0_0 = (RuleCall)cUpperBoundAssignment_1_1_0.eContents().get(0); 2492 private final RuleCall cUpperBoundINTTerminalRuleCall_1_1_0_0 = (RuleCall)cUpperBoundAssignment_1_1_0.eContents().get(0);
2176 private final Keyword cGreaterThanSignEqualsSignKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1); 2493 private final Keyword cGreaterThanSignEqualsSignKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1);
2177 private final Assignment cTypeAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2); 2494 private final Assignment cTypeAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2);
2178 private final CrossReference cTypeNamedElementCrossReference_1_1_2_0 = (CrossReference)cTypeAssignment_1_1_2.eContents().get(0); 2495 private final CrossReference cTypeSymbolCrossReference_1_1_2_0 = (CrossReference)cTypeAssignment_1_1_2.eContents().get(0);
2179 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_1_2_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_1_2_0.eContents().get(1); 2496 private final RuleCall cTypeSymbolQualifiedNameParserRuleCall_1_1_2_0_1 = (RuleCall)cTypeSymbolCrossReference_1_1_2_0.eContents().get(1);
2180 private final Group cGroup_1_1_3 = (Group)cGroup_1_1.eContents().get(3); 2497 private final Group cGroup_1_1_3 = (Group)cGroup_1_1.eContents().get(3);
2181 private final Keyword cGreaterThanSignEqualsSignKeyword_1_1_3_0 = (Keyword)cGroup_1_1_3.eContents().get(0); 2498 private final Keyword cGreaterThanSignEqualsSignKeyword_1_1_3_0 = (Keyword)cGroup_1_1_3.eContents().get(0);
2182 private final Assignment cLowerBoundAssignment_1_1_3_1 = (Assignment)cGroup_1_1_3.eContents().get(1); 2499 private final Assignment cLowerBoundAssignment_1_1_3_1 = (Assignment)cGroup_1_1_3.eContents().get(1);
2183 private final RuleCall cLowerBoundINTTerminalRuleCall_1_1_3_1_0 = (RuleCall)cLowerBoundAssignment_1_1_3_1.eContents().get(0); 2500 private final RuleCall cLowerBoundINTTerminalRuleCall_1_1_3_1_0 = (RuleCall)cLowerBoundAssignment_1_1_3_1.eContents().get(0);
2501 private final RuleCall cFULL_STOPTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
2184 2502
2185 //BoundedScopeDefinition: 2503 //BoundedScope:
2186 // "scope" ((lowerBound=INT "<=")? type=[NamedElement|QualifiedName] "<=" upperBound=INT | upperBound=INT ">=" 2504 // "scope" ((lowerBound=INT "<=")? type=[Symbol|QualifiedName] "<=" upperBound=INT | upperBound=INT ">="
2187 // type=[NamedElement|QualifiedName] (">=" lowerBound=INT)?); 2505 // type=[Symbol|QualifiedName] (">=" lowerBound=INT)?) FULL_STOP;
2188 @Override public ParserRule getRule() { return rule; } 2506 @Override public ParserRule getRule() { return rule; }
2189 2507
2190 //"scope" ((lowerBound=INT "<=")? type=[NamedElement|QualifiedName] "<=" upperBound=INT | upperBound=INT ">=" 2508 //"scope" ((lowerBound=INT "<=")? type=[Symbol|QualifiedName] "<=" upperBound=INT | upperBound=INT ">="
2191 //type=[NamedElement|QualifiedName] (">=" lowerBound=INT)?) 2509 //type=[Symbol|QualifiedName] (">=" lowerBound=INT)?) FULL_STOP
2192 public Group getGroup() { return cGroup; } 2510 public Group getGroup() { return cGroup; }
2193 2511
2194 //"scope" 2512 //"scope"
2195 public Keyword getScopeKeyword_0() { return cScopeKeyword_0; } 2513 public Keyword getScopeKeyword_0() { return cScopeKeyword_0; }
2196 2514
2197 //((lowerBound=INT "<=")? type=[NamedElement|QualifiedName] "<=" upperBound=INT | upperBound=INT ">=" 2515 //((lowerBound=INT "<=")? type=[Symbol|QualifiedName] "<=" upperBound=INT | upperBound=INT ">="
2198 //type=[NamedElement|QualifiedName] (">=" lowerBound=INT)?) 2516 //type=[Symbol|QualifiedName] (">=" lowerBound=INT)?)
2199 public Alternatives getAlternatives_1() { return cAlternatives_1; } 2517 public Alternatives getAlternatives_1() { return cAlternatives_1; }
2200 2518
2201 //(lowerBound=INT "<=")? type=[NamedElement|QualifiedName] "<=" upperBound=INT 2519 //(lowerBound=INT "<=")? type=[Symbol|QualifiedName] "<=" upperBound=INT
2202 public Group getGroup_1_0() { return cGroup_1_0; } 2520 public Group getGroup_1_0() { return cGroup_1_0; }
2203 2521
2204 //(lowerBound=INT "<=")? 2522 //(lowerBound=INT "<=")?
@@ -2213,14 +2531,14 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2213 //"<=" 2531 //"<="
2214 public Keyword getLessThanSignEqualsSignKeyword_1_0_0_1() { return cLessThanSignEqualsSignKeyword_1_0_0_1; } 2532 public Keyword getLessThanSignEqualsSignKeyword_1_0_0_1() { return cLessThanSignEqualsSignKeyword_1_0_0_1; }
2215 2533
2216 //type=[NamedElement|QualifiedName] 2534 //type=[Symbol|QualifiedName]
2217 public Assignment getTypeAssignment_1_0_1() { return cTypeAssignment_1_0_1; } 2535 public Assignment getTypeAssignment_1_0_1() { return cTypeAssignment_1_0_1; }
2218 2536
2219 //[NamedElement|QualifiedName] 2537 //[Symbol|QualifiedName]
2220 public CrossReference getTypeNamedElementCrossReference_1_0_1_0() { return cTypeNamedElementCrossReference_1_0_1_0; } 2538 public CrossReference getTypeSymbolCrossReference_1_0_1_0() { return cTypeSymbolCrossReference_1_0_1_0; }
2221 2539
2222 //QualifiedName 2540 //QualifiedName
2223 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_0_1_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_0_1_0_1; } 2541 public RuleCall getTypeSymbolQualifiedNameParserRuleCall_1_0_1_0_1() { return cTypeSymbolQualifiedNameParserRuleCall_1_0_1_0_1; }
2224 2542
2225 //"<=" 2543 //"<="
2226 public Keyword getLessThanSignEqualsSignKeyword_1_0_2() { return cLessThanSignEqualsSignKeyword_1_0_2; } 2544 public Keyword getLessThanSignEqualsSignKeyword_1_0_2() { return cLessThanSignEqualsSignKeyword_1_0_2; }
@@ -2231,7 +2549,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2231 //INT 2549 //INT
2232 public RuleCall getUpperBoundINTTerminalRuleCall_1_0_3_0() { return cUpperBoundINTTerminalRuleCall_1_0_3_0; } 2550 public RuleCall getUpperBoundINTTerminalRuleCall_1_0_3_0() { return cUpperBoundINTTerminalRuleCall_1_0_3_0; }
2233 2551
2234 //upperBound=INT ">=" type=[NamedElement|QualifiedName] (">=" lowerBound=INT)? 2552 //upperBound=INT ">=" type=[Symbol|QualifiedName] (">=" lowerBound=INT)?
2235 public Group getGroup_1_1() { return cGroup_1_1; } 2553 public Group getGroup_1_1() { return cGroup_1_1; }
2236 2554
2237 //upperBound=INT 2555 //upperBound=INT
@@ -2243,14 +2561,14 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2243 //">=" 2561 //">="
2244 public Keyword getGreaterThanSignEqualsSignKeyword_1_1_1() { return cGreaterThanSignEqualsSignKeyword_1_1_1; } 2562 public Keyword getGreaterThanSignEqualsSignKeyword_1_1_1() { return cGreaterThanSignEqualsSignKeyword_1_1_1; }
2245 2563
2246 //type=[NamedElement|QualifiedName] 2564 //type=[Symbol|QualifiedName]
2247 public Assignment getTypeAssignment_1_1_2() { return cTypeAssignment_1_1_2; } 2565 public Assignment getTypeAssignment_1_1_2() { return cTypeAssignment_1_1_2; }
2248 2566
2249 //[NamedElement|QualifiedName] 2567 //[Symbol|QualifiedName]
2250 public CrossReference getTypeNamedElementCrossReference_1_1_2_0() { return cTypeNamedElementCrossReference_1_1_2_0; } 2568 public CrossReference getTypeSymbolCrossReference_1_1_2_0() { return cTypeSymbolCrossReference_1_1_2_0; }
2251 2569
2252 //QualifiedName 2570 //QualifiedName
2253 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_1_2_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_1_2_0_1; } 2571 public RuleCall getTypeSymbolQualifiedNameParserRuleCall_1_1_2_0_1() { return cTypeSymbolQualifiedNameParserRuleCall_1_1_2_0_1; }
2254 2572
2255 //(">=" lowerBound=INT)? 2573 //(">=" lowerBound=INT)?
2256 public Group getGroup_1_1_3() { return cGroup_1_1_3; } 2574 public Group getGroup_1_1_3() { return cGroup_1_1_3; }
@@ -2263,9 +2581,12 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2263 2581
2264 //INT 2582 //INT
2265 public RuleCall getLowerBoundINTTerminalRuleCall_1_1_3_1_0() { return cLowerBoundINTTerminalRuleCall_1_1_3_1_0; } 2583 public RuleCall getLowerBoundINTTerminalRuleCall_1_1_3_1_0() { return cLowerBoundINTTerminalRuleCall_1_1_3_1_0; }
2584
2585 //FULL_STOP
2586 public RuleCall getFULL_STOPTerminalRuleCall_2() { return cFULL_STOPTerminalRuleCall_2; }
2266 } 2587 }
2267 public class LowerBoundedScopeDefinitionElements extends AbstractParserRuleElementFinder { 2588 public class LowerBoundedScopeElements extends AbstractParserRuleElementFinder {
2268 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LowerBoundedScopeDefinition"); 2589 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LowerBoundedScope");
2269 private final Group cGroup = (Group)rule.eContents().get(1); 2590 private final Group cGroup = (Group)rule.eContents().get(1);
2270 private final Keyword cScopeKeyword_0 = (Keyword)cGroup.eContents().get(0); 2591 private final Keyword cScopeKeyword_0 = (Keyword)cGroup.eContents().get(0);
2271 private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); 2592 private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
@@ -2274,31 +2595,32 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2274 private final RuleCall cLowerBoundINTTerminalRuleCall_1_0_0_0 = (RuleCall)cLowerBoundAssignment_1_0_0.eContents().get(0); 2595 private final RuleCall cLowerBoundINTTerminalRuleCall_1_0_0_0 = (RuleCall)cLowerBoundAssignment_1_0_0.eContents().get(0);
2275 private final Keyword cLessThanSignEqualsSignKeyword_1_0_1 = (Keyword)cGroup_1_0.eContents().get(1); 2596 private final Keyword cLessThanSignEqualsSignKeyword_1_0_1 = (Keyword)cGroup_1_0.eContents().get(1);
2276 private final Assignment cTypeAssignment_1_0_2 = (Assignment)cGroup_1_0.eContents().get(2); 2597 private final Assignment cTypeAssignment_1_0_2 = (Assignment)cGroup_1_0.eContents().get(2);
2277 private final CrossReference cTypeNamedElementCrossReference_1_0_2_0 = (CrossReference)cTypeAssignment_1_0_2.eContents().get(0); 2598 private final CrossReference cTypeSymbolCrossReference_1_0_2_0 = (CrossReference)cTypeAssignment_1_0_2.eContents().get(0);
2278 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_0_2_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_0_2_0.eContents().get(1); 2599 private final RuleCall cTypeSymbolQualifiedNameParserRuleCall_1_0_2_0_1 = (RuleCall)cTypeSymbolCrossReference_1_0_2_0.eContents().get(1);
2279 private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1); 2600 private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1);
2280 private final Assignment cTypeAssignment_1_1_0 = (Assignment)cGroup_1_1.eContents().get(0); 2601 private final Assignment cTypeAssignment_1_1_0 = (Assignment)cGroup_1_1.eContents().get(0);
2281 private final CrossReference cTypeNamedElementCrossReference_1_1_0_0 = (CrossReference)cTypeAssignment_1_1_0.eContents().get(0); 2602 private final CrossReference cTypeSymbolCrossReference_1_1_0_0 = (CrossReference)cTypeAssignment_1_1_0.eContents().get(0);
2282 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_1_0_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_1_0_0.eContents().get(1); 2603 private final RuleCall cTypeSymbolQualifiedNameParserRuleCall_1_1_0_0_1 = (RuleCall)cTypeSymbolCrossReference_1_1_0_0.eContents().get(1);
2283 private final Keyword cGreaterThanSignEqualsSignKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1); 2604 private final Keyword cGreaterThanSignEqualsSignKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1);
2284 private final Assignment cLowerBoundAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2); 2605 private final Assignment cLowerBoundAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2);
2285 private final RuleCall cLowerBoundINTTerminalRuleCall_1_1_2_0 = (RuleCall)cLowerBoundAssignment_1_1_2.eContents().get(0); 2606 private final RuleCall cLowerBoundINTTerminalRuleCall_1_1_2_0 = (RuleCall)cLowerBoundAssignment_1_1_2.eContents().get(0);
2607 private final RuleCall cFULL_STOPTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
2286 2608
2287 //LowerBoundedScopeDefinition: 2609 //LowerBoundedScope:
2288 // "scope" (lowerBound=INT "<=" type=[NamedElement|QualifiedName] | type=[NamedElement|QualifiedName] ">=" 2610 // "scope" (lowerBound=INT "<=" type=[Symbol|QualifiedName] | type=[Symbol|QualifiedName] ">=" lowerBound=INT)
2289 // lowerBound=INT); 2611 // FULL_STOP;
2290 @Override public ParserRule getRule() { return rule; } 2612 @Override public ParserRule getRule() { return rule; }
2291 2613
2292 //"scope" (lowerBound=INT "<=" type=[NamedElement|QualifiedName] | type=[NamedElement|QualifiedName] ">=" lowerBound=INT) 2614 //"scope" (lowerBound=INT "<=" type=[Symbol|QualifiedName] | type=[Symbol|QualifiedName] ">=" lowerBound=INT) FULL_STOP
2293 public Group getGroup() { return cGroup; } 2615 public Group getGroup() { return cGroup; }
2294 2616
2295 //"scope" 2617 //"scope"
2296 public Keyword getScopeKeyword_0() { return cScopeKeyword_0; } 2618 public Keyword getScopeKeyword_0() { return cScopeKeyword_0; }
2297 2619
2298 //(lowerBound=INT "<=" type=[NamedElement|QualifiedName] | type=[NamedElement|QualifiedName] ">=" lowerBound=INT) 2620 //(lowerBound=INT "<=" type=[Symbol|QualifiedName] | type=[Symbol|QualifiedName] ">=" lowerBound=INT)
2299 public Alternatives getAlternatives_1() { return cAlternatives_1; } 2621 public Alternatives getAlternatives_1() { return cAlternatives_1; }
2300 2622
2301 //lowerBound=INT "<=" type=[NamedElement|QualifiedName] 2623 //lowerBound=INT "<=" type=[Symbol|QualifiedName]
2302 public Group getGroup_1_0() { return cGroup_1_0; } 2624 public Group getGroup_1_0() { return cGroup_1_0; }
2303 2625
2304 //lowerBound=INT 2626 //lowerBound=INT
@@ -2310,26 +2632,26 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2310 //"<=" 2632 //"<="
2311 public Keyword getLessThanSignEqualsSignKeyword_1_0_1() { return cLessThanSignEqualsSignKeyword_1_0_1; } 2633 public Keyword getLessThanSignEqualsSignKeyword_1_0_1() { return cLessThanSignEqualsSignKeyword_1_0_1; }
2312 2634
2313 //type=[NamedElement|QualifiedName] 2635 //type=[Symbol|QualifiedName]
2314 public Assignment getTypeAssignment_1_0_2() { return cTypeAssignment_1_0_2; } 2636 public Assignment getTypeAssignment_1_0_2() { return cTypeAssignment_1_0_2; }
2315 2637
2316 //[NamedElement|QualifiedName] 2638 //[Symbol|QualifiedName]
2317 public CrossReference getTypeNamedElementCrossReference_1_0_2_0() { return cTypeNamedElementCrossReference_1_0_2_0; } 2639 public CrossReference getTypeSymbolCrossReference_1_0_2_0() { return cTypeSymbolCrossReference_1_0_2_0; }
2318 2640
2319 //QualifiedName 2641 //QualifiedName
2320 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_0_2_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_0_2_0_1; } 2642 public RuleCall getTypeSymbolQualifiedNameParserRuleCall_1_0_2_0_1() { return cTypeSymbolQualifiedNameParserRuleCall_1_0_2_0_1; }
2321 2643
2322 //type=[NamedElement|QualifiedName] ">=" lowerBound=INT 2644 //type=[Symbol|QualifiedName] ">=" lowerBound=INT
2323 public Group getGroup_1_1() { return cGroup_1_1; } 2645 public Group getGroup_1_1() { return cGroup_1_1; }
2324 2646
2325 //type=[NamedElement|QualifiedName] 2647 //type=[Symbol|QualifiedName]
2326 public Assignment getTypeAssignment_1_1_0() { return cTypeAssignment_1_1_0; } 2648 public Assignment getTypeAssignment_1_1_0() { return cTypeAssignment_1_1_0; }
2327 2649
2328 //[NamedElement|QualifiedName] 2650 //[Symbol|QualifiedName]
2329 public CrossReference getTypeNamedElementCrossReference_1_1_0_0() { return cTypeNamedElementCrossReference_1_1_0_0; } 2651 public CrossReference getTypeSymbolCrossReference_1_1_0_0() { return cTypeSymbolCrossReference_1_1_0_0; }
2330 2652
2331 //QualifiedName 2653 //QualifiedName
2332 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_1_0_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_1_0_0_1; } 2654 public RuleCall getTypeSymbolQualifiedNameParserRuleCall_1_1_0_0_1() { return cTypeSymbolQualifiedNameParserRuleCall_1_1_0_0_1; }
2333 2655
2334 //">=" 2656 //">="
2335 public Keyword getGreaterThanSignEqualsSignKeyword_1_1_1() { return cGreaterThanSignEqualsSignKeyword_1_1_1; } 2657 public Keyword getGreaterThanSignEqualsSignKeyword_1_1_1() { return cGreaterThanSignEqualsSignKeyword_1_1_1; }
@@ -2339,20 +2661,24 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2339 2661
2340 //INT 2662 //INT
2341 public RuleCall getLowerBoundINTTerminalRuleCall_1_1_2_0() { return cLowerBoundINTTerminalRuleCall_1_1_2_0; } 2663 public RuleCall getLowerBoundINTTerminalRuleCall_1_1_2_0() { return cLowerBoundINTTerminalRuleCall_1_1_2_0; }
2664
2665 //FULL_STOP
2666 public RuleCall getFULL_STOPTerminalRuleCall_2() { return cFULL_STOPTerminalRuleCall_2; }
2342 } 2667 }
2343 public class ObjectiveDefinitionElements extends AbstractParserRuleElementFinder { 2668 public class ObjectiveDeclarationElements extends AbstractParserRuleElementFinder {
2344 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ObjectiveDefinition"); 2669 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ObjectiveDeclaration");
2345 private final Group cGroup = (Group)rule.eContents().get(1); 2670 private final Group cGroup = (Group)rule.eContents().get(1);
2346 private final Assignment cKindAssignment_0 = (Assignment)cGroup.eContents().get(0); 2671 private final Assignment cKindAssignment_0 = (Assignment)cGroup.eContents().get(0);
2347 private final RuleCall cKindObjectiveKindEnumRuleCall_0_0 = (RuleCall)cKindAssignment_0.eContents().get(0); 2672 private final RuleCall cKindObjectiveKindEnumRuleCall_0_0 = (RuleCall)cKindAssignment_0.eContents().get(0);
2348 private final Assignment cObjectiveAssignment_1 = (Assignment)cGroup.eContents().get(1); 2673 private final Assignment cObjectiveAssignment_1 = (Assignment)cGroup.eContents().get(1);
2349 private final RuleCall cObjectiveExpressionParserRuleCall_1_0 = (RuleCall)cObjectiveAssignment_1.eContents().get(0); 2674 private final RuleCall cObjectiveExpressionParserRuleCall_1_0 = (RuleCall)cObjectiveAssignment_1.eContents().get(0);
2675 private final RuleCall cFULL_STOPTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
2350 2676
2351 //ObjectiveDefinition: 2677 //ObjectiveDeclaration:
2352 // kind=ObjectiveKind objective=Expression; 2678 // kind=ObjectiveKind objective=Expression FULL_STOP;
2353 @Override public ParserRule getRule() { return rule; } 2679 @Override public ParserRule getRule() { return rule; }
2354 2680
2355 //kind=ObjectiveKind objective=Expression 2681 //kind=ObjectiveKind objective=Expression FULL_STOP
2356 public Group getGroup() { return cGroup; } 2682 public Group getGroup() { return cGroup; }
2357 2683
2358 //kind=ObjectiveKind 2684 //kind=ObjectiveKind
@@ -2366,6 +2692,9 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2366 2692
2367 //Expression 2693 //Expression
2368 public RuleCall getObjectiveExpressionParserRuleCall_1_0() { return cObjectiveExpressionParserRuleCall_1_0; } 2694 public RuleCall getObjectiveExpressionParserRuleCall_1_0() { return cObjectiveExpressionParserRuleCall_1_0; }
2695
2696 //FULL_STOP
2697 public RuleCall getFULL_STOPTerminalRuleCall_2() { return cFULL_STOPTerminalRuleCall_2; }
2369 } 2698 }
2370 public class UpperMultiplictyElements extends AbstractParserRuleElementFinder { 2699 public class UpperMultiplictyElements extends AbstractParserRuleElementFinder {
2371 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty"); 2700 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty");
@@ -2390,116 +2719,155 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2390 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Real"); 2719 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Real");
2391 private final Group cGroup = (Group)rule.eContents().get(1); 2720 private final Group cGroup = (Group)rule.eContents().get(1);
2392 private final RuleCall cINTTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0); 2721 private final RuleCall cINTTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
2393 private final Group cGroup_1 = (Group)cGroup.eContents().get(1); 2722 private final Keyword cFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
2394 private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); 2723 private final RuleCall cINTTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
2395 private final RuleCall cINTTerminalRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
2396 2724
2397 //Real ecore::EBigDecimal hidden(): 2725 //Real ecore::EBigDecimal hidden():
2398 // INT ("." INT)?; 2726 // INT "." INT;
2399 @Override public ParserRule getRule() { return rule; } 2727 @Override public ParserRule getRule() { return rule; }
2400 2728
2401 //INT ("." INT)? 2729 //INT "." INT
2402 public Group getGroup() { return cGroup; } 2730 public Group getGroup() { return cGroup; }
2403 2731
2404 //INT 2732 //INT
2405 public RuleCall getINTTerminalRuleCall_0() { return cINTTerminalRuleCall_0; } 2733 public RuleCall getINTTerminalRuleCall_0() { return cINTTerminalRuleCall_0; }
2406 2734
2407 //("." INT)?
2408 public Group getGroup_1() { return cGroup_1; }
2409
2410 //"." 2735 //"."
2411 public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; } 2736 public Keyword getFullStopKeyword_1() { return cFullStopKeyword_1; }
2412 2737
2413 //INT 2738 //INT
2414 public RuleCall getINTTerminalRuleCall_1_1() { return cINTTerminalRuleCall_1_1; } 2739 public RuleCall getINTTerminalRuleCall_2() { return cINTTerminalRuleCall_2; }
2415 } 2740 }
2416 public class QualifiedNameElements extends AbstractParserRuleElementFinder { 2741 public class QualifiedNameSegmentElements extends AbstractParserRuleElementFinder {
2417 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); 2742 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedNameSegment");
2418 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 2743 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
2419 private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); 2744 private final RuleCall cIDTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
2420 private final RuleCall cIDTerminalRuleCall_0_0 = (RuleCall)cGroup_0.eContents().get(0);
2421 private final Group cGroup_0_1 = (Group)cGroup_0.eContents().get(1);
2422 private final Keyword cFullStopKeyword_0_1_0 = (Keyword)cGroup_0_1.eContents().get(0);
2423 private final RuleCall cIDTerminalRuleCall_0_1_1 = (RuleCall)cGroup_0_1.eContents().get(1);
2424 private final RuleCall cQUOTED_IDTerminalRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); 2745 private final RuleCall cQUOTED_IDTerminalRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
2746 private final Keyword cObjectKeyword_2 = (Keyword)cAlternatives.eContents().get(2);
2425 2747
2426 //QualifiedName hidden(): 2748 //QualifiedNameSegment:
2427 // ID ("." ID)* | QUOTED_ID; 2749 // ID | QUOTED_ID | "object";
2428 @Override public ParserRule getRule() { return rule; } 2750 @Override public ParserRule getRule() { return rule; }
2429 2751
2430 //ID ("." ID)* | QUOTED_ID 2752 //ID | QUOTED_ID | "object"
2431 public Alternatives getAlternatives() { return cAlternatives; } 2753 public Alternatives getAlternatives() { return cAlternatives; }
2432 2754
2433 //ID ("." ID)*
2434 public Group getGroup_0() { return cGroup_0; }
2435
2436 //ID 2755 //ID
2437 public RuleCall getIDTerminalRuleCall_0_0() { return cIDTerminalRuleCall_0_0; } 2756 public RuleCall getIDTerminalRuleCall_0() { return cIDTerminalRuleCall_0; }
2438 2757
2439 //("." ID)* 2758 //QUOTED_ID
2440 public Group getGroup_0_1() { return cGroup_0_1; } 2759 public RuleCall getQUOTED_IDTerminalRuleCall_1() { return cQUOTED_IDTerminalRuleCall_1; }
2441 2760
2442 //"." 2761 //"object"
2443 public Keyword getFullStopKeyword_0_1_0() { return cFullStopKeyword_0_1_0; } 2762 public Keyword getObjectKeyword_2() { return cObjectKeyword_2; }
2763 }
2764 public class QualifiedNameElements extends AbstractParserRuleElementFinder {
2765 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName");
2766 private final Group cGroup = (Group)rule.eContents().get(1);
2767 private final RuleCall cQualifiedNameSegmentParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
2768 private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
2769 private final Keyword cColonColonKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
2770 private final RuleCall cQualifiedNameSegmentParserRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
2444 2771
2445 //ID 2772 //QualifiedName hidden():
2446 public RuleCall getIDTerminalRuleCall_0_1_1() { return cIDTerminalRuleCall_0_1_1; } 2773 // QualifiedNameSegment ("::" QualifiedNameSegment)*;
2774 @Override public ParserRule getRule() { return rule; }
2447 2775
2448 //QUOTED_ID 2776 //QualifiedNameSegment ("::" QualifiedNameSegment)*
2449 public RuleCall getQUOTED_IDTerminalRuleCall_1() { return cQUOTED_IDTerminalRuleCall_1; } 2777 public Group getGroup() { return cGroup; }
2778
2779 //QualifiedNameSegment
2780 public RuleCall getQualifiedNameSegmentParserRuleCall_0() { return cQualifiedNameSegmentParserRuleCall_0; }
2781
2782 //("::" QualifiedNameSegment)*
2783 public Group getGroup_1() { return cGroup_1; }
2784
2785 //"::"
2786 public Keyword getColonColonKeyword_1_0() { return cColonColonKeyword_1_0; }
2787
2788 //QualifiedNameSegment
2789 public RuleCall getQualifiedNameSegmentParserRuleCall_1_1() { return cQualifiedNameSegmentParserRuleCall_1_1; }
2450 } 2790 }
2451 2791
2452 public class ImplicationOperatorElements extends AbstractEnumRuleElementFinder { 2792 public class AttributeKindElements extends AbstractEnumRuleElementFinder {
2453 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ImplicationOperator"); 2793 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AttributeKind");
2454 private final EnumLiteralDeclaration cIMPLIESEnumLiteralDeclaration = (EnumLiteralDeclaration)rule.eContents().get(1); 2794 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
2455 private final Keyword cIMPLIESEqualsSignGreaterThanSignKeyword_0 = (Keyword)cIMPLIESEnumLiteralDeclaration.eContents().get(0); 2795 private final EnumLiteralDeclaration cFUNCTIONALEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
2456 2796 private final Keyword cFUNCTIONALFunctionalKeyword_0_0 = (Keyword)cFUNCTIONALEnumLiteralDeclaration_0.eContents().get(0);
2457 //enum ImplicationOperator returns BinaryOperator: 2797 private final EnumLiteralDeclaration cERROREnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
2458 // IMPLIES="=>"; 2798 private final Keyword cERRORErrorKeyword_1_0 = (Keyword)cERROREnumLiteralDeclaration_1.eContents().get(0);
2799 private final EnumLiteralDeclaration cROOTEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
2800 private final Keyword cROOTRootKeyword_2_0 = (Keyword)cROOTEnumLiteralDeclaration_2.eContents().get(0);
2801 private final EnumLiteralDeclaration cCONTAINMENTEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
2802 private final Keyword cCONTAINMENTContainmentKeyword_3_0 = (Keyword)cCONTAINMENTEnumLiteralDeclaration_3.eContents().get(0);
2803
2804 //enum AttributeKind:
2805 // FUNCTIONAL="functional" | ERROR="error" | ROOT="root" | CONTAINMENT="containment";
2459 public EnumRule getRule() { return rule; } 2806 public EnumRule getRule() { return rule; }
2460 2807
2461 //IMPLIES="=>" 2808 //FUNCTIONAL="functional" | ERROR="error" | ROOT="root" | CONTAINMENT="containment"
2462 public EnumLiteralDeclaration getIMPLIESEnumLiteralDeclaration() { return cIMPLIESEnumLiteralDeclaration; } 2809 public Alternatives getAlternatives() { return cAlternatives; }
2463 2810
2464 //"=>" 2811 //FUNCTIONAL="functional"
2465 public Keyword getIMPLIESEqualsSignGreaterThanSignKeyword_0() { return cIMPLIESEqualsSignGreaterThanSignKeyword_0; } 2812 public EnumLiteralDeclaration getFUNCTIONALEnumLiteralDeclaration_0() { return cFUNCTIONALEnumLiteralDeclaration_0; }
2813
2814 //"functional"
2815 public Keyword getFUNCTIONALFunctionalKeyword_0_0() { return cFUNCTIONALFunctionalKeyword_0_0; }
2816
2817 //ERROR="error"
2818 public EnumLiteralDeclaration getERROREnumLiteralDeclaration_1() { return cERROREnumLiteralDeclaration_1; }
2819
2820 //"error"
2821 public Keyword getERRORErrorKeyword_1_0() { return cERRORErrorKeyword_1_0; }
2822
2823 //ROOT="root"
2824 public EnumLiteralDeclaration getROOTEnumLiteralDeclaration_2() { return cROOTEnumLiteralDeclaration_2; }
2825
2826 //"root"
2827 public Keyword getROOTRootKeyword_2_0() { return cROOTRootKeyword_2_0; }
2828
2829 //CONTAINMENT="containment"
2830 public EnumLiteralDeclaration getCONTAINMENTEnumLiteralDeclaration_3() { return cCONTAINMENTEnumLiteralDeclaration_3; }
2831
2832 //"containment"
2833 public Keyword getCONTAINMENTContainmentKeyword_3_0() { return cCONTAINMENTContainmentKeyword_3_0; }
2466 } 2834 }
2467 public class ComparisonOperatorElements extends AbstractEnumRuleElementFinder { 2835 public class ComparisonOperatorElements extends AbstractEnumRuleElementFinder {
2468 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonOperator"); 2836 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonOperator");
2469 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 2837 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
2470 private final EnumLiteralDeclaration cEQEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); 2838 private final EnumLiteralDeclaration cEQUALSEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
2471 private final Keyword cEQEqualsSignEqualsSignKeyword_0_0 = (Keyword)cEQEnumLiteralDeclaration_0.eContents().get(0); 2839 private final Keyword cEQUALSEqualsSignEqualsSignKeyword_0_0 = (Keyword)cEQUALSEnumLiteralDeclaration_0.eContents().get(0);
2472 private final EnumLiteralDeclaration cNOT_EQEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); 2840 private final EnumLiteralDeclaration cNOT_EQUALSEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
2473 private final Keyword cNOT_EQExclamationMarkEqualsSignKeyword_1_0 = (Keyword)cNOT_EQEnumLiteralDeclaration_1.eContents().get(0); 2841 private final Keyword cNOT_EQUALSExclamationMarkEqualsSignKeyword_1_0 = (Keyword)cNOT_EQUALSEnumLiteralDeclaration_1.eContents().get(0);
2474 private final EnumLiteralDeclaration cLESSEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2); 2842 private final EnumLiteralDeclaration cLESSEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
2475 private final Keyword cLESSLessThanSignKeyword_2_0 = (Keyword)cLESSEnumLiteralDeclaration_2.eContents().get(0); 2843 private final Keyword cLESSLessThanSignKeyword_2_0 = (Keyword)cLESSEnumLiteralDeclaration_2.eContents().get(0);
2476 private final EnumLiteralDeclaration cLESS_EQEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3); 2844 private final EnumLiteralDeclaration cLESS_EQUALSEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
2477 private final Keyword cLESS_EQLessThanSignEqualsSignKeyword_3_0 = (Keyword)cLESS_EQEnumLiteralDeclaration_3.eContents().get(0); 2845 private final Keyword cLESS_EQUALSLessThanSignEqualsSignKeyword_3_0 = (Keyword)cLESS_EQUALSEnumLiteralDeclaration_3.eContents().get(0);
2478 private final EnumLiteralDeclaration cGREATEREnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4); 2846 private final EnumLiteralDeclaration cGREATEREnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
2479 private final Keyword cGREATERGreaterThanSignKeyword_4_0 = (Keyword)cGREATEREnumLiteralDeclaration_4.eContents().get(0); 2847 private final Keyword cGREATERGreaterThanSignKeyword_4_0 = (Keyword)cGREATEREnumLiteralDeclaration_4.eContents().get(0);
2480 private final EnumLiteralDeclaration cGREATER_EQEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5); 2848 private final EnumLiteralDeclaration cGREATER_EQUALSEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
2481 private final Keyword cGREATER_EQGreaterThanSignEqualsSignKeyword_5_0 = (Keyword)cGREATER_EQEnumLiteralDeclaration_5.eContents().get(0); 2849 private final Keyword cGREATER_EQUALSGreaterThanSignEqualsSignKeyword_5_0 = (Keyword)cGREATER_EQUALSEnumLiteralDeclaration_5.eContents().get(0);
2482 private final EnumLiteralDeclaration cINEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6); 2850 private final EnumLiteralDeclaration cINEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6);
2483 private final Keyword cINInKeyword_6_0 = (Keyword)cINEnumLiteralDeclaration_6.eContents().get(0); 2851 private final Keyword cINInKeyword_6_0 = (Keyword)cINEnumLiteralDeclaration_6.eContents().get(0);
2484 2852
2485 //enum ComparisonOperator returns BinaryOperator: 2853 //enum ComparisonOperator returns BinaryOperator:
2486 // EQ="==" | NOT_EQ="!=" | LESS="<" | LESS_EQ="<=" | GREATER=">" | GREATER_EQ=">=" | IN="in"; 2854 // EQUALS="==" | NOT_EQUALS="!=" | LESS="<" | LESS_EQUALS="<=" | GREATER=">" | GREATER_EQUALS=">=" | IN="in";
2487 public EnumRule getRule() { return rule; } 2855 public EnumRule getRule() { return rule; }
2488 2856
2489 //EQ="==" | NOT_EQ="!=" | LESS="<" | LESS_EQ="<=" | GREATER=">" | GREATER_EQ=">=" | IN="in" 2857 //EQUALS="==" | NOT_EQUALS="!=" | LESS="<" | LESS_EQUALS="<=" | GREATER=">" | GREATER_EQUALS=">=" | IN="in"
2490 public Alternatives getAlternatives() { return cAlternatives; } 2858 public Alternatives getAlternatives() { return cAlternatives; }
2491 2859
2492 //EQ="==" 2860 //EQUALS="=="
2493 public EnumLiteralDeclaration getEQEnumLiteralDeclaration_0() { return cEQEnumLiteralDeclaration_0; } 2861 public EnumLiteralDeclaration getEQUALSEnumLiteralDeclaration_0() { return cEQUALSEnumLiteralDeclaration_0; }
2494 2862
2495 //"==" 2863 //"=="
2496 public Keyword getEQEqualsSignEqualsSignKeyword_0_0() { return cEQEqualsSignEqualsSignKeyword_0_0; } 2864 public Keyword getEQUALSEqualsSignEqualsSignKeyword_0_0() { return cEQUALSEqualsSignEqualsSignKeyword_0_0; }
2497 2865
2498 //NOT_EQ="!=" 2866 //NOT_EQUALS="!="
2499 public EnumLiteralDeclaration getNOT_EQEnumLiteralDeclaration_1() { return cNOT_EQEnumLiteralDeclaration_1; } 2867 public EnumLiteralDeclaration getNOT_EQUALSEnumLiteralDeclaration_1() { return cNOT_EQUALSEnumLiteralDeclaration_1; }
2500 2868
2501 //"!=" 2869 //"!="
2502 public Keyword getNOT_EQExclamationMarkEqualsSignKeyword_1_0() { return cNOT_EQExclamationMarkEqualsSignKeyword_1_0; } 2870 public Keyword getNOT_EQUALSExclamationMarkEqualsSignKeyword_1_0() { return cNOT_EQUALSExclamationMarkEqualsSignKeyword_1_0; }
2503 2871
2504 //LESS="<" 2872 //LESS="<"
2505 public EnumLiteralDeclaration getLESSEnumLiteralDeclaration_2() { return cLESSEnumLiteralDeclaration_2; } 2873 public EnumLiteralDeclaration getLESSEnumLiteralDeclaration_2() { return cLESSEnumLiteralDeclaration_2; }
@@ -2507,11 +2875,11 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2507 //"<" 2875 //"<"
2508 public Keyword getLESSLessThanSignKeyword_2_0() { return cLESSLessThanSignKeyword_2_0; } 2876 public Keyword getLESSLessThanSignKeyword_2_0() { return cLESSLessThanSignKeyword_2_0; }
2509 2877
2510 //LESS_EQ="<=" 2878 //LESS_EQUALS="<="
2511 public EnumLiteralDeclaration getLESS_EQEnumLiteralDeclaration_3() { return cLESS_EQEnumLiteralDeclaration_3; } 2879 public EnumLiteralDeclaration getLESS_EQUALSEnumLiteralDeclaration_3() { return cLESS_EQUALSEnumLiteralDeclaration_3; }
2512 2880
2513 //"<=" 2881 //"<="
2514 public Keyword getLESS_EQLessThanSignEqualsSignKeyword_3_0() { return cLESS_EQLessThanSignEqualsSignKeyword_3_0; } 2882 public Keyword getLESS_EQUALSLessThanSignEqualsSignKeyword_3_0() { return cLESS_EQUALSLessThanSignEqualsSignKeyword_3_0; }
2515 2883
2516 //GREATER=">" 2884 //GREATER=">"
2517 public EnumLiteralDeclaration getGREATEREnumLiteralDeclaration_4() { return cGREATEREnumLiteralDeclaration_4; } 2885 public EnumLiteralDeclaration getGREATEREnumLiteralDeclaration_4() { return cGREATEREnumLiteralDeclaration_4; }
@@ -2519,11 +2887,11 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2519 //">" 2887 //">"
2520 public Keyword getGREATERGreaterThanSignKeyword_4_0() { return cGREATERGreaterThanSignKeyword_4_0; } 2888 public Keyword getGREATERGreaterThanSignKeyword_4_0() { return cGREATERGreaterThanSignKeyword_4_0; }
2521 2889
2522 //GREATER_EQ=">=" 2890 //GREATER_EQUALS=">="
2523 public EnumLiteralDeclaration getGREATER_EQEnumLiteralDeclaration_5() { return cGREATER_EQEnumLiteralDeclaration_5; } 2891 public EnumLiteralDeclaration getGREATER_EQUALSEnumLiteralDeclaration_5() { return cGREATER_EQUALSEnumLiteralDeclaration_5; }
2524 2892
2525 //">=" 2893 //">="
2526 public Keyword getGREATER_EQGreaterThanSignEqualsSignKeyword_5_0() { return cGREATER_EQGreaterThanSignEqualsSignKeyword_5_0; } 2894 public Keyword getGREATER_EQUALSGreaterThanSignEqualsSignKeyword_5_0() { return cGREATER_EQUALSGreaterThanSignEqualsSignKeyword_5_0; }
2527 2895
2528 //IN="in" 2896 //IN="in"
2529 public EnumLiteralDeclaration getINEnumLiteralDeclaration_6() { return cINEnumLiteralDeclaration_6; } 2897 public EnumLiteralDeclaration getINEnumLiteralDeclaration_6() { return cINEnumLiteralDeclaration_6; }
@@ -2534,56 +2902,56 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2534 public class AdditiveBinaryOperatorElements extends AbstractEnumRuleElementFinder { 2902 public class AdditiveBinaryOperatorElements extends AbstractEnumRuleElementFinder {
2535 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveBinaryOperator"); 2903 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveBinaryOperator");
2536 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 2904 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
2537 private final EnumLiteralDeclaration cADDEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); 2905 private final EnumLiteralDeclaration cPLUSEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
2538 private final Keyword cADDPlusSignKeyword_0_0 = (Keyword)cADDEnumLiteralDeclaration_0.eContents().get(0); 2906 private final Keyword cPLUSPlusSignKeyword_0_0 = (Keyword)cPLUSEnumLiteralDeclaration_0.eContents().get(0);
2539 private final EnumLiteralDeclaration cSUBEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); 2907 private final EnumLiteralDeclaration cMINUSEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
2540 private final Keyword cSUBHyphenMinusKeyword_1_0 = (Keyword)cSUBEnumLiteralDeclaration_1.eContents().get(0); 2908 private final Keyword cMINUSHyphenMinusKeyword_1_0 = (Keyword)cMINUSEnumLiteralDeclaration_1.eContents().get(0);
2541 2909
2542 //enum AdditiveBinaryOperator returns BinaryOperator: 2910 //enum AdditiveBinaryOperator returns BinaryOperator:
2543 // ADD="+" | SUB="-"; 2911 // PLUS="+" | MINUS="-";
2544 public EnumRule getRule() { return rule; } 2912 public EnumRule getRule() { return rule; }
2545 2913
2546 //ADD="+" | SUB="-" 2914 //PLUS="+" | MINUS="-"
2547 public Alternatives getAlternatives() { return cAlternatives; } 2915 public Alternatives getAlternatives() { return cAlternatives; }
2548 2916
2549 //ADD="+" 2917 //PLUS="+"
2550 public EnumLiteralDeclaration getADDEnumLiteralDeclaration_0() { return cADDEnumLiteralDeclaration_0; } 2918 public EnumLiteralDeclaration getPLUSEnumLiteralDeclaration_0() { return cPLUSEnumLiteralDeclaration_0; }
2551 2919
2552 //"+" 2920 //"+"
2553 public Keyword getADDPlusSignKeyword_0_0() { return cADDPlusSignKeyword_0_0; } 2921 public Keyword getPLUSPlusSignKeyword_0_0() { return cPLUSPlusSignKeyword_0_0; }
2554 2922
2555 //SUB="-" 2923 //MINUS="-"
2556 public EnumLiteralDeclaration getSUBEnumLiteralDeclaration_1() { return cSUBEnumLiteralDeclaration_1; } 2924 public EnumLiteralDeclaration getMINUSEnumLiteralDeclaration_1() { return cMINUSEnumLiteralDeclaration_1; }
2557 2925
2558 //"-" 2926 //"-"
2559 public Keyword getSUBHyphenMinusKeyword_1_0() { return cSUBHyphenMinusKeyword_1_0; } 2927 public Keyword getMINUSHyphenMinusKeyword_1_0() { return cMINUSHyphenMinusKeyword_1_0; }
2560 } 2928 }
2561 public class MultiplicativeBinaryOperatorElements extends AbstractEnumRuleElementFinder { 2929 public class MultiplicativeBinaryOperatorElements extends AbstractEnumRuleElementFinder {
2562 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicativeBinaryOperator"); 2930 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicativeBinaryOperator");
2563 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 2931 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
2564 private final EnumLiteralDeclaration cMULEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); 2932 private final EnumLiteralDeclaration cMULTIPLYEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
2565 private final Keyword cMULAsteriskKeyword_0_0 = (Keyword)cMULEnumLiteralDeclaration_0.eContents().get(0); 2933 private final Keyword cMULTIPLYAsteriskKeyword_0_0 = (Keyword)cMULTIPLYEnumLiteralDeclaration_0.eContents().get(0);
2566 private final EnumLiteralDeclaration cDIVEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); 2934 private final EnumLiteralDeclaration cDIVIDEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
2567 private final Keyword cDIVSolidusKeyword_1_0 = (Keyword)cDIVEnumLiteralDeclaration_1.eContents().get(0); 2935 private final Keyword cDIVIDESolidusKeyword_1_0 = (Keyword)cDIVIDEEnumLiteralDeclaration_1.eContents().get(0);
2568 2936
2569 //enum MultiplicativeBinaryOperator returns BinaryOperator: 2937 //enum MultiplicativeBinaryOperator returns BinaryOperator:
2570 // MUL="*" | DIV="/"; 2938 // MULTIPLY="*" | DIVIDE="/";
2571 public EnumRule getRule() { return rule; } 2939 public EnumRule getRule() { return rule; }
2572 2940
2573 //MUL="*" | DIV="/" 2941 //MULTIPLY="*" | DIVIDE="/"
2574 public Alternatives getAlternatives() { return cAlternatives; } 2942 public Alternatives getAlternatives() { return cAlternatives; }
2575 2943
2576 //MUL="*" 2944 //MULTIPLY="*"
2577 public EnumLiteralDeclaration getMULEnumLiteralDeclaration_0() { return cMULEnumLiteralDeclaration_0; } 2945 public EnumLiteralDeclaration getMULTIPLYEnumLiteralDeclaration_0() { return cMULTIPLYEnumLiteralDeclaration_0; }
2578 2946
2579 //"*" 2947 //"*"
2580 public Keyword getMULAsteriskKeyword_0_0() { return cMULAsteriskKeyword_0_0; } 2948 public Keyword getMULTIPLYAsteriskKeyword_0_0() { return cMULTIPLYAsteriskKeyword_0_0; }
2581 2949
2582 //DIV="/" 2950 //DIVIDE="/"
2583 public EnumLiteralDeclaration getDIVEnumLiteralDeclaration_1() { return cDIVEnumLiteralDeclaration_1; } 2951 public EnumLiteralDeclaration getDIVIDEEnumLiteralDeclaration_1() { return cDIVIDEEnumLiteralDeclaration_1; }
2584 2952
2585 //"/" 2953 //"/"
2586 public Keyword getDIVSolidusKeyword_1_0() { return cDIVSolidusKeyword_1_0; } 2954 public Keyword getDIVIDESolidusKeyword_1_0() { return cDIVIDESolidusKeyword_1_0; }
2587 } 2955 }
2588 public class ExponentialOpElements extends AbstractEnumRuleElementFinder { 2956 public class ExponentialOpElements extends AbstractEnumRuleElementFinder {
2589 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialOp"); 2957 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialOp");
@@ -2600,34 +2968,30 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2600 //"^" 2968 //"^"
2601 public Keyword getPOWCircumflexAccentKeyword_0() { return cPOWCircumflexAccentKeyword_0; } 2969 public Keyword getPOWCircumflexAccentKeyword_0() { return cPOWCircumflexAccentKeyword_0; }
2602 } 2970 }
2603 public class UnaryOpElements extends AbstractEnumRuleElementFinder { 2971 public class UnaryOperatorElements extends AbstractEnumRuleElementFinder {
2604 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnaryOp"); 2972 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnaryOperator");
2605 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 2973 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
2606 private final EnumLiteralDeclaration cNEGEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); 2974 private final EnumLiteralDeclaration cNOTEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
2607 private final Keyword cNEGExclamationMarkKeyword_0_0 = (Keyword)cNEGEnumLiteralDeclaration_0.eContents().get(0); 2975 private final Keyword cNOTExclamationMarkKeyword_0_0 = (Keyword)cNOTEnumLiteralDeclaration_0.eContents().get(0);
2608 private final EnumLiteralDeclaration cPLUSEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); 2976 private final EnumLiteralDeclaration cPLUSEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
2609 private final Keyword cPLUSPlusSignKeyword_1_0 = (Keyword)cPLUSEnumLiteralDeclaration_1.eContents().get(0); 2977 private final Keyword cPLUSPlusSignKeyword_1_0 = (Keyword)cPLUSEnumLiteralDeclaration_1.eContents().get(0);
2610 private final EnumLiteralDeclaration cMINUSEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2); 2978 private final EnumLiteralDeclaration cMINUSEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
2611 private final Keyword cMINUSHyphenMinusKeyword_2_0 = (Keyword)cMINUSEnumLiteralDeclaration_2.eContents().get(0); 2979 private final Keyword cMINUSHyphenMinusKeyword_2_0 = (Keyword)cMINUSEnumLiteralDeclaration_2.eContents().get(0);
2612 private final EnumLiteralDeclaration cMAYEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3); 2980 private final EnumLiteralDeclaration cMAYBEEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
2613 private final Keyword cMAYMayKeyword_3_0 = (Keyword)cMAYEnumLiteralDeclaration_3.eContents().get(0); 2981 private final Keyword cMAYBEQuestionMarkKeyword_3_0 = (Keyword)cMAYBEEnumLiteralDeclaration_3.eContents().get(0);
2614 private final EnumLiteralDeclaration cMUSTEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4); 2982
2615 private final Keyword cMUSTMustKeyword_4_0 = (Keyword)cMUSTEnumLiteralDeclaration_4.eContents().get(0); 2983 //enum UnaryOperator:
2616 private final EnumLiteralDeclaration cCURRENTEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5); 2984 // NOT="!" | PLUS="+" | MINUS="-" | MAYBE="?";
2617 private final Keyword cCURRENTCurrentKeyword_5_0 = (Keyword)cCURRENTEnumLiteralDeclaration_5.eContents().get(0);
2618
2619 //enum UnaryOp:
2620 // NEG="!" | PLUS="+" | MINUS="-" | MAY="may" | MUST="must" | CURRENT="current";
2621 public EnumRule getRule() { return rule; } 2985 public EnumRule getRule() { return rule; }
2622 2986
2623 //NEG="!" | PLUS="+" | MINUS="-" | MAY="may" | MUST="must" | CURRENT="current" 2987 //NOT="!" | PLUS="+" | MINUS="-" | MAYBE="?"
2624 public Alternatives getAlternatives() { return cAlternatives; } 2988 public Alternatives getAlternatives() { return cAlternatives; }
2625 2989
2626 //NEG="!" 2990 //NOT="!"
2627 public EnumLiteralDeclaration getNEGEnumLiteralDeclaration_0() { return cNEGEnumLiteralDeclaration_0; } 2991 public EnumLiteralDeclaration getNOTEnumLiteralDeclaration_0() { return cNOTEnumLiteralDeclaration_0; }
2628 2992
2629 //"!" 2993 //"!"
2630 public Keyword getNEGExclamationMarkKeyword_0_0() { return cNEGExclamationMarkKeyword_0_0; } 2994 public Keyword getNOTExclamationMarkKeyword_0_0() { return cNOTExclamationMarkKeyword_0_0; }
2631 2995
2632 //PLUS="+" 2996 //PLUS="+"
2633 public EnumLiteralDeclaration getPLUSEnumLiteralDeclaration_1() { return cPLUSEnumLiteralDeclaration_1; } 2997 public EnumLiteralDeclaration getPLUSEnumLiteralDeclaration_1() { return cPLUSEnumLiteralDeclaration_1; }
@@ -2641,58 +3005,11 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2641 //"-" 3005 //"-"
2642 public Keyword getMINUSHyphenMinusKeyword_2_0() { return cMINUSHyphenMinusKeyword_2_0; } 3006 public Keyword getMINUSHyphenMinusKeyword_2_0() { return cMINUSHyphenMinusKeyword_2_0; }
2643 3007
2644 //MAY="may" 3008 //MAYBE="?"
2645 public EnumLiteralDeclaration getMAYEnumLiteralDeclaration_3() { return cMAYEnumLiteralDeclaration_3; } 3009 public EnumLiteralDeclaration getMAYBEEnumLiteralDeclaration_3() { return cMAYBEEnumLiteralDeclaration_3; }
2646
2647 //"may"
2648 public Keyword getMAYMayKeyword_3_0() { return cMAYMayKeyword_3_0; }
2649
2650 //MUST="must"
2651 public EnumLiteralDeclaration getMUSTEnumLiteralDeclaration_4() { return cMUSTEnumLiteralDeclaration_4; }
2652
2653 //"must"
2654 public Keyword getMUSTMustKeyword_4_0() { return cMUSTMustKeyword_4_0; }
2655
2656 //CURRENT="current"
2657 public EnumLiteralDeclaration getCURRENTEnumLiteralDeclaration_5() { return cCURRENTEnumLiteralDeclaration_5; }
2658
2659 //"current"
2660 public Keyword getCURRENTCurrentKeyword_5_0() { return cCURRENTCurrentKeyword_5_0; }
2661 }
2662 public class QuantifierElements extends AbstractEnumRuleElementFinder {
2663 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Quantifier");
2664 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
2665 private final EnumLiteralDeclaration cEXISTSEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
2666 private final Keyword cEXISTSExistsKeyword_0_0 = (Keyword)cEXISTSEnumLiteralDeclaration_0.eContents().get(0);
2667 private final EnumLiteralDeclaration cFORALLEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
2668 private final Keyword cFORALLForallKeyword_1_0 = (Keyword)cFORALLEnumLiteralDeclaration_1.eContents().get(0);
2669 private final EnumLiteralDeclaration cCOUNTEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
2670 private final Keyword cCOUNTCountKeyword_2_0 = (Keyword)cCOUNTEnumLiteralDeclaration_2.eContents().get(0);
2671
2672 //enum Quantifier:
2673 // EXISTS="exists" | FORALL="forall" | COUNT="count";
2674 public EnumRule getRule() { return rule; }
2675
2676 //EXISTS="exists" | FORALL="forall" | COUNT="count"
2677 public Alternatives getAlternatives() { return cAlternatives; }
2678
2679 //EXISTS="exists"
2680 public EnumLiteralDeclaration getEXISTSEnumLiteralDeclaration_0() { return cEXISTSEnumLiteralDeclaration_0; }
2681
2682 //"exists"
2683 public Keyword getEXISTSExistsKeyword_0_0() { return cEXISTSExistsKeyword_0_0; }
2684
2685 //FORALL="forall"
2686 public EnumLiteralDeclaration getFORALLEnumLiteralDeclaration_1() { return cFORALLEnumLiteralDeclaration_1; }
2687 3010
2688 //"forall" 3011 //"?"
2689 public Keyword getFORALLForallKeyword_1_0() { return cFORALLForallKeyword_1_0; } 3012 public Keyword getMAYBEQuestionMarkKeyword_3_0() { return cMAYBEQuestionMarkKeyword_3_0; }
2690
2691 //COUNT="count"
2692 public EnumLiteralDeclaration getCOUNTEnumLiteralDeclaration_2() { return cCOUNTEnumLiteralDeclaration_2; }
2693
2694 //"count"
2695 public Keyword getCOUNTCountKeyword_2_0() { return cCOUNTCountKeyword_2_0; }
2696 } 3013 }
2697 public class LogicValueElements extends AbstractEnumRuleElementFinder { 3014 public class LogicValueElements extends AbstractEnumRuleElementFinder {
2698 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LogicValue"); 3015 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LogicValue");
@@ -2740,49 +3057,53 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2740 public class ObjectiveKindElements extends AbstractEnumRuleElementFinder { 3057 public class ObjectiveKindElements extends AbstractEnumRuleElementFinder {
2741 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ObjectiveKind"); 3058 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ObjectiveKind");
2742 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 3059 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
2743 private final EnumLiteralDeclaration cMINIMIZEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); 3060 private final EnumLiteralDeclaration cMINIMIZATIONEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
2744 private final Keyword cMINIMIZEMinimizeKeyword_0_0 = (Keyword)cMINIMIZEEnumLiteralDeclaration_0.eContents().get(0); 3061 private final Keyword cMINIMIZATIONMinimizeKeyword_0_0 = (Keyword)cMINIMIZATIONEnumLiteralDeclaration_0.eContents().get(0);
2745 private final EnumLiteralDeclaration cMAXIMIZEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); 3062 private final EnumLiteralDeclaration cMAXIMIZATIONEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
2746 private final Keyword cMAXIMIZEMaximizeKeyword_1_0 = (Keyword)cMAXIMIZEEnumLiteralDeclaration_1.eContents().get(0); 3063 private final Keyword cMAXIMIZATIONMaximizeKeyword_1_0 = (Keyword)cMAXIMIZATIONEnumLiteralDeclaration_1.eContents().get(0);
2747 3064
2748 //enum ObjectiveKind: 3065 //enum ObjectiveKind:
2749 // MINIMIZE="minimize" | MAXIMIZE="maximize"; 3066 // MINIMIZATION="minimize" | MAXIMIZATION="maximize";
2750 public EnumRule getRule() { return rule; } 3067 public EnumRule getRule() { return rule; }
2751 3068
2752 //MINIMIZE="minimize" | MAXIMIZE="maximize" 3069 //MINIMIZATION="minimize" | MAXIMIZATION="maximize"
2753 public Alternatives getAlternatives() { return cAlternatives; } 3070 public Alternatives getAlternatives() { return cAlternatives; }
2754 3071
2755 //MINIMIZE="minimize" 3072 //MINIMIZATION="minimize"
2756 public EnumLiteralDeclaration getMINIMIZEEnumLiteralDeclaration_0() { return cMINIMIZEEnumLiteralDeclaration_0; } 3073 public EnumLiteralDeclaration getMINIMIZATIONEnumLiteralDeclaration_0() { return cMINIMIZATIONEnumLiteralDeclaration_0; }
2757 3074
2758 //"minimize" 3075 //"minimize"
2759 public Keyword getMINIMIZEMinimizeKeyword_0_0() { return cMINIMIZEMinimizeKeyword_0_0; } 3076 public Keyword getMINIMIZATIONMinimizeKeyword_0_0() { return cMINIMIZATIONMinimizeKeyword_0_0; }
2760 3077
2761 //MAXIMIZE="maximize" 3078 //MAXIMIZATION="maximize"
2762 public EnumLiteralDeclaration getMAXIMIZEEnumLiteralDeclaration_1() { return cMAXIMIZEEnumLiteralDeclaration_1; } 3079 public EnumLiteralDeclaration getMAXIMIZATIONEnumLiteralDeclaration_1() { return cMAXIMIZATIONEnumLiteralDeclaration_1; }
2763 3080
2764 //"maximize" 3081 //"maximize"
2765 public Keyword getMAXIMIZEMaximizeKeyword_1_0() { return cMAXIMIZEMaximizeKeyword_1_0; } 3082 public Keyword getMAXIMIZATIONMaximizeKeyword_1_0() { return cMAXIMIZATIONMaximizeKeyword_1_0; }
2766 } 3083 }
2767 3084
2768 private final ProblemElements pProblem; 3085 private final ProblemElements pProblem;
2769 private final StatementElements pStatement; 3086 private final StatementElements pStatement;
3087 private final ImportElements pImport;
3088 private final UriImportElements pUriImport;
3089 private final NamespaceImportElements pNamespaceImport;
2770 private final AssertionOrDefinitionElements pAssertionOrDefinition; 3090 private final AssertionOrDefinitionElements pAssertionOrDefinition;
2771 private final PredicateDefinitionElements pPredicateDefinition; 3091 private final PredicateDefinitionElements pPredicateDefinition;
2772 private final UnnamedErrorPrediateDefinitionElements pUnnamedErrorPrediateDefinition; 3092 private final UnnamedErrorPredicateDefintionElements pUnnamedErrorPredicateDefintion;
2773 private final DefaultDefinitionElements pDefaultDefinition; 3093 private final DefaultAssertionElements pDefaultAssertion;
2774 private final MetricDefinitionElements pMetricDefinition; 3094 private final FunctionDefinitionElements pFunctionDefinition;
2775 private final ExternPredicateDefinitionElements pExternPredicateDefinition; 3095 private final TypeReferenceElements pTypeReference;
2776 private final ExternMetricDefinitionElements pExternMetricDefinition; 3096 private final AttributeKindElements eAttributeKind;
2777 private final ExternAggregatorDefinitionElements pExternAggregatorDefinition; 3097 private final AttributeElements pAttribute;
2778 private final ExternDatatypeDefinitionElements pExternDatatypeDefinition; 3098 private final ExternDeclarationElements pExternDeclaration;
2779 private final VariableElements pVariable; 3099 private final ExternPredicateDeclarationElements pExternPredicateDeclaration;
3100 private final ExternFunctionDeclarationElements pExternFunctionDeclaration;
3101 private final ExternAggregationOperatorDeclarationElements pExternAggregationOperatorDeclaration;
3102 private final ExternDatatypeDeclarationElements pExternDatatypeDeclaration;
2780 private final ExpressionElements pExpression; 3103 private final ExpressionElements pExpression;
2781 private final IfElseElements pIfElse; 3104 private final ConditionalExpressionElements pConditionalExpression;
2782 private final LetElements pLet; 3105 private final LetExpressionElements pLetExpression;
2783 private final LetBindingElements pLetBinding; 3106 private final LetBindingElements pLetBinding;
2784 private final ImplicationOperatorElements eImplicationOperator;
2785 private final ImplicationExpressionElements pImplicationExpression;
2786 private final DisjunctiveExpressionElements pDisjunctiveExpression; 3107 private final DisjunctiveExpressionElements pDisjunctiveExpression;
2787 private final CaseElements pCase; 3108 private final CaseElements pCase;
2788 private final ConjunctiveExpressionElements pConjunctiveExpression; 3109 private final ConjunctiveExpressionElements pConjunctiveExpression;
@@ -2795,44 +3116,47 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2795 private final ExponentialOpElements eExponentialOp; 3116 private final ExponentialOpElements eExponentialOp;
2796 private final ExponentialExpressionElements pExponentialExpression; 3117 private final ExponentialExpressionElements pExponentialExpression;
2797 private final CastExpressionElements pCastExpression; 3118 private final CastExpressionElements pCastExpression;
2798 private final UnaryOpElements eUnaryOp; 3119 private final UnaryOperatorElements eUnaryOperator;
2799 private final UnaryExpressionElements pUnaryExpression; 3120 private final UnaryExpressionElements pUnaryExpression;
2800 private final AggregationExpressionElements pAggregationExpression; 3121 private final BracedAggregateExpressionElements pBracedAggregateExpression;
2801 private final LocalVariablesElements pLocalVariables;
2802 private final QuantifierElements eQuantifier;
2803 private final QuantifiedExpressionElements pQuantifiedExpression;
2804 private final AggregationElements pAggregation; 3122 private final AggregationElements pAggregation;
3123 private final CountElements pCount;
2805 private final AtomicExpressionElements pAtomicExpression; 3124 private final AtomicExpressionElements pAtomicExpression;
2806 private final CallElements pCall; 3125 private final CallElements pCall;
2807 private final ArgumentListElements pArgumentList; 3126 private final ArgumentListElements pArgumentList;
2808 private final ArgumentElements pArgument; 3127 private final ArgumentElements pArgument;
2809 private final ExpressionArgumentElements pExpressionArgument; 3128 private final ExpressionArgumentElements pExpressionArgument;
2810 private final StarArgumentElements pStarArgument; 3129 private final StarArgumentElements pStarArgument;
2811 private final TypedArgumentElements pTypedArgument; 3130 private final TypedVariableArgumentElements pTypedVariableArgument;
2812 private final TypedStarArgumentElements pTypedStarArgument; 3131 private final TypedStarArgumentElements pTypedStarArgument;
2813 private final ReferenceElements pReference; 3132 private final ReferenceElements pReference;
3133 private final PathComponentElements pPathComponent;
2814 private final IntervalElements pInterval; 3134 private final IntervalElements pInterval;
2815 private final LiteralElements pLiteral; 3135 private final LiteralElements pLiteral;
2816 private final LogicValueElements eLogicValue; 3136 private final LogicValueElements eLogicValue;
2817 private final LogicLiteralElements pLogicLiteral; 3137 private final LogicLiteralElements pLogicLiteral;
2818 private final NumericLiteralElements pNumericLiteral; 3138 private final IntLiteralElements pIntLiteral;
3139 private final RealLiteralElements pRealLiteral;
2819 private final InfinityLiteralElements pInfinityLiteral; 3140 private final InfinityLiteralElements pInfinityLiteral;
2820 private final EmptyIntervalLiteralElements pEmptyIntervalLiteral; 3141 private final EmptyLiteralElements pEmptyLiteral;
2821 private final StringLiteralElements pStringLiteral; 3142 private final StringLiteralElements pStringLiteral;
2822 private final ClassDefinitionElements pClassDefinition; 3143 private final ClassDeclarationElements pClassDeclaration;
2823 private final MemberDefinitionElements pMemberDefinition; 3144 private final FieldElements pField;
2824 private final MultiplicityElements pMultiplicity; 3145 private final MultiplicityElements pMultiplicity;
2825 private final ManyMultiplicityElements pManyMultiplicity; 3146 private final UnboundedMultiplicityElements pUnboundedMultiplicity;
2826 private final ExactMultiplicityElements pExactMultiplicity; 3147 private final ExactMultiplicityElements pExactMultiplicity;
2827 private final BoundedMultiplicityElements pBoundedMultiplicity; 3148 private final BoundedMultiplicityElements pBoundedMultiplicity;
2828 private final ScopeDefinitionElements pScopeDefinition; 3149 private final EnumDeclarationElements pEnumDeclaration;
2829 private final ExactScopeDefinitionElements pExactScopeDefinition; 3150 private final EnumLiteralElements pEnumLiteral;
2830 private final BoundedScopeDefinitionElements pBoundedScopeDefinition; 3151 private final ScopeDeclarationElements pScopeDeclaration;
2831 private final LowerBoundedScopeDefinitionElements pLowerBoundedScopeDefinition; 3152 private final ExactScopeElements pExactScope;
3153 private final BoundedScopeElements pBoundedScope;
3154 private final LowerBoundedScopeElements pLowerBoundedScope;
2832 private final ObjectiveKindElements eObjectiveKind; 3155 private final ObjectiveKindElements eObjectiveKind;
2833 private final ObjectiveDefinitionElements pObjectiveDefinition; 3156 private final ObjectiveDeclarationElements pObjectiveDeclaration;
2834 private final UpperMultiplictyElements pUpperMultiplicty; 3157 private final UpperMultiplictyElements pUpperMultiplicty;
2835 private final RealElements pReal; 3158 private final RealElements pReal;
3159 private final QualifiedNameSegmentElements pQualifiedNameSegment;
2836 private final QualifiedNameElements pQualifiedName; 3160 private final QualifiedNameElements pQualifiedName;
2837 private final TerminalRule tSTRING; 3161 private final TerminalRule tSTRING;
2838 private final TerminalRule tQUOTED_ID; 3162 private final TerminalRule tQUOTED_ID;
@@ -2852,22 +3176,26 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2852 this.gaTerminals = gaTerminals; 3176 this.gaTerminals = gaTerminals;
2853 this.pProblem = new ProblemElements(); 3177 this.pProblem = new ProblemElements();
2854 this.pStatement = new StatementElements(); 3178 this.pStatement = new StatementElements();
3179 this.pImport = new ImportElements();
3180 this.pUriImport = new UriImportElements();
3181 this.pNamespaceImport = new NamespaceImportElements();
2855 this.pAssertionOrDefinition = new AssertionOrDefinitionElements(); 3182 this.pAssertionOrDefinition = new AssertionOrDefinitionElements();
2856 this.pPredicateDefinition = new PredicateDefinitionElements(); 3183 this.pPredicateDefinition = new PredicateDefinitionElements();
2857 this.pUnnamedErrorPrediateDefinition = new UnnamedErrorPrediateDefinitionElements(); 3184 this.pUnnamedErrorPredicateDefintion = new UnnamedErrorPredicateDefintionElements();
2858 this.pDefaultDefinition = new DefaultDefinitionElements(); 3185 this.pDefaultAssertion = new DefaultAssertionElements();
2859 this.pMetricDefinition = new MetricDefinitionElements(); 3186 this.pFunctionDefinition = new FunctionDefinitionElements();
2860 this.pExternPredicateDefinition = new ExternPredicateDefinitionElements(); 3187 this.pTypeReference = new TypeReferenceElements();
2861 this.pExternMetricDefinition = new ExternMetricDefinitionElements(); 3188 this.eAttributeKind = new AttributeKindElements();
2862 this.pExternAggregatorDefinition = new ExternAggregatorDefinitionElements(); 3189 this.pAttribute = new AttributeElements();
2863 this.pExternDatatypeDefinition = new ExternDatatypeDefinitionElements(); 3190 this.pExternDeclaration = new ExternDeclarationElements();
2864 this.pVariable = new VariableElements(); 3191 this.pExternPredicateDeclaration = new ExternPredicateDeclarationElements();
3192 this.pExternFunctionDeclaration = new ExternFunctionDeclarationElements();
3193 this.pExternAggregationOperatorDeclaration = new ExternAggregationOperatorDeclarationElements();
3194 this.pExternDatatypeDeclaration = new ExternDatatypeDeclarationElements();
2865 this.pExpression = new ExpressionElements(); 3195 this.pExpression = new ExpressionElements();
2866 this.pIfElse = new IfElseElements(); 3196 this.pConditionalExpression = new ConditionalExpressionElements();
2867 this.pLet = new LetElements(); 3197 this.pLetExpression = new LetExpressionElements();
2868 this.pLetBinding = new LetBindingElements(); 3198 this.pLetBinding = new LetBindingElements();
2869 this.eImplicationOperator = new ImplicationOperatorElements();
2870 this.pImplicationExpression = new ImplicationExpressionElements();
2871 this.pDisjunctiveExpression = new DisjunctiveExpressionElements(); 3199 this.pDisjunctiveExpression = new DisjunctiveExpressionElements();
2872 this.pCase = new CaseElements(); 3200 this.pCase = new CaseElements();
2873 this.pConjunctiveExpression = new ConjunctiveExpressionElements(); 3201 this.pConjunctiveExpression = new ConjunctiveExpressionElements();
@@ -2880,44 +3208,47 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2880 this.eExponentialOp = new ExponentialOpElements(); 3208 this.eExponentialOp = new ExponentialOpElements();
2881 this.pExponentialExpression = new ExponentialExpressionElements(); 3209 this.pExponentialExpression = new ExponentialExpressionElements();
2882 this.pCastExpression = new CastExpressionElements(); 3210 this.pCastExpression = new CastExpressionElements();
2883 this.eUnaryOp = new UnaryOpElements(); 3211 this.eUnaryOperator = new UnaryOperatorElements();
2884 this.pUnaryExpression = new UnaryExpressionElements(); 3212 this.pUnaryExpression = new UnaryExpressionElements();
2885 this.pAggregationExpression = new AggregationExpressionElements(); 3213 this.pBracedAggregateExpression = new BracedAggregateExpressionElements();
2886 this.pLocalVariables = new LocalVariablesElements();
2887 this.eQuantifier = new QuantifierElements();
2888 this.pQuantifiedExpression = new QuantifiedExpressionElements();
2889 this.pAggregation = new AggregationElements(); 3214 this.pAggregation = new AggregationElements();
3215 this.pCount = new CountElements();
2890 this.pAtomicExpression = new AtomicExpressionElements(); 3216 this.pAtomicExpression = new AtomicExpressionElements();
2891 this.pCall = new CallElements(); 3217 this.pCall = new CallElements();
2892 this.pArgumentList = new ArgumentListElements(); 3218 this.pArgumentList = new ArgumentListElements();
2893 this.pArgument = new ArgumentElements(); 3219 this.pArgument = new ArgumentElements();
2894 this.pExpressionArgument = new ExpressionArgumentElements(); 3220 this.pExpressionArgument = new ExpressionArgumentElements();
2895 this.pStarArgument = new StarArgumentElements(); 3221 this.pStarArgument = new StarArgumentElements();
2896 this.pTypedArgument = new TypedArgumentElements(); 3222 this.pTypedVariableArgument = new TypedVariableArgumentElements();
2897 this.pTypedStarArgument = new TypedStarArgumentElements(); 3223 this.pTypedStarArgument = new TypedStarArgumentElements();
2898 this.pReference = new ReferenceElements(); 3224 this.pReference = new ReferenceElements();
3225 this.pPathComponent = new PathComponentElements();
2899 this.pInterval = new IntervalElements(); 3226 this.pInterval = new IntervalElements();
2900 this.pLiteral = new LiteralElements(); 3227 this.pLiteral = new LiteralElements();
2901 this.eLogicValue = new LogicValueElements(); 3228 this.eLogicValue = new LogicValueElements();
2902 this.pLogicLiteral = new LogicLiteralElements(); 3229 this.pLogicLiteral = new LogicLiteralElements();
2903 this.pNumericLiteral = new NumericLiteralElements(); 3230 this.pIntLiteral = new IntLiteralElements();
3231 this.pRealLiteral = new RealLiteralElements();
2904 this.pInfinityLiteral = new InfinityLiteralElements(); 3232 this.pInfinityLiteral = new InfinityLiteralElements();
2905 this.pEmptyIntervalLiteral = new EmptyIntervalLiteralElements(); 3233 this.pEmptyLiteral = new EmptyLiteralElements();
2906 this.pStringLiteral = new StringLiteralElements(); 3234 this.pStringLiteral = new StringLiteralElements();
2907 this.pClassDefinition = new ClassDefinitionElements(); 3235 this.pClassDeclaration = new ClassDeclarationElements();
2908 this.pMemberDefinition = new MemberDefinitionElements(); 3236 this.pField = new FieldElements();
2909 this.pMultiplicity = new MultiplicityElements(); 3237 this.pMultiplicity = new MultiplicityElements();
2910 this.pManyMultiplicity = new ManyMultiplicityElements(); 3238 this.pUnboundedMultiplicity = new UnboundedMultiplicityElements();
2911 this.pExactMultiplicity = new ExactMultiplicityElements(); 3239 this.pExactMultiplicity = new ExactMultiplicityElements();
2912 this.pBoundedMultiplicity = new BoundedMultiplicityElements(); 3240 this.pBoundedMultiplicity = new BoundedMultiplicityElements();
2913 this.pScopeDefinition = new ScopeDefinitionElements(); 3241 this.pEnumDeclaration = new EnumDeclarationElements();
2914 this.pExactScopeDefinition = new ExactScopeDefinitionElements(); 3242 this.pEnumLiteral = new EnumLiteralElements();
2915 this.pBoundedScopeDefinition = new BoundedScopeDefinitionElements(); 3243 this.pScopeDeclaration = new ScopeDeclarationElements();
2916 this.pLowerBoundedScopeDefinition = new LowerBoundedScopeDefinitionElements(); 3244 this.pExactScope = new ExactScopeElements();
3245 this.pBoundedScope = new BoundedScopeElements();
3246 this.pLowerBoundedScope = new LowerBoundedScopeElements();
2917 this.eObjectiveKind = new ObjectiveKindElements(); 3247 this.eObjectiveKind = new ObjectiveKindElements();
2918 this.pObjectiveDefinition = new ObjectiveDefinitionElements(); 3248 this.pObjectiveDeclaration = new ObjectiveDeclarationElements();
2919 this.pUpperMultiplicty = new UpperMultiplictyElements(); 3249 this.pUpperMultiplicty = new UpperMultiplictyElements();
2920 this.pReal = new RealElements(); 3250 this.pReal = new RealElements();
3251 this.pQualifiedNameSegment = new QualifiedNameSegmentElements();
2921 this.pQualifiedName = new QualifiedNameElements(); 3252 this.pQualifiedName = new QualifiedNameElements();
2922 this.tSTRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.STRING"); 3253 this.tSTRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.STRING");
2923 this.tQUOTED_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.QUOTED_ID"); 3254 this.tQUOTED_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.QUOTED_ID");
@@ -2955,6 +3286,8 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2955 3286
2956 3287
2957 //Problem: 3288 //Problem:
3289 // ("problem" name=QualifiedName FULL_STOP)?
3290 // imports+=Import*
2958 // statements+=Statement*; 3291 // statements+=Statement*;
2959 public ProblemElements getProblemAccess() { 3292 public ProblemElements getProblemAccess() {
2960 return pProblem; 3293 return pProblem;
@@ -2965,9 +3298,8 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2965 } 3298 }
2966 3299
2967 //Statement: 3300 //Statement:
2968 // (AssertionOrDefinition | PredicateDefinition | UnnamedErrorPrediateDefinition | DefaultDefinition | MetricDefinition 3301 // AssertionOrDefinition | PredicateDefinition | UnnamedErrorPredicateDefintion | DefaultAssertion | FunctionDefinition
2969 // | ExternPredicateDefinition | ExternMetricDefinition | ExternAggregatorDefinition | ExternDatatypeDefinition | 3302 // | Attribute | ExternDeclaration | ScopeDeclaration | ObjectiveDeclaration | ClassDeclaration | EnumDeclaration;
2970 // ClassDefinition | ScopeDefinition | ObjectiveDefinition) FULL_STOP;
2971 public StatementElements getStatementAccess() { 3303 public StatementElements getStatementAccess() {
2972 return pStatement; 3304 return pStatement;
2973 } 3305 }
@@ -2976,9 +3308,39 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2976 return getStatementAccess().getRule(); 3308 return getStatementAccess().getRule();
2977 } 3309 }
2978 3310
3311 //Import:
3312 // UriImport | NamespaceImport;
3313 public ImportElements getImportAccess() {
3314 return pImport;
3315 }
3316
3317 public ParserRule getImportRule() {
3318 return getImportAccess().getRule();
3319 }
3320
3321 //UriImport:
3322 // "import" uri=STRING ("as" alias=QualifiedName) FULL_STOP;
3323 public UriImportElements getUriImportAccess() {
3324 return pUriImport;
3325 }
3326
3327 public ParserRule getUriImportRule() {
3328 return getUriImportAccess().getRule();
3329 }
3330
3331 //NamespaceImport:
3332 // "import" importedNamespace=QualifiedName ("as" alias=QualifiedName) FULL_STOP;
3333 public NamespaceImportElements getNamespaceImportAccess() {
3334 return pNamespaceImport;
3335 }
3336
3337 public ParserRule getNamespaceImportRule() {
3338 return getNamespaceImportAccess().getRule();
3339 }
3340
2979 //AssertionOrDefinition Statement: 3341 //AssertionOrDefinition Statement:
2980 // Expression ({Interpretation.body=current} ":" range=Expression | {PredicateDefinition.head=current} ":-" 3342 // Expression ({Assertion.expression=current} (":" range=Expression)? | {PredicateDefinition.head=current} ":-"
2981 // body=Expression | {MetricDefinition.head=current} "=" body=Expression)?; 3343 // body=Expression | {FunctionDefinition.head=current} ":=" body=Expression) FULL_STOP;
2982 public AssertionOrDefinitionElements getAssertionOrDefinitionAccess() { 3344 public AssertionOrDefinitionElements getAssertionOrDefinitionAccess() {
2983 return pAssertionOrDefinition; 3345 return pAssertionOrDefinition;
2984 } 3346 }
@@ -2988,7 +3350,8 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2988 } 3350 }
2989 3351
2990 //PredicateDefinition: 3352 //PredicateDefinition:
2991 // (functional?="functional" error?="error"? | error?="error" functional?="functional"?) head=Call ":-" body=Expression; 3353 // (functional?="functional" error?="error"? | error?="error" functional?="functional"?) head=Call ":-" body=Expression
3354 // FULL_STOP;
2992 public PredicateDefinitionElements getPredicateDefinitionAccess() { 3355 public PredicateDefinitionElements getPredicateDefinitionAccess() {
2993 return pPredicateDefinition; 3356 return pPredicateDefinition;
2994 } 3357 }
@@ -2997,89 +3360,121 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
2997 return getPredicateDefinitionAccess().getRule(); 3360 return getPredicateDefinitionAccess().getRule();
2998 } 3361 }
2999 3362
3000 //UnnamedErrorPrediateDefinition: 3363 //UnnamedErrorPredicateDefintion:
3001 // "error" argumentList=ArgumentList ":-" body=Expression; 3364 // "error" argumentList=ArgumentList ":-" body=Expression FULL_STOP;
3002 public UnnamedErrorPrediateDefinitionElements getUnnamedErrorPrediateDefinitionAccess() { 3365 public UnnamedErrorPredicateDefintionElements getUnnamedErrorPredicateDefintionAccess() {
3003 return pUnnamedErrorPrediateDefinition; 3366 return pUnnamedErrorPredicateDefintion;
3367 }
3368
3369 public ParserRule getUnnamedErrorPredicateDefintionRule() {
3370 return getUnnamedErrorPredicateDefintionAccess().getRule();
3371 }
3372
3373 //DefaultAssertion:
3374 // "default" expression=Call (":" range=Expression)? FULL_STOP;
3375 public DefaultAssertionElements getDefaultAssertionAccess() {
3376 return pDefaultAssertion;
3004 } 3377 }
3005 3378
3006 public ParserRule getUnnamedErrorPrediateDefinitionRule() { 3379 public ParserRule getDefaultAssertionRule() {
3007 return getUnnamedErrorPrediateDefinitionAccess().getRule(); 3380 return getDefaultAssertionAccess().getRule();
3008 } 3381 }
3009 3382
3010 //DefaultDefinition: 3383 //FunctionDefinition:
3011 // "default" head=Call ":" range=Expression; 3384 // resultType=[Symbol|QualifiedName] head=Call ":=" body=Expression FULL_STOP;
3012 public DefaultDefinitionElements getDefaultDefinitionAccess() { 3385 public FunctionDefinitionElements getFunctionDefinitionAccess() {
3013 return pDefaultDefinition; 3386 return pFunctionDefinition;
3014 } 3387 }
3015 3388
3016 public ParserRule getDefaultDefinitionRule() { 3389 public ParserRule getFunctionDefinitionRule() {
3017 return getDefaultDefinitionAccess().getRule(); 3390 return getFunctionDefinitionAccess().getRule();
3018 } 3391 }
3019 3392
3020 //MetricDefinition: 3393 //TypeReference:
3021 // type=[NamedElement|QualifiedName] head=Call "=" body=Expression; 3394 // type=[Symbol|QualifiedName] forceObjectType?="object"?;
3022 public MetricDefinitionElements getMetricDefinitionAccess() { 3395 public TypeReferenceElements getTypeReferenceAccess() {
3023 return pMetricDefinition; 3396 return pTypeReference;
3024 } 3397 }
3025 3398
3026 public ParserRule getMetricDefinitionRule() { 3399 public ParserRule getTypeReferenceRule() {
3027 return getMetricDefinitionAccess().getRule(); 3400 return getTypeReferenceAccess().getRule();
3028 } 3401 }
3029 3402
3030 //ExternPredicateDefinition: 3403 //enum AttributeKind:
3031 // "extern" name=QualifiedName argumentList=ArgumentList; 3404 // FUNCTIONAL="functional" | ERROR="error" | ROOT="root" | CONTAINMENT="containment";
3032 public ExternPredicateDefinitionElements getExternPredicateDefinitionAccess() { 3405 public AttributeKindElements getAttributeKindAccess() {
3033 return pExternPredicateDefinition; 3406 return eAttributeKind;
3034 } 3407 }
3035 3408
3036 public ParserRule getExternPredicateDefinitionRule() { 3409 public EnumRule getAttributeKindRule() {
3037 return getExternPredicateDefinitionAccess().getRule(); 3410 return getAttributeKindAccess().getRule();
3038 } 3411 }
3039 3412
3040 //ExternMetricDefinition: 3413 //Attribute:
3041 // "extern" type=[NamedElement|QualifiedName] name=QualifiedName argumentList=ArgumentList; 3414 // kind=AttributeKind target=[Symbol|QualifiedName] FULL_STOP;
3042 public ExternMetricDefinitionElements getExternMetricDefinitionAccess() { 3415 public AttributeElements getAttributeAccess() {
3043 return pExternMetricDefinition; 3416 return pAttribute;
3044 } 3417 }
3045 3418
3046 public ParserRule getExternMetricDefinitionRule() { 3419 public ParserRule getAttributeRule() {
3047 return getExternMetricDefinitionAccess().getRule(); 3420 return getAttributeAccess().getRule();
3048 } 3421 }
3049 3422
3050 //ExternAggregatorDefinition: 3423 //ExternDeclaration:
3051 // "extern" type=[NamedElement|QualifiedName] name=QualifiedName "{" inputType=[NamedElement|QualifiedName] "..." "}"; 3424 // ExternPredicateDeclaration | ExternFunctionDeclaration | ExternAggregationOperatorDeclaration |
3052 public ExternAggregatorDefinitionElements getExternAggregatorDefinitionAccess() { 3425 // ExternDatatypeDeclaration;
3053 return pExternAggregatorDefinition; 3426 public ExternDeclarationElements getExternDeclarationAccess() {
3427 return pExternDeclaration;
3054 } 3428 }
3055 3429
3056 public ParserRule getExternAggregatorDefinitionRule() { 3430 public ParserRule getExternDeclarationRule() {
3057 return getExternAggregatorDefinitionAccess().getRule(); 3431 return getExternDeclarationAccess().getRule();
3058 } 3432 }
3059 3433
3060 //ExternDatatypeDefinition: 3434 //ExternPredicateDeclaration:
3061 // "extern" "datatype" name=QualifiedName ("extends" supertypes+=[NamedElement|QualifiedName] ("," 3435 // "extern" (functional?="functional"? & error?="error"?) name=QualifiedName argumentList=ArgumentList FULL_STOP;
3062 // supertypes+=[NamedElement|QualifiedName])*); 3436 public ExternPredicateDeclarationElements getExternPredicateDeclarationAccess() {
3063 public ExternDatatypeDefinitionElements getExternDatatypeDefinitionAccess() { 3437 return pExternPredicateDeclaration;
3064 return pExternDatatypeDefinition;
3065 } 3438 }
3066 3439
3067 public ParserRule getExternDatatypeDefinitionRule() { 3440 public ParserRule getExternPredicateDeclarationRule() {
3068 return getExternDatatypeDefinitionAccess().getRule(); 3441 return getExternPredicateDeclarationAccess().getRule();
3069 } 3442 }
3070 3443
3071 //Variable: 3444 //ExternFunctionDeclaration:
3072 // type=[NamedElement|QualifiedName]? name=ID; 3445 // "extern" resultType=[Symbol|QualifiedName] name=QualifiedName argumentList=ArgumentList FULL_STOP;
3073 public VariableElements getVariableAccess() { 3446 public ExternFunctionDeclarationElements getExternFunctionDeclarationAccess() {
3074 return pVariable; 3447 return pExternFunctionDeclaration;
3075 } 3448 }
3076 3449
3077 public ParserRule getVariableRule() { 3450 public ParserRule getExternFunctionDeclarationRule() {
3078 return getVariableAccess().getRule(); 3451 return getExternFunctionDeclarationAccess().getRule();
3452 }
3453
3454 //ExternAggregationOperatorDeclaration:
3455 // "extern" resultType=[Symbol|QualifiedName] name=QualifiedName "{" argumentType=[Symbol|QualifiedName] "..." "}"
3456 // FULL_STOP;
3457 public ExternAggregationOperatorDeclarationElements getExternAggregationOperatorDeclarationAccess() {
3458 return pExternAggregationOperatorDeclaration;
3459 }
3460
3461 public ParserRule getExternAggregationOperatorDeclarationRule() {
3462 return getExternAggregationOperatorDeclarationAccess().getRule();
3463 }
3464
3465 //ExternDatatypeDeclaration:
3466 // "extern" "datatype" name=QualifiedName FULL_STOP;
3467 public ExternDatatypeDeclarationElements getExternDatatypeDeclarationAccess() {
3468 return pExternDatatypeDeclaration;
3469 }
3470
3471 public ParserRule getExternDatatypeDeclarationRule() {
3472 return getExternDatatypeDeclarationAccess().getRule();
3079 } 3473 }
3080 3474
3081 //Expression: 3475 //Expression:
3082 // IfElse | Let | ImplicationExpression; 3476 // ConditionalExpression | LetExpression | DisjunctiveExpression ({Forall.condition=current} "=>"
3477 // body=DisjunctiveExpression)?;
3083 public ExpressionElements getExpressionAccess() { 3478 public ExpressionElements getExpressionAccess() {
3084 return pExpression; 3479 return pExpression;
3085 } 3480 }
@@ -3088,28 +3483,28 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3088 return getExpressionAccess().getRule(); 3483 return getExpressionAccess().getRule();
3089 } 3484 }
3090 3485
3091 //IfElse: 3486 //ConditionalExpression:
3092 // "if" condition=Expression "then" then=Expression "else" else=Expression; 3487 // "if" condition=DisjunctiveExpression "then" then=Expression "else" else=Expression;
3093 public IfElseElements getIfElseAccess() { 3488 public ConditionalExpressionElements getConditionalExpressionAccess() {
3094 return pIfElse; 3489 return pConditionalExpression;
3095 } 3490 }
3096 3491
3097 public ParserRule getIfElseRule() { 3492 public ParserRule getConditionalExpressionRule() {
3098 return getIfElseAccess().getRule(); 3493 return getConditionalExpressionAccess().getRule();
3099 } 3494 }
3100 3495
3101 //Let: 3496 //LetExpression:
3102 // "let" bindings+=LetBinding ("," bindings+=LetBinding)* "in" body=Expression; 3497 // "let" bindings+=LetBinding ("," bindings+=LetBinding)* "in" body=Expression;
3103 public LetElements getLetAccess() { 3498 public LetExpressionElements getLetExpressionAccess() {
3104 return pLet; 3499 return pLetExpression;
3105 } 3500 }
3106 3501
3107 public ParserRule getLetRule() { 3502 public ParserRule getLetExpressionRule() {
3108 return getLetAccess().getRule(); 3503 return getLetExpressionAccess().getRule();
3109 } 3504 }
3110 3505
3111 //LetBinding: 3506 //LetBinding:
3112 // variable=Variable "=" value=AdditiveExpression; 3507 // type=[Symbol|QualifiedName]? name=ID "=" value=AdditiveExpression;
3113 public LetBindingElements getLetBindingAccess() { 3508 public LetBindingElements getLetBindingAccess() {
3114 return pLetBinding; 3509 return pLetBinding;
3115 } 3510 }
@@ -3118,26 +3513,6 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3118 return getLetBindingAccess().getRule(); 3513 return getLetBindingAccess().getRule();
3119 } 3514 }
3120 3515
3121 //enum ImplicationOperator returns BinaryOperator:
3122 // IMPLIES="=>";
3123 public ImplicationOperatorElements getImplicationOperatorAccess() {
3124 return eImplicationOperator;
3125 }
3126
3127 public EnumRule getImplicationOperatorRule() {
3128 return getImplicationOperatorAccess().getRule();
3129 }
3130
3131 //ImplicationExpression Expression:
3132 // DisjunctiveExpression ({BinaryExpression.left=current} op=ImplicationOperator right=ImplicationExpression)?;
3133 public ImplicationExpressionElements getImplicationExpressionAccess() {
3134 return pImplicationExpression;
3135 }
3136
3137 public ParserRule getImplicationExpressionRule() {
3138 return getImplicationExpressionAccess().getRule();
3139 }
3140
3141 //DisjunctiveExpression Expression: 3516 //DisjunctiveExpression Expression:
3142 // ConjunctiveExpression ({Disjunction.children+=current} (";" children+=ConjunctiveExpression)+ | 3517 // ConjunctiveExpression ({Disjunction.children+=current} (";" children+=ConjunctiveExpression)+ |
3143 // {Case.condition=current} "->" body=ConjunctiveExpression {Switch.cases+=current} (";" cases+=Case)*)?; 3518 // {Case.condition=current} "->" body=ConjunctiveExpression {Switch.cases+=current} (";" cases+=Case)*)?;
@@ -3170,7 +3545,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3170 } 3545 }
3171 3546
3172 //enum ComparisonOperator returns BinaryOperator: 3547 //enum ComparisonOperator returns BinaryOperator:
3173 // EQ="==" | NOT_EQ="!=" | LESS="<" | LESS_EQ="<=" | GREATER=">" | GREATER_EQ=">=" | IN="in"; 3548 // EQUALS="==" | NOT_EQUALS="!=" | LESS="<" | LESS_EQUALS="<=" | GREATER=">" | GREATER_EQUALS=">=" | IN="in";
3174 public ComparisonOperatorElements getComparisonOperatorAccess() { 3549 public ComparisonOperatorElements getComparisonOperatorAccess() {
3175 return eComparisonOperator; 3550 return eComparisonOperator;
3176 } 3551 }
@@ -3180,7 +3555,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3180 } 3555 }
3181 3556
3182 //ComparisonExpression Expression: 3557 //ComparisonExpression Expression:
3183 // AdditiveExpression ({Comparison.left=current} op=ComparisonOperator right=AdditiveExpression)?; 3558 // AdditiveExpression ({BinaryExpression.left=current} op=ComparisonOperator right=AdditiveExpression)?;
3184 public ComparisonExpressionElements getComparisonExpressionAccess() { 3559 public ComparisonExpressionElements getComparisonExpressionAccess() {
3185 return pComparisonExpression; 3560 return pComparisonExpression;
3186 } 3561 }
@@ -3190,7 +3565,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3190 } 3565 }
3191 3566
3192 //enum AdditiveBinaryOperator returns BinaryOperator: 3567 //enum AdditiveBinaryOperator returns BinaryOperator:
3193 // ADD="+" | SUB="-"; 3568 // PLUS="+" | MINUS="-";
3194 public AdditiveBinaryOperatorElements getAdditiveBinaryOperatorAccess() { 3569 public AdditiveBinaryOperatorElements getAdditiveBinaryOperatorAccess() {
3195 return eAdditiveBinaryOperator; 3570 return eAdditiveBinaryOperator;
3196 } 3571 }
@@ -3210,7 +3585,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3210 } 3585 }
3211 3586
3212 //enum MultiplicativeBinaryOperator returns BinaryOperator: 3587 //enum MultiplicativeBinaryOperator returns BinaryOperator:
3213 // MUL="*" | DIV="/"; 3588 // MULTIPLY="*" | DIVIDE="/";
3214 public MultiplicativeBinaryOperatorElements getMultiplicativeBinaryOperatorAccess() { 3589 public MultiplicativeBinaryOperatorElements getMultiplicativeBinaryOperatorAccess() {
3215 return eMultiplicativeBinaryOperator; 3590 return eMultiplicativeBinaryOperator;
3216 } 3591 }
@@ -3250,7 +3625,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3250 } 3625 }
3251 3626
3252 //CastExpression Expression: 3627 //CastExpression Expression:
3253 // UnaryExpression ({CastExpression.body=current} "as" type=[NamedElement|QualifiedName])?; 3628 // UnaryExpression ({CastExpression.body=current} "as" targetType=[Symbol|QualifiedName])?;
3254 public CastExpressionElements getCastExpressionAccess() { 3629 public CastExpressionElements getCastExpressionAccess() {
3255 return pCastExpression; 3630 return pCastExpression;
3256 } 3631 }
@@ -3259,18 +3634,18 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3259 return getCastExpressionAccess().getRule(); 3634 return getCastExpressionAccess().getRule();
3260 } 3635 }
3261 3636
3262 //enum UnaryOp: 3637 //enum UnaryOperator:
3263 // NEG="!" | PLUS="+" | MINUS="-" | MAY="may" | MUST="must" | CURRENT="current"; 3638 // NOT="!" | PLUS="+" | MINUS="-" | MAYBE="?";
3264 public UnaryOpElements getUnaryOpAccess() { 3639 public UnaryOperatorElements getUnaryOperatorAccess() {
3265 return eUnaryOp; 3640 return eUnaryOperator;
3266 } 3641 }
3267 3642
3268 public EnumRule getUnaryOpRule() { 3643 public EnumRule getUnaryOperatorRule() {
3269 return getUnaryOpAccess().getRule(); 3644 return getUnaryOperatorAccess().getRule();
3270 } 3645 }
3271 3646
3272 //UnaryExpression Expression: 3647 //UnaryExpression Expression:
3273 // AggregationExpression | {UnaryExpression} op=UnaryOp body=AggregationExpression; 3648 // BracedAggregateExpression | {UnaryExpression} op=UnaryOperator body=BracedAggregateExpression;
3274 public UnaryExpressionElements getUnaryExpressionAccess() { 3649 public UnaryExpressionElements getUnaryExpressionAccess() {
3275 return pUnaryExpression; 3650 return pUnaryExpression;
3276 } 3651 }
@@ -3279,48 +3654,18 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3279 return getUnaryExpressionAccess().getRule(); 3654 return getUnaryExpressionAccess().getRule();
3280 } 3655 }
3281 3656
3282 //AggregationExpression Expression: 3657 //BracedAggregateExpression Expression:
3283 // AtomicExpression | QuantifiedExpression | Aggregation; 3658 // AtomicExpression | Aggregation | Count;
3284 public AggregationExpressionElements getAggregationExpressionAccess() { 3659 public BracedAggregateExpressionElements getBracedAggregateExpressionAccess() {
3285 return pAggregationExpression; 3660 return pBracedAggregateExpression;
3286 }
3287
3288 public ParserRule getAggregationExpressionRule() {
3289 return getAggregationExpressionAccess().getRule();
3290 }
3291
3292 //LocalVariables:
3293 // {LocalVariables} "[" (variables+=Variable ("," variables+=Variable)*)? "]";
3294 public LocalVariablesElements getLocalVariablesAccess() {
3295 return pLocalVariables;
3296 }
3297
3298 public ParserRule getLocalVariablesRule() {
3299 return getLocalVariablesAccess().getRule();
3300 }
3301
3302 //enum Quantifier:
3303 // EXISTS="exists" | FORALL="forall" | COUNT="count";
3304 public QuantifierElements getQuantifierAccess() {
3305 return eQuantifier;
3306 } 3661 }
3307 3662
3308 public EnumRule getQuantifierRule() { 3663 public ParserRule getBracedAggregateExpressionRule() {
3309 return getQuantifierAccess().getRule(); 3664 return getBracedAggregateExpressionAccess().getRule();
3310 }
3311
3312 //QuantifiedExpression:
3313 // quantifier=Quantifier localVariables=LocalVariables? "{" body=Expression "}";
3314 public QuantifiedExpressionElements getQuantifiedExpressionAccess() {
3315 return pQuantifiedExpression;
3316 }
3317
3318 public ParserRule getQuantifiedExpressionRule() {
3319 return getQuantifiedExpressionAccess().getRule();
3320 } 3665 }
3321 3666
3322 //Aggregation: 3667 //Aggregation:
3323 // op=[NamedElement|QualifiedName] localVariables=LocalVariables? "{" body=Expression ("|" condition=Expression)? "}"; 3668 // op=[Symbol|QualifiedName] "{" value=Expression "|" condition=Expression "}";
3324 public AggregationElements getAggregationAccess() { 3669 public AggregationElements getAggregationAccess() {
3325 return pAggregation; 3670 return pAggregation;
3326 } 3671 }
@@ -3329,6 +3674,16 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3329 return getAggregationAccess().getRule(); 3674 return getAggregationAccess().getRule();
3330 } 3675 }
3331 3676
3677 //Count:
3678 // "count" "{" condition=Expression "}";
3679 public CountElements getCountAccess() {
3680 return pCount;
3681 }
3682
3683 public ParserRule getCountRule() {
3684 return getCountAccess().getRule();
3685 }
3686
3332 //AtomicExpression Expression: 3687 //AtomicExpression Expression:
3333 // Reference | Call | Interval | Literal | "(" Expression ")"; 3688 // Reference | Call | Interval | Literal | "(" Expression ")";
3334 public AtomicExpressionElements getAtomicExpressionAccess() { 3689 public AtomicExpressionElements getAtomicExpressionAccess() {
@@ -3340,8 +3695,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3340 } 3695 }
3341 3696
3342 //Call: 3697 //Call:
3343 // functor=Reference (transitiveClosure?=TRANSITIVE_CLOSURE | reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE)? 3698 // functor=Reference argumentList=ArgumentList;
3344 // argumentList=ArgumentList;
3345 public CallElements getCallAccess() { 3699 public CallElements getCallAccess() {
3346 return pCall; 3700 return pCall;
3347 } 3701 }
@@ -3361,7 +3715,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3361 } 3715 }
3362 3716
3363 //Argument: 3717 //Argument:
3364 // ExpressionArgument | StarArgument | TypedArgument | TypedStarArgument; 3718 // ExpressionArgument | StarArgument | TypedVariableArgument | TypedStarArgument;
3365 public ArgumentElements getArgumentAccess() { 3719 public ArgumentElements getArgumentAccess() {
3366 return pArgument; 3720 return pArgument;
3367 } 3721 }
@@ -3371,7 +3725,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3371 } 3725 }
3372 3726
3373 //ExpressionArgument: 3727 //ExpressionArgument:
3374 // body=ComparisonExpression; 3728 // expression=ComparisonExpression;
3375 public ExpressionArgumentElements getExpressionArgumentAccess() { 3729 public ExpressionArgumentElements getExpressionArgumentAccess() {
3376 return pExpressionArgument; 3730 return pExpressionArgument;
3377 } 3731 }
@@ -3390,18 +3744,18 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3390 return getStarArgumentAccess().getRule(); 3744 return getStarArgumentAccess().getRule();
3391 } 3745 }
3392 3746
3393 //TypedArgument: 3747 //TypedVariableArgument:
3394 // type=[NamedElement|QualifiedName] variable=[NamedElement|QualifiedName]; 3748 // typeReference=TypeReference name=ID;
3395 public TypedArgumentElements getTypedArgumentAccess() { 3749 public TypedVariableArgumentElements getTypedVariableArgumentAccess() {
3396 return pTypedArgument; 3750 return pTypedVariableArgument;
3397 } 3751 }
3398 3752
3399 public ParserRule getTypedArgumentRule() { 3753 public ParserRule getTypedVariableArgumentRule() {
3400 return getTypedArgumentAccess().getRule(); 3754 return getTypedVariableArgumentAccess().getRule();
3401 } 3755 }
3402 3756
3403 //TypedStarArgument: 3757 //TypedStarArgument:
3404 // type=[NamedElement|QualifiedName] "*"; 3758 // typeReference=TypeReference "*";
3405 public TypedStarArgumentElements getTypedStarArgumentAccess() { 3759 public TypedStarArgumentElements getTypedStarArgumentAccess() {
3406 return pTypedStarArgument; 3760 return pTypedStarArgument;
3407 } 3761 }
@@ -3411,7 +3765,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3411 } 3765 }
3412 3766
3413 //Reference: 3767 //Reference:
3414 // referred=[NamedElement|QualifiedName]; 3768 // components+=PathComponent ("." components+=PathComponent)*;
3415 public ReferenceElements getReferenceAccess() { 3769 public ReferenceElements getReferenceAccess() {
3416 return pReference; 3770 return pReference;
3417 } 3771 }
@@ -3420,8 +3774,19 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3420 return getReferenceAccess().getRule(); 3774 return getReferenceAccess().getRule();
3421 } 3775 }
3422 3776
3777 //PathComponent:
3778 // inverse?="~"? symbol=[Symbol|QualifiedName] (transitiveClosure?=TRANSITIVE_CLOSURE |
3779 // reflexiveTransitiveClosure?=REFLEXIVE_TRANSITIVE_CLOSURE)?;
3780 public PathComponentElements getPathComponentAccess() {
3781 return pPathComponent;
3782 }
3783
3784 public ParserRule getPathComponentRule() {
3785 return getPathComponentAccess().getRule();
3786 }
3787
3423 //Interval: 3788 //Interval:
3424 // "[" lowerBound=Expression ".." upperBound=Expression "]"; 3789 // "[" lowerBound=AdditiveExpression "," upperBound=AdditiveExpression "]";
3425 public IntervalElements getIntervalAccess() { 3790 public IntervalElements getIntervalAccess() {
3426 return pInterval; 3791 return pInterval;
3427 } 3792 }
@@ -3431,7 +3796,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3431 } 3796 }
3432 3797
3433 //Literal: 3798 //Literal:
3434 // LogicLiteral | NumericLiteral | InfinityLiteral | EmptyIntervalLiteral | StringLiteral; 3799 // LogicLiteral | IntLiteral | RealLiteral | InfinityLiteral | EmptyLiteral | StringLiteral;
3435 public LiteralElements getLiteralAccess() { 3800 public LiteralElements getLiteralAccess() {
3436 return pLiteral; 3801 return pLiteral;
3437 } 3802 }
@@ -3460,14 +3825,24 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3460 return getLogicLiteralAccess().getRule(); 3825 return getLogicLiteralAccess().getRule();
3461 } 3826 }
3462 3827
3463 //NumericLiteral: 3828 //IntLiteral:
3829 // value=INT;
3830 public IntLiteralElements getIntLiteralAccess() {
3831 return pIntLiteral;
3832 }
3833
3834 public ParserRule getIntLiteralRule() {
3835 return getIntLiteralAccess().getRule();
3836 }
3837
3838 //RealLiteral:
3464 // value=Real; 3839 // value=Real;
3465 public NumericLiteralElements getNumericLiteralAccess() { 3840 public RealLiteralElements getRealLiteralAccess() {
3466 return pNumericLiteral; 3841 return pRealLiteral;
3467 } 3842 }
3468 3843
3469 public ParserRule getNumericLiteralRule() { 3844 public ParserRule getRealLiteralRule() {
3470 return getNumericLiteralAccess().getRule(); 3845 return getRealLiteralAccess().getRule();
3471 } 3846 }
3472 3847
3473 //InfinityLiteral: 3848 //InfinityLiteral:
@@ -3480,14 +3855,14 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3480 return getInfinityLiteralAccess().getRule(); 3855 return getInfinityLiteralAccess().getRule();
3481 } 3856 }
3482 3857
3483 //EmptyIntervalLiteral: 3858 //EmptyLiteral:
3484 // {EmptyIntervalLiteral} "empty"; 3859 // {EmptyLiteral} "empty";
3485 public EmptyIntervalLiteralElements getEmptyIntervalLiteralAccess() { 3860 public EmptyLiteralElements getEmptyLiteralAccess() {
3486 return pEmptyIntervalLiteral; 3861 return pEmptyLiteral;
3487 } 3862 }
3488 3863
3489 public ParserRule getEmptyIntervalLiteralRule() { 3864 public ParserRule getEmptyLiteralRule() {
3490 return getEmptyIntervalLiteralAccess().getRule(); 3865 return getEmptyLiteralAccess().getRule();
3491 } 3866 }
3492 3867
3493 //StringLiteral: 3868 //StringLiteral:
@@ -3500,31 +3875,30 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3500 return getStringLiteralAccess().getRule(); 3875 return getStringLiteralAccess().getRule();
3501 } 3876 }
3502 3877
3503 //ClassDefinition: 3878 //ClassDeclaration:
3504 // abstract?="abstract"? "class" name=ID ("extends" superclasses+=[NamedElement|QualifiedName] ("," 3879 // (abstract?="abstract"? & root?="root"?) "class" name=ID ("extends" supertypes+=[Symbol|QualifiedName] (","
3505 // superclasses+=[NamedElement|QualifiedName])*)? 3880 // supertypes+=[Symbol|QualifiedName])*)? ("{" fields+=Field* "}" | FULL_STOP);
3506 // "{" members+=MemberDefinition* "}"; 3881 public ClassDeclarationElements getClassDeclarationAccess() {
3507 public ClassDefinitionElements getClassDefinitionAccess() { 3882 return pClassDeclaration;
3508 return pClassDefinition;
3509 } 3883 }
3510 3884
3511 public ParserRule getClassDefinitionRule() { 3885 public ParserRule getClassDeclarationRule() {
3512 return getClassDefinitionAccess().getRule(); 3886 return getClassDeclarationAccess().getRule();
3513 } 3887 }
3514 3888
3515 //MemberDefinition: 3889 //Field:
3516 // containment?="contains"? type=[NamedElement|QualifiedName] multiplicity=Multiplicity? name=ID ("opposite" 3890 // (containment?="contains" | crossReference?="refers")? type=[Symbol|QualifiedName] multiplicity=Multiplicity?
3517 // opposite=[NamedElement|QualifiedName])? ";"?; 3891 // name=ID ("opposite" opposite=[Symbol|QualifiedName])? ";"?;
3518 public MemberDefinitionElements getMemberDefinitionAccess() { 3892 public FieldElements getFieldAccess() {
3519 return pMemberDefinition; 3893 return pField;
3520 } 3894 }
3521 3895
3522 public ParserRule getMemberDefinitionRule() { 3896 public ParserRule getFieldRule() {
3523 return getMemberDefinitionAccess().getRule(); 3897 return getFieldAccess().getRule();
3524 } 3898 }
3525 3899
3526 //Multiplicity: 3900 //Multiplicity:
3527 // ManyMultiplicity | ExactMultiplicity | BoundedMultiplicity; 3901 // UnboundedMultiplicity | ExactMultiplicity | BoundedMultiplicity;
3528 public MultiplicityElements getMultiplicityAccess() { 3902 public MultiplicityElements getMultiplicityAccess() {
3529 return pMultiplicity; 3903 return pMultiplicity;
3530 } 3904 }
@@ -3533,18 +3907,18 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3533 return getMultiplicityAccess().getRule(); 3907 return getMultiplicityAccess().getRule();
3534 } 3908 }
3535 3909
3536 //ManyMultiplicity: 3910 //UnboundedMultiplicity:
3537 // {ManyMultiplicity} "[" "]"; 3911 // {UnboundedMultiplicity} "[" "]";
3538 public ManyMultiplicityElements getManyMultiplicityAccess() { 3912 public UnboundedMultiplicityElements getUnboundedMultiplicityAccess() {
3539 return pManyMultiplicity; 3913 return pUnboundedMultiplicity;
3540 } 3914 }
3541 3915
3542 public ParserRule getManyMultiplicityRule() { 3916 public ParserRule getUnboundedMultiplicityRule() {
3543 return getManyMultiplicityAccess().getRule(); 3917 return getUnboundedMultiplicityAccess().getRule();
3544 } 3918 }
3545 3919
3546 //ExactMultiplicity: 3920 //ExactMultiplicity:
3547 // "[" multiplicity=UpperMultiplicty "]"; 3921 // "[" value=UpperMultiplicty "]";
3548 public ExactMultiplicityElements getExactMultiplicityAccess() { 3922 public ExactMultiplicityElements getExactMultiplicityAccess() {
3549 return pExactMultiplicity; 3923 return pExactMultiplicity;
3550 } 3924 }
@@ -3554,7 +3928,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3554 } 3928 }
3555 3929
3556 //BoundedMultiplicity: 3930 //BoundedMultiplicity:
3557 // "[" lowerBound=INT ".." upperBound=UpperMultiplicty "]"; 3931 // "[" lowerBound=INT "," upperBound=UpperMultiplicty "]";
3558 public BoundedMultiplicityElements getBoundedMultiplicityAccess() { 3932 public BoundedMultiplicityElements getBoundedMultiplicityAccess() {
3559 return pBoundedMultiplicity; 3933 return pBoundedMultiplicity;
3560 } 3934 }
@@ -3563,50 +3937,70 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3563 return getBoundedMultiplicityAccess().getRule(); 3937 return getBoundedMultiplicityAccess().getRule();
3564 } 3938 }
3565 3939
3566 //ScopeDefinition: 3940 //EnumDeclaration:
3567 // ExactScopeDefinition | BoundedScopeDefinition | LowerBoundedScopeDefinition; 3941 // "enum" name=ID ("{" (literals+=EnumLiteral (","? literals+=EnumLiteral)*)? "}" | FULL_STOP);
3568 public ScopeDefinitionElements getScopeDefinitionAccess() { 3942 public EnumDeclarationElements getEnumDeclarationAccess() {
3569 return pScopeDefinition; 3943 return pEnumDeclaration;
3570 } 3944 }
3571 3945
3572 public ParserRule getScopeDefinitionRule() { 3946 public ParserRule getEnumDeclarationRule() {
3573 return getScopeDefinitionAccess().getRule(); 3947 return getEnumDeclarationAccess().getRule();
3574 } 3948 }
3575 3949
3576 //ExactScopeDefinition: 3950 //EnumLiteral:
3577 // "scope" type=[NamedElement|QualifiedName] "==" exactScope=INT; 3951 // name=ID;
3578 public ExactScopeDefinitionElements getExactScopeDefinitionAccess() { 3952 public EnumLiteralElements getEnumLiteralAccess() {
3579 return pExactScopeDefinition; 3953 return pEnumLiteral;
3580 } 3954 }
3581 3955
3582 public ParserRule getExactScopeDefinitionRule() { 3956 public ParserRule getEnumLiteralRule() {
3583 return getExactScopeDefinitionAccess().getRule(); 3957 return getEnumLiteralAccess().getRule();
3584 } 3958 }
3585 3959
3586 //BoundedScopeDefinition: 3960 //ScopeDeclaration:
3587 // "scope" ((lowerBound=INT "<=")? type=[NamedElement|QualifiedName] "<=" upperBound=INT | upperBound=INT ">=" 3961 // ExactScope | BoundedScope | LowerBoundedScope;
3588 // type=[NamedElement|QualifiedName] (">=" lowerBound=INT)?); 3962 public ScopeDeclarationElements getScopeDeclarationAccess() {
3589 public BoundedScopeDefinitionElements getBoundedScopeDefinitionAccess() { 3963 return pScopeDeclaration;
3590 return pBoundedScopeDefinition;
3591 } 3964 }
3592 3965
3593 public ParserRule getBoundedScopeDefinitionRule() { 3966 public ParserRule getScopeDeclarationRule() {
3594 return getBoundedScopeDefinitionAccess().getRule(); 3967 return getScopeDeclarationAccess().getRule();
3595 } 3968 }
3596 3969
3597 //LowerBoundedScopeDefinition: 3970 //ExactScope:
3598 // "scope" (lowerBound=INT "<=" type=[NamedElement|QualifiedName] | type=[NamedElement|QualifiedName] ">=" 3971 // "scope" type=[Symbol|QualifiedName] "==" size=INT FULL_STOP;
3599 // lowerBound=INT); 3972 public ExactScopeElements getExactScopeAccess() {
3600 public LowerBoundedScopeDefinitionElements getLowerBoundedScopeDefinitionAccess() { 3973 return pExactScope;
3601 return pLowerBoundedScopeDefinition;
3602 } 3974 }
3603 3975
3604 public ParserRule getLowerBoundedScopeDefinitionRule() { 3976 public ParserRule getExactScopeRule() {
3605 return getLowerBoundedScopeDefinitionAccess().getRule(); 3977 return getExactScopeAccess().getRule();
3978 }
3979
3980 //BoundedScope:
3981 // "scope" ((lowerBound=INT "<=")? type=[Symbol|QualifiedName] "<=" upperBound=INT | upperBound=INT ">="
3982 // type=[Symbol|QualifiedName] (">=" lowerBound=INT)?) FULL_STOP;
3983 public BoundedScopeElements getBoundedScopeAccess() {
3984 return pBoundedScope;
3985 }
3986
3987 public ParserRule getBoundedScopeRule() {
3988 return getBoundedScopeAccess().getRule();
3989 }
3990
3991 //LowerBoundedScope:
3992 // "scope" (lowerBound=INT "<=" type=[Symbol|QualifiedName] | type=[Symbol|QualifiedName] ">=" lowerBound=INT)
3993 // FULL_STOP;
3994 public LowerBoundedScopeElements getLowerBoundedScopeAccess() {
3995 return pLowerBoundedScope;
3996 }
3997
3998 public ParserRule getLowerBoundedScopeRule() {
3999 return getLowerBoundedScopeAccess().getRule();
3606 } 4000 }
3607 4001
3608 //enum ObjectiveKind: 4002 //enum ObjectiveKind:
3609 // MINIMIZE="minimize" | MAXIMIZE="maximize"; 4003 // MINIMIZATION="minimize" | MAXIMIZATION="maximize";
3610 public ObjectiveKindElements getObjectiveKindAccess() { 4004 public ObjectiveKindElements getObjectiveKindAccess() {
3611 return eObjectiveKind; 4005 return eObjectiveKind;
3612 } 4006 }
@@ -3615,14 +4009,14 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3615 return getObjectiveKindAccess().getRule(); 4009 return getObjectiveKindAccess().getRule();
3616 } 4010 }
3617 4011
3618 //ObjectiveDefinition: 4012 //ObjectiveDeclaration:
3619 // kind=ObjectiveKind objective=Expression; 4013 // kind=ObjectiveKind objective=Expression FULL_STOP;
3620 public ObjectiveDefinitionElements getObjectiveDefinitionAccess() { 4014 public ObjectiveDeclarationElements getObjectiveDeclarationAccess() {
3621 return pObjectiveDefinition; 4015 return pObjectiveDeclaration;
3622 } 4016 }
3623 4017
3624 public ParserRule getObjectiveDefinitionRule() { 4018 public ParserRule getObjectiveDeclarationRule() {
3625 return getObjectiveDefinitionAccess().getRule(); 4019 return getObjectiveDeclarationAccess().getRule();
3626 } 4020 }
3627 4021
3628 //UpperMultiplicty ecore::EInt: 4022 //UpperMultiplicty ecore::EInt:
@@ -3636,7 +4030,7 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3636 } 4030 }
3637 4031
3638 //Real ecore::EBigDecimal hidden(): 4032 //Real ecore::EBigDecimal hidden():
3639 // INT ("." INT)?; 4033 // INT "." INT;
3640 public RealElements getRealAccess() { 4034 public RealElements getRealAccess() {
3641 return pReal; 4035 return pReal;
3642 } 4036 }
@@ -3645,8 +4039,18 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
3645 return getRealAccess().getRule(); 4039 return getRealAccess().getRule();
3646 } 4040 }
3647 4041
4042 //QualifiedNameSegment:
4043 // ID | QUOTED_ID | "object";
4044 public QualifiedNameSegmentElements getQualifiedNameSegmentAccess() {
4045 return pQualifiedNameSegment;
4046 }
4047
4048 public ParserRule getQualifiedNameSegmentRule() {
4049 return getQualifiedNameSegmentAccess().getRule();
4050 }
4051
3648 //QualifiedName hidden(): 4052 //QualifiedName hidden():
3649 // ID ("." ID)* | QUOTED_ID; 4053 // QualifiedNameSegment ("::" QualifiedNameSegment)*;
3650 public QualifiedNameElements getQualifiedNameAccess() { 4054 public QualifiedNameElements getQualifiedNameAccess() {
3651 return pQualifiedName; 4055 return pQualifiedName;
3652 } 4056 }