aboutsummaryrefslogtreecommitdiffstats
path: root/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguage.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/InternalSolverLanguage.g')
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguage.g2575
1 files changed, 2575 insertions, 0 deletions
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguage.g b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguage.g
new file mode 100644
index 00000000..afd73c2d
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguage.g
@@ -0,0 +1,2575 @@
1/*
2 * generated by Xtext 2.18.0.M3
3 */
4grammar InternalSolverLanguage;
5
6options {
7 superClass=AbstractInternalAntlrParser;
8}
9
10@lexer::header {
11package org.eclipse.viatra.solver.language.parser.antlr.internal;
12
13// Hack: Use our own Lexer superclass by means of import.
14// Currently there is no other way to specify the superclass for the lexer.
15import org.eclipse.xtext.parser.antlr.Lexer;
16}
17
18@parser::header {
19package org.eclipse.viatra.solver.language.parser.antlr.internal;
20
21import org.eclipse.xtext.*;
22import org.eclipse.xtext.parser.*;
23import org.eclipse.xtext.parser.impl.*;
24import org.eclipse.emf.ecore.util.EcoreUtil;
25import org.eclipse.emf.ecore.EObject;
26import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
27import org.eclipse.xtext.parser.antlr.XtextTokenStream;
28import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
29import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
30import org.eclipse.viatra.solver.language.services.SolverLanguageGrammarAccess;
31
32}
33
34@parser::members {
35
36 private SolverLanguageGrammarAccess grammarAccess;
37
38 public InternalSolverLanguageParser(TokenStream input, SolverLanguageGrammarAccess grammarAccess) {
39 this(input);
40 this.grammarAccess = grammarAccess;
41 registerRules(grammarAccess.getGrammar());
42 }
43
44 @Override
45 protected String getFirstRuleName() {
46 return "Problem";
47 }
48
49 @Override
50 protected SolverLanguageGrammarAccess getGrammarAccess() {
51 return grammarAccess;
52 }
53
54}
55
56@rulecatch {
57 catch (RecognitionException re) {
58 recover(input,re);
59 appendSkippedTokens();
60 }
61}
62
63// Entry rule entryRuleProblem
64entryRuleProblem returns [EObject current=null]:
65 { newCompositeNode(grammarAccess.getProblemRule()); }
66 iv_ruleProblem=ruleProblem
67 { $current=$iv_ruleProblem.current; }
68 EOF;
69
70// Rule Problem
71ruleProblem returns [EObject current=null]
72@init {
73 enterRule();
74}
75@after {
76 leaveRule();
77}:
78 (
79 (
80 {
81 newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_0());
82 }
83 lv_statements_0_0=ruleStatement
84 {
85 if ($current==null) {
86 $current = createModelElementForParent(grammarAccess.getProblemRule());
87 }
88 add(
89 $current,
90 "statements",
91 lv_statements_0_0,
92 "org.eclipse.viatra.solver.language.SolverLanguage.Statement");
93 afterParserOrEnumRuleCall();
94 }
95 )
96 )*
97;
98
99// Entry rule entryRuleStatement
100entryRuleStatement returns [EObject current=null]:
101 { newCompositeNode(grammarAccess.getStatementRule()); }
102 iv_ruleStatement=ruleStatement
103 { $current=$iv_ruleStatement.current; }
104 EOF;
105
106// Rule Statement
107ruleStatement returns [EObject current=null]
108@init {
109 enterRule();
110}
111@after {
112 leaveRule();
113}:
114 (
115 {
116 newCompositeNode(grammarAccess.getStatementAccess().getInterpretationParserRuleCall_0());
117 }
118 this_Interpretation_0=ruleInterpretation
119 {
120 $current = $this_Interpretation_0.current;
121 afterParserOrEnumRuleCall();
122 }
123 |
124 {
125 newCompositeNode(grammarAccess.getStatementAccess().getPredicateParserRuleCall_1());
126 }
127 this_Predicate_1=rulePredicate
128 {
129 $current = $this_Predicate_1.current;
130 afterParserOrEnumRuleCall();
131 }
132 )
133;
134
135// Entry rule entryRuleREALLiteral
136entryRuleREALLiteral returns [String current=null]:
137 { newCompositeNode(grammarAccess.getREALLiteralRule()); }
138 iv_ruleREALLiteral=ruleREALLiteral
139 { $current=$iv_ruleREALLiteral.current.getText(); }
140 EOF;
141
142// Rule REALLiteral
143ruleREALLiteral returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
144@init {
145 enterRule();
146}
147@after {
148 leaveRule();
149}:
150 (
151 (
152 kw='-'
153 {
154 $current.merge(kw);
155 newLeafNode(kw, grammarAccess.getREALLiteralAccess().getHyphenMinusKeyword_0());
156 }
157 )?
158 this_INT_1=RULE_INT
159 {
160 $current.merge(this_INT_1);
161 }
162 {
163 newLeafNode(this_INT_1, grammarAccess.getREALLiteralAccess().getINTTerminalRuleCall_1());
164 }
165 kw='.'
166 {
167 $current.merge(kw);
168 newLeafNode(kw, grammarAccess.getREALLiteralAccess().getFullStopKeyword_2());
169 }
170 this_INT_3=RULE_INT
171 {
172 $current.merge(this_INT_3);
173 }
174 {
175 newLeafNode(this_INT_3, grammarAccess.getREALLiteralAccess().getINTTerminalRuleCall_3());
176 }
177 )
178;
179
180// Entry rule entryRuleINTLiteral
181entryRuleINTLiteral returns [String current=null]:
182 { newCompositeNode(grammarAccess.getINTLiteralRule()); }
183 iv_ruleINTLiteral=ruleINTLiteral
184 { $current=$iv_ruleINTLiteral.current.getText(); }
185 EOF;
186
187// Rule INTLiteral
188ruleINTLiteral returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
189@init {
190 enterRule();
191}
192@after {
193 leaveRule();
194}:
195 (
196 (
197 kw='-'
198 {
199 $current.merge(kw);
200 newLeafNode(kw, grammarAccess.getINTLiteralAccess().getHyphenMinusKeyword_0());
201 }
202 )?
203 this_INT_1=RULE_INT
204 {
205 $current.merge(this_INT_1);
206 }
207 {
208 newLeafNode(this_INT_1, grammarAccess.getINTLiteralAccess().getINTTerminalRuleCall_1());
209 }
210 )
211;
212
213// Entry rule entryRuleBooleanValue
214entryRuleBooleanValue returns [EObject current=null]:
215 { newCompositeNode(grammarAccess.getBooleanValueRule()); }
216 iv_ruleBooleanValue=ruleBooleanValue
217 { $current=$iv_ruleBooleanValue.current; }
218 EOF;
219
220// Rule BooleanValue
221ruleBooleanValue returns [EObject current=null]
222@init {
223 enterRule();
224}
225@after {
226 leaveRule();
227}:
228 (
229 (
230 (
231 {
232 $current = forceCreateModelElement(
233 grammarAccess.getBooleanValueAccess().getBooleanTrueAction_0_0(),
234 $current);
235 }
236 )
237 otherlv_1='true'
238 {
239 newLeafNode(otherlv_1, grammarAccess.getBooleanValueAccess().getTrueKeyword_0_1());
240 }
241 )
242 |
243 (
244 otherlv_2='false'
245 {
246 newLeafNode(otherlv_2, grammarAccess.getBooleanValueAccess().getFalseKeyword_1_0());
247 }
248 (
249 {
250 $current = forceCreateModelElement(
251 grammarAccess.getBooleanValueAccess().getBooleanFalseAction_1_1(),
252 $current);
253 }
254 )
255 )
256 )
257;
258
259// Entry rule entryRuleTruthValue
260entryRuleTruthValue returns [EObject current=null]:
261 { newCompositeNode(grammarAccess.getTruthValueRule()); }
262 iv_ruleTruthValue=ruleTruthValue
263 { $current=$iv_ruleTruthValue.current; }
264 EOF;
265
266// Rule TruthValue
267ruleTruthValue returns [EObject current=null]
268@init {
269 enterRule();
270}
271@after {
272 leaveRule();
273}:
274 (
275 (
276 (
277 {
278 $current = forceCreateModelElement(
279 grammarAccess.getTruthValueAccess().getTrueAction_0_0(),
280 $current);
281 }
282 )
283 otherlv_1='true'
284 {
285 newLeafNode(otherlv_1, grammarAccess.getTruthValueAccess().getTrueKeyword_0_1());
286 }
287 )
288 |
289 (
290 (
291 {
292 $current = forceCreateModelElement(
293 grammarAccess.getTruthValueAccess().getFalseAction_1_0(),
294 $current);
295 }
296 )
297 otherlv_3='false'
298 {
299 newLeafNode(otherlv_3, grammarAccess.getTruthValueAccess().getFalseKeyword_1_1());
300 }
301 )
302 |
303 (
304 (
305 {
306 $current = forceCreateModelElement(
307 grammarAccess.getTruthValueAccess().getUnknownAction_2_0(),
308 $current);
309 }
310 )
311 otherlv_5='unknown'
312 {
313 newLeafNode(otherlv_5, grammarAccess.getTruthValueAccess().getUnknownKeyword_2_1());
314 }
315 )
316 |
317 (
318 (
319 {
320 $current = forceCreateModelElement(
321 grammarAccess.getTruthValueAccess().getErrorAction_3_0(),
322 $current);
323 }
324 )
325 otherlv_7='error'
326 {
327 newLeafNode(otherlv_7, grammarAccess.getTruthValueAccess().getErrorKeyword_3_1());
328 }
329 )
330 )
331;
332
333// Entry rule entryRuleInterpretation
334entryRuleInterpretation returns [EObject current=null]:
335 { newCompositeNode(grammarAccess.getInterpretationRule()); }
336 iv_ruleInterpretation=ruleInterpretation
337 { $current=$iv_ruleInterpretation.current; }
338 EOF;
339
340// Rule Interpretation
341ruleInterpretation returns [EObject current=null]
342@init {
343 enterRule();
344}
345@after {
346 leaveRule();
347}:
348 (
349 {
350 newCompositeNode(grammarAccess.getInterpretationAccess().getBasicInterpretationParserRuleCall_0());
351 }
352 this_BasicInterpretation_0=ruleBasicInterpretation
353 {
354 $current = $this_BasicInterpretation_0.current;
355 afterParserOrEnumRuleCall();
356 }
357 |
358 {
359 newCompositeNode(grammarAccess.getInterpretationAccess().getDefaultInterpretationParserRuleCall_1());
360 }
361 this_DefaultInterpretation_1=ruleDefaultInterpretation
362 {
363 $current = $this_DefaultInterpretation_1.current;
364 afterParserOrEnumRuleCall();
365 }
366 |
367 {
368 newCompositeNode(grammarAccess.getInterpretationAccess().getCDInterpretationParserRuleCall_2());
369 }
370 this_CDInterpretation_2=ruleCDInterpretation
371 {
372 $current = $this_CDInterpretation_2.current;
373 afterParserOrEnumRuleCall();
374 }
375 )
376;
377
378// Entry rule entryRuleBasicInterpretation
379entryRuleBasicInterpretation returns [EObject current=null]:
380 { newCompositeNode(grammarAccess.getBasicInterpretationRule()); }
381 iv_ruleBasicInterpretation=ruleBasicInterpretation
382 { $current=$iv_ruleBasicInterpretation.current; }
383 EOF;
384
385// Rule BasicInterpretation
386ruleBasicInterpretation returns [EObject current=null]
387@init {
388 enterRule();
389}
390@after {
391 leaveRule();
392}:
393 (
394 (
395 (
396 {
397 newCompositeNode(grammarAccess.getBasicInterpretationAccess().getSymbolSymbolParserRuleCall_0_0());
398 }
399 lv_symbol_0_0=ruleSymbol
400 {
401 if ($current==null) {
402 $current = createModelElementForParent(grammarAccess.getBasicInterpretationRule());
403 }
404 set(
405 $current,
406 "symbol",
407 lv_symbol_0_0,
408 "org.eclipse.viatra.solver.language.SolverLanguage.Symbol");
409 afterParserOrEnumRuleCall();
410 }
411 )
412 )
413 otherlv_1='('
414 {
415 newLeafNode(otherlv_1, grammarAccess.getBasicInterpretationAccess().getLeftParenthesisKeyword_1());
416 }
417 (
418 (
419 {
420 newCompositeNode(grammarAccess.getBasicInterpretationAccess().getObjectsComplexObjectParserRuleCall_2_0());
421 }
422 lv_objects_2_0=ruleComplexObject
423 {
424 if ($current==null) {
425 $current = createModelElementForParent(grammarAccess.getBasicInterpretationRule());
426 }
427 add(
428 $current,
429 "objects",
430 lv_objects_2_0,
431 "org.eclipse.viatra.solver.language.SolverLanguage.ComplexObject");
432 afterParserOrEnumRuleCall();
433 }
434 )
435 )*
436 otherlv_3=')'
437 {
438 newLeafNode(otherlv_3, grammarAccess.getBasicInterpretationAccess().getRightParenthesisKeyword_3());
439 }
440 otherlv_4=':'
441 {
442 newLeafNode(otherlv_4, grammarAccess.getBasicInterpretationAccess().getColonKeyword_4());
443 }
444 (
445 (
446 {
447 newCompositeNode(grammarAccess.getBasicInterpretationAccess().getValueTruthValueParserRuleCall_5_0());
448 }
449 lv_value_5_0=ruleTruthValue
450 {
451 if ($current==null) {
452 $current = createModelElementForParent(grammarAccess.getBasicInterpretationRule());
453 }
454 set(
455 $current,
456 "value",
457 lv_value_5_0,
458 "org.eclipse.viatra.solver.language.SolverLanguage.TruthValue");
459 afterParserOrEnumRuleCall();
460 }
461 )
462 )
463 )
464;
465
466// Entry rule entryRuleSymbol
467entryRuleSymbol returns [EObject current=null]:
468 { newCompositeNode(grammarAccess.getSymbolRule()); }
469 iv_ruleSymbol=ruleSymbol
470 { $current=$iv_ruleSymbol.current; }
471 EOF;
472
473// Rule Symbol
474ruleSymbol returns [EObject current=null]
475@init {
476 enterRule();
477}
478@after {
479 leaveRule();
480}:
481 (
482 {
483 newCompositeNode(grammarAccess.getSymbolAccess().getModelSymbolParserRuleCall_0());
484 }
485 this_ModelSymbol_0=ruleModelSymbol
486 {
487 $current = $this_ModelSymbol_0.current;
488 afterParserOrEnumRuleCall();
489 }
490 |
491 {
492 newCompositeNode(grammarAccess.getSymbolAccess().getPartialitySymbolParserRuleCall_1());
493 }
494 this_PartialitySymbol_1=rulePartialitySymbol
495 {
496 $current = $this_PartialitySymbol_1.current;
497 afterParserOrEnumRuleCall();
498 }
499 |
500 {
501 newCompositeNode(grammarAccess.getSymbolAccess().getDataSymbolParserRuleCall_2());
502 }
503 this_DataSymbol_2=ruleDataSymbol
504 {
505 $current = $this_DataSymbol_2.current;
506 afterParserOrEnumRuleCall();
507 }
508 )
509;
510
511// Entry rule entryRuleModelSymbol
512entryRuleModelSymbol returns [EObject current=null]:
513 { newCompositeNode(grammarAccess.getModelSymbolRule()); }
514 iv_ruleModelSymbol=ruleModelSymbol
515 { $current=$iv_ruleModelSymbol.current; }
516 EOF;
517
518// Rule ModelSymbol
519ruleModelSymbol returns [EObject current=null]
520@init {
521 enterRule();
522}
523@after {
524 leaveRule();
525}:
526 (
527 (
528 lv_name_0_0=RULE_ID
529 {
530 newLeafNode(lv_name_0_0, grammarAccess.getModelSymbolAccess().getNameIDTerminalRuleCall_0());
531 }
532 {
533 if ($current==null) {
534 $current = createModelElement(grammarAccess.getModelSymbolRule());
535 }
536 setWithLastConsumed(
537 $current,
538 "name",
539 lv_name_0_0,
540 "org.eclipse.xtext.common.Terminals.ID");
541 }
542 )
543 )
544;
545
546// Entry rule entryRulePartialitySymbol
547entryRulePartialitySymbol returns [EObject current=null]:
548 { newCompositeNode(grammarAccess.getPartialitySymbolRule()); }
549 iv_rulePartialitySymbol=rulePartialitySymbol
550 { $current=$iv_rulePartialitySymbol.current; }
551 EOF;
552
553// Rule PartialitySymbol
554rulePartialitySymbol returns [EObject current=null]
555@init {
556 enterRule();
557}
558@after {
559 leaveRule();
560}:
561 (
562 {
563 newCompositeNode(grammarAccess.getPartialitySymbolAccess().getExistSymbolParserRuleCall_0());
564 }
565 this_ExistSymbol_0=ruleExistSymbol
566 {
567 $current = $this_ExistSymbol_0.current;
568 afterParserOrEnumRuleCall();
569 }
570 |
571 {
572 newCompositeNode(grammarAccess.getPartialitySymbolAccess().getEqualsSymbolParserRuleCall_1());
573 }
574 this_EqualsSymbol_1=ruleEqualsSymbol
575 {
576 $current = $this_EqualsSymbol_1.current;
577 afterParserOrEnumRuleCall();
578 }
579 )
580;
581
582// Entry rule entryRuleExistSymbol
583entryRuleExistSymbol returns [EObject current=null]:
584 { newCompositeNode(grammarAccess.getExistSymbolRule()); }
585 iv_ruleExistSymbol=ruleExistSymbol
586 { $current=$iv_ruleExistSymbol.current; }
587 EOF;
588
589// Rule ExistSymbol
590ruleExistSymbol returns [EObject current=null]
591@init {
592 enterRule();
593}
594@after {
595 leaveRule();
596}:
597 (
598 otherlv_0='exists'
599 {
600 newLeafNode(otherlv_0, grammarAccess.getExistSymbolAccess().getExistsKeyword_0());
601 }
602 (
603 {
604 $current = forceCreateModelElement(
605 grammarAccess.getExistSymbolAccess().getExistSymbolAction_1(),
606 $current);
607 }
608 )
609 )
610;
611
612// Entry rule entryRuleEqualsSymbol
613entryRuleEqualsSymbol returns [EObject current=null]:
614 { newCompositeNode(grammarAccess.getEqualsSymbolRule()); }
615 iv_ruleEqualsSymbol=ruleEqualsSymbol
616 { $current=$iv_ruleEqualsSymbol.current; }
617 EOF;
618
619// Rule EqualsSymbol
620ruleEqualsSymbol returns [EObject current=null]
621@init {
622 enterRule();
623}
624@after {
625 leaveRule();
626}:
627 (
628 otherlv_0='equals'
629 {
630 newLeafNode(otherlv_0, grammarAccess.getEqualsSymbolAccess().getEqualsKeyword_0());
631 }
632 (
633 {
634 $current = forceCreateModelElement(
635 grammarAccess.getEqualsSymbolAccess().getEqualsSymbolAction_1(),
636 $current);
637 }
638 )
639 )
640;
641
642// Entry rule entryRuleDataSymbol
643entryRuleDataSymbol returns [EObject current=null]:
644 { newCompositeNode(grammarAccess.getDataSymbolRule()); }
645 iv_ruleDataSymbol=ruleDataSymbol
646 { $current=$iv_ruleDataSymbol.current; }
647 EOF;
648
649// Rule DataSymbol
650ruleDataSymbol returns [EObject current=null]
651@init {
652 enterRule();
653}
654@after {
655 leaveRule();
656}:
657 (
658 {
659 newCompositeNode(grammarAccess.getDataSymbolAccess().getBooleanSymbolParserRuleCall_0());
660 }
661 this_BooleanSymbol_0=ruleBooleanSymbol
662 {
663 $current = $this_BooleanSymbol_0.current;
664 afterParserOrEnumRuleCall();
665 }
666 |
667 {
668 newCompositeNode(grammarAccess.getDataSymbolAccess().getIntegerSymbolParserRuleCall_1());
669 }
670 this_IntegerSymbol_1=ruleIntegerSymbol
671 {
672 $current = $this_IntegerSymbol_1.current;
673 afterParserOrEnumRuleCall();
674 }
675 |
676 {
677 newCompositeNode(grammarAccess.getDataSymbolAccess().getRealSymbolParserRuleCall_2());
678 }
679 this_RealSymbol_2=ruleRealSymbol
680 {
681 $current = $this_RealSymbol_2.current;
682 afterParserOrEnumRuleCall();
683 }
684 |
685 {
686 newCompositeNode(grammarAccess.getDataSymbolAccess().getStringSymbolParserRuleCall_3());
687 }
688 this_StringSymbol_3=ruleStringSymbol
689 {
690 $current = $this_StringSymbol_3.current;
691 afterParserOrEnumRuleCall();
692 }
693 )
694;
695
696// Entry rule entryRuleBooleanSymbol
697entryRuleBooleanSymbol returns [EObject current=null]:
698 { newCompositeNode(grammarAccess.getBooleanSymbolRule()); }
699 iv_ruleBooleanSymbol=ruleBooleanSymbol
700 { $current=$iv_ruleBooleanSymbol.current; }
701 EOF;
702
703// Rule BooleanSymbol
704ruleBooleanSymbol returns [EObject current=null]
705@init {
706 enterRule();
707}
708@after {
709 leaveRule();
710}:
711 (
712 otherlv_0='bool'
713 {
714 newLeafNode(otherlv_0, grammarAccess.getBooleanSymbolAccess().getBoolKeyword_0());
715 }
716 (
717 {
718 $current = forceCreateModelElement(
719 grammarAccess.getBooleanSymbolAccess().getBooleanSymbolAction_1(),
720 $current);
721 }
722 )
723 )
724;
725
726// Entry rule entryRuleIntegerSymbol
727entryRuleIntegerSymbol returns [EObject current=null]:
728 { newCompositeNode(grammarAccess.getIntegerSymbolRule()); }
729 iv_ruleIntegerSymbol=ruleIntegerSymbol
730 { $current=$iv_ruleIntegerSymbol.current; }
731 EOF;
732
733// Rule IntegerSymbol
734ruleIntegerSymbol returns [EObject current=null]
735@init {
736 enterRule();
737}
738@after {
739 leaveRule();
740}:
741 (
742 otherlv_0='int'
743 {
744 newLeafNode(otherlv_0, grammarAccess.getIntegerSymbolAccess().getIntKeyword_0());
745 }
746 (
747 {
748 $current = forceCreateModelElement(
749 grammarAccess.getIntegerSymbolAccess().getIntegerSymbolAction_1(),
750 $current);
751 }
752 )
753 )
754;
755
756// Entry rule entryRuleRealSymbol
757entryRuleRealSymbol returns [EObject current=null]:
758 { newCompositeNode(grammarAccess.getRealSymbolRule()); }
759 iv_ruleRealSymbol=ruleRealSymbol
760 { $current=$iv_ruleRealSymbol.current; }
761 EOF;
762
763// Rule RealSymbol
764ruleRealSymbol returns [EObject current=null]
765@init {
766 enterRule();
767}
768@after {
769 leaveRule();
770}:
771 (
772 otherlv_0='real'
773 {
774 newLeafNode(otherlv_0, grammarAccess.getRealSymbolAccess().getRealKeyword_0());
775 }
776 (
777 {
778 $current = forceCreateModelElement(
779 grammarAccess.getRealSymbolAccess().getRealSymbolAction_1(),
780 $current);
781 }
782 )
783 )
784;
785
786// Entry rule entryRuleStringSymbol
787entryRuleStringSymbol returns [EObject current=null]:
788 { newCompositeNode(grammarAccess.getStringSymbolRule()); }
789 iv_ruleStringSymbol=ruleStringSymbol
790 { $current=$iv_ruleStringSymbol.current; }
791 EOF;
792
793// Rule StringSymbol
794ruleStringSymbol returns [EObject current=null]
795@init {
796 enterRule();
797}
798@after {
799 leaveRule();
800}:
801 (
802 otherlv_0='string'
803 {
804 newLeafNode(otherlv_0, grammarAccess.getStringSymbolAccess().getStringKeyword_0());
805 }
806 (
807 {
808 $current = forceCreateModelElement(
809 grammarAccess.getStringSymbolAccess().getStringSymbolAction_1(),
810 $current);
811 }
812 )
813 )
814;
815
816// Entry rule entryRuleComplexObject
817entryRuleComplexObject returns [EObject current=null]:
818 { newCompositeNode(grammarAccess.getComplexObjectRule()); }
819 iv_ruleComplexObject=ruleComplexObject
820 { $current=$iv_ruleComplexObject.current; }
821 EOF;
822
823// Rule ComplexObject
824ruleComplexObject returns [EObject current=null]
825@init {
826 enterRule();
827}
828@after {
829 leaveRule();
830}:
831 (
832 {
833 newCompositeNode(grammarAccess.getComplexObjectAccess().getObjectParserRuleCall_0());
834 }
835 this_Object_0=ruleObject
836 {
837 $current = $this_Object_0.current;
838 afterParserOrEnumRuleCall();
839 }
840 |
841 {
842 newCompositeNode(grammarAccess.getComplexObjectAccess().getAllInstancesParserRuleCall_1());
843 }
844 this_AllInstances_1=ruleAllInstances
845 {
846 $current = $this_AllInstances_1.current;
847 afterParserOrEnumRuleCall();
848 }
849 |
850 {
851 newCompositeNode(grammarAccess.getComplexObjectAccess().getAllObjectsParserRuleCall_2());
852 }
853 this_AllObjects_2=ruleAllObjects
854 {
855 $current = $this_AllObjects_2.current;
856 afterParserOrEnumRuleCall();
857 }
858 )
859;
860
861// Entry rule entryRuleObject
862entryRuleObject returns [EObject current=null]:
863 { newCompositeNode(grammarAccess.getObjectRule()); }
864 iv_ruleObject=ruleObject
865 { $current=$iv_ruleObject.current; }
866 EOF;
867
868// Rule Object
869ruleObject returns [EObject current=null]
870@init {
871 enterRule();
872}
873@after {
874 leaveRule();
875}:
876 (
877 {
878 newCompositeNode(grammarAccess.getObjectAccess().getNamedObjectParserRuleCall_0());
879 }
880 this_NamedObject_0=ruleNamedObject
881 {
882 $current = $this_NamedObject_0.current;
883 afterParserOrEnumRuleCall();
884 }
885 |
886 {
887 newCompositeNode(grammarAccess.getObjectAccess().getUnnamedObjectParserRuleCall_1());
888 }
889 this_UnnamedObject_1=ruleUnnamedObject
890 {
891 $current = $this_UnnamedObject_1.current;
892 afterParserOrEnumRuleCall();
893 }
894 |
895 {
896 newCompositeNode(grammarAccess.getObjectAccess().getDataObjectParserRuleCall_2());
897 }
898 this_DataObject_2=ruleDataObject
899 {
900 $current = $this_DataObject_2.current;
901 afterParserOrEnumRuleCall();
902 }
903 )
904;
905
906// Entry rule entryRuleNamedObject
907entryRuleNamedObject returns [EObject current=null]:
908 { newCompositeNode(grammarAccess.getNamedObjectRule()); }
909 iv_ruleNamedObject=ruleNamedObject
910 { $current=$iv_ruleNamedObject.current; }
911 EOF;
912
913// Rule NamedObject
914ruleNamedObject returns [EObject current=null]
915@init {
916 enterRule();
917}
918@after {
919 leaveRule();
920}:
921 (
922 otherlv_0='\''
923 {
924 newLeafNode(otherlv_0, grammarAccess.getNamedObjectAccess().getApostropheKeyword_0());
925 }
926 (
927 (
928 lv_name_1_0=RULE_ID
929 {
930 newLeafNode(lv_name_1_0, grammarAccess.getNamedObjectAccess().getNameIDTerminalRuleCall_1_0());
931 }
932 {
933 if ($current==null) {
934 $current = createModelElement(grammarAccess.getNamedObjectRule());
935 }
936 setWithLastConsumed(
937 $current,
938 "name",
939 lv_name_1_0,
940 "org.eclipse.xtext.common.Terminals.ID");
941 }
942 )
943 )
944 otherlv_2='\''
945 {
946 newLeafNode(otherlv_2, grammarAccess.getNamedObjectAccess().getApostropheKeyword_2());
947 }
948 )
949;
950
951// Entry rule entryRuleUnnamedObject
952entryRuleUnnamedObject returns [EObject current=null]:
953 { newCompositeNode(grammarAccess.getUnnamedObjectRule()); }
954 iv_ruleUnnamedObject=ruleUnnamedObject
955 { $current=$iv_ruleUnnamedObject.current; }
956 EOF;
957
958// Rule UnnamedObject
959ruleUnnamedObject returns [EObject current=null]
960@init {
961 enterRule();
962}
963@after {
964 leaveRule();
965}:
966 (
967 (
968 lv_name_0_0=RULE_ID
969 {
970 newLeafNode(lv_name_0_0, grammarAccess.getUnnamedObjectAccess().getNameIDTerminalRuleCall_0());
971 }
972 {
973 if ($current==null) {
974 $current = createModelElement(grammarAccess.getUnnamedObjectRule());
975 }
976 setWithLastConsumed(
977 $current,
978 "name",
979 lv_name_0_0,
980 "org.eclipse.xtext.common.Terminals.ID");
981 }
982 )
983 )
984;
985
986// Entry rule entryRuleDataObject
987entryRuleDataObject returns [EObject current=null]:
988 { newCompositeNode(grammarAccess.getDataObjectRule()); }
989 iv_ruleDataObject=ruleDataObject
990 { $current=$iv_ruleDataObject.current; }
991 EOF;
992
993// Rule DataObject
994ruleDataObject returns [EObject current=null]
995@init {
996 enterRule();
997}
998@after {
999 leaveRule();
1000}:
1001 (
1002 {
1003 newCompositeNode(grammarAccess.getDataObjectAccess().getBooleanObjectParserRuleCall_0());
1004 }
1005 this_BooleanObject_0=ruleBooleanObject
1006 {
1007 $current = $this_BooleanObject_0.current;
1008 afterParserOrEnumRuleCall();
1009 }
1010 |
1011 {
1012 newCompositeNode(grammarAccess.getDataObjectAccess().getIntObjectParserRuleCall_1());
1013 }
1014 this_IntObject_1=ruleIntObject
1015 {
1016 $current = $this_IntObject_1.current;
1017 afterParserOrEnumRuleCall();
1018 }
1019 |
1020 {
1021 newCompositeNode(grammarAccess.getDataObjectAccess().getRealObjectParserRuleCall_2());
1022 }
1023 this_RealObject_2=ruleRealObject
1024 {
1025 $current = $this_RealObject_2.current;
1026 afterParserOrEnumRuleCall();
1027 }
1028 |
1029 {
1030 newCompositeNode(grammarAccess.getDataObjectAccess().getStringObjectParserRuleCall_3());
1031 }
1032 this_StringObject_3=ruleStringObject
1033 {
1034 $current = $this_StringObject_3.current;
1035 afterParserOrEnumRuleCall();
1036 }
1037 )
1038;
1039
1040// Entry rule entryRuleBooleanObject
1041entryRuleBooleanObject returns [EObject current=null]:
1042 { newCompositeNode(grammarAccess.getBooleanObjectRule()); }
1043 iv_ruleBooleanObject=ruleBooleanObject
1044 { $current=$iv_ruleBooleanObject.current; }
1045 EOF;
1046
1047// Rule BooleanObject
1048ruleBooleanObject returns [EObject current=null]
1049@init {
1050 enterRule();
1051}
1052@after {
1053 leaveRule();
1054}:
1055 (
1056 (
1057 {
1058 newCompositeNode(grammarAccess.getBooleanObjectAccess().getValueBooleanValueParserRuleCall_0());
1059 }
1060 lv_value_0_0=ruleBooleanValue
1061 {
1062 if ($current==null) {
1063 $current = createModelElementForParent(grammarAccess.getBooleanObjectRule());
1064 }
1065 set(
1066 $current,
1067 "value",
1068 lv_value_0_0,
1069 "org.eclipse.viatra.solver.language.SolverLanguage.BooleanValue");
1070 afterParserOrEnumRuleCall();
1071 }
1072 )
1073 )
1074;
1075
1076// Entry rule entryRuleIntObject
1077entryRuleIntObject returns [EObject current=null]:
1078 { newCompositeNode(grammarAccess.getIntObjectRule()); }
1079 iv_ruleIntObject=ruleIntObject
1080 { $current=$iv_ruleIntObject.current; }
1081 EOF;
1082
1083// Rule IntObject
1084ruleIntObject returns [EObject current=null]
1085@init {
1086 enterRule();
1087}
1088@after {
1089 leaveRule();
1090}:
1091 (
1092 (
1093 {
1094 newCompositeNode(grammarAccess.getIntObjectAccess().getValueINTLiteralParserRuleCall_0());
1095 }
1096 lv_value_0_0=ruleINTLiteral
1097 {
1098 if ($current==null) {
1099 $current = createModelElementForParent(grammarAccess.getIntObjectRule());
1100 }
1101 set(
1102 $current,
1103 "value",
1104 lv_value_0_0,
1105 "org.eclipse.viatra.solver.language.SolverLanguage.INTLiteral");
1106 afterParserOrEnumRuleCall();
1107 }
1108 )
1109 )
1110;
1111
1112// Entry rule entryRuleRealObject
1113entryRuleRealObject returns [EObject current=null]:
1114 { newCompositeNode(grammarAccess.getRealObjectRule()); }
1115 iv_ruleRealObject=ruleRealObject
1116 { $current=$iv_ruleRealObject.current; }
1117 EOF;
1118
1119// Rule RealObject
1120ruleRealObject returns [EObject current=null]
1121@init {
1122 enterRule();
1123}
1124@after {
1125 leaveRule();
1126}:
1127 (
1128 (
1129 {
1130 newCompositeNode(grammarAccess.getRealObjectAccess().getValueREALLiteralParserRuleCall_0());
1131 }
1132 lv_value_0_0=ruleREALLiteral
1133 {
1134 if ($current==null) {
1135 $current = createModelElementForParent(grammarAccess.getRealObjectRule());
1136 }
1137 set(
1138 $current,
1139 "value",
1140 lv_value_0_0,
1141 "org.eclipse.viatra.solver.language.SolverLanguage.REALLiteral");
1142 afterParserOrEnumRuleCall();
1143 }
1144 )
1145 )
1146;
1147
1148// Entry rule entryRuleStringObject
1149entryRuleStringObject returns [EObject current=null]:
1150 { newCompositeNode(grammarAccess.getStringObjectRule()); }
1151 iv_ruleStringObject=ruleStringObject
1152 { $current=$iv_ruleStringObject.current; }
1153 EOF;
1154
1155// Rule StringObject
1156ruleStringObject returns [EObject current=null]
1157@init {
1158 enterRule();
1159}
1160@after {
1161 leaveRule();
1162}:
1163 (
1164 (
1165 lv_value_0_0=RULE_STRING
1166 {
1167 newLeafNode(lv_value_0_0, grammarAccess.getStringObjectAccess().getValueSTRINGTerminalRuleCall_0());
1168 }
1169 {
1170 if ($current==null) {
1171 $current = createModelElement(grammarAccess.getStringObjectRule());
1172 }
1173 setWithLastConsumed(
1174 $current,
1175 "value",
1176 lv_value_0_0,
1177 "org.eclipse.viatra.solver.language.SolverLanguage.STRING");
1178 }
1179 )
1180 )
1181;
1182
1183// Entry rule entryRulePredicate
1184entryRulePredicate returns [EObject current=null]:
1185 { newCompositeNode(grammarAccess.getPredicateRule()); }
1186 iv_rulePredicate=rulePredicate
1187 { $current=$iv_rulePredicate.current; }
1188 EOF;
1189
1190// Rule Predicate
1191rulePredicate returns [EObject current=null]
1192@init {
1193 enterRule();
1194}
1195@after {
1196 leaveRule();
1197}:
1198 (
1199 {
1200 newCompositeNode(grammarAccess.getPredicateAccess().getPredicateSymbolParserRuleCall_0());
1201 }
1202 this_PredicateSymbol_0=rulePredicateSymbol
1203 {
1204 $current = $this_PredicateSymbol_0.current;
1205 afterParserOrEnumRuleCall();
1206 }
1207 |
1208 {
1209 newCompositeNode(grammarAccess.getPredicateAccess().getErrorPredicateParserRuleCall_1());
1210 }
1211 this_ErrorPredicate_1=ruleErrorPredicate
1212 {
1213 $current = $this_ErrorPredicate_1.current;
1214 afterParserOrEnumRuleCall();
1215 }
1216 )
1217;
1218
1219// Entry rule entryRulePredicateSymbol
1220entryRulePredicateSymbol returns [EObject current=null]:
1221 { newCompositeNode(grammarAccess.getPredicateSymbolRule()); }
1222 iv_rulePredicateSymbol=rulePredicateSymbol
1223 { $current=$iv_rulePredicateSymbol.current; }
1224 EOF;
1225
1226// Rule PredicateSymbol
1227rulePredicateSymbol returns [EObject current=null]
1228@init {
1229 enterRule();
1230}
1231@after {
1232 leaveRule();
1233}:
1234 (
1235 otherlv_0='predicate'
1236 {
1237 newLeafNode(otherlv_0, grammarAccess.getPredicateSymbolAccess().getPredicateKeyword_0());
1238 }
1239 (
1240 (
1241 {
1242 newCompositeNode(grammarAccess.getPredicateSymbolAccess().getSymbolModelSymbolParserRuleCall_1_0());
1243 }
1244 lv_symbol_1_0=ruleModelSymbol
1245 {
1246 if ($current==null) {
1247 $current = createModelElementForParent(grammarAccess.getPredicateSymbolRule());
1248 }
1249 set(
1250 $current,
1251 "symbol",
1252 lv_symbol_1_0,
1253 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol");
1254 afterParserOrEnumRuleCall();
1255 }
1256 )
1257 )
1258 otherlv_2='('
1259 {
1260 newLeafNode(otherlv_2, grammarAccess.getPredicateSymbolAccess().getLeftParenthesisKeyword_2());
1261 }
1262 (
1263 (
1264 {
1265 newCompositeNode(grammarAccess.getPredicateSymbolAccess().getParametersParameterParserRuleCall_3_0());
1266 }
1267 lv_parameters_3_0=ruleParameter
1268 {
1269 if ($current==null) {
1270 $current = createModelElementForParent(grammarAccess.getPredicateSymbolRule());
1271 }
1272 add(
1273 $current,
1274 "parameters",
1275 lv_parameters_3_0,
1276 "org.eclipse.viatra.solver.language.SolverLanguage.Parameter");
1277 afterParserOrEnumRuleCall();
1278 }
1279 )
1280 )*
1281 otherlv_4=')'
1282 {
1283 newLeafNode(otherlv_4, grammarAccess.getPredicateSymbolAccess().getRightParenthesisKeyword_4());
1284 }
1285 otherlv_5=':'
1286 {
1287 newLeafNode(otherlv_5, grammarAccess.getPredicateSymbolAccess().getColonKeyword_5());
1288 }
1289 (
1290 otherlv_6='false'
1291 {
1292 newLeafNode(otherlv_6, grammarAccess.getPredicateSymbolAccess().getFalseKeyword_6_0());
1293 }
1294 |
1295 (
1296 (
1297 (
1298 {
1299 newCompositeNode(grammarAccess.getPredicateSymbolAccess().getBodiesPatternBodyParserRuleCall_6_1_0_0());
1300 }
1301 lv_bodies_7_0=rulePatternBody
1302 {
1303 if ($current==null) {
1304 $current = createModelElementForParent(grammarAccess.getPredicateSymbolRule());
1305 }
1306 add(
1307 $current,
1308 "bodies",
1309 lv_bodies_7_0,
1310 "org.eclipse.viatra.solver.language.SolverLanguage.PatternBody");
1311 afterParserOrEnumRuleCall();
1312 }
1313 )
1314 )
1315 (
1316 otherlv_8='|'
1317 {
1318 newLeafNode(otherlv_8, grammarAccess.getPredicateSymbolAccess().getVerticalLineKeyword_6_1_1_0());
1319 }
1320 (
1321 (
1322 {
1323 newCompositeNode(grammarAccess.getPredicateSymbolAccess().getBodiesPatternBodyParserRuleCall_6_1_1_1_0());
1324 }
1325 lv_bodies_9_0=rulePatternBody
1326 {
1327 if ($current==null) {
1328 $current = createModelElementForParent(grammarAccess.getPredicateSymbolRule());
1329 }
1330 add(
1331 $current,
1332 "bodies",
1333 lv_bodies_9_0,
1334 "org.eclipse.viatra.solver.language.SolverLanguage.PatternBody");
1335 afterParserOrEnumRuleCall();
1336 }
1337 )
1338 )
1339 )*
1340 )
1341 )
1342 otherlv_10='.'
1343 {
1344 newLeafNode(otherlv_10, grammarAccess.getPredicateSymbolAccess().getFullStopKeyword_7());
1345 }
1346 )
1347;
1348
1349// Entry rule entryRuleErrorPredicate
1350entryRuleErrorPredicate returns [EObject current=null]:
1351 { newCompositeNode(grammarAccess.getErrorPredicateRule()); }
1352 iv_ruleErrorPredicate=ruleErrorPredicate
1353 { $current=$iv_ruleErrorPredicate.current; }
1354 EOF;
1355
1356// Rule ErrorPredicate
1357ruleErrorPredicate returns [EObject current=null]
1358@init {
1359 enterRule();
1360}
1361@after {
1362 leaveRule();
1363}:
1364 (
1365 (
1366 {
1367 $current = forceCreateModelElement(
1368 grammarAccess.getErrorPredicateAccess().getErrorPredicateAction_0(),
1369 $current);
1370 }
1371 )
1372 otherlv_1='error'
1373 {
1374 newLeafNode(otherlv_1, grammarAccess.getErrorPredicateAccess().getErrorKeyword_1());
1375 }
1376 (
1377 (
1378 lv_name_2_0=RULE_ID
1379 {
1380 newLeafNode(lv_name_2_0, grammarAccess.getErrorPredicateAccess().getNameIDTerminalRuleCall_2_0());
1381 }
1382 {
1383 if ($current==null) {
1384 $current = createModelElement(grammarAccess.getErrorPredicateRule());
1385 }
1386 setWithLastConsumed(
1387 $current,
1388 "name",
1389 lv_name_2_0,
1390 "org.eclipse.xtext.common.Terminals.ID");
1391 }
1392 )
1393 )?
1394 (
1395 otherlv_3='('
1396 {
1397 newLeafNode(otherlv_3, grammarAccess.getErrorPredicateAccess().getLeftParenthesisKeyword_3_0());
1398 }
1399 (
1400 (
1401 {
1402 newCompositeNode(grammarAccess.getErrorPredicateAccess().getParametersParameterParserRuleCall_3_1_0());
1403 }
1404 lv_parameters_4_0=ruleParameter
1405 {
1406 if ($current==null) {
1407 $current = createModelElementForParent(grammarAccess.getErrorPredicateRule());
1408 }
1409 add(
1410 $current,
1411 "parameters",
1412 lv_parameters_4_0,
1413 "org.eclipse.viatra.solver.language.SolverLanguage.Parameter");
1414 afterParserOrEnumRuleCall();
1415 }
1416 )
1417 )*
1418 otherlv_5=')'
1419 {
1420 newLeafNode(otherlv_5, grammarAccess.getErrorPredicateAccess().getRightParenthesisKeyword_3_2());
1421 }
1422 )
1423 otherlv_6=':'
1424 {
1425 newLeafNode(otherlv_6, grammarAccess.getErrorPredicateAccess().getColonKeyword_4());
1426 }
1427 (
1428 otherlv_7='false'
1429 {
1430 newLeafNode(otherlv_7, grammarAccess.getErrorPredicateAccess().getFalseKeyword_5_0());
1431 }
1432 |
1433 (
1434 (
1435 (
1436 {
1437 newCompositeNode(grammarAccess.getErrorPredicateAccess().getBodiesPatternBodyParserRuleCall_5_1_0_0());
1438 }
1439 lv_bodies_8_0=rulePatternBody
1440 {
1441 if ($current==null) {
1442 $current = createModelElementForParent(grammarAccess.getErrorPredicateRule());
1443 }
1444 add(
1445 $current,
1446 "bodies",
1447 lv_bodies_8_0,
1448 "org.eclipse.viatra.solver.language.SolverLanguage.PatternBody");
1449 afterParserOrEnumRuleCall();
1450 }
1451 )
1452 )
1453 (
1454 otherlv_9='|'
1455 {
1456 newLeafNode(otherlv_9, grammarAccess.getErrorPredicateAccess().getVerticalLineKeyword_5_1_1_0());
1457 }
1458 (
1459 (
1460 {
1461 newCompositeNode(grammarAccess.getErrorPredicateAccess().getBodiesPatternBodyParserRuleCall_5_1_1_1_0());
1462 }
1463 lv_bodies_10_0=rulePatternBody
1464 {
1465 if ($current==null) {
1466 $current = createModelElementForParent(grammarAccess.getErrorPredicateRule());
1467 }
1468 add(
1469 $current,
1470 "bodies",
1471 lv_bodies_10_0,
1472 "org.eclipse.viatra.solver.language.SolverLanguage.PatternBody");
1473 afterParserOrEnumRuleCall();
1474 }
1475 )
1476 )
1477 )*
1478 )
1479 )
1480 otherlv_11='.'
1481 {
1482 newLeafNode(otherlv_11, grammarAccess.getErrorPredicateAccess().getFullStopKeyword_6());
1483 }
1484 )
1485;
1486
1487// Entry rule entryRuleParameter
1488entryRuleParameter returns [EObject current=null]:
1489 { newCompositeNode(grammarAccess.getParameterRule()); }
1490 iv_ruleParameter=ruleParameter
1491 { $current=$iv_ruleParameter.current; }
1492 EOF;
1493
1494// Rule Parameter
1495ruleParameter returns [EObject current=null]
1496@init {
1497 enterRule();
1498}
1499@after {
1500 leaveRule();
1501}:
1502 (
1503 (
1504 (
1505 {
1506 newCompositeNode(grammarAccess.getParameterAccess().getVariableVariableParserRuleCall_0_0());
1507 }
1508 lv_variable_0_0=ruleVariable
1509 {
1510 if ($current==null) {
1511 $current = createModelElementForParent(grammarAccess.getParameterRule());
1512 }
1513 set(
1514 $current,
1515 "variable",
1516 lv_variable_0_0,
1517 "org.eclipse.viatra.solver.language.SolverLanguage.Variable");
1518 afterParserOrEnumRuleCall();
1519 }
1520 )
1521 )
1522 (
1523 otherlv_1=':'
1524 {
1525 newLeafNode(otherlv_1, grammarAccess.getParameterAccess().getColonKeyword_1_0());
1526 }
1527 (
1528 (
1529 {
1530 newCompositeNode(grammarAccess.getParameterAccess().getTypeSymbolParserRuleCall_1_1_0());
1531 }
1532 lv_type_2_0=ruleSymbol
1533 {
1534 if ($current==null) {
1535 $current = createModelElementForParent(grammarAccess.getParameterRule());
1536 }
1537 set(
1538 $current,
1539 "type",
1540 lv_type_2_0,
1541 "org.eclipse.viatra.solver.language.SolverLanguage.Symbol");
1542 afterParserOrEnumRuleCall();
1543 }
1544 )
1545 )
1546 )?
1547 )
1548;
1549
1550// Entry rule entryRulePatternBody
1551entryRulePatternBody returns [EObject current=null]:
1552 { newCompositeNode(grammarAccess.getPatternBodyRule()); }
1553 iv_rulePatternBody=rulePatternBody
1554 { $current=$iv_rulePatternBody.current; }
1555 EOF;
1556
1557// Rule PatternBody
1558rulePatternBody returns [EObject current=null]
1559@init {
1560 enterRule();
1561}
1562@after {
1563 leaveRule();
1564}:
1565 (
1566 (
1567 {
1568 $current = forceCreateModelElement(
1569 grammarAccess.getPatternBodyAccess().getPatternBodyAction_0(),
1570 $current);
1571 }
1572 )
1573 (
1574 otherlv_1='true'
1575 {
1576 newLeafNode(otherlv_1, grammarAccess.getPatternBodyAccess().getTrueKeyword_1_0());
1577 }
1578 |
1579 (
1580 (
1581 {
1582 newCompositeNode(grammarAccess.getPatternBodyAccess().getConstraintsConstraintParserRuleCall_1_1_0());
1583 }
1584 lv_constraints_2_0=ruleConstraint
1585 {
1586 if ($current==null) {
1587 $current = createModelElementForParent(grammarAccess.getPatternBodyRule());
1588 }
1589 add(
1590 $current,
1591 "constraints",
1592 lv_constraints_2_0,
1593 "org.eclipse.viatra.solver.language.SolverLanguage.Constraint");
1594 afterParserOrEnumRuleCall();
1595 }
1596 )
1597 )*
1598 )
1599 )
1600;
1601
1602// Entry rule entryRulePolarity
1603entryRulePolarity returns [EObject current=null]:
1604 { newCompositeNode(grammarAccess.getPolarityRule()); }
1605 iv_rulePolarity=rulePolarity
1606 { $current=$iv_rulePolarity.current; }
1607 EOF;
1608
1609// Rule Polarity
1610rulePolarity returns [EObject current=null]
1611@init {
1612 enterRule();
1613}
1614@after {
1615 leaveRule();
1616}:
1617 (
1618 (
1619 (
1620 {
1621 $current = forceCreateModelElement(
1622 grammarAccess.getPolarityAccess().getPositiveAction_0_0(),
1623 $current);
1624 }
1625 )
1626 otherlv_1='+'
1627 {
1628 newLeafNode(otherlv_1, grammarAccess.getPolarityAccess().getPlusSignKeyword_0_1());
1629 }
1630 )
1631 |
1632 (
1633 (
1634 {
1635 $current = forceCreateModelElement(
1636 grammarAccess.getPolarityAccess().getNegativeAction_1_0(),
1637 $current);
1638 }
1639 )
1640 otherlv_3='-'
1641 {
1642 newLeafNode(otherlv_3, grammarAccess.getPolarityAccess().getHyphenMinusKeyword_1_1());
1643 }
1644 )
1645 )
1646;
1647
1648// Entry rule entryRuleConstraint
1649entryRuleConstraint returns [EObject current=null]:
1650 { newCompositeNode(grammarAccess.getConstraintRule()); }
1651 iv_ruleConstraint=ruleConstraint
1652 { $current=$iv_ruleConstraint.current; }
1653 EOF;
1654
1655// Rule Constraint
1656ruleConstraint returns [EObject current=null]
1657@init {
1658 enterRule();
1659}
1660@after {
1661 leaveRule();
1662}:
1663 (
1664 (
1665 (
1666 {
1667 newCompositeNode(grammarAccess.getConstraintAccess().getPolarityPolarityParserRuleCall_0_0());
1668 }
1669 lv_polarity_0_0=rulePolarity
1670 {
1671 if ($current==null) {
1672 $current = createModelElementForParent(grammarAccess.getConstraintRule());
1673 }
1674 set(
1675 $current,
1676 "polarity",
1677 lv_polarity_0_0,
1678 "org.eclipse.viatra.solver.language.SolverLanguage.Polarity");
1679 afterParserOrEnumRuleCall();
1680 }
1681 )
1682 )?
1683 (
1684 (
1685 {
1686 newCompositeNode(grammarAccess.getConstraintAccess().getSymbolModelSymbolParserRuleCall_1_0());
1687 }
1688 lv_symbol_1_0=ruleModelSymbol
1689 {
1690 if ($current==null) {
1691 $current = createModelElementForParent(grammarAccess.getConstraintRule());
1692 }
1693 set(
1694 $current,
1695 "symbol",
1696 lv_symbol_1_0,
1697 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol");
1698 afterParserOrEnumRuleCall();
1699 }
1700 )
1701 )
1702 (
1703 (
1704 otherlv_2='('
1705 {
1706 newLeafNode(otherlv_2, grammarAccess.getConstraintAccess().getLeftParenthesisKeyword_2_0_0());
1707 }
1708 (
1709 (
1710 {
1711 newCompositeNode(grammarAccess.getConstraintAccess().getParamsLiteralParserRuleCall_2_0_1_0());
1712 }
1713 lv_params_3_0=ruleLiteral
1714 {
1715 if ($current==null) {
1716 $current = createModelElementForParent(grammarAccess.getConstraintRule());
1717 }
1718 add(
1719 $current,
1720 "params",
1721 lv_params_3_0,
1722 "org.eclipse.viatra.solver.language.SolverLanguage.Literal");
1723 afterParserOrEnumRuleCall();
1724 }
1725 )
1726 )*
1727 otherlv_4=')'
1728 {
1729 newLeafNode(otherlv_4, grammarAccess.getConstraintAccess().getRightParenthesisKeyword_2_0_2());
1730 }
1731 )
1732 |
1733 (
1734 (
1735 (
1736 {
1737 newCompositeNode(grammarAccess.getConstraintAccess().getClosureTypeClosureTypeParserRuleCall_2_1_0_0());
1738 }
1739 lv_closureType_5_0=ruleClosureType
1740 {
1741 if ($current==null) {
1742 $current = createModelElementForParent(grammarAccess.getConstraintRule());
1743 }
1744 set(
1745 $current,
1746 "closureType",
1747 lv_closureType_5_0,
1748 "org.eclipse.viatra.solver.language.SolverLanguage.ClosureType");
1749 afterParserOrEnumRuleCall();
1750 }
1751 )
1752 )
1753 otherlv_6='('
1754 {
1755 newLeafNode(otherlv_6, grammarAccess.getConstraintAccess().getLeftParenthesisKeyword_2_1_1());
1756 }
1757 (
1758 (
1759 {
1760 newCompositeNode(grammarAccess.getConstraintAccess().getParamsLiteralParserRuleCall_2_1_2_0());
1761 }
1762 lv_params_7_0=ruleLiteral
1763 {
1764 if ($current==null) {
1765 $current = createModelElementForParent(grammarAccess.getConstraintRule());
1766 }
1767 add(
1768 $current,
1769 "params",
1770 lv_params_7_0,
1771 "org.eclipse.viatra.solver.language.SolverLanguage.Literal");
1772 afterParserOrEnumRuleCall();
1773 }
1774 )
1775 )
1776 (
1777 (
1778 {
1779 newCompositeNode(grammarAccess.getConstraintAccess().getParamsLiteralParserRuleCall_2_1_3_0());
1780 }
1781 lv_params_8_0=ruleLiteral
1782 {
1783 if ($current==null) {
1784 $current = createModelElementForParent(grammarAccess.getConstraintRule());
1785 }
1786 add(
1787 $current,
1788 "params",
1789 lv_params_8_0,
1790 "org.eclipse.viatra.solver.language.SolverLanguage.Literal");
1791 afterParserOrEnumRuleCall();
1792 }
1793 )
1794 )
1795 otherlv_9=')'
1796 {
1797 newLeafNode(otherlv_9, grammarAccess.getConstraintAccess().getRightParenthesisKeyword_2_1_4());
1798 }
1799 )
1800 )
1801 )
1802;
1803
1804// Entry rule entryRuleClosureType
1805entryRuleClosureType returns [EObject current=null]:
1806 { newCompositeNode(grammarAccess.getClosureTypeRule()); }
1807 iv_ruleClosureType=ruleClosureType
1808 { $current=$iv_ruleClosureType.current; }
1809 EOF;
1810
1811// Rule ClosureType
1812ruleClosureType returns [EObject current=null]
1813@init {
1814 enterRule();
1815}
1816@after {
1817 leaveRule();
1818}:
1819 (
1820 (
1821 (
1822 {
1823 $current = forceCreateModelElement(
1824 grammarAccess.getClosureTypeAccess().getReflexiveClosureAction_0_0(),
1825 $current);
1826 }
1827 )
1828 otherlv_1='*'
1829 {
1830 newLeafNode(otherlv_1, grammarAccess.getClosureTypeAccess().getAsteriskKeyword_0_1());
1831 }
1832 )
1833 |
1834 (
1835 (
1836 {
1837 $current = forceCreateModelElement(
1838 grammarAccess.getClosureTypeAccess().getIrreflexiveClosureAction_1_0(),
1839 $current);
1840 }
1841 )
1842 otherlv_3='+'
1843 {
1844 newLeafNode(otherlv_3, grammarAccess.getClosureTypeAccess().getPlusSignKeyword_1_1());
1845 }
1846 )
1847 )
1848;
1849
1850// Entry rule entryRuleLiteral
1851entryRuleLiteral returns [EObject current=null]:
1852 { newCompositeNode(grammarAccess.getLiteralRule()); }
1853 iv_ruleLiteral=ruleLiteral
1854 { $current=$iv_ruleLiteral.current; }
1855 EOF;
1856
1857// Rule Literal
1858ruleLiteral returns [EObject current=null]
1859@init {
1860 enterRule();
1861}
1862@after {
1863 leaveRule();
1864}:
1865 (
1866 {
1867 newCompositeNode(grammarAccess.getLiteralAccess().getVariableParserRuleCall_0());
1868 }
1869 this_Variable_0=ruleVariable
1870 {
1871 $current = $this_Variable_0.current;
1872 afterParserOrEnumRuleCall();
1873 }
1874 |
1875 {
1876 newCompositeNode(grammarAccess.getLiteralAccess().getDataObjectParserRuleCall_1());
1877 }
1878 this_DataObject_1=ruleDataObject
1879 {
1880 $current = $this_DataObject_1.current;
1881 afterParserOrEnumRuleCall();
1882 }
1883 )
1884;
1885
1886// Entry rule entryRuleVariable
1887entryRuleVariable returns [EObject current=null]:
1888 { newCompositeNode(grammarAccess.getVariableRule()); }
1889 iv_ruleVariable=ruleVariable
1890 { $current=$iv_ruleVariable.current; }
1891 EOF;
1892
1893// Rule Variable
1894ruleVariable returns [EObject current=null]
1895@init {
1896 enterRule();
1897}
1898@after {
1899 leaveRule();
1900}:
1901 (
1902 (
1903 lv_name_0_0=RULE_ID
1904 {
1905 newLeafNode(lv_name_0_0, grammarAccess.getVariableAccess().getNameIDTerminalRuleCall_0());
1906 }
1907 {
1908 if ($current==null) {
1909 $current = createModelElement(grammarAccess.getVariableRule());
1910 }
1911 setWithLastConsumed(
1912 $current,
1913 "name",
1914 lv_name_0_0,
1915 "org.eclipse.xtext.common.Terminals.ID");
1916 }
1917 )
1918 )
1919;
1920
1921// Entry rule entryRuleAllInstances
1922entryRuleAllInstances returns [EObject current=null]:
1923 { newCompositeNode(grammarAccess.getAllInstancesRule()); }
1924 iv_ruleAllInstances=ruleAllInstances
1925 { $current=$iv_ruleAllInstances.current; }
1926 EOF;
1927
1928// Rule AllInstances
1929ruleAllInstances returns [EObject current=null]
1930@init {
1931 enterRule();
1932}
1933@after {
1934 leaveRule();
1935}:
1936 (
1937 otherlv_0=':'
1938 {
1939 newLeafNode(otherlv_0, grammarAccess.getAllInstancesAccess().getColonKeyword_0());
1940 }
1941 (
1942 (
1943 {
1944 newCompositeNode(grammarAccess.getAllInstancesAccess().getSymbolSymbolParserRuleCall_1_0());
1945 }
1946 lv_symbol_1_0=ruleSymbol
1947 {
1948 if ($current==null) {
1949 $current = createModelElementForParent(grammarAccess.getAllInstancesRule());
1950 }
1951 set(
1952 $current,
1953 "symbol",
1954 lv_symbol_1_0,
1955 "org.eclipse.viatra.solver.language.SolverLanguage.Symbol");
1956 afterParserOrEnumRuleCall();
1957 }
1958 )
1959 )
1960 )
1961;
1962
1963// Entry rule entryRuleAllObjects
1964entryRuleAllObjects returns [EObject current=null]:
1965 { newCompositeNode(grammarAccess.getAllObjectsRule()); }
1966 iv_ruleAllObjects=ruleAllObjects
1967 { $current=$iv_ruleAllObjects.current; }
1968 EOF;
1969
1970// Rule AllObjects
1971ruleAllObjects returns [EObject current=null]
1972@init {
1973 enterRule();
1974}
1975@after {
1976 leaveRule();
1977}:
1978 (
1979 (
1980 {
1981 $current = forceCreateModelElement(
1982 grammarAccess.getAllObjectsAccess().getAllObjectsAction_0(),
1983 $current);
1984 }
1985 )
1986 otherlv_1='*'
1987 {
1988 newLeafNode(otherlv_1, grammarAccess.getAllObjectsAccess().getAsteriskKeyword_1());
1989 }
1990 )
1991;
1992
1993// Entry rule entryRuleDefaultInterpretation
1994entryRuleDefaultInterpretation returns [EObject current=null]:
1995 { newCompositeNode(grammarAccess.getDefaultInterpretationRule()); }
1996 iv_ruleDefaultInterpretation=ruleDefaultInterpretation
1997 { $current=$iv_ruleDefaultInterpretation.current; }
1998 EOF;
1999
2000// Rule DefaultInterpretation
2001ruleDefaultInterpretation returns [EObject current=null]
2002@init {
2003 enterRule();
2004}
2005@after {
2006 leaveRule();
2007}:
2008 (
2009 otherlv_0='default'
2010 {
2011 newLeafNode(otherlv_0, grammarAccess.getDefaultInterpretationAccess().getDefaultKeyword_0());
2012 }
2013 (
2014 (
2015 {
2016 newCompositeNode(grammarAccess.getDefaultInterpretationAccess().getInterpretationBasicInterpretationParserRuleCall_1_0());
2017 }
2018 lv_interpretation_1_0=ruleBasicInterpretation
2019 {
2020 if ($current==null) {
2021 $current = createModelElementForParent(grammarAccess.getDefaultInterpretationRule());
2022 }
2023 set(
2024 $current,
2025 "interpretation",
2026 lv_interpretation_1_0,
2027 "org.eclipse.viatra.solver.language.SolverLanguage.BasicInterpretation");
2028 afterParserOrEnumRuleCall();
2029 }
2030 )
2031 )
2032 )
2033;
2034
2035// Entry rule entryRuleCDInterpretation
2036entryRuleCDInterpretation returns [EObject current=null]:
2037 { newCompositeNode(grammarAccess.getCDInterpretationRule()); }
2038 iv_ruleCDInterpretation=ruleCDInterpretation
2039 { $current=$iv_ruleCDInterpretation.current; }
2040 EOF;
2041
2042// Rule CDInterpretation
2043ruleCDInterpretation returns [EObject current=null]
2044@init {
2045 enterRule();
2046}
2047@after {
2048 leaveRule();
2049}:
2050 (
2051 {
2052 newCompositeNode(grammarAccess.getCDInterpretationAccess().getClassInterpretationParserRuleCall_0());
2053 }
2054 this_ClassInterpretation_0=ruleClassInterpretation
2055 {
2056 $current = $this_ClassInterpretation_0.current;
2057 afterParserOrEnumRuleCall();
2058 }
2059 |
2060 {
2061 newCompositeNode(grammarAccess.getCDInterpretationAccess().getEnumInterpretationParserRuleCall_1());
2062 }
2063 this_EnumInterpretation_1=ruleEnumInterpretation
2064 {
2065 $current = $this_EnumInterpretation_1.current;
2066 afterParserOrEnumRuleCall();
2067 }
2068 |
2069 {
2070 newCompositeNode(grammarAccess.getCDInterpretationAccess().getGlobalRelationInterpretationParserRuleCall_2());
2071 }
2072 this_GlobalRelationInterpretation_2=ruleGlobalRelationInterpretation
2073 {
2074 $current = $this_GlobalRelationInterpretation_2.current;
2075 afterParserOrEnumRuleCall();
2076 }
2077 )
2078;
2079
2080// Entry rule entryRuleClassInterpretation
2081entryRuleClassInterpretation returns [EObject current=null]:
2082 { newCompositeNode(grammarAccess.getClassInterpretationRule()); }
2083 iv_ruleClassInterpretation=ruleClassInterpretation
2084 { $current=$iv_ruleClassInterpretation.current; }
2085 EOF;
2086
2087// Rule ClassInterpretation
2088ruleClassInterpretation returns [EObject current=null]
2089@init {
2090 enterRule();
2091}
2092@after {
2093 leaveRule();
2094}:
2095 (
2096 (
2097 (
2098 lv_abstract_0_0='abstract'
2099 {
2100 newLeafNode(lv_abstract_0_0, grammarAccess.getClassInterpretationAccess().getAbstractAbstractKeyword_0_0());
2101 }
2102 {
2103 if ($current==null) {
2104 $current = createModelElement(grammarAccess.getClassInterpretationRule());
2105 }
2106 setWithLastConsumed($current, "abstract", true, "abstract");
2107 }
2108 )
2109 )
2110 otherlv_1='class'
2111 {
2112 newLeafNode(otherlv_1, grammarAccess.getClassInterpretationAccess().getClassKeyword_1());
2113 }
2114 (
2115 (
2116 {
2117 newCompositeNode(grammarAccess.getClassInterpretationAccess().getSymbolModelSymbolParserRuleCall_2_0());
2118 }
2119 lv_symbol_2_0=ruleModelSymbol
2120 {
2121 if ($current==null) {
2122 $current = createModelElementForParent(grammarAccess.getClassInterpretationRule());
2123 }
2124 set(
2125 $current,
2126 "symbol",
2127 lv_symbol_2_0,
2128 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol");
2129 afterParserOrEnumRuleCall();
2130 }
2131 )
2132 )
2133 (
2134 otherlv_3='extends'
2135 {
2136 newLeafNode(otherlv_3, grammarAccess.getClassInterpretationAccess().getExtendsKeyword_3_0());
2137 }
2138 (
2139 (
2140 {
2141 newCompositeNode(grammarAccess.getClassInterpretationAccess().getSupertypesModelSymbolParserRuleCall_3_1_0());
2142 }
2143 lv_supertypes_4_0=ruleModelSymbol
2144 {
2145 if ($current==null) {
2146 $current = createModelElementForParent(grammarAccess.getClassInterpretationRule());
2147 }
2148 add(
2149 $current,
2150 "supertypes",
2151 lv_supertypes_4_0,
2152 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol");
2153 afterParserOrEnumRuleCall();
2154 }
2155 )
2156 )+
2157 )?
2158 otherlv_5='{'
2159 {
2160 newLeafNode(otherlv_5, grammarAccess.getClassInterpretationAccess().getLeftCurlyBracketKeyword_4());
2161 }
2162 (
2163 (
2164 {
2165 newCompositeNode(grammarAccess.getClassInterpretationAccess().getFieltFieldRelationInterpretationParserRuleCall_5_0());
2166 }
2167 lv_fielt_6_0=ruleFieldRelationInterpretation
2168 {
2169 if ($current==null) {
2170 $current = createModelElementForParent(grammarAccess.getClassInterpretationRule());
2171 }
2172 add(
2173 $current,
2174 "fielt",
2175 lv_fielt_6_0,
2176 "org.eclipse.viatra.solver.language.SolverLanguage.FieldRelationInterpretation");
2177 afterParserOrEnumRuleCall();
2178 }
2179 )
2180 )*
2181 otherlv_7='}'
2182 {
2183 newLeafNode(otherlv_7, grammarAccess.getClassInterpretationAccess().getRightCurlyBracketKeyword_6());
2184 }
2185 )
2186;
2187
2188// Entry rule entryRuleEnumInterpretation
2189entryRuleEnumInterpretation returns [EObject current=null]:
2190 { newCompositeNode(grammarAccess.getEnumInterpretationRule()); }
2191 iv_ruleEnumInterpretation=ruleEnumInterpretation
2192 { $current=$iv_ruleEnumInterpretation.current; }
2193 EOF;
2194
2195// Rule EnumInterpretation
2196ruleEnumInterpretation returns [EObject current=null]
2197@init {
2198 enterRule();
2199}
2200@after {
2201 leaveRule();
2202}:
2203 (
2204 otherlv_0='enum'
2205 {
2206 newLeafNode(otherlv_0, grammarAccess.getEnumInterpretationAccess().getEnumKeyword_0());
2207 }
2208 (
2209 (
2210 {
2211 newCompositeNode(grammarAccess.getEnumInterpretationAccess().getSymbolModelSymbolParserRuleCall_1_0());
2212 }
2213 lv_Symbol_1_0=ruleModelSymbol
2214 {
2215 if ($current==null) {
2216 $current = createModelElementForParent(grammarAccess.getEnumInterpretationRule());
2217 }
2218 set(
2219 $current,
2220 "Symbol",
2221 lv_Symbol_1_0,
2222 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol");
2223 afterParserOrEnumRuleCall();
2224 }
2225 )
2226 )
2227 otherlv_2='{'
2228 {
2229 newLeafNode(otherlv_2, grammarAccess.getEnumInterpretationAccess().getLeftCurlyBracketKeyword_2());
2230 }
2231 (
2232 (
2233 {
2234 newCompositeNode(grammarAccess.getEnumInterpretationAccess().getObjectsNamedObjectParserRuleCall_3_0());
2235 }
2236 lv_objects_3_0=ruleNamedObject
2237 {
2238 if ($current==null) {
2239 $current = createModelElementForParent(grammarAccess.getEnumInterpretationRule());
2240 }
2241 add(
2242 $current,
2243 "objects",
2244 lv_objects_3_0,
2245 "org.eclipse.viatra.solver.language.SolverLanguage.NamedObject");
2246 afterParserOrEnumRuleCall();
2247 }
2248 )
2249 )+
2250 otherlv_4='}'
2251 {
2252 newLeafNode(otherlv_4, grammarAccess.getEnumInterpretationAccess().getRightCurlyBracketKeyword_4());
2253 }
2254 )
2255;
2256
2257// Entry rule entryRuleFieldRelationInterpretation
2258entryRuleFieldRelationInterpretation returns [EObject current=null]:
2259 { newCompositeNode(grammarAccess.getFieldRelationInterpretationRule()); }
2260 iv_ruleFieldRelationInterpretation=ruleFieldRelationInterpretation
2261 { $current=$iv_ruleFieldRelationInterpretation.current; }
2262 EOF;
2263
2264// Rule FieldRelationInterpretation
2265ruleFieldRelationInterpretation returns [EObject current=null]
2266@init {
2267 enterRule();
2268}
2269@after {
2270 leaveRule();
2271}:
2272 (
2273 (
2274 (
2275 lv_containment_0_0='containment'
2276 {
2277 newLeafNode(lv_containment_0_0, grammarAccess.getFieldRelationInterpretationAccess().getContainmentContainmentKeyword_0_0());
2278 }
2279 {
2280 if ($current==null) {
2281 $current = createModelElement(grammarAccess.getFieldRelationInterpretationRule());
2282 }
2283 setWithLastConsumed($current, "containment", true, "containment");
2284 }
2285 )
2286 )
2287 (
2288 (
2289 {
2290 newCompositeNode(grammarAccess.getFieldRelationInterpretationAccess().getSymbolModelSymbolParserRuleCall_1_0());
2291 }
2292 lv_symbol_1_0=ruleModelSymbol
2293 {
2294 if ($current==null) {
2295 $current = createModelElementForParent(grammarAccess.getFieldRelationInterpretationRule());
2296 }
2297 set(
2298 $current,
2299 "symbol",
2300 lv_symbol_1_0,
2301 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol");
2302 afterParserOrEnumRuleCall();
2303 }
2304 )
2305 )
2306 otherlv_2=':'
2307 {
2308 newLeafNode(otherlv_2, grammarAccess.getFieldRelationInterpretationAccess().getColonKeyword_2());
2309 }
2310 (
2311 (
2312 {
2313 newCompositeNode(grammarAccess.getFieldRelationInterpretationAccess().getMultiplicityMultiplicityDefinitionParserRuleCall_3_0());
2314 }
2315 lv_multiplicity_3_0=ruleMultiplicityDefinition
2316 {
2317 if ($current==null) {
2318 $current = createModelElementForParent(grammarAccess.getFieldRelationInterpretationRule());
2319 }
2320 set(
2321 $current,
2322 "multiplicity",
2323 lv_multiplicity_3_0,
2324 "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicityDefinition");
2325 afterParserOrEnumRuleCall();
2326 }
2327 )
2328 )?
2329 (
2330 (
2331 {
2332 newCompositeNode(grammarAccess.getFieldRelationInterpretationAccess().getTargetSymbolParserRuleCall_4_0());
2333 }
2334 lv_target_4_0=ruleSymbol
2335 {
2336 if ($current==null) {
2337 $current = createModelElementForParent(grammarAccess.getFieldRelationInterpretationRule());
2338 }
2339 set(
2340 $current,
2341 "target",
2342 lv_target_4_0,
2343 "org.eclipse.viatra.solver.language.SolverLanguage.Symbol");
2344 afterParserOrEnumRuleCall();
2345 }
2346 )
2347 )
2348 )
2349;
2350
2351// Entry rule entryRuleGlobalRelationInterpretation
2352entryRuleGlobalRelationInterpretation returns [EObject current=null]:
2353 { newCompositeNode(grammarAccess.getGlobalRelationInterpretationRule()); }
2354 iv_ruleGlobalRelationInterpretation=ruleGlobalRelationInterpretation
2355 { $current=$iv_ruleGlobalRelationInterpretation.current; }
2356 EOF;
2357
2358// Rule GlobalRelationInterpretation
2359ruleGlobalRelationInterpretation returns [EObject current=null]
2360@init {
2361 enterRule();
2362}
2363@after {
2364 leaveRule();
2365}:
2366 (
2367 (
2368 (
2369 lv_containment_0_0='containment'
2370 {
2371 newLeafNode(lv_containment_0_0, grammarAccess.getGlobalRelationInterpretationAccess().getContainmentContainmentKeyword_0_0());
2372 }
2373 {
2374 if ($current==null) {
2375 $current = createModelElement(grammarAccess.getGlobalRelationInterpretationRule());
2376 }
2377 setWithLastConsumed($current, "containment", true, "containment");
2378 }
2379 )
2380 )
2381 otherlv_1='relation'
2382 {
2383 newLeafNode(otherlv_1, grammarAccess.getGlobalRelationInterpretationAccess().getRelationKeyword_1());
2384 }
2385 (
2386 (
2387 {
2388 newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getSymbolModelSymbolParserRuleCall_2_0());
2389 }
2390 lv_symbol_2_0=ruleModelSymbol
2391 {
2392 if ($current==null) {
2393 $current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule());
2394 }
2395 set(
2396 $current,
2397 "symbol",
2398 lv_symbol_2_0,
2399 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol");
2400 afterParserOrEnumRuleCall();
2401 }
2402 )
2403 )
2404 otherlv_3=':'
2405 {
2406 newLeafNode(otherlv_3, grammarAccess.getGlobalRelationInterpretationAccess().getColonKeyword_3());
2407 }
2408 (
2409 (
2410 {
2411 newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getSourceMultiplicityMultiplicityDefinitionParserRuleCall_4_0());
2412 }
2413 lv_sourceMultiplicity_4_0=ruleMultiplicityDefinition
2414 {
2415 if ($current==null) {
2416 $current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule());
2417 }
2418 set(
2419 $current,
2420 "sourceMultiplicity",
2421 lv_sourceMultiplicity_4_0,
2422 "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicityDefinition");
2423 afterParserOrEnumRuleCall();
2424 }
2425 )
2426 )?
2427 (
2428 (
2429 {
2430 newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getSourceSymbolParserRuleCall_5_0());
2431 }
2432 lv_source_5_0=ruleSymbol
2433 {
2434 if ($current==null) {
2435 $current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule());
2436 }
2437 set(
2438 $current,
2439 "source",
2440 lv_source_5_0,
2441 "org.eclipse.viatra.solver.language.SolverLanguage.Symbol");
2442 afterParserOrEnumRuleCall();
2443 }
2444 )
2445 )
2446 (
2447 (
2448 {
2449 newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getTargetMultiplicityMultiplicityDefinitionParserRuleCall_6_0());
2450 }
2451 lv_targetMultiplicity_6_0=ruleMultiplicityDefinition
2452 {
2453 if ($current==null) {
2454 $current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule());
2455 }
2456 set(
2457 $current,
2458 "targetMultiplicity",
2459 lv_targetMultiplicity_6_0,
2460 "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicityDefinition");
2461 afterParserOrEnumRuleCall();
2462 }
2463 )
2464 )?
2465 (
2466 (
2467 {
2468 newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getTargetSymbolParserRuleCall_7_0());
2469 }
2470 lv_target_7_0=ruleSymbol
2471 {
2472 if ($current==null) {
2473 $current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule());
2474 }
2475 set(
2476 $current,
2477 "target",
2478 lv_target_7_0,
2479 "org.eclipse.viatra.solver.language.SolverLanguage.Symbol");
2480 afterParserOrEnumRuleCall();
2481 }
2482 )
2483 )
2484 )
2485;
2486
2487// Entry rule entryRuleMultiplicityDefinition
2488entryRuleMultiplicityDefinition returns [EObject current=null]:
2489 { newCompositeNode(grammarAccess.getMultiplicityDefinitionRule()); }
2490 iv_ruleMultiplicityDefinition=ruleMultiplicityDefinition
2491 { $current=$iv_ruleMultiplicityDefinition.current; }
2492 EOF;
2493
2494// Rule MultiplicityDefinition
2495ruleMultiplicityDefinition returns [EObject current=null]
2496@init {
2497 enterRule();
2498}
2499@after {
2500 leaveRule();
2501}:
2502 (
2503 (
2504 (
2505 lv_lower_0_0=RULE_INT
2506 {
2507 newLeafNode(lv_lower_0_0, grammarAccess.getMultiplicityDefinitionAccess().getLowerINTTerminalRuleCall_0_0());
2508 }
2509 {
2510 if ($current==null) {
2511 $current = createModelElement(grammarAccess.getMultiplicityDefinitionRule());
2512 }
2513 setWithLastConsumed(
2514 $current,
2515 "lower",
2516 lv_lower_0_0,
2517 "org.eclipse.xtext.common.Terminals.INT");
2518 }
2519 )
2520 )
2521 otherlv_1='..'
2522 {
2523 newLeafNode(otherlv_1, grammarAccess.getMultiplicityDefinitionAccess().getFullStopFullStopKeyword_1());
2524 }
2525 (
2526 (
2527 (
2528 lv_upper_2_0=RULE_INT
2529 {
2530 newLeafNode(lv_upper_2_0, grammarAccess.getMultiplicityDefinitionAccess().getUpperINTTerminalRuleCall_2_0_0());
2531 }
2532 {
2533 if ($current==null) {
2534 $current = createModelElement(grammarAccess.getMultiplicityDefinitionRule());
2535 }
2536 setWithLastConsumed(
2537 $current,
2538 "upper",
2539 lv_upper_2_0,
2540 "org.eclipse.xtext.common.Terminals.INT");
2541 }
2542 )
2543 )
2544 |
2545 (
2546 (
2547 lv_unlimitedUpper_3_0='*'
2548 {
2549 newLeafNode(lv_unlimitedUpper_3_0, grammarAccess.getMultiplicityDefinitionAccess().getUnlimitedUpperAsteriskKeyword_2_1_0());
2550 }
2551 {
2552 if ($current==null) {
2553 $current = createModelElement(grammarAccess.getMultiplicityDefinitionRule());
2554 }
2555 setWithLastConsumed($current, "unlimitedUpper", true, "*");
2556 }
2557 )
2558 )
2559 )
2560 )
2561;
2562
2563RULE_STRING : '"' ('\\' .|~(('\\'|'"')))* '"';
2564
2565RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
2566
2567RULE_INT : ('0'..'9')+;
2568
2569RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
2570
2571RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
2572
2573RULE_WS : (' '|'\t'|'\r'|'\n')+;
2574
2575RULE_ANY_OTHER : .;