aboutsummaryrefslogtreecommitdiffstats
path: root/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal
diff options
context:
space:
mode:
Diffstat (limited to 'language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal')
-rw-r--r--language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g1909
-rw-r--r--language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens72
-rw-r--r--language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java1797
-rw-r--r--language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java5296
4 files changed, 9074 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 : .;
diff --git a/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens b/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens
new file mode 100644
index 00000000..e968ac14
--- /dev/null
+++ b/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens
@@ -0,0 +1,72 @@
1'!'=32
2'('=29
3')'=30
4'*'=39
5'+'=33
6'+='=36
7','=17
8'.'=13
9'..'=38
10':'=34
11':-'=31
12';'=19
13'='=37
14'?'=43
15'['=24
16']'=25
17'abstract'=14
18'class'=15
19'contains'=22
20'enum'=21
21'error'=27
22'extends'=16
23'false'=41
24'opposite'=26
25'pred'=28
26'problem'=12
27'refers'=23
28'scope'=35
29'true'=40
30'unknown'=42
31'{'=18
32'}'=20
33RULE_ANY_OTHER=11
34RULE_ID=4
35RULE_INT=5
36RULE_ML_COMMENT=8
37RULE_QUOTED_ID=6
38RULE_SL_COMMENT=9
39RULE_STRING=7
40RULE_WS=10
41T__12=12
42T__13=13
43T__14=14
44T__15=15
45T__16=16
46T__17=17
47T__18=18
48T__19=19
49T__20=20
50T__21=21
51T__22=22
52T__23=23
53T__24=24
54T__25=25
55T__26=26
56T__27=27
57T__28=28
58T__29=29
59T__30=30
60T__31=31
61T__32=32
62T__33=33
63T__34=34
64T__35=35
65T__36=36
66T__37=37
67T__38=38
68T__39=39
69T__40=40
70T__41=41
71T__42=42
72T__43=43
diff --git a/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java b/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java
new file mode 100644
index 00000000..1fd1e166
--- /dev/null
+++ b/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java
@@ -0,0 +1,1797 @@
1package org.eclipse.viatra.solver.language.parser.antlr.internal;
2
3// Hack: Use our own Lexer superclass by means of import.
4// Currently there is no other way to specify the superclass for the lexer.
5import org.eclipse.xtext.parser.antlr.Lexer;
6
7
8import org.antlr.runtime.*;
9import java.util.Stack;
10import java.util.List;
11import java.util.ArrayList;
12
13@SuppressWarnings("all")
14public class InternalProblemLexer extends Lexer {
15 public static final int T__19=19;
16 public static final int T__15=15;
17 public static final int T__16=16;
18 public static final int T__17=17;
19 public static final int T__18=18;
20 public static final int T__12=12;
21 public static final int T__13=13;
22 public static final int T__14=14;
23 public static final int RULE_ID=4;
24 public static final int RULE_QUOTED_ID=6;
25 public static final int T__26=26;
26 public static final int T__27=27;
27 public static final int T__28=28;
28 public static final int RULE_INT=5;
29 public static final int T__29=29;
30 public static final int T__22=22;
31 public static final int RULE_ML_COMMENT=8;
32 public static final int T__23=23;
33 public static final int T__24=24;
34 public static final int T__25=25;
35 public static final int T__20=20;
36 public static final int T__21=21;
37 public static final int RULE_STRING=7;
38 public static final int RULE_SL_COMMENT=9;
39 public static final int T__37=37;
40 public static final int T__38=38;
41 public static final int T__39=39;
42 public static final int T__33=33;
43 public static final int T__34=34;
44 public static final int T__35=35;
45 public static final int T__36=36;
46 public static final int EOF=-1;
47 public static final int T__30=30;
48 public static final int T__31=31;
49 public static final int T__32=32;
50 public static final int RULE_WS=10;
51 public static final int RULE_ANY_OTHER=11;
52 public static final int T__40=40;
53 public static final int T__41=41;
54 public static final int T__42=42;
55 public static final int T__43=43;
56
57 // delegates
58 // delegators
59
60 public InternalProblemLexer() {;}
61 public InternalProblemLexer(CharStream input) {
62 this(input, new RecognizerSharedState());
63 }
64 public InternalProblemLexer(CharStream input, RecognizerSharedState state) {
65 super(input,state);
66
67 }
68 public String getGrammarFileName() { return "InternalProblem.g"; }
69
70 // $ANTLR start "T__12"
71 public final void mT__12() throws RecognitionException {
72 try {
73 int _type = T__12;
74 int _channel = DEFAULT_TOKEN_CHANNEL;
75 // InternalProblem.g:11:7: ( 'problem' )
76 // InternalProblem.g:11:9: 'problem'
77 {
78 match("problem");
79
80
81 }
82
83 state.type = _type;
84 state.channel = _channel;
85 }
86 finally {
87 }
88 }
89 // $ANTLR end "T__12"
90
91 // $ANTLR start "T__13"
92 public final void mT__13() throws RecognitionException {
93 try {
94 int _type = T__13;
95 int _channel = DEFAULT_TOKEN_CHANNEL;
96 // InternalProblem.g:12:7: ( '.' )
97 // InternalProblem.g:12:9: '.'
98 {
99 match('.');
100
101 }
102
103 state.type = _type;
104 state.channel = _channel;
105 }
106 finally {
107 }
108 }
109 // $ANTLR end "T__13"
110
111 // $ANTLR start "T__14"
112 public final void mT__14() throws RecognitionException {
113 try {
114 int _type = T__14;
115 int _channel = DEFAULT_TOKEN_CHANNEL;
116 // InternalProblem.g:13:7: ( 'abstract' )
117 // InternalProblem.g:13:9: 'abstract'
118 {
119 match("abstract");
120
121
122 }
123
124 state.type = _type;
125 state.channel = _channel;
126 }
127 finally {
128 }
129 }
130 // $ANTLR end "T__14"
131
132 // $ANTLR start "T__15"
133 public final void mT__15() throws RecognitionException {
134 try {
135 int _type = T__15;
136 int _channel = DEFAULT_TOKEN_CHANNEL;
137 // InternalProblem.g:14:7: ( 'class' )
138 // InternalProblem.g:14:9: 'class'
139 {
140 match("class");
141
142
143 }
144
145 state.type = _type;
146 state.channel = _channel;
147 }
148 finally {
149 }
150 }
151 // $ANTLR end "T__15"
152
153 // $ANTLR start "T__16"
154 public final void mT__16() throws RecognitionException {
155 try {
156 int _type = T__16;
157 int _channel = DEFAULT_TOKEN_CHANNEL;
158 // InternalProblem.g:15:7: ( 'extends' )
159 // InternalProblem.g:15:9: 'extends'
160 {
161 match("extends");
162
163
164 }
165
166 state.type = _type;
167 state.channel = _channel;
168 }
169 finally {
170 }
171 }
172 // $ANTLR end "T__16"
173
174 // $ANTLR start "T__17"
175 public final void mT__17() throws RecognitionException {
176 try {
177 int _type = T__17;
178 int _channel = DEFAULT_TOKEN_CHANNEL;
179 // InternalProblem.g:16:7: ( ',' )
180 // InternalProblem.g:16:9: ','
181 {
182 match(',');
183
184 }
185
186 state.type = _type;
187 state.channel = _channel;
188 }
189 finally {
190 }
191 }
192 // $ANTLR end "T__17"
193
194 // $ANTLR start "T__18"
195 public final void mT__18() throws RecognitionException {
196 try {
197 int _type = T__18;
198 int _channel = DEFAULT_TOKEN_CHANNEL;
199 // InternalProblem.g:17:7: ( '{' )
200 // InternalProblem.g:17:9: '{'
201 {
202 match('{');
203
204 }
205
206 state.type = _type;
207 state.channel = _channel;
208 }
209 finally {
210 }
211 }
212 // $ANTLR end "T__18"
213
214 // $ANTLR start "T__19"
215 public final void mT__19() throws RecognitionException {
216 try {
217 int _type = T__19;
218 int _channel = DEFAULT_TOKEN_CHANNEL;
219 // InternalProblem.g:18:7: ( ';' )
220 // InternalProblem.g:18:9: ';'
221 {
222 match(';');
223
224 }
225
226 state.type = _type;
227 state.channel = _channel;
228 }
229 finally {
230 }
231 }
232 // $ANTLR end "T__19"
233
234 // $ANTLR start "T__20"
235 public final void mT__20() throws RecognitionException {
236 try {
237 int _type = T__20;
238 int _channel = DEFAULT_TOKEN_CHANNEL;
239 // InternalProblem.g:19:7: ( '}' )
240 // InternalProblem.g:19:9: '}'
241 {
242 match('}');
243
244 }
245
246 state.type = _type;
247 state.channel = _channel;
248 }
249 finally {
250 }
251 }
252 // $ANTLR end "T__20"
253
254 // $ANTLR start "T__21"
255 public final void mT__21() throws RecognitionException {
256 try {
257 int _type = T__21;
258 int _channel = DEFAULT_TOKEN_CHANNEL;
259 // InternalProblem.g:20:7: ( 'enum' )
260 // InternalProblem.g:20:9: 'enum'
261 {
262 match("enum");
263
264
265 }
266
267 state.type = _type;
268 state.channel = _channel;
269 }
270 finally {
271 }
272 }
273 // $ANTLR end "T__21"
274
275 // $ANTLR start "T__22"
276 public final void mT__22() throws RecognitionException {
277 try {
278 int _type = T__22;
279 int _channel = DEFAULT_TOKEN_CHANNEL;
280 // InternalProblem.g:21:7: ( 'contains' )
281 // InternalProblem.g:21:9: 'contains'
282 {
283 match("contains");
284
285
286 }
287
288 state.type = _type;
289 state.channel = _channel;
290 }
291 finally {
292 }
293 }
294 // $ANTLR end "T__22"
295
296 // $ANTLR start "T__23"
297 public final void mT__23() throws RecognitionException {
298 try {
299 int _type = T__23;
300 int _channel = DEFAULT_TOKEN_CHANNEL;
301 // InternalProblem.g:22:7: ( 'refers' )
302 // InternalProblem.g:22:9: 'refers'
303 {
304 match("refers");
305
306
307 }
308
309 state.type = _type;
310 state.channel = _channel;
311 }
312 finally {
313 }
314 }
315 // $ANTLR end "T__23"
316
317 // $ANTLR start "T__24"
318 public final void mT__24() throws RecognitionException {
319 try {
320 int _type = T__24;
321 int _channel = DEFAULT_TOKEN_CHANNEL;
322 // InternalProblem.g:23:7: ( '[' )
323 // InternalProblem.g:23:9: '['
324 {
325 match('[');
326
327 }
328
329 state.type = _type;
330 state.channel = _channel;
331 }
332 finally {
333 }
334 }
335 // $ANTLR end "T__24"
336
337 // $ANTLR start "T__25"
338 public final void mT__25() throws RecognitionException {
339 try {
340 int _type = T__25;
341 int _channel = DEFAULT_TOKEN_CHANNEL;
342 // InternalProblem.g:24:7: ( ']' )
343 // InternalProblem.g:24:9: ']'
344 {
345 match(']');
346
347 }
348
349 state.type = _type;
350 state.channel = _channel;
351 }
352 finally {
353 }
354 }
355 // $ANTLR end "T__25"
356
357 // $ANTLR start "T__26"
358 public final void mT__26() throws RecognitionException {
359 try {
360 int _type = T__26;
361 int _channel = DEFAULT_TOKEN_CHANNEL;
362 // InternalProblem.g:25:7: ( 'opposite' )
363 // InternalProblem.g:25:9: 'opposite'
364 {
365 match("opposite");
366
367
368 }
369
370 state.type = _type;
371 state.channel = _channel;
372 }
373 finally {
374 }
375 }
376 // $ANTLR end "T__26"
377
378 // $ANTLR start "T__27"
379 public final void mT__27() throws RecognitionException {
380 try {
381 int _type = T__27;
382 int _channel = DEFAULT_TOKEN_CHANNEL;
383 // InternalProblem.g:26:7: ( 'error' )
384 // InternalProblem.g:26:9: 'error'
385 {
386 match("error");
387
388
389 }
390
391 state.type = _type;
392 state.channel = _channel;
393 }
394 finally {
395 }
396 }
397 // $ANTLR end "T__27"
398
399 // $ANTLR start "T__28"
400 public final void mT__28() throws RecognitionException {
401 try {
402 int _type = T__28;
403 int _channel = DEFAULT_TOKEN_CHANNEL;
404 // InternalProblem.g:27:7: ( 'pred' )
405 // InternalProblem.g:27:9: 'pred'
406 {
407 match("pred");
408
409
410 }
411
412 state.type = _type;
413 state.channel = _channel;
414 }
415 finally {
416 }
417 }
418 // $ANTLR end "T__28"
419
420 // $ANTLR start "T__29"
421 public final void mT__29() throws RecognitionException {
422 try {
423 int _type = T__29;
424 int _channel = DEFAULT_TOKEN_CHANNEL;
425 // InternalProblem.g:28:7: ( '(' )
426 // InternalProblem.g:28:9: '('
427 {
428 match('(');
429
430 }
431
432 state.type = _type;
433 state.channel = _channel;
434 }
435 finally {
436 }
437 }
438 // $ANTLR end "T__29"
439
440 // $ANTLR start "T__30"
441 public final void mT__30() throws RecognitionException {
442 try {
443 int _type = T__30;
444 int _channel = DEFAULT_TOKEN_CHANNEL;
445 // InternalProblem.g:29:7: ( ')' )
446 // InternalProblem.g:29:9: ')'
447 {
448 match(')');
449
450 }
451
452 state.type = _type;
453 state.channel = _channel;
454 }
455 finally {
456 }
457 }
458 // $ANTLR end "T__30"
459
460 // $ANTLR start "T__31"
461 public final void mT__31() throws RecognitionException {
462 try {
463 int _type = T__31;
464 int _channel = DEFAULT_TOKEN_CHANNEL;
465 // InternalProblem.g:30:7: ( ':-' )
466 // InternalProblem.g:30:9: ':-'
467 {
468 match(":-");
469
470
471 }
472
473 state.type = _type;
474 state.channel = _channel;
475 }
476 finally {
477 }
478 }
479 // $ANTLR end "T__31"
480
481 // $ANTLR start "T__32"
482 public final void mT__32() throws RecognitionException {
483 try {
484 int _type = T__32;
485 int _channel = DEFAULT_TOKEN_CHANNEL;
486 // InternalProblem.g:31:7: ( '!' )
487 // InternalProblem.g:31:9: '!'
488 {
489 match('!');
490
491 }
492
493 state.type = _type;
494 state.channel = _channel;
495 }
496 finally {
497 }
498 }
499 // $ANTLR end "T__32"
500
501 // $ANTLR start "T__33"
502 public final void mT__33() throws RecognitionException {
503 try {
504 int _type = T__33;
505 int _channel = DEFAULT_TOKEN_CHANNEL;
506 // InternalProblem.g:32:7: ( '+' )
507 // InternalProblem.g:32:9: '+'
508 {
509 match('+');
510
511 }
512
513 state.type = _type;
514 state.channel = _channel;
515 }
516 finally {
517 }
518 }
519 // $ANTLR end "T__33"
520
521 // $ANTLR start "T__34"
522 public final void mT__34() throws RecognitionException {
523 try {
524 int _type = T__34;
525 int _channel = DEFAULT_TOKEN_CHANNEL;
526 // InternalProblem.g:33:7: ( ':' )
527 // InternalProblem.g:33:9: ':'
528 {
529 match(':');
530
531 }
532
533 state.type = _type;
534 state.channel = _channel;
535 }
536 finally {
537 }
538 }
539 // $ANTLR end "T__34"
540
541 // $ANTLR start "T__35"
542 public final void mT__35() throws RecognitionException {
543 try {
544 int _type = T__35;
545 int _channel = DEFAULT_TOKEN_CHANNEL;
546 // InternalProblem.g:34:7: ( 'scope' )
547 // InternalProblem.g:34:9: 'scope'
548 {
549 match("scope");
550
551
552 }
553
554 state.type = _type;
555 state.channel = _channel;
556 }
557 finally {
558 }
559 }
560 // $ANTLR end "T__35"
561
562 // $ANTLR start "T__36"
563 public final void mT__36() throws RecognitionException {
564 try {
565 int _type = T__36;
566 int _channel = DEFAULT_TOKEN_CHANNEL;
567 // InternalProblem.g:35:7: ( '+=' )
568 // InternalProblem.g:35:9: '+='
569 {
570 match("+=");
571
572
573 }
574
575 state.type = _type;
576 state.channel = _channel;
577 }
578 finally {
579 }
580 }
581 // $ANTLR end "T__36"
582
583 // $ANTLR start "T__37"
584 public final void mT__37() throws RecognitionException {
585 try {
586 int _type = T__37;
587 int _channel = DEFAULT_TOKEN_CHANNEL;
588 // InternalProblem.g:36:7: ( '=' )
589 // InternalProblem.g:36:9: '='
590 {
591 match('=');
592
593 }
594
595 state.type = _type;
596 state.channel = _channel;
597 }
598 finally {
599 }
600 }
601 // $ANTLR end "T__37"
602
603 // $ANTLR start "T__38"
604 public final void mT__38() throws RecognitionException {
605 try {
606 int _type = T__38;
607 int _channel = DEFAULT_TOKEN_CHANNEL;
608 // InternalProblem.g:37:7: ( '..' )
609 // InternalProblem.g:37:9: '..'
610 {
611 match("..");
612
613
614 }
615
616 state.type = _type;
617 state.channel = _channel;
618 }
619 finally {
620 }
621 }
622 // $ANTLR end "T__38"
623
624 // $ANTLR start "T__39"
625 public final void mT__39() throws RecognitionException {
626 try {
627 int _type = T__39;
628 int _channel = DEFAULT_TOKEN_CHANNEL;
629 // InternalProblem.g:38:7: ( '*' )
630 // InternalProblem.g:38:9: '*'
631 {
632 match('*');
633
634 }
635
636 state.type = _type;
637 state.channel = _channel;
638 }
639 finally {
640 }
641 }
642 // $ANTLR end "T__39"
643
644 // $ANTLR start "T__40"
645 public final void mT__40() throws RecognitionException {
646 try {
647 int _type = T__40;
648 int _channel = DEFAULT_TOKEN_CHANNEL;
649 // InternalProblem.g:39:7: ( 'true' )
650 // InternalProblem.g:39:9: 'true'
651 {
652 match("true");
653
654
655 }
656
657 state.type = _type;
658 state.channel = _channel;
659 }
660 finally {
661 }
662 }
663 // $ANTLR end "T__40"
664
665 // $ANTLR start "T__41"
666 public final void mT__41() throws RecognitionException {
667 try {
668 int _type = T__41;
669 int _channel = DEFAULT_TOKEN_CHANNEL;
670 // InternalProblem.g:40:7: ( 'false' )
671 // InternalProblem.g:40:9: 'false'
672 {
673 match("false");
674
675
676 }
677
678 state.type = _type;
679 state.channel = _channel;
680 }
681 finally {
682 }
683 }
684 // $ANTLR end "T__41"
685
686 // $ANTLR start "T__42"
687 public final void mT__42() throws RecognitionException {
688 try {
689 int _type = T__42;
690 int _channel = DEFAULT_TOKEN_CHANNEL;
691 // InternalProblem.g:41:7: ( 'unknown' )
692 // InternalProblem.g:41:9: 'unknown'
693 {
694 match("unknown");
695
696
697 }
698
699 state.type = _type;
700 state.channel = _channel;
701 }
702 finally {
703 }
704 }
705 // $ANTLR end "T__42"
706
707 // $ANTLR start "T__43"
708 public final void mT__43() throws RecognitionException {
709 try {
710 int _type = T__43;
711 int _channel = DEFAULT_TOKEN_CHANNEL;
712 // InternalProblem.g:42:7: ( '?' )
713 // InternalProblem.g:42:9: '?'
714 {
715 match('?');
716
717 }
718
719 state.type = _type;
720 state.channel = _channel;
721 }
722 finally {
723 }
724 }
725 // $ANTLR end "T__43"
726
727 // $ANTLR start "RULE_STRING"
728 public final void mRULE_STRING() throws RecognitionException {
729 try {
730 int _type = RULE_STRING;
731 int _channel = DEFAULT_TOKEN_CHANNEL;
732 // InternalProblem.g:1895:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
733 // InternalProblem.g:1895:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
734 {
735 match('\"');
736 // InternalProblem.g:1895:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
737 loop1:
738 do {
739 int alt1=3;
740 int LA1_0 = input.LA(1);
741
742 if ( (LA1_0=='\\') ) {
743 alt1=1;
744 }
745 else if ( ((LA1_0>='\u0000' && LA1_0<='!')||(LA1_0>='#' && LA1_0<='[')||(LA1_0>=']' && LA1_0<='\uFFFF')) ) {
746 alt1=2;
747 }
748
749
750 switch (alt1) {
751 case 1 :
752 // InternalProblem.g:1895:20: '\\\\' .
753 {
754 match('\\');
755 matchAny();
756
757 }
758 break;
759 case 2 :
760 // InternalProblem.g:1895:27: ~ ( ( '\\\\' | '\"' ) )
761 {
762 if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
763 input.consume();
764
765 }
766 else {
767 MismatchedSetException mse = new MismatchedSetException(null,input);
768 recover(mse);
769 throw mse;}
770
771
772 }
773 break;
774
775 default :
776 break loop1;
777 }
778 } while (true);
779
780 match('\"');
781
782 }
783
784 state.type = _type;
785 state.channel = _channel;
786 }
787 finally {
788 }
789 }
790 // $ANTLR end "RULE_STRING"
791
792 // $ANTLR start "RULE_QUOTED_ID"
793 public final void mRULE_QUOTED_ID() throws RecognitionException {
794 try {
795 int _type = RULE_QUOTED_ID;
796 int _channel = DEFAULT_TOKEN_CHANNEL;
797 // InternalProblem.g:1897:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
798 // InternalProblem.g:1897:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
799 {
800 match('\'');
801 // InternalProblem.g:1897:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
802 loop2:
803 do {
804 int alt2=3;
805 int LA2_0 = input.LA(1);
806
807 if ( (LA2_0=='\\') ) {
808 alt2=1;
809 }
810 else if ( ((LA2_0>='\u0000' && LA2_0<='&')||(LA2_0>='(' && LA2_0<='[')||(LA2_0>=']' && LA2_0<='\uFFFF')) ) {
811 alt2=2;
812 }
813
814
815 switch (alt2) {
816 case 1 :
817 // InternalProblem.g:1897:24: '\\\\' .
818 {
819 match('\\');
820 matchAny();
821
822 }
823 break;
824 case 2 :
825 // InternalProblem.g:1897:31: ~ ( ( '\\\\' | '\\'' ) )
826 {
827 if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
828 input.consume();
829
830 }
831 else {
832 MismatchedSetException mse = new MismatchedSetException(null,input);
833 recover(mse);
834 throw mse;}
835
836
837 }
838 break;
839
840 default :
841 break loop2;
842 }
843 } while (true);
844
845 match('\'');
846
847 }
848
849 state.type = _type;
850 state.channel = _channel;
851 }
852 finally {
853 }
854 }
855 // $ANTLR end "RULE_QUOTED_ID"
856
857 // $ANTLR start "RULE_ID"
858 public final void mRULE_ID() throws RecognitionException {
859 try {
860 int _type = RULE_ID;
861 int _channel = DEFAULT_TOKEN_CHANNEL;
862 // InternalProblem.g:1899:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
863 // InternalProblem.g:1899:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
864 {
865 // InternalProblem.g:1899:11: ( '^' )?
866 int alt3=2;
867 int LA3_0 = input.LA(1);
868
869 if ( (LA3_0=='^') ) {
870 alt3=1;
871 }
872 switch (alt3) {
873 case 1 :
874 // InternalProblem.g:1899:11: '^'
875 {
876 match('^');
877
878 }
879 break;
880
881 }
882
883 if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
884 input.consume();
885
886 }
887 else {
888 MismatchedSetException mse = new MismatchedSetException(null,input);
889 recover(mse);
890 throw mse;}
891
892 // InternalProblem.g:1899:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
893 loop4:
894 do {
895 int alt4=2;
896 int LA4_0 = input.LA(1);
897
898 if ( ((LA4_0>='0' && LA4_0<='9')||(LA4_0>='A' && LA4_0<='Z')||LA4_0=='_'||(LA4_0>='a' && LA4_0<='z')) ) {
899 alt4=1;
900 }
901
902
903 switch (alt4) {
904 case 1 :
905 // InternalProblem.g:
906 {
907 if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
908 input.consume();
909
910 }
911 else {
912 MismatchedSetException mse = new MismatchedSetException(null,input);
913 recover(mse);
914 throw mse;}
915
916
917 }
918 break;
919
920 default :
921 break loop4;
922 }
923 } while (true);
924
925
926 }
927
928 state.type = _type;
929 state.channel = _channel;
930 }
931 finally {
932 }
933 }
934 // $ANTLR end "RULE_ID"
935
936 // $ANTLR start "RULE_INT"
937 public final void mRULE_INT() throws RecognitionException {
938 try {
939 int _type = RULE_INT;
940 int _channel = DEFAULT_TOKEN_CHANNEL;
941 // InternalProblem.g:1901:10: ( ( '0' .. '9' )+ )
942 // InternalProblem.g:1901:12: ( '0' .. '9' )+
943 {
944 // InternalProblem.g:1901:12: ( '0' .. '9' )+
945 int cnt5=0;
946 loop5:
947 do {
948 int alt5=2;
949 int LA5_0 = input.LA(1);
950
951 if ( ((LA5_0>='0' && LA5_0<='9')) ) {
952 alt5=1;
953 }
954
955
956 switch (alt5) {
957 case 1 :
958 // InternalProblem.g:1901:13: '0' .. '9'
959 {
960 matchRange('0','9');
961
962 }
963 break;
964
965 default :
966 if ( cnt5 >= 1 ) break loop5;
967 EarlyExitException eee =
968 new EarlyExitException(5, input);
969 throw eee;
970 }
971 cnt5++;
972 } while (true);
973
974
975 }
976
977 state.type = _type;
978 state.channel = _channel;
979 }
980 finally {
981 }
982 }
983 // $ANTLR end "RULE_INT"
984
985 // $ANTLR start "RULE_ML_COMMENT"
986 public final void mRULE_ML_COMMENT() throws RecognitionException {
987 try {
988 int _type = RULE_ML_COMMENT;
989 int _channel = DEFAULT_TOKEN_CHANNEL;
990 // InternalProblem.g:1903:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
991 // InternalProblem.g:1903:19: '/*' ( options {greedy=false; } : . )* '*/'
992 {
993 match("/*");
994
995 // InternalProblem.g:1903:24: ( options {greedy=false; } : . )*
996 loop6:
997 do {
998 int alt6=2;
999 int LA6_0 = input.LA(1);
1000
1001 if ( (LA6_0=='*') ) {
1002 int LA6_1 = input.LA(2);
1003
1004 if ( (LA6_1=='/') ) {
1005 alt6=2;
1006 }
1007 else if ( ((LA6_1>='\u0000' && LA6_1<='.')||(LA6_1>='0' && LA6_1<='\uFFFF')) ) {
1008 alt6=1;
1009 }
1010
1011
1012 }
1013 else if ( ((LA6_0>='\u0000' && LA6_0<=')')||(LA6_0>='+' && LA6_0<='\uFFFF')) ) {
1014 alt6=1;
1015 }
1016
1017
1018 switch (alt6) {
1019 case 1 :
1020 // InternalProblem.g:1903:52: .
1021 {
1022 matchAny();
1023
1024 }
1025 break;
1026
1027 default :
1028 break loop6;
1029 }
1030 } while (true);
1031
1032 match("*/");
1033
1034
1035 }
1036
1037 state.type = _type;
1038 state.channel = _channel;
1039 }
1040 finally {
1041 }
1042 }
1043 // $ANTLR end "RULE_ML_COMMENT"
1044
1045 // $ANTLR start "RULE_SL_COMMENT"
1046 public final void mRULE_SL_COMMENT() throws RecognitionException {
1047 try {
1048 int _type = RULE_SL_COMMENT;
1049 int _channel = DEFAULT_TOKEN_CHANNEL;
1050 // InternalProblem.g:1905:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
1051 // InternalProblem.g:1905:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
1052 {
1053 match("//");
1054
1055 // InternalProblem.g:1905:24: (~ ( ( '\\n' | '\\r' ) ) )*
1056 loop7:
1057 do {
1058 int alt7=2;
1059 int LA7_0 = input.LA(1);
1060
1061 if ( ((LA7_0>='\u0000' && LA7_0<='\t')||(LA7_0>='\u000B' && LA7_0<='\f')||(LA7_0>='\u000E' && LA7_0<='\uFFFF')) ) {
1062 alt7=1;
1063 }
1064
1065
1066 switch (alt7) {
1067 case 1 :
1068 // InternalProblem.g:1905:24: ~ ( ( '\\n' | '\\r' ) )
1069 {
1070 if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
1071 input.consume();
1072
1073 }
1074 else {
1075 MismatchedSetException mse = new MismatchedSetException(null,input);
1076 recover(mse);
1077 throw mse;}
1078
1079
1080 }
1081 break;
1082
1083 default :
1084 break loop7;
1085 }
1086 } while (true);
1087
1088 // InternalProblem.g:1905:40: ( ( '\\r' )? '\\n' )?
1089 int alt9=2;
1090 int LA9_0 = input.LA(1);
1091
1092 if ( (LA9_0=='\n'||LA9_0=='\r') ) {
1093 alt9=1;
1094 }
1095 switch (alt9) {
1096 case 1 :
1097 // InternalProblem.g:1905:41: ( '\\r' )? '\\n'
1098 {
1099 // InternalProblem.g:1905:41: ( '\\r' )?
1100 int alt8=2;
1101 int LA8_0 = input.LA(1);
1102
1103 if ( (LA8_0=='\r') ) {
1104 alt8=1;
1105 }
1106 switch (alt8) {
1107 case 1 :
1108 // InternalProblem.g:1905:41: '\\r'
1109 {
1110 match('\r');
1111
1112 }
1113 break;
1114
1115 }
1116
1117 match('\n');
1118
1119 }
1120 break;
1121
1122 }
1123
1124
1125 }
1126
1127 state.type = _type;
1128 state.channel = _channel;
1129 }
1130 finally {
1131 }
1132 }
1133 // $ANTLR end "RULE_SL_COMMENT"
1134
1135 // $ANTLR start "RULE_WS"
1136 public final void mRULE_WS() throws RecognitionException {
1137 try {
1138 int _type = RULE_WS;
1139 int _channel = DEFAULT_TOKEN_CHANNEL;
1140 // InternalProblem.g:1907:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
1141 // InternalProblem.g:1907:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1142 {
1143 // InternalProblem.g:1907:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1144 int cnt10=0;
1145 loop10:
1146 do {
1147 int alt10=2;
1148 int LA10_0 = input.LA(1);
1149
1150 if ( ((LA10_0>='\t' && LA10_0<='\n')||LA10_0=='\r'||LA10_0==' ') ) {
1151 alt10=1;
1152 }
1153
1154
1155 switch (alt10) {
1156 case 1 :
1157 // InternalProblem.g:
1158 {
1159 if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
1160 input.consume();
1161
1162 }
1163 else {
1164 MismatchedSetException mse = new MismatchedSetException(null,input);
1165 recover(mse);
1166 throw mse;}
1167
1168
1169 }
1170 break;
1171
1172 default :
1173 if ( cnt10 >= 1 ) break loop10;
1174 EarlyExitException eee =
1175 new EarlyExitException(10, input);
1176 throw eee;
1177 }
1178 cnt10++;
1179 } while (true);
1180
1181
1182 }
1183
1184 state.type = _type;
1185 state.channel = _channel;
1186 }
1187 finally {
1188 }
1189 }
1190 // $ANTLR end "RULE_WS"
1191
1192 // $ANTLR start "RULE_ANY_OTHER"
1193 public final void mRULE_ANY_OTHER() throws RecognitionException {
1194 try {
1195 int _type = RULE_ANY_OTHER;
1196 int _channel = DEFAULT_TOKEN_CHANNEL;
1197 // InternalProblem.g:1909:16: ( . )
1198 // InternalProblem.g:1909:18: .
1199 {
1200 matchAny();
1201
1202 }
1203
1204 state.type = _type;
1205 state.channel = _channel;
1206 }
1207 finally {
1208 }
1209 }
1210 // $ANTLR end "RULE_ANY_OTHER"
1211
1212 public void mTokens() throws RecognitionException {
1213 // InternalProblem.g:1:8: ( T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
1214 int alt11=40;
1215 alt11 = dfa11.predict(input);
1216 switch (alt11) {
1217 case 1 :
1218 // InternalProblem.g:1:10: T__12
1219 {
1220 mT__12();
1221
1222 }
1223 break;
1224 case 2 :
1225 // InternalProblem.g:1:16: T__13
1226 {
1227 mT__13();
1228
1229 }
1230 break;
1231 case 3 :
1232 // InternalProblem.g:1:22: T__14
1233 {
1234 mT__14();
1235
1236 }
1237 break;
1238 case 4 :
1239 // InternalProblem.g:1:28: T__15
1240 {
1241 mT__15();
1242
1243 }
1244 break;
1245 case 5 :
1246 // InternalProblem.g:1:34: T__16
1247 {
1248 mT__16();
1249
1250 }
1251 break;
1252 case 6 :
1253 // InternalProblem.g:1:40: T__17
1254 {
1255 mT__17();
1256
1257 }
1258 break;
1259 case 7 :
1260 // InternalProblem.g:1:46: T__18
1261 {
1262 mT__18();
1263
1264 }
1265 break;
1266 case 8 :
1267 // InternalProblem.g:1:52: T__19
1268 {
1269 mT__19();
1270
1271 }
1272 break;
1273 case 9 :
1274 // InternalProblem.g:1:58: T__20
1275 {
1276 mT__20();
1277
1278 }
1279 break;
1280 case 10 :
1281 // InternalProblem.g:1:64: T__21
1282 {
1283 mT__21();
1284
1285 }
1286 break;
1287 case 11 :
1288 // InternalProblem.g:1:70: T__22
1289 {
1290 mT__22();
1291
1292 }
1293 break;
1294 case 12 :
1295 // InternalProblem.g:1:76: T__23
1296 {
1297 mT__23();
1298
1299 }
1300 break;
1301 case 13 :
1302 // InternalProblem.g:1:82: T__24
1303 {
1304 mT__24();
1305
1306 }
1307 break;
1308 case 14 :
1309 // InternalProblem.g:1:88: T__25
1310 {
1311 mT__25();
1312
1313 }
1314 break;
1315 case 15 :
1316 // InternalProblem.g:1:94: T__26
1317 {
1318 mT__26();
1319
1320 }
1321 break;
1322 case 16 :
1323 // InternalProblem.g:1:100: T__27
1324 {
1325 mT__27();
1326
1327 }
1328 break;
1329 case 17 :
1330 // InternalProblem.g:1:106: T__28
1331 {
1332 mT__28();
1333
1334 }
1335 break;
1336 case 18 :
1337 // InternalProblem.g:1:112: T__29
1338 {
1339 mT__29();
1340
1341 }
1342 break;
1343 case 19 :
1344 // InternalProblem.g:1:118: T__30
1345 {
1346 mT__30();
1347
1348 }
1349 break;
1350 case 20 :
1351 // InternalProblem.g:1:124: T__31
1352 {
1353 mT__31();
1354
1355 }
1356 break;
1357 case 21 :
1358 // InternalProblem.g:1:130: T__32
1359 {
1360 mT__32();
1361
1362 }
1363 break;
1364 case 22 :
1365 // InternalProblem.g:1:136: T__33
1366 {
1367 mT__33();
1368
1369 }
1370 break;
1371 case 23 :
1372 // InternalProblem.g:1:142: T__34
1373 {
1374 mT__34();
1375
1376 }
1377 break;
1378 case 24 :
1379 // InternalProblem.g:1:148: T__35
1380 {
1381 mT__35();
1382
1383 }
1384 break;
1385 case 25 :
1386 // InternalProblem.g:1:154: T__36
1387 {
1388 mT__36();
1389
1390 }
1391 break;
1392 case 26 :
1393 // InternalProblem.g:1:160: T__37
1394 {
1395 mT__37();
1396
1397 }
1398 break;
1399 case 27 :
1400 // InternalProblem.g:1:166: T__38
1401 {
1402 mT__38();
1403
1404 }
1405 break;
1406 case 28 :
1407 // InternalProblem.g:1:172: T__39
1408 {
1409 mT__39();
1410
1411 }
1412 break;
1413 case 29 :
1414 // InternalProblem.g:1:178: T__40
1415 {
1416 mT__40();
1417
1418 }
1419 break;
1420 case 30 :
1421 // InternalProblem.g:1:184: T__41
1422 {
1423 mT__41();
1424
1425 }
1426 break;
1427 case 31 :
1428 // InternalProblem.g:1:190: T__42
1429 {
1430 mT__42();
1431
1432 }
1433 break;
1434 case 32 :
1435 // InternalProblem.g:1:196: T__43
1436 {
1437 mT__43();
1438
1439 }
1440 break;
1441 case 33 :
1442 // InternalProblem.g:1:202: RULE_STRING
1443 {
1444 mRULE_STRING();
1445
1446 }
1447 break;
1448 case 34 :
1449 // InternalProblem.g:1:214: RULE_QUOTED_ID
1450 {
1451 mRULE_QUOTED_ID();
1452
1453 }
1454 break;
1455 case 35 :
1456 // InternalProblem.g:1:229: RULE_ID
1457 {
1458 mRULE_ID();
1459
1460 }
1461 break;
1462 case 36 :
1463 // InternalProblem.g:1:237: RULE_INT
1464 {
1465 mRULE_INT();
1466
1467 }
1468 break;
1469 case 37 :
1470 // InternalProblem.g:1:246: RULE_ML_COMMENT
1471 {
1472 mRULE_ML_COMMENT();
1473
1474 }
1475 break;
1476 case 38 :
1477 // InternalProblem.g:1:262: RULE_SL_COMMENT
1478 {
1479 mRULE_SL_COMMENT();
1480
1481 }
1482 break;
1483 case 39 :
1484 // InternalProblem.g:1:278: RULE_WS
1485 {
1486 mRULE_WS();
1487
1488 }
1489 break;
1490 case 40 :
1491 // InternalProblem.g:1:286: RULE_ANY_OTHER
1492 {
1493 mRULE_ANY_OTHER();
1494
1495 }
1496 break;
1497
1498 }
1499
1500 }
1501
1502
1503 protected DFA11 dfa11 = new DFA11(this);
1504 static final String DFA11_eotS =
1505 "\1\uffff\1\43\1\45\3\43\4\uffff\1\43\2\uffff\1\43\2\uffff\1\67\1\uffff\1\72\1\43\2\uffff\3\43\1\uffff\3\41\2\uffff\1\41\2\uffff\1\43\3\uffff\6\43\4\uffff\1\43\2\uffff\1\43\7\uffff\1\43\2\uffff\3\43\7\uffff\17\43\1\145\4\43\1\152\4\43\1\157\3\43\1\uffff\1\43\1\164\2\43\1\uffff\1\167\2\43\1\172\1\uffff\1\173\3\43\1\uffff\2\43\1\uffff\1\u0081\1\43\2\uffff\1\43\1\u0084\2\43\1\u0087\1\uffff\1\43\1\u0089\1\uffff\1\u008a\1\u008b\1\uffff\1\u008c\4\uffff";
1506 static final String DFA11_eofS =
1507 "\u008d\uffff";
1508 static final String DFA11_minS =
1509 "\1\0\1\162\1\56\1\142\1\154\1\156\4\uffff\1\145\2\uffff\1\160\2\uffff\1\55\1\uffff\1\75\1\143\2\uffff\1\162\1\141\1\156\1\uffff\2\0\1\101\2\uffff\1\52\2\uffff\1\145\3\uffff\1\163\1\141\1\156\1\164\1\165\1\162\4\uffff\1\146\2\uffff\1\160\7\uffff\1\157\2\uffff\1\165\1\154\1\153\7\uffff\1\142\1\144\1\164\1\163\1\164\1\145\1\155\1\157\1\145\1\157\1\160\1\145\1\163\1\156\1\154\1\60\1\162\1\163\1\141\1\156\1\60\2\162\1\163\1\145\1\60\1\145\1\157\1\145\1\uffff\1\141\1\60\1\151\1\144\1\uffff\1\60\1\163\1\151\1\60\1\uffff\1\60\1\167\1\155\1\143\1\uffff\1\156\1\163\1\uffff\1\60\1\164\2\uffff\1\156\1\60\1\164\1\163\1\60\1\uffff\1\145\1\60\1\uffff\2\60\1\uffff\1\60\4\uffff";
1510 static final String DFA11_maxS =
1511 "\1\uffff\1\162\1\56\1\142\1\157\1\170\4\uffff\1\145\2\uffff\1\160\2\uffff\1\55\1\uffff\1\75\1\143\2\uffff\1\162\1\141\1\156\1\uffff\2\uffff\1\172\2\uffff\1\57\2\uffff\1\157\3\uffff\1\163\1\141\1\156\1\164\1\165\1\162\4\uffff\1\146\2\uffff\1\160\7\uffff\1\157\2\uffff\1\165\1\154\1\153\7\uffff\1\142\1\144\1\164\1\163\1\164\1\145\1\155\1\157\1\145\1\157\1\160\1\145\1\163\1\156\1\154\1\172\1\162\1\163\1\141\1\156\1\172\2\162\1\163\1\145\1\172\1\145\1\157\1\145\1\uffff\1\141\1\172\1\151\1\144\1\uffff\1\172\1\163\1\151\1\172\1\uffff\1\172\1\167\1\155\1\143\1\uffff\1\156\1\163\1\uffff\1\172\1\164\2\uffff\1\156\1\172\1\164\1\163\1\172\1\uffff\1\145\1\172\1\uffff\2\172\1\uffff\1\172\4\uffff";
1512 static final String DFA11_acceptS =
1513 "\6\uffff\1\6\1\7\1\10\1\11\1\uffff\1\15\1\16\1\uffff\1\22\1\23\1\uffff\1\25\2\uffff\1\32\1\34\3\uffff\1\40\3\uffff\1\43\1\44\1\uffff\1\47\1\50\1\uffff\1\43\1\33\1\2\6\uffff\1\6\1\7\1\10\1\11\1\uffff\1\15\1\16\1\uffff\1\22\1\23\1\24\1\27\1\25\1\31\1\26\1\uffff\1\32\1\34\3\uffff\1\40\1\41\1\42\1\44\1\45\1\46\1\47\35\uffff\1\21\4\uffff\1\12\4\uffff\1\35\4\uffff\1\4\2\uffff\1\20\2\uffff\1\30\1\36\5\uffff\1\14\2\uffff\1\1\2\uffff\1\5\1\uffff\1\37\1\3\1\13\1\17";
1514 static final String DFA11_specialS =
1515 "\1\2\31\uffff\1\1\1\0\161\uffff}>";
1516 static final String[] DFA11_transitionS = {
1517 "\11\41\2\40\2\41\1\40\22\41\1\40\1\21\1\32\4\41\1\33\1\16\1\17\1\25\1\22\1\6\1\41\1\2\1\37\12\36\1\20\1\10\1\41\1\24\1\41\1\31\1\41\32\35\1\13\1\41\1\14\1\34\1\35\1\41\1\3\1\35\1\4\1\35\1\5\1\27\10\35\1\15\1\1\1\35\1\12\1\23\1\26\1\30\5\35\1\7\1\41\1\11\uff82\41",
1518 "\1\42",
1519 "\1\44",
1520 "\1\46",
1521 "\1\47\2\uffff\1\50",
1522 "\1\52\3\uffff\1\53\5\uffff\1\51",
1523 "",
1524 "",
1525 "",
1526 "",
1527 "\1\60",
1528 "",
1529 "",
1530 "\1\63",
1531 "",
1532 "",
1533 "\1\66",
1534 "",
1535 "\1\71",
1536 "\1\73",
1537 "",
1538 "",
1539 "\1\76",
1540 "\1\77",
1541 "\1\100",
1542 "",
1543 "\0\102",
1544 "\0\103",
1545 "\32\43\4\uffff\1\43\1\uffff\32\43",
1546 "",
1547 "",
1548 "\1\105\4\uffff\1\106",
1549 "",
1550 "",
1551 "\1\111\11\uffff\1\110",
1552 "",
1553 "",
1554 "",
1555 "\1\112",
1556 "\1\113",
1557 "\1\114",
1558 "\1\115",
1559 "\1\116",
1560 "\1\117",
1561 "",
1562 "",
1563 "",
1564 "",
1565 "\1\120",
1566 "",
1567 "",
1568 "\1\121",
1569 "",
1570 "",
1571 "",
1572 "",
1573 "",
1574 "",
1575 "",
1576 "\1\122",
1577 "",
1578 "",
1579 "\1\123",
1580 "\1\124",
1581 "\1\125",
1582 "",
1583 "",
1584 "",
1585 "",
1586 "",
1587 "",
1588 "",
1589 "\1\126",
1590 "\1\127",
1591 "\1\130",
1592 "\1\131",
1593 "\1\132",
1594 "\1\133",
1595 "\1\134",
1596 "\1\135",
1597 "\1\136",
1598 "\1\137",
1599 "\1\140",
1600 "\1\141",
1601 "\1\142",
1602 "\1\143",
1603 "\1\144",
1604 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1605 "\1\146",
1606 "\1\147",
1607 "\1\150",
1608 "\1\151",
1609 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1610 "\1\153",
1611 "\1\154",
1612 "\1\155",
1613 "\1\156",
1614 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1615 "\1\160",
1616 "\1\161",
1617 "\1\162",
1618 "",
1619 "\1\163",
1620 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1621 "\1\165",
1622 "\1\166",
1623 "",
1624 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1625 "\1\170",
1626 "\1\171",
1627 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1628 "",
1629 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1630 "\1\174",
1631 "\1\175",
1632 "\1\176",
1633 "",
1634 "\1\177",
1635 "\1\u0080",
1636 "",
1637 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1638 "\1\u0082",
1639 "",
1640 "",
1641 "\1\u0083",
1642 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1643 "\1\u0085",
1644 "\1\u0086",
1645 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1646 "",
1647 "\1\u0088",
1648 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1649 "",
1650 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1651 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1652 "",
1653 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1654 "",
1655 "",
1656 "",
1657 ""
1658 };
1659
1660 static final short[] DFA11_eot = DFA.unpackEncodedString(DFA11_eotS);
1661 static final short[] DFA11_eof = DFA.unpackEncodedString(DFA11_eofS);
1662 static final char[] DFA11_min = DFA.unpackEncodedStringToUnsignedChars(DFA11_minS);
1663 static final char[] DFA11_max = DFA.unpackEncodedStringToUnsignedChars(DFA11_maxS);
1664 static final short[] DFA11_accept = DFA.unpackEncodedString(DFA11_acceptS);
1665 static final short[] DFA11_special = DFA.unpackEncodedString(DFA11_specialS);
1666 static final short[][] DFA11_transition;
1667
1668 static {
1669 int numStates = DFA11_transitionS.length;
1670 DFA11_transition = new short[numStates][];
1671 for (int i=0; i<numStates; i++) {
1672 DFA11_transition[i] = DFA.unpackEncodedString(DFA11_transitionS[i]);
1673 }
1674 }
1675
1676 class DFA11 extends DFA {
1677
1678 public DFA11(BaseRecognizer recognizer) {
1679 this.recognizer = recognizer;
1680 this.decisionNumber = 11;
1681 this.eot = DFA11_eot;
1682 this.eof = DFA11_eof;
1683 this.min = DFA11_min;
1684 this.max = DFA11_max;
1685 this.accept = DFA11_accept;
1686 this.special = DFA11_special;
1687 this.transition = DFA11_transition;
1688 }
1689 public String getDescription() {
1690 return "1:1: Tokens : ( T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
1691 }
1692 public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
1693 IntStream input = _input;
1694 int _s = s;
1695 switch ( s ) {
1696 case 0 :
1697 int LA11_27 = input.LA(1);
1698
1699 s = -1;
1700 if ( ((LA11_27>='\u0000' && LA11_27<='\uFFFF')) ) {s = 67;}
1701
1702 else s = 33;
1703
1704 if ( s>=0 ) return s;
1705 break;
1706 case 1 :
1707 int LA11_26 = input.LA(1);
1708
1709 s = -1;
1710 if ( ((LA11_26>='\u0000' && LA11_26<='\uFFFF')) ) {s = 66;}
1711
1712 else s = 33;
1713
1714 if ( s>=0 ) return s;
1715 break;
1716 case 2 :
1717 int LA11_0 = input.LA(1);
1718
1719 s = -1;
1720 if ( (LA11_0=='p') ) {s = 1;}
1721
1722 else if ( (LA11_0=='.') ) {s = 2;}
1723
1724 else if ( (LA11_0=='a') ) {s = 3;}
1725
1726 else if ( (LA11_0=='c') ) {s = 4;}
1727
1728 else if ( (LA11_0=='e') ) {s = 5;}
1729
1730 else if ( (LA11_0==',') ) {s = 6;}
1731
1732 else if ( (LA11_0=='{') ) {s = 7;}
1733
1734 else if ( (LA11_0==';') ) {s = 8;}
1735
1736 else if ( (LA11_0=='}') ) {s = 9;}
1737
1738 else if ( (LA11_0=='r') ) {s = 10;}
1739
1740 else if ( (LA11_0=='[') ) {s = 11;}
1741
1742 else if ( (LA11_0==']') ) {s = 12;}
1743
1744 else if ( (LA11_0=='o') ) {s = 13;}
1745
1746 else if ( (LA11_0=='(') ) {s = 14;}
1747
1748 else if ( (LA11_0==')') ) {s = 15;}
1749
1750 else if ( (LA11_0==':') ) {s = 16;}
1751
1752 else if ( (LA11_0=='!') ) {s = 17;}
1753
1754 else if ( (LA11_0=='+') ) {s = 18;}
1755
1756 else if ( (LA11_0=='s') ) {s = 19;}
1757
1758 else if ( (LA11_0=='=') ) {s = 20;}
1759
1760 else if ( (LA11_0=='*') ) {s = 21;}
1761
1762 else if ( (LA11_0=='t') ) {s = 22;}
1763
1764 else if ( (LA11_0=='f') ) {s = 23;}
1765
1766 else if ( (LA11_0=='u') ) {s = 24;}
1767
1768 else if ( (LA11_0=='?') ) {s = 25;}
1769
1770 else if ( (LA11_0=='\"') ) {s = 26;}
1771
1772 else if ( (LA11_0=='\'') ) {s = 27;}
1773
1774 else if ( (LA11_0=='^') ) {s = 28;}
1775
1776 else if ( ((LA11_0>='A' && LA11_0<='Z')||LA11_0=='_'||LA11_0=='b'||LA11_0=='d'||(LA11_0>='g' && LA11_0<='n')||LA11_0=='q'||(LA11_0>='v' && LA11_0<='z')) ) {s = 29;}
1777
1778 else if ( ((LA11_0>='0' && LA11_0<='9')) ) {s = 30;}
1779
1780 else if ( (LA11_0=='/') ) {s = 31;}
1781
1782 else if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {s = 32;}
1783
1784 else if ( ((LA11_0>='\u0000' && LA11_0<='\b')||(LA11_0>='\u000B' && LA11_0<='\f')||(LA11_0>='\u000E' && LA11_0<='\u001F')||(LA11_0>='#' && LA11_0<='&')||LA11_0=='-'||LA11_0=='<'||LA11_0=='>'||LA11_0=='@'||LA11_0=='\\'||LA11_0=='`'||LA11_0=='|'||(LA11_0>='~' && LA11_0<='\uFFFF')) ) {s = 33;}
1785
1786 if ( s>=0 ) return s;
1787 break;
1788 }
1789 NoViableAltException nvae =
1790 new NoViableAltException(getDescription(), 11, _s, input);
1791 error(nvae);
1792 throw nvae;
1793 }
1794 }
1795
1796
1797} \ No newline at end of file
diff --git a/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java b/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java
new file mode 100644
index 00000000..28b54551
--- /dev/null
+++ b/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java
@@ -0,0 +1,5296 @@
1package org.eclipse.viatra.solver.language.parser.antlr.internal;
2
3import org.eclipse.xtext.*;
4import org.eclipse.xtext.parser.*;
5import org.eclipse.xtext.parser.impl.*;
6import org.eclipse.emf.ecore.util.EcoreUtil;
7import org.eclipse.emf.ecore.EObject;
8import org.eclipse.emf.common.util.Enumerator;
9import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
10import org.eclipse.xtext.parser.antlr.XtextTokenStream;
11import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
12import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
13import org.eclipse.viatra.solver.language.services.ProblemGrammarAccess;
14
15
16
17import org.antlr.runtime.*;
18import java.util.Stack;
19import java.util.List;
20import java.util.ArrayList;
21
22@SuppressWarnings("all")
23public class InternalProblemParser extends AbstractInternalAntlrParser {
24 public static final String[] tokenNames = new String[] {
25 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_QUOTED_ID", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'problem'", "'.'", "'abstract'", "'class'", "'extends'", "','", "'{'", "';'", "'}'", "'enum'", "'contains'", "'refers'", "'['", "']'", "'opposite'", "'error'", "'pred'", "'('", "')'", "':-'", "'!'", "'+'", "':'", "'scope'", "'+='", "'='", "'..'", "'*'", "'true'", "'false'", "'unknown'", "'?'"
26 };
27 public static final int T__19=19;
28 public static final int T__15=15;
29 public static final int T__16=16;
30 public static final int T__17=17;
31 public static final int T__18=18;
32 public static final int T__12=12;
33 public static final int T__13=13;
34 public static final int T__14=14;
35 public static final int RULE_ID=4;
36 public static final int RULE_QUOTED_ID=6;
37 public static final int T__26=26;
38 public static final int T__27=27;
39 public static final int T__28=28;
40 public static final int RULE_INT=5;
41 public static final int T__29=29;
42 public static final int T__22=22;
43 public static final int RULE_ML_COMMENT=8;
44 public static final int T__23=23;
45 public static final int T__24=24;
46 public static final int T__25=25;
47 public static final int T__20=20;
48 public static final int T__21=21;
49 public static final int RULE_STRING=7;
50 public static final int RULE_SL_COMMENT=9;
51 public static final int T__37=37;
52 public static final int T__38=38;
53 public static final int T__39=39;
54 public static final int T__33=33;
55 public static final int T__34=34;
56 public static final int T__35=35;
57 public static final int T__36=36;
58 public static final int EOF=-1;
59 public static final int T__30=30;
60 public static final int T__31=31;
61 public static final int T__32=32;
62 public static final int RULE_WS=10;
63 public static final int RULE_ANY_OTHER=11;
64 public static final int T__40=40;
65 public static final int T__41=41;
66 public static final int T__42=42;
67 public static final int T__43=43;
68
69 // delegates
70 // delegators
71
72
73 public InternalProblemParser(TokenStream input) {
74 this(input, new RecognizerSharedState());
75 }
76 public InternalProblemParser(TokenStream input, RecognizerSharedState state) {
77 super(input, state);
78
79 }
80
81
82 public String[] getTokenNames() { return InternalProblemParser.tokenNames; }
83 public String getGrammarFileName() { return "InternalProblem.g"; }
84
85
86
87 private ProblemGrammarAccess grammarAccess;
88
89 public InternalProblemParser(TokenStream input, ProblemGrammarAccess grammarAccess) {
90 this(input);
91 this.grammarAccess = grammarAccess;
92 registerRules(grammarAccess.getGrammar());
93 }
94
95 @Override
96 protected String getFirstRuleName() {
97 return "Problem";
98 }
99
100 @Override
101 protected ProblemGrammarAccess getGrammarAccess() {
102 return grammarAccess;
103 }
104
105
106
107
108 // $ANTLR start "entryRuleProblem"
109 // InternalProblem.g:65:1: entryRuleProblem returns [EObject current=null] : iv_ruleProblem= ruleProblem EOF ;
110 public final EObject entryRuleProblem() throws RecognitionException {
111 EObject current = null;
112
113 EObject iv_ruleProblem = null;
114
115
116 try {
117 // InternalProblem.g:65:48: (iv_ruleProblem= ruleProblem EOF )
118 // InternalProblem.g:66:2: iv_ruleProblem= ruleProblem EOF
119 {
120 newCompositeNode(grammarAccess.getProblemRule());
121 pushFollow(FOLLOW_1);
122 iv_ruleProblem=ruleProblem();
123
124 state._fsp--;
125
126 current =iv_ruleProblem;
127 match(input,EOF,FOLLOW_2);
128
129 }
130
131 }
132
133 catch (RecognitionException re) {
134 recover(input,re);
135 appendSkippedTokens();
136 }
137 finally {
138 }
139 return current;
140 }
141 // $ANTLR end "entryRuleProblem"
142
143
144 // $ANTLR start "ruleProblem"
145 // InternalProblem.g:72:1: ruleProblem returns [EObject current=null] : ( (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )? ( (lv_statements_3_0= ruleStatement ) )* ) ;
146 public final EObject ruleProblem() throws RecognitionException {
147 EObject current = null;
148
149 Token otherlv_0=null;
150 Token otherlv_2=null;
151 AntlrDatatypeRuleToken lv_name_1_0 = null;
152
153 EObject lv_statements_3_0 = null;
154
155
156
157 enterRule();
158
159 try {
160 // InternalProblem.g:78:2: ( ( (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )? ( (lv_statements_3_0= ruleStatement ) )* ) )
161 // InternalProblem.g:79:2: ( (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )? ( (lv_statements_3_0= ruleStatement ) )* )
162 {
163 // InternalProblem.g:79:2: ( (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )? ( (lv_statements_3_0= ruleStatement ) )* )
164 // InternalProblem.g:80:3: (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )? ( (lv_statements_3_0= ruleStatement ) )*
165 {
166 // InternalProblem.g:80:3: (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )?
167 int alt1=2;
168 int LA1_0 = input.LA(1);
169
170 if ( (LA1_0==12) ) {
171 alt1=1;
172 }
173 switch (alt1) {
174 case 1 :
175 // InternalProblem.g:81:4: otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.'
176 {
177 otherlv_0=(Token)match(input,12,FOLLOW_3);
178
179 newLeafNode(otherlv_0, grammarAccess.getProblemAccess().getProblemKeyword_0_0());
180
181 // InternalProblem.g:85:4: ( (lv_name_1_0= ruleIdentifier ) )
182 // InternalProblem.g:86:5: (lv_name_1_0= ruleIdentifier )
183 {
184 // InternalProblem.g:86:5: (lv_name_1_0= ruleIdentifier )
185 // InternalProblem.g:87:6: lv_name_1_0= ruleIdentifier
186 {
187
188 newCompositeNode(grammarAccess.getProblemAccess().getNameIdentifierParserRuleCall_0_1_0());
189
190 pushFollow(FOLLOW_4);
191 lv_name_1_0=ruleIdentifier();
192
193 state._fsp--;
194
195
196 if (current==null) {
197 current = createModelElementForParent(grammarAccess.getProblemRule());
198 }
199 set(
200 current,
201 "name",
202 lv_name_1_0,
203 "org.eclipse.viatra.solver.language.Problem.Identifier");
204 afterParserOrEnumRuleCall();
205
206
207 }
208
209
210 }
211
212 otherlv_2=(Token)match(input,13,FOLLOW_5);
213
214 newLeafNode(otherlv_2, grammarAccess.getProblemAccess().getFullStopKeyword_0_2());
215
216
217 }
218 break;
219
220 }
221
222 // InternalProblem.g:109:3: ( (lv_statements_3_0= ruleStatement ) )*
223 loop2:
224 do {
225 int alt2=2;
226 int LA2_0 = input.LA(1);
227
228 if ( (LA2_0==RULE_ID||LA2_0==RULE_QUOTED_ID||(LA2_0>=14 && LA2_0<=15)||LA2_0==21||(LA2_0>=27 && LA2_0<=28)||LA2_0==32||LA2_0==35||(LA2_0>=40 && LA2_0<=41)||LA2_0==43) ) {
229 alt2=1;
230 }
231
232
233 switch (alt2) {
234 case 1 :
235 // InternalProblem.g:110:4: (lv_statements_3_0= ruleStatement )
236 {
237 // InternalProblem.g:110:4: (lv_statements_3_0= ruleStatement )
238 // InternalProblem.g:111:5: lv_statements_3_0= ruleStatement
239 {
240
241 newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_1_0());
242
243 pushFollow(FOLLOW_5);
244 lv_statements_3_0=ruleStatement();
245
246 state._fsp--;
247
248
249 if (current==null) {
250 current = createModelElementForParent(grammarAccess.getProblemRule());
251 }
252 add(
253 current,
254 "statements",
255 lv_statements_3_0,
256 "org.eclipse.viatra.solver.language.Problem.Statement");
257 afterParserOrEnumRuleCall();
258
259
260 }
261
262
263 }
264 break;
265
266 default :
267 break loop2;
268 }
269 } while (true);
270
271
272 }
273
274
275 }
276
277
278 leaveRule();
279
280 }
281
282 catch (RecognitionException re) {
283 recover(input,re);
284 appendSkippedTokens();
285 }
286 finally {
287 }
288 return current;
289 }
290 // $ANTLR end "ruleProblem"
291
292
293 // $ANTLR start "entryRuleStatement"
294 // InternalProblem.g:132:1: entryRuleStatement returns [EObject current=null] : iv_ruleStatement= ruleStatement EOF ;
295 public final EObject entryRuleStatement() throws RecognitionException {
296 EObject current = null;
297
298 EObject iv_ruleStatement = null;
299
300
301 try {
302 // InternalProblem.g:132:50: (iv_ruleStatement= ruleStatement EOF )
303 // InternalProblem.g:133:2: iv_ruleStatement= ruleStatement EOF
304 {
305 newCompositeNode(grammarAccess.getStatementRule());
306 pushFollow(FOLLOW_1);
307 iv_ruleStatement=ruleStatement();
308
309 state._fsp--;
310
311 current =iv_ruleStatement;
312 match(input,EOF,FOLLOW_2);
313
314 }
315
316 }
317
318 catch (RecognitionException re) {
319 recover(input,re);
320 appendSkippedTokens();
321 }
322 finally {
323 }
324 return current;
325 }
326 // $ANTLR end "entryRuleStatement"
327
328
329 // $ANTLR start "ruleStatement"
330 // InternalProblem.g:139:1: ruleStatement returns [EObject current=null] : (this_ClassDeclaration_0= ruleClassDeclaration | this_EnumDeclaration_1= ruleEnumDeclaration | this_PredicateDefinition_2= rulePredicateDefinition | this_Assertion_3= ruleAssertion | this_ScopeDeclaration_4= ruleScopeDeclaration ) ;
331 public final EObject ruleStatement() throws RecognitionException {
332 EObject current = null;
333
334 EObject this_ClassDeclaration_0 = null;
335
336 EObject this_EnumDeclaration_1 = null;
337
338 EObject this_PredicateDefinition_2 = null;
339
340 EObject this_Assertion_3 = null;
341
342 EObject this_ScopeDeclaration_4 = null;
343
344
345
346 enterRule();
347
348 try {
349 // InternalProblem.g:145:2: ( (this_ClassDeclaration_0= ruleClassDeclaration | this_EnumDeclaration_1= ruleEnumDeclaration | this_PredicateDefinition_2= rulePredicateDefinition | this_Assertion_3= ruleAssertion | this_ScopeDeclaration_4= ruleScopeDeclaration ) )
350 // InternalProblem.g:146:2: (this_ClassDeclaration_0= ruleClassDeclaration | this_EnumDeclaration_1= ruleEnumDeclaration | this_PredicateDefinition_2= rulePredicateDefinition | this_Assertion_3= ruleAssertion | this_ScopeDeclaration_4= ruleScopeDeclaration )
351 {
352 // InternalProblem.g:146:2: (this_ClassDeclaration_0= ruleClassDeclaration | this_EnumDeclaration_1= ruleEnumDeclaration | this_PredicateDefinition_2= rulePredicateDefinition | this_Assertion_3= ruleAssertion | this_ScopeDeclaration_4= ruleScopeDeclaration )
353 int alt3=5;
354 switch ( input.LA(1) ) {
355 case 14:
356 case 15:
357 {
358 alt3=1;
359 }
360 break;
361 case 21:
362 {
363 alt3=2;
364 }
365 break;
366 case 27:
367 case 28:
368 {
369 alt3=3;
370 }
371 break;
372 case RULE_ID:
373 case RULE_QUOTED_ID:
374 case 32:
375 case 40:
376 case 41:
377 case 43:
378 {
379 alt3=4;
380 }
381 break;
382 case 35:
383 {
384 alt3=5;
385 }
386 break;
387 default:
388 NoViableAltException nvae =
389 new NoViableAltException("", 3, 0, input);
390
391 throw nvae;
392 }
393
394 switch (alt3) {
395 case 1 :
396 // InternalProblem.g:147:3: this_ClassDeclaration_0= ruleClassDeclaration
397 {
398
399 newCompositeNode(grammarAccess.getStatementAccess().getClassDeclarationParserRuleCall_0());
400
401 pushFollow(FOLLOW_2);
402 this_ClassDeclaration_0=ruleClassDeclaration();
403
404 state._fsp--;
405
406
407 current = this_ClassDeclaration_0;
408 afterParserOrEnumRuleCall();
409
410
411 }
412 break;
413 case 2 :
414 // InternalProblem.g:156:3: this_EnumDeclaration_1= ruleEnumDeclaration
415 {
416
417 newCompositeNode(grammarAccess.getStatementAccess().getEnumDeclarationParserRuleCall_1());
418
419 pushFollow(FOLLOW_2);
420 this_EnumDeclaration_1=ruleEnumDeclaration();
421
422 state._fsp--;
423
424
425 current = this_EnumDeclaration_1;
426 afterParserOrEnumRuleCall();
427
428
429 }
430 break;
431 case 3 :
432 // InternalProblem.g:165:3: this_PredicateDefinition_2= rulePredicateDefinition
433 {
434
435 newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_2());
436
437 pushFollow(FOLLOW_2);
438 this_PredicateDefinition_2=rulePredicateDefinition();
439
440 state._fsp--;
441
442
443 current = this_PredicateDefinition_2;
444 afterParserOrEnumRuleCall();
445
446
447 }
448 break;
449 case 4 :
450 // InternalProblem.g:174:3: this_Assertion_3= ruleAssertion
451 {
452
453 newCompositeNode(grammarAccess.getStatementAccess().getAssertionParserRuleCall_3());
454
455 pushFollow(FOLLOW_2);
456 this_Assertion_3=ruleAssertion();
457
458 state._fsp--;
459
460
461 current = this_Assertion_3;
462 afterParserOrEnumRuleCall();
463
464
465 }
466 break;
467 case 5 :
468 // InternalProblem.g:183:3: this_ScopeDeclaration_4= ruleScopeDeclaration
469 {
470
471 newCompositeNode(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_4());
472
473 pushFollow(FOLLOW_2);
474 this_ScopeDeclaration_4=ruleScopeDeclaration();
475
476 state._fsp--;
477
478
479 current = this_ScopeDeclaration_4;
480 afterParserOrEnumRuleCall();
481
482
483 }
484 break;
485
486 }
487
488
489 }
490
491
492 leaveRule();
493
494 }
495
496 catch (RecognitionException re) {
497 recover(input,re);
498 appendSkippedTokens();
499 }
500 finally {
501 }
502 return current;
503 }
504 // $ANTLR end "ruleStatement"
505
506
507 // $ANTLR start "entryRuleClassDeclaration"
508 // InternalProblem.g:195:1: entryRuleClassDeclaration returns [EObject current=null] : iv_ruleClassDeclaration= ruleClassDeclaration EOF ;
509 public final EObject entryRuleClassDeclaration() throws RecognitionException {
510 EObject current = null;
511
512 EObject iv_ruleClassDeclaration = null;
513
514
515 try {
516 // InternalProblem.g:195:57: (iv_ruleClassDeclaration= ruleClassDeclaration EOF )
517 // InternalProblem.g:196:2: iv_ruleClassDeclaration= ruleClassDeclaration EOF
518 {
519 newCompositeNode(grammarAccess.getClassDeclarationRule());
520 pushFollow(FOLLOW_1);
521 iv_ruleClassDeclaration=ruleClassDeclaration();
522
523 state._fsp--;
524
525 current =iv_ruleClassDeclaration;
526 match(input,EOF,FOLLOW_2);
527
528 }
529
530 }
531
532 catch (RecognitionException re) {
533 recover(input,re);
534 appendSkippedTokens();
535 }
536 finally {
537 }
538 return current;
539 }
540 // $ANTLR end "entryRuleClassDeclaration"
541
542
543 // $ANTLR start "ruleClassDeclaration"
544 // InternalProblem.g:202:1: ruleClassDeclaration returns [EObject current=null] : ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= ruleIdentifier ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )? ( (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) | otherlv_11= '.' ) ) ;
545 public final EObject ruleClassDeclaration() throws RecognitionException {
546 EObject current = null;
547
548 Token lv_abstract_0_0=null;
549 Token otherlv_1=null;
550 Token otherlv_3=null;
551 Token otherlv_5=null;
552 Token otherlv_7=null;
553 Token otherlv_9=null;
554 Token otherlv_10=null;
555 Token otherlv_11=null;
556 AntlrDatatypeRuleToken lv_name_2_0 = null;
557
558 EObject lv_referenceDeclarations_8_0 = null;
559
560
561
562 enterRule();
563
564 try {
565 // InternalProblem.g:208:2: ( ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= ruleIdentifier ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )? ( (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) | otherlv_11= '.' ) ) )
566 // InternalProblem.g:209:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= ruleIdentifier ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )? ( (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) | otherlv_11= '.' ) )
567 {
568 // InternalProblem.g:209:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= ruleIdentifier ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )? ( (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) | otherlv_11= '.' ) )
569 // InternalProblem.g:210:3: ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= ruleIdentifier ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )? ( (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) | otherlv_11= '.' )
570 {
571 // InternalProblem.g:210:3: ( (lv_abstract_0_0= 'abstract' ) )?
572 int alt4=2;
573 int LA4_0 = input.LA(1);
574
575 if ( (LA4_0==14) ) {
576 alt4=1;
577 }
578 switch (alt4) {
579 case 1 :
580 // InternalProblem.g:211:4: (lv_abstract_0_0= 'abstract' )
581 {
582 // InternalProblem.g:211:4: (lv_abstract_0_0= 'abstract' )
583 // InternalProblem.g:212:5: lv_abstract_0_0= 'abstract'
584 {
585 lv_abstract_0_0=(Token)match(input,14,FOLLOW_6);
586
587 newLeafNode(lv_abstract_0_0, grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0());
588
589
590 if (current==null) {
591 current = createModelElement(grammarAccess.getClassDeclarationRule());
592 }
593 setWithLastConsumed(current, "abstract", lv_abstract_0_0 != null, "abstract");
594
595
596 }
597
598
599 }
600 break;
601
602 }
603
604 otherlv_1=(Token)match(input,15,FOLLOW_3);
605
606 newLeafNode(otherlv_1, grammarAccess.getClassDeclarationAccess().getClassKeyword_1());
607
608 // InternalProblem.g:228:3: ( (lv_name_2_0= ruleIdentifier ) )
609 // InternalProblem.g:229:4: (lv_name_2_0= ruleIdentifier )
610 {
611 // InternalProblem.g:229:4: (lv_name_2_0= ruleIdentifier )
612 // InternalProblem.g:230:5: lv_name_2_0= ruleIdentifier
613 {
614
615 newCompositeNode(grammarAccess.getClassDeclarationAccess().getNameIdentifierParserRuleCall_2_0());
616
617 pushFollow(FOLLOW_7);
618 lv_name_2_0=ruleIdentifier();
619
620 state._fsp--;
621
622
623 if (current==null) {
624 current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
625 }
626 set(
627 current,
628 "name",
629 lv_name_2_0,
630 "org.eclipse.viatra.solver.language.Problem.Identifier");
631 afterParserOrEnumRuleCall();
632
633
634 }
635
636
637 }
638
639 // InternalProblem.g:247:3: (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )?
640 int alt6=2;
641 int LA6_0 = input.LA(1);
642
643 if ( (LA6_0==16) ) {
644 alt6=1;
645 }
646 switch (alt6) {
647 case 1 :
648 // InternalProblem.g:248:4: otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )*
649 {
650 otherlv_3=(Token)match(input,16,FOLLOW_8);
651
652 newLeafNode(otherlv_3, grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0());
653
654 // InternalProblem.g:252:4: ( ( ruleQualifiedName ) )
655 // InternalProblem.g:253:5: ( ruleQualifiedName )
656 {
657 // InternalProblem.g:253:5: ( ruleQualifiedName )
658 // InternalProblem.g:254:6: ruleQualifiedName
659 {
660
661 if (current==null) {
662 current = createModelElement(grammarAccess.getClassDeclarationRule());
663 }
664
665
666 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationCrossReference_3_1_0());
667
668 pushFollow(FOLLOW_9);
669 ruleQualifiedName();
670
671 state._fsp--;
672
673
674 afterParserOrEnumRuleCall();
675
676
677 }
678
679
680 }
681
682 // InternalProblem.g:268:4: (otherlv_5= ',' ( ( ruleQualifiedName ) ) )*
683 loop5:
684 do {
685 int alt5=2;
686 int LA5_0 = input.LA(1);
687
688 if ( (LA5_0==17) ) {
689 alt5=1;
690 }
691
692
693 switch (alt5) {
694 case 1 :
695 // InternalProblem.g:269:5: otherlv_5= ',' ( ( ruleQualifiedName ) )
696 {
697 otherlv_5=(Token)match(input,17,FOLLOW_8);
698
699 newLeafNode(otherlv_5, grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_2_0());
700
701 // InternalProblem.g:273:5: ( ( ruleQualifiedName ) )
702 // InternalProblem.g:274:6: ( ruleQualifiedName )
703 {
704 // InternalProblem.g:274:6: ( ruleQualifiedName )
705 // InternalProblem.g:275:7: ruleQualifiedName
706 {
707
708 if (current==null) {
709 current = createModelElement(grammarAccess.getClassDeclarationRule());
710 }
711
712
713 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationCrossReference_3_2_1_0());
714
715 pushFollow(FOLLOW_9);
716 ruleQualifiedName();
717
718 state._fsp--;
719
720
721 afterParserOrEnumRuleCall();
722
723
724 }
725
726
727 }
728
729
730 }
731 break;
732
733 default :
734 break loop5;
735 }
736 } while (true);
737
738
739 }
740 break;
741
742 }
743
744 // InternalProblem.g:291:3: ( (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) | otherlv_11= '.' )
745 int alt9=2;
746 int LA9_0 = input.LA(1);
747
748 if ( (LA9_0==18) ) {
749 alt9=1;
750 }
751 else if ( (LA9_0==13) ) {
752 alt9=2;
753 }
754 else {
755 NoViableAltException nvae =
756 new NoViableAltException("", 9, 0, input);
757
758 throw nvae;
759 }
760 switch (alt9) {
761 case 1 :
762 // InternalProblem.g:292:4: (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' )
763 {
764 // InternalProblem.g:292:4: (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' )
765 // InternalProblem.g:293:5: otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}'
766 {
767 otherlv_7=(Token)match(input,18,FOLLOW_10);
768
769 newLeafNode(otherlv_7, grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0());
770
771 // InternalProblem.g:297:5: ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )*
772 loop8:
773 do {
774 int alt8=2;
775 int LA8_0 = input.LA(1);
776
777 if ( (LA8_0==RULE_ID||LA8_0==RULE_QUOTED_ID||(LA8_0>=22 && LA8_0<=23)||(LA8_0>=40 && LA8_0<=41)) ) {
778 alt8=1;
779 }
780
781
782 switch (alt8) {
783 case 1 :
784 // InternalProblem.g:298:6: ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )?
785 {
786 // InternalProblem.g:298:6: ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) )
787 // InternalProblem.g:299:7: (lv_referenceDeclarations_8_0= ruleReferenceDeclaration )
788 {
789 // InternalProblem.g:299:7: (lv_referenceDeclarations_8_0= ruleReferenceDeclaration )
790 // InternalProblem.g:300:8: lv_referenceDeclarations_8_0= ruleReferenceDeclaration
791 {
792
793 newCompositeNode(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_4_0_1_0_0());
794
795 pushFollow(FOLLOW_11);
796 lv_referenceDeclarations_8_0=ruleReferenceDeclaration();
797
798 state._fsp--;
799
800
801 if (current==null) {
802 current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
803 }
804 add(
805 current,
806 "referenceDeclarations",
807 lv_referenceDeclarations_8_0,
808 "org.eclipse.viatra.solver.language.Problem.ReferenceDeclaration");
809 afterParserOrEnumRuleCall();
810
811
812 }
813
814
815 }
816
817 // InternalProblem.g:317:6: (otherlv_9= ';' )?
818 int alt7=2;
819 int LA7_0 = input.LA(1);
820
821 if ( (LA7_0==19) ) {
822 alt7=1;
823 }
824 switch (alt7) {
825 case 1 :
826 // InternalProblem.g:318:7: otherlv_9= ';'
827 {
828 otherlv_9=(Token)match(input,19,FOLLOW_10);
829
830 newLeafNode(otherlv_9, grammarAccess.getClassDeclarationAccess().getSemicolonKeyword_4_0_1_1());
831
832
833 }
834 break;
835
836 }
837
838
839 }
840 break;
841
842 default :
843 break loop8;
844 }
845 } while (true);
846
847 otherlv_10=(Token)match(input,20,FOLLOW_2);
848
849 newLeafNode(otherlv_10, grammarAccess.getClassDeclarationAccess().getRightCurlyBracketKeyword_4_0_2());
850
851
852 }
853
854
855 }
856 break;
857 case 2 :
858 // InternalProblem.g:330:4: otherlv_11= '.'
859 {
860 otherlv_11=(Token)match(input,13,FOLLOW_2);
861
862 newLeafNode(otherlv_11, grammarAccess.getClassDeclarationAccess().getFullStopKeyword_4_1());
863
864
865 }
866 break;
867
868 }
869
870
871 }
872
873
874 }
875
876
877 leaveRule();
878
879 }
880
881 catch (RecognitionException re) {
882 recover(input,re);
883 appendSkippedTokens();
884 }
885 finally {
886 }
887 return current;
888 }
889 // $ANTLR end "ruleClassDeclaration"
890
891
892 // $ANTLR start "entryRuleEnumDeclaration"
893 // InternalProblem.g:339:1: entryRuleEnumDeclaration returns [EObject current=null] : iv_ruleEnumDeclaration= ruleEnumDeclaration EOF ;
894 public final EObject entryRuleEnumDeclaration() throws RecognitionException {
895 EObject current = null;
896
897 EObject iv_ruleEnumDeclaration = null;
898
899
900 try {
901 // InternalProblem.g:339:56: (iv_ruleEnumDeclaration= ruleEnumDeclaration EOF )
902 // InternalProblem.g:340:2: iv_ruleEnumDeclaration= ruleEnumDeclaration EOF
903 {
904 newCompositeNode(grammarAccess.getEnumDeclarationRule());
905 pushFollow(FOLLOW_1);
906 iv_ruleEnumDeclaration=ruleEnumDeclaration();
907
908 state._fsp--;
909
910 current =iv_ruleEnumDeclaration;
911 match(input,EOF,FOLLOW_2);
912
913 }
914
915 }
916
917 catch (RecognitionException re) {
918 recover(input,re);
919 appendSkippedTokens();
920 }
921 finally {
922 }
923 return current;
924 }
925 // $ANTLR end "entryRuleEnumDeclaration"
926
927
928 // $ANTLR start "ruleEnumDeclaration"
929 // InternalProblem.g:346:1: ruleEnumDeclaration returns [EObject current=null] : (otherlv_0= 'enum' ( (lv_name_1_0= ruleIdentifier ) ) ( (otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}' ) | otherlv_9= '.' ) ) ;
930 public final EObject ruleEnumDeclaration() throws RecognitionException {
931 EObject current = null;
932
933 Token otherlv_0=null;
934 Token otherlv_2=null;
935 Token otherlv_4=null;
936 Token otherlv_6=null;
937 Token otherlv_7=null;
938 Token otherlv_8=null;
939 Token otherlv_9=null;
940 AntlrDatatypeRuleToken lv_name_1_0 = null;
941
942 EObject lv_literals_3_0 = null;
943
944 EObject lv_literals_5_0 = null;
945
946
947
948 enterRule();
949
950 try {
951 // InternalProblem.g:352:2: ( (otherlv_0= 'enum' ( (lv_name_1_0= ruleIdentifier ) ) ( (otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}' ) | otherlv_9= '.' ) ) )
952 // InternalProblem.g:353:2: (otherlv_0= 'enum' ( (lv_name_1_0= ruleIdentifier ) ) ( (otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}' ) | otherlv_9= '.' ) )
953 {
954 // InternalProblem.g:353:2: (otherlv_0= 'enum' ( (lv_name_1_0= ruleIdentifier ) ) ( (otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}' ) | otherlv_9= '.' ) )
955 // InternalProblem.g:354:3: otherlv_0= 'enum' ( (lv_name_1_0= ruleIdentifier ) ) ( (otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}' ) | otherlv_9= '.' )
956 {
957 otherlv_0=(Token)match(input,21,FOLLOW_3);
958
959 newLeafNode(otherlv_0, grammarAccess.getEnumDeclarationAccess().getEnumKeyword_0());
960
961 // InternalProblem.g:358:3: ( (lv_name_1_0= ruleIdentifier ) )
962 // InternalProblem.g:359:4: (lv_name_1_0= ruleIdentifier )
963 {
964 // InternalProblem.g:359:4: (lv_name_1_0= ruleIdentifier )
965 // InternalProblem.g:360:5: lv_name_1_0= ruleIdentifier
966 {
967
968 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getNameIdentifierParserRuleCall_1_0());
969
970 pushFollow(FOLLOW_12);
971 lv_name_1_0=ruleIdentifier();
972
973 state._fsp--;
974
975
976 if (current==null) {
977 current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
978 }
979 set(
980 current,
981 "name",
982 lv_name_1_0,
983 "org.eclipse.viatra.solver.language.Problem.Identifier");
984 afterParserOrEnumRuleCall();
985
986
987 }
988
989
990 }
991
992 // InternalProblem.g:377:3: ( (otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}' ) | otherlv_9= '.' )
993 int alt13=2;
994 int LA13_0 = input.LA(1);
995
996 if ( (LA13_0==18) ) {
997 alt13=1;
998 }
999 else if ( (LA13_0==13) ) {
1000 alt13=2;
1001 }
1002 else {
1003 NoViableAltException nvae =
1004 new NoViableAltException("", 13, 0, input);
1005
1006 throw nvae;
1007 }
1008 switch (alt13) {
1009 case 1 :
1010 // InternalProblem.g:378:4: (otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}' )
1011 {
1012 // InternalProblem.g:378:4: (otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}' )
1013 // InternalProblem.g:379:5: otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}'
1014 {
1015 otherlv_2=(Token)match(input,18,FOLLOW_13);
1016
1017 newLeafNode(otherlv_2, grammarAccess.getEnumDeclarationAccess().getLeftCurlyBracketKeyword_2_0_0());
1018
1019 // InternalProblem.g:383:5: ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )?
1020 int alt12=2;
1021 int LA12_0 = input.LA(1);
1022
1023 if ( (LA12_0==RULE_ID||LA12_0==RULE_QUOTED_ID||(LA12_0>=40 && LA12_0<=41)) ) {
1024 alt12=1;
1025 }
1026 switch (alt12) {
1027 case 1 :
1028 // InternalProblem.g:384:6: ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )?
1029 {
1030 // InternalProblem.g:384:6: ( (lv_literals_3_0= ruleEnumLiteral ) )
1031 // InternalProblem.g:385:7: (lv_literals_3_0= ruleEnumLiteral )
1032 {
1033 // InternalProblem.g:385:7: (lv_literals_3_0= ruleEnumLiteral )
1034 // InternalProblem.g:386:8: lv_literals_3_0= ruleEnumLiteral
1035 {
1036
1037 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_0_0());
1038
1039 pushFollow(FOLLOW_14);
1040 lv_literals_3_0=ruleEnumLiteral();
1041
1042 state._fsp--;
1043
1044
1045 if (current==null) {
1046 current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
1047 }
1048 add(
1049 current,
1050 "literals",
1051 lv_literals_3_0,
1052 "org.eclipse.viatra.solver.language.Problem.EnumLiteral");
1053 afterParserOrEnumRuleCall();
1054
1055
1056 }
1057
1058
1059 }
1060
1061 // InternalProblem.g:403:6: (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )*
1062 loop10:
1063 do {
1064 int alt10=2;
1065 int LA10_0 = input.LA(1);
1066
1067 if ( (LA10_0==17) ) {
1068 int LA10_1 = input.LA(2);
1069
1070 if ( (LA10_1==RULE_ID||LA10_1==RULE_QUOTED_ID||(LA10_1>=40 && LA10_1<=41)) ) {
1071 alt10=1;
1072 }
1073
1074
1075 }
1076
1077
1078 switch (alt10) {
1079 case 1 :
1080 // InternalProblem.g:404:7: otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) )
1081 {
1082 otherlv_4=(Token)match(input,17,FOLLOW_8);
1083
1084 newLeafNode(otherlv_4, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_1_0());
1085
1086 // InternalProblem.g:408:7: ( (lv_literals_5_0= ruleEnumLiteral ) )
1087 // InternalProblem.g:409:8: (lv_literals_5_0= ruleEnumLiteral )
1088 {
1089 // InternalProblem.g:409:8: (lv_literals_5_0= ruleEnumLiteral )
1090 // InternalProblem.g:410:9: lv_literals_5_0= ruleEnumLiteral
1091 {
1092
1093 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0());
1094
1095 pushFollow(FOLLOW_14);
1096 lv_literals_5_0=ruleEnumLiteral();
1097
1098 state._fsp--;
1099
1100
1101 if (current==null) {
1102 current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
1103 }
1104 add(
1105 current,
1106 "literals",
1107 lv_literals_5_0,
1108 "org.eclipse.viatra.solver.language.Problem.EnumLiteral");
1109 afterParserOrEnumRuleCall();
1110
1111
1112 }
1113
1114
1115 }
1116
1117
1118 }
1119 break;
1120
1121 default :
1122 break loop10;
1123 }
1124 } while (true);
1125
1126 // InternalProblem.g:428:6: (otherlv_6= ',' | otherlv_7= ';' )?
1127 int alt11=3;
1128 int LA11_0 = input.LA(1);
1129
1130 if ( (LA11_0==17) ) {
1131 alt11=1;
1132 }
1133 else if ( (LA11_0==19) ) {
1134 alt11=2;
1135 }
1136 switch (alt11) {
1137 case 1 :
1138 // InternalProblem.g:429:7: otherlv_6= ','
1139 {
1140 otherlv_6=(Token)match(input,17,FOLLOW_15);
1141
1142 newLeafNode(otherlv_6, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_2_0());
1143
1144
1145 }
1146 break;
1147 case 2 :
1148 // InternalProblem.g:434:7: otherlv_7= ';'
1149 {
1150 otherlv_7=(Token)match(input,19,FOLLOW_15);
1151
1152 newLeafNode(otherlv_7, grammarAccess.getEnumDeclarationAccess().getSemicolonKeyword_2_0_1_2_1());
1153
1154
1155 }
1156 break;
1157
1158 }
1159
1160
1161 }
1162 break;
1163
1164 }
1165
1166 otherlv_8=(Token)match(input,20,FOLLOW_2);
1167
1168 newLeafNode(otherlv_8, grammarAccess.getEnumDeclarationAccess().getRightCurlyBracketKeyword_2_0_2());
1169
1170
1171 }
1172
1173
1174 }
1175 break;
1176 case 2 :
1177 // InternalProblem.g:446:4: otherlv_9= '.'
1178 {
1179 otherlv_9=(Token)match(input,13,FOLLOW_2);
1180
1181 newLeafNode(otherlv_9, grammarAccess.getEnumDeclarationAccess().getFullStopKeyword_2_1());
1182
1183
1184 }
1185 break;
1186
1187 }
1188
1189
1190 }
1191
1192
1193 }
1194
1195
1196 leaveRule();
1197
1198 }
1199
1200 catch (RecognitionException re) {
1201 recover(input,re);
1202 appendSkippedTokens();
1203 }
1204 finally {
1205 }
1206 return current;
1207 }
1208 // $ANTLR end "ruleEnumDeclaration"
1209
1210
1211 // $ANTLR start "entryRuleEnumLiteral"
1212 // InternalProblem.g:455:1: entryRuleEnumLiteral returns [EObject current=null] : iv_ruleEnumLiteral= ruleEnumLiteral EOF ;
1213 public final EObject entryRuleEnumLiteral() throws RecognitionException {
1214 EObject current = null;
1215
1216 EObject iv_ruleEnumLiteral = null;
1217
1218
1219 try {
1220 // InternalProblem.g:455:52: (iv_ruleEnumLiteral= ruleEnumLiteral EOF )
1221 // InternalProblem.g:456:2: iv_ruleEnumLiteral= ruleEnumLiteral EOF
1222 {
1223 newCompositeNode(grammarAccess.getEnumLiteralRule());
1224 pushFollow(FOLLOW_1);
1225 iv_ruleEnumLiteral=ruleEnumLiteral();
1226
1227 state._fsp--;
1228
1229 current =iv_ruleEnumLiteral;
1230 match(input,EOF,FOLLOW_2);
1231
1232 }
1233
1234 }
1235
1236 catch (RecognitionException re) {
1237 recover(input,re);
1238 appendSkippedTokens();
1239 }
1240 finally {
1241 }
1242 return current;
1243 }
1244 // $ANTLR end "entryRuleEnumLiteral"
1245
1246
1247 // $ANTLR start "ruleEnumLiteral"
1248 // InternalProblem.g:462:1: ruleEnumLiteral returns [EObject current=null] : ( (lv_name_0_0= ruleQuotedOrUnquotedId ) ) ;
1249 public final EObject ruleEnumLiteral() throws RecognitionException {
1250 EObject current = null;
1251
1252 AntlrDatatypeRuleToken lv_name_0_0 = null;
1253
1254
1255
1256 enterRule();
1257
1258 try {
1259 // InternalProblem.g:468:2: ( ( (lv_name_0_0= ruleQuotedOrUnquotedId ) ) )
1260 // InternalProblem.g:469:2: ( (lv_name_0_0= ruleQuotedOrUnquotedId ) )
1261 {
1262 // InternalProblem.g:469:2: ( (lv_name_0_0= ruleQuotedOrUnquotedId ) )
1263 // InternalProblem.g:470:3: (lv_name_0_0= ruleQuotedOrUnquotedId )
1264 {
1265 // InternalProblem.g:470:3: (lv_name_0_0= ruleQuotedOrUnquotedId )
1266 // InternalProblem.g:471:4: lv_name_0_0= ruleQuotedOrUnquotedId
1267 {
1268
1269 newCompositeNode(grammarAccess.getEnumLiteralAccess().getNameQuotedOrUnquotedIdParserRuleCall_0());
1270
1271 pushFollow(FOLLOW_2);
1272 lv_name_0_0=ruleQuotedOrUnquotedId();
1273
1274 state._fsp--;
1275
1276
1277 if (current==null) {
1278 current = createModelElementForParent(grammarAccess.getEnumLiteralRule());
1279 }
1280 set(
1281 current,
1282 "name",
1283 lv_name_0_0,
1284 "org.eclipse.viatra.solver.language.Problem.QuotedOrUnquotedId");
1285 afterParserOrEnumRuleCall();
1286
1287
1288 }
1289
1290
1291 }
1292
1293
1294 }
1295
1296
1297 leaveRule();
1298
1299 }
1300
1301 catch (RecognitionException re) {
1302 recover(input,re);
1303 appendSkippedTokens();
1304 }
1305 finally {
1306 }
1307 return current;
1308 }
1309 // $ANTLR end "ruleEnumLiteral"
1310
1311
1312 // $ANTLR start "entryRuleReferenceDeclaration"
1313 // InternalProblem.g:491:1: entryRuleReferenceDeclaration returns [EObject current=null] : iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF ;
1314 public final EObject entryRuleReferenceDeclaration() throws RecognitionException {
1315 EObject current = null;
1316
1317 EObject iv_ruleReferenceDeclaration = null;
1318
1319
1320 try {
1321 // InternalProblem.g:491:61: (iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF )
1322 // InternalProblem.g:492:2: iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF
1323 {
1324 newCompositeNode(grammarAccess.getReferenceDeclarationRule());
1325 pushFollow(FOLLOW_1);
1326 iv_ruleReferenceDeclaration=ruleReferenceDeclaration();
1327
1328 state._fsp--;
1329
1330 current =iv_ruleReferenceDeclaration;
1331 match(input,EOF,FOLLOW_2);
1332
1333 }
1334
1335 }
1336
1337 catch (RecognitionException re) {
1338 recover(input,re);
1339 appendSkippedTokens();
1340 }
1341 finally {
1342 }
1343 return current;
1344 }
1345 // $ANTLR end "entryRuleReferenceDeclaration"
1346
1347
1348 // $ANTLR start "ruleReferenceDeclaration"
1349 // InternalProblem.g:498:1: ruleReferenceDeclaration returns [EObject current=null] : ( ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' )? ( ( ruleQualifiedName ) ) (otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' )? ( (lv_name_6_0= ruleIdentifier ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )? ) ;
1350 public final EObject ruleReferenceDeclaration() throws RecognitionException {
1351 EObject current = null;
1352
1353 Token lv_containment_0_0=null;
1354 Token otherlv_1=null;
1355 Token otherlv_3=null;
1356 Token otherlv_5=null;
1357 Token otherlv_7=null;
1358 EObject lv_multiplicity_4_0 = null;
1359
1360 AntlrDatatypeRuleToken lv_name_6_0 = null;
1361
1362
1363
1364 enterRule();
1365
1366 try {
1367 // InternalProblem.g:504:2: ( ( ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' )? ( ( ruleQualifiedName ) ) (otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' )? ( (lv_name_6_0= ruleIdentifier ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )? ) )
1368 // InternalProblem.g:505:2: ( ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' )? ( ( ruleQualifiedName ) ) (otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' )? ( (lv_name_6_0= ruleIdentifier ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )? )
1369 {
1370 // InternalProblem.g:505:2: ( ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' )? ( ( ruleQualifiedName ) ) (otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' )? ( (lv_name_6_0= ruleIdentifier ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )? )
1371 // InternalProblem.g:506:3: ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' )? ( ( ruleQualifiedName ) ) (otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' )? ( (lv_name_6_0= ruleIdentifier ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )?
1372 {
1373 // InternalProblem.g:506:3: ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' )?
1374 int alt14=3;
1375 int LA14_0 = input.LA(1);
1376
1377 if ( (LA14_0==22) ) {
1378 alt14=1;
1379 }
1380 else if ( (LA14_0==23) ) {
1381 alt14=2;
1382 }
1383 switch (alt14) {
1384 case 1 :
1385 // InternalProblem.g:507:4: ( (lv_containment_0_0= 'contains' ) )
1386 {
1387 // InternalProblem.g:507:4: ( (lv_containment_0_0= 'contains' ) )
1388 // InternalProblem.g:508:5: (lv_containment_0_0= 'contains' )
1389 {
1390 // InternalProblem.g:508:5: (lv_containment_0_0= 'contains' )
1391 // InternalProblem.g:509:6: lv_containment_0_0= 'contains'
1392 {
1393 lv_containment_0_0=(Token)match(input,22,FOLLOW_8);
1394
1395 newLeafNode(lv_containment_0_0, grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0());
1396
1397
1398 if (current==null) {
1399 current = createModelElement(grammarAccess.getReferenceDeclarationRule());
1400 }
1401 setWithLastConsumed(current, "containment", lv_containment_0_0 != null, "contains");
1402
1403
1404 }
1405
1406
1407 }
1408
1409
1410 }
1411 break;
1412 case 2 :
1413 // InternalProblem.g:522:4: otherlv_1= 'refers'
1414 {
1415 otherlv_1=(Token)match(input,23,FOLLOW_8);
1416
1417 newLeafNode(otherlv_1, grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1());
1418
1419
1420 }
1421 break;
1422
1423 }
1424
1425 // InternalProblem.g:527:3: ( ( ruleQualifiedName ) )
1426 // InternalProblem.g:528:4: ( ruleQualifiedName )
1427 {
1428 // InternalProblem.g:528:4: ( ruleQualifiedName )
1429 // InternalProblem.g:529:5: ruleQualifiedName
1430 {
1431
1432 if (current==null) {
1433 current = createModelElement(grammarAccess.getReferenceDeclarationRule());
1434 }
1435
1436
1437 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeRelationCrossReference_1_0());
1438
1439 pushFollow(FOLLOW_16);
1440 ruleQualifiedName();
1441
1442 state._fsp--;
1443
1444
1445 afterParserOrEnumRuleCall();
1446
1447
1448 }
1449
1450
1451 }
1452
1453 // InternalProblem.g:543:3: (otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' )?
1454 int alt15=2;
1455 int LA15_0 = input.LA(1);
1456
1457 if ( (LA15_0==24) ) {
1458 alt15=1;
1459 }
1460 switch (alt15) {
1461 case 1 :
1462 // InternalProblem.g:544:4: otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']'
1463 {
1464 otherlv_3=(Token)match(input,24,FOLLOW_17);
1465
1466 newLeafNode(otherlv_3, grammarAccess.getReferenceDeclarationAccess().getLeftSquareBracketKeyword_2_0());
1467
1468 // InternalProblem.g:548:4: ( (lv_multiplicity_4_0= ruleMultiplicity ) )
1469 // InternalProblem.g:549:5: (lv_multiplicity_4_0= ruleMultiplicity )
1470 {
1471 // InternalProblem.g:549:5: (lv_multiplicity_4_0= ruleMultiplicity )
1472 // InternalProblem.g:550:6: lv_multiplicity_4_0= ruleMultiplicity
1473 {
1474
1475 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getMultiplicityMultiplicityParserRuleCall_2_1_0());
1476
1477 pushFollow(FOLLOW_18);
1478 lv_multiplicity_4_0=ruleMultiplicity();
1479
1480 state._fsp--;
1481
1482
1483 if (current==null) {
1484 current = createModelElementForParent(grammarAccess.getReferenceDeclarationRule());
1485 }
1486 set(
1487 current,
1488 "multiplicity",
1489 lv_multiplicity_4_0,
1490 "org.eclipse.viatra.solver.language.Problem.Multiplicity");
1491 afterParserOrEnumRuleCall();
1492
1493
1494 }
1495
1496
1497 }
1498
1499 otherlv_5=(Token)match(input,25,FOLLOW_3);
1500
1501 newLeafNode(otherlv_5, grammarAccess.getReferenceDeclarationAccess().getRightSquareBracketKeyword_2_2());
1502
1503
1504 }
1505 break;
1506
1507 }
1508
1509 // InternalProblem.g:572:3: ( (lv_name_6_0= ruleIdentifier ) )
1510 // InternalProblem.g:573:4: (lv_name_6_0= ruleIdentifier )
1511 {
1512 // InternalProblem.g:573:4: (lv_name_6_0= ruleIdentifier )
1513 // InternalProblem.g:574:5: lv_name_6_0= ruleIdentifier
1514 {
1515
1516 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getNameIdentifierParserRuleCall_3_0());
1517
1518 pushFollow(FOLLOW_19);
1519 lv_name_6_0=ruleIdentifier();
1520
1521 state._fsp--;
1522
1523
1524 if (current==null) {
1525 current = createModelElementForParent(grammarAccess.getReferenceDeclarationRule());
1526 }
1527 set(
1528 current,
1529 "name",
1530 lv_name_6_0,
1531 "org.eclipse.viatra.solver.language.Problem.Identifier");
1532 afterParserOrEnumRuleCall();
1533
1534
1535 }
1536
1537
1538 }
1539
1540 // InternalProblem.g:591:3: (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )?
1541 int alt16=2;
1542 int LA16_0 = input.LA(1);
1543
1544 if ( (LA16_0==26) ) {
1545 alt16=1;
1546 }
1547 switch (alt16) {
1548 case 1 :
1549 // InternalProblem.g:592:4: otherlv_7= 'opposite' ( ( ruleQualifiedName ) )
1550 {
1551 otherlv_7=(Token)match(input,26,FOLLOW_8);
1552
1553 newLeafNode(otherlv_7, grammarAccess.getReferenceDeclarationAccess().getOppositeKeyword_4_0());
1554
1555 // InternalProblem.g:596:4: ( ( ruleQualifiedName ) )
1556 // InternalProblem.g:597:5: ( ruleQualifiedName )
1557 {
1558 // InternalProblem.g:597:5: ( ruleQualifiedName )
1559 // InternalProblem.g:598:6: ruleQualifiedName
1560 {
1561
1562 if (current==null) {
1563 current = createModelElement(grammarAccess.getReferenceDeclarationRule());
1564 }
1565
1566
1567 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationCrossReference_4_1_0());
1568
1569 pushFollow(FOLLOW_2);
1570 ruleQualifiedName();
1571
1572 state._fsp--;
1573
1574
1575 afterParserOrEnumRuleCall();
1576
1577
1578 }
1579
1580
1581 }
1582
1583
1584 }
1585 break;
1586
1587 }
1588
1589
1590 }
1591
1592
1593 }
1594
1595
1596 leaveRule();
1597
1598 }
1599
1600 catch (RecognitionException re) {
1601 recover(input,re);
1602 appendSkippedTokens();
1603 }
1604 finally {
1605 }
1606 return current;
1607 }
1608 // $ANTLR end "ruleReferenceDeclaration"
1609
1610
1611 // $ANTLR start "entryRulePredicateDefinition"
1612 // InternalProblem.g:617:1: entryRulePredicateDefinition returns [EObject current=null] : iv_rulePredicateDefinition= rulePredicateDefinition EOF ;
1613 public final EObject entryRulePredicateDefinition() throws RecognitionException {
1614 EObject current = null;
1615
1616 EObject iv_rulePredicateDefinition = null;
1617
1618
1619 try {
1620 // InternalProblem.g:617:60: (iv_rulePredicateDefinition= rulePredicateDefinition EOF )
1621 // InternalProblem.g:618:2: iv_rulePredicateDefinition= rulePredicateDefinition EOF
1622 {
1623 newCompositeNode(grammarAccess.getPredicateDefinitionRule());
1624 pushFollow(FOLLOW_1);
1625 iv_rulePredicateDefinition=rulePredicateDefinition();
1626
1627 state._fsp--;
1628
1629 current =iv_rulePredicateDefinition;
1630 match(input,EOF,FOLLOW_2);
1631
1632 }
1633
1634 }
1635
1636 catch (RecognitionException re) {
1637 recover(input,re);
1638 appendSkippedTokens();
1639 }
1640 finally {
1641 }
1642 return current;
1643 }
1644 // $ANTLR end "entryRulePredicateDefinition"
1645
1646
1647 // $ANTLR start "rulePredicateDefinition"
1648 // InternalProblem.g:624:1: rulePredicateDefinition returns [EObject current=null] : ( ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) ( (lv_name_3_0= ruleIdentifier ) ) otherlv_4= '(' ( ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )* )? otherlv_8= ')' (otherlv_9= ':-' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )* )? otherlv_13= '.' ) ;
1649 public final EObject rulePredicateDefinition() throws RecognitionException {
1650 EObject current = null;
1651
1652 Token lv_error_0_0=null;
1653 Token otherlv_1=null;
1654 Token otherlv_2=null;
1655 Token otherlv_4=null;
1656 Token otherlv_6=null;
1657 Token otherlv_8=null;
1658 Token otherlv_9=null;
1659 Token otherlv_11=null;
1660 Token otherlv_13=null;
1661 AntlrDatatypeRuleToken lv_name_3_0 = null;
1662
1663 EObject lv_parameters_5_0 = null;
1664
1665 EObject lv_parameters_7_0 = null;
1666
1667 EObject lv_bodies_10_0 = null;
1668
1669 EObject lv_bodies_12_0 = null;
1670
1671
1672
1673 enterRule();
1674
1675 try {
1676 // InternalProblem.g:630:2: ( ( ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) ( (lv_name_3_0= ruleIdentifier ) ) otherlv_4= '(' ( ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )* )? otherlv_8= ')' (otherlv_9= ':-' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )* )? otherlv_13= '.' ) )
1677 // InternalProblem.g:631:2: ( ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) ( (lv_name_3_0= ruleIdentifier ) ) otherlv_4= '(' ( ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )* )? otherlv_8= ')' (otherlv_9= ':-' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )* )? otherlv_13= '.' )
1678 {
1679 // InternalProblem.g:631:2: ( ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) ( (lv_name_3_0= ruleIdentifier ) ) otherlv_4= '(' ( ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )* )? otherlv_8= ')' (otherlv_9= ':-' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )* )? otherlv_13= '.' )
1680 // InternalProblem.g:632:3: ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) ( (lv_name_3_0= ruleIdentifier ) ) otherlv_4= '(' ( ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )* )? otherlv_8= ')' (otherlv_9= ':-' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )* )? otherlv_13= '.'
1681 {
1682 // InternalProblem.g:632:3: ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' )
1683 int alt18=2;
1684 int LA18_0 = input.LA(1);
1685
1686 if ( (LA18_0==27) ) {
1687 alt18=1;
1688 }
1689 else if ( (LA18_0==28) ) {
1690 alt18=2;
1691 }
1692 else {
1693 NoViableAltException nvae =
1694 new NoViableAltException("", 18, 0, input);
1695
1696 throw nvae;
1697 }
1698 switch (alt18) {
1699 case 1 :
1700 // InternalProblem.g:633:4: ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? )
1701 {
1702 // InternalProblem.g:633:4: ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? )
1703 // InternalProblem.g:634:5: ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )?
1704 {
1705 // InternalProblem.g:634:5: ( (lv_error_0_0= 'error' ) )
1706 // InternalProblem.g:635:6: (lv_error_0_0= 'error' )
1707 {
1708 // InternalProblem.g:635:6: (lv_error_0_0= 'error' )
1709 // InternalProblem.g:636:7: lv_error_0_0= 'error'
1710 {
1711 lv_error_0_0=(Token)match(input,27,FOLLOW_20);
1712
1713 newLeafNode(lv_error_0_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0());
1714
1715
1716 if (current==null) {
1717 current = createModelElement(grammarAccess.getPredicateDefinitionRule());
1718 }
1719 setWithLastConsumed(current, "error", lv_error_0_0 != null, "error");
1720
1721
1722 }
1723
1724
1725 }
1726
1727 // InternalProblem.g:648:5: (otherlv_1= 'pred' )?
1728 int alt17=2;
1729 int LA17_0 = input.LA(1);
1730
1731 if ( (LA17_0==28) ) {
1732 alt17=1;
1733 }
1734 switch (alt17) {
1735 case 1 :
1736 // InternalProblem.g:649:6: otherlv_1= 'pred'
1737 {
1738 otherlv_1=(Token)match(input,28,FOLLOW_3);
1739
1740 newLeafNode(otherlv_1, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1());
1741
1742
1743 }
1744 break;
1745
1746 }
1747
1748
1749 }
1750
1751
1752 }
1753 break;
1754 case 2 :
1755 // InternalProblem.g:656:4: otherlv_2= 'pred'
1756 {
1757 otherlv_2=(Token)match(input,28,FOLLOW_3);
1758
1759 newLeafNode(otherlv_2, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_1());
1760
1761
1762 }
1763 break;
1764
1765 }
1766
1767 // InternalProblem.g:661:3: ( (lv_name_3_0= ruleIdentifier ) )
1768 // InternalProblem.g:662:4: (lv_name_3_0= ruleIdentifier )
1769 {
1770 // InternalProblem.g:662:4: (lv_name_3_0= ruleIdentifier )
1771 // InternalProblem.g:663:5: lv_name_3_0= ruleIdentifier
1772 {
1773
1774 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getNameIdentifierParserRuleCall_1_0());
1775
1776 pushFollow(FOLLOW_21);
1777 lv_name_3_0=ruleIdentifier();
1778
1779 state._fsp--;
1780
1781
1782 if (current==null) {
1783 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1784 }
1785 set(
1786 current,
1787 "name",
1788 lv_name_3_0,
1789 "org.eclipse.viatra.solver.language.Problem.Identifier");
1790 afterParserOrEnumRuleCall();
1791
1792
1793 }
1794
1795
1796 }
1797
1798 otherlv_4=(Token)match(input,29,FOLLOW_22);
1799
1800 newLeafNode(otherlv_4, grammarAccess.getPredicateDefinitionAccess().getLeftParenthesisKeyword_2());
1801
1802 // InternalProblem.g:684:3: ( ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )* )?
1803 int alt20=2;
1804 int LA20_0 = input.LA(1);
1805
1806 if ( (LA20_0==RULE_ID||LA20_0==RULE_QUOTED_ID||(LA20_0>=40 && LA20_0<=41)) ) {
1807 alt20=1;
1808 }
1809 switch (alt20) {
1810 case 1 :
1811 // InternalProblem.g:685:4: ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )*
1812 {
1813 // InternalProblem.g:685:4: ( (lv_parameters_5_0= ruleParameter ) )
1814 // InternalProblem.g:686:5: (lv_parameters_5_0= ruleParameter )
1815 {
1816 // InternalProblem.g:686:5: (lv_parameters_5_0= ruleParameter )
1817 // InternalProblem.g:687:6: lv_parameters_5_0= ruleParameter
1818 {
1819
1820 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_0_0());
1821
1822 pushFollow(FOLLOW_23);
1823 lv_parameters_5_0=ruleParameter();
1824
1825 state._fsp--;
1826
1827
1828 if (current==null) {
1829 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1830 }
1831 add(
1832 current,
1833 "parameters",
1834 lv_parameters_5_0,
1835 "org.eclipse.viatra.solver.language.Problem.Parameter");
1836 afterParserOrEnumRuleCall();
1837
1838
1839 }
1840
1841
1842 }
1843
1844 // InternalProblem.g:704:4: (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )*
1845 loop19:
1846 do {
1847 int alt19=2;
1848 int LA19_0 = input.LA(1);
1849
1850 if ( (LA19_0==17) ) {
1851 alt19=1;
1852 }
1853
1854
1855 switch (alt19) {
1856 case 1 :
1857 // InternalProblem.g:705:5: otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) )
1858 {
1859 otherlv_6=(Token)match(input,17,FOLLOW_8);
1860
1861 newLeafNode(otherlv_6, grammarAccess.getPredicateDefinitionAccess().getCommaKeyword_3_1_0());
1862
1863 // InternalProblem.g:709:5: ( (lv_parameters_7_0= ruleParameter ) )
1864 // InternalProblem.g:710:6: (lv_parameters_7_0= ruleParameter )
1865 {
1866 // InternalProblem.g:710:6: (lv_parameters_7_0= ruleParameter )
1867 // InternalProblem.g:711:7: lv_parameters_7_0= ruleParameter
1868 {
1869
1870 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_1_1_0());
1871
1872 pushFollow(FOLLOW_23);
1873 lv_parameters_7_0=ruleParameter();
1874
1875 state._fsp--;
1876
1877
1878 if (current==null) {
1879 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1880 }
1881 add(
1882 current,
1883 "parameters",
1884 lv_parameters_7_0,
1885 "org.eclipse.viatra.solver.language.Problem.Parameter");
1886 afterParserOrEnumRuleCall();
1887
1888
1889 }
1890
1891
1892 }
1893
1894
1895 }
1896 break;
1897
1898 default :
1899 break loop19;
1900 }
1901 } while (true);
1902
1903
1904 }
1905 break;
1906
1907 }
1908
1909 otherlv_8=(Token)match(input,30,FOLLOW_24);
1910
1911 newLeafNode(otherlv_8, grammarAccess.getPredicateDefinitionAccess().getRightParenthesisKeyword_4());
1912
1913 // InternalProblem.g:734:3: (otherlv_9= ':-' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )* )?
1914 int alt22=2;
1915 int LA22_0 = input.LA(1);
1916
1917 if ( (LA22_0==31) ) {
1918 alt22=1;
1919 }
1920 switch (alt22) {
1921 case 1 :
1922 // InternalProblem.g:735:4: otherlv_9= ':-' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )*
1923 {
1924 otherlv_9=(Token)match(input,31,FOLLOW_25);
1925
1926 newLeafNode(otherlv_9, grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_5_0());
1927
1928 // InternalProblem.g:739:4: ( (lv_bodies_10_0= ruleConjunction ) )
1929 // InternalProblem.g:740:5: (lv_bodies_10_0= ruleConjunction )
1930 {
1931 // InternalProblem.g:740:5: (lv_bodies_10_0= ruleConjunction )
1932 // InternalProblem.g:741:6: lv_bodies_10_0= ruleConjunction
1933 {
1934
1935 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_1_0());
1936
1937 pushFollow(FOLLOW_26);
1938 lv_bodies_10_0=ruleConjunction();
1939
1940 state._fsp--;
1941
1942
1943 if (current==null) {
1944 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1945 }
1946 add(
1947 current,
1948 "bodies",
1949 lv_bodies_10_0,
1950 "org.eclipse.viatra.solver.language.Problem.Conjunction");
1951 afterParserOrEnumRuleCall();
1952
1953
1954 }
1955
1956
1957 }
1958
1959 // InternalProblem.g:758:4: (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )*
1960 loop21:
1961 do {
1962 int alt21=2;
1963 int LA21_0 = input.LA(1);
1964
1965 if ( (LA21_0==19) ) {
1966 alt21=1;
1967 }
1968
1969
1970 switch (alt21) {
1971 case 1 :
1972 // InternalProblem.g:759:5: otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) )
1973 {
1974 otherlv_11=(Token)match(input,19,FOLLOW_25);
1975
1976 newLeafNode(otherlv_11, grammarAccess.getPredicateDefinitionAccess().getSemicolonKeyword_5_2_0());
1977
1978 // InternalProblem.g:763:5: ( (lv_bodies_12_0= ruleConjunction ) )
1979 // InternalProblem.g:764:6: (lv_bodies_12_0= ruleConjunction )
1980 {
1981 // InternalProblem.g:764:6: (lv_bodies_12_0= ruleConjunction )
1982 // InternalProblem.g:765:7: lv_bodies_12_0= ruleConjunction
1983 {
1984
1985 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_2_1_0());
1986
1987 pushFollow(FOLLOW_26);
1988 lv_bodies_12_0=ruleConjunction();
1989
1990 state._fsp--;
1991
1992
1993 if (current==null) {
1994 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1995 }
1996 add(
1997 current,
1998 "bodies",
1999 lv_bodies_12_0,
2000 "org.eclipse.viatra.solver.language.Problem.Conjunction");
2001 afterParserOrEnumRuleCall();
2002
2003
2004 }
2005
2006
2007 }
2008
2009
2010 }
2011 break;
2012
2013 default :
2014 break loop21;
2015 }
2016 } while (true);
2017
2018
2019 }
2020 break;
2021
2022 }
2023
2024 otherlv_13=(Token)match(input,13,FOLLOW_2);
2025
2026 newLeafNode(otherlv_13, grammarAccess.getPredicateDefinitionAccess().getFullStopKeyword_6());
2027
2028
2029 }
2030
2031
2032 }
2033
2034
2035 leaveRule();
2036
2037 }
2038
2039 catch (RecognitionException re) {
2040 recover(input,re);
2041 appendSkippedTokens();
2042 }
2043 finally {
2044 }
2045 return current;
2046 }
2047 // $ANTLR end "rulePredicateDefinition"
2048
2049
2050 // $ANTLR start "entryRuleParameter"
2051 // InternalProblem.g:792:1: entryRuleParameter returns [EObject current=null] : iv_ruleParameter= ruleParameter EOF ;
2052 public final EObject entryRuleParameter() throws RecognitionException {
2053 EObject current = null;
2054
2055 EObject iv_ruleParameter = null;
2056
2057
2058 try {
2059 // InternalProblem.g:792:50: (iv_ruleParameter= ruleParameter EOF )
2060 // InternalProblem.g:793:2: iv_ruleParameter= ruleParameter EOF
2061 {
2062 newCompositeNode(grammarAccess.getParameterRule());
2063 pushFollow(FOLLOW_1);
2064 iv_ruleParameter=ruleParameter();
2065
2066 state._fsp--;
2067
2068 current =iv_ruleParameter;
2069 match(input,EOF,FOLLOW_2);
2070
2071 }
2072
2073 }
2074
2075 catch (RecognitionException re) {
2076 recover(input,re);
2077 appendSkippedTokens();
2078 }
2079 finally {
2080 }
2081 return current;
2082 }
2083 // $ANTLR end "entryRuleParameter"
2084
2085
2086 // $ANTLR start "ruleParameter"
2087 // InternalProblem.g:799:1: ruleParameter returns [EObject current=null] : ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= ruleIdentifier ) ) ) ;
2088 public final EObject ruleParameter() throws RecognitionException {
2089 EObject current = null;
2090
2091 AntlrDatatypeRuleToken lv_name_1_0 = null;
2092
2093
2094
2095 enterRule();
2096
2097 try {
2098 // InternalProblem.g:805:2: ( ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= ruleIdentifier ) ) ) )
2099 // InternalProblem.g:806:2: ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= ruleIdentifier ) ) )
2100 {
2101 // InternalProblem.g:806:2: ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= ruleIdentifier ) ) )
2102 // InternalProblem.g:807:3: ( ( ruleQualifiedName ) )? ( (lv_name_1_0= ruleIdentifier ) )
2103 {
2104 // InternalProblem.g:807:3: ( ( ruleQualifiedName ) )?
2105 int alt23=2;
2106 switch ( input.LA(1) ) {
2107 case RULE_QUOTED_ID:
2108 {
2109 alt23=1;
2110 }
2111 break;
2112 case RULE_ID:
2113 {
2114 int LA23_2 = input.LA(2);
2115
2116 if ( (LA23_2==RULE_ID||LA23_2==34||(LA23_2>=40 && LA23_2<=41)) ) {
2117 alt23=1;
2118 }
2119 }
2120 break;
2121 case 40:
2122 {
2123 int LA23_3 = input.LA(2);
2124
2125 if ( (LA23_3==RULE_ID||LA23_3==34||(LA23_3>=40 && LA23_3<=41)) ) {
2126 alt23=1;
2127 }
2128 }
2129 break;
2130 case 41:
2131 {
2132 int LA23_4 = input.LA(2);
2133
2134 if ( (LA23_4==RULE_ID||LA23_4==34||(LA23_4>=40 && LA23_4<=41)) ) {
2135 alt23=1;
2136 }
2137 }
2138 break;
2139 }
2140
2141 switch (alt23) {
2142 case 1 :
2143 // InternalProblem.g:808:4: ( ruleQualifiedName )
2144 {
2145 // InternalProblem.g:808:4: ( ruleQualifiedName )
2146 // InternalProblem.g:809:5: ruleQualifiedName
2147 {
2148
2149 if (current==null) {
2150 current = createModelElement(grammarAccess.getParameterRule());
2151 }
2152
2153
2154 newCompositeNode(grammarAccess.getParameterAccess().getParameterTypeRelationCrossReference_0_0());
2155
2156 pushFollow(FOLLOW_3);
2157 ruleQualifiedName();
2158
2159 state._fsp--;
2160
2161
2162 afterParserOrEnumRuleCall();
2163
2164
2165 }
2166
2167
2168 }
2169 break;
2170
2171 }
2172
2173 // InternalProblem.g:823:3: ( (lv_name_1_0= ruleIdentifier ) )
2174 // InternalProblem.g:824:4: (lv_name_1_0= ruleIdentifier )
2175 {
2176 // InternalProblem.g:824:4: (lv_name_1_0= ruleIdentifier )
2177 // InternalProblem.g:825:5: lv_name_1_0= ruleIdentifier
2178 {
2179
2180 newCompositeNode(grammarAccess.getParameterAccess().getNameIdentifierParserRuleCall_1_0());
2181
2182 pushFollow(FOLLOW_2);
2183 lv_name_1_0=ruleIdentifier();
2184
2185 state._fsp--;
2186
2187
2188 if (current==null) {
2189 current = createModelElementForParent(grammarAccess.getParameterRule());
2190 }
2191 set(
2192 current,
2193 "name",
2194 lv_name_1_0,
2195 "org.eclipse.viatra.solver.language.Problem.Identifier");
2196 afterParserOrEnumRuleCall();
2197
2198
2199 }
2200
2201
2202 }
2203
2204
2205 }
2206
2207
2208 }
2209
2210
2211 leaveRule();
2212
2213 }
2214
2215 catch (RecognitionException re) {
2216 recover(input,re);
2217 appendSkippedTokens();
2218 }
2219 finally {
2220 }
2221 return current;
2222 }
2223 // $ANTLR end "ruleParameter"
2224
2225
2226 // $ANTLR start "entryRuleConjunction"
2227 // InternalProblem.g:846:1: entryRuleConjunction returns [EObject current=null] : iv_ruleConjunction= ruleConjunction EOF ;
2228 public final EObject entryRuleConjunction() throws RecognitionException {
2229 EObject current = null;
2230
2231 EObject iv_ruleConjunction = null;
2232
2233
2234 try {
2235 // InternalProblem.g:846:52: (iv_ruleConjunction= ruleConjunction EOF )
2236 // InternalProblem.g:847:2: iv_ruleConjunction= ruleConjunction EOF
2237 {
2238 newCompositeNode(grammarAccess.getConjunctionRule());
2239 pushFollow(FOLLOW_1);
2240 iv_ruleConjunction=ruleConjunction();
2241
2242 state._fsp--;
2243
2244 current =iv_ruleConjunction;
2245 match(input,EOF,FOLLOW_2);
2246
2247 }
2248
2249 }
2250
2251 catch (RecognitionException re) {
2252 recover(input,re);
2253 appendSkippedTokens();
2254 }
2255 finally {
2256 }
2257 return current;
2258 }
2259 // $ANTLR end "entryRuleConjunction"
2260
2261
2262 // $ANTLR start "ruleConjunction"
2263 // InternalProblem.g:853:1: ruleConjunction returns [EObject current=null] : ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* ) ;
2264 public final EObject ruleConjunction() throws RecognitionException {
2265 EObject current = null;
2266
2267 Token otherlv_1=null;
2268 EObject lv_literals_0_0 = null;
2269
2270 EObject lv_literals_2_0 = null;
2271
2272
2273
2274 enterRule();
2275
2276 try {
2277 // InternalProblem.g:859:2: ( ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* ) )
2278 // InternalProblem.g:860:2: ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* )
2279 {
2280 // InternalProblem.g:860:2: ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* )
2281 // InternalProblem.g:861:3: ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )*
2282 {
2283 // InternalProblem.g:861:3: ( (lv_literals_0_0= ruleLiteral ) )
2284 // InternalProblem.g:862:4: (lv_literals_0_0= ruleLiteral )
2285 {
2286 // InternalProblem.g:862:4: (lv_literals_0_0= ruleLiteral )
2287 // InternalProblem.g:863:5: lv_literals_0_0= ruleLiteral
2288 {
2289
2290 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_0_0());
2291
2292 pushFollow(FOLLOW_27);
2293 lv_literals_0_0=ruleLiteral();
2294
2295 state._fsp--;
2296
2297
2298 if (current==null) {
2299 current = createModelElementForParent(grammarAccess.getConjunctionRule());
2300 }
2301 add(
2302 current,
2303 "literals",
2304 lv_literals_0_0,
2305 "org.eclipse.viatra.solver.language.Problem.Literal");
2306 afterParserOrEnumRuleCall();
2307
2308
2309 }
2310
2311
2312 }
2313
2314 // InternalProblem.g:880:3: (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )*
2315 loop24:
2316 do {
2317 int alt24=2;
2318 int LA24_0 = input.LA(1);
2319
2320 if ( (LA24_0==17) ) {
2321 alt24=1;
2322 }
2323
2324
2325 switch (alt24) {
2326 case 1 :
2327 // InternalProblem.g:881:4: otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) )
2328 {
2329 otherlv_1=(Token)match(input,17,FOLLOW_25);
2330
2331 newLeafNode(otherlv_1, grammarAccess.getConjunctionAccess().getCommaKeyword_1_0());
2332
2333 // InternalProblem.g:885:4: ( (lv_literals_2_0= ruleLiteral ) )
2334 // InternalProblem.g:886:5: (lv_literals_2_0= ruleLiteral )
2335 {
2336 // InternalProblem.g:886:5: (lv_literals_2_0= ruleLiteral )
2337 // InternalProblem.g:887:6: lv_literals_2_0= ruleLiteral
2338 {
2339
2340 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_1_1_0());
2341
2342 pushFollow(FOLLOW_27);
2343 lv_literals_2_0=ruleLiteral();
2344
2345 state._fsp--;
2346
2347
2348 if (current==null) {
2349 current = createModelElementForParent(grammarAccess.getConjunctionRule());
2350 }
2351 add(
2352 current,
2353 "literals",
2354 lv_literals_2_0,
2355 "org.eclipse.viatra.solver.language.Problem.Literal");
2356 afterParserOrEnumRuleCall();
2357
2358
2359 }
2360
2361
2362 }
2363
2364
2365 }
2366 break;
2367
2368 default :
2369 break loop24;
2370 }
2371 } while (true);
2372
2373
2374 }
2375
2376
2377 }
2378
2379
2380 leaveRule();
2381
2382 }
2383
2384 catch (RecognitionException re) {
2385 recover(input,re);
2386 appendSkippedTokens();
2387 }
2388 finally {
2389 }
2390 return current;
2391 }
2392 // $ANTLR end "ruleConjunction"
2393
2394
2395 // $ANTLR start "entryRuleLiteral"
2396 // InternalProblem.g:909:1: entryRuleLiteral returns [EObject current=null] : iv_ruleLiteral= ruleLiteral EOF ;
2397 public final EObject entryRuleLiteral() throws RecognitionException {
2398 EObject current = null;
2399
2400 EObject iv_ruleLiteral = null;
2401
2402
2403 try {
2404 // InternalProblem.g:909:48: (iv_ruleLiteral= ruleLiteral EOF )
2405 // InternalProblem.g:910:2: iv_ruleLiteral= ruleLiteral EOF
2406 {
2407 newCompositeNode(grammarAccess.getLiteralRule());
2408 pushFollow(FOLLOW_1);
2409 iv_ruleLiteral=ruleLiteral();
2410
2411 state._fsp--;
2412
2413 current =iv_ruleLiteral;
2414 match(input,EOF,FOLLOW_2);
2415
2416 }
2417
2418 }
2419
2420 catch (RecognitionException re) {
2421 recover(input,re);
2422 appendSkippedTokens();
2423 }
2424 finally {
2425 }
2426 return current;
2427 }
2428 // $ANTLR end "entryRuleLiteral"
2429
2430
2431 // $ANTLR start "ruleLiteral"
2432 // InternalProblem.g:916:1: ruleLiteral returns [EObject current=null] : (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral ) ;
2433 public final EObject ruleLiteral() throws RecognitionException {
2434 EObject current = null;
2435
2436 EObject this_Atom_0 = null;
2437
2438 EObject this_NegativeLiteral_1 = null;
2439
2440
2441
2442 enterRule();
2443
2444 try {
2445 // InternalProblem.g:922:2: ( (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral ) )
2446 // InternalProblem.g:923:2: (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral )
2447 {
2448 // InternalProblem.g:923:2: (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral )
2449 int alt25=2;
2450 int LA25_0 = input.LA(1);
2451
2452 if ( (LA25_0==RULE_ID||LA25_0==RULE_QUOTED_ID||(LA25_0>=40 && LA25_0<=41)) ) {
2453 alt25=1;
2454 }
2455 else if ( (LA25_0==32) ) {
2456 alt25=2;
2457 }
2458 else {
2459 NoViableAltException nvae =
2460 new NoViableAltException("", 25, 0, input);
2461
2462 throw nvae;
2463 }
2464 switch (alt25) {
2465 case 1 :
2466 // InternalProblem.g:924:3: this_Atom_0= ruleAtom
2467 {
2468
2469 newCompositeNode(grammarAccess.getLiteralAccess().getAtomParserRuleCall_0());
2470
2471 pushFollow(FOLLOW_2);
2472 this_Atom_0=ruleAtom();
2473
2474 state._fsp--;
2475
2476
2477 current = this_Atom_0;
2478 afterParserOrEnumRuleCall();
2479
2480
2481 }
2482 break;
2483 case 2 :
2484 // InternalProblem.g:933:3: this_NegativeLiteral_1= ruleNegativeLiteral
2485 {
2486
2487 newCompositeNode(grammarAccess.getLiteralAccess().getNegativeLiteralParserRuleCall_1());
2488
2489 pushFollow(FOLLOW_2);
2490 this_NegativeLiteral_1=ruleNegativeLiteral();
2491
2492 state._fsp--;
2493
2494
2495 current = this_NegativeLiteral_1;
2496 afterParserOrEnumRuleCall();
2497
2498
2499 }
2500 break;
2501
2502 }
2503
2504
2505 }
2506
2507
2508 leaveRule();
2509
2510 }
2511
2512 catch (RecognitionException re) {
2513 recover(input,re);
2514 appendSkippedTokens();
2515 }
2516 finally {
2517 }
2518 return current;
2519 }
2520 // $ANTLR end "ruleLiteral"
2521
2522
2523 // $ANTLR start "entryRuleNegativeLiteral"
2524 // InternalProblem.g:945:1: entryRuleNegativeLiteral returns [EObject current=null] : iv_ruleNegativeLiteral= ruleNegativeLiteral EOF ;
2525 public final EObject entryRuleNegativeLiteral() throws RecognitionException {
2526 EObject current = null;
2527
2528 EObject iv_ruleNegativeLiteral = null;
2529
2530
2531 try {
2532 // InternalProblem.g:945:56: (iv_ruleNegativeLiteral= ruleNegativeLiteral EOF )
2533 // InternalProblem.g:946:2: iv_ruleNegativeLiteral= ruleNegativeLiteral EOF
2534 {
2535 newCompositeNode(grammarAccess.getNegativeLiteralRule());
2536 pushFollow(FOLLOW_1);
2537 iv_ruleNegativeLiteral=ruleNegativeLiteral();
2538
2539 state._fsp--;
2540
2541 current =iv_ruleNegativeLiteral;
2542 match(input,EOF,FOLLOW_2);
2543
2544 }
2545
2546 }
2547
2548 catch (RecognitionException re) {
2549 recover(input,re);
2550 appendSkippedTokens();
2551 }
2552 finally {
2553 }
2554 return current;
2555 }
2556 // $ANTLR end "entryRuleNegativeLiteral"
2557
2558
2559 // $ANTLR start "ruleNegativeLiteral"
2560 // InternalProblem.g:952:1: ruleNegativeLiteral returns [EObject current=null] : (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) ) ;
2561 public final EObject ruleNegativeLiteral() throws RecognitionException {
2562 EObject current = null;
2563
2564 Token otherlv_0=null;
2565 EObject lv_atom_1_0 = null;
2566
2567
2568
2569 enterRule();
2570
2571 try {
2572 // InternalProblem.g:958:2: ( (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) ) )
2573 // InternalProblem.g:959:2: (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) )
2574 {
2575 // InternalProblem.g:959:2: (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) )
2576 // InternalProblem.g:960:3: otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) )
2577 {
2578 otherlv_0=(Token)match(input,32,FOLLOW_8);
2579
2580 newLeafNode(otherlv_0, grammarAccess.getNegativeLiteralAccess().getExclamationMarkKeyword_0());
2581
2582 // InternalProblem.g:964:3: ( (lv_atom_1_0= ruleAtom ) )
2583 // InternalProblem.g:965:4: (lv_atom_1_0= ruleAtom )
2584 {
2585 // InternalProblem.g:965:4: (lv_atom_1_0= ruleAtom )
2586 // InternalProblem.g:966:5: lv_atom_1_0= ruleAtom
2587 {
2588
2589 newCompositeNode(grammarAccess.getNegativeLiteralAccess().getAtomAtomParserRuleCall_1_0());
2590
2591 pushFollow(FOLLOW_2);
2592 lv_atom_1_0=ruleAtom();
2593
2594 state._fsp--;
2595
2596
2597 if (current==null) {
2598 current = createModelElementForParent(grammarAccess.getNegativeLiteralRule());
2599 }
2600 set(
2601 current,
2602 "atom",
2603 lv_atom_1_0,
2604 "org.eclipse.viatra.solver.language.Problem.Atom");
2605 afterParserOrEnumRuleCall();
2606
2607
2608 }
2609
2610
2611 }
2612
2613
2614 }
2615
2616
2617 }
2618
2619
2620 leaveRule();
2621
2622 }
2623
2624 catch (RecognitionException re) {
2625 recover(input,re);
2626 appendSkippedTokens();
2627 }
2628 finally {
2629 }
2630 return current;
2631 }
2632 // $ANTLR end "ruleNegativeLiteral"
2633
2634
2635 // $ANTLR start "entryRuleAtom"
2636 // InternalProblem.g:987:1: entryRuleAtom returns [EObject current=null] : iv_ruleAtom= ruleAtom EOF ;
2637 public final EObject entryRuleAtom() throws RecognitionException {
2638 EObject current = null;
2639
2640 EObject iv_ruleAtom = null;
2641
2642
2643 try {
2644 // InternalProblem.g:987:45: (iv_ruleAtom= ruleAtom EOF )
2645 // InternalProblem.g:988:2: iv_ruleAtom= ruleAtom EOF
2646 {
2647 newCompositeNode(grammarAccess.getAtomRule());
2648 pushFollow(FOLLOW_1);
2649 iv_ruleAtom=ruleAtom();
2650
2651 state._fsp--;
2652
2653 current =iv_ruleAtom;
2654 match(input,EOF,FOLLOW_2);
2655
2656 }
2657
2658 }
2659
2660 catch (RecognitionException re) {
2661 recover(input,re);
2662 appendSkippedTokens();
2663 }
2664 finally {
2665 }
2666 return current;
2667 }
2668 // $ANTLR end "entryRuleAtom"
2669
2670
2671 // $ANTLR start "ruleAtom"
2672 // InternalProblem.g:994:1: ruleAtom returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )? otherlv_6= ')' ) ;
2673 public final EObject ruleAtom() throws RecognitionException {
2674 EObject current = null;
2675
2676 Token lv_transitiveClosure_1_0=null;
2677 Token otherlv_2=null;
2678 Token otherlv_4=null;
2679 Token otherlv_6=null;
2680 EObject lv_arguments_3_0 = null;
2681
2682 EObject lv_arguments_5_0 = null;
2683
2684
2685
2686 enterRule();
2687
2688 try {
2689 // InternalProblem.g:1000:2: ( ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )? otherlv_6= ')' ) )
2690 // InternalProblem.g:1001:2: ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )? otherlv_6= ')' )
2691 {
2692 // InternalProblem.g:1001:2: ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )? otherlv_6= ')' )
2693 // InternalProblem.g:1002:3: ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )? otherlv_6= ')'
2694 {
2695 // InternalProblem.g:1002:3: ( ( ruleQualifiedName ) )
2696 // InternalProblem.g:1003:4: ( ruleQualifiedName )
2697 {
2698 // InternalProblem.g:1003:4: ( ruleQualifiedName )
2699 // InternalProblem.g:1004:5: ruleQualifiedName
2700 {
2701
2702 if (current==null) {
2703 current = createModelElement(grammarAccess.getAtomRule());
2704 }
2705
2706
2707 newCompositeNode(grammarAccess.getAtomAccess().getRelationRelationCrossReference_0_0());
2708
2709 pushFollow(FOLLOW_28);
2710 ruleQualifiedName();
2711
2712 state._fsp--;
2713
2714
2715 afterParserOrEnumRuleCall();
2716
2717
2718 }
2719
2720
2721 }
2722
2723 // InternalProblem.g:1018:3: ( (lv_transitiveClosure_1_0= '+' ) )?
2724 int alt26=2;
2725 int LA26_0 = input.LA(1);
2726
2727 if ( (LA26_0==33) ) {
2728 alt26=1;
2729 }
2730 switch (alt26) {
2731 case 1 :
2732 // InternalProblem.g:1019:4: (lv_transitiveClosure_1_0= '+' )
2733 {
2734 // InternalProblem.g:1019:4: (lv_transitiveClosure_1_0= '+' )
2735 // InternalProblem.g:1020:5: lv_transitiveClosure_1_0= '+'
2736 {
2737 lv_transitiveClosure_1_0=(Token)match(input,33,FOLLOW_21);
2738
2739 newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0());
2740
2741
2742 if (current==null) {
2743 current = createModelElement(grammarAccess.getAtomRule());
2744 }
2745 setWithLastConsumed(current, "transitiveClosure", lv_transitiveClosure_1_0 != null, "+");
2746
2747
2748 }
2749
2750
2751 }
2752 break;
2753
2754 }
2755
2756 otherlv_2=(Token)match(input,29,FOLLOW_22);
2757
2758 newLeafNode(otherlv_2, grammarAccess.getAtomAccess().getLeftParenthesisKeyword_2());
2759
2760 // InternalProblem.g:1036:3: ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )?
2761 int alt28=2;
2762 int LA28_0 = input.LA(1);
2763
2764 if ( (LA28_0==RULE_ID||LA28_0==RULE_QUOTED_ID||(LA28_0>=40 && LA28_0<=41)) ) {
2765 alt28=1;
2766 }
2767 switch (alt28) {
2768 case 1 :
2769 // InternalProblem.g:1037:4: ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )*
2770 {
2771 // InternalProblem.g:1037:4: ( (lv_arguments_3_0= ruleArgument ) )
2772 // InternalProblem.g:1038:5: (lv_arguments_3_0= ruleArgument )
2773 {
2774 // InternalProblem.g:1038:5: (lv_arguments_3_0= ruleArgument )
2775 // InternalProblem.g:1039:6: lv_arguments_3_0= ruleArgument
2776 {
2777
2778 newCompositeNode(grammarAccess.getAtomAccess().getArgumentsArgumentParserRuleCall_3_0_0());
2779
2780 pushFollow(FOLLOW_23);
2781 lv_arguments_3_0=ruleArgument();
2782
2783 state._fsp--;
2784
2785
2786 if (current==null) {
2787 current = createModelElementForParent(grammarAccess.getAtomRule());
2788 }
2789 add(
2790 current,
2791 "arguments",
2792 lv_arguments_3_0,
2793 "org.eclipse.viatra.solver.language.Problem.Argument");
2794 afterParserOrEnumRuleCall();
2795
2796
2797 }
2798
2799
2800 }
2801
2802 // InternalProblem.g:1056:4: (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )*
2803 loop27:
2804 do {
2805 int alt27=2;
2806 int LA27_0 = input.LA(1);
2807
2808 if ( (LA27_0==17) ) {
2809 alt27=1;
2810 }
2811
2812
2813 switch (alt27) {
2814 case 1 :
2815 // InternalProblem.g:1057:5: otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) )
2816 {
2817 otherlv_4=(Token)match(input,17,FOLLOW_8);
2818
2819 newLeafNode(otherlv_4, grammarAccess.getAtomAccess().getCommaKeyword_3_1_0());
2820
2821 // InternalProblem.g:1061:5: ( (lv_arguments_5_0= ruleArgument ) )
2822 // InternalProblem.g:1062:6: (lv_arguments_5_0= ruleArgument )
2823 {
2824 // InternalProblem.g:1062:6: (lv_arguments_5_0= ruleArgument )
2825 // InternalProblem.g:1063:7: lv_arguments_5_0= ruleArgument
2826 {
2827
2828 newCompositeNode(grammarAccess.getAtomAccess().getArgumentsArgumentParserRuleCall_3_1_1_0());
2829
2830 pushFollow(FOLLOW_23);
2831 lv_arguments_5_0=ruleArgument();
2832
2833 state._fsp--;
2834
2835
2836 if (current==null) {
2837 current = createModelElementForParent(grammarAccess.getAtomRule());
2838 }
2839 add(
2840 current,
2841 "arguments",
2842 lv_arguments_5_0,
2843 "org.eclipse.viatra.solver.language.Problem.Argument");
2844 afterParserOrEnumRuleCall();
2845
2846
2847 }
2848
2849
2850 }
2851
2852
2853 }
2854 break;
2855
2856 default :
2857 break loop27;
2858 }
2859 } while (true);
2860
2861
2862 }
2863 break;
2864
2865 }
2866
2867 otherlv_6=(Token)match(input,30,FOLLOW_2);
2868
2869 newLeafNode(otherlv_6, grammarAccess.getAtomAccess().getRightParenthesisKeyword_4());
2870
2871
2872 }
2873
2874
2875 }
2876
2877
2878 leaveRule();
2879
2880 }
2881
2882 catch (RecognitionException re) {
2883 recover(input,re);
2884 appendSkippedTokens();
2885 }
2886 finally {
2887 }
2888 return current;
2889 }
2890 // $ANTLR end "ruleAtom"
2891
2892
2893 // $ANTLR start "entryRuleArgument"
2894 // InternalProblem.g:1090:1: entryRuleArgument returns [EObject current=null] : iv_ruleArgument= ruleArgument EOF ;
2895 public final EObject entryRuleArgument() throws RecognitionException {
2896 EObject current = null;
2897
2898 EObject iv_ruleArgument = null;
2899
2900
2901 try {
2902 // InternalProblem.g:1090:49: (iv_ruleArgument= ruleArgument EOF )
2903 // InternalProblem.g:1091:2: iv_ruleArgument= ruleArgument EOF
2904 {
2905 newCompositeNode(grammarAccess.getArgumentRule());
2906 pushFollow(FOLLOW_1);
2907 iv_ruleArgument=ruleArgument();
2908
2909 state._fsp--;
2910
2911 current =iv_ruleArgument;
2912 match(input,EOF,FOLLOW_2);
2913
2914 }
2915
2916 }
2917
2918 catch (RecognitionException re) {
2919 recover(input,re);
2920 appendSkippedTokens();
2921 }
2922 finally {
2923 }
2924 return current;
2925 }
2926 // $ANTLR end "entryRuleArgument"
2927
2928
2929 // $ANTLR start "ruleArgument"
2930 // InternalProblem.g:1097:1: ruleArgument returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
2931 public final EObject ruleArgument() throws RecognitionException {
2932 EObject current = null;
2933
2934
2935 enterRule();
2936
2937 try {
2938 // InternalProblem.g:1103:2: ( ( ( ruleQualifiedName ) ) )
2939 // InternalProblem.g:1104:2: ( ( ruleQualifiedName ) )
2940 {
2941 // InternalProblem.g:1104:2: ( ( ruleQualifiedName ) )
2942 // InternalProblem.g:1105:3: ( ruleQualifiedName )
2943 {
2944 // InternalProblem.g:1105:3: ( ruleQualifiedName )
2945 // InternalProblem.g:1106:4: ruleQualifiedName
2946 {
2947
2948 if (current==null) {
2949 current = createModelElement(grammarAccess.getArgumentRule());
2950 }
2951
2952
2953 newCompositeNode(grammarAccess.getArgumentAccess().getVariableOrNodeVariableOrNodeCrossReference_0());
2954
2955 pushFollow(FOLLOW_2);
2956 ruleQualifiedName();
2957
2958 state._fsp--;
2959
2960
2961 afterParserOrEnumRuleCall();
2962
2963
2964 }
2965
2966
2967 }
2968
2969
2970 }
2971
2972
2973 leaveRule();
2974
2975 }
2976
2977 catch (RecognitionException re) {
2978 recover(input,re);
2979 appendSkippedTokens();
2980 }
2981 finally {
2982 }
2983 return current;
2984 }
2985 // $ANTLR end "ruleArgument"
2986
2987
2988 // $ANTLR start "entryRuleAssertion"
2989 // InternalProblem.g:1123:1: entryRuleAssertion returns [EObject current=null] : iv_ruleAssertion= ruleAssertion EOF ;
2990 public final EObject entryRuleAssertion() throws RecognitionException {
2991 EObject current = null;
2992
2993 EObject iv_ruleAssertion = null;
2994
2995
2996 try {
2997 // InternalProblem.g:1123:50: (iv_ruleAssertion= ruleAssertion EOF )
2998 // InternalProblem.g:1124:2: iv_ruleAssertion= ruleAssertion EOF
2999 {
3000 newCompositeNode(grammarAccess.getAssertionRule());
3001 pushFollow(FOLLOW_1);
3002 iv_ruleAssertion=ruleAssertion();
3003
3004 state._fsp--;
3005
3006 current =iv_ruleAssertion;
3007 match(input,EOF,FOLLOW_2);
3008
3009 }
3010
3011 }
3012
3013 catch (RecognitionException re) {
3014 recover(input,re);
3015 appendSkippedTokens();
3016 }
3017 finally {
3018 }
3019 return current;
3020 }
3021 // $ANTLR end "entryRuleAssertion"
3022
3023
3024 // $ANTLR start "ruleAssertion"
3025 // InternalProblem.g:1130:1: ruleAssertion returns [EObject current=null] : ( ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' ) ) otherlv_15= '.' ) ;
3026 public final EObject ruleAssertion() throws RecognitionException {
3027 EObject current = null;
3028
3029 Token otherlv_1=null;
3030 Token otherlv_3=null;
3031 Token otherlv_5=null;
3032 Token otherlv_6=null;
3033 Token otherlv_10=null;
3034 Token otherlv_12=null;
3035 Token otherlv_14=null;
3036 Token otherlv_15=null;
3037 Enumerator lv_value_7_0 = null;
3038
3039 Enumerator lv_value_8_0 = null;
3040
3041
3042
3043 enterRule();
3044
3045 try {
3046 // InternalProblem.g:1136:2: ( ( ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' ) ) otherlv_15= '.' ) )
3047 // InternalProblem.g:1137:2: ( ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' ) ) otherlv_15= '.' )
3048 {
3049 // InternalProblem.g:1137:2: ( ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' ) ) otherlv_15= '.' )
3050 // InternalProblem.g:1138:3: ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' ) ) otherlv_15= '.'
3051 {
3052 // InternalProblem.g:1138:3: ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' ) )
3053 int alt34=2;
3054 alt34 = dfa34.predict(input);
3055 switch (alt34) {
3056 case 1 :
3057 // InternalProblem.g:1139:4: ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) )
3058 {
3059 // InternalProblem.g:1139:4: ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) )
3060 // InternalProblem.g:1140:5: ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) )
3061 {
3062 // InternalProblem.g:1140:5: ( ( ruleQualifiedName ) )
3063 // InternalProblem.g:1141:6: ( ruleQualifiedName )
3064 {
3065 // InternalProblem.g:1141:6: ( ruleQualifiedName )
3066 // InternalProblem.g:1142:7: ruleQualifiedName
3067 {
3068
3069 if (current==null) {
3070 current = createModelElement(grammarAccess.getAssertionRule());
3071 }
3072
3073
3074 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_0_0_0());
3075
3076 pushFollow(FOLLOW_21);
3077 ruleQualifiedName();
3078
3079 state._fsp--;
3080
3081
3082 afterParserOrEnumRuleCall();
3083
3084
3085 }
3086
3087
3088 }
3089
3090 otherlv_1=(Token)match(input,29,FOLLOW_22);
3091
3092 newLeafNode(otherlv_1, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_0_1());
3093
3094 // InternalProblem.g:1160:5: ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )?
3095 int alt30=2;
3096 int LA30_0 = input.LA(1);
3097
3098 if ( (LA30_0==RULE_ID||LA30_0==RULE_QUOTED_ID||(LA30_0>=40 && LA30_0<=41)) ) {
3099 alt30=1;
3100 }
3101 switch (alt30) {
3102 case 1 :
3103 // InternalProblem.g:1161:6: ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )*
3104 {
3105 // InternalProblem.g:1161:6: ( ( ruleQualifiedName ) )
3106 // InternalProblem.g:1162:7: ( ruleQualifiedName )
3107 {
3108 // InternalProblem.g:1162:7: ( ruleQualifiedName )
3109 // InternalProblem.g:1163:8: ruleQualifiedName
3110 {
3111
3112 if (current==null) {
3113 current = createModelElement(grammarAccess.getAssertionRule());
3114 }
3115
3116
3117 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_0_0());
3118
3119 pushFollow(FOLLOW_23);
3120 ruleQualifiedName();
3121
3122 state._fsp--;
3123
3124
3125 afterParserOrEnumRuleCall();
3126
3127
3128 }
3129
3130
3131 }
3132
3133 // InternalProblem.g:1177:6: (otherlv_3= ',' ( ( ruleQualifiedName ) ) )*
3134 loop29:
3135 do {
3136 int alt29=2;
3137 int LA29_0 = input.LA(1);
3138
3139 if ( (LA29_0==17) ) {
3140 alt29=1;
3141 }
3142
3143
3144 switch (alt29) {
3145 case 1 :
3146 // InternalProblem.g:1178:7: otherlv_3= ',' ( ( ruleQualifiedName ) )
3147 {
3148 otherlv_3=(Token)match(input,17,FOLLOW_8);
3149
3150 newLeafNode(otherlv_3, grammarAccess.getAssertionAccess().getCommaKeyword_0_0_2_1_0());
3151
3152 // InternalProblem.g:1182:7: ( ( ruleQualifiedName ) )
3153 // InternalProblem.g:1183:8: ( ruleQualifiedName )
3154 {
3155 // InternalProblem.g:1183:8: ( ruleQualifiedName )
3156 // InternalProblem.g:1184:9: ruleQualifiedName
3157 {
3158
3159 if (current==null) {
3160 current = createModelElement(grammarAccess.getAssertionRule());
3161 }
3162
3163
3164 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_1_1_0());
3165
3166 pushFollow(FOLLOW_23);
3167 ruleQualifiedName();
3168
3169 state._fsp--;
3170
3171
3172 afterParserOrEnumRuleCall();
3173
3174
3175 }
3176
3177
3178 }
3179
3180
3181 }
3182 break;
3183
3184 default :
3185 break loop29;
3186 }
3187 } while (true);
3188
3189
3190 }
3191 break;
3192
3193 }
3194
3195 otherlv_5=(Token)match(input,30,FOLLOW_29);
3196
3197 newLeafNode(otherlv_5, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_0_3());
3198
3199 otherlv_6=(Token)match(input,34,FOLLOW_30);
3200
3201 newLeafNode(otherlv_6, grammarAccess.getAssertionAccess().getColonKeyword_0_0_4());
3202
3203 // InternalProblem.g:1208:5: ( (lv_value_7_0= ruleLogicValue ) )
3204 // InternalProblem.g:1209:6: (lv_value_7_0= ruleLogicValue )
3205 {
3206 // InternalProblem.g:1209:6: (lv_value_7_0= ruleLogicValue )
3207 // InternalProblem.g:1210:7: lv_value_7_0= ruleLogicValue
3208 {
3209
3210 newCompositeNode(grammarAccess.getAssertionAccess().getValueLogicValueEnumRuleCall_0_0_5_0());
3211
3212 pushFollow(FOLLOW_4);
3213 lv_value_7_0=ruleLogicValue();
3214
3215 state._fsp--;
3216
3217
3218 if (current==null) {
3219 current = createModelElementForParent(grammarAccess.getAssertionRule());
3220 }
3221 set(
3222 current,
3223 "value",
3224 lv_value_7_0,
3225 "org.eclipse.viatra.solver.language.Problem.LogicValue");
3226 afterParserOrEnumRuleCall();
3227
3228
3229 }
3230
3231
3232 }
3233
3234
3235 }
3236
3237
3238 }
3239 break;
3240 case 2 :
3241 // InternalProblem.g:1229:4: ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' )
3242 {
3243 // InternalProblem.g:1229:4: ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' )
3244 // InternalProblem.g:1230:5: ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')'
3245 {
3246 // InternalProblem.g:1230:5: ( (lv_value_8_0= ruleShortLogicValue ) )?
3247 int alt31=2;
3248 int LA31_0 = input.LA(1);
3249
3250 if ( (LA31_0==32||LA31_0==43) ) {
3251 alt31=1;
3252 }
3253 switch (alt31) {
3254 case 1 :
3255 // InternalProblem.g:1231:6: (lv_value_8_0= ruleShortLogicValue )
3256 {
3257 // InternalProblem.g:1231:6: (lv_value_8_0= ruleShortLogicValue )
3258 // InternalProblem.g:1232:7: lv_value_8_0= ruleShortLogicValue
3259 {
3260
3261 newCompositeNode(grammarAccess.getAssertionAccess().getValueShortLogicValueEnumRuleCall_0_1_0_0());
3262
3263 pushFollow(FOLLOW_8);
3264 lv_value_8_0=ruleShortLogicValue();
3265
3266 state._fsp--;
3267
3268
3269 if (current==null) {
3270 current = createModelElementForParent(grammarAccess.getAssertionRule());
3271 }
3272 set(
3273 current,
3274 "value",
3275 lv_value_8_0,
3276 "org.eclipse.viatra.solver.language.Problem.ShortLogicValue");
3277 afterParserOrEnumRuleCall();
3278
3279
3280 }
3281
3282
3283 }
3284 break;
3285
3286 }
3287
3288 // InternalProblem.g:1249:5: ( ( ruleQualifiedName ) )
3289 // InternalProblem.g:1250:6: ( ruleQualifiedName )
3290 {
3291 // InternalProblem.g:1250:6: ( ruleQualifiedName )
3292 // InternalProblem.g:1251:7: ruleQualifiedName
3293 {
3294
3295 if (current==null) {
3296 current = createModelElement(grammarAccess.getAssertionRule());
3297 }
3298
3299
3300 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_1_1_0());
3301
3302 pushFollow(FOLLOW_21);
3303 ruleQualifiedName();
3304
3305 state._fsp--;
3306
3307
3308 afterParserOrEnumRuleCall();
3309
3310
3311 }
3312
3313
3314 }
3315
3316 otherlv_10=(Token)match(input,29,FOLLOW_22);
3317
3318 newLeafNode(otherlv_10, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_1_2());
3319
3320 // InternalProblem.g:1269:5: ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )?
3321 int alt33=2;
3322 int LA33_0 = input.LA(1);
3323
3324 if ( (LA33_0==RULE_ID||LA33_0==RULE_QUOTED_ID||(LA33_0>=40 && LA33_0<=41)) ) {
3325 alt33=1;
3326 }
3327 switch (alt33) {
3328 case 1 :
3329 // InternalProblem.g:1270:6: ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )*
3330 {
3331 // InternalProblem.g:1270:6: ( ( ruleQualifiedName ) )
3332 // InternalProblem.g:1271:7: ( ruleQualifiedName )
3333 {
3334 // InternalProblem.g:1271:7: ( ruleQualifiedName )
3335 // InternalProblem.g:1272:8: ruleQualifiedName
3336 {
3337
3338 if (current==null) {
3339 current = createModelElement(grammarAccess.getAssertionRule());
3340 }
3341
3342
3343 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_0_0());
3344
3345 pushFollow(FOLLOW_23);
3346 ruleQualifiedName();
3347
3348 state._fsp--;
3349
3350
3351 afterParserOrEnumRuleCall();
3352
3353
3354 }
3355
3356
3357 }
3358
3359 // InternalProblem.g:1286:6: (otherlv_12= ',' ( ( ruleQualifiedName ) ) )*
3360 loop32:
3361 do {
3362 int alt32=2;
3363 int LA32_0 = input.LA(1);
3364
3365 if ( (LA32_0==17) ) {
3366 alt32=1;
3367 }
3368
3369
3370 switch (alt32) {
3371 case 1 :
3372 // InternalProblem.g:1287:7: otherlv_12= ',' ( ( ruleQualifiedName ) )
3373 {
3374 otherlv_12=(Token)match(input,17,FOLLOW_8);
3375
3376 newLeafNode(otherlv_12, grammarAccess.getAssertionAccess().getCommaKeyword_0_1_3_1_0());
3377
3378 // InternalProblem.g:1291:7: ( ( ruleQualifiedName ) )
3379 // InternalProblem.g:1292:8: ( ruleQualifiedName )
3380 {
3381 // InternalProblem.g:1292:8: ( ruleQualifiedName )
3382 // InternalProblem.g:1293:9: ruleQualifiedName
3383 {
3384
3385 if (current==null) {
3386 current = createModelElement(grammarAccess.getAssertionRule());
3387 }
3388
3389
3390 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_1_1_0());
3391
3392 pushFollow(FOLLOW_23);
3393 ruleQualifiedName();
3394
3395 state._fsp--;
3396
3397
3398 afterParserOrEnumRuleCall();
3399
3400
3401 }
3402
3403
3404 }
3405
3406
3407 }
3408 break;
3409
3410 default :
3411 break loop32;
3412 }
3413 } while (true);
3414
3415
3416 }
3417 break;
3418
3419 }
3420
3421 otherlv_14=(Token)match(input,30,FOLLOW_4);
3422
3423 newLeafNode(otherlv_14, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_1_4());
3424
3425
3426 }
3427
3428
3429 }
3430 break;
3431
3432 }
3433
3434 otherlv_15=(Token)match(input,13,FOLLOW_2);
3435
3436 newLeafNode(otherlv_15, grammarAccess.getAssertionAccess().getFullStopKeyword_1());
3437
3438
3439 }
3440
3441
3442 }
3443
3444
3445 leaveRule();
3446
3447 }
3448
3449 catch (RecognitionException re) {
3450 recover(input,re);
3451 appendSkippedTokens();
3452 }
3453 finally {
3454 }
3455 return current;
3456 }
3457 // $ANTLR end "ruleAssertion"
3458
3459
3460 // $ANTLR start "entryRuleScopeDeclaration"
3461 // InternalProblem.g:1323:1: entryRuleScopeDeclaration returns [EObject current=null] : iv_ruleScopeDeclaration= ruleScopeDeclaration EOF ;
3462 public final EObject entryRuleScopeDeclaration() throws RecognitionException {
3463 EObject current = null;
3464
3465 EObject iv_ruleScopeDeclaration = null;
3466
3467
3468 try {
3469 // InternalProblem.g:1323:57: (iv_ruleScopeDeclaration= ruleScopeDeclaration EOF )
3470 // InternalProblem.g:1324:2: iv_ruleScopeDeclaration= ruleScopeDeclaration EOF
3471 {
3472 newCompositeNode(grammarAccess.getScopeDeclarationRule());
3473 pushFollow(FOLLOW_1);
3474 iv_ruleScopeDeclaration=ruleScopeDeclaration();
3475
3476 state._fsp--;
3477
3478 current =iv_ruleScopeDeclaration;
3479 match(input,EOF,FOLLOW_2);
3480
3481 }
3482
3483 }
3484
3485 catch (RecognitionException re) {
3486 recover(input,re);
3487 appendSkippedTokens();
3488 }
3489 finally {
3490 }
3491 return current;
3492 }
3493 // $ANTLR end "entryRuleScopeDeclaration"
3494
3495
3496 // $ANTLR start "ruleScopeDeclaration"
3497 // InternalProblem.g:1330:1: ruleScopeDeclaration returns [EObject current=null] : (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' ) ;
3498 public final EObject ruleScopeDeclaration() throws RecognitionException {
3499 EObject current = null;
3500
3501 Token otherlv_0=null;
3502 Token otherlv_2=null;
3503 Token otherlv_4=null;
3504 EObject lv_typeScopes_1_0 = null;
3505
3506 EObject lv_typeScopes_3_0 = null;
3507
3508
3509
3510 enterRule();
3511
3512 try {
3513 // InternalProblem.g:1336:2: ( (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' ) )
3514 // InternalProblem.g:1337:2: (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' )
3515 {
3516 // InternalProblem.g:1337:2: (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' )
3517 // InternalProblem.g:1338:3: otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.'
3518 {
3519 otherlv_0=(Token)match(input,35,FOLLOW_31);
3520
3521 newLeafNode(otherlv_0, grammarAccess.getScopeDeclarationAccess().getScopeKeyword_0());
3522
3523 // InternalProblem.g:1342:3: ( (lv_typeScopes_1_0= ruleTypeScope ) )
3524 // InternalProblem.g:1343:4: (lv_typeScopes_1_0= ruleTypeScope )
3525 {
3526 // InternalProblem.g:1343:4: (lv_typeScopes_1_0= ruleTypeScope )
3527 // InternalProblem.g:1344:5: lv_typeScopes_1_0= ruleTypeScope
3528 {
3529
3530 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_1_0());
3531
3532 pushFollow(FOLLOW_32);
3533 lv_typeScopes_1_0=ruleTypeScope();
3534
3535 state._fsp--;
3536
3537
3538 if (current==null) {
3539 current = createModelElementForParent(grammarAccess.getScopeDeclarationRule());
3540 }
3541 add(
3542 current,
3543 "typeScopes",
3544 lv_typeScopes_1_0,
3545 "org.eclipse.viatra.solver.language.Problem.TypeScope");
3546 afterParserOrEnumRuleCall();
3547
3548
3549 }
3550
3551
3552 }
3553
3554 // InternalProblem.g:1361:3: (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )*
3555 loop35:
3556 do {
3557 int alt35=2;
3558 int LA35_0 = input.LA(1);
3559
3560 if ( (LA35_0==17) ) {
3561 alt35=1;
3562 }
3563
3564
3565 switch (alt35) {
3566 case 1 :
3567 // InternalProblem.g:1362:4: otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) )
3568 {
3569 otherlv_2=(Token)match(input,17,FOLLOW_31);
3570
3571 newLeafNode(otherlv_2, grammarAccess.getScopeDeclarationAccess().getCommaKeyword_2_0());
3572
3573 // InternalProblem.g:1366:4: ( (lv_typeScopes_3_0= ruleTypeScope ) )
3574 // InternalProblem.g:1367:5: (lv_typeScopes_3_0= ruleTypeScope )
3575 {
3576 // InternalProblem.g:1367:5: (lv_typeScopes_3_0= ruleTypeScope )
3577 // InternalProblem.g:1368:6: lv_typeScopes_3_0= ruleTypeScope
3578 {
3579
3580 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_2_1_0());
3581
3582 pushFollow(FOLLOW_32);
3583 lv_typeScopes_3_0=ruleTypeScope();
3584
3585 state._fsp--;
3586
3587
3588 if (current==null) {
3589 current = createModelElementForParent(grammarAccess.getScopeDeclarationRule());
3590 }
3591 add(
3592 current,
3593 "typeScopes",
3594 lv_typeScopes_3_0,
3595 "org.eclipse.viatra.solver.language.Problem.TypeScope");
3596 afterParserOrEnumRuleCall();
3597
3598
3599 }
3600
3601
3602 }
3603
3604
3605 }
3606 break;
3607
3608 default :
3609 break loop35;
3610 }
3611 } while (true);
3612
3613 otherlv_4=(Token)match(input,13,FOLLOW_2);
3614
3615 newLeafNode(otherlv_4, grammarAccess.getScopeDeclarationAccess().getFullStopKeyword_3());
3616
3617
3618 }
3619
3620
3621 }
3622
3623
3624 leaveRule();
3625
3626 }
3627
3628 catch (RecognitionException re) {
3629 recover(input,re);
3630 appendSkippedTokens();
3631 }
3632 finally {
3633 }
3634 return current;
3635 }
3636 // $ANTLR end "ruleScopeDeclaration"
3637
3638
3639 // $ANTLR start "entryRuleTypeScope"
3640 // InternalProblem.g:1394:1: entryRuleTypeScope returns [EObject current=null] : iv_ruleTypeScope= ruleTypeScope EOF ;
3641 public final EObject entryRuleTypeScope() throws RecognitionException {
3642 EObject current = null;
3643
3644 EObject iv_ruleTypeScope = null;
3645
3646
3647 try {
3648 // InternalProblem.g:1394:50: (iv_ruleTypeScope= ruleTypeScope EOF )
3649 // InternalProblem.g:1395:2: iv_ruleTypeScope= ruleTypeScope EOF
3650 {
3651 newCompositeNode(grammarAccess.getTypeScopeRule());
3652 pushFollow(FOLLOW_1);
3653 iv_ruleTypeScope=ruleTypeScope();
3654
3655 state._fsp--;
3656
3657 current =iv_ruleTypeScope;
3658 match(input,EOF,FOLLOW_2);
3659
3660 }
3661
3662 }
3663
3664 catch (RecognitionException re) {
3665 recover(input,re);
3666 appendSkippedTokens();
3667 }
3668 finally {
3669 }
3670 return current;
3671 }
3672 // $ANTLR end "entryRuleTypeScope"
3673
3674
3675 // $ANTLR start "ruleTypeScope"
3676 // InternalProblem.g:1401:1: ruleTypeScope returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) ) ) ;
3677 public final EObject ruleTypeScope() throws RecognitionException {
3678 EObject current = null;
3679
3680 Token otherlv_0=null;
3681 Token lv_increment_1_0=null;
3682 Token otherlv_2=null;
3683 EObject lv_multiplicity_3_0 = null;
3684
3685
3686
3687 enterRule();
3688
3689 try {
3690 // InternalProblem.g:1407:2: ( ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) ) ) )
3691 // InternalProblem.g:1408:2: ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) ) )
3692 {
3693 // InternalProblem.g:1408:2: ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) ) )
3694 // InternalProblem.g:1409:3: ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) )
3695 {
3696 // InternalProblem.g:1409:3: ( (otherlv_0= RULE_ID ) )
3697 // InternalProblem.g:1410:4: (otherlv_0= RULE_ID )
3698 {
3699 // InternalProblem.g:1410:4: (otherlv_0= RULE_ID )
3700 // InternalProblem.g:1411:5: otherlv_0= RULE_ID
3701 {
3702
3703 if (current==null) {
3704 current = createModelElement(grammarAccess.getTypeScopeRule());
3705 }
3706
3707 otherlv_0=(Token)match(input,RULE_ID,FOLLOW_33);
3708
3709 newLeafNode(otherlv_0, grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationCrossReference_0_0());
3710
3711
3712 }
3713
3714
3715 }
3716
3717 // InternalProblem.g:1422:3: ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' )
3718 int alt36=2;
3719 int LA36_0 = input.LA(1);
3720
3721 if ( (LA36_0==36) ) {
3722 alt36=1;
3723 }
3724 else if ( (LA36_0==37) ) {
3725 alt36=2;
3726 }
3727 else {
3728 NoViableAltException nvae =
3729 new NoViableAltException("", 36, 0, input);
3730
3731 throw nvae;
3732 }
3733 switch (alt36) {
3734 case 1 :
3735 // InternalProblem.g:1423:4: ( (lv_increment_1_0= '+=' ) )
3736 {
3737 // InternalProblem.g:1423:4: ( (lv_increment_1_0= '+=' ) )
3738 // InternalProblem.g:1424:5: (lv_increment_1_0= '+=' )
3739 {
3740 // InternalProblem.g:1424:5: (lv_increment_1_0= '+=' )
3741 // InternalProblem.g:1425:6: lv_increment_1_0= '+='
3742 {
3743 lv_increment_1_0=(Token)match(input,36,FOLLOW_17);
3744
3745 newLeafNode(lv_increment_1_0, grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0());
3746
3747
3748 if (current==null) {
3749 current = createModelElement(grammarAccess.getTypeScopeRule());
3750 }
3751 setWithLastConsumed(current, "increment", lv_increment_1_0 != null, "+=");
3752
3753
3754 }
3755
3756
3757 }
3758
3759
3760 }
3761 break;
3762 case 2 :
3763 // InternalProblem.g:1438:4: otherlv_2= '='
3764 {
3765 otherlv_2=(Token)match(input,37,FOLLOW_17);
3766
3767 newLeafNode(otherlv_2, grammarAccess.getTypeScopeAccess().getEqualsSignKeyword_1_1());
3768
3769
3770 }
3771 break;
3772
3773 }
3774
3775 // InternalProblem.g:1443:3: ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) )
3776 // InternalProblem.g:1444:4: (lv_multiplicity_3_0= ruleDefiniteMultiplicity )
3777 {
3778 // InternalProblem.g:1444:4: (lv_multiplicity_3_0= ruleDefiniteMultiplicity )
3779 // InternalProblem.g:1445:5: lv_multiplicity_3_0= ruleDefiniteMultiplicity
3780 {
3781
3782 newCompositeNode(grammarAccess.getTypeScopeAccess().getMultiplicityDefiniteMultiplicityParserRuleCall_2_0());
3783
3784 pushFollow(FOLLOW_2);
3785 lv_multiplicity_3_0=ruleDefiniteMultiplicity();
3786
3787 state._fsp--;
3788
3789
3790 if (current==null) {
3791 current = createModelElementForParent(grammarAccess.getTypeScopeRule());
3792 }
3793 set(
3794 current,
3795 "multiplicity",
3796 lv_multiplicity_3_0,
3797 "org.eclipse.viatra.solver.language.Problem.DefiniteMultiplicity");
3798 afterParserOrEnumRuleCall();
3799
3800
3801 }
3802
3803
3804 }
3805
3806
3807 }
3808
3809
3810 }
3811
3812
3813 leaveRule();
3814
3815 }
3816
3817 catch (RecognitionException re) {
3818 recover(input,re);
3819 appendSkippedTokens();
3820 }
3821 finally {
3822 }
3823 return current;
3824 }
3825 // $ANTLR end "ruleTypeScope"
3826
3827
3828 // $ANTLR start "entryRuleMultiplicity"
3829 // InternalProblem.g:1466:1: entryRuleMultiplicity returns [EObject current=null] : iv_ruleMultiplicity= ruleMultiplicity EOF ;
3830 public final EObject entryRuleMultiplicity() throws RecognitionException {
3831 EObject current = null;
3832
3833 EObject iv_ruleMultiplicity = null;
3834
3835
3836 try {
3837 // InternalProblem.g:1466:53: (iv_ruleMultiplicity= ruleMultiplicity EOF )
3838 // InternalProblem.g:1467:2: iv_ruleMultiplicity= ruleMultiplicity EOF
3839 {
3840 newCompositeNode(grammarAccess.getMultiplicityRule());
3841 pushFollow(FOLLOW_1);
3842 iv_ruleMultiplicity=ruleMultiplicity();
3843
3844 state._fsp--;
3845
3846 current =iv_ruleMultiplicity;
3847 match(input,EOF,FOLLOW_2);
3848
3849 }
3850
3851 }
3852
3853 catch (RecognitionException re) {
3854 recover(input,re);
3855 appendSkippedTokens();
3856 }
3857 finally {
3858 }
3859 return current;
3860 }
3861 // $ANTLR end "entryRuleMultiplicity"
3862
3863
3864 // $ANTLR start "ruleMultiplicity"
3865 // InternalProblem.g:1473:1: ruleMultiplicity returns [EObject current=null] : (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity ) ;
3866 public final EObject ruleMultiplicity() throws RecognitionException {
3867 EObject current = null;
3868
3869 EObject this_UnboundedMultiplicity_0 = null;
3870
3871 EObject this_DefiniteMultiplicity_1 = null;
3872
3873
3874
3875 enterRule();
3876
3877 try {
3878 // InternalProblem.g:1479:2: ( (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity ) )
3879 // InternalProblem.g:1480:2: (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity )
3880 {
3881 // InternalProblem.g:1480:2: (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity )
3882 int alt37=2;
3883 int LA37_0 = input.LA(1);
3884
3885 if ( (LA37_0==EOF||LA37_0==25) ) {
3886 alt37=1;
3887 }
3888 else if ( (LA37_0==RULE_INT) ) {
3889 alt37=2;
3890 }
3891 else {
3892 NoViableAltException nvae =
3893 new NoViableAltException("", 37, 0, input);
3894
3895 throw nvae;
3896 }
3897 switch (alt37) {
3898 case 1 :
3899 // InternalProblem.g:1481:3: this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity
3900 {
3901
3902 newCompositeNode(grammarAccess.getMultiplicityAccess().getUnboundedMultiplicityParserRuleCall_0());
3903
3904 pushFollow(FOLLOW_2);
3905 this_UnboundedMultiplicity_0=ruleUnboundedMultiplicity();
3906
3907 state._fsp--;
3908
3909
3910 current = this_UnboundedMultiplicity_0;
3911 afterParserOrEnumRuleCall();
3912
3913
3914 }
3915 break;
3916 case 2 :
3917 // InternalProblem.g:1490:3: this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity
3918 {
3919
3920 newCompositeNode(grammarAccess.getMultiplicityAccess().getDefiniteMultiplicityParserRuleCall_1());
3921
3922 pushFollow(FOLLOW_2);
3923 this_DefiniteMultiplicity_1=ruleDefiniteMultiplicity();
3924
3925 state._fsp--;
3926
3927
3928 current = this_DefiniteMultiplicity_1;
3929 afterParserOrEnumRuleCall();
3930
3931
3932 }
3933 break;
3934
3935 }
3936
3937
3938 }
3939
3940
3941 leaveRule();
3942
3943 }
3944
3945 catch (RecognitionException re) {
3946 recover(input,re);
3947 appendSkippedTokens();
3948 }
3949 finally {
3950 }
3951 return current;
3952 }
3953 // $ANTLR end "ruleMultiplicity"
3954
3955
3956 // $ANTLR start "entryRuleDefiniteMultiplicity"
3957 // InternalProblem.g:1502:1: entryRuleDefiniteMultiplicity returns [EObject current=null] : iv_ruleDefiniteMultiplicity= ruleDefiniteMultiplicity EOF ;
3958 public final EObject entryRuleDefiniteMultiplicity() throws RecognitionException {
3959 EObject current = null;
3960
3961 EObject iv_ruleDefiniteMultiplicity = null;
3962
3963
3964 try {
3965 // InternalProblem.g:1502:61: (iv_ruleDefiniteMultiplicity= ruleDefiniteMultiplicity EOF )
3966 // InternalProblem.g:1503:2: iv_ruleDefiniteMultiplicity= ruleDefiniteMultiplicity EOF
3967 {
3968 newCompositeNode(grammarAccess.getDefiniteMultiplicityRule());
3969 pushFollow(FOLLOW_1);
3970 iv_ruleDefiniteMultiplicity=ruleDefiniteMultiplicity();
3971
3972 state._fsp--;
3973
3974 current =iv_ruleDefiniteMultiplicity;
3975 match(input,EOF,FOLLOW_2);
3976
3977 }
3978
3979 }
3980
3981 catch (RecognitionException re) {
3982 recover(input,re);
3983 appendSkippedTokens();
3984 }
3985 finally {
3986 }
3987 return current;
3988 }
3989 // $ANTLR end "entryRuleDefiniteMultiplicity"
3990
3991
3992 // $ANTLR start "ruleDefiniteMultiplicity"
3993 // InternalProblem.g:1509:1: ruleDefiniteMultiplicity returns [EObject current=null] : (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity ) ;
3994 public final EObject ruleDefiniteMultiplicity() throws RecognitionException {
3995 EObject current = null;
3996
3997 EObject this_RangeMultiplicity_0 = null;
3998
3999 EObject this_ExactMultiplicity_1 = null;
4000
4001
4002
4003 enterRule();
4004
4005 try {
4006 // InternalProblem.g:1515:2: ( (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity ) )
4007 // InternalProblem.g:1516:2: (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity )
4008 {
4009 // InternalProblem.g:1516:2: (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity )
4010 int alt38=2;
4011 int LA38_0 = input.LA(1);
4012
4013 if ( (LA38_0==RULE_INT) ) {
4014 int LA38_1 = input.LA(2);
4015
4016 if ( (LA38_1==38) ) {
4017 alt38=1;
4018 }
4019 else if ( (LA38_1==EOF||LA38_1==13||LA38_1==17||LA38_1==25) ) {
4020 alt38=2;
4021 }
4022 else {
4023 NoViableAltException nvae =
4024 new NoViableAltException("", 38, 1, input);
4025
4026 throw nvae;
4027 }
4028 }
4029 else {
4030 NoViableAltException nvae =
4031 new NoViableAltException("", 38, 0, input);
4032
4033 throw nvae;
4034 }
4035 switch (alt38) {
4036 case 1 :
4037 // InternalProblem.g:1517:3: this_RangeMultiplicity_0= ruleRangeMultiplicity
4038 {
4039
4040 newCompositeNode(grammarAccess.getDefiniteMultiplicityAccess().getRangeMultiplicityParserRuleCall_0());
4041
4042 pushFollow(FOLLOW_2);
4043 this_RangeMultiplicity_0=ruleRangeMultiplicity();
4044
4045 state._fsp--;
4046
4047
4048 current = this_RangeMultiplicity_0;
4049 afterParserOrEnumRuleCall();
4050
4051
4052 }
4053 break;
4054 case 2 :
4055 // InternalProblem.g:1526:3: this_ExactMultiplicity_1= ruleExactMultiplicity
4056 {
4057
4058 newCompositeNode(grammarAccess.getDefiniteMultiplicityAccess().getExactMultiplicityParserRuleCall_1());
4059
4060 pushFollow(FOLLOW_2);
4061 this_ExactMultiplicity_1=ruleExactMultiplicity();
4062
4063 state._fsp--;
4064
4065
4066 current = this_ExactMultiplicity_1;
4067 afterParserOrEnumRuleCall();
4068
4069
4070 }
4071 break;
4072
4073 }
4074
4075
4076 }
4077
4078
4079 leaveRule();
4080
4081 }
4082
4083 catch (RecognitionException re) {
4084 recover(input,re);
4085 appendSkippedTokens();
4086 }
4087 finally {
4088 }
4089 return current;
4090 }
4091 // $ANTLR end "ruleDefiniteMultiplicity"
4092
4093
4094 // $ANTLR start "entryRuleUnboundedMultiplicity"
4095 // InternalProblem.g:1538:1: entryRuleUnboundedMultiplicity returns [EObject current=null] : iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF ;
4096 public final EObject entryRuleUnboundedMultiplicity() throws RecognitionException {
4097 EObject current = null;
4098
4099 EObject iv_ruleUnboundedMultiplicity = null;
4100
4101
4102 try {
4103 // InternalProblem.g:1538:62: (iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF )
4104 // InternalProblem.g:1539:2: iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF
4105 {
4106 newCompositeNode(grammarAccess.getUnboundedMultiplicityRule());
4107 pushFollow(FOLLOW_1);
4108 iv_ruleUnboundedMultiplicity=ruleUnboundedMultiplicity();
4109
4110 state._fsp--;
4111
4112 current =iv_ruleUnboundedMultiplicity;
4113 match(input,EOF,FOLLOW_2);
4114
4115 }
4116
4117 }
4118
4119 catch (RecognitionException re) {
4120 recover(input,re);
4121 appendSkippedTokens();
4122 }
4123 finally {
4124 }
4125 return current;
4126 }
4127 // $ANTLR end "entryRuleUnboundedMultiplicity"
4128
4129
4130 // $ANTLR start "ruleUnboundedMultiplicity"
4131 // InternalProblem.g:1545:1: ruleUnboundedMultiplicity returns [EObject current=null] : () ;
4132 public final EObject ruleUnboundedMultiplicity() throws RecognitionException {
4133 EObject current = null;
4134
4135
4136 enterRule();
4137
4138 try {
4139 // InternalProblem.g:1551:2: ( () )
4140 // InternalProblem.g:1552:2: ()
4141 {
4142 // InternalProblem.g:1552:2: ()
4143 // InternalProblem.g:1553:3:
4144 {
4145
4146 current = forceCreateModelElement(
4147 grammarAccess.getUnboundedMultiplicityAccess().getUnboundedMultiplicityAction(),
4148 current);
4149
4150
4151 }
4152
4153
4154 }
4155
4156
4157 leaveRule();
4158
4159 }
4160 finally {
4161 }
4162 return current;
4163 }
4164 // $ANTLR end "ruleUnboundedMultiplicity"
4165
4166
4167 // $ANTLR start "entryRuleRangeMultiplicity"
4168 // InternalProblem.g:1562:1: entryRuleRangeMultiplicity returns [EObject current=null] : iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF ;
4169 public final EObject entryRuleRangeMultiplicity() throws RecognitionException {
4170 EObject current = null;
4171
4172 EObject iv_ruleRangeMultiplicity = null;
4173
4174
4175 try {
4176 // InternalProblem.g:1562:58: (iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF )
4177 // InternalProblem.g:1563:2: iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF
4178 {
4179 newCompositeNode(grammarAccess.getRangeMultiplicityRule());
4180 pushFollow(FOLLOW_1);
4181 iv_ruleRangeMultiplicity=ruleRangeMultiplicity();
4182
4183 state._fsp--;
4184
4185 current =iv_ruleRangeMultiplicity;
4186 match(input,EOF,FOLLOW_2);
4187
4188 }
4189
4190 }
4191
4192 catch (RecognitionException re) {
4193 recover(input,re);
4194 appendSkippedTokens();
4195 }
4196 finally {
4197 }
4198 return current;
4199 }
4200 // $ANTLR end "entryRuleRangeMultiplicity"
4201
4202
4203 // $ANTLR start "ruleRangeMultiplicity"
4204 // InternalProblem.g:1569:1: ruleRangeMultiplicity returns [EObject current=null] : ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) ) ;
4205 public final EObject ruleRangeMultiplicity() throws RecognitionException {
4206 EObject current = null;
4207
4208 Token lv_lowerBound_0_0=null;
4209 Token otherlv_1=null;
4210 AntlrDatatypeRuleToken lv_upperBound_2_0 = null;
4211
4212
4213
4214 enterRule();
4215
4216 try {
4217 // InternalProblem.g:1575:2: ( ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) ) )
4218 // InternalProblem.g:1576:2: ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) )
4219 {
4220 // InternalProblem.g:1576:2: ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) )
4221 // InternalProblem.g:1577:3: ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) )
4222 {
4223 // InternalProblem.g:1577:3: ( (lv_lowerBound_0_0= RULE_INT ) )
4224 // InternalProblem.g:1578:4: (lv_lowerBound_0_0= RULE_INT )
4225 {
4226 // InternalProblem.g:1578:4: (lv_lowerBound_0_0= RULE_INT )
4227 // InternalProblem.g:1579:5: lv_lowerBound_0_0= RULE_INT
4228 {
4229 lv_lowerBound_0_0=(Token)match(input,RULE_INT,FOLLOW_34);
4230
4231 newLeafNode(lv_lowerBound_0_0, grammarAccess.getRangeMultiplicityAccess().getLowerBoundINTTerminalRuleCall_0_0());
4232
4233
4234 if (current==null) {
4235 current = createModelElement(grammarAccess.getRangeMultiplicityRule());
4236 }
4237 setWithLastConsumed(
4238 current,
4239 "lowerBound",
4240 lv_lowerBound_0_0,
4241 "org.eclipse.xtext.common.Terminals.INT");
4242
4243
4244 }
4245
4246
4247 }
4248
4249 otherlv_1=(Token)match(input,38,FOLLOW_35);
4250
4251 newLeafNode(otherlv_1, grammarAccess.getRangeMultiplicityAccess().getFullStopFullStopKeyword_1());
4252
4253 // InternalProblem.g:1599:3: ( (lv_upperBound_2_0= ruleUpperBound ) )
4254 // InternalProblem.g:1600:4: (lv_upperBound_2_0= ruleUpperBound )
4255 {
4256 // InternalProblem.g:1600:4: (lv_upperBound_2_0= ruleUpperBound )
4257 // InternalProblem.g:1601:5: lv_upperBound_2_0= ruleUpperBound
4258 {
4259
4260 newCompositeNode(grammarAccess.getRangeMultiplicityAccess().getUpperBoundUpperBoundParserRuleCall_2_0());
4261
4262 pushFollow(FOLLOW_2);
4263 lv_upperBound_2_0=ruleUpperBound();
4264
4265 state._fsp--;
4266
4267
4268 if (current==null) {
4269 current = createModelElementForParent(grammarAccess.getRangeMultiplicityRule());
4270 }
4271 set(
4272 current,
4273 "upperBound",
4274 lv_upperBound_2_0,
4275 "org.eclipse.viatra.solver.language.Problem.UpperBound");
4276 afterParserOrEnumRuleCall();
4277
4278
4279 }
4280
4281
4282 }
4283
4284
4285 }
4286
4287
4288 }
4289
4290
4291 leaveRule();
4292
4293 }
4294
4295 catch (RecognitionException re) {
4296 recover(input,re);
4297 appendSkippedTokens();
4298 }
4299 finally {
4300 }
4301 return current;
4302 }
4303 // $ANTLR end "ruleRangeMultiplicity"
4304
4305
4306 // $ANTLR start "entryRuleExactMultiplicity"
4307 // InternalProblem.g:1622:1: entryRuleExactMultiplicity returns [EObject current=null] : iv_ruleExactMultiplicity= ruleExactMultiplicity EOF ;
4308 public final EObject entryRuleExactMultiplicity() throws RecognitionException {
4309 EObject current = null;
4310
4311 EObject iv_ruleExactMultiplicity = null;
4312
4313
4314 try {
4315 // InternalProblem.g:1622:58: (iv_ruleExactMultiplicity= ruleExactMultiplicity EOF )
4316 // InternalProblem.g:1623:2: iv_ruleExactMultiplicity= ruleExactMultiplicity EOF
4317 {
4318 newCompositeNode(grammarAccess.getExactMultiplicityRule());
4319 pushFollow(FOLLOW_1);
4320 iv_ruleExactMultiplicity=ruleExactMultiplicity();
4321
4322 state._fsp--;
4323
4324 current =iv_ruleExactMultiplicity;
4325 match(input,EOF,FOLLOW_2);
4326
4327 }
4328
4329 }
4330
4331 catch (RecognitionException re) {
4332 recover(input,re);
4333 appendSkippedTokens();
4334 }
4335 finally {
4336 }
4337 return current;
4338 }
4339 // $ANTLR end "entryRuleExactMultiplicity"
4340
4341
4342 // $ANTLR start "ruleExactMultiplicity"
4343 // InternalProblem.g:1629:1: ruleExactMultiplicity returns [EObject current=null] : ( (lv_exactValue_0_0= RULE_INT ) ) ;
4344 public final EObject ruleExactMultiplicity() throws RecognitionException {
4345 EObject current = null;
4346
4347 Token lv_exactValue_0_0=null;
4348
4349
4350 enterRule();
4351
4352 try {
4353 // InternalProblem.g:1635:2: ( ( (lv_exactValue_0_0= RULE_INT ) ) )
4354 // InternalProblem.g:1636:2: ( (lv_exactValue_0_0= RULE_INT ) )
4355 {
4356 // InternalProblem.g:1636:2: ( (lv_exactValue_0_0= RULE_INT ) )
4357 // InternalProblem.g:1637:3: (lv_exactValue_0_0= RULE_INT )
4358 {
4359 // InternalProblem.g:1637:3: (lv_exactValue_0_0= RULE_INT )
4360 // InternalProblem.g:1638:4: lv_exactValue_0_0= RULE_INT
4361 {
4362 lv_exactValue_0_0=(Token)match(input,RULE_INT,FOLLOW_2);
4363
4364 newLeafNode(lv_exactValue_0_0, grammarAccess.getExactMultiplicityAccess().getExactValueINTTerminalRuleCall_0());
4365
4366
4367 if (current==null) {
4368 current = createModelElement(grammarAccess.getExactMultiplicityRule());
4369 }
4370 setWithLastConsumed(
4371 current,
4372 "exactValue",
4373 lv_exactValue_0_0,
4374 "org.eclipse.xtext.common.Terminals.INT");
4375
4376
4377 }
4378
4379
4380 }
4381
4382
4383 }
4384
4385
4386 leaveRule();
4387
4388 }
4389
4390 catch (RecognitionException re) {
4391 recover(input,re);
4392 appendSkippedTokens();
4393 }
4394 finally {
4395 }
4396 return current;
4397 }
4398 // $ANTLR end "ruleExactMultiplicity"
4399
4400
4401 // $ANTLR start "entryRuleUpperBound"
4402 // InternalProblem.g:1657:1: entryRuleUpperBound returns [String current=null] : iv_ruleUpperBound= ruleUpperBound EOF ;
4403 public final String entryRuleUpperBound() throws RecognitionException {
4404 String current = null;
4405
4406 AntlrDatatypeRuleToken iv_ruleUpperBound = null;
4407
4408
4409 try {
4410 // InternalProblem.g:1657:50: (iv_ruleUpperBound= ruleUpperBound EOF )
4411 // InternalProblem.g:1658:2: iv_ruleUpperBound= ruleUpperBound EOF
4412 {
4413 newCompositeNode(grammarAccess.getUpperBoundRule());
4414 pushFollow(FOLLOW_1);
4415 iv_ruleUpperBound=ruleUpperBound();
4416
4417 state._fsp--;
4418
4419 current =iv_ruleUpperBound.getText();
4420 match(input,EOF,FOLLOW_2);
4421
4422 }
4423
4424 }
4425
4426 catch (RecognitionException re) {
4427 recover(input,re);
4428 appendSkippedTokens();
4429 }
4430 finally {
4431 }
4432 return current;
4433 }
4434 // $ANTLR end "entryRuleUpperBound"
4435
4436
4437 // $ANTLR start "ruleUpperBound"
4438 // InternalProblem.g:1664:1: ruleUpperBound returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT | kw= '*' ) ;
4439 public final AntlrDatatypeRuleToken ruleUpperBound() throws RecognitionException {
4440 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
4441
4442 Token this_INT_0=null;
4443 Token kw=null;
4444
4445
4446 enterRule();
4447
4448 try {
4449 // InternalProblem.g:1670:2: ( (this_INT_0= RULE_INT | kw= '*' ) )
4450 // InternalProblem.g:1671:2: (this_INT_0= RULE_INT | kw= '*' )
4451 {
4452 // InternalProblem.g:1671:2: (this_INT_0= RULE_INT | kw= '*' )
4453 int alt39=2;
4454 int LA39_0 = input.LA(1);
4455
4456 if ( (LA39_0==RULE_INT) ) {
4457 alt39=1;
4458 }
4459 else if ( (LA39_0==39) ) {
4460 alt39=2;
4461 }
4462 else {
4463 NoViableAltException nvae =
4464 new NoViableAltException("", 39, 0, input);
4465
4466 throw nvae;
4467 }
4468 switch (alt39) {
4469 case 1 :
4470 // InternalProblem.g:1672:3: this_INT_0= RULE_INT
4471 {
4472 this_INT_0=(Token)match(input,RULE_INT,FOLLOW_2);
4473
4474 current.merge(this_INT_0);
4475
4476
4477 newLeafNode(this_INT_0, grammarAccess.getUpperBoundAccess().getINTTerminalRuleCall_0());
4478
4479
4480 }
4481 break;
4482 case 2 :
4483 // InternalProblem.g:1680:3: kw= '*'
4484 {
4485 kw=(Token)match(input,39,FOLLOW_2);
4486
4487 current.merge(kw);
4488 newLeafNode(kw, grammarAccess.getUpperBoundAccess().getAsteriskKeyword_1());
4489
4490
4491 }
4492 break;
4493
4494 }
4495
4496
4497 }
4498
4499
4500 leaveRule();
4501
4502 }
4503
4504 catch (RecognitionException re) {
4505 recover(input,re);
4506 appendSkippedTokens();
4507 }
4508 finally {
4509 }
4510 return current;
4511 }
4512 // $ANTLR end "ruleUpperBound"
4513
4514
4515 // $ANTLR start "entryRuleQuotedOrUnquotedId"
4516 // InternalProblem.g:1689:1: entryRuleQuotedOrUnquotedId returns [String current=null] : iv_ruleQuotedOrUnquotedId= ruleQuotedOrUnquotedId EOF ;
4517 public final String entryRuleQuotedOrUnquotedId() throws RecognitionException {
4518 String current = null;
4519
4520 AntlrDatatypeRuleToken iv_ruleQuotedOrUnquotedId = null;
4521
4522
4523 try {
4524 // InternalProblem.g:1689:58: (iv_ruleQuotedOrUnquotedId= ruleQuotedOrUnquotedId EOF )
4525 // InternalProblem.g:1690:2: iv_ruleQuotedOrUnquotedId= ruleQuotedOrUnquotedId EOF
4526 {
4527 newCompositeNode(grammarAccess.getQuotedOrUnquotedIdRule());
4528 pushFollow(FOLLOW_1);
4529 iv_ruleQuotedOrUnquotedId=ruleQuotedOrUnquotedId();
4530
4531 state._fsp--;
4532
4533 current =iv_ruleQuotedOrUnquotedId.getText();
4534 match(input,EOF,FOLLOW_2);
4535
4536 }
4537
4538 }
4539
4540 catch (RecognitionException re) {
4541 recover(input,re);
4542 appendSkippedTokens();
4543 }
4544 finally {
4545 }
4546 return current;
4547 }
4548 // $ANTLR end "entryRuleQuotedOrUnquotedId"
4549
4550
4551 // $ANTLR start "ruleQuotedOrUnquotedId"
4552 // InternalProblem.g:1696:1: ruleQuotedOrUnquotedId returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | this_Identifier_1= ruleIdentifier ) ;
4553 public final AntlrDatatypeRuleToken ruleQuotedOrUnquotedId() throws RecognitionException {
4554 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
4555
4556 Token this_QUOTED_ID_0=null;
4557 AntlrDatatypeRuleToken this_Identifier_1 = null;
4558
4559
4560
4561 enterRule();
4562
4563 try {
4564 // InternalProblem.g:1702:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | this_Identifier_1= ruleIdentifier ) )
4565 // InternalProblem.g:1703:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_Identifier_1= ruleIdentifier )
4566 {
4567 // InternalProblem.g:1703:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_Identifier_1= ruleIdentifier )
4568 int alt40=2;
4569 int LA40_0 = input.LA(1);
4570
4571 if ( (LA40_0==RULE_QUOTED_ID) ) {
4572 alt40=1;
4573 }
4574 else if ( (LA40_0==RULE_ID||(LA40_0>=40 && LA40_0<=41)) ) {
4575 alt40=2;
4576 }
4577 else {
4578 NoViableAltException nvae =
4579 new NoViableAltException("", 40, 0, input);
4580
4581 throw nvae;
4582 }
4583 switch (alt40) {
4584 case 1 :
4585 // InternalProblem.g:1704:3: this_QUOTED_ID_0= RULE_QUOTED_ID
4586 {
4587 this_QUOTED_ID_0=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2);
4588
4589 current.merge(this_QUOTED_ID_0);
4590
4591
4592 newLeafNode(this_QUOTED_ID_0, grammarAccess.getQuotedOrUnquotedIdAccess().getQUOTED_IDTerminalRuleCall_0());
4593
4594
4595 }
4596 break;
4597 case 2 :
4598 // InternalProblem.g:1712:3: this_Identifier_1= ruleIdentifier
4599 {
4600
4601 newCompositeNode(grammarAccess.getQuotedOrUnquotedIdAccess().getIdentifierParserRuleCall_1());
4602
4603 pushFollow(FOLLOW_2);
4604 this_Identifier_1=ruleIdentifier();
4605
4606 state._fsp--;
4607
4608
4609 current.merge(this_Identifier_1);
4610
4611
4612 afterParserOrEnumRuleCall();
4613
4614
4615 }
4616 break;
4617
4618 }
4619
4620
4621 }
4622
4623
4624 leaveRule();
4625
4626 }
4627
4628 catch (RecognitionException re) {
4629 recover(input,re);
4630 appendSkippedTokens();
4631 }
4632 finally {
4633 }
4634 return current;
4635 }
4636 // $ANTLR end "ruleQuotedOrUnquotedId"
4637
4638
4639 // $ANTLR start "entryRuleQualifiedName"
4640 // InternalProblem.g:1726:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
4641 public final String entryRuleQualifiedName() throws RecognitionException {
4642 String current = null;
4643
4644 AntlrDatatypeRuleToken iv_ruleQualifiedName = null;
4645
4646
4647 try {
4648 // InternalProblem.g:1726:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
4649 // InternalProblem.g:1727:2: iv_ruleQualifiedName= ruleQualifiedName EOF
4650 {
4651 newCompositeNode(grammarAccess.getQualifiedNameRule());
4652 pushFollow(FOLLOW_1);
4653 iv_ruleQualifiedName=ruleQualifiedName();
4654
4655 state._fsp--;
4656
4657 current =iv_ruleQualifiedName.getText();
4658 match(input,EOF,FOLLOW_2);
4659
4660 }
4661
4662 }
4663
4664 catch (RecognitionException re) {
4665 recover(input,re);
4666 appendSkippedTokens();
4667 }
4668 finally {
4669 }
4670 return current;
4671 }
4672 // $ANTLR end "entryRuleQualifiedName"
4673
4674
4675 // $ANTLR start "ruleQualifiedName"
4676 // InternalProblem.g:1733:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) ) ;
4677 public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
4678 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
4679
4680 Token this_QUOTED_ID_0=null;
4681 Token kw=null;
4682 Token this_QUOTED_ID_5=null;
4683 AntlrDatatypeRuleToken this_Identifier_1 = null;
4684
4685 AntlrDatatypeRuleToken this_Identifier_3 = null;
4686
4687
4688
4689 enterRule();
4690
4691 try {
4692 // InternalProblem.g:1739:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) ) )
4693 // InternalProblem.g:1740:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) )
4694 {
4695 // InternalProblem.g:1740:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) )
4696 int alt43=2;
4697 int LA43_0 = input.LA(1);
4698
4699 if ( (LA43_0==RULE_QUOTED_ID) ) {
4700 alt43=1;
4701 }
4702 else if ( (LA43_0==RULE_ID||(LA43_0>=40 && LA43_0<=41)) ) {
4703 alt43=2;
4704 }
4705 else {
4706 NoViableAltException nvae =
4707 new NoViableAltException("", 43, 0, input);
4708
4709 throw nvae;
4710 }
4711 switch (alt43) {
4712 case 1 :
4713 // InternalProblem.g:1741:3: this_QUOTED_ID_0= RULE_QUOTED_ID
4714 {
4715 this_QUOTED_ID_0=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2);
4716
4717 current.merge(this_QUOTED_ID_0);
4718
4719
4720 newLeafNode(this_QUOTED_ID_0, grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_0());
4721
4722
4723 }
4724 break;
4725 case 2 :
4726 // InternalProblem.g:1749:3: (this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? )
4727 {
4728 // InternalProblem.g:1749:3: (this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? )
4729 // InternalProblem.g:1750:4: this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )?
4730 {
4731
4732 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_0());
4733
4734 pushFollow(FOLLOW_36);
4735 this_Identifier_1=ruleIdentifier();
4736
4737 state._fsp--;
4738
4739
4740 current.merge(this_Identifier_1);
4741
4742
4743 afterParserOrEnumRuleCall();
4744
4745 // InternalProblem.g:1760:4: (kw= ':' this_Identifier_3= ruleIdentifier )*
4746 loop41:
4747 do {
4748 int alt41=2;
4749 int LA41_0 = input.LA(1);
4750
4751 if ( (LA41_0==34) ) {
4752 int LA41_1 = input.LA(2);
4753
4754 if ( (LA41_1==RULE_ID||(LA41_1>=40 && LA41_1<=41)) ) {
4755 alt41=1;
4756 }
4757
4758
4759 }
4760
4761
4762 switch (alt41) {
4763 case 1 :
4764 // InternalProblem.g:1761:5: kw= ':' this_Identifier_3= ruleIdentifier
4765 {
4766 kw=(Token)match(input,34,FOLLOW_3);
4767
4768 current.merge(kw);
4769 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonKeyword_1_1_0());
4770
4771
4772 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_1_1());
4773
4774 pushFollow(FOLLOW_36);
4775 this_Identifier_3=ruleIdentifier();
4776
4777 state._fsp--;
4778
4779
4780 current.merge(this_Identifier_3);
4781
4782
4783 afterParserOrEnumRuleCall();
4784
4785
4786 }
4787 break;
4788
4789 default :
4790 break loop41;
4791 }
4792 } while (true);
4793
4794 // InternalProblem.g:1777:4: (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )?
4795 int alt42=2;
4796 int LA42_0 = input.LA(1);
4797
4798 if ( (LA42_0==34) ) {
4799 alt42=1;
4800 }
4801 switch (alt42) {
4802 case 1 :
4803 // InternalProblem.g:1778:5: kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID
4804 {
4805 kw=(Token)match(input,34,FOLLOW_37);
4806
4807 current.merge(kw);
4808 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonKeyword_1_2_0());
4809
4810 this_QUOTED_ID_5=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2);
4811
4812 current.merge(this_QUOTED_ID_5);
4813
4814
4815 newLeafNode(this_QUOTED_ID_5, grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_1_2_1());
4816
4817
4818 }
4819 break;
4820
4821 }
4822
4823
4824 }
4825
4826
4827 }
4828 break;
4829
4830 }
4831
4832
4833 }
4834
4835
4836 leaveRule();
4837
4838 }
4839
4840 catch (RecognitionException re) {
4841 recover(input,re);
4842 appendSkippedTokens();
4843 }
4844 finally {
4845 }
4846 return current;
4847 }
4848 // $ANTLR end "ruleQualifiedName"
4849
4850
4851 // $ANTLR start "entryRuleIdentifier"
4852 // InternalProblem.g:1796:1: entryRuleIdentifier returns [String current=null] : iv_ruleIdentifier= ruleIdentifier EOF ;
4853 public final String entryRuleIdentifier() throws RecognitionException {
4854 String current = null;
4855
4856 AntlrDatatypeRuleToken iv_ruleIdentifier = null;
4857
4858
4859 try {
4860 // InternalProblem.g:1796:50: (iv_ruleIdentifier= ruleIdentifier EOF )
4861 // InternalProblem.g:1797:2: iv_ruleIdentifier= ruleIdentifier EOF
4862 {
4863 newCompositeNode(grammarAccess.getIdentifierRule());
4864 pushFollow(FOLLOW_1);
4865 iv_ruleIdentifier=ruleIdentifier();
4866
4867 state._fsp--;
4868
4869 current =iv_ruleIdentifier.getText();
4870 match(input,EOF,FOLLOW_2);
4871
4872 }
4873
4874 }
4875
4876 catch (RecognitionException re) {
4877 recover(input,re);
4878 appendSkippedTokens();
4879 }
4880 finally {
4881 }
4882 return current;
4883 }
4884 // $ANTLR end "entryRuleIdentifier"
4885
4886
4887 // $ANTLR start "ruleIdentifier"
4888 // InternalProblem.g:1803:1: ruleIdentifier returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ID_0= RULE_ID | kw= 'true' | kw= 'false' ) ;
4889 public final AntlrDatatypeRuleToken ruleIdentifier() throws RecognitionException {
4890 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
4891
4892 Token this_ID_0=null;
4893 Token kw=null;
4894
4895
4896 enterRule();
4897
4898 try {
4899 // InternalProblem.g:1809:2: ( (this_ID_0= RULE_ID | kw= 'true' | kw= 'false' ) )
4900 // InternalProblem.g:1810:2: (this_ID_0= RULE_ID | kw= 'true' | kw= 'false' )
4901 {
4902 // InternalProblem.g:1810:2: (this_ID_0= RULE_ID | kw= 'true' | kw= 'false' )
4903 int alt44=3;
4904 switch ( input.LA(1) ) {
4905 case RULE_ID:
4906 {
4907 alt44=1;
4908 }
4909 break;
4910 case 40:
4911 {
4912 alt44=2;
4913 }
4914 break;
4915 case 41:
4916 {
4917 alt44=3;
4918 }
4919 break;
4920 default:
4921 NoViableAltException nvae =
4922 new NoViableAltException("", 44, 0, input);
4923
4924 throw nvae;
4925 }
4926
4927 switch (alt44) {
4928 case 1 :
4929 // InternalProblem.g:1811:3: this_ID_0= RULE_ID
4930 {
4931 this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2);
4932
4933 current.merge(this_ID_0);
4934
4935
4936 newLeafNode(this_ID_0, grammarAccess.getIdentifierAccess().getIDTerminalRuleCall_0());
4937
4938
4939 }
4940 break;
4941 case 2 :
4942 // InternalProblem.g:1819:3: kw= 'true'
4943 {
4944 kw=(Token)match(input,40,FOLLOW_2);
4945
4946 current.merge(kw);
4947 newLeafNode(kw, grammarAccess.getIdentifierAccess().getTrueKeyword_1());
4948
4949
4950 }
4951 break;
4952 case 3 :
4953 // InternalProblem.g:1825:3: kw= 'false'
4954 {
4955 kw=(Token)match(input,41,FOLLOW_2);
4956
4957 current.merge(kw);
4958 newLeafNode(kw, grammarAccess.getIdentifierAccess().getFalseKeyword_2());
4959
4960
4961 }
4962 break;
4963
4964 }
4965
4966
4967 }
4968
4969
4970 leaveRule();
4971
4972 }
4973
4974 catch (RecognitionException re) {
4975 recover(input,re);
4976 appendSkippedTokens();
4977 }
4978 finally {
4979 }
4980 return current;
4981 }
4982 // $ANTLR end "ruleIdentifier"
4983
4984
4985 // $ANTLR start "ruleLogicValue"
4986 // InternalProblem.g:1834:1: ruleLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) ;
4987 public final Enumerator ruleLogicValue() throws RecognitionException {
4988 Enumerator current = null;
4989
4990 Token enumLiteral_0=null;
4991 Token enumLiteral_1=null;
4992 Token enumLiteral_2=null;
4993
4994
4995 enterRule();
4996
4997 try {
4998 // InternalProblem.g:1840:2: ( ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) )
4999 // InternalProblem.g:1841:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) )
5000 {
5001 // InternalProblem.g:1841:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) )
5002 int alt45=3;
5003 switch ( input.LA(1) ) {
5004 case 40:
5005 {
5006 alt45=1;
5007 }
5008 break;
5009 case 41:
5010 {
5011 alt45=2;
5012 }
5013 break;
5014 case 42:
5015 {
5016 alt45=3;
5017 }
5018 break;
5019 default:
5020 NoViableAltException nvae =
5021 new NoViableAltException("", 45, 0, input);
5022
5023 throw nvae;
5024 }
5025
5026 switch (alt45) {
5027 case 1 :
5028 // InternalProblem.g:1842:3: (enumLiteral_0= 'true' )
5029 {
5030 // InternalProblem.g:1842:3: (enumLiteral_0= 'true' )
5031 // InternalProblem.g:1843:4: enumLiteral_0= 'true'
5032 {
5033 enumLiteral_0=(Token)match(input,40,FOLLOW_2);
5034
5035 current = grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
5036 newLeafNode(enumLiteral_0, grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0());
5037
5038
5039 }
5040
5041
5042 }
5043 break;
5044 case 2 :
5045 // InternalProblem.g:1850:3: (enumLiteral_1= 'false' )
5046 {
5047 // InternalProblem.g:1850:3: (enumLiteral_1= 'false' )
5048 // InternalProblem.g:1851:4: enumLiteral_1= 'false'
5049 {
5050 enumLiteral_1=(Token)match(input,41,FOLLOW_2);
5051
5052 current = grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
5053 newLeafNode(enumLiteral_1, grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1());
5054
5055
5056 }
5057
5058
5059 }
5060 break;
5061 case 3 :
5062 // InternalProblem.g:1858:3: (enumLiteral_2= 'unknown' )
5063 {
5064 // InternalProblem.g:1858:3: (enumLiteral_2= 'unknown' )
5065 // InternalProblem.g:1859:4: enumLiteral_2= 'unknown'
5066 {
5067 enumLiteral_2=(Token)match(input,42,FOLLOW_2);
5068
5069 current = grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
5070 newLeafNode(enumLiteral_2, grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2());
5071
5072
5073 }
5074
5075
5076 }
5077 break;
5078
5079 }
5080
5081
5082 }
5083
5084
5085 leaveRule();
5086
5087 }
5088
5089 catch (RecognitionException re) {
5090 recover(input,re);
5091 appendSkippedTokens();
5092 }
5093 finally {
5094 }
5095 return current;
5096 }
5097 // $ANTLR end "ruleLogicValue"
5098
5099
5100 // $ANTLR start "ruleShortLogicValue"
5101 // InternalProblem.g:1869:1: ruleShortLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) ;
5102 public final Enumerator ruleShortLogicValue() throws RecognitionException {
5103 Enumerator current = null;
5104
5105 Token enumLiteral_0=null;
5106 Token enumLiteral_1=null;
5107
5108
5109 enterRule();
5110
5111 try {
5112 // InternalProblem.g:1875:2: ( ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) )
5113 // InternalProblem.g:1876:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) )
5114 {
5115 // InternalProblem.g:1876:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) )
5116 int alt46=2;
5117 int LA46_0 = input.LA(1);
5118
5119 if ( (LA46_0==32) ) {
5120 alt46=1;
5121 }
5122 else if ( (LA46_0==43) ) {
5123 alt46=2;
5124 }
5125 else {
5126 NoViableAltException nvae =
5127 new NoViableAltException("", 46, 0, input);
5128
5129 throw nvae;
5130 }
5131 switch (alt46) {
5132 case 1 :
5133 // InternalProblem.g:1877:3: (enumLiteral_0= '!' )
5134 {
5135 // InternalProblem.g:1877:3: (enumLiteral_0= '!' )
5136 // InternalProblem.g:1878:4: enumLiteral_0= '!'
5137 {
5138 enumLiteral_0=(Token)match(input,32,FOLLOW_2);
5139
5140 current = grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
5141 newLeafNode(enumLiteral_0, grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0());
5142
5143
5144 }
5145
5146
5147 }
5148 break;
5149 case 2 :
5150 // InternalProblem.g:1885:3: (enumLiteral_1= '?' )
5151 {
5152 // InternalProblem.g:1885:3: (enumLiteral_1= '?' )
5153 // InternalProblem.g:1886:4: enumLiteral_1= '?'
5154 {
5155 enumLiteral_1=(Token)match(input,43,FOLLOW_2);
5156
5157 current = grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
5158 newLeafNode(enumLiteral_1, grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1());
5159
5160
5161 }
5162
5163
5164 }
5165 break;
5166
5167 }
5168
5169
5170 }
5171
5172
5173 leaveRule();
5174
5175 }
5176
5177 catch (RecognitionException re) {
5178 recover(input,re);
5179 appendSkippedTokens();
5180 }
5181 finally {
5182 }
5183 return current;
5184 }
5185 // $ANTLR end "ruleShortLogicValue"
5186
5187 // Delegated rules
5188
5189
5190 protected DFA34 dfa34 = new DFA34(this);
5191 static final String dfa_1s = "\41\uffff";
5192 static final String dfa_2s = "\1\4\4\35\1\uffff\2\4\4\21\1\15\4\35\2\4\1\uffff\10\21\1\4\4\21";
5193 static final String dfa_3s = "\1\53\1\35\3\42\1\uffff\2\51\1\36\7\42\1\35\2\51\1\uffff\1\36\6\42\1\36\1\51\3\42\1\36";
5194 static final String dfa_4s = "\5\uffff\1\2\15\uffff\1\1\15\uffff";
5195 static final String dfa_5s = "\41\uffff}>";
5196 static final String[] dfa_6s = {
5197 "\1\2\1\uffff\1\1\31\uffff\1\5\7\uffff\1\3\1\4\1\uffff\1\5",
5198 "\1\6",
5199 "\1\6\4\uffff\1\7",
5200 "\1\6\4\uffff\1\7",
5201 "\1\6\4\uffff\1\7",
5202 "",
5203 "\1\11\1\uffff\1\10\27\uffff\1\14\11\uffff\1\12\1\13",
5204 "\1\15\1\uffff\1\20\41\uffff\1\16\1\17",
5205 "\1\21\14\uffff\1\14",
5206 "\1\21\14\uffff\1\14\3\uffff\1\22",
5207 "\1\21\14\uffff\1\14\3\uffff\1\22",
5208 "\1\21\14\uffff\1\14\3\uffff\1\22",
5209 "\1\5\24\uffff\1\23",
5210 "\1\6\4\uffff\1\7",
5211 "\1\6\4\uffff\1\7",
5212 "\1\6\4\uffff\1\7",
5213 "\1\6",
5214 "\1\25\1\uffff\1\24\41\uffff\1\26\1\27",
5215 "\1\30\1\uffff\1\33\41\uffff\1\31\1\32",
5216 "",
5217 "\1\21\14\uffff\1\14",
5218 "\1\21\14\uffff\1\14\3\uffff\1\34",
5219 "\1\21\14\uffff\1\14\3\uffff\1\34",
5220 "\1\21\14\uffff\1\14\3\uffff\1\34",
5221 "\1\21\14\uffff\1\14\3\uffff\1\22",
5222 "\1\21\14\uffff\1\14\3\uffff\1\22",
5223 "\1\21\14\uffff\1\14\3\uffff\1\22",
5224 "\1\21\14\uffff\1\14",
5225 "\1\35\1\uffff\1\40\41\uffff\1\36\1\37",
5226 "\1\21\14\uffff\1\14\3\uffff\1\34",
5227 "\1\21\14\uffff\1\14\3\uffff\1\34",
5228 "\1\21\14\uffff\1\14\3\uffff\1\34",
5229 "\1\21\14\uffff\1\14"
5230 };
5231
5232 static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
5233 static final char[] dfa_2 = DFA.unpackEncodedStringToUnsignedChars(dfa_2s);
5234 static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
5235 static final short[] dfa_4 = DFA.unpackEncodedString(dfa_4s);
5236 static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
5237 static final short[][] dfa_6 = unpackEncodedStringArray(dfa_6s);
5238
5239 class DFA34 extends DFA {
5240
5241 public DFA34(BaseRecognizer recognizer) {
5242 this.recognizer = recognizer;
5243 this.decisionNumber = 34;
5244 this.eot = dfa_1;
5245 this.eof = dfa_1;
5246 this.min = dfa_2;
5247 this.max = dfa_3;
5248 this.accept = dfa_4;
5249 this.special = dfa_5;
5250 this.transition = dfa_6;
5251 }
5252 public String getDescription() {
5253 return "1138:3: ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' ) )";
5254 }
5255 }
5256
5257
5258 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
5259 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
5260 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000030000000010L});
5261 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000002000L});
5262 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x00000B091820C052L});
5263 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000008000L});
5264 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000052000L});
5265 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000030000000050L});
5266 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000062000L});
5267 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000030000D00050L});
5268 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000030000D80050L});
5269 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000042000L});
5270 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000030000100050L});
5271 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x00000000001A0000L});
5272 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000100000L});
5273 public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000030001000010L});
5274 public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000000020L});
5275 public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000002000000L});
5276 public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000004000002L});
5277 public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000030010000010L});
5278 public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000020000000L});
5279 public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000030040000050L});
5280 public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000040020000L});
5281 public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000080002000L});
5282 public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000030100000050L});
5283 public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000082000L});
5284 public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000020002L});
5285 public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000220000000L});
5286 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000400000000L});
5287 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000070000000000L});
5288 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000010L});
5289 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000000022000L});
5290 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000003000000000L});
5291 public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000004000000000L});
5292 public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000008000000020L});
5293 public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000400000002L});
5294 public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000000040L});
5295
5296} \ No newline at end of file