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.g3839
1 files changed, 3839 insertions, 0 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
new file mode 100644
index 00000000..6cd0341f
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.g
@@ -0,0 +1,3839 @@
1/*
2 * generated by Xtext 2.21.0
3 */
4parser grammar InternalSolverLanguageParser;
5
6options {
7 tokenVocab=InternalSolverLanguageLexer;
8 superClass=AbstractInternalAntlrParser;
9}
10
11@header {
12package org.eclipse.viatra.solver.language.parser.antlr.internal;
13
14import org.eclipse.xtext.*;
15import org.eclipse.xtext.parser.*;
16import org.eclipse.xtext.parser.impl.*;
17import org.eclipse.emf.ecore.util.EcoreUtil;
18import org.eclipse.emf.ecore.EObject;
19import org.eclipse.emf.common.util.Enumerator;
20import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
21import org.eclipse.xtext.parser.antlr.XtextTokenStream;
22import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
23import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
24import org.eclipse.viatra.solver.language.services.SolverLanguageGrammarAccess;
25
26}
27
28@members {
29
30 private SolverLanguageGrammarAccess grammarAccess;
31
32 public InternalSolverLanguageParser(TokenStream input, SolverLanguageGrammarAccess grammarAccess) {
33 this(input);
34 this.grammarAccess = grammarAccess;
35 registerRules(grammarAccess.getGrammar());
36 }
37
38 @Override
39 protected String getFirstRuleName() {
40 return "Problem";
41 }
42
43 @Override
44 protected SolverLanguageGrammarAccess getGrammarAccess() {
45 return grammarAccess;
46 }
47
48}
49
50@rulecatch {
51 catch (RecognitionException re) {
52 recover(input,re);
53 appendSkippedTokens();
54 }
55}
56
57// Entry rule entryRuleProblem
58entryRuleProblem returns [EObject current=null]:
59 { newCompositeNode(grammarAccess.getProblemRule()); }
60 iv_ruleProblem=ruleProblem
61 { $current=$iv_ruleProblem.current; }
62 EOF;
63
64// Rule Problem
65ruleProblem returns [EObject current=null]
66@init {
67 enterRule();
68}
69@after {
70 leaveRule();
71}:
72 (
73 (
74 {
75 newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_0());
76 }
77 lv_statements_0_0=ruleStatement
78 {
79 if ($current==null) {
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 }
89 )
90 )*
91;
92
93// Entry rule entryRuleStatement
94entryRuleStatement returns [EObject current=null]:
95 { newCompositeNode(grammarAccess.getStatementRule()); }
96 iv_ruleStatement=ruleStatement
97 { $current=$iv_ruleStatement.current; }
98 EOF;
99
100// Rule Statement
101ruleStatement returns [EObject current=null]
102@init {
103 enterRule();
104}
105@after {
106 leaveRule();
107}:
108 (
109 (
110 {
111 newCompositeNode(grammarAccess.getStatementAccess().getAssertionOrDefinitionParserRuleCall_0_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().getExternPredicateDefinitionParserRuleCall_0_4());
148 }
149 this_ExternPredicateDefinition_4=ruleExternPredicateDefinition
150 {
151 $current = $this_ExternPredicateDefinition_4.current;
152 afterParserOrEnumRuleCall();
153 }
154 |
155 {
156 newCompositeNode(grammarAccess.getStatementAccess().getMetricDefinitionParserRuleCall_0_5());
157 }
158 this_MetricDefinition_5=ruleMetricDefinition
159 {
160 $current = $this_MetricDefinition_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().getClassDefinitionParserRuleCall_0_7());
175 }
176 this_ClassDefinition_7=ruleClassDefinition
177 {
178 $current = $this_ClassDefinition_7.current;
179 afterParserOrEnumRuleCall();
180 }
181 |
182 {
183 newCompositeNode(grammarAccess.getStatementAccess().getScopeDefinitionParserRuleCall_0_8());
184 }
185 this_ScopeDefinition_8=ruleScopeDefinition
186 {
187 $current = $this_ScopeDefinition_8.current;
188 afterParserOrEnumRuleCall();
189 }
190 |
191 {
192 newCompositeNode(grammarAccess.getStatementAccess().getObjectiveDefinitionParserRuleCall_0_9());
193 }
194 this_ObjectiveDefinition_9=ruleObjectiveDefinition
195 {
196 $current = $this_ObjectiveDefinition_9.current;
197 afterParserOrEnumRuleCall();
198 }
199 )
200 this_FULL_STOP_10=RULE_FULL_STOP
201 {
202 newLeafNode(this_FULL_STOP_10, grammarAccess.getStatementAccess().getFULL_STOPTerminalRuleCall_1());
203 }
204 )
205;
206
207// Entry rule entryRuleAssertionOrDefinition
208entryRuleAssertionOrDefinition returns [EObject current=null]:
209 { newCompositeNode(grammarAccess.getAssertionOrDefinitionRule()); }
210 iv_ruleAssertionOrDefinition=ruleAssertionOrDefinition
211 { $current=$iv_ruleAssertionOrDefinition.current; }
212 EOF;
213
214// Rule AssertionOrDefinition
215ruleAssertionOrDefinition returns [EObject current=null]
216@init {
217 enterRule();
218}
219@after {
220 leaveRule();
221}:
222 (
223 {
224 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getExpressionParserRuleCall_0());
225 }
226 this_Expression_0=ruleExpression
227 {
228 $current = $this_Expression_0.current;
229 afterParserOrEnumRuleCall();
230 }
231 (
232 (
233 (
234 {
235 $current = forceCreateModelElementAndSet(
236 grammarAccess.getAssertionOrDefinitionAccess().getAssertionBodyAction_1_0_0(),
237 $current);
238 }
239 )
240 (
241 otherlv_2=Colon
242 {
243 newLeafNode(otherlv_2, grammarAccess.getAssertionOrDefinitionAccess().getColonKeyword_1_0_1_0());
244 }
245 (
246 (
247 {
248 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getRangeExpressionParserRuleCall_1_0_1_1_0());
249 }
250 lv_range_3_0=ruleExpression
251 {
252 if ($current==null) {
253 $current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule());
254 }
255 set(
256 $current,
257 "range",
258 lv_range_3_0,
259 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
260 afterParserOrEnumRuleCall();
261 }
262 )
263 )
264 )?
265 )
266 |
267 (
268 (
269 {
270 $current = forceCreateModelElementAndSet(
271 grammarAccess.getAssertionOrDefinitionAccess().getPredicateDefinitionHeadAction_1_1_0(),
272 $current);
273 }
274 )
275 otherlv_5=ColonHyphenMinus
276 {
277 newLeafNode(otherlv_5, grammarAccess.getAssertionOrDefinitionAccess().getColonHyphenMinusKeyword_1_1_1());
278 }
279 (
280 (
281 {
282 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_1_2_0());
283 }
284 lv_body_6_0=ruleExpression
285 {
286 if ($current==null) {
287 $current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule());
288 }
289 set(
290 $current,
291 "body",
292 lv_body_6_0,
293 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
294 afterParserOrEnumRuleCall();
295 }
296 )
297 )
298 )
299 |
300 (
301 (
302 {
303 $current = forceCreateModelElementAndSet(
304 grammarAccess.getAssertionOrDefinitionAccess().getMetricDefinitionHeadAction_1_2_0(),
305 $current);
306 }
307 )
308 otherlv_8=EqualsSign
309 {
310 newLeafNode(otherlv_8, grammarAccess.getAssertionOrDefinitionAccess().getEqualsSignKeyword_1_2_1());
311 }
312 (
313 (
314 {
315 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_2_2_0());
316 }
317 lv_body_9_0=ruleExpression
318 {
319 if ($current==null) {
320 $current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule());
321 }
322 set(
323 $current,
324 "body",
325 lv_body_9_0,
326 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
327 afterParserOrEnumRuleCall();
328 }
329 )
330 )
331 )
332 )
333 )
334;
335
336// Entry rule entryRulePredicateDefinition
337entryRulePredicateDefinition returns [EObject current=null]:
338 { newCompositeNode(grammarAccess.getPredicateDefinitionRule()); }
339 iv_rulePredicateDefinition=rulePredicateDefinition
340 { $current=$iv_rulePredicateDefinition.current; }
341 EOF;
342
343// Rule PredicateDefinition
344rulePredicateDefinition returns [EObject current=null]
345@init {
346 enterRule();
347}
348@after {
349 leaveRule();
350}:
351 (
352 (
353 (
354 (
355 (
356 lv_functional_0_0=Functional
357 {
358 newLeafNode(lv_functional_0_0, grammarAccess.getPredicateDefinitionAccess().getFunctionalFunctionalKeyword_0_0_0_0());
359 }
360 {
361 if ($current==null) {
362 $current = createModelElement(grammarAccess.getPredicateDefinitionRule());
363 }
364 setWithLastConsumed($current, "functional", true, "functional");
365 }
366 )
367 )
368 (
369 (
370 lv_error_1_0=Error
371 {
372 newLeafNode(lv_error_1_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_1_0());
373 }
374 {
375 if ($current==null) {
376 $current = createModelElement(grammarAccess.getPredicateDefinitionRule());
377 }
378 setWithLastConsumed($current, "error", true, "error");
379 }
380 )
381 )?
382 )
383 |
384 (
385 (
386 (
387 lv_error_2_0=Error
388 {
389 newLeafNode(lv_error_2_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_1_0_0());
390 }
391 {
392 if ($current==null) {
393 $current = createModelElement(grammarAccess.getPredicateDefinitionRule());
394 }
395 setWithLastConsumed($current, "error", true, "error");
396 }
397 )
398 )
399 (
400 (
401 lv_functional_3_0=Functional
402 {
403 newLeafNode(lv_functional_3_0, grammarAccess.getPredicateDefinitionAccess().getFunctionalFunctionalKeyword_0_1_1_0());
404 }
405 {
406 if ($current==null) {
407 $current = createModelElement(grammarAccess.getPredicateDefinitionRule());
408 }
409 setWithLastConsumed($current, "functional", true, "functional");
410 }
411 )
412 )?
413 )
414 )
415 (
416 (
417 {
418 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getHeadCallParserRuleCall_1_0());
419 }
420 lv_head_4_0=ruleCall
421 {
422 if ($current==null) {
423 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
424 }
425 set(
426 $current,
427 "head",
428 lv_head_4_0,
429 "org.eclipse.viatra.solver.language.SolverLanguage.Call");
430 afterParserOrEnumRuleCall();
431 }
432 )
433 )
434 otherlv_5=ColonHyphenMinus
435 {
436 newLeafNode(otherlv_5, grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_2());
437 }
438 (
439 (
440 {
441 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodyExpressionParserRuleCall_3_0());
442 }
443 lv_body_6_0=ruleExpression
444 {
445 if ($current==null) {
446 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
447 }
448 set(
449 $current,
450 "body",
451 lv_body_6_0,
452 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
453 afterParserOrEnumRuleCall();
454 }
455 )
456 )
457 )
458;
459
460// Entry rule entryRuleUnnamedErrorPrediateDefinition
461entryRuleUnnamedErrorPrediateDefinition returns [EObject current=null]:
462 { newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionRule()); }
463 iv_ruleUnnamedErrorPrediateDefinition=ruleUnnamedErrorPrediateDefinition
464 { $current=$iv_ruleUnnamedErrorPrediateDefinition.current; }
465 EOF;
466
467// Rule UnnamedErrorPrediateDefinition
468ruleUnnamedErrorPrediateDefinition returns [EObject current=null]
469@init {
470 enterRule();
471}
472@after {
473 leaveRule();
474}:
475 (
476 otherlv_0=Error
477 {
478 newLeafNode(otherlv_0, grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getErrorKeyword_0());
479 }
480 (
481 (
482 {
483 newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getArgumentListArgumentListParserRuleCall_1_0());
484 }
485 lv_argumentList_1_0=ruleArgumentList
486 {
487 if ($current==null) {
488 $current = createModelElementForParent(grammarAccess.getUnnamedErrorPrediateDefinitionRule());
489 }
490 set(
491 $current,
492 "argumentList",
493 lv_argumentList_1_0,
494 "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList");
495 afterParserOrEnumRuleCall();
496 }
497 )
498 )
499 otherlv_2=ColonHyphenMinus
500 {
501 newLeafNode(otherlv_2, grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getColonHyphenMinusKeyword_2());
502 }
503 (
504 (
505 {
506 newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getBodyExpressionParserRuleCall_3_0());
507 }
508 lv_body_3_0=ruleExpression
509 {
510 if ($current==null) {
511 $current = createModelElementForParent(grammarAccess.getUnnamedErrorPrediateDefinitionRule());
512 }
513 set(
514 $current,
515 "body",
516 lv_body_3_0,
517 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
518 afterParserOrEnumRuleCall();
519 }
520 )
521 )
522 )
523;
524
525// Entry rule entryRuleDefaultDefinition
526entryRuleDefaultDefinition returns [EObject current=null]:
527 { newCompositeNode(grammarAccess.getDefaultDefinitionRule()); }
528 iv_ruleDefaultDefinition=ruleDefaultDefinition
529 { $current=$iv_ruleDefaultDefinition.current; }
530 EOF;
531
532// Rule DefaultDefinition
533ruleDefaultDefinition returns [EObject current=null]
534@init {
535 enterRule();
536}
537@after {
538 leaveRule();
539}:
540 (
541 otherlv_0=Default
542 {
543 newLeafNode(otherlv_0, grammarAccess.getDefaultDefinitionAccess().getDefaultKeyword_0());
544 }
545 (
546 (
547 {
548 newCompositeNode(grammarAccess.getDefaultDefinitionAccess().getHeadCallParserRuleCall_1_0());
549 }
550 lv_head_1_0=ruleCall
551 {
552 if ($current==null) {
553 $current = createModelElementForParent(grammarAccess.getDefaultDefinitionRule());
554 }
555 set(
556 $current,
557 "head",
558 lv_head_1_0,
559 "org.eclipse.viatra.solver.language.SolverLanguage.Call");
560 afterParserOrEnumRuleCall();
561 }
562 )
563 )
564 otherlv_2=Colon
565 {
566 newLeafNode(otherlv_2, grammarAccess.getDefaultDefinitionAccess().getColonKeyword_2());
567 }
568 (
569 (
570 {
571 newCompositeNode(grammarAccess.getDefaultDefinitionAccess().getRangeExpressionParserRuleCall_3_0());
572 }
573 lv_range_3_0=ruleExpression
574 {
575 if ($current==null) {
576 $current = createModelElementForParent(grammarAccess.getDefaultDefinitionRule());
577 }
578 set(
579 $current,
580 "range",
581 lv_range_3_0,
582 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
583 afterParserOrEnumRuleCall();
584 }
585 )
586 )
587 )
588;
589
590// Entry rule entryRuleExternPredicateDefinition
591entryRuleExternPredicateDefinition returns [EObject current=null]:
592 { newCompositeNode(grammarAccess.getExternPredicateDefinitionRule()); }
593 iv_ruleExternPredicateDefinition=ruleExternPredicateDefinition
594 { $current=$iv_ruleExternPredicateDefinition.current; }
595 EOF;
596
597// Rule ExternPredicateDefinition
598ruleExternPredicateDefinition returns [EObject current=null]
599@init {
600 enterRule();
601}
602@after {
603 leaveRule();
604}:
605 (
606 otherlv_0=Extern
607 {
608 newLeafNode(otherlv_0, grammarAccess.getExternPredicateDefinitionAccess().getExternKeyword_0());
609 }
610 (
611 (
612 {
613 newCompositeNode(grammarAccess.getExternPredicateDefinitionAccess().getHeadCallParserRuleCall_1_0());
614 }
615 lv_head_1_0=ruleCall
616 {
617 if ($current==null) {
618 $current = createModelElementForParent(grammarAccess.getExternPredicateDefinitionRule());
619 }
620 set(
621 $current,
622 "head",
623 lv_head_1_0,
624 "org.eclipse.viatra.solver.language.SolverLanguage.Call");
625 afterParserOrEnumRuleCall();
626 }
627 )
628 )
629 )
630;
631
632// Entry rule entryRuleMetricDefinition
633entryRuleMetricDefinition returns [EObject current=null]:
634 { newCompositeNode(grammarAccess.getMetricDefinitionRule()); }
635 iv_ruleMetricDefinition=ruleMetricDefinition
636 { $current=$iv_ruleMetricDefinition.current; }
637 EOF;
638
639// Rule MetricDefinition
640ruleMetricDefinition returns [EObject current=null]
641@init {
642 enterRule();
643}
644@after {
645 leaveRule();
646}:
647 (
648 (
649 (
650 {
651 newCompositeNode(grammarAccess.getMetricDefinitionAccess().getTypeMetricTypeEnumRuleCall_0_0());
652 }
653 lv_type_0_0=ruleMetricType
654 {
655 if ($current==null) {
656 $current = createModelElementForParent(grammarAccess.getMetricDefinitionRule());
657 }
658 set(
659 $current,
660 "type",
661 lv_type_0_0,
662 "org.eclipse.viatra.solver.language.SolverLanguage.MetricType");
663 afterParserOrEnumRuleCall();
664 }
665 )
666 )
667 (
668 (
669 {
670 newCompositeNode(grammarAccess.getMetricDefinitionAccess().getHeadExpressionParserRuleCall_1_0());
671 }
672 lv_head_1_0=ruleExpression
673 {
674 if ($current==null) {
675 $current = createModelElementForParent(grammarAccess.getMetricDefinitionRule());
676 }
677 set(
678 $current,
679 "head",
680 lv_head_1_0,
681 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
682 afterParserOrEnumRuleCall();
683 }
684 )
685 )
686 otherlv_2=EqualsSign
687 {
688 newLeafNode(otherlv_2, grammarAccess.getMetricDefinitionAccess().getEqualsSignKeyword_2());
689 }
690 (
691 (
692 {
693 newCompositeNode(grammarAccess.getMetricDefinitionAccess().getBodyExpressionParserRuleCall_3_0());
694 }
695 lv_body_3_0=ruleExpression
696 {
697 if ($current==null) {
698 $current = createModelElementForParent(grammarAccess.getMetricDefinitionRule());
699 }
700 set(
701 $current,
702 "body",
703 lv_body_3_0,
704 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
705 afterParserOrEnumRuleCall();
706 }
707 )
708 )
709 )
710;
711
712// Entry rule entryRuleExternMetricDefinition
713entryRuleExternMetricDefinition returns [EObject current=null]:
714 { newCompositeNode(grammarAccess.getExternMetricDefinitionRule()); }
715 iv_ruleExternMetricDefinition=ruleExternMetricDefinition
716 { $current=$iv_ruleExternMetricDefinition.current; }
717 EOF;
718
719// Rule ExternMetricDefinition
720ruleExternMetricDefinition returns [EObject current=null]
721@init {
722 enterRule();
723}
724@after {
725 leaveRule();
726}:
727 (
728 otherlv_0=Extern
729 {
730 newLeafNode(otherlv_0, grammarAccess.getExternMetricDefinitionAccess().getExternKeyword_0());
731 }
732 (
733 (
734 {
735 newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getTypeMetricTypeEnumRuleCall_1_0());
736 }
737 lv_type_1_0=ruleMetricType
738 {
739 if ($current==null) {
740 $current = createModelElementForParent(grammarAccess.getExternMetricDefinitionRule());
741 }
742 set(
743 $current,
744 "type",
745 lv_type_1_0,
746 "org.eclipse.viatra.solver.language.SolverLanguage.MetricType");
747 afterParserOrEnumRuleCall();
748 }
749 )
750 )
751 (
752 (
753 {
754 newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getHeadCallParserRuleCall_2_0());
755 }
756 lv_head_2_0=ruleCall
757 {
758 if ($current==null) {
759 $current = createModelElementForParent(grammarAccess.getExternMetricDefinitionRule());
760 }
761 set(
762 $current,
763 "head",
764 lv_head_2_0,
765 "org.eclipse.viatra.solver.language.SolverLanguage.Call");
766 afterParserOrEnumRuleCall();
767 }
768 )
769 )
770 )
771;
772
773// Entry rule entryRuleExpression
774entryRuleExpression returns [EObject current=null]:
775 { newCompositeNode(grammarAccess.getExpressionRule()); }
776 iv_ruleExpression=ruleExpression
777 { $current=$iv_ruleExpression.current; }
778 EOF;
779
780// Rule Expression
781ruleExpression returns [EObject current=null]
782@init {
783 enterRule();
784}
785@after {
786 leaveRule();
787}:
788 (
789 {
790 newCompositeNode(grammarAccess.getExpressionAccess().getIfElseParserRuleCall_0());
791 }
792 this_IfElse_0=ruleIfElse
793 {
794 $current = $this_IfElse_0.current;
795 afterParserOrEnumRuleCall();
796 }
797 |
798 {
799 newCompositeNode(grammarAccess.getExpressionAccess().getDisjunctiveExpressionParserRuleCall_1());
800 }
801 this_DisjunctiveExpression_1=ruleDisjunctiveExpression
802 {
803 $current = $this_DisjunctiveExpression_1.current;
804 afterParserOrEnumRuleCall();
805 }
806 )
807;
808
809// Entry rule entryRuleIfElse
810entryRuleIfElse returns [EObject current=null]:
811 { newCompositeNode(grammarAccess.getIfElseRule()); }
812 iv_ruleIfElse=ruleIfElse
813 { $current=$iv_ruleIfElse.current; }
814 EOF;
815
816// Rule IfElse
817ruleIfElse returns [EObject current=null]
818@init {
819 enterRule();
820}
821@after {
822 leaveRule();
823}:
824 (
825 otherlv_0=If
826 {
827 newLeafNode(otherlv_0, grammarAccess.getIfElseAccess().getIfKeyword_0());
828 }
829 (
830 (
831 {
832 newCompositeNode(grammarAccess.getIfElseAccess().getConditionExpressionParserRuleCall_1_0());
833 }
834 lv_condition_1_0=ruleExpression
835 {
836 if ($current==null) {
837 $current = createModelElementForParent(grammarAccess.getIfElseRule());
838 }
839 set(
840 $current,
841 "condition",
842 lv_condition_1_0,
843 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
844 afterParserOrEnumRuleCall();
845 }
846 )
847 )
848 otherlv_2=Then
849 {
850 newLeafNode(otherlv_2, grammarAccess.getIfElseAccess().getThenKeyword_2());
851 }
852 (
853 (
854 {
855 newCompositeNode(grammarAccess.getIfElseAccess().getThenExpressionParserRuleCall_3_0());
856 }
857 lv_then_3_0=ruleExpression
858 {
859 if ($current==null) {
860 $current = createModelElementForParent(grammarAccess.getIfElseRule());
861 }
862 set(
863 $current,
864 "then",
865 lv_then_3_0,
866 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
867 afterParserOrEnumRuleCall();
868 }
869 )
870 )
871 otherlv_4=Else
872 {
873 newLeafNode(otherlv_4, grammarAccess.getIfElseAccess().getElseKeyword_4());
874 }
875 (
876 (
877 {
878 newCompositeNode(grammarAccess.getIfElseAccess().getElseExpressionParserRuleCall_5_0());
879 }
880 lv_else_5_0=ruleExpression
881 {
882 if ($current==null) {
883 $current = createModelElementForParent(grammarAccess.getIfElseRule());
884 }
885 set(
886 $current,
887 "else",
888 lv_else_5_0,
889 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
890 afterParserOrEnumRuleCall();
891 }
892 )
893 )
894 )
895;
896
897// Entry rule entryRuleDisjunctiveExpression
898entryRuleDisjunctiveExpression returns [EObject current=null]:
899 { newCompositeNode(grammarAccess.getDisjunctiveExpressionRule()); }
900 iv_ruleDisjunctiveExpression=ruleDisjunctiveExpression
901 { $current=$iv_ruleDisjunctiveExpression.current; }
902 EOF;
903
904// Rule DisjunctiveExpression
905ruleDisjunctiveExpression returns [EObject current=null]
906@init {
907 enterRule();
908}
909@after {
910 leaveRule();
911}:
912 (
913 {
914 newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getConjunctiveExpressionParserRuleCall_0());
915 }
916 this_ConjunctiveExpression_0=ruleConjunctiveExpression
917 {
918 $current = $this_ConjunctiveExpression_0.current;
919 afterParserOrEnumRuleCall();
920 }
921 (
922 (
923 (
924 {
925 $current = forceCreateModelElementAndAdd(
926 grammarAccess.getDisjunctiveExpressionAccess().getDisjunctionChildrenAction_1_0_0(),
927 $current);
928 }
929 )
930 (
931 otherlv_2=Semicolon
932 {
933 newLeafNode(otherlv_2, grammarAccess.getDisjunctiveExpressionAccess().getSemicolonKeyword_1_0_1_0());
934 }
935 (
936 (
937 {
938 newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getChildrenConjunctiveExpressionParserRuleCall_1_0_1_1_0());
939 }
940 lv_children_3_0=ruleConjunctiveExpression
941 {
942 if ($current==null) {
943 $current = createModelElementForParent(grammarAccess.getDisjunctiveExpressionRule());
944 }
945 add(
946 $current,
947 "children",
948 lv_children_3_0,
949 "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression");
950 afterParserOrEnumRuleCall();
951 }
952 )
953 )
954 )+
955 )
956 |
957 (
958 (
959 {
960 $current = forceCreateModelElementAndSet(
961 grammarAccess.getDisjunctiveExpressionAccess().getCaseConditionAction_1_1_0(),
962 $current);
963 }
964 )
965 otherlv_5=HyphenMinusGreaterThanSign
966 {
967 newLeafNode(otherlv_5, grammarAccess.getDisjunctiveExpressionAccess().getHyphenMinusGreaterThanSignKeyword_1_1_1());
968 }
969 (
970 (
971 {
972 newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getBodyConjunctiveExpressionParserRuleCall_1_1_2_0());
973 }
974 lv_body_6_0=ruleConjunctiveExpression
975 {
976 if ($current==null) {
977 $current = createModelElementForParent(grammarAccess.getDisjunctiveExpressionRule());
978 }
979 set(
980 $current,
981 "body",
982 lv_body_6_0,
983 "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression");
984 afterParserOrEnumRuleCall();
985 }
986 )
987 )
988 (
989 {
990 $current = forceCreateModelElementAndAdd(
991 grammarAccess.getDisjunctiveExpressionAccess().getSwitchCasesAction_1_1_3(),
992 $current);
993 }
994 )
995 (
996 otherlv_8=Semicolon
997 {
998 newLeafNode(otherlv_8, grammarAccess.getDisjunctiveExpressionAccess().getSemicolonKeyword_1_1_4_0());
999 }
1000 (
1001 (
1002 {
1003 newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getCasesCaseParserRuleCall_1_1_4_1_0());
1004 }
1005 lv_cases_9_0=ruleCase
1006 {
1007 if ($current==null) {
1008 $current = createModelElementForParent(grammarAccess.getDisjunctiveExpressionRule());
1009 }
1010 add(
1011 $current,
1012 "cases",
1013 lv_cases_9_0,
1014 "org.eclipse.viatra.solver.language.SolverLanguage.Case");
1015 afterParserOrEnumRuleCall();
1016 }
1017 )
1018 )
1019 )*
1020 )
1021 )?
1022 )
1023;
1024
1025// Entry rule entryRuleCase
1026entryRuleCase returns [EObject current=null]:
1027 { newCompositeNode(grammarAccess.getCaseRule()); }
1028 iv_ruleCase=ruleCase
1029 { $current=$iv_ruleCase.current; }
1030 EOF;
1031
1032// Rule Case
1033ruleCase returns [EObject current=null]
1034@init {
1035 enterRule();
1036}
1037@after {
1038 leaveRule();
1039}:
1040 (
1041 (
1042 (
1043 {
1044 newCompositeNode(grammarAccess.getCaseAccess().getConditionConjunctiveExpressionParserRuleCall_0_0());
1045 }
1046 lv_condition_0_0=ruleConjunctiveExpression
1047 {
1048 if ($current==null) {
1049 $current = createModelElementForParent(grammarAccess.getCaseRule());
1050 }
1051 set(
1052 $current,
1053 "condition",
1054 lv_condition_0_0,
1055 "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression");
1056 afterParserOrEnumRuleCall();
1057 }
1058 )
1059 )
1060 otherlv_1=HyphenMinusGreaterThanSign
1061 {
1062 newLeafNode(otherlv_1, grammarAccess.getCaseAccess().getHyphenMinusGreaterThanSignKeyword_1());
1063 }
1064 (
1065 (
1066 {
1067 newCompositeNode(grammarAccess.getCaseAccess().getBodyConjunctiveExpressionParserRuleCall_2_0());
1068 }
1069 lv_body_2_0=ruleConjunctiveExpression
1070 {
1071 if ($current==null) {
1072 $current = createModelElementForParent(grammarAccess.getCaseRule());
1073 }
1074 set(
1075 $current,
1076 "body",
1077 lv_body_2_0,
1078 "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression");
1079 afterParserOrEnumRuleCall();
1080 }
1081 )
1082 )
1083 )
1084;
1085
1086// Entry rule entryRuleConjunctiveExpression
1087entryRuleConjunctiveExpression returns [EObject current=null]:
1088 { newCompositeNode(grammarAccess.getConjunctiveExpressionRule()); }
1089 iv_ruleConjunctiveExpression=ruleConjunctiveExpression
1090 { $current=$iv_ruleConjunctiveExpression.current; }
1091 EOF;
1092
1093// Rule ConjunctiveExpression
1094ruleConjunctiveExpression returns [EObject current=null]
1095@init {
1096 enterRule();
1097}
1098@after {
1099 leaveRule();
1100}:
1101 (
1102 {
1103 newCompositeNode(grammarAccess.getConjunctiveExpressionAccess().getComparisonExpressionParserRuleCall_0());
1104 }
1105 this_ComparisonExpression_0=ruleComparisonExpression
1106 {
1107 $current = $this_ComparisonExpression_0.current;
1108 afterParserOrEnumRuleCall();
1109 }
1110 (
1111 (
1112 {
1113 $current = forceCreateModelElementAndAdd(
1114 grammarAccess.getConjunctiveExpressionAccess().getConjunctionChildrenAction_1_0(),
1115 $current);
1116 }
1117 )
1118 (
1119 otherlv_2=Comma
1120 {
1121 newLeafNode(otherlv_2, grammarAccess.getConjunctiveExpressionAccess().getCommaKeyword_1_1_0());
1122 }
1123 (
1124 (
1125 {
1126 newCompositeNode(grammarAccess.getConjunctiveExpressionAccess().getChildrenComparisonExpressionParserRuleCall_1_1_1_0());
1127 }
1128 lv_children_3_0=ruleComparisonExpression
1129 {
1130 if ($current==null) {
1131 $current = createModelElementForParent(grammarAccess.getConjunctiveExpressionRule());
1132 }
1133 add(
1134 $current,
1135 "children",
1136 lv_children_3_0,
1137 "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonExpression");
1138 afterParserOrEnumRuleCall();
1139 }
1140 )
1141 )
1142 )+
1143 )?
1144 )
1145;
1146
1147// Entry rule entryRuleComparisonExpression
1148entryRuleComparisonExpression returns [EObject current=null]:
1149 { newCompositeNode(grammarAccess.getComparisonExpressionRule()); }
1150 iv_ruleComparisonExpression=ruleComparisonExpression
1151 { $current=$iv_ruleComparisonExpression.current; }
1152 EOF;
1153
1154// Rule ComparisonExpression
1155ruleComparisonExpression returns [EObject current=null]
1156@init {
1157 enterRule();
1158}
1159@after {
1160 leaveRule();
1161}:
1162 (
1163 {
1164 newCompositeNode(grammarAccess.getComparisonExpressionAccess().getAdditiveExpressionParserRuleCall_0());
1165 }
1166 this_AdditiveExpression_0=ruleAdditiveExpression
1167 {
1168 $current = $this_AdditiveExpression_0.current;
1169 afterParserOrEnumRuleCall();
1170 }
1171 (
1172 (
1173 {
1174 $current = forceCreateModelElementAndSet(
1175 grammarAccess.getComparisonExpressionAccess().getComparisonLeftAction_1_0(),
1176 $current);
1177 }
1178 )
1179 (
1180 (
1181 {
1182 newCompositeNode(grammarAccess.getComparisonExpressionAccess().getOpComparisonOperatorEnumRuleCall_1_1_0());
1183 }
1184 lv_op_2_0=ruleComparisonOperator
1185 {
1186 if ($current==null) {
1187 $current = createModelElementForParent(grammarAccess.getComparisonExpressionRule());
1188 }
1189 set(
1190 $current,
1191 "op",
1192 lv_op_2_0,
1193 "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonOperator");
1194 afterParserOrEnumRuleCall();
1195 }
1196 )
1197 )
1198 (
1199 (
1200 {
1201 newCompositeNode(grammarAccess.getComparisonExpressionAccess().getRightAdditiveExpressionParserRuleCall_1_2_0());
1202 }
1203 lv_right_3_0=ruleAdditiveExpression
1204 {
1205 if ($current==null) {
1206 $current = createModelElementForParent(grammarAccess.getComparisonExpressionRule());
1207 }
1208 set(
1209 $current,
1210 "right",
1211 lv_right_3_0,
1212 "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression");
1213 afterParserOrEnumRuleCall();
1214 }
1215 )
1216 )
1217 )?
1218 )
1219;
1220
1221// Entry rule entryRuleAdditiveExpression
1222entryRuleAdditiveExpression returns [EObject current=null]:
1223 { newCompositeNode(grammarAccess.getAdditiveExpressionRule()); }
1224 iv_ruleAdditiveExpression=ruleAdditiveExpression
1225 { $current=$iv_ruleAdditiveExpression.current; }
1226 EOF;
1227
1228// Rule AdditiveExpression
1229ruleAdditiveExpression returns [EObject current=null]
1230@init {
1231 enterRule();
1232}
1233@after {
1234 leaveRule();
1235}:
1236 (
1237 {
1238 newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getMultiplicativeExpressionParserRuleCall_0());
1239 }
1240 this_MultiplicativeExpression_0=ruleMultiplicativeExpression
1241 {
1242 $current = $this_MultiplicativeExpression_0.current;
1243 afterParserOrEnumRuleCall();
1244 }
1245 (
1246 (
1247 {
1248 $current = forceCreateModelElementAndSet(
1249 grammarAccess.getAdditiveExpressionAccess().getBinaryExpressionLeftAction_1_0(),
1250 $current);
1251 }
1252 )
1253 (
1254 (
1255 {
1256 newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getOpAdditiveBinaryOperatorEnumRuleCall_1_1_0());
1257 }
1258 lv_op_2_0=ruleAdditiveBinaryOperator
1259 {
1260 if ($current==null) {
1261 $current = createModelElementForParent(grammarAccess.getAdditiveExpressionRule());
1262 }
1263 set(
1264 $current,
1265 "op",
1266 lv_op_2_0,
1267 "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveBinaryOperator");
1268 afterParserOrEnumRuleCall();
1269 }
1270 )
1271 )
1272 (
1273 (
1274 {
1275 newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getRightMultiplicativeExpressionParserRuleCall_1_2_0());
1276 }
1277 lv_right_3_0=ruleMultiplicativeExpression
1278 {
1279 if ($current==null) {
1280 $current = createModelElementForParent(grammarAccess.getAdditiveExpressionRule());
1281 }
1282 set(
1283 $current,
1284 "right",
1285 lv_right_3_0,
1286 "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicativeExpression");
1287 afterParserOrEnumRuleCall();
1288 }
1289 )
1290 )
1291 )*
1292 )
1293;
1294
1295// Entry rule entryRuleMultiplicativeExpression
1296entryRuleMultiplicativeExpression returns [EObject current=null]:
1297 { newCompositeNode(grammarAccess.getMultiplicativeExpressionRule()); }
1298 iv_ruleMultiplicativeExpression=ruleMultiplicativeExpression
1299 { $current=$iv_ruleMultiplicativeExpression.current; }
1300 EOF;
1301
1302// Rule MultiplicativeExpression
1303ruleMultiplicativeExpression returns [EObject current=null]
1304@init {
1305 enterRule();
1306}
1307@after {
1308 leaveRule();
1309}:
1310 (
1311 {
1312 newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getExponentialExpressionParserRuleCall_0());
1313 }
1314 this_ExponentialExpression_0=ruleExponentialExpression
1315 {
1316 $current = $this_ExponentialExpression_0.current;
1317 afterParserOrEnumRuleCall();
1318 }
1319 (
1320 (
1321 {
1322 $current = forceCreateModelElementAndSet(
1323 grammarAccess.getMultiplicativeExpressionAccess().getBinaryExpressionLeftAction_1_0(),
1324 $current);
1325 }
1326 )
1327 (
1328 (
1329 {
1330 newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getOpMultiplicativeBinaryOperatorEnumRuleCall_1_1_0());
1331 }
1332 lv_op_2_0=ruleMultiplicativeBinaryOperator
1333 {
1334 if ($current==null) {
1335 $current = createModelElementForParent(grammarAccess.getMultiplicativeExpressionRule());
1336 }
1337 set(
1338 $current,
1339 "op",
1340 lv_op_2_0,
1341 "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicativeBinaryOperator");
1342 afterParserOrEnumRuleCall();
1343 }
1344 )
1345 )
1346 (
1347 (
1348 {
1349 newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getRightExponentialExpressionParserRuleCall_1_2_0());
1350 }
1351 lv_right_3_0=ruleExponentialExpression
1352 {
1353 if ($current==null) {
1354 $current = createModelElementForParent(grammarAccess.getMultiplicativeExpressionRule());
1355 }
1356 set(
1357 $current,
1358 "right",
1359 lv_right_3_0,
1360 "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialExpression");
1361 afterParserOrEnumRuleCall();
1362 }
1363 )
1364 )
1365 )*
1366 )
1367;
1368
1369// Entry rule entryRuleExponentialExpression
1370entryRuleExponentialExpression returns [EObject current=null]:
1371 { newCompositeNode(grammarAccess.getExponentialExpressionRule()); }
1372 iv_ruleExponentialExpression=ruleExponentialExpression
1373 { $current=$iv_ruleExponentialExpression.current; }
1374 EOF;
1375
1376// Rule ExponentialExpression
1377ruleExponentialExpression returns [EObject current=null]
1378@init {
1379 enterRule();
1380}
1381@after {
1382 leaveRule();
1383}:
1384 (
1385 {
1386 newCompositeNode(grammarAccess.getExponentialExpressionAccess().getUnaryExpressionParserRuleCall_0());
1387 }
1388 this_UnaryExpression_0=ruleUnaryExpression
1389 {
1390 $current = $this_UnaryExpression_0.current;
1391 afterParserOrEnumRuleCall();
1392 }
1393 (
1394 (
1395 {
1396 $current = forceCreateModelElementAndSet(
1397 grammarAccess.getExponentialExpressionAccess().getBinaryExpressionLeftAction_1_0(),
1398 $current);
1399 }
1400 )
1401 (
1402 (
1403 {
1404 newCompositeNode(grammarAccess.getExponentialExpressionAccess().getOpExponentialOpEnumRuleCall_1_1_0());
1405 }
1406 lv_op_2_0=ruleExponentialOp
1407 {
1408 if ($current==null) {
1409 $current = createModelElementForParent(grammarAccess.getExponentialExpressionRule());
1410 }
1411 set(
1412 $current,
1413 "op",
1414 lv_op_2_0,
1415 "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialOp");
1416 afterParserOrEnumRuleCall();
1417 }
1418 )
1419 )
1420 (
1421 (
1422 {
1423 newCompositeNode(grammarAccess.getExponentialExpressionAccess().getRightExponentialExpressionParserRuleCall_1_2_0());
1424 }
1425 lv_right_3_0=ruleExponentialExpression
1426 {
1427 if ($current==null) {
1428 $current = createModelElementForParent(grammarAccess.getExponentialExpressionRule());
1429 }
1430 set(
1431 $current,
1432 "right",
1433 lv_right_3_0,
1434 "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialExpression");
1435 afterParserOrEnumRuleCall();
1436 }
1437 )
1438 )
1439 )?
1440 )
1441;
1442
1443// Entry rule entryRuleUnaryExpression
1444entryRuleUnaryExpression returns [EObject current=null]:
1445 { newCompositeNode(grammarAccess.getUnaryExpressionRule()); }
1446 iv_ruleUnaryExpression=ruleUnaryExpression
1447 { $current=$iv_ruleUnaryExpression.current; }
1448 EOF;
1449
1450// Rule UnaryExpression
1451ruleUnaryExpression returns [EObject current=null]
1452@init {
1453 enterRule();
1454}
1455@after {
1456 leaveRule();
1457}:
1458 (
1459 {
1460 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getAggregationExpressionParserRuleCall_0());
1461 }
1462 this_AggregationExpression_0=ruleAggregationExpression
1463 {
1464 $current = $this_AggregationExpression_0.current;
1465 afterParserOrEnumRuleCall();
1466 }
1467 |
1468 (
1469 (
1470 {
1471 $current = forceCreateModelElement(
1472 grammarAccess.getUnaryExpressionAccess().getUnaryExpressionAction_1_0(),
1473 $current);
1474 }
1475 )
1476 (
1477 (
1478 {
1479 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getOpUnaryOpEnumRuleCall_1_1_0());
1480 }
1481 lv_op_2_0=ruleUnaryOp
1482 {
1483 if ($current==null) {
1484 $current = createModelElementForParent(grammarAccess.getUnaryExpressionRule());
1485 }
1486 set(
1487 $current,
1488 "op",
1489 lv_op_2_0,
1490 "org.eclipse.viatra.solver.language.SolverLanguage.UnaryOp");
1491 afterParserOrEnumRuleCall();
1492 }
1493 )
1494 )
1495 (
1496 (
1497 {
1498 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getBodyAggregationExpressionParserRuleCall_1_2_0());
1499 }
1500 lv_body_3_0=ruleAggregationExpression
1501 {
1502 if ($current==null) {
1503 $current = createModelElementForParent(grammarAccess.getUnaryExpressionRule());
1504 }
1505 set(
1506 $current,
1507 "body",
1508 lv_body_3_0,
1509 "org.eclipse.viatra.solver.language.SolverLanguage.AggregationExpression");
1510 afterParserOrEnumRuleCall();
1511 }
1512 )
1513 )
1514 )
1515 )
1516;
1517
1518// Entry rule entryRuleAggregationExpression
1519entryRuleAggregationExpression returns [EObject current=null]:
1520 { newCompositeNode(grammarAccess.getAggregationExpressionRule()); }
1521 iv_ruleAggregationExpression=ruleAggregationExpression
1522 { $current=$iv_ruleAggregationExpression.current; }
1523 EOF;
1524
1525// Rule AggregationExpression
1526ruleAggregationExpression returns [EObject current=null]
1527@init {
1528 enterRule();
1529}
1530@after {
1531 leaveRule();
1532}:
1533 (
1534 {
1535 newCompositeNode(grammarAccess.getAggregationExpressionAccess().getAtomicExpressionParserRuleCall_0());
1536 }
1537 this_AtomicExpression_0=ruleAtomicExpression
1538 {
1539 $current = $this_AtomicExpression_0.current;
1540 afterParserOrEnumRuleCall();
1541 }
1542 |
1543 {
1544 newCompositeNode(grammarAccess.getAggregationExpressionAccess().getCountParserRuleCall_1());
1545 }
1546 this_Count_1=ruleCount
1547 {
1548 $current = $this_Count_1.current;
1549 afterParserOrEnumRuleCall();
1550 }
1551 |
1552 {
1553 newCompositeNode(grammarAccess.getAggregationExpressionAccess().getAggregationParserRuleCall_2());
1554 }
1555 this_Aggregation_2=ruleAggregation
1556 {
1557 $current = $this_Aggregation_2.current;
1558 afterParserOrEnumRuleCall();
1559 }
1560 )
1561;
1562
1563// Entry rule entryRuleCount
1564entryRuleCount returns [EObject current=null]:
1565 { newCompositeNode(grammarAccess.getCountRule()); }
1566 iv_ruleCount=ruleCount
1567 { $current=$iv_ruleCount.current; }
1568 EOF;
1569
1570// Rule Count
1571ruleCount returns [EObject current=null]
1572@init {
1573 enterRule();
1574}
1575@after {
1576 leaveRule();
1577}:
1578 (
1579 otherlv_0=Count
1580 {
1581 newLeafNode(otherlv_0, grammarAccess.getCountAccess().getCountKeyword_0());
1582 }
1583 otherlv_1=LeftCurlyBracket
1584 {
1585 newLeafNode(otherlv_1, grammarAccess.getCountAccess().getLeftCurlyBracketKeyword_1());
1586 }
1587 (
1588 (
1589 {
1590 newCompositeNode(grammarAccess.getCountAccess().getBodyExpressionParserRuleCall_2_0());
1591 }
1592 lv_body_2_0=ruleExpression
1593 {
1594 if ($current==null) {
1595 $current = createModelElementForParent(grammarAccess.getCountRule());
1596 }
1597 set(
1598 $current,
1599 "body",
1600 lv_body_2_0,
1601 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
1602 afterParserOrEnumRuleCall();
1603 }
1604 )
1605 )
1606 otherlv_3=RightCurlyBracket
1607 {
1608 newLeafNode(otherlv_3, grammarAccess.getCountAccess().getRightCurlyBracketKeyword_3());
1609 }
1610 )
1611;
1612
1613// Entry rule entryRuleAggregation
1614entryRuleAggregation returns [EObject current=null]:
1615 { newCompositeNode(grammarAccess.getAggregationRule()); }
1616 iv_ruleAggregation=ruleAggregation
1617 { $current=$iv_ruleAggregation.current; }
1618 EOF;
1619
1620// Rule Aggregation
1621ruleAggregation returns [EObject current=null]
1622@init {
1623 enterRule();
1624}
1625@after {
1626 leaveRule();
1627}:
1628 (
1629 (
1630 (
1631 {
1632 newCompositeNode(grammarAccess.getAggregationAccess().getOpAggregationOpEnumRuleCall_0_0());
1633 }
1634 lv_op_0_0=ruleAggregationOp
1635 {
1636 if ($current==null) {
1637 $current = createModelElementForParent(grammarAccess.getAggregationRule());
1638 }
1639 set(
1640 $current,
1641 "op",
1642 lv_op_0_0,
1643 "org.eclipse.viatra.solver.language.SolverLanguage.AggregationOp");
1644 afterParserOrEnumRuleCall();
1645 }
1646 )
1647 )
1648 otherlv_1=LeftCurlyBracket
1649 {
1650 newLeafNode(otherlv_1, grammarAccess.getAggregationAccess().getLeftCurlyBracketKeyword_1());
1651 }
1652 (
1653 (
1654 {
1655 newCompositeNode(grammarAccess.getAggregationAccess().getBodyExpressionParserRuleCall_2_0());
1656 }
1657 lv_body_2_0=ruleExpression
1658 {
1659 if ($current==null) {
1660 $current = createModelElementForParent(grammarAccess.getAggregationRule());
1661 }
1662 set(
1663 $current,
1664 "body",
1665 lv_body_2_0,
1666 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
1667 afterParserOrEnumRuleCall();
1668 }
1669 )
1670 )
1671 otherlv_3=VerticalLine
1672 {
1673 newLeafNode(otherlv_3, grammarAccess.getAggregationAccess().getVerticalLineKeyword_3());
1674 }
1675 (
1676 (
1677 {
1678 newCompositeNode(grammarAccess.getAggregationAccess().getConditionExpressionParserRuleCall_4_0());
1679 }
1680 lv_condition_4_0=ruleExpression
1681 {
1682 if ($current==null) {
1683 $current = createModelElementForParent(grammarAccess.getAggregationRule());
1684 }
1685 set(
1686 $current,
1687 "condition",
1688 lv_condition_4_0,
1689 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
1690 afterParserOrEnumRuleCall();
1691 }
1692 )
1693 )
1694 otherlv_5=RightCurlyBracket
1695 {
1696 newLeafNode(otherlv_5, grammarAccess.getAggregationAccess().getRightCurlyBracketKeyword_5());
1697 }
1698 )
1699;
1700
1701// Entry rule entryRuleAtomicExpression
1702entryRuleAtomicExpression returns [EObject current=null]:
1703 { newCompositeNode(grammarAccess.getAtomicExpressionRule()); }
1704 iv_ruleAtomicExpression=ruleAtomicExpression
1705 { $current=$iv_ruleAtomicExpression.current; }
1706 EOF;
1707
1708// Rule AtomicExpression
1709ruleAtomicExpression returns [EObject current=null]
1710@init {
1711 enterRule();
1712}
1713@after {
1714 leaveRule();
1715}:
1716 (
1717 {
1718 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getReferenceParserRuleCall_0());
1719 }
1720 this_Reference_0=ruleReference
1721 {
1722 $current = $this_Reference_0.current;
1723 afterParserOrEnumRuleCall();
1724 }
1725 |
1726 {
1727 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getCallParserRuleCall_1());
1728 }
1729 this_Call_1=ruleCall
1730 {
1731 $current = $this_Call_1.current;
1732 afterParserOrEnumRuleCall();
1733 }
1734 |
1735 {
1736 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getIntervalParserRuleCall_2());
1737 }
1738 this_Interval_2=ruleInterval
1739 {
1740 $current = $this_Interval_2.current;
1741 afterParserOrEnumRuleCall();
1742 }
1743 |
1744 {
1745 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getLiteralParserRuleCall_3());
1746 }
1747 this_Literal_3=ruleLiteral
1748 {
1749 $current = $this_Literal_3.current;
1750 afterParserOrEnumRuleCall();
1751 }
1752 |
1753 (
1754 otherlv_4=LeftParenthesis
1755 {
1756 newLeafNode(otherlv_4, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_4_0());
1757 }
1758 {
1759 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getExpressionParserRuleCall_4_1());
1760 }
1761 this_Expression_5=ruleExpression
1762 {
1763 $current = $this_Expression_5.current;
1764 afterParserOrEnumRuleCall();
1765 }
1766 otherlv_6=RightParenthesis
1767 {
1768 newLeafNode(otherlv_6, grammarAccess.getAtomicExpressionAccess().getRightParenthesisKeyword_4_2());
1769 }
1770 )
1771 )
1772;
1773
1774// Entry rule entryRuleCall
1775entryRuleCall returns [EObject current=null]:
1776 { newCompositeNode(grammarAccess.getCallRule()); }
1777 iv_ruleCall=ruleCall
1778 { $current=$iv_ruleCall.current; }
1779 EOF;
1780
1781// Rule Call
1782ruleCall returns [EObject current=null]
1783@init {
1784 enterRule();
1785}
1786@after {
1787 leaveRule();
1788}:
1789 (
1790 (
1791 (
1792 {
1793 newCompositeNode(grammarAccess.getCallAccess().getFunctorReferenceParserRuleCall_0_0());
1794 }
1795 lv_functor_0_0=ruleReference
1796 {
1797 if ($current==null) {
1798 $current = createModelElementForParent(grammarAccess.getCallRule());
1799 }
1800 set(
1801 $current,
1802 "functor",
1803 lv_functor_0_0,
1804 "org.eclipse.viatra.solver.language.SolverLanguage.Reference");
1805 afterParserOrEnumRuleCall();
1806 }
1807 )
1808 )
1809 (
1810 (
1811 (
1812 lv_transitiveClosure_1_0=RULE_TRANSITIVE_CLOSURE
1813 {
1814 newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getCallAccess().getTransitiveClosureTRANSITIVE_CLOSURETerminalRuleCall_1_0_0());
1815 }
1816 {
1817 if ($current==null) {
1818 $current = createModelElement(grammarAccess.getCallRule());
1819 }
1820 setWithLastConsumed(
1821 $current,
1822 "transitiveClosure",
1823 true,
1824 "org.eclipse.viatra.solver.language.SolverLanguage.TRANSITIVE_CLOSURE");
1825 }
1826 )
1827 )
1828 |
1829 (
1830 (
1831 lv_reflexiveTransitiveClosure_2_0=RULE_REFLEXIVE_TRANSITIVE_CLOSURE
1832 {
1833 newLeafNode(lv_reflexiveTransitiveClosure_2_0, grammarAccess.getCallAccess().getReflexiveTransitiveClosureREFLEXIVE_TRANSITIVE_CLOSURETerminalRuleCall_1_1_0());
1834 }
1835 {
1836 if ($current==null) {
1837 $current = createModelElement(grammarAccess.getCallRule());
1838 }
1839 setWithLastConsumed(
1840 $current,
1841 "reflexiveTransitiveClosure",
1842 true,
1843 "org.eclipse.viatra.solver.language.SolverLanguage.REFLEXIVE_TRANSITIVE_CLOSURE");
1844 }
1845 )
1846 )
1847 )?
1848 (
1849 (
1850 {
1851 newCompositeNode(grammarAccess.getCallAccess().getArgumentListArgumentListParserRuleCall_2_0());
1852 }
1853 lv_argumentList_3_0=ruleArgumentList
1854 {
1855 if ($current==null) {
1856 $current = createModelElementForParent(grammarAccess.getCallRule());
1857 }
1858 set(
1859 $current,
1860 "argumentList",
1861 lv_argumentList_3_0,
1862 "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList");
1863 afterParserOrEnumRuleCall();
1864 }
1865 )
1866 )
1867 )
1868;
1869
1870// Entry rule entryRuleArgumentList
1871entryRuleArgumentList returns [EObject current=null]:
1872 { newCompositeNode(grammarAccess.getArgumentListRule()); }
1873 iv_ruleArgumentList=ruleArgumentList
1874 { $current=$iv_ruleArgumentList.current; }
1875 EOF;
1876
1877// Rule ArgumentList
1878ruleArgumentList returns [EObject current=null]
1879@init {
1880 enterRule();
1881}
1882@after {
1883 leaveRule();
1884}:
1885 (
1886 (
1887 {
1888 $current = forceCreateModelElement(
1889 grammarAccess.getArgumentListAccess().getArgumentListAction_0(),
1890 $current);
1891 }
1892 )
1893 otherlv_1=LeftParenthesis
1894 {
1895 newLeafNode(otherlv_1, grammarAccess.getArgumentListAccess().getLeftParenthesisKeyword_1());
1896 }
1897 (
1898 (
1899 (
1900 {
1901 newCompositeNode(grammarAccess.getArgumentListAccess().getArgumentsArgumentParserRuleCall_2_0_0());
1902 }
1903 lv_arguments_2_0=ruleArgument
1904 {
1905 if ($current==null) {
1906 $current = createModelElementForParent(grammarAccess.getArgumentListRule());
1907 }
1908 add(
1909 $current,
1910 "arguments",
1911 lv_arguments_2_0,
1912 "org.eclipse.viatra.solver.language.SolverLanguage.Argument");
1913 afterParserOrEnumRuleCall();
1914 }
1915 )
1916 )
1917 (
1918 otherlv_3=Comma
1919 {
1920 newLeafNode(otherlv_3, grammarAccess.getArgumentListAccess().getCommaKeyword_2_1_0());
1921 }
1922 (
1923 (
1924 {
1925 newCompositeNode(grammarAccess.getArgumentListAccess().getArgumentsArgumentParserRuleCall_2_1_1_0());
1926 }
1927 lv_arguments_4_0=ruleArgument
1928 {
1929 if ($current==null) {
1930 $current = createModelElementForParent(grammarAccess.getArgumentListRule());
1931 }
1932 add(
1933 $current,
1934 "arguments",
1935 lv_arguments_4_0,
1936 "org.eclipse.viatra.solver.language.SolverLanguage.Argument");
1937 afterParserOrEnumRuleCall();
1938 }
1939 )
1940 )
1941 )*
1942 )?
1943 otherlv_5=RightParenthesis
1944 {
1945 newLeafNode(otherlv_5, grammarAccess.getArgumentListAccess().getRightParenthesisKeyword_3());
1946 }
1947 )
1948;
1949
1950// Entry rule entryRuleArgument
1951entryRuleArgument returns [EObject current=null]:
1952 { newCompositeNode(grammarAccess.getArgumentRule()); }
1953 iv_ruleArgument=ruleArgument
1954 { $current=$iv_ruleArgument.current; }
1955 EOF;
1956
1957// Rule Argument
1958ruleArgument returns [EObject current=null]
1959@init {
1960 enterRule();
1961}
1962@after {
1963 leaveRule();
1964}:
1965 (
1966 {
1967 newCompositeNode(grammarAccess.getArgumentAccess().getExpressionArgumentParserRuleCall_0());
1968 }
1969 this_ExpressionArgument_0=ruleExpressionArgument
1970 {
1971 $current = $this_ExpressionArgument_0.current;
1972 afterParserOrEnumRuleCall();
1973 }
1974 |
1975 {
1976 newCompositeNode(grammarAccess.getArgumentAccess().getStarArgumentParserRuleCall_1());
1977 }
1978 this_StarArgument_1=ruleStarArgument
1979 {
1980 $current = $this_StarArgument_1.current;
1981 afterParserOrEnumRuleCall();
1982 }
1983 |
1984 {
1985 newCompositeNode(grammarAccess.getArgumentAccess().getTypedArgumentParserRuleCall_2());
1986 }
1987 this_TypedArgument_2=ruleTypedArgument
1988 {
1989 $current = $this_TypedArgument_2.current;
1990 afterParserOrEnumRuleCall();
1991 }
1992 |
1993 {
1994 newCompositeNode(grammarAccess.getArgumentAccess().getTypedStarArgumentParserRuleCall_3());
1995 }
1996 this_TypedStarArgument_3=ruleTypedStarArgument
1997 {
1998 $current = $this_TypedStarArgument_3.current;
1999 afterParserOrEnumRuleCall();
2000 }
2001 )
2002;
2003
2004// Entry rule entryRuleExpressionArgument
2005entryRuleExpressionArgument returns [EObject current=null]:
2006 { newCompositeNode(grammarAccess.getExpressionArgumentRule()); }
2007 iv_ruleExpressionArgument=ruleExpressionArgument
2008 { $current=$iv_ruleExpressionArgument.current; }
2009 EOF;
2010
2011// Rule ExpressionArgument
2012ruleExpressionArgument returns [EObject current=null]
2013@init {
2014 enterRule();
2015}
2016@after {
2017 leaveRule();
2018}:
2019 (
2020 (
2021 {
2022 newCompositeNode(grammarAccess.getExpressionArgumentAccess().getBodyComparisonExpressionParserRuleCall_0());
2023 }
2024 lv_body_0_0=ruleComparisonExpression
2025 {
2026 if ($current==null) {
2027 $current = createModelElementForParent(grammarAccess.getExpressionArgumentRule());
2028 }
2029 set(
2030 $current,
2031 "body",
2032 lv_body_0_0,
2033 "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonExpression");
2034 afterParserOrEnumRuleCall();
2035 }
2036 )
2037 )
2038;
2039
2040// Entry rule entryRuleStarArgument
2041entryRuleStarArgument returns [EObject current=null]:
2042 { newCompositeNode(grammarAccess.getStarArgumentRule()); }
2043 iv_ruleStarArgument=ruleStarArgument
2044 { $current=$iv_ruleStarArgument.current; }
2045 EOF;
2046
2047// Rule StarArgument
2048ruleStarArgument returns [EObject current=null]
2049@init {
2050 enterRule();
2051}
2052@after {
2053 leaveRule();
2054}:
2055 (
2056 (
2057 {
2058 $current = forceCreateModelElement(
2059 grammarAccess.getStarArgumentAccess().getStarArgumentAction_0(),
2060 $current);
2061 }
2062 )
2063 otherlv_1=Asterisk
2064 {
2065 newLeafNode(otherlv_1, grammarAccess.getStarArgumentAccess().getAsteriskKeyword_1());
2066 }
2067 )
2068;
2069
2070// Entry rule entryRuleTypedArgument
2071entryRuleTypedArgument returns [EObject current=null]:
2072 { newCompositeNode(grammarAccess.getTypedArgumentRule()); }
2073 iv_ruleTypedArgument=ruleTypedArgument
2074 { $current=$iv_ruleTypedArgument.current; }
2075 EOF;
2076
2077// Rule TypedArgument
2078ruleTypedArgument returns [EObject current=null]
2079@init {
2080 enterRule();
2081}
2082@after {
2083 leaveRule();
2084}:
2085 (
2086 (
2087 (
2088 {
2089 if ($current==null) {
2090 $current = createModelElement(grammarAccess.getTypedArgumentRule());
2091 }
2092 }
2093 {
2094 newCompositeNode(grammarAccess.getTypedArgumentAccess().getTypeNamedElementCrossReference_0_0());
2095 }
2096 ruleQualifiedName
2097 {
2098 afterParserOrEnumRuleCall();
2099 }
2100 )
2101 )
2102 (
2103 (
2104 {
2105 if ($current==null) {
2106 $current = createModelElement(grammarAccess.getTypedArgumentRule());
2107 }
2108 }
2109 {
2110 newCompositeNode(grammarAccess.getTypedArgumentAccess().getVariableNamedElementCrossReference_1_0());
2111 }
2112 ruleQualifiedName
2113 {
2114 afterParserOrEnumRuleCall();
2115 }
2116 )
2117 )
2118 )
2119;
2120
2121// Entry rule entryRuleTypedStarArgument
2122entryRuleTypedStarArgument returns [EObject current=null]:
2123 { newCompositeNode(grammarAccess.getTypedStarArgumentRule()); }
2124 iv_ruleTypedStarArgument=ruleTypedStarArgument
2125 { $current=$iv_ruleTypedStarArgument.current; }
2126 EOF;
2127
2128// Rule TypedStarArgument
2129ruleTypedStarArgument returns [EObject current=null]
2130@init {
2131 enterRule();
2132}
2133@after {
2134 leaveRule();
2135}:
2136 (
2137 (
2138 (
2139 {
2140 if ($current==null) {
2141 $current = createModelElement(grammarAccess.getTypedStarArgumentRule());
2142 }
2143 }
2144 {
2145 newCompositeNode(grammarAccess.getTypedStarArgumentAccess().getTypeNamedElementCrossReference_0_0());
2146 }
2147 ruleQualifiedName
2148 {
2149 afterParserOrEnumRuleCall();
2150 }
2151 )
2152 )
2153 otherlv_1=Asterisk
2154 {
2155 newLeafNode(otherlv_1, grammarAccess.getTypedStarArgumentAccess().getAsteriskKeyword_1());
2156 }
2157 )
2158;
2159
2160// Entry rule entryRuleReference
2161entryRuleReference returns [EObject current=null]:
2162 { newCompositeNode(grammarAccess.getReferenceRule()); }
2163 iv_ruleReference=ruleReference
2164 { $current=$iv_ruleReference.current; }
2165 EOF;
2166
2167// Rule Reference
2168ruleReference returns [EObject current=null]
2169@init {
2170 enterRule();
2171}
2172@after {
2173 leaveRule();
2174}:
2175 (
2176 (
2177 {
2178 if ($current==null) {
2179 $current = createModelElement(grammarAccess.getReferenceRule());
2180 }
2181 }
2182 {
2183 newCompositeNode(grammarAccess.getReferenceAccess().getReferredNamedElementCrossReference_0());
2184 }
2185 ruleQualifiedName
2186 {
2187 afterParserOrEnumRuleCall();
2188 }
2189 )
2190 )
2191;
2192
2193// Entry rule entryRuleInterval
2194entryRuleInterval returns [EObject current=null]:
2195 { newCompositeNode(grammarAccess.getIntervalRule()); }
2196 iv_ruleInterval=ruleInterval
2197 { $current=$iv_ruleInterval.current; }
2198 EOF;
2199
2200// Rule Interval
2201ruleInterval returns [EObject current=null]
2202@init {
2203 enterRule();
2204}
2205@after {
2206 leaveRule();
2207}:
2208 (
2209 otherlv_0=LeftSquareBracket
2210 {
2211 newLeafNode(otherlv_0, grammarAccess.getIntervalAccess().getLeftSquareBracketKeyword_0());
2212 }
2213 (
2214 (
2215 {
2216 newCompositeNode(grammarAccess.getIntervalAccess().getLowerBoundExpressionParserRuleCall_1_0());
2217 }
2218 lv_lowerBound_1_0=ruleExpression
2219 {
2220 if ($current==null) {
2221 $current = createModelElementForParent(grammarAccess.getIntervalRule());
2222 }
2223 set(
2224 $current,
2225 "lowerBound",
2226 lv_lowerBound_1_0,
2227 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
2228 afterParserOrEnumRuleCall();
2229 }
2230 )
2231 )
2232 otherlv_2=FullStopFullStop
2233 {
2234 newLeafNode(otherlv_2, grammarAccess.getIntervalAccess().getFullStopFullStopKeyword_2());
2235 }
2236 (
2237 (
2238 {
2239 newCompositeNode(grammarAccess.getIntervalAccess().getUpperBoundExpressionParserRuleCall_3_0());
2240 }
2241 lv_upperBound_3_0=ruleExpression
2242 {
2243 if ($current==null) {
2244 $current = createModelElementForParent(grammarAccess.getIntervalRule());
2245 }
2246 set(
2247 $current,
2248 "upperBound",
2249 lv_upperBound_3_0,
2250 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
2251 afterParserOrEnumRuleCall();
2252 }
2253 )
2254 )
2255 otherlv_4=RightSquareBracket
2256 {
2257 newLeafNode(otherlv_4, grammarAccess.getIntervalAccess().getRightSquareBracketKeyword_4());
2258 }
2259 )
2260;
2261
2262// Entry rule entryRuleLiteral
2263entryRuleLiteral returns [EObject current=null]:
2264 { newCompositeNode(grammarAccess.getLiteralRule()); }
2265 iv_ruleLiteral=ruleLiteral
2266 { $current=$iv_ruleLiteral.current; }
2267 EOF;
2268
2269// Rule Literal
2270ruleLiteral returns [EObject current=null]
2271@init {
2272 enterRule();
2273}
2274@after {
2275 leaveRule();
2276}:
2277 (
2278 {
2279 newCompositeNode(grammarAccess.getLiteralAccess().getLogicLiteralParserRuleCall_0());
2280 }
2281 this_LogicLiteral_0=ruleLogicLiteral
2282 {
2283 $current = $this_LogicLiteral_0.current;
2284 afterParserOrEnumRuleCall();
2285 }
2286 |
2287 {
2288 newCompositeNode(grammarAccess.getLiteralAccess().getNumericLiteralParserRuleCall_1());
2289 }
2290 this_NumericLiteral_1=ruleNumericLiteral
2291 {
2292 $current = $this_NumericLiteral_1.current;
2293 afterParserOrEnumRuleCall();
2294 }
2295 |
2296 {
2297 newCompositeNode(grammarAccess.getLiteralAccess().getInfinityLiteralParserRuleCall_2());
2298 }
2299 this_InfinityLiteral_2=ruleInfinityLiteral
2300 {
2301 $current = $this_InfinityLiteral_2.current;
2302 afterParserOrEnumRuleCall();
2303 }
2304 |
2305 {
2306 newCompositeNode(grammarAccess.getLiteralAccess().getEmptyIntervalLiteralParserRuleCall_3());
2307 }
2308 this_EmptyIntervalLiteral_3=ruleEmptyIntervalLiteral
2309 {
2310 $current = $this_EmptyIntervalLiteral_3.current;
2311 afterParserOrEnumRuleCall();
2312 }
2313 |
2314 {
2315 newCompositeNode(grammarAccess.getLiteralAccess().getStringLiteralParserRuleCall_4());
2316 }
2317 this_StringLiteral_4=ruleStringLiteral
2318 {
2319 $current = $this_StringLiteral_4.current;
2320 afterParserOrEnumRuleCall();
2321 }
2322 )
2323;
2324
2325// Entry rule entryRuleLogicLiteral
2326entryRuleLogicLiteral returns [EObject current=null]:
2327 { newCompositeNode(grammarAccess.getLogicLiteralRule()); }
2328 iv_ruleLogicLiteral=ruleLogicLiteral
2329 { $current=$iv_ruleLogicLiteral.current; }
2330 EOF;
2331
2332// Rule LogicLiteral
2333ruleLogicLiteral returns [EObject current=null]
2334@init {
2335 enterRule();
2336}
2337@after {
2338 leaveRule();
2339}:
2340 (
2341 (
2342 {
2343 newCompositeNode(grammarAccess.getLogicLiteralAccess().getValueLogicValueEnumRuleCall_0());
2344 }
2345 lv_value_0_0=ruleLogicValue
2346 {
2347 if ($current==null) {
2348 $current = createModelElementForParent(grammarAccess.getLogicLiteralRule());
2349 }
2350 set(
2351 $current,
2352 "value",
2353 lv_value_0_0,
2354 "org.eclipse.viatra.solver.language.SolverLanguage.LogicValue");
2355 afterParserOrEnumRuleCall();
2356 }
2357 )
2358 )
2359;
2360
2361// Entry rule entryRuleNumericLiteral
2362entryRuleNumericLiteral returns [EObject current=null]:
2363 { newCompositeNode(grammarAccess.getNumericLiteralRule()); }
2364 iv_ruleNumericLiteral=ruleNumericLiteral
2365 { $current=$iv_ruleNumericLiteral.current; }
2366 EOF;
2367
2368// Rule NumericLiteral
2369ruleNumericLiteral returns [EObject current=null]
2370@init {
2371 enterRule();
2372}
2373@after {
2374 leaveRule();
2375}:
2376 (
2377 (
2378 {
2379 newCompositeNode(grammarAccess.getNumericLiteralAccess().getValueRealParserRuleCall_0());
2380 }
2381 lv_value_0_0=ruleReal
2382 {
2383 if ($current==null) {
2384 $current = createModelElementForParent(grammarAccess.getNumericLiteralRule());
2385 }
2386 set(
2387 $current,
2388 "value",
2389 lv_value_0_0,
2390 "org.eclipse.viatra.solver.language.SolverLanguage.Real");
2391 afterParserOrEnumRuleCall();
2392 }
2393 )
2394 )
2395;
2396
2397// Entry rule entryRuleInfinityLiteral
2398entryRuleInfinityLiteral returns [EObject current=null]:
2399 { newCompositeNode(grammarAccess.getInfinityLiteralRule()); }
2400 iv_ruleInfinityLiteral=ruleInfinityLiteral
2401 { $current=$iv_ruleInfinityLiteral.current; }
2402 EOF;
2403
2404// Rule InfinityLiteral
2405ruleInfinityLiteral returns [EObject current=null]
2406@init {
2407 enterRule();
2408}
2409@after {
2410 leaveRule();
2411}:
2412 (
2413 (
2414 {
2415 $current = forceCreateModelElement(
2416 grammarAccess.getInfinityLiteralAccess().getInfinityLiteralAction_0(),
2417 $current);
2418 }
2419 )
2420 otherlv_1=Inf
2421 {
2422 newLeafNode(otherlv_1, grammarAccess.getInfinityLiteralAccess().getInfKeyword_1());
2423 }
2424 )
2425;
2426
2427// Entry rule entryRuleEmptyIntervalLiteral
2428entryRuleEmptyIntervalLiteral returns [EObject current=null]:
2429 { newCompositeNode(grammarAccess.getEmptyIntervalLiteralRule()); }
2430 iv_ruleEmptyIntervalLiteral=ruleEmptyIntervalLiteral
2431 { $current=$iv_ruleEmptyIntervalLiteral.current; }
2432 EOF;
2433
2434// Rule EmptyIntervalLiteral
2435ruleEmptyIntervalLiteral returns [EObject current=null]
2436@init {
2437 enterRule();
2438}
2439@after {
2440 leaveRule();
2441}:
2442 (
2443 (
2444 {
2445 $current = forceCreateModelElement(
2446 grammarAccess.getEmptyIntervalLiteralAccess().getEmptyIntervalLiteralAction_0(),
2447 $current);
2448 }
2449 )
2450 otherlv_1=Empty
2451 {
2452 newLeafNode(otherlv_1, grammarAccess.getEmptyIntervalLiteralAccess().getEmptyKeyword_1());
2453 }
2454 )
2455;
2456
2457// Entry rule entryRuleStringLiteral
2458entryRuleStringLiteral returns [EObject current=null]:
2459 { newCompositeNode(grammarAccess.getStringLiteralRule()); }
2460 iv_ruleStringLiteral=ruleStringLiteral
2461 { $current=$iv_ruleStringLiteral.current; }
2462 EOF;
2463
2464// Rule StringLiteral
2465ruleStringLiteral returns [EObject current=null]
2466@init {
2467 enterRule();
2468}
2469@after {
2470 leaveRule();
2471}:
2472 (
2473 (
2474 lv_value_0_0=RULE_STRING
2475 {
2476 newLeafNode(lv_value_0_0, grammarAccess.getStringLiteralAccess().getValueSTRINGTerminalRuleCall_0());
2477 }
2478 {
2479 if ($current==null) {
2480 $current = createModelElement(grammarAccess.getStringLiteralRule());
2481 }
2482 setWithLastConsumed(
2483 $current,
2484 "value",
2485 lv_value_0_0,
2486 "org.eclipse.viatra.solver.language.SolverLanguage.STRING");
2487 }
2488 )
2489 )
2490;
2491
2492// Entry rule entryRuleClassDefinition
2493entryRuleClassDefinition returns [EObject current=null]:
2494 { newCompositeNode(grammarAccess.getClassDefinitionRule()); }
2495 iv_ruleClassDefinition=ruleClassDefinition
2496 { $current=$iv_ruleClassDefinition.current; }
2497 EOF;
2498
2499// Rule ClassDefinition
2500ruleClassDefinition returns [EObject current=null]
2501@init {
2502 enterRule();
2503}
2504@after {
2505 leaveRule();
2506}:
2507 (
2508 (
2509 (
2510 lv_abstract_0_0=Abstract
2511 {
2512 newLeafNode(lv_abstract_0_0, grammarAccess.getClassDefinitionAccess().getAbstractAbstractKeyword_0_0());
2513 }
2514 {
2515 if ($current==null) {
2516 $current = createModelElement(grammarAccess.getClassDefinitionRule());
2517 }
2518 setWithLastConsumed($current, "abstract", true, "abstract");
2519 }
2520 )
2521 )?
2522 otherlv_1=Class
2523 {
2524 newLeafNode(otherlv_1, grammarAccess.getClassDefinitionAccess().getClassKeyword_1());
2525 }
2526 (
2527 (
2528 lv_name_2_0=RULE_ID
2529 {
2530 newLeafNode(lv_name_2_0, grammarAccess.getClassDefinitionAccess().getNameIDTerminalRuleCall_2_0());
2531 }
2532 {
2533 if ($current==null) {
2534 $current = createModelElement(grammarAccess.getClassDefinitionRule());
2535 }
2536 setWithLastConsumed(
2537 $current,
2538 "name",
2539 lv_name_2_0,
2540 "org.eclipse.xtext.common.Terminals.ID");
2541 }
2542 )
2543 )
2544 (
2545 otherlv_3=Extends
2546 {
2547 newLeafNode(otherlv_3, grammarAccess.getClassDefinitionAccess().getExtendsKeyword_3_0());
2548 }
2549 (
2550 (
2551 {
2552 if ($current==null) {
2553 $current = createModelElement(grammarAccess.getClassDefinitionRule());
2554 }
2555 }
2556 {
2557 newCompositeNode(grammarAccess.getClassDefinitionAccess().getSuperclassesNamedElementCrossReference_3_1_0());
2558 }
2559 ruleQualifiedName
2560 {
2561 afterParserOrEnumRuleCall();
2562 }
2563 )
2564 )
2565 (
2566 otherlv_5=Comma
2567 {
2568 newLeafNode(otherlv_5, grammarAccess.getClassDefinitionAccess().getCommaKeyword_3_2_0());
2569 }
2570 (
2571 (
2572 {
2573 if ($current==null) {
2574 $current = createModelElement(grammarAccess.getClassDefinitionRule());
2575 }
2576 }
2577 {
2578 newCompositeNode(grammarAccess.getClassDefinitionAccess().getSuperclassesNamedElementCrossReference_3_2_1_0());
2579 }
2580 ruleQualifiedName
2581 {
2582 afterParserOrEnumRuleCall();
2583 }
2584 )
2585 )
2586 )*
2587 )?
2588 otherlv_7=LeftCurlyBracket
2589 {
2590 newLeafNode(otherlv_7, grammarAccess.getClassDefinitionAccess().getLeftCurlyBracketKeyword_4());
2591 }
2592 (
2593 (
2594 {
2595 newCompositeNode(grammarAccess.getClassDefinitionAccess().getMembersMemberDefinitionParserRuleCall_5_0());
2596 }
2597 lv_members_8_0=ruleMemberDefinition
2598 {
2599 if ($current==null) {
2600 $current = createModelElementForParent(grammarAccess.getClassDefinitionRule());
2601 }
2602 add(
2603 $current,
2604 "members",
2605 lv_members_8_0,
2606 "org.eclipse.viatra.solver.language.SolverLanguage.MemberDefinition");
2607 afterParserOrEnumRuleCall();
2608 }
2609 )
2610 )*
2611 otherlv_9=RightCurlyBracket
2612 {
2613 newLeafNode(otherlv_9, grammarAccess.getClassDefinitionAccess().getRightCurlyBracketKeyword_6());
2614 }
2615 )
2616;
2617
2618// Entry rule entryRuleMemberDefinition
2619entryRuleMemberDefinition returns [EObject current=null]:
2620 { newCompositeNode(grammarAccess.getMemberDefinitionRule()); }
2621 iv_ruleMemberDefinition=ruleMemberDefinition
2622 { $current=$iv_ruleMemberDefinition.current; }
2623 EOF;
2624
2625// Rule MemberDefinition
2626ruleMemberDefinition returns [EObject current=null]
2627@init {
2628 enterRule();
2629}
2630@after {
2631 leaveRule();
2632}:
2633 (
2634 (
2635 (
2636 lv_containment_0_0=Contains
2637 {
2638 newLeafNode(lv_containment_0_0, grammarAccess.getMemberDefinitionAccess().getContainmentContainsKeyword_0_0());
2639 }
2640 {
2641 if ($current==null) {
2642 $current = createModelElement(grammarAccess.getMemberDefinitionRule());
2643 }
2644 setWithLastConsumed($current, "containment", true, "contains");
2645 }
2646 )
2647 )?
2648 (
2649 (
2650 {
2651 if ($current==null) {
2652 $current = createModelElement(grammarAccess.getMemberDefinitionRule());
2653 }
2654 }
2655 {
2656 newCompositeNode(grammarAccess.getMemberDefinitionAccess().getTypeNamedElementCrossReference_1_0());
2657 }
2658 ruleQualifiedName
2659 {
2660 afterParserOrEnumRuleCall();
2661 }
2662 )
2663 )
2664 (
2665 (
2666 {
2667 newCompositeNode(grammarAccess.getMemberDefinitionAccess().getMultiplicityMultiplicityParserRuleCall_2_0());
2668 }
2669 lv_multiplicity_2_0=ruleMultiplicity
2670 {
2671 if ($current==null) {
2672 $current = createModelElementForParent(grammarAccess.getMemberDefinitionRule());
2673 }
2674 set(
2675 $current,
2676 "multiplicity",
2677 lv_multiplicity_2_0,
2678 "org.eclipse.viatra.solver.language.SolverLanguage.Multiplicity");
2679 afterParserOrEnumRuleCall();
2680 }
2681 )
2682 )?
2683 (
2684 (
2685 lv_name_3_0=RULE_ID
2686 {
2687 newLeafNode(lv_name_3_0, grammarAccess.getMemberDefinitionAccess().getNameIDTerminalRuleCall_3_0());
2688 }
2689 {
2690 if ($current==null) {
2691 $current = createModelElement(grammarAccess.getMemberDefinitionRule());
2692 }
2693 setWithLastConsumed(
2694 $current,
2695 "name",
2696 lv_name_3_0,
2697 "org.eclipse.xtext.common.Terminals.ID");
2698 }
2699 )
2700 )
2701 (
2702 otherlv_4=Opposite
2703 {
2704 newLeafNode(otherlv_4, grammarAccess.getMemberDefinitionAccess().getOppositeKeyword_4_0());
2705 }
2706 (
2707 (
2708 {
2709 if ($current==null) {
2710 $current = createModelElement(grammarAccess.getMemberDefinitionRule());
2711 }
2712 }
2713 {
2714 newCompositeNode(grammarAccess.getMemberDefinitionAccess().getOppositeNamedElementCrossReference_4_1_0());
2715 }
2716 ruleQualifiedName
2717 {
2718 afterParserOrEnumRuleCall();
2719 }
2720 )
2721 )
2722 )?
2723 (
2724 otherlv_6=Semicolon
2725 {
2726 newLeafNode(otherlv_6, grammarAccess.getMemberDefinitionAccess().getSemicolonKeyword_5());
2727 }
2728 )?
2729 )
2730;
2731
2732// Entry rule entryRuleMultiplicity
2733entryRuleMultiplicity returns [EObject current=null]:
2734 { newCompositeNode(grammarAccess.getMultiplicityRule()); }
2735 iv_ruleMultiplicity=ruleMultiplicity
2736 { $current=$iv_ruleMultiplicity.current; }
2737 EOF;
2738
2739// Rule Multiplicity
2740ruleMultiplicity returns [EObject current=null]
2741@init {
2742 enterRule();
2743}
2744@after {
2745 leaveRule();
2746}:
2747 (
2748 {
2749 newCompositeNode(grammarAccess.getMultiplicityAccess().getManyMultiplicityParserRuleCall_0());
2750 }
2751 this_ManyMultiplicity_0=ruleManyMultiplicity
2752 {
2753 $current = $this_ManyMultiplicity_0.current;
2754 afterParserOrEnumRuleCall();
2755 }
2756 |
2757 {
2758 newCompositeNode(grammarAccess.getMultiplicityAccess().getExactMultiplicityParserRuleCall_1());
2759 }
2760 this_ExactMultiplicity_1=ruleExactMultiplicity
2761 {
2762 $current = $this_ExactMultiplicity_1.current;
2763 afterParserOrEnumRuleCall();
2764 }
2765 |
2766 {
2767 newCompositeNode(grammarAccess.getMultiplicityAccess().getBoundedMultiplicityParserRuleCall_2());
2768 }
2769 this_BoundedMultiplicity_2=ruleBoundedMultiplicity
2770 {
2771 $current = $this_BoundedMultiplicity_2.current;
2772 afterParserOrEnumRuleCall();
2773 }
2774 )
2775;
2776
2777// Entry rule entryRuleManyMultiplicity
2778entryRuleManyMultiplicity returns [EObject current=null]:
2779 { newCompositeNode(grammarAccess.getManyMultiplicityRule()); }
2780 iv_ruleManyMultiplicity=ruleManyMultiplicity
2781 { $current=$iv_ruleManyMultiplicity.current; }
2782 EOF;
2783
2784// Rule ManyMultiplicity
2785ruleManyMultiplicity returns [EObject current=null]
2786@init {
2787 enterRule();
2788}
2789@after {
2790 leaveRule();
2791}:
2792 (
2793 (
2794 {
2795 $current = forceCreateModelElement(
2796 grammarAccess.getManyMultiplicityAccess().getManyMultiplicityAction_0(),
2797 $current);
2798 }
2799 )
2800 otherlv_1=LeftSquareBracket
2801 {
2802 newLeafNode(otherlv_1, grammarAccess.getManyMultiplicityAccess().getLeftSquareBracketKeyword_1());
2803 }
2804 otherlv_2=RightSquareBracket
2805 {
2806 newLeafNode(otherlv_2, grammarAccess.getManyMultiplicityAccess().getRightSquareBracketKeyword_2());
2807 }
2808 )
2809;
2810
2811// Entry rule entryRuleExactMultiplicity
2812entryRuleExactMultiplicity returns [EObject current=null]:
2813 { newCompositeNode(grammarAccess.getExactMultiplicityRule()); }
2814 iv_ruleExactMultiplicity=ruleExactMultiplicity
2815 { $current=$iv_ruleExactMultiplicity.current; }
2816 EOF;
2817
2818// Rule ExactMultiplicity
2819ruleExactMultiplicity returns [EObject current=null]
2820@init {
2821 enterRule();
2822}
2823@after {
2824 leaveRule();
2825}:
2826 (
2827 otherlv_0=LeftSquareBracket
2828 {
2829 newLeafNode(otherlv_0, grammarAccess.getExactMultiplicityAccess().getLeftSquareBracketKeyword_0());
2830 }
2831 (
2832 (
2833 {
2834 newCompositeNode(grammarAccess.getExactMultiplicityAccess().getMultiplicityUpperMultiplictyParserRuleCall_1_0());
2835 }
2836 lv_multiplicity_1_0=ruleUpperMultiplicty
2837 {
2838 if ($current==null) {
2839 $current = createModelElementForParent(grammarAccess.getExactMultiplicityRule());
2840 }
2841 set(
2842 $current,
2843 "multiplicity",
2844 lv_multiplicity_1_0,
2845 "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty");
2846 afterParserOrEnumRuleCall();
2847 }
2848 )
2849 )
2850 otherlv_2=RightSquareBracket
2851 {
2852 newLeafNode(otherlv_2, grammarAccess.getExactMultiplicityAccess().getRightSquareBracketKeyword_2());
2853 }
2854 )
2855;
2856
2857// Entry rule entryRuleBoundedMultiplicity
2858entryRuleBoundedMultiplicity returns [EObject current=null]:
2859 { newCompositeNode(grammarAccess.getBoundedMultiplicityRule()); }
2860 iv_ruleBoundedMultiplicity=ruleBoundedMultiplicity
2861 { $current=$iv_ruleBoundedMultiplicity.current; }
2862 EOF;
2863
2864// Rule BoundedMultiplicity
2865ruleBoundedMultiplicity returns [EObject current=null]
2866@init {
2867 enterRule();
2868}
2869@after {
2870 leaveRule();
2871}:
2872 (
2873 otherlv_0=LeftSquareBracket
2874 {
2875 newLeafNode(otherlv_0, grammarAccess.getBoundedMultiplicityAccess().getLeftSquareBracketKeyword_0());
2876 }
2877 (
2878 (
2879 lv_lowerBound_1_0=RULE_INT
2880 {
2881 newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedMultiplicityAccess().getLowerBoundINTTerminalRuleCall_1_0());
2882 }
2883 {
2884 if ($current==null) {
2885 $current = createModelElement(grammarAccess.getBoundedMultiplicityRule());
2886 }
2887 setWithLastConsumed(
2888 $current,
2889 "lowerBound",
2890 lv_lowerBound_1_0,
2891 "org.eclipse.xtext.common.Terminals.INT");
2892 }
2893 )
2894 )
2895 otherlv_2=FullStopFullStop
2896 {
2897 newLeafNode(otherlv_2, grammarAccess.getBoundedMultiplicityAccess().getFullStopFullStopKeyword_2());
2898 }
2899 (
2900 (
2901 {
2902 newCompositeNode(grammarAccess.getBoundedMultiplicityAccess().getUpperBoundUpperMultiplictyParserRuleCall_3_0());
2903 }
2904 lv_upperBound_3_0=ruleUpperMultiplicty
2905 {
2906 if ($current==null) {
2907 $current = createModelElementForParent(grammarAccess.getBoundedMultiplicityRule());
2908 }
2909 set(
2910 $current,
2911 "upperBound",
2912 lv_upperBound_3_0,
2913 "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty");
2914 afterParserOrEnumRuleCall();
2915 }
2916 )
2917 )
2918 otherlv_4=RightSquareBracket
2919 {
2920 newLeafNode(otherlv_4, grammarAccess.getBoundedMultiplicityAccess().getRightSquareBracketKeyword_4());
2921 }
2922 )
2923;
2924
2925// Entry rule entryRuleScopeDefinition
2926entryRuleScopeDefinition returns [EObject current=null]:
2927 { newCompositeNode(grammarAccess.getScopeDefinitionRule()); }
2928 iv_ruleScopeDefinition=ruleScopeDefinition
2929 { $current=$iv_ruleScopeDefinition.current; }
2930 EOF;
2931
2932// Rule ScopeDefinition
2933ruleScopeDefinition returns [EObject current=null]
2934@init {
2935 enterRule();
2936}
2937@after {
2938 leaveRule();
2939}:
2940 (
2941 {
2942 newCompositeNode(grammarAccess.getScopeDefinitionAccess().getExactScopeDefinitionParserRuleCall_0());
2943 }
2944 this_ExactScopeDefinition_0=ruleExactScopeDefinition
2945 {
2946 $current = $this_ExactScopeDefinition_0.current;
2947 afterParserOrEnumRuleCall();
2948 }
2949 |
2950 {
2951 newCompositeNode(grammarAccess.getScopeDefinitionAccess().getBoundedScopeDefinitionParserRuleCall_1());
2952 }
2953 this_BoundedScopeDefinition_1=ruleBoundedScopeDefinition
2954 {
2955 $current = $this_BoundedScopeDefinition_1.current;
2956 afterParserOrEnumRuleCall();
2957 }
2958 |
2959 {
2960 newCompositeNode(grammarAccess.getScopeDefinitionAccess().getLowerBoundedScopeDefinitionParserRuleCall_2());
2961 }
2962 this_LowerBoundedScopeDefinition_2=ruleLowerBoundedScopeDefinition
2963 {
2964 $current = $this_LowerBoundedScopeDefinition_2.current;
2965 afterParserOrEnumRuleCall();
2966 }
2967 )
2968;
2969
2970// Entry rule entryRuleExactScopeDefinition
2971entryRuleExactScopeDefinition returns [EObject current=null]:
2972 { newCompositeNode(grammarAccess.getExactScopeDefinitionRule()); }
2973 iv_ruleExactScopeDefinition=ruleExactScopeDefinition
2974 { $current=$iv_ruleExactScopeDefinition.current; }
2975 EOF;
2976
2977// Rule ExactScopeDefinition
2978ruleExactScopeDefinition returns [EObject current=null]
2979@init {
2980 enterRule();
2981}
2982@after {
2983 leaveRule();
2984}:
2985 (
2986 otherlv_0=Scope
2987 {
2988 newLeafNode(otherlv_0, grammarAccess.getExactScopeDefinitionAccess().getScopeKeyword_0());
2989 }
2990 (
2991 (
2992 {
2993 if ($current==null) {
2994 $current = createModelElement(grammarAccess.getExactScopeDefinitionRule());
2995 }
2996 }
2997 {
2998 newCompositeNode(grammarAccess.getExactScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0());
2999 }
3000 ruleQualifiedName
3001 {
3002 afterParserOrEnumRuleCall();
3003 }
3004 )
3005 )
3006 otherlv_2=EqualsSignEqualsSign
3007 {
3008 newLeafNode(otherlv_2, grammarAccess.getExactScopeDefinitionAccess().getEqualsSignEqualsSignKeyword_2());
3009 }
3010 (
3011 (
3012 lv_exactScope_3_0=RULE_INT
3013 {
3014 newLeafNode(lv_exactScope_3_0, grammarAccess.getExactScopeDefinitionAccess().getExactScopeINTTerminalRuleCall_3_0());
3015 }
3016 {
3017 if ($current==null) {
3018 $current = createModelElement(grammarAccess.getExactScopeDefinitionRule());
3019 }
3020 setWithLastConsumed(
3021 $current,
3022 "exactScope",
3023 lv_exactScope_3_0,
3024 "org.eclipse.xtext.common.Terminals.INT");
3025 }
3026 )
3027 )
3028 )
3029;
3030
3031// Entry rule entryRuleBoundedScopeDefinition
3032entryRuleBoundedScopeDefinition returns [EObject current=null]:
3033 { newCompositeNode(grammarAccess.getBoundedScopeDefinitionRule()); }
3034 iv_ruleBoundedScopeDefinition=ruleBoundedScopeDefinition
3035 { $current=$iv_ruleBoundedScopeDefinition.current; }
3036 EOF;
3037
3038// Rule BoundedScopeDefinition
3039ruleBoundedScopeDefinition returns [EObject current=null]
3040@init {
3041 enterRule();
3042}
3043@after {
3044 leaveRule();
3045}:
3046 (
3047 otherlv_0=Scope
3048 {
3049 newLeafNode(otherlv_0, grammarAccess.getBoundedScopeDefinitionAccess().getScopeKeyword_0());
3050 }
3051 (
3052 (
3053 (
3054 (
3055 (
3056 lv_lowerBound_1_0=RULE_INT
3057 {
3058 newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0_0());
3059 }
3060 {
3061 if ($current==null) {
3062 $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule());
3063 }
3064 setWithLastConsumed(
3065 $current,
3066 "lowerBound",
3067 lv_lowerBound_1_0,
3068 "org.eclipse.xtext.common.Terminals.INT");
3069 }
3070 )
3071 )
3072 otherlv_2=LessThanSignEqualsSign
3073 {
3074 newLeafNode(otherlv_2, grammarAccess.getBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_0_1());
3075 }
3076 )?
3077 (
3078 (
3079 {
3080 if ($current==null) {
3081 $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule());
3082 }
3083 }
3084 {
3085 newCompositeNode(grammarAccess.getBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0_1_0());
3086 }
3087 ruleQualifiedName
3088 {
3089 afterParserOrEnumRuleCall();
3090 }
3091 )
3092 )
3093 otherlv_4=LessThanSignEqualsSign
3094 {
3095 newLeafNode(otherlv_4, grammarAccess.getBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_2());
3096 }
3097 (
3098 (
3099 lv_upperBound_5_0=RULE_INT
3100 {
3101 newLeafNode(lv_upperBound_5_0, grammarAccess.getBoundedScopeDefinitionAccess().getUpperBoundINTTerminalRuleCall_1_0_3_0());
3102 }
3103 {
3104 if ($current==null) {
3105 $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule());
3106 }
3107 setWithLastConsumed(
3108 $current,
3109 "upperBound",
3110 lv_upperBound_5_0,
3111 "org.eclipse.xtext.common.Terminals.INT");
3112 }
3113 )
3114 )
3115 )
3116 |
3117 (
3118 (
3119 (
3120 lv_upperBound_6_0=RULE_INT
3121 {
3122 newLeafNode(lv_upperBound_6_0, grammarAccess.getBoundedScopeDefinitionAccess().getUpperBoundINTTerminalRuleCall_1_1_0_0());
3123 }
3124 {
3125 if ($current==null) {
3126 $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule());
3127 }
3128 setWithLastConsumed(
3129 $current,
3130 "upperBound",
3131 lv_upperBound_6_0,
3132 "org.eclipse.xtext.common.Terminals.INT");
3133 }
3134 )
3135 )
3136 otherlv_7=GreaterThanSignEqualsSign
3137 {
3138 newLeafNode(otherlv_7, grammarAccess.getBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_1());
3139 }
3140 (
3141 (
3142 {
3143 if ($current==null) {
3144 $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule());
3145 }
3146 }
3147 {
3148 newCompositeNode(grammarAccess.getBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_1_2_0());
3149 }
3150 ruleQualifiedName
3151 {
3152 afterParserOrEnumRuleCall();
3153 }
3154 )
3155 )
3156 (
3157 otherlv_9=GreaterThanSignEqualsSign
3158 {
3159 newLeafNode(otherlv_9, grammarAccess.getBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_3_0());
3160 }
3161 (
3162 (
3163 lv_lowerBound_10_0=RULE_INT
3164 {
3165 newLeafNode(lv_lowerBound_10_0, grammarAccess.getBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_1_3_1_0());
3166 }
3167 {
3168 if ($current==null) {
3169 $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule());
3170 }
3171 setWithLastConsumed(
3172 $current,
3173 "lowerBound",
3174 lv_lowerBound_10_0,
3175 "org.eclipse.xtext.common.Terminals.INT");
3176 }
3177 )
3178 )
3179 )?
3180 )
3181 )
3182 )
3183;
3184
3185// Entry rule entryRuleLowerBoundedScopeDefinition
3186entryRuleLowerBoundedScopeDefinition returns [EObject current=null]:
3187 { newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionRule()); }
3188 iv_ruleLowerBoundedScopeDefinition=ruleLowerBoundedScopeDefinition
3189 { $current=$iv_ruleLowerBoundedScopeDefinition.current; }
3190 EOF;
3191
3192// Rule LowerBoundedScopeDefinition
3193ruleLowerBoundedScopeDefinition returns [EObject current=null]
3194@init {
3195 enterRule();
3196}
3197@after {
3198 leaveRule();
3199}:
3200 (
3201 otherlv_0=Scope
3202 {
3203 newLeafNode(otherlv_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getScopeKeyword_0());
3204 }
3205 (
3206 (
3207 (
3208 (
3209 lv_lowerBound_1_0=RULE_INT
3210 {
3211 newLeafNode(lv_lowerBound_1_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0());
3212 }
3213 {
3214 if ($current==null) {
3215 $current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule());
3216 }
3217 setWithLastConsumed(
3218 $current,
3219 "lowerBound",
3220 lv_lowerBound_1_0,
3221 "org.eclipse.xtext.common.Terminals.INT");
3222 }
3223 )
3224 )
3225 otherlv_2=LessThanSignEqualsSign
3226 {
3227 newLeafNode(otherlv_2, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_1());
3228 }
3229 (
3230 (
3231 {
3232 if ($current==null) {
3233 $current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule());
3234 }
3235 }
3236 {
3237 newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0_2_0());
3238 }
3239 ruleQualifiedName
3240 {
3241 afterParserOrEnumRuleCall();
3242 }
3243 )
3244 )
3245 )
3246 |
3247 (
3248 (
3249 (
3250 {
3251 if ($current==null) {
3252 $current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule());
3253 }
3254 }
3255 {
3256 newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_1_0_0());
3257 }
3258 ruleQualifiedName
3259 {
3260 afterParserOrEnumRuleCall();
3261 }
3262 )
3263 )
3264 otherlv_5=GreaterThanSignEqualsSign
3265 {
3266 newLeafNode(otherlv_5, grammarAccess.getLowerBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_1());
3267 }
3268 (
3269 (
3270 lv_lowerBound_6_0=RULE_INT
3271 {
3272 newLeafNode(lv_lowerBound_6_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_1_2_0());
3273 }
3274 {
3275 if ($current==null) {
3276 $current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule());
3277 }
3278 setWithLastConsumed(
3279 $current,
3280 "lowerBound",
3281 lv_lowerBound_6_0,
3282 "org.eclipse.xtext.common.Terminals.INT");
3283 }
3284 )
3285 )
3286 )
3287 )
3288 )
3289;
3290
3291// Entry rule entryRuleObjectiveDefinition
3292entryRuleObjectiveDefinition returns [EObject current=null]:
3293 { newCompositeNode(grammarAccess.getObjectiveDefinitionRule()); }
3294 iv_ruleObjectiveDefinition=ruleObjectiveDefinition
3295 { $current=$iv_ruleObjectiveDefinition.current; }
3296 EOF;
3297
3298// Rule ObjectiveDefinition
3299ruleObjectiveDefinition returns [EObject current=null]
3300@init {
3301 enterRule();
3302}
3303@after {
3304 leaveRule();
3305}:
3306 (
3307 (
3308 (
3309 {
3310 newCompositeNode(grammarAccess.getObjectiveDefinitionAccess().getKindObjectiveKindEnumRuleCall_0_0());
3311 }
3312 lv_kind_0_0=ruleObjectiveKind
3313 {
3314 if ($current==null) {
3315 $current = createModelElementForParent(grammarAccess.getObjectiveDefinitionRule());
3316 }
3317 set(
3318 $current,
3319 "kind",
3320 lv_kind_0_0,
3321 "org.eclipse.viatra.solver.language.SolverLanguage.ObjectiveKind");
3322 afterParserOrEnumRuleCall();
3323 }
3324 )
3325 )
3326 (
3327 (
3328 {
3329 newCompositeNode(grammarAccess.getObjectiveDefinitionAccess().getObjectiveExpressionParserRuleCall_1_0());
3330 }
3331 lv_objective_1_0=ruleExpression
3332 {
3333 if ($current==null) {
3334 $current = createModelElementForParent(grammarAccess.getObjectiveDefinitionRule());
3335 }
3336 set(
3337 $current,
3338 "objective",
3339 lv_objective_1_0,
3340 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
3341 afterParserOrEnumRuleCall();
3342 }
3343 )
3344 )
3345 )
3346;
3347
3348// Entry rule entryRuleUpperMultiplicty
3349entryRuleUpperMultiplicty returns [String current=null]:
3350 { newCompositeNode(grammarAccess.getUpperMultiplictyRule()); }
3351 iv_ruleUpperMultiplicty=ruleUpperMultiplicty
3352 { $current=$iv_ruleUpperMultiplicty.current.getText(); }
3353 EOF;
3354
3355// Rule UpperMultiplicty
3356ruleUpperMultiplicty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
3357@init {
3358 enterRule();
3359}
3360@after {
3361 leaveRule();
3362}:
3363 (
3364 this_INT_0=RULE_INT
3365 {
3366 $current.merge(this_INT_0);
3367 }
3368 {
3369 newLeafNode(this_INT_0, grammarAccess.getUpperMultiplictyAccess().getINTTerminalRuleCall_0());
3370 }
3371 |
3372 kw=Asterisk
3373 {
3374 $current.merge(kw);
3375 newLeafNode(kw, grammarAccess.getUpperMultiplictyAccess().getAsteriskKeyword_1());
3376 }
3377 )
3378;
3379
3380// Entry rule entryRuleReal
3381entryRuleReal returns [String current=null]@init {
3382 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
3383}:
3384 { newCompositeNode(grammarAccess.getRealRule()); }
3385 iv_ruleReal=ruleReal
3386 { $current=$iv_ruleReal.current.getText(); }
3387 EOF;
3388finally {
3389 myHiddenTokenState.restore();
3390}
3391
3392// Rule Real
3393ruleReal returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
3394@init {
3395 enterRule();
3396 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
3397}
3398@after {
3399 leaveRule();
3400}:
3401 (
3402 this_INT_0=RULE_INT
3403 {
3404 $current.merge(this_INT_0);
3405 }
3406 {
3407 newLeafNode(this_INT_0, grammarAccess.getRealAccess().getINTTerminalRuleCall_0());
3408 }
3409 (
3410 kw=FullStop
3411 {
3412 $current.merge(kw);
3413 newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_1_0());
3414 }
3415 this_INT_2=RULE_INT
3416 {
3417 $current.merge(this_INT_2);
3418 }
3419 {
3420 newLeafNode(this_INT_2, grammarAccess.getRealAccess().getINTTerminalRuleCall_1_1());
3421 }
3422 )?
3423 )
3424;
3425finally {
3426 myHiddenTokenState.restore();
3427}
3428
3429// Entry rule entryRuleQualifiedName
3430entryRuleQualifiedName returns [String current=null]@init {
3431 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
3432}:
3433 { newCompositeNode(grammarAccess.getQualifiedNameRule()); }
3434 iv_ruleQualifiedName=ruleQualifiedName
3435 { $current=$iv_ruleQualifiedName.current.getText(); }
3436 EOF;
3437finally {
3438 myHiddenTokenState.restore();
3439}
3440
3441// Rule QualifiedName
3442ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
3443@init {
3444 enterRule();
3445 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
3446}
3447@after {
3448 leaveRule();
3449}:
3450 (
3451 (
3452 this_ID_0=RULE_ID
3453 {
3454 $current.merge(this_ID_0);
3455 }
3456 {
3457 newLeafNode(this_ID_0, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0_0());
3458 }
3459 (
3460 kw=FullStop
3461 {
3462 $current.merge(kw);
3463 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_0_1_0());
3464 }
3465 this_ID_2=RULE_ID
3466 {
3467 $current.merge(this_ID_2);
3468 }
3469 {
3470 newLeafNode(this_ID_2, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0_1_1());
3471 }
3472 )*
3473 )
3474 |
3475 this_QUOTED_ID_3=RULE_QUOTED_ID
3476 {
3477 $current.merge(this_QUOTED_ID_3);
3478 }
3479 {
3480 newLeafNode(this_QUOTED_ID_3, grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_1());
3481 }
3482 )
3483;
3484finally {
3485 myHiddenTokenState.restore();
3486}
3487
3488// Rule MetricType
3489ruleMetricType returns [Enumerator current=null]
3490@init {
3491 enterRule();
3492}
3493@after {
3494 leaveRule();
3495}:
3496 (
3497 (
3498 enumLiteral_0=Int
3499 {
3500 $current = grammarAccess.getMetricTypeAccess().getINTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
3501 newLeafNode(enumLiteral_0, grammarAccess.getMetricTypeAccess().getINTEnumLiteralDeclaration_0());
3502 }
3503 )
3504 |
3505 (
3506 enumLiteral_1=Real
3507 {
3508 $current = grammarAccess.getMetricTypeAccess().getREALEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
3509 newLeafNode(enumLiteral_1, grammarAccess.getMetricTypeAccess().getREALEnumLiteralDeclaration_1());
3510 }
3511 )
3512 )
3513;
3514
3515// Rule ComparisonOperator
3516ruleComparisonOperator returns [Enumerator current=null]
3517@init {
3518 enterRule();
3519}
3520@after {
3521 leaveRule();
3522}:
3523 (
3524 (
3525 enumLiteral_0=EqualsSignEqualsSign
3526 {
3527 $current = grammarAccess.getComparisonOperatorAccess().getEQEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
3528 newLeafNode(enumLiteral_0, grammarAccess.getComparisonOperatorAccess().getEQEnumLiteralDeclaration_0());
3529 }
3530 )
3531 |
3532 (
3533 enumLiteral_1=ExclamationMarkEqualsSign
3534 {
3535 $current = grammarAccess.getComparisonOperatorAccess().getNOT_EQEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
3536 newLeafNode(enumLiteral_1, grammarAccess.getComparisonOperatorAccess().getNOT_EQEnumLiteralDeclaration_1());
3537 }
3538 )
3539 |
3540 (
3541 enumLiteral_2=LessThanSign
3542 {
3543 $current = grammarAccess.getComparisonOperatorAccess().getLESSEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
3544 newLeafNode(enumLiteral_2, grammarAccess.getComparisonOperatorAccess().getLESSEnumLiteralDeclaration_2());
3545 }
3546 )
3547 |
3548 (
3549 enumLiteral_3=LessThanSignEqualsSign
3550 {
3551 $current = grammarAccess.getComparisonOperatorAccess().getLESS_EQEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
3552 newLeafNode(enumLiteral_3, grammarAccess.getComparisonOperatorAccess().getLESS_EQEnumLiteralDeclaration_3());
3553 }
3554 )
3555 |
3556 (
3557 enumLiteral_4=GreaterThanSign
3558 {
3559 $current = grammarAccess.getComparisonOperatorAccess().getGREATEREnumLiteralDeclaration_4().getEnumLiteral().getInstance();
3560 newLeafNode(enumLiteral_4, grammarAccess.getComparisonOperatorAccess().getGREATEREnumLiteralDeclaration_4());
3561 }
3562 )
3563 |
3564 (
3565 enumLiteral_5=GreaterThanSignEqualsSign
3566 {
3567 $current = grammarAccess.getComparisonOperatorAccess().getGREATER_EQEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
3568 newLeafNode(enumLiteral_5, grammarAccess.getComparisonOperatorAccess().getGREATER_EQEnumLiteralDeclaration_5());
3569 }
3570 )
3571 |
3572 (
3573 enumLiteral_6=In
3574 {
3575 $current = grammarAccess.getComparisonOperatorAccess().getINEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
3576 newLeafNode(enumLiteral_6, grammarAccess.getComparisonOperatorAccess().getINEnumLiteralDeclaration_6());
3577 }
3578 )
3579 )
3580;
3581
3582// Rule AdditiveBinaryOperator
3583ruleAdditiveBinaryOperator returns [Enumerator current=null]
3584@init {
3585 enterRule();
3586}
3587@after {
3588 leaveRule();
3589}:
3590 (
3591 (
3592 enumLiteral_0=PlusSign
3593 {
3594 $current = grammarAccess.getAdditiveBinaryOperatorAccess().getADDEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
3595 newLeafNode(enumLiteral_0, grammarAccess.getAdditiveBinaryOperatorAccess().getADDEnumLiteralDeclaration_0());
3596 }
3597 )
3598 |
3599 (
3600 enumLiteral_1=HyphenMinus
3601 {
3602 $current = grammarAccess.getAdditiveBinaryOperatorAccess().getSUBEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
3603 newLeafNode(enumLiteral_1, grammarAccess.getAdditiveBinaryOperatorAccess().getSUBEnumLiteralDeclaration_1());
3604 }
3605 )
3606 )
3607;
3608
3609// Rule MultiplicativeBinaryOperator
3610ruleMultiplicativeBinaryOperator returns [Enumerator current=null]
3611@init {
3612 enterRule();
3613}
3614@after {
3615 leaveRule();
3616}:
3617 (
3618 (
3619 enumLiteral_0=Asterisk
3620 {
3621 $current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
3622 newLeafNode(enumLiteral_0, grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULEnumLiteralDeclaration_0());
3623 }
3624 )
3625 |
3626 (
3627 enumLiteral_1=Solidus
3628 {
3629 $current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
3630 newLeafNode(enumLiteral_1, grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVEnumLiteralDeclaration_1());
3631 }
3632 )
3633 )
3634;
3635
3636// Rule ExponentialOp
3637ruleExponentialOp returns [Enumerator current=null]
3638@init {
3639 enterRule();
3640}
3641@after {
3642 leaveRule();
3643}:
3644 (
3645 enumLiteral_0=CircumflexAccent
3646 {
3647 $current = grammarAccess.getExponentialOpAccess().getPOWEnumLiteralDeclaration().getEnumLiteral().getInstance();
3648 newLeafNode(enumLiteral_0, grammarAccess.getExponentialOpAccess().getPOWEnumLiteralDeclaration());
3649 }
3650 )
3651;
3652
3653// Rule UnaryOp
3654ruleUnaryOp returns [Enumerator current=null]
3655@init {
3656 enterRule();
3657}
3658@after {
3659 leaveRule();
3660}:
3661 (
3662 (
3663 enumLiteral_0=ExclamationMark
3664 {
3665 $current = grammarAccess.getUnaryOpAccess().getNEGEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
3666 newLeafNode(enumLiteral_0, grammarAccess.getUnaryOpAccess().getNEGEnumLiteralDeclaration_0());
3667 }
3668 )
3669 |
3670 (
3671 enumLiteral_1=PlusSign
3672 {
3673 $current = grammarAccess.getUnaryOpAccess().getPLUSEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
3674 newLeafNode(enumLiteral_1, grammarAccess.getUnaryOpAccess().getPLUSEnumLiteralDeclaration_1());
3675 }
3676 )
3677 |
3678 (
3679 enumLiteral_2=HyphenMinus
3680 {
3681 $current = grammarAccess.getUnaryOpAccess().getMINUSEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
3682 newLeafNode(enumLiteral_2, grammarAccess.getUnaryOpAccess().getMINUSEnumLiteralDeclaration_2());
3683 }
3684 )
3685 |
3686 (
3687 enumLiteral_3=May
3688 {
3689 $current = grammarAccess.getUnaryOpAccess().getMAYEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
3690 newLeafNode(enumLiteral_3, grammarAccess.getUnaryOpAccess().getMAYEnumLiteralDeclaration_3());
3691 }
3692 )
3693 |
3694 (
3695 enumLiteral_4=Must
3696 {
3697 $current = grammarAccess.getUnaryOpAccess().getMUSTEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
3698 newLeafNode(enumLiteral_4, grammarAccess.getUnaryOpAccess().getMUSTEnumLiteralDeclaration_4());
3699 }
3700 )
3701 |
3702 (
3703 enumLiteral_5=Current
3704 {
3705 $current = grammarAccess.getUnaryOpAccess().getCURRENTEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
3706 newLeafNode(enumLiteral_5, grammarAccess.getUnaryOpAccess().getCURRENTEnumLiteralDeclaration_5());
3707 }
3708 )
3709 )
3710;
3711
3712// Rule AggregationOp
3713ruleAggregationOp returns [Enumerator current=null]
3714@init {
3715 enterRule();
3716}
3717@after {
3718 leaveRule();
3719}:
3720 (
3721 (
3722 enumLiteral_0=Only
3723 {
3724 $current = grammarAccess.getAggregationOpAccess().getONLYEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
3725 newLeafNode(enumLiteral_0, grammarAccess.getAggregationOpAccess().getONLYEnumLiteralDeclaration_0());
3726 }
3727 )
3728 |
3729 (
3730 enumLiteral_1=Sum
3731 {
3732 $current = grammarAccess.getAggregationOpAccess().getSUMEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
3733 newLeafNode(enumLiteral_1, grammarAccess.getAggregationOpAccess().getSUMEnumLiteralDeclaration_1());
3734 }
3735 )
3736 |
3737 (
3738 enumLiteral_2=Prod
3739 {
3740 $current = grammarAccess.getAggregationOpAccess().getPRODEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
3741 newLeafNode(enumLiteral_2, grammarAccess.getAggregationOpAccess().getPRODEnumLiteralDeclaration_2());
3742 }
3743 )
3744 |
3745 (
3746 enumLiteral_3=Avg
3747 {
3748 $current = grammarAccess.getAggregationOpAccess().getAVGEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
3749 newLeafNode(enumLiteral_3, grammarAccess.getAggregationOpAccess().getAVGEnumLiteralDeclaration_3());
3750 }
3751 )
3752 |
3753 (
3754 enumLiteral_4=Min
3755 {
3756 $current = grammarAccess.getAggregationOpAccess().getMINEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
3757 newLeafNode(enumLiteral_4, grammarAccess.getAggregationOpAccess().getMINEnumLiteralDeclaration_4());
3758 }
3759 )
3760 |
3761 (
3762 enumLiteral_5=Max
3763 {
3764 $current = grammarAccess.getAggregationOpAccess().getMAXEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
3765 newLeafNode(enumLiteral_5, grammarAccess.getAggregationOpAccess().getMAXEnumLiteralDeclaration_5());
3766 }
3767 )
3768 )
3769;
3770
3771// Rule LogicValue
3772ruleLogicValue returns [Enumerator current=null]
3773@init {
3774 enterRule();
3775}
3776@after {
3777 leaveRule();
3778}:
3779 (
3780 (
3781 enumLiteral_0=True
3782 {
3783 $current = grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
3784 newLeafNode(enumLiteral_0, grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0());
3785 }
3786 )
3787 |
3788 (
3789 enumLiteral_1=False
3790 {
3791 $current = grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
3792 newLeafNode(enumLiteral_1, grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1());
3793 }
3794 )
3795 |
3796 (
3797 enumLiteral_2=Unknown
3798 {
3799 $current = grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
3800 newLeafNode(enumLiteral_2, grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2());
3801 }
3802 )
3803 |
3804 (
3805 enumLiteral_3=Error
3806 {
3807 $current = grammarAccess.getLogicValueAccess().getERROREnumLiteralDeclaration_3().getEnumLiteral().getInstance();
3808 newLeafNode(enumLiteral_3, grammarAccess.getLogicValueAccess().getERROREnumLiteralDeclaration_3());
3809 }
3810 )
3811 )
3812;
3813
3814// Rule ObjectiveKind
3815ruleObjectiveKind returns [Enumerator current=null]
3816@init {
3817 enterRule();
3818}
3819@after {
3820 leaveRule();
3821}:
3822 (
3823 (
3824 enumLiteral_0=Minimize
3825 {
3826 $current = grammarAccess.getObjectiveKindAccess().getMINIMIZEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
3827 newLeafNode(enumLiteral_0, grammarAccess.getObjectiveKindAccess().getMINIMIZEEnumLiteralDeclaration_0());
3828 }
3829 )
3830 |
3831 (
3832 enumLiteral_1=Maximize
3833 {
3834 $current = grammarAccess.getObjectiveKindAccess().getMAXIMIZEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
3835 newLeafNode(enumLiteral_1, grammarAccess.getObjectiveKindAccess().getMAXIMIZEEnumLiteralDeclaration_1());
3836 }
3837 )
3838 )
3839;