aboutsummaryrefslogtreecommitdiffstats
path: root/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.g
diff options
context:
space:
mode:
Diffstat (limited to 'Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.g')
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.g2871
1 files changed, 1728 insertions, 1143 deletions
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 )