aboutsummaryrefslogtreecommitdiffstats
path: root/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g
diff options
context:
space:
mode:
Diffstat (limited to 'language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g')
-rw-r--r--language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g1909
1 files changed, 1909 insertions, 0 deletions
diff --git a/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g b/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g
new file mode 100644
index 00000000..64db0417
--- /dev/null
+++ b/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g
@@ -0,0 +1,1909 @@
1/*
2 * generated by Xtext 2.26.0.M1
3 */
4grammar InternalProblem;
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.emf.common.util.Enumerator;
27import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
28import org.eclipse.xtext.parser.antlr.XtextTokenStream;
29import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
30import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
31import org.eclipse.viatra.solver.language.services.ProblemGrammarAccess;
32
33}
34
35@parser::members {
36
37 private ProblemGrammarAccess grammarAccess;
38
39 public InternalProblemParser(TokenStream input, ProblemGrammarAccess grammarAccess) {
40 this(input);
41 this.grammarAccess = grammarAccess;
42 registerRules(grammarAccess.getGrammar());
43 }
44
45 @Override
46 protected String getFirstRuleName() {
47 return "Problem";
48 }
49
50 @Override
51 protected ProblemGrammarAccess getGrammarAccess() {
52 return grammarAccess;
53 }
54
55}
56
57@rulecatch {
58 catch (RecognitionException re) {
59 recover(input,re);
60 appendSkippedTokens();
61 }
62}
63
64// Entry rule entryRuleProblem
65entryRuleProblem returns [EObject current=null]:
66 { newCompositeNode(grammarAccess.getProblemRule()); }
67 iv_ruleProblem=ruleProblem
68 { $current=$iv_ruleProblem.current; }
69 EOF;
70
71// Rule Problem
72ruleProblem returns [EObject current=null]
73@init {
74 enterRule();
75}
76@after {
77 leaveRule();
78}:
79 (
80 (
81 otherlv_0='problem'
82 {
83 newLeafNode(otherlv_0, grammarAccess.getProblemAccess().getProblemKeyword_0_0());
84 }
85 (
86 (
87 {
88 newCompositeNode(grammarAccess.getProblemAccess().getNameIdentifierParserRuleCall_0_1_0());
89 }
90 lv_name_1_0=ruleIdentifier
91 {
92 if ($current==null) {
93 $current = createModelElementForParent(grammarAccess.getProblemRule());
94 }
95 set(
96 $current,
97 "name",
98 lv_name_1_0,
99 "org.eclipse.viatra.solver.language.Problem.Identifier");
100 afterParserOrEnumRuleCall();
101 }
102 )
103 )
104 otherlv_2='.'
105 {
106 newLeafNode(otherlv_2, grammarAccess.getProblemAccess().getFullStopKeyword_0_2());
107 }
108 )?
109 (
110 (
111 {
112 newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_1_0());
113 }
114 lv_statements_3_0=ruleStatement
115 {
116 if ($current==null) {
117 $current = createModelElementForParent(grammarAccess.getProblemRule());
118 }
119 add(
120 $current,
121 "statements",
122 lv_statements_3_0,
123 "org.eclipse.viatra.solver.language.Problem.Statement");
124 afterParserOrEnumRuleCall();
125 }
126 )
127 )*
128 )
129;
130
131// Entry rule entryRuleStatement
132entryRuleStatement returns [EObject current=null]:
133 { newCompositeNode(grammarAccess.getStatementRule()); }
134 iv_ruleStatement=ruleStatement
135 { $current=$iv_ruleStatement.current; }
136 EOF;
137
138// Rule Statement
139ruleStatement returns [EObject current=null]
140@init {
141 enterRule();
142}
143@after {
144 leaveRule();
145}:
146 (
147 {
148 newCompositeNode(grammarAccess.getStatementAccess().getClassDeclarationParserRuleCall_0());
149 }
150 this_ClassDeclaration_0=ruleClassDeclaration
151 {
152 $current = $this_ClassDeclaration_0.current;
153 afterParserOrEnumRuleCall();
154 }
155 |
156 {
157 newCompositeNode(grammarAccess.getStatementAccess().getEnumDeclarationParserRuleCall_1());
158 }
159 this_EnumDeclaration_1=ruleEnumDeclaration
160 {
161 $current = $this_EnumDeclaration_1.current;
162 afterParserOrEnumRuleCall();
163 }
164 |
165 {
166 newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_2());
167 }
168 this_PredicateDefinition_2=rulePredicateDefinition
169 {
170 $current = $this_PredicateDefinition_2.current;
171 afterParserOrEnumRuleCall();
172 }
173 |
174 {
175 newCompositeNode(grammarAccess.getStatementAccess().getAssertionParserRuleCall_3());
176 }
177 this_Assertion_3=ruleAssertion
178 {
179 $current = $this_Assertion_3.current;
180 afterParserOrEnumRuleCall();
181 }
182 |
183 {
184 newCompositeNode(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_4());
185 }
186 this_ScopeDeclaration_4=ruleScopeDeclaration
187 {
188 $current = $this_ScopeDeclaration_4.current;
189 afterParserOrEnumRuleCall();
190 }
191 )
192;
193
194// Entry rule entryRuleClassDeclaration
195entryRuleClassDeclaration returns [EObject current=null]:
196 { newCompositeNode(grammarAccess.getClassDeclarationRule()); }
197 iv_ruleClassDeclaration=ruleClassDeclaration
198 { $current=$iv_ruleClassDeclaration.current; }
199 EOF;
200
201// Rule ClassDeclaration
202ruleClassDeclaration returns [EObject current=null]
203@init {
204 enterRule();
205}
206@after {
207 leaveRule();
208}:
209 (
210 (
211 (
212 lv_abstract_0_0='abstract'
213 {
214 newLeafNode(lv_abstract_0_0, grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0());
215 }
216 {
217 if ($current==null) {
218 $current = createModelElement(grammarAccess.getClassDeclarationRule());
219 }
220 setWithLastConsumed($current, "abstract", lv_abstract_0_0 != null, "abstract");
221 }
222 )
223 )?
224 otherlv_1='class'
225 {
226 newLeafNode(otherlv_1, grammarAccess.getClassDeclarationAccess().getClassKeyword_1());
227 }
228 (
229 (
230 {
231 newCompositeNode(grammarAccess.getClassDeclarationAccess().getNameIdentifierParserRuleCall_2_0());
232 }
233 lv_name_2_0=ruleIdentifier
234 {
235 if ($current==null) {
236 $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
237 }
238 set(
239 $current,
240 "name",
241 lv_name_2_0,
242 "org.eclipse.viatra.solver.language.Problem.Identifier");
243 afterParserOrEnumRuleCall();
244 }
245 )
246 )
247 (
248 otherlv_3='extends'
249 {
250 newLeafNode(otherlv_3, grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0());
251 }
252 (
253 (
254 {
255 if ($current==null) {
256 $current = createModelElement(grammarAccess.getClassDeclarationRule());
257 }
258 }
259 {
260 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationCrossReference_3_1_0());
261 }
262 ruleQualifiedName
263 {
264 afterParserOrEnumRuleCall();
265 }
266 )
267 )
268 (
269 otherlv_5=','
270 {
271 newLeafNode(otherlv_5, grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_2_0());
272 }
273 (
274 (
275 {
276 if ($current==null) {
277 $current = createModelElement(grammarAccess.getClassDeclarationRule());
278 }
279 }
280 {
281 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationCrossReference_3_2_1_0());
282 }
283 ruleQualifiedName
284 {
285 afterParserOrEnumRuleCall();
286 }
287 )
288 )
289 )*
290 )?
291 (
292 (
293 otherlv_7='{'
294 {
295 newLeafNode(otherlv_7, grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0());
296 }
297 (
298 (
299 (
300 {
301 newCompositeNode(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_4_0_1_0_0());
302 }
303 lv_referenceDeclarations_8_0=ruleReferenceDeclaration
304 {
305 if ($current==null) {
306 $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
307 }
308 add(
309 $current,
310 "referenceDeclarations",
311 lv_referenceDeclarations_8_0,
312 "org.eclipse.viatra.solver.language.Problem.ReferenceDeclaration");
313 afterParserOrEnumRuleCall();
314 }
315 )
316 )
317 (
318 otherlv_9=';'
319 {
320 newLeafNode(otherlv_9, grammarAccess.getClassDeclarationAccess().getSemicolonKeyword_4_0_1_1());
321 }
322 )?
323 )*
324 otherlv_10='}'
325 {
326 newLeafNode(otherlv_10, grammarAccess.getClassDeclarationAccess().getRightCurlyBracketKeyword_4_0_2());
327 }
328 )
329 |
330 otherlv_11='.'
331 {
332 newLeafNode(otherlv_11, grammarAccess.getClassDeclarationAccess().getFullStopKeyword_4_1());
333 }
334 )
335 )
336;
337
338// Entry rule entryRuleEnumDeclaration
339entryRuleEnumDeclaration returns [EObject current=null]:
340 { newCompositeNode(grammarAccess.getEnumDeclarationRule()); }
341 iv_ruleEnumDeclaration=ruleEnumDeclaration
342 { $current=$iv_ruleEnumDeclaration.current; }
343 EOF;
344
345// Rule EnumDeclaration
346ruleEnumDeclaration returns [EObject current=null]
347@init {
348 enterRule();
349}
350@after {
351 leaveRule();
352}:
353 (
354 otherlv_0='enum'
355 {
356 newLeafNode(otherlv_0, grammarAccess.getEnumDeclarationAccess().getEnumKeyword_0());
357 }
358 (
359 (
360 {
361 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getNameIdentifierParserRuleCall_1_0());
362 }
363 lv_name_1_0=ruleIdentifier
364 {
365 if ($current==null) {
366 $current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
367 }
368 set(
369 $current,
370 "name",
371 lv_name_1_0,
372 "org.eclipse.viatra.solver.language.Problem.Identifier");
373 afterParserOrEnumRuleCall();
374 }
375 )
376 )
377 (
378 (
379 otherlv_2='{'
380 {
381 newLeafNode(otherlv_2, grammarAccess.getEnumDeclarationAccess().getLeftCurlyBracketKeyword_2_0_0());
382 }
383 (
384 (
385 (
386 {
387 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_0_0());
388 }
389 lv_literals_3_0=ruleEnumLiteral
390 {
391 if ($current==null) {
392 $current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
393 }
394 add(
395 $current,
396 "literals",
397 lv_literals_3_0,
398 "org.eclipse.viatra.solver.language.Problem.EnumLiteral");
399 afterParserOrEnumRuleCall();
400 }
401 )
402 )
403 (
404 otherlv_4=','
405 {
406 newLeafNode(otherlv_4, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_1_0());
407 }
408 (
409 (
410 {
411 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0());
412 }
413 lv_literals_5_0=ruleEnumLiteral
414 {
415 if ($current==null) {
416 $current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
417 }
418 add(
419 $current,
420 "literals",
421 lv_literals_5_0,
422 "org.eclipse.viatra.solver.language.Problem.EnumLiteral");
423 afterParserOrEnumRuleCall();
424 }
425 )
426 )
427 )*
428 (
429 otherlv_6=','
430 {
431 newLeafNode(otherlv_6, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_2_0());
432 }
433 |
434 otherlv_7=';'
435 {
436 newLeafNode(otherlv_7, grammarAccess.getEnumDeclarationAccess().getSemicolonKeyword_2_0_1_2_1());
437 }
438 )?
439 )?
440 otherlv_8='}'
441 {
442 newLeafNode(otherlv_8, grammarAccess.getEnumDeclarationAccess().getRightCurlyBracketKeyword_2_0_2());
443 }
444 )
445 |
446 otherlv_9='.'
447 {
448 newLeafNode(otherlv_9, grammarAccess.getEnumDeclarationAccess().getFullStopKeyword_2_1());
449 }
450 )
451 )
452;
453
454// Entry rule entryRuleEnumLiteral
455entryRuleEnumLiteral returns [EObject current=null]:
456 { newCompositeNode(grammarAccess.getEnumLiteralRule()); }
457 iv_ruleEnumLiteral=ruleEnumLiteral
458 { $current=$iv_ruleEnumLiteral.current; }
459 EOF;
460
461// Rule EnumLiteral
462ruleEnumLiteral returns [EObject current=null]
463@init {
464 enterRule();
465}
466@after {
467 leaveRule();
468}:
469 (
470 (
471 {
472 newCompositeNode(grammarAccess.getEnumLiteralAccess().getNameQuotedOrUnquotedIdParserRuleCall_0());
473 }
474 lv_name_0_0=ruleQuotedOrUnquotedId
475 {
476 if ($current==null) {
477 $current = createModelElementForParent(grammarAccess.getEnumLiteralRule());
478 }
479 set(
480 $current,
481 "name",
482 lv_name_0_0,
483 "org.eclipse.viatra.solver.language.Problem.QuotedOrUnquotedId");
484 afterParserOrEnumRuleCall();
485 }
486 )
487 )
488;
489
490// Entry rule entryRuleReferenceDeclaration
491entryRuleReferenceDeclaration returns [EObject current=null]:
492 { newCompositeNode(grammarAccess.getReferenceDeclarationRule()); }
493 iv_ruleReferenceDeclaration=ruleReferenceDeclaration
494 { $current=$iv_ruleReferenceDeclaration.current; }
495 EOF;
496
497// Rule ReferenceDeclaration
498ruleReferenceDeclaration returns [EObject current=null]
499@init {
500 enterRule();
501}
502@after {
503 leaveRule();
504}:
505 (
506 (
507 (
508 (
509 lv_containment_0_0='contains'
510 {
511 newLeafNode(lv_containment_0_0, grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0());
512 }
513 {
514 if ($current==null) {
515 $current = createModelElement(grammarAccess.getReferenceDeclarationRule());
516 }
517 setWithLastConsumed($current, "containment", lv_containment_0_0 != null, "contains");
518 }
519 )
520 )
521 |
522 otherlv_1='refers'
523 {
524 newLeafNode(otherlv_1, grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1());
525 }
526 )?
527 (
528 (
529 {
530 if ($current==null) {
531 $current = createModelElement(grammarAccess.getReferenceDeclarationRule());
532 }
533 }
534 {
535 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeRelationCrossReference_1_0());
536 }
537 ruleQualifiedName
538 {
539 afterParserOrEnumRuleCall();
540 }
541 )
542 )
543 (
544 otherlv_3='['
545 {
546 newLeafNode(otherlv_3, grammarAccess.getReferenceDeclarationAccess().getLeftSquareBracketKeyword_2_0());
547 }
548 (
549 (
550 {
551 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getMultiplicityMultiplicityParserRuleCall_2_1_0());
552 }
553 lv_multiplicity_4_0=ruleMultiplicity
554 {
555 if ($current==null) {
556 $current = createModelElementForParent(grammarAccess.getReferenceDeclarationRule());
557 }
558 set(
559 $current,
560 "multiplicity",
561 lv_multiplicity_4_0,
562 "org.eclipse.viatra.solver.language.Problem.Multiplicity");
563 afterParserOrEnumRuleCall();
564 }
565 )
566 )
567 otherlv_5=']'
568 {
569 newLeafNode(otherlv_5, grammarAccess.getReferenceDeclarationAccess().getRightSquareBracketKeyword_2_2());
570 }
571 )?
572 (
573 (
574 {
575 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getNameIdentifierParserRuleCall_3_0());
576 }
577 lv_name_6_0=ruleIdentifier
578 {
579 if ($current==null) {
580 $current = createModelElementForParent(grammarAccess.getReferenceDeclarationRule());
581 }
582 set(
583 $current,
584 "name",
585 lv_name_6_0,
586 "org.eclipse.viatra.solver.language.Problem.Identifier");
587 afterParserOrEnumRuleCall();
588 }
589 )
590 )
591 (
592 otherlv_7='opposite'
593 {
594 newLeafNode(otherlv_7, grammarAccess.getReferenceDeclarationAccess().getOppositeKeyword_4_0());
595 }
596 (
597 (
598 {
599 if ($current==null) {
600 $current = createModelElement(grammarAccess.getReferenceDeclarationRule());
601 }
602 }
603 {
604 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationCrossReference_4_1_0());
605 }
606 ruleQualifiedName
607 {
608 afterParserOrEnumRuleCall();
609 }
610 )
611 )
612 )?
613 )
614;
615
616// Entry rule entryRulePredicateDefinition
617entryRulePredicateDefinition returns [EObject current=null]:
618 { newCompositeNode(grammarAccess.getPredicateDefinitionRule()); }
619 iv_rulePredicateDefinition=rulePredicateDefinition
620 { $current=$iv_rulePredicateDefinition.current; }
621 EOF;
622
623// Rule PredicateDefinition
624rulePredicateDefinition returns [EObject current=null]
625@init {
626 enterRule();
627}
628@after {
629 leaveRule();
630}:
631 (
632 (
633 (
634 (
635 (
636 lv_error_0_0='error'
637 {
638 newLeafNode(lv_error_0_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0());
639 }
640 {
641 if ($current==null) {
642 $current = createModelElement(grammarAccess.getPredicateDefinitionRule());
643 }
644 setWithLastConsumed($current, "error", lv_error_0_0 != null, "error");
645 }
646 )
647 )
648 (
649 otherlv_1='pred'
650 {
651 newLeafNode(otherlv_1, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1());
652 }
653 )?
654 )
655 |
656 otherlv_2='pred'
657 {
658 newLeafNode(otherlv_2, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_1());
659 }
660 )
661 (
662 (
663 {
664 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getNameIdentifierParserRuleCall_1_0());
665 }
666 lv_name_3_0=ruleIdentifier
667 {
668 if ($current==null) {
669 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
670 }
671 set(
672 $current,
673 "name",
674 lv_name_3_0,
675 "org.eclipse.viatra.solver.language.Problem.Identifier");
676 afterParserOrEnumRuleCall();
677 }
678 )
679 )
680 otherlv_4='('
681 {
682 newLeafNode(otherlv_4, grammarAccess.getPredicateDefinitionAccess().getLeftParenthesisKeyword_2());
683 }
684 (
685 (
686 (
687 {
688 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_0_0());
689 }
690 lv_parameters_5_0=ruleParameter
691 {
692 if ($current==null) {
693 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
694 }
695 add(
696 $current,
697 "parameters",
698 lv_parameters_5_0,
699 "org.eclipse.viatra.solver.language.Problem.Parameter");
700 afterParserOrEnumRuleCall();
701 }
702 )
703 )
704 (
705 otherlv_6=','
706 {
707 newLeafNode(otherlv_6, grammarAccess.getPredicateDefinitionAccess().getCommaKeyword_3_1_0());
708 }
709 (
710 (
711 {
712 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_1_1_0());
713 }
714 lv_parameters_7_0=ruleParameter
715 {
716 if ($current==null) {
717 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
718 }
719 add(
720 $current,
721 "parameters",
722 lv_parameters_7_0,
723 "org.eclipse.viatra.solver.language.Problem.Parameter");
724 afterParserOrEnumRuleCall();
725 }
726 )
727 )
728 )*
729 )?
730 otherlv_8=')'
731 {
732 newLeafNode(otherlv_8, grammarAccess.getPredicateDefinitionAccess().getRightParenthesisKeyword_4());
733 }
734 (
735 otherlv_9=':-'
736 {
737 newLeafNode(otherlv_9, grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_5_0());
738 }
739 (
740 (
741 {
742 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_1_0());
743 }
744 lv_bodies_10_0=ruleConjunction
745 {
746 if ($current==null) {
747 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
748 }
749 add(
750 $current,
751 "bodies",
752 lv_bodies_10_0,
753 "org.eclipse.viatra.solver.language.Problem.Conjunction");
754 afterParserOrEnumRuleCall();
755 }
756 )
757 )
758 (
759 otherlv_11=';'
760 {
761 newLeafNode(otherlv_11, grammarAccess.getPredicateDefinitionAccess().getSemicolonKeyword_5_2_0());
762 }
763 (
764 (
765 {
766 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_2_1_0());
767 }
768 lv_bodies_12_0=ruleConjunction
769 {
770 if ($current==null) {
771 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
772 }
773 add(
774 $current,
775 "bodies",
776 lv_bodies_12_0,
777 "org.eclipse.viatra.solver.language.Problem.Conjunction");
778 afterParserOrEnumRuleCall();
779 }
780 )
781 )
782 )*
783 )?
784 otherlv_13='.'
785 {
786 newLeafNode(otherlv_13, grammarAccess.getPredicateDefinitionAccess().getFullStopKeyword_6());
787 }
788 )
789;
790
791// Entry rule entryRuleParameter
792entryRuleParameter returns [EObject current=null]:
793 { newCompositeNode(grammarAccess.getParameterRule()); }
794 iv_ruleParameter=ruleParameter
795 { $current=$iv_ruleParameter.current; }
796 EOF;
797
798// Rule Parameter
799ruleParameter returns [EObject current=null]
800@init {
801 enterRule();
802}
803@after {
804 leaveRule();
805}:
806 (
807 (
808 (
809 {
810 if ($current==null) {
811 $current = createModelElement(grammarAccess.getParameterRule());
812 }
813 }
814 {
815 newCompositeNode(grammarAccess.getParameterAccess().getParameterTypeRelationCrossReference_0_0());
816 }
817 ruleQualifiedName
818 {
819 afterParserOrEnumRuleCall();
820 }
821 )
822 )?
823 (
824 (
825 {
826 newCompositeNode(grammarAccess.getParameterAccess().getNameIdentifierParserRuleCall_1_0());
827 }
828 lv_name_1_0=ruleIdentifier
829 {
830 if ($current==null) {
831 $current = createModelElementForParent(grammarAccess.getParameterRule());
832 }
833 set(
834 $current,
835 "name",
836 lv_name_1_0,
837 "org.eclipse.viatra.solver.language.Problem.Identifier");
838 afterParserOrEnumRuleCall();
839 }
840 )
841 )
842 )
843;
844
845// Entry rule entryRuleConjunction
846entryRuleConjunction returns [EObject current=null]:
847 { newCompositeNode(grammarAccess.getConjunctionRule()); }
848 iv_ruleConjunction=ruleConjunction
849 { $current=$iv_ruleConjunction.current; }
850 EOF;
851
852// Rule Conjunction
853ruleConjunction returns [EObject current=null]
854@init {
855 enterRule();
856}
857@after {
858 leaveRule();
859}:
860 (
861 (
862 (
863 {
864 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_0_0());
865 }
866 lv_literals_0_0=ruleLiteral
867 {
868 if ($current==null) {
869 $current = createModelElementForParent(grammarAccess.getConjunctionRule());
870 }
871 add(
872 $current,
873 "literals",
874 lv_literals_0_0,
875 "org.eclipse.viatra.solver.language.Problem.Literal");
876 afterParserOrEnumRuleCall();
877 }
878 )
879 )
880 (
881 otherlv_1=','
882 {
883 newLeafNode(otherlv_1, grammarAccess.getConjunctionAccess().getCommaKeyword_1_0());
884 }
885 (
886 (
887 {
888 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_1_1_0());
889 }
890 lv_literals_2_0=ruleLiteral
891 {
892 if ($current==null) {
893 $current = createModelElementForParent(grammarAccess.getConjunctionRule());
894 }
895 add(
896 $current,
897 "literals",
898 lv_literals_2_0,
899 "org.eclipse.viatra.solver.language.Problem.Literal");
900 afterParserOrEnumRuleCall();
901 }
902 )
903 )
904 )*
905 )
906;
907
908// Entry rule entryRuleLiteral
909entryRuleLiteral returns [EObject current=null]:
910 { newCompositeNode(grammarAccess.getLiteralRule()); }
911 iv_ruleLiteral=ruleLiteral
912 { $current=$iv_ruleLiteral.current; }
913 EOF;
914
915// Rule Literal
916ruleLiteral returns [EObject current=null]
917@init {
918 enterRule();
919}
920@after {
921 leaveRule();
922}:
923 (
924 {
925 newCompositeNode(grammarAccess.getLiteralAccess().getAtomParserRuleCall_0());
926 }
927 this_Atom_0=ruleAtom
928 {
929 $current = $this_Atom_0.current;
930 afterParserOrEnumRuleCall();
931 }
932 |
933 {
934 newCompositeNode(grammarAccess.getLiteralAccess().getNegativeLiteralParserRuleCall_1());
935 }
936 this_NegativeLiteral_1=ruleNegativeLiteral
937 {
938 $current = $this_NegativeLiteral_1.current;
939 afterParserOrEnumRuleCall();
940 }
941 )
942;
943
944// Entry rule entryRuleNegativeLiteral
945entryRuleNegativeLiteral returns [EObject current=null]:
946 { newCompositeNode(grammarAccess.getNegativeLiteralRule()); }
947 iv_ruleNegativeLiteral=ruleNegativeLiteral
948 { $current=$iv_ruleNegativeLiteral.current; }
949 EOF;
950
951// Rule NegativeLiteral
952ruleNegativeLiteral returns [EObject current=null]
953@init {
954 enterRule();
955}
956@after {
957 leaveRule();
958}:
959 (
960 otherlv_0='!'
961 {
962 newLeafNode(otherlv_0, grammarAccess.getNegativeLiteralAccess().getExclamationMarkKeyword_0());
963 }
964 (
965 (
966 {
967 newCompositeNode(grammarAccess.getNegativeLiteralAccess().getAtomAtomParserRuleCall_1_0());
968 }
969 lv_atom_1_0=ruleAtom
970 {
971 if ($current==null) {
972 $current = createModelElementForParent(grammarAccess.getNegativeLiteralRule());
973 }
974 set(
975 $current,
976 "atom",
977 lv_atom_1_0,
978 "org.eclipse.viatra.solver.language.Problem.Atom");
979 afterParserOrEnumRuleCall();
980 }
981 )
982 )
983 )
984;
985
986// Entry rule entryRuleAtom
987entryRuleAtom returns [EObject current=null]:
988 { newCompositeNode(grammarAccess.getAtomRule()); }
989 iv_ruleAtom=ruleAtom
990 { $current=$iv_ruleAtom.current; }
991 EOF;
992
993// Rule Atom
994ruleAtom returns [EObject current=null]
995@init {
996 enterRule();
997}
998@after {
999 leaveRule();
1000}:
1001 (
1002 (
1003 (
1004 {
1005 if ($current==null) {
1006 $current = createModelElement(grammarAccess.getAtomRule());
1007 }
1008 }
1009 {
1010 newCompositeNode(grammarAccess.getAtomAccess().getRelationRelationCrossReference_0_0());
1011 }
1012 ruleQualifiedName
1013 {
1014 afterParserOrEnumRuleCall();
1015 }
1016 )
1017 )
1018 (
1019 (
1020 lv_transitiveClosure_1_0='+'
1021 {
1022 newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0());
1023 }
1024 {
1025 if ($current==null) {
1026 $current = createModelElement(grammarAccess.getAtomRule());
1027 }
1028 setWithLastConsumed($current, "transitiveClosure", lv_transitiveClosure_1_0 != null, "+");
1029 }
1030 )
1031 )?
1032 otherlv_2='('
1033 {
1034 newLeafNode(otherlv_2, grammarAccess.getAtomAccess().getLeftParenthesisKeyword_2());
1035 }
1036 (
1037 (
1038 (
1039 {
1040 newCompositeNode(grammarAccess.getAtomAccess().getArgumentsArgumentParserRuleCall_3_0_0());
1041 }
1042 lv_arguments_3_0=ruleArgument
1043 {
1044 if ($current==null) {
1045 $current = createModelElementForParent(grammarAccess.getAtomRule());
1046 }
1047 add(
1048 $current,
1049 "arguments",
1050 lv_arguments_3_0,
1051 "org.eclipse.viatra.solver.language.Problem.Argument");
1052 afterParserOrEnumRuleCall();
1053 }
1054 )
1055 )
1056 (
1057 otherlv_4=','
1058 {
1059 newLeafNode(otherlv_4, grammarAccess.getAtomAccess().getCommaKeyword_3_1_0());
1060 }
1061 (
1062 (
1063 {
1064 newCompositeNode(grammarAccess.getAtomAccess().getArgumentsArgumentParserRuleCall_3_1_1_0());
1065 }
1066 lv_arguments_5_0=ruleArgument
1067 {
1068 if ($current==null) {
1069 $current = createModelElementForParent(grammarAccess.getAtomRule());
1070 }
1071 add(
1072 $current,
1073 "arguments",
1074 lv_arguments_5_0,
1075 "org.eclipse.viatra.solver.language.Problem.Argument");
1076 afterParserOrEnumRuleCall();
1077 }
1078 )
1079 )
1080 )*
1081 )?
1082 otherlv_6=')'
1083 {
1084 newLeafNode(otherlv_6, grammarAccess.getAtomAccess().getRightParenthesisKeyword_4());
1085 }
1086 )
1087;
1088
1089// Entry rule entryRuleArgument
1090entryRuleArgument returns [EObject current=null]:
1091 { newCompositeNode(grammarAccess.getArgumentRule()); }
1092 iv_ruleArgument=ruleArgument
1093 { $current=$iv_ruleArgument.current; }
1094 EOF;
1095
1096// Rule Argument
1097ruleArgument returns [EObject current=null]
1098@init {
1099 enterRule();
1100}
1101@after {
1102 leaveRule();
1103}:
1104 (
1105 (
1106 {
1107 if ($current==null) {
1108 $current = createModelElement(grammarAccess.getArgumentRule());
1109 }
1110 }
1111 {
1112 newCompositeNode(grammarAccess.getArgumentAccess().getVariableOrNodeVariableOrNodeCrossReference_0());
1113 }
1114 ruleQualifiedName
1115 {
1116 afterParserOrEnumRuleCall();
1117 }
1118 )
1119 )
1120;
1121
1122// Entry rule entryRuleAssertion
1123entryRuleAssertion returns [EObject current=null]:
1124 { newCompositeNode(grammarAccess.getAssertionRule()); }
1125 iv_ruleAssertion=ruleAssertion
1126 { $current=$iv_ruleAssertion.current; }
1127 EOF;
1128
1129// Rule Assertion
1130ruleAssertion returns [EObject current=null]
1131@init {
1132 enterRule();
1133}
1134@after {
1135 leaveRule();
1136}:
1137 (
1138 (
1139 (
1140 (
1141 (
1142 {
1143 if ($current==null) {
1144 $current = createModelElement(grammarAccess.getAssertionRule());
1145 }
1146 }
1147 {
1148 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_0_0_0());
1149 }
1150 ruleQualifiedName
1151 {
1152 afterParserOrEnumRuleCall();
1153 }
1154 )
1155 )
1156 otherlv_1='('
1157 {
1158 newLeafNode(otherlv_1, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_0_1());
1159 }
1160 (
1161 (
1162 (
1163 {
1164 if ($current==null) {
1165 $current = createModelElement(grammarAccess.getAssertionRule());
1166 }
1167 }
1168 {
1169 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_0_0());
1170 }
1171 ruleQualifiedName
1172 {
1173 afterParserOrEnumRuleCall();
1174 }
1175 )
1176 )
1177 (
1178 otherlv_3=','
1179 {
1180 newLeafNode(otherlv_3, grammarAccess.getAssertionAccess().getCommaKeyword_0_0_2_1_0());
1181 }
1182 (
1183 (
1184 {
1185 if ($current==null) {
1186 $current = createModelElement(grammarAccess.getAssertionRule());
1187 }
1188 }
1189 {
1190 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_1_1_0());
1191 }
1192 ruleQualifiedName
1193 {
1194 afterParserOrEnumRuleCall();
1195 }
1196 )
1197 )
1198 )*
1199 )?
1200 otherlv_5=')'
1201 {
1202 newLeafNode(otherlv_5, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_0_3());
1203 }
1204 otherlv_6=':'
1205 {
1206 newLeafNode(otherlv_6, grammarAccess.getAssertionAccess().getColonKeyword_0_0_4());
1207 }
1208 (
1209 (
1210 {
1211 newCompositeNode(grammarAccess.getAssertionAccess().getValueLogicValueEnumRuleCall_0_0_5_0());
1212 }
1213 lv_value_7_0=ruleLogicValue
1214 {
1215 if ($current==null) {
1216 $current = createModelElementForParent(grammarAccess.getAssertionRule());
1217 }
1218 set(
1219 $current,
1220 "value",
1221 lv_value_7_0,
1222 "org.eclipse.viatra.solver.language.Problem.LogicValue");
1223 afterParserOrEnumRuleCall();
1224 }
1225 )
1226 )
1227 )
1228 |
1229 (
1230 (
1231 (
1232 {
1233 newCompositeNode(grammarAccess.getAssertionAccess().getValueShortLogicValueEnumRuleCall_0_1_0_0());
1234 }
1235 lv_value_8_0=ruleShortLogicValue
1236 {
1237 if ($current==null) {
1238 $current = createModelElementForParent(grammarAccess.getAssertionRule());
1239 }
1240 set(
1241 $current,
1242 "value",
1243 lv_value_8_0,
1244 "org.eclipse.viatra.solver.language.Problem.ShortLogicValue");
1245 afterParserOrEnumRuleCall();
1246 }
1247 )
1248 )?
1249 (
1250 (
1251 {
1252 if ($current==null) {
1253 $current = createModelElement(grammarAccess.getAssertionRule());
1254 }
1255 }
1256 {
1257 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_1_1_0());
1258 }
1259 ruleQualifiedName
1260 {
1261 afterParserOrEnumRuleCall();
1262 }
1263 )
1264 )
1265 otherlv_10='('
1266 {
1267 newLeafNode(otherlv_10, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_1_2());
1268 }
1269 (
1270 (
1271 (
1272 {
1273 if ($current==null) {
1274 $current = createModelElement(grammarAccess.getAssertionRule());
1275 }
1276 }
1277 {
1278 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_0_0());
1279 }
1280 ruleQualifiedName
1281 {
1282 afterParserOrEnumRuleCall();
1283 }
1284 )
1285 )
1286 (
1287 otherlv_12=','
1288 {
1289 newLeafNode(otherlv_12, grammarAccess.getAssertionAccess().getCommaKeyword_0_1_3_1_0());
1290 }
1291 (
1292 (
1293 {
1294 if ($current==null) {
1295 $current = createModelElement(grammarAccess.getAssertionRule());
1296 }
1297 }
1298 {
1299 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_1_1_0());
1300 }
1301 ruleQualifiedName
1302 {
1303 afterParserOrEnumRuleCall();
1304 }
1305 )
1306 )
1307 )*
1308 )?
1309 otherlv_14=')'
1310 {
1311 newLeafNode(otherlv_14, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_1_4());
1312 }
1313 )
1314 )
1315 otherlv_15='.'
1316 {
1317 newLeafNode(otherlv_15, grammarAccess.getAssertionAccess().getFullStopKeyword_1());
1318 }
1319 )
1320;
1321
1322// Entry rule entryRuleScopeDeclaration
1323entryRuleScopeDeclaration returns [EObject current=null]:
1324 { newCompositeNode(grammarAccess.getScopeDeclarationRule()); }
1325 iv_ruleScopeDeclaration=ruleScopeDeclaration
1326 { $current=$iv_ruleScopeDeclaration.current; }
1327 EOF;
1328
1329// Rule ScopeDeclaration
1330ruleScopeDeclaration returns [EObject current=null]
1331@init {
1332 enterRule();
1333}
1334@after {
1335 leaveRule();
1336}:
1337 (
1338 otherlv_0='scope'
1339 {
1340 newLeafNode(otherlv_0, grammarAccess.getScopeDeclarationAccess().getScopeKeyword_0());
1341 }
1342 (
1343 (
1344 {
1345 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_1_0());
1346 }
1347 lv_typeScopes_1_0=ruleTypeScope
1348 {
1349 if ($current==null) {
1350 $current = createModelElementForParent(grammarAccess.getScopeDeclarationRule());
1351 }
1352 add(
1353 $current,
1354 "typeScopes",
1355 lv_typeScopes_1_0,
1356 "org.eclipse.viatra.solver.language.Problem.TypeScope");
1357 afterParserOrEnumRuleCall();
1358 }
1359 )
1360 )
1361 (
1362 otherlv_2=','
1363 {
1364 newLeafNode(otherlv_2, grammarAccess.getScopeDeclarationAccess().getCommaKeyword_2_0());
1365 }
1366 (
1367 (
1368 {
1369 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_2_1_0());
1370 }
1371 lv_typeScopes_3_0=ruleTypeScope
1372 {
1373 if ($current==null) {
1374 $current = createModelElementForParent(grammarAccess.getScopeDeclarationRule());
1375 }
1376 add(
1377 $current,
1378 "typeScopes",
1379 lv_typeScopes_3_0,
1380 "org.eclipse.viatra.solver.language.Problem.TypeScope");
1381 afterParserOrEnumRuleCall();
1382 }
1383 )
1384 )
1385 )*
1386 otherlv_4='.'
1387 {
1388 newLeafNode(otherlv_4, grammarAccess.getScopeDeclarationAccess().getFullStopKeyword_3());
1389 }
1390 )
1391;
1392
1393// Entry rule entryRuleTypeScope
1394entryRuleTypeScope returns [EObject current=null]:
1395 { newCompositeNode(grammarAccess.getTypeScopeRule()); }
1396 iv_ruleTypeScope=ruleTypeScope
1397 { $current=$iv_ruleTypeScope.current; }
1398 EOF;
1399
1400// Rule TypeScope
1401ruleTypeScope returns [EObject current=null]
1402@init {
1403 enterRule();
1404}
1405@after {
1406 leaveRule();
1407}:
1408 (
1409 (
1410 (
1411 {
1412 if ($current==null) {
1413 $current = createModelElement(grammarAccess.getTypeScopeRule());
1414 }
1415 }
1416 otherlv_0=RULE_ID
1417 {
1418 newLeafNode(otherlv_0, grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationCrossReference_0_0());
1419 }
1420 )
1421 )
1422 (
1423 (
1424 (
1425 lv_increment_1_0='+='
1426 {
1427 newLeafNode(lv_increment_1_0, grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0());
1428 }
1429 {
1430 if ($current==null) {
1431 $current = createModelElement(grammarAccess.getTypeScopeRule());
1432 }
1433 setWithLastConsumed($current, "increment", lv_increment_1_0 != null, "+=");
1434 }
1435 )
1436 )
1437 |
1438 otherlv_2='='
1439 {
1440 newLeafNode(otherlv_2, grammarAccess.getTypeScopeAccess().getEqualsSignKeyword_1_1());
1441 }
1442 )
1443 (
1444 (
1445 {
1446 newCompositeNode(grammarAccess.getTypeScopeAccess().getMultiplicityDefiniteMultiplicityParserRuleCall_2_0());
1447 }
1448 lv_multiplicity_3_0=ruleDefiniteMultiplicity
1449 {
1450 if ($current==null) {
1451 $current = createModelElementForParent(grammarAccess.getTypeScopeRule());
1452 }
1453 set(
1454 $current,
1455 "multiplicity",
1456 lv_multiplicity_3_0,
1457 "org.eclipse.viatra.solver.language.Problem.DefiniteMultiplicity");
1458 afterParserOrEnumRuleCall();
1459 }
1460 )
1461 )
1462 )
1463;
1464
1465// Entry rule entryRuleMultiplicity
1466entryRuleMultiplicity returns [EObject current=null]:
1467 { newCompositeNode(grammarAccess.getMultiplicityRule()); }
1468 iv_ruleMultiplicity=ruleMultiplicity
1469 { $current=$iv_ruleMultiplicity.current; }
1470 EOF;
1471
1472// Rule Multiplicity
1473ruleMultiplicity returns [EObject current=null]
1474@init {
1475 enterRule();
1476}
1477@after {
1478 leaveRule();
1479}:
1480 (
1481 {
1482 newCompositeNode(grammarAccess.getMultiplicityAccess().getUnboundedMultiplicityParserRuleCall_0());
1483 }
1484 this_UnboundedMultiplicity_0=ruleUnboundedMultiplicity
1485 {
1486 $current = $this_UnboundedMultiplicity_0.current;
1487 afterParserOrEnumRuleCall();
1488 }
1489 |
1490 {
1491 newCompositeNode(grammarAccess.getMultiplicityAccess().getDefiniteMultiplicityParserRuleCall_1());
1492 }
1493 this_DefiniteMultiplicity_1=ruleDefiniteMultiplicity
1494 {
1495 $current = $this_DefiniteMultiplicity_1.current;
1496 afterParserOrEnumRuleCall();
1497 }
1498 )
1499;
1500
1501// Entry rule entryRuleDefiniteMultiplicity
1502entryRuleDefiniteMultiplicity returns [EObject current=null]:
1503 { newCompositeNode(grammarAccess.getDefiniteMultiplicityRule()); }
1504 iv_ruleDefiniteMultiplicity=ruleDefiniteMultiplicity
1505 { $current=$iv_ruleDefiniteMultiplicity.current; }
1506 EOF;
1507
1508// Rule DefiniteMultiplicity
1509ruleDefiniteMultiplicity returns [EObject current=null]
1510@init {
1511 enterRule();
1512}
1513@after {
1514 leaveRule();
1515}:
1516 (
1517 {
1518 newCompositeNode(grammarAccess.getDefiniteMultiplicityAccess().getRangeMultiplicityParserRuleCall_0());
1519 }
1520 this_RangeMultiplicity_0=ruleRangeMultiplicity
1521 {
1522 $current = $this_RangeMultiplicity_0.current;
1523 afterParserOrEnumRuleCall();
1524 }
1525 |
1526 {
1527 newCompositeNode(grammarAccess.getDefiniteMultiplicityAccess().getExactMultiplicityParserRuleCall_1());
1528 }
1529 this_ExactMultiplicity_1=ruleExactMultiplicity
1530 {
1531 $current = $this_ExactMultiplicity_1.current;
1532 afterParserOrEnumRuleCall();
1533 }
1534 )
1535;
1536
1537// Entry rule entryRuleUnboundedMultiplicity
1538entryRuleUnboundedMultiplicity returns [EObject current=null]:
1539 { newCompositeNode(grammarAccess.getUnboundedMultiplicityRule()); }
1540 iv_ruleUnboundedMultiplicity=ruleUnboundedMultiplicity
1541 { $current=$iv_ruleUnboundedMultiplicity.current; }
1542 EOF;
1543
1544// Rule UnboundedMultiplicity
1545ruleUnboundedMultiplicity returns [EObject current=null]
1546@init {
1547 enterRule();
1548}
1549@after {
1550 leaveRule();
1551}:
1552 (
1553 {
1554 $current = forceCreateModelElement(
1555 grammarAccess.getUnboundedMultiplicityAccess().getUnboundedMultiplicityAction(),
1556 $current);
1557 }
1558 )
1559;
1560
1561// Entry rule entryRuleRangeMultiplicity
1562entryRuleRangeMultiplicity returns [EObject current=null]:
1563 { newCompositeNode(grammarAccess.getRangeMultiplicityRule()); }
1564 iv_ruleRangeMultiplicity=ruleRangeMultiplicity
1565 { $current=$iv_ruleRangeMultiplicity.current; }
1566 EOF;
1567
1568// Rule RangeMultiplicity
1569ruleRangeMultiplicity returns [EObject current=null]
1570@init {
1571 enterRule();
1572}
1573@after {
1574 leaveRule();
1575}:
1576 (
1577 (
1578 (
1579 lv_lowerBound_0_0=RULE_INT
1580 {
1581 newLeafNode(lv_lowerBound_0_0, grammarAccess.getRangeMultiplicityAccess().getLowerBoundINTTerminalRuleCall_0_0());
1582 }
1583 {
1584 if ($current==null) {
1585 $current = createModelElement(grammarAccess.getRangeMultiplicityRule());
1586 }
1587 setWithLastConsumed(
1588 $current,
1589 "lowerBound",
1590 lv_lowerBound_0_0,
1591 "org.eclipse.xtext.common.Terminals.INT");
1592 }
1593 )
1594 )
1595 otherlv_1='..'
1596 {
1597 newLeafNode(otherlv_1, grammarAccess.getRangeMultiplicityAccess().getFullStopFullStopKeyword_1());
1598 }
1599 (
1600 (
1601 {
1602 newCompositeNode(grammarAccess.getRangeMultiplicityAccess().getUpperBoundUpperBoundParserRuleCall_2_0());
1603 }
1604 lv_upperBound_2_0=ruleUpperBound
1605 {
1606 if ($current==null) {
1607 $current = createModelElementForParent(grammarAccess.getRangeMultiplicityRule());
1608 }
1609 set(
1610 $current,
1611 "upperBound",
1612 lv_upperBound_2_0,
1613 "org.eclipse.viatra.solver.language.Problem.UpperBound");
1614 afterParserOrEnumRuleCall();
1615 }
1616 )
1617 )
1618 )
1619;
1620
1621// Entry rule entryRuleExactMultiplicity
1622entryRuleExactMultiplicity returns [EObject current=null]:
1623 { newCompositeNode(grammarAccess.getExactMultiplicityRule()); }
1624 iv_ruleExactMultiplicity=ruleExactMultiplicity
1625 { $current=$iv_ruleExactMultiplicity.current; }
1626 EOF;
1627
1628// Rule ExactMultiplicity
1629ruleExactMultiplicity returns [EObject current=null]
1630@init {
1631 enterRule();
1632}
1633@after {
1634 leaveRule();
1635}:
1636 (
1637 (
1638 lv_exactValue_0_0=RULE_INT
1639 {
1640 newLeafNode(lv_exactValue_0_0, grammarAccess.getExactMultiplicityAccess().getExactValueINTTerminalRuleCall_0());
1641 }
1642 {
1643 if ($current==null) {
1644 $current = createModelElement(grammarAccess.getExactMultiplicityRule());
1645 }
1646 setWithLastConsumed(
1647 $current,
1648 "exactValue",
1649 lv_exactValue_0_0,
1650 "org.eclipse.xtext.common.Terminals.INT");
1651 }
1652 )
1653 )
1654;
1655
1656// Entry rule entryRuleUpperBound
1657entryRuleUpperBound returns [String current=null]:
1658 { newCompositeNode(grammarAccess.getUpperBoundRule()); }
1659 iv_ruleUpperBound=ruleUpperBound
1660 { $current=$iv_ruleUpperBound.current.getText(); }
1661 EOF;
1662
1663// Rule UpperBound
1664ruleUpperBound returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
1665@init {
1666 enterRule();
1667}
1668@after {
1669 leaveRule();
1670}:
1671 (
1672 this_INT_0=RULE_INT
1673 {
1674 $current.merge(this_INT_0);
1675 }
1676 {
1677 newLeafNode(this_INT_0, grammarAccess.getUpperBoundAccess().getINTTerminalRuleCall_0());
1678 }
1679 |
1680 kw='*'
1681 {
1682 $current.merge(kw);
1683 newLeafNode(kw, grammarAccess.getUpperBoundAccess().getAsteriskKeyword_1());
1684 }
1685 )
1686;
1687
1688// Entry rule entryRuleQuotedOrUnquotedId
1689entryRuleQuotedOrUnquotedId returns [String current=null]:
1690 { newCompositeNode(grammarAccess.getQuotedOrUnquotedIdRule()); }
1691 iv_ruleQuotedOrUnquotedId=ruleQuotedOrUnquotedId
1692 { $current=$iv_ruleQuotedOrUnquotedId.current.getText(); }
1693 EOF;
1694
1695// Rule QuotedOrUnquotedId
1696ruleQuotedOrUnquotedId returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
1697@init {
1698 enterRule();
1699}
1700@after {
1701 leaveRule();
1702}:
1703 (
1704 this_QUOTED_ID_0=RULE_QUOTED_ID
1705 {
1706 $current.merge(this_QUOTED_ID_0);
1707 }
1708 {
1709 newLeafNode(this_QUOTED_ID_0, grammarAccess.getQuotedOrUnquotedIdAccess().getQUOTED_IDTerminalRuleCall_0());
1710 }
1711 |
1712 {
1713 newCompositeNode(grammarAccess.getQuotedOrUnquotedIdAccess().getIdentifierParserRuleCall_1());
1714 }
1715 this_Identifier_1=ruleIdentifier
1716 {
1717 $current.merge(this_Identifier_1);
1718 }
1719 {
1720 afterParserOrEnumRuleCall();
1721 }
1722 )
1723;
1724
1725// Entry rule entryRuleQualifiedName
1726entryRuleQualifiedName returns [String current=null]:
1727 { newCompositeNode(grammarAccess.getQualifiedNameRule()); }
1728 iv_ruleQualifiedName=ruleQualifiedName
1729 { $current=$iv_ruleQualifiedName.current.getText(); }
1730 EOF;
1731
1732// Rule QualifiedName
1733ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
1734@init {
1735 enterRule();
1736}
1737@after {
1738 leaveRule();
1739}:
1740 (
1741 this_QUOTED_ID_0=RULE_QUOTED_ID
1742 {
1743 $current.merge(this_QUOTED_ID_0);
1744 }
1745 {
1746 newLeafNode(this_QUOTED_ID_0, grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_0());
1747 }
1748 |
1749 (
1750 {
1751 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_0());
1752 }
1753 this_Identifier_1=ruleIdentifier
1754 {
1755 $current.merge(this_Identifier_1);
1756 }
1757 {
1758 afterParserOrEnumRuleCall();
1759 }
1760 (
1761 kw=':'
1762 {
1763 $current.merge(kw);
1764 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonKeyword_1_1_0());
1765 }
1766 {
1767 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_1_1());
1768 }
1769 this_Identifier_3=ruleIdentifier
1770 {
1771 $current.merge(this_Identifier_3);
1772 }
1773 {
1774 afterParserOrEnumRuleCall();
1775 }
1776 )*
1777 (
1778 kw=':'
1779 {
1780 $current.merge(kw);
1781 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonKeyword_1_2_0());
1782 }
1783 this_QUOTED_ID_5=RULE_QUOTED_ID
1784 {
1785 $current.merge(this_QUOTED_ID_5);
1786 }
1787 {
1788 newLeafNode(this_QUOTED_ID_5, grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_1_2_1());
1789 }
1790 )?
1791 )
1792 )
1793;
1794
1795// Entry rule entryRuleIdentifier
1796entryRuleIdentifier returns [String current=null]:
1797 { newCompositeNode(grammarAccess.getIdentifierRule()); }
1798 iv_ruleIdentifier=ruleIdentifier
1799 { $current=$iv_ruleIdentifier.current.getText(); }
1800 EOF;
1801
1802// Rule Identifier
1803ruleIdentifier returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
1804@init {
1805 enterRule();
1806}
1807@after {
1808 leaveRule();
1809}:
1810 (
1811 this_ID_0=RULE_ID
1812 {
1813 $current.merge(this_ID_0);
1814 }
1815 {
1816 newLeafNode(this_ID_0, grammarAccess.getIdentifierAccess().getIDTerminalRuleCall_0());
1817 }
1818 |
1819 kw='true'
1820 {
1821 $current.merge(kw);
1822 newLeafNode(kw, grammarAccess.getIdentifierAccess().getTrueKeyword_1());
1823 }
1824 |
1825 kw='false'
1826 {
1827 $current.merge(kw);
1828 newLeafNode(kw, grammarAccess.getIdentifierAccess().getFalseKeyword_2());
1829 }
1830 )
1831;
1832
1833// Rule LogicValue
1834ruleLogicValue returns [Enumerator current=null]
1835@init {
1836 enterRule();
1837}
1838@after {
1839 leaveRule();
1840}:
1841 (
1842 (
1843 enumLiteral_0='true'
1844 {
1845 $current = grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
1846 newLeafNode(enumLiteral_0, grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0());
1847 }
1848 )
1849 |
1850 (
1851 enumLiteral_1='false'
1852 {
1853 $current = grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
1854 newLeafNode(enumLiteral_1, grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1());
1855 }
1856 )
1857 |
1858 (
1859 enumLiteral_2='unknown'
1860 {
1861 $current = grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
1862 newLeafNode(enumLiteral_2, grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2());
1863 }
1864 )
1865 )
1866;
1867
1868// Rule ShortLogicValue
1869ruleShortLogicValue returns [Enumerator current=null]
1870@init {
1871 enterRule();
1872}
1873@after {
1874 leaveRule();
1875}:
1876 (
1877 (
1878 enumLiteral_0='!'
1879 {
1880 $current = grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
1881 newLeafNode(enumLiteral_0, grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0());
1882 }
1883 )
1884 |
1885 (
1886 enumLiteral_1='?'
1887 {
1888 $current = grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
1889 newLeafNode(enumLiteral_1, grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1());
1890 }
1891 )
1892 )
1893;
1894
1895RULE_STRING : '"' ('\\' .|~(('\\'|'"')))* '"';
1896
1897RULE_QUOTED_ID : '\'' ('\\' .|~(('\\'|'\'')))* '\'';
1898
1899RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
1900
1901RULE_INT : ('0'..'9')+;
1902
1903RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
1904
1905RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
1906
1907RULE_WS : (' '|'\t'|'\r'|'\n')+;
1908
1909RULE_ANY_OTHER : .;