aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra')
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbinbin5698 -> 6159 bytes
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g351
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens46
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java415
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java2516
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSemanticSequencer.java72
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSyntacticSequencer.java51
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/services/ProblemGrammarAccess.java412
8 files changed, 2620 insertions, 1243 deletions
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbin b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbin
index 6b594f53..cabf6537 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbin
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbin
Binary files differ
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g
index bbce5660..64db0417 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g
@@ -84,19 +84,20 @@ ruleProblem returns [EObject current=null]
84 } 84 }
85 ( 85 (
86 ( 86 (
87 lv_name_1_0=RULE_ID
88 { 87 {
89 newLeafNode(lv_name_1_0, grammarAccess.getProblemAccess().getNameIDTerminalRuleCall_0_1_0()); 88 newCompositeNode(grammarAccess.getProblemAccess().getNameIdentifierParserRuleCall_0_1_0());
90 } 89 }
90 lv_name_1_0=ruleIdentifier
91 { 91 {
92 if ($current==null) { 92 if ($current==null) {
93 $current = createModelElement(grammarAccess.getProblemRule()); 93 $current = createModelElementForParent(grammarAccess.getProblemRule());
94 } 94 }
95 setWithLastConsumed( 95 set(
96 $current, 96 $current,
97 "name", 97 "name",
98 lv_name_1_0, 98 lv_name_1_0,
99 "org.eclipse.xtext.common.Terminals.ID"); 99 "org.eclipse.viatra.solver.language.Problem.Identifier");
100 afterParserOrEnumRuleCall();
100 } 101 }
101 ) 102 )
102 ) 103 )
@@ -153,29 +154,38 @@ ruleStatement returns [EObject current=null]
153 } 154 }
154 | 155 |
155 { 156 {
156 newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_1()); 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());
157 } 167 }
158 this_PredicateDefinition_1=rulePredicateDefinition 168 this_PredicateDefinition_2=rulePredicateDefinition
159 { 169 {
160 $current = $this_PredicateDefinition_1.current; 170 $current = $this_PredicateDefinition_2.current;
161 afterParserOrEnumRuleCall(); 171 afterParserOrEnumRuleCall();
162 } 172 }
163 | 173 |
164 { 174 {
165 newCompositeNode(grammarAccess.getStatementAccess().getAssertionParserRuleCall_2()); 175 newCompositeNode(grammarAccess.getStatementAccess().getAssertionParserRuleCall_3());
166 } 176 }
167 this_Assertion_2=ruleAssertion 177 this_Assertion_3=ruleAssertion
168 { 178 {
169 $current = $this_Assertion_2.current; 179 $current = $this_Assertion_3.current;
170 afterParserOrEnumRuleCall(); 180 afterParserOrEnumRuleCall();
171 } 181 }
172 | 182 |
173 { 183 {
174 newCompositeNode(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_3()); 184 newCompositeNode(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_4());
175 } 185 }
176 this_ScopeDeclaration_3=ruleScopeDeclaration 186 this_ScopeDeclaration_4=ruleScopeDeclaration
177 { 187 {
178 $current = $this_ScopeDeclaration_3.current; 188 $current = $this_ScopeDeclaration_4.current;
179 afterParserOrEnumRuleCall(); 189 afterParserOrEnumRuleCall();
180 } 190 }
181 ) 191 )
@@ -217,19 +227,20 @@ ruleClassDeclaration returns [EObject current=null]
217 } 227 }
218 ( 228 (
219 ( 229 (
220 lv_name_2_0=RULE_ID
221 { 230 {
222 newLeafNode(lv_name_2_0, grammarAccess.getClassDeclarationAccess().getNameIDTerminalRuleCall_2_0()); 231 newCompositeNode(grammarAccess.getClassDeclarationAccess().getNameIdentifierParserRuleCall_2_0());
223 } 232 }
233 lv_name_2_0=ruleIdentifier
224 { 234 {
225 if ($current==null) { 235 if ($current==null) {
226 $current = createModelElement(grammarAccess.getClassDeclarationRule()); 236 $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
227 } 237 }
228 setWithLastConsumed( 238 set(
229 $current, 239 $current,
230 "name", 240 "name",
231 lv_name_2_0, 241 lv_name_2_0,
232 "org.eclipse.xtext.common.Terminals.ID"); 242 "org.eclipse.viatra.solver.language.Problem.Identifier");
243 afterParserOrEnumRuleCall();
233 } 244 }
234 ) 245 )
235 ) 246 )
@@ -246,7 +257,7 @@ ruleClassDeclaration returns [EObject current=null]
246 } 257 }
247 } 258 }
248 { 259 {
249 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_1_0()); 260 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationCrossReference_3_1_0());
250 } 261 }
251 ruleQualifiedName 262 ruleQualifiedName
252 { 263 {
@@ -267,7 +278,7 @@ ruleClassDeclaration returns [EObject current=null]
267 } 278 }
268 } 279 }
269 { 280 {
270 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_2_1_0()); 281 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationCrossReference_3_2_1_0());
271 } 282 }
272 ruleQualifiedName 283 ruleQualifiedName
273 { 284 {
@@ -324,6 +335,158 @@ ruleClassDeclaration returns [EObject current=null]
324 ) 335 )
325; 336;
326 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
327// Entry rule entryRuleReferenceDeclaration 490// Entry rule entryRuleReferenceDeclaration
328entryRuleReferenceDeclaration returns [EObject current=null]: 491entryRuleReferenceDeclaration returns [EObject current=null]:
329 { newCompositeNode(grammarAccess.getReferenceDeclarationRule()); } 492 { newCompositeNode(grammarAccess.getReferenceDeclarationRule()); }
@@ -360,7 +523,7 @@ ruleReferenceDeclaration returns [EObject current=null]
360 { 523 {
361 newLeafNode(otherlv_1, grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1()); 524 newLeafNode(otherlv_1, grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1());
362 } 525 }
363 ) 526 )?
364 ( 527 (
365 ( 528 (
366 { 529 {
@@ -369,7 +532,7 @@ ruleReferenceDeclaration returns [EObject current=null]
369 } 532 }
370 } 533 }
371 { 534 {
372 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeClassDeclarationCrossReference_1_0()); 535 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeRelationCrossReference_1_0());
373 } 536 }
374 ruleQualifiedName 537 ruleQualifiedName
375 { 538 {
@@ -408,19 +571,20 @@ ruleReferenceDeclaration returns [EObject current=null]
408 )? 571 )?
409 ( 572 (
410 ( 573 (
411 lv_name_6_0=RULE_ID
412 { 574 {
413 newLeafNode(lv_name_6_0, grammarAccess.getReferenceDeclarationAccess().getNameIDTerminalRuleCall_3_0()); 575 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getNameIdentifierParserRuleCall_3_0());
414 } 576 }
577 lv_name_6_0=ruleIdentifier
415 { 578 {
416 if ($current==null) { 579 if ($current==null) {
417 $current = createModelElement(grammarAccess.getReferenceDeclarationRule()); 580 $current = createModelElementForParent(grammarAccess.getReferenceDeclarationRule());
418 } 581 }
419 setWithLastConsumed( 582 set(
420 $current, 583 $current,
421 "name", 584 "name",
422 lv_name_6_0, 585 lv_name_6_0,
423 "org.eclipse.xtext.common.Terminals.ID"); 586 "org.eclipse.viatra.solver.language.Problem.Identifier");
587 afterParserOrEnumRuleCall();
424 } 588 }
425 ) 589 )
426 ) 590 )
@@ -496,19 +660,20 @@ rulePredicateDefinition returns [EObject current=null]
496 ) 660 )
497 ( 661 (
498 ( 662 (
499 lv_name_3_0=RULE_ID
500 { 663 {
501 newLeafNode(lv_name_3_0, grammarAccess.getPredicateDefinitionAccess().getNameIDTerminalRuleCall_1_0()); 664 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getNameIdentifierParserRuleCall_1_0());
502 } 665 }
666 lv_name_3_0=ruleIdentifier
503 { 667 {
504 if ($current==null) { 668 if ($current==null) {
505 $current = createModelElement(grammarAccess.getPredicateDefinitionRule()); 669 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
506 } 670 }
507 setWithLastConsumed( 671 set(
508 $current, 672 $current,
509 "name", 673 "name",
510 lv_name_3_0, 674 lv_name_3_0,
511 "org.eclipse.xtext.common.Terminals.ID"); 675 "org.eclipse.viatra.solver.language.Problem.Identifier");
676 afterParserOrEnumRuleCall();
512 } 677 }
513 ) 678 )
514 ) 679 )
@@ -646,27 +811,31 @@ ruleParameter returns [EObject current=null]
646 $current = createModelElement(grammarAccess.getParameterRule()); 811 $current = createModelElement(grammarAccess.getParameterRule());
647 } 812 }
648 } 813 }
649 otherlv_0=RULE_ID
650 { 814 {
651 newLeafNode(otherlv_0, grammarAccess.getParameterAccess().getParameterTypeClassDeclarationCrossReference_0_0()); 815 newCompositeNode(grammarAccess.getParameterAccess().getParameterTypeRelationCrossReference_0_0());
816 }
817 ruleQualifiedName
818 {
819 afterParserOrEnumRuleCall();
652 } 820 }
653 ) 821 )
654 ) 822 )?
655 ( 823 (
656 ( 824 (
657 lv_name_1_0=RULE_ID
658 { 825 {
659 newLeafNode(lv_name_1_0, grammarAccess.getParameterAccess().getNameIDTerminalRuleCall_1_0()); 826 newCompositeNode(grammarAccess.getParameterAccess().getNameIdentifierParserRuleCall_1_0());
660 } 827 }
828 lv_name_1_0=ruleIdentifier
661 { 829 {
662 if ($current==null) { 830 if ($current==null) {
663 $current = createModelElement(grammarAccess.getParameterRule()); 831 $current = createModelElementForParent(grammarAccess.getParameterRule());
664 } 832 }
665 setWithLastConsumed( 833 set(
666 $current, 834 $current,
667 "name", 835 "name",
668 lv_name_1_0, 836 lv_name_1_0,
669 "org.eclipse.xtext.common.Terminals.ID"); 837 "org.eclipse.viatra.solver.language.Problem.Identifier");
838 afterParserOrEnumRuleCall();
670 } 839 }
671 ) 840 )
672 ) 841 )
@@ -939,9 +1108,12 @@ ruleArgument returns [EObject current=null]
939 $current = createModelElement(grammarAccess.getArgumentRule()); 1108 $current = createModelElement(grammarAccess.getArgumentRule());
940 } 1109 }
941 } 1110 }
942 otherlv_0=RULE_ID
943 { 1111 {
944 newLeafNode(otherlv_0, grammarAccess.getArgumentAccess().getVariableVariableCrossReference_0()); 1112 newCompositeNode(grammarAccess.getArgumentAccess().getVariableOrNodeVariableOrNodeCrossReference_0());
1113 }
1114 ruleQualifiedName
1115 {
1116 afterParserOrEnumRuleCall();
945 } 1117 }
946 ) 1118 )
947 ) 1119 )
@@ -1513,6 +1685,43 @@ ruleUpperBound returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToke
1513 ) 1685 )
1514; 1686;
1515 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
1516// Entry rule entryRuleQualifiedName 1725// Entry rule entryRuleQualifiedName
1517entryRuleQualifiedName returns [String current=null]: 1726entryRuleQualifiedName returns [String current=null]:
1518 { newCompositeNode(grammarAccess.getQualifiedNameRule()); } 1727 { newCompositeNode(grammarAccess.getQualifiedNameRule()); }
@@ -1538,12 +1747,15 @@ ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleT
1538 } 1747 }
1539 | 1748 |
1540 ( 1749 (
1541 this_ID_1=RULE_ID
1542 { 1750 {
1543 $current.merge(this_ID_1); 1751 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_0());
1544 } 1752 }
1753 this_Identifier_1=ruleIdentifier
1545 { 1754 {
1546 newLeafNode(this_ID_1, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_0()); 1755 $current.merge(this_Identifier_1);
1756 }
1757 {
1758 afterParserOrEnumRuleCall();
1547 } 1759 }
1548 ( 1760 (
1549 kw=':' 1761 kw=':'
@@ -1551,12 +1763,15 @@ ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleT
1551 $current.merge(kw); 1763 $current.merge(kw);
1552 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonKeyword_1_1_0()); 1764 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonKeyword_1_1_0());
1553 } 1765 }
1554 this_ID_3=RULE_ID
1555 { 1766 {
1556 $current.merge(this_ID_3); 1767 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_1_1());
1557 } 1768 }
1769 this_Identifier_3=ruleIdentifier
1558 { 1770 {
1559 newLeafNode(this_ID_3, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1_1()); 1771 $current.merge(this_Identifier_3);
1772 }
1773 {
1774 afterParserOrEnumRuleCall();
1560 } 1775 }
1561 )* 1776 )*
1562 ( 1777 (
@@ -1577,6 +1792,44 @@ ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleT
1577 ) 1792 )
1578; 1793;
1579 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
1580// Rule LogicValue 1833// Rule LogicValue
1581ruleLogicValue returns [Enumerator current=null] 1834ruleLogicValue returns [Enumerator current=null]
1582@init { 1835@init {
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens
index 862a9a36..e968ac14 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens
@@ -1,32 +1,33 @@
1'!'=31 1'!'=32
2'('=28 2'('=29
3')'=29 3')'=30
4'*'=38 4'*'=39
5'+'=32 5'+'=33
6'+='=35 6'+='=36
7','=17 7','=17
8'.'=13 8'.'=13
9'..'=37 9'..'=38
10':'=33 10':'=34
11':-'=30 11':-'=31
12';'=19 12';'=19
13'='=36 13'='=37
14'?'=42 14'?'=43
15'['=23 15'['=24
16']'=24 16']'=25
17'abstract'=14 17'abstract'=14
18'class'=15 18'class'=15
19'contains'=21 19'contains'=22
20'error'=26 20'enum'=21
21'error'=27
21'extends'=16 22'extends'=16
22'false'=40 23'false'=41
23'opposite'=25 24'opposite'=26
24'pred'=27 25'pred'=28
25'problem'=12 26'problem'=12
26'refers'=22 27'refers'=23
27'scope'=34 28'scope'=35
28'true'=39 29'true'=40
29'unknown'=41 30'unknown'=42
30'{'=18 31'{'=18
31'}'=20 32'}'=20
32RULE_ANY_OTHER=11 33RULE_ANY_OTHER=11
@@ -68,3 +69,4 @@ T__39=39
68T__40=40 69T__40=40
69T__41=41 70T__41=41
70T__42=42 71T__42=42
72T__43=43
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java
index a1703c93..1fd1e166 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java
@@ -12,31 +12,16 @@ import java.util.ArrayList;
12 12
13@SuppressWarnings("all") 13@SuppressWarnings("all")
14public class InternalProblemLexer extends Lexer { 14public class InternalProblemLexer extends Lexer {
15 public static final int RULE_STRING=7;
16 public static final int RULE_SL_COMMENT=9;
17 public static final int T__19=19; 15 public static final int T__19=19;
18 public static final int T__15=15; 16 public static final int T__15=15;
19 public static final int T__37=37;
20 public static final int T__16=16; 17 public static final int T__16=16;
21 public static final int T__38=38;
22 public static final int T__17=17; 18 public static final int T__17=17;
23 public static final int T__39=39;
24 public static final int T__18=18; 19 public static final int T__18=18;
25 public static final int T__33=33;
26 public static final int T__12=12; 20 public static final int T__12=12;
27 public static final int T__34=34;
28 public static final int T__13=13; 21 public static final int T__13=13;
29 public static final int T__35=35;
30 public static final int T__14=14; 22 public static final int T__14=14;
31 public static final int T__36=36;
32 public static final int EOF=-1;
33 public static final int T__30=30;
34 public static final int T__31=31;
35 public static final int T__32=32;
36 public static final int RULE_ID=4; 23 public static final int RULE_ID=4;
37 public static final int RULE_WS=10;
38 public static final int RULE_QUOTED_ID=6; 24 public static final int RULE_QUOTED_ID=6;
39 public static final int RULE_ANY_OTHER=11;
40 public static final int T__26=26; 25 public static final int T__26=26;
41 public static final int T__27=27; 26 public static final int T__27=27;
42 public static final int T__28=28; 27 public static final int T__28=28;
@@ -47,11 +32,27 @@ public class InternalProblemLexer extends Lexer {
47 public static final int T__23=23; 32 public static final int T__23=23;
48 public static final int T__24=24; 33 public static final int T__24=24;
49 public static final int T__25=25; 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;
50 public static final int T__40=40; 52 public static final int T__40=40;
51 public static final int T__41=41; 53 public static final int T__41=41;
52 public static final int T__20=20;
53 public static final int T__42=42; 54 public static final int T__42=42;
54 public static final int T__21=21; 55 public static final int T__43=43;
55 56
56 // delegates 57 // delegates
57 // delegators 58 // delegators
@@ -255,10 +256,10 @@ public class InternalProblemLexer extends Lexer {
255 try { 256 try {
256 int _type = T__21; 257 int _type = T__21;
257 int _channel = DEFAULT_TOKEN_CHANNEL; 258 int _channel = DEFAULT_TOKEN_CHANNEL;
258 // InternalProblem.g:20:7: ( 'contains' ) 259 // InternalProblem.g:20:7: ( 'enum' )
259 // InternalProblem.g:20:9: 'contains' 260 // InternalProblem.g:20:9: 'enum'
260 { 261 {
261 match("contains"); 262 match("enum");
262 263
263 264
264 } 265 }
@@ -276,10 +277,10 @@ public class InternalProblemLexer extends Lexer {
276 try { 277 try {
277 int _type = T__22; 278 int _type = T__22;
278 int _channel = DEFAULT_TOKEN_CHANNEL; 279 int _channel = DEFAULT_TOKEN_CHANNEL;
279 // InternalProblem.g:21:7: ( 'refers' ) 280 // InternalProblem.g:21:7: ( 'contains' )
280 // InternalProblem.g:21:9: 'refers' 281 // InternalProblem.g:21:9: 'contains'
281 { 282 {
282 match("refers"); 283 match("contains");
283 284
284 285
285 } 286 }
@@ -297,10 +298,11 @@ public class InternalProblemLexer extends Lexer {
297 try { 298 try {
298 int _type = T__23; 299 int _type = T__23;
299 int _channel = DEFAULT_TOKEN_CHANNEL; 300 int _channel = DEFAULT_TOKEN_CHANNEL;
300 // InternalProblem.g:22:7: ( '[' ) 301 // InternalProblem.g:22:7: ( 'refers' )
301 // InternalProblem.g:22:9: '[' 302 // InternalProblem.g:22:9: 'refers'
302 { 303 {
303 match('['); 304 match("refers");
305
304 306
305 } 307 }
306 308
@@ -317,10 +319,10 @@ public class InternalProblemLexer extends Lexer {
317 try { 319 try {
318 int _type = T__24; 320 int _type = T__24;
319 int _channel = DEFAULT_TOKEN_CHANNEL; 321 int _channel = DEFAULT_TOKEN_CHANNEL;
320 // InternalProblem.g:23:7: ( ']' ) 322 // InternalProblem.g:23:7: ( '[' )
321 // InternalProblem.g:23:9: ']' 323 // InternalProblem.g:23:9: '['
322 { 324 {
323 match(']'); 325 match('[');
324 326
325 } 327 }
326 328
@@ -337,11 +339,10 @@ public class InternalProblemLexer extends Lexer {
337 try { 339 try {
338 int _type = T__25; 340 int _type = T__25;
339 int _channel = DEFAULT_TOKEN_CHANNEL; 341 int _channel = DEFAULT_TOKEN_CHANNEL;
340 // InternalProblem.g:24:7: ( 'opposite' ) 342 // InternalProblem.g:24:7: ( ']' )
341 // InternalProblem.g:24:9: 'opposite' 343 // InternalProblem.g:24:9: ']'
342 { 344 {
343 match("opposite"); 345 match(']');
344
345 346
346 } 347 }
347 348
@@ -358,10 +359,10 @@ public class InternalProblemLexer extends Lexer {
358 try { 359 try {
359 int _type = T__26; 360 int _type = T__26;
360 int _channel = DEFAULT_TOKEN_CHANNEL; 361 int _channel = DEFAULT_TOKEN_CHANNEL;
361 // InternalProblem.g:25:7: ( 'error' ) 362 // InternalProblem.g:25:7: ( 'opposite' )
362 // InternalProblem.g:25:9: 'error' 363 // InternalProblem.g:25:9: 'opposite'
363 { 364 {
364 match("error"); 365 match("opposite");
365 366
366 367
367 } 368 }
@@ -379,10 +380,10 @@ public class InternalProblemLexer extends Lexer {
379 try { 380 try {
380 int _type = T__27; 381 int _type = T__27;
381 int _channel = DEFAULT_TOKEN_CHANNEL; 382 int _channel = DEFAULT_TOKEN_CHANNEL;
382 // InternalProblem.g:26:7: ( 'pred' ) 383 // InternalProblem.g:26:7: ( 'error' )
383 // InternalProblem.g:26:9: 'pred' 384 // InternalProblem.g:26:9: 'error'
384 { 385 {
385 match("pred"); 386 match("error");
386 387
387 388
388 } 389 }
@@ -400,10 +401,11 @@ public class InternalProblemLexer extends Lexer {
400 try { 401 try {
401 int _type = T__28; 402 int _type = T__28;
402 int _channel = DEFAULT_TOKEN_CHANNEL; 403 int _channel = DEFAULT_TOKEN_CHANNEL;
403 // InternalProblem.g:27:7: ( '(' ) 404 // InternalProblem.g:27:7: ( 'pred' )
404 // InternalProblem.g:27:9: '(' 405 // InternalProblem.g:27:9: 'pred'
405 { 406 {
406 match('('); 407 match("pred");
408
407 409
408 } 410 }
409 411
@@ -420,10 +422,10 @@ public class InternalProblemLexer extends Lexer {
420 try { 422 try {
421 int _type = T__29; 423 int _type = T__29;
422 int _channel = DEFAULT_TOKEN_CHANNEL; 424 int _channel = DEFAULT_TOKEN_CHANNEL;
423 // InternalProblem.g:28:7: ( ')' ) 425 // InternalProblem.g:28:7: ( '(' )
424 // InternalProblem.g:28:9: ')' 426 // InternalProblem.g:28:9: '('
425 { 427 {
426 match(')'); 428 match('(');
427 429
428 } 430 }
429 431
@@ -440,11 +442,10 @@ public class InternalProblemLexer extends Lexer {
440 try { 442 try {
441 int _type = T__30; 443 int _type = T__30;
442 int _channel = DEFAULT_TOKEN_CHANNEL; 444 int _channel = DEFAULT_TOKEN_CHANNEL;
443 // InternalProblem.g:29:7: ( ':-' ) 445 // InternalProblem.g:29:7: ( ')' )
444 // InternalProblem.g:29:9: ':-' 446 // InternalProblem.g:29:9: ')'
445 { 447 {
446 match(":-"); 448 match(')');
447
448 449
449 } 450 }
450 451
@@ -461,10 +462,11 @@ public class InternalProblemLexer extends Lexer {
461 try { 462 try {
462 int _type = T__31; 463 int _type = T__31;
463 int _channel = DEFAULT_TOKEN_CHANNEL; 464 int _channel = DEFAULT_TOKEN_CHANNEL;
464 // InternalProblem.g:30:7: ( '!' ) 465 // InternalProblem.g:30:7: ( ':-' )
465 // InternalProblem.g:30:9: '!' 466 // InternalProblem.g:30:9: ':-'
466 { 467 {
467 match('!'); 468 match(":-");
469
468 470
469 } 471 }
470 472
@@ -481,10 +483,10 @@ public class InternalProblemLexer extends Lexer {
481 try { 483 try {
482 int _type = T__32; 484 int _type = T__32;
483 int _channel = DEFAULT_TOKEN_CHANNEL; 485 int _channel = DEFAULT_TOKEN_CHANNEL;
484 // InternalProblem.g:31:7: ( '+' ) 486 // InternalProblem.g:31:7: ( '!' )
485 // InternalProblem.g:31:9: '+' 487 // InternalProblem.g:31:9: '!'
486 { 488 {
487 match('+'); 489 match('!');
488 490
489 } 491 }
490 492
@@ -501,10 +503,10 @@ public class InternalProblemLexer extends Lexer {
501 try { 503 try {
502 int _type = T__33; 504 int _type = T__33;
503 int _channel = DEFAULT_TOKEN_CHANNEL; 505 int _channel = DEFAULT_TOKEN_CHANNEL;
504 // InternalProblem.g:32:7: ( ':' ) 506 // InternalProblem.g:32:7: ( '+' )
505 // InternalProblem.g:32:9: ':' 507 // InternalProblem.g:32:9: '+'
506 { 508 {
507 match(':'); 509 match('+');
508 510
509 } 511 }
510 512
@@ -521,11 +523,10 @@ public class InternalProblemLexer extends Lexer {
521 try { 523 try {
522 int _type = T__34; 524 int _type = T__34;
523 int _channel = DEFAULT_TOKEN_CHANNEL; 525 int _channel = DEFAULT_TOKEN_CHANNEL;
524 // InternalProblem.g:33:7: ( 'scope' ) 526 // InternalProblem.g:33:7: ( ':' )
525 // InternalProblem.g:33:9: 'scope' 527 // InternalProblem.g:33:9: ':'
526 { 528 {
527 match("scope"); 529 match(':');
528
529 530
530 } 531 }
531 532
@@ -542,10 +543,10 @@ public class InternalProblemLexer extends Lexer {
542 try { 543 try {
543 int _type = T__35; 544 int _type = T__35;
544 int _channel = DEFAULT_TOKEN_CHANNEL; 545 int _channel = DEFAULT_TOKEN_CHANNEL;
545 // InternalProblem.g:34:7: ( '+=' ) 546 // InternalProblem.g:34:7: ( 'scope' )
546 // InternalProblem.g:34:9: '+=' 547 // InternalProblem.g:34:9: 'scope'
547 { 548 {
548 match("+="); 549 match("scope");
549 550
550 551
551 } 552 }
@@ -563,10 +564,11 @@ public class InternalProblemLexer extends Lexer {
563 try { 564 try {
564 int _type = T__36; 565 int _type = T__36;
565 int _channel = DEFAULT_TOKEN_CHANNEL; 566 int _channel = DEFAULT_TOKEN_CHANNEL;
566 // InternalProblem.g:35:7: ( '=' ) 567 // InternalProblem.g:35:7: ( '+=' )
567 // InternalProblem.g:35:9: '=' 568 // InternalProblem.g:35:9: '+='
568 { 569 {
569 match('='); 570 match("+=");
571
570 572
571 } 573 }
572 574
@@ -583,11 +585,10 @@ public class InternalProblemLexer extends Lexer {
583 try { 585 try {
584 int _type = T__37; 586 int _type = T__37;
585 int _channel = DEFAULT_TOKEN_CHANNEL; 587 int _channel = DEFAULT_TOKEN_CHANNEL;
586 // InternalProblem.g:36:7: ( '..' ) 588 // InternalProblem.g:36:7: ( '=' )
587 // InternalProblem.g:36:9: '..' 589 // InternalProblem.g:36:9: '='
588 { 590 {
589 match(".."); 591 match('=');
590
591 592
592 } 593 }
593 594
@@ -604,10 +605,11 @@ public class InternalProblemLexer extends Lexer {
604 try { 605 try {
605 int _type = T__38; 606 int _type = T__38;
606 int _channel = DEFAULT_TOKEN_CHANNEL; 607 int _channel = DEFAULT_TOKEN_CHANNEL;
607 // InternalProblem.g:37:7: ( '*' ) 608 // InternalProblem.g:37:7: ( '..' )
608 // InternalProblem.g:37:9: '*' 609 // InternalProblem.g:37:9: '..'
609 { 610 {
610 match('*'); 611 match("..");
612
611 613
612 } 614 }
613 615
@@ -624,11 +626,10 @@ public class InternalProblemLexer extends Lexer {
624 try { 626 try {
625 int _type = T__39; 627 int _type = T__39;
626 int _channel = DEFAULT_TOKEN_CHANNEL; 628 int _channel = DEFAULT_TOKEN_CHANNEL;
627 // InternalProblem.g:38:7: ( 'true' ) 629 // InternalProblem.g:38:7: ( '*' )
628 // InternalProblem.g:38:9: 'true' 630 // InternalProblem.g:38:9: '*'
629 { 631 {
630 match("true"); 632 match('*');
631
632 633
633 } 634 }
634 635
@@ -645,10 +646,10 @@ public class InternalProblemLexer extends Lexer {
645 try { 646 try {
646 int _type = T__40; 647 int _type = T__40;
647 int _channel = DEFAULT_TOKEN_CHANNEL; 648 int _channel = DEFAULT_TOKEN_CHANNEL;
648 // InternalProblem.g:39:7: ( 'false' ) 649 // InternalProblem.g:39:7: ( 'true' )
649 // InternalProblem.g:39:9: 'false' 650 // InternalProblem.g:39:9: 'true'
650 { 651 {
651 match("false"); 652 match("true");
652 653
653 654
654 } 655 }
@@ -666,10 +667,10 @@ public class InternalProblemLexer extends Lexer {
666 try { 667 try {
667 int _type = T__41; 668 int _type = T__41;
668 int _channel = DEFAULT_TOKEN_CHANNEL; 669 int _channel = DEFAULT_TOKEN_CHANNEL;
669 // InternalProblem.g:40:7: ( 'unknown' ) 670 // InternalProblem.g:40:7: ( 'false' )
670 // InternalProblem.g:40:9: 'unknown' 671 // InternalProblem.g:40:9: 'false'
671 { 672 {
672 match("unknown"); 673 match("false");
673 674
674 675
675 } 676 }
@@ -687,10 +688,11 @@ public class InternalProblemLexer extends Lexer {
687 try { 688 try {
688 int _type = T__42; 689 int _type = T__42;
689 int _channel = DEFAULT_TOKEN_CHANNEL; 690 int _channel = DEFAULT_TOKEN_CHANNEL;
690 // InternalProblem.g:41:7: ( '?' ) 691 // InternalProblem.g:41:7: ( 'unknown' )
691 // InternalProblem.g:41:9: '?' 692 // InternalProblem.g:41:9: 'unknown'
692 { 693 {
693 match('?'); 694 match("unknown");
695
694 696
695 } 697 }
696 698
@@ -702,16 +704,36 @@ public class InternalProblemLexer extends Lexer {
702 } 704 }
703 // $ANTLR end "T__42" 705 // $ANTLR end "T__42"
704 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
705 // $ANTLR start "RULE_STRING" 727 // $ANTLR start "RULE_STRING"
706 public final void mRULE_STRING() throws RecognitionException { 728 public final void mRULE_STRING() throws RecognitionException {
707 try { 729 try {
708 int _type = RULE_STRING; 730 int _type = RULE_STRING;
709 int _channel = DEFAULT_TOKEN_CHANNEL; 731 int _channel = DEFAULT_TOKEN_CHANNEL;
710 // InternalProblem.g:1642:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' ) 732 // InternalProblem.g:1895:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
711 // InternalProblem.g:1642:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' 733 // InternalProblem.g:1895:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
712 { 734 {
713 match('\"'); 735 match('\"');
714 // InternalProblem.g:1642:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* 736 // InternalProblem.g:1895:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
715 loop1: 737 loop1:
716 do { 738 do {
717 int alt1=3; 739 int alt1=3;
@@ -727,7 +749,7 @@ public class InternalProblemLexer extends Lexer {
727 749
728 switch (alt1) { 750 switch (alt1) {
729 case 1 : 751 case 1 :
730 // InternalProblem.g:1642:20: '\\\\' . 752 // InternalProblem.g:1895:20: '\\\\' .
731 { 753 {
732 match('\\'); 754 match('\\');
733 matchAny(); 755 matchAny();
@@ -735,7 +757,7 @@ public class InternalProblemLexer extends Lexer {
735 } 757 }
736 break; 758 break;
737 case 2 : 759 case 2 :
738 // InternalProblem.g:1642:27: ~ ( ( '\\\\' | '\"' ) ) 760 // InternalProblem.g:1895:27: ~ ( ( '\\\\' | '\"' ) )
739 { 761 {
740 if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { 762 if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
741 input.consume(); 763 input.consume();
@@ -772,11 +794,11 @@ public class InternalProblemLexer extends Lexer {
772 try { 794 try {
773 int _type = RULE_QUOTED_ID; 795 int _type = RULE_QUOTED_ID;
774 int _channel = DEFAULT_TOKEN_CHANNEL; 796 int _channel = DEFAULT_TOKEN_CHANNEL;
775 // InternalProblem.g:1644:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) 797 // InternalProblem.g:1897:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
776 // InternalProblem.g:1644:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' 798 // InternalProblem.g:1897:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
777 { 799 {
778 match('\''); 800 match('\'');
779 // InternalProblem.g:1644:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* 801 // InternalProblem.g:1897:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
780 loop2: 802 loop2:
781 do { 803 do {
782 int alt2=3; 804 int alt2=3;
@@ -792,7 +814,7 @@ public class InternalProblemLexer extends Lexer {
792 814
793 switch (alt2) { 815 switch (alt2) {
794 case 1 : 816 case 1 :
795 // InternalProblem.g:1644:24: '\\\\' . 817 // InternalProblem.g:1897:24: '\\\\' .
796 { 818 {
797 match('\\'); 819 match('\\');
798 matchAny(); 820 matchAny();
@@ -800,7 +822,7 @@ public class InternalProblemLexer extends Lexer {
800 } 822 }
801 break; 823 break;
802 case 2 : 824 case 2 :
803 // InternalProblem.g:1644:31: ~ ( ( '\\\\' | '\\'' ) ) 825 // InternalProblem.g:1897:31: ~ ( ( '\\\\' | '\\'' ) )
804 { 826 {
805 if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { 827 if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
806 input.consume(); 828 input.consume();
@@ -837,10 +859,10 @@ public class InternalProblemLexer extends Lexer {
837 try { 859 try {
838 int _type = RULE_ID; 860 int _type = RULE_ID;
839 int _channel = DEFAULT_TOKEN_CHANNEL; 861 int _channel = DEFAULT_TOKEN_CHANNEL;
840 // InternalProblem.g:1646:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) 862 // InternalProblem.g:1899:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
841 // InternalProblem.g:1646:11: ( '^' )? ( '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' )*
842 { 864 {
843 // InternalProblem.g:1646:11: ( '^' )? 865 // InternalProblem.g:1899:11: ( '^' )?
844 int alt3=2; 866 int alt3=2;
845 int LA3_0 = input.LA(1); 867 int LA3_0 = input.LA(1);
846 868
@@ -849,7 +871,7 @@ public class InternalProblemLexer extends Lexer {
849 } 871 }
850 switch (alt3) { 872 switch (alt3) {
851 case 1 : 873 case 1 :
852 // InternalProblem.g:1646:11: '^' 874 // InternalProblem.g:1899:11: '^'
853 { 875 {
854 match('^'); 876 match('^');
855 877
@@ -867,7 +889,7 @@ public class InternalProblemLexer extends Lexer {
867 recover(mse); 889 recover(mse);
868 throw mse;} 890 throw mse;}
869 891
870 // InternalProblem.g:1646:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* 892 // InternalProblem.g:1899:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
871 loop4: 893 loop4:
872 do { 894 do {
873 int alt4=2; 895 int alt4=2;
@@ -916,10 +938,10 @@ public class InternalProblemLexer extends Lexer {
916 try { 938 try {
917 int _type = RULE_INT; 939 int _type = RULE_INT;
918 int _channel = DEFAULT_TOKEN_CHANNEL; 940 int _channel = DEFAULT_TOKEN_CHANNEL;
919 // InternalProblem.g:1648:10: ( ( '0' .. '9' )+ ) 941 // InternalProblem.g:1901:10: ( ( '0' .. '9' )+ )
920 // InternalProblem.g:1648:12: ( '0' .. '9' )+ 942 // InternalProblem.g:1901:12: ( '0' .. '9' )+
921 { 943 {
922 // InternalProblem.g:1648:12: ( '0' .. '9' )+ 944 // InternalProblem.g:1901:12: ( '0' .. '9' )+
923 int cnt5=0; 945 int cnt5=0;
924 loop5: 946 loop5:
925 do { 947 do {
@@ -933,7 +955,7 @@ public class InternalProblemLexer extends Lexer {
933 955
934 switch (alt5) { 956 switch (alt5) {
935 case 1 : 957 case 1 :
936 // InternalProblem.g:1648:13: '0' .. '9' 958 // InternalProblem.g:1901:13: '0' .. '9'
937 { 959 {
938 matchRange('0','9'); 960 matchRange('0','9');
939 961
@@ -965,12 +987,12 @@ public class InternalProblemLexer extends Lexer {
965 try { 987 try {
966 int _type = RULE_ML_COMMENT; 988 int _type = RULE_ML_COMMENT;
967 int _channel = DEFAULT_TOKEN_CHANNEL; 989 int _channel = DEFAULT_TOKEN_CHANNEL;
968 // InternalProblem.g:1650:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) 990 // InternalProblem.g:1903:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
969 // InternalProblem.g:1650:19: '/*' ( options {greedy=false; } : . )* '*/' 991 // InternalProblem.g:1903:19: '/*' ( options {greedy=false; } : . )* '*/'
970 { 992 {
971 match("/*"); 993 match("/*");
972 994
973 // InternalProblem.g:1650:24: ( options {greedy=false; } : . )* 995 // InternalProblem.g:1903:24: ( options {greedy=false; } : . )*
974 loop6: 996 loop6:
975 do { 997 do {
976 int alt6=2; 998 int alt6=2;
@@ -995,7 +1017,7 @@ public class InternalProblemLexer extends Lexer {
995 1017
996 switch (alt6) { 1018 switch (alt6) {
997 case 1 : 1019 case 1 :
998 // InternalProblem.g:1650:52: . 1020 // InternalProblem.g:1903:52: .
999 { 1021 {
1000 matchAny(); 1022 matchAny();
1001 1023
@@ -1025,12 +1047,12 @@ public class InternalProblemLexer extends Lexer {
1025 try { 1047 try {
1026 int _type = RULE_SL_COMMENT; 1048 int _type = RULE_SL_COMMENT;
1027 int _channel = DEFAULT_TOKEN_CHANNEL; 1049 int _channel = DEFAULT_TOKEN_CHANNEL;
1028 // InternalProblem.g:1652:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) 1050 // InternalProblem.g:1905:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
1029 // InternalProblem.g:1652:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? 1051 // InternalProblem.g:1905:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
1030 { 1052 {
1031 match("//"); 1053 match("//");
1032 1054
1033 // InternalProblem.g:1652:24: (~ ( ( '\\n' | '\\r' ) ) )* 1055 // InternalProblem.g:1905:24: (~ ( ( '\\n' | '\\r' ) ) )*
1034 loop7: 1056 loop7:
1035 do { 1057 do {
1036 int alt7=2; 1058 int alt7=2;
@@ -1043,7 +1065,7 @@ public class InternalProblemLexer extends Lexer {
1043 1065
1044 switch (alt7) { 1066 switch (alt7) {
1045 case 1 : 1067 case 1 :
1046 // InternalProblem.g:1652:24: ~ ( ( '\\n' | '\\r' ) ) 1068 // InternalProblem.g:1905:24: ~ ( ( '\\n' | '\\r' ) )
1047 { 1069 {
1048 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') ) { 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') ) {
1049 input.consume(); 1071 input.consume();
@@ -1063,7 +1085,7 @@ public class InternalProblemLexer extends Lexer {
1063 } 1085 }
1064 } while (true); 1086 } while (true);
1065 1087
1066 // InternalProblem.g:1652:40: ( ( '\\r' )? '\\n' )? 1088 // InternalProblem.g:1905:40: ( ( '\\r' )? '\\n' )?
1067 int alt9=2; 1089 int alt9=2;
1068 int LA9_0 = input.LA(1); 1090 int LA9_0 = input.LA(1);
1069 1091
@@ -1072,9 +1094,9 @@ public class InternalProblemLexer extends Lexer {
1072 } 1094 }
1073 switch (alt9) { 1095 switch (alt9) {
1074 case 1 : 1096 case 1 :
1075 // InternalProblem.g:1652:41: ( '\\r' )? '\\n' 1097 // InternalProblem.g:1905:41: ( '\\r' )? '\\n'
1076 { 1098 {
1077 // InternalProblem.g:1652:41: ( '\\r' )? 1099 // InternalProblem.g:1905:41: ( '\\r' )?
1078 int alt8=2; 1100 int alt8=2;
1079 int LA8_0 = input.LA(1); 1101 int LA8_0 = input.LA(1);
1080 1102
@@ -1083,7 +1105,7 @@ public class InternalProblemLexer extends Lexer {
1083 } 1105 }
1084 switch (alt8) { 1106 switch (alt8) {
1085 case 1 : 1107 case 1 :
1086 // InternalProblem.g:1652:41: '\\r' 1108 // InternalProblem.g:1905:41: '\\r'
1087 { 1109 {
1088 match('\r'); 1110 match('\r');
1089 1111
@@ -1115,10 +1137,10 @@ public class InternalProblemLexer extends Lexer {
1115 try { 1137 try {
1116 int _type = RULE_WS; 1138 int _type = RULE_WS;
1117 int _channel = DEFAULT_TOKEN_CHANNEL; 1139 int _channel = DEFAULT_TOKEN_CHANNEL;
1118 // InternalProblem.g:1654:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) 1140 // InternalProblem.g:1907:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
1119 // InternalProblem.g:1654:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ 1141 // InternalProblem.g:1907:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1120 { 1142 {
1121 // InternalProblem.g:1654:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ 1143 // InternalProblem.g:1907:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1122 int cnt10=0; 1144 int cnt10=0;
1123 loop10: 1145 loop10:
1124 do { 1146 do {
@@ -1172,8 +1194,8 @@ public class InternalProblemLexer extends Lexer {
1172 try { 1194 try {
1173 int _type = RULE_ANY_OTHER; 1195 int _type = RULE_ANY_OTHER;
1174 int _channel = DEFAULT_TOKEN_CHANNEL; 1196 int _channel = DEFAULT_TOKEN_CHANNEL;
1175 // InternalProblem.g:1656:16: ( . ) 1197 // InternalProblem.g:1909:16: ( . )
1176 // InternalProblem.g:1656:18: . 1198 // InternalProblem.g:1909:18: .
1177 { 1199 {
1178 matchAny(); 1200 matchAny();
1179 1201
@@ -1188,8 +1210,8 @@ public class InternalProblemLexer extends Lexer {
1188 // $ANTLR end "RULE_ANY_OTHER" 1210 // $ANTLR end "RULE_ANY_OTHER"
1189 1211
1190 public void mTokens() throws RecognitionException { 1212 public void mTokens() throws RecognitionException {
1191 // 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 | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) 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 )
1192 int alt11=39; 1214 int alt11=40;
1193 alt11 = dfa11.predict(input); 1215 alt11 = dfa11.predict(input);
1194 switch (alt11) { 1216 switch (alt11) {
1195 case 1 : 1217 case 1 :
@@ -1410,56 +1432,63 @@ public class InternalProblemLexer extends Lexer {
1410 } 1432 }
1411 break; 1433 break;
1412 case 32 : 1434 case 32 :
1413 // InternalProblem.g:1:196: RULE_STRING 1435 // InternalProblem.g:1:196: T__43
1414 { 1436 {
1415 mRULE_STRING(); 1437 mT__43();
1416 1438
1417 } 1439 }
1418 break; 1440 break;
1419 case 33 : 1441 case 33 :
1420 // InternalProblem.g:1:208: RULE_QUOTED_ID 1442 // InternalProblem.g:1:202: RULE_STRING
1421 { 1443 {
1422 mRULE_QUOTED_ID(); 1444 mRULE_STRING();
1423 1445
1424 } 1446 }
1425 break; 1447 break;
1426 case 34 : 1448 case 34 :
1427 // InternalProblem.g:1:223: RULE_ID 1449 // InternalProblem.g:1:214: RULE_QUOTED_ID
1428 { 1450 {
1429 mRULE_ID(); 1451 mRULE_QUOTED_ID();
1430 1452
1431 } 1453 }
1432 break; 1454 break;
1433 case 35 : 1455 case 35 :
1434 // InternalProblem.g:1:231: RULE_INT 1456 // InternalProblem.g:1:229: RULE_ID
1435 { 1457 {
1436 mRULE_INT(); 1458 mRULE_ID();
1437 1459
1438 } 1460 }
1439 break; 1461 break;
1440 case 36 : 1462 case 36 :
1441 // InternalProblem.g:1:240: RULE_ML_COMMENT 1463 // InternalProblem.g:1:237: RULE_INT
1442 { 1464 {
1443 mRULE_ML_COMMENT(); 1465 mRULE_INT();
1444 1466
1445 } 1467 }
1446 break; 1468 break;
1447 case 37 : 1469 case 37 :
1448 // InternalProblem.g:1:256: RULE_SL_COMMENT 1470 // InternalProblem.g:1:246: RULE_ML_COMMENT
1449 { 1471 {
1450 mRULE_SL_COMMENT(); 1472 mRULE_ML_COMMENT();
1451 1473
1452 } 1474 }
1453 break; 1475 break;
1454 case 38 : 1476 case 38 :
1455 // InternalProblem.g:1:272: RULE_WS 1477 // InternalProblem.g:1:262: RULE_SL_COMMENT
1456 { 1478 {
1457 mRULE_WS(); 1479 mRULE_SL_COMMENT();
1458 1480
1459 } 1481 }
1460 break; 1482 break;
1461 case 39 : 1483 case 39 :
1462 // InternalProblem.g:1:280: RULE_ANY_OTHER 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
1463 { 1492 {
1464 mRULE_ANY_OTHER(); 1493 mRULE_ANY_OTHER();
1465 1494
@@ -1473,69 +1502,70 @@ public class InternalProblemLexer extends Lexer {
1473 1502
1474 protected DFA11 dfa11 = new DFA11(this); 1503 protected DFA11 dfa11 = new DFA11(this);
1475 static final String DFA11_eotS = 1504 static final String DFA11_eotS =
1476 "\1\uffff\1\43\1\45\3\43\4\uffff\1\43\2\uffff\1\43\2\uffff\1\66\1\uffff\1\71\1\43\2\uffff\3\43\1\uffff\3\41\2\uffff\1\41\2\uffff\1\43\3\uffff\5\43\4\uffff\1\43\2\uffff\1\43\7\uffff\1\43\2\uffff\3\43\7\uffff\16\43\1\142\10\43\1\153\3\43\1\uffff\1\43\1\160\2\43\1\163\2\43\1\166\1\uffff\1\167\3\43\1\uffff\2\43\1\uffff\1\175\1\43\2\uffff\1\43\1\u0080\2\43\1\u0083\1\uffff\1\43\1\u0085\1\uffff\1\u0086\1\u0087\1\uffff\1\u0088\4\uffff"; 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";
1477 static final String DFA11_eofS = 1506 static final String DFA11_eofS =
1478 "\u0089\uffff"; 1507 "\u008d\uffff";
1479 static final String DFA11_minS = 1508 static final String DFA11_minS =
1480 "\1\0\1\162\1\56\1\142\1\154\1\162\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\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\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\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\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"; 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";
1481 static final String DFA11_maxS = 1510 static final String DFA11_maxS =
1482 "\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\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\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\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\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"; 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";
1483 static final String DFA11_acceptS = 1512 static final String DFA11_acceptS =
1484 "\6\uffff\1\6\1\7\1\10\1\11\1\uffff\1\14\1\15\1\uffff\1\21\1\22\1\uffff\1\24\2\uffff\1\31\1\33\3\uffff\1\37\3\uffff\1\42\1\43\1\uffff\1\46\1\47\1\uffff\1\42\1\32\1\2\5\uffff\1\6\1\7\1\10\1\11\1\uffff\1\14\1\15\1\uffff\1\21\1\22\1\23\1\26\1\24\1\30\1\25\1\uffff\1\31\1\33\3\uffff\1\37\1\40\1\41\1\43\1\44\1\45\1\46\33\uffff\1\20\10\uffff\1\34\4\uffff\1\4\2\uffff\1\17\2\uffff\1\27\1\35\5\uffff\1\13\2\uffff\1\1\2\uffff\1\5\1\uffff\1\36\1\3\1\12\1\16"; 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";
1485 static final String DFA11_specialS = 1514 static final String DFA11_specialS =
1486 "\1\1\31\uffff\1\2\1\0\155\uffff}>"; 1515 "\1\2\31\uffff\1\1\1\0\161\uffff}>";
1487 static final String[] DFA11_transitionS = { 1516 static final String[] DFA11_transitionS = {
1488 "\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", 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",
1489 "\1\42", 1518 "\1\42",
1490 "\1\44", 1519 "\1\44",
1491 "\1\46", 1520 "\1\46",
1492 "\1\47\2\uffff\1\50", 1521 "\1\47\2\uffff\1\50",
1493 "\1\52\5\uffff\1\51", 1522 "\1\52\3\uffff\1\53\5\uffff\1\51",
1494 "", 1523 "",
1495 "", 1524 "",
1496 "", 1525 "",
1497 "", 1526 "",
1498 "\1\57", 1527 "\1\60",
1499 "", 1528 "",
1500 "", 1529 "",
1501 "\1\62", 1530 "\1\63",
1502 "", 1531 "",
1503 "", 1532 "",
1504 "\1\65", 1533 "\1\66",
1505 "", 1534 "",
1506 "\1\70", 1535 "\1\71",
1507 "\1\72", 1536 "\1\73",
1508 "", 1537 "",
1509 "", 1538 "",
1510 "\1\75",
1511 "\1\76", 1539 "\1\76",
1512 "\1\77", 1540 "\1\77",
1541 "\1\100",
1513 "", 1542 "",
1514 "\0\101",
1515 "\0\102", 1543 "\0\102",
1544 "\0\103",
1516 "\32\43\4\uffff\1\43\1\uffff\32\43", 1545 "\32\43\4\uffff\1\43\1\uffff\32\43",
1517 "", 1546 "",
1518 "", 1547 "",
1519 "\1\104\4\uffff\1\105", 1548 "\1\105\4\uffff\1\106",
1520 "", 1549 "",
1521 "", 1550 "",
1522 "\1\110\11\uffff\1\107", 1551 "\1\111\11\uffff\1\110",
1523 "", 1552 "",
1524 "", 1553 "",
1525 "", 1554 "",
1526 "\1\111",
1527 "\1\112", 1555 "\1\112",
1528 "\1\113", 1556 "\1\113",
1529 "\1\114", 1557 "\1\114",
1530 "\1\115", 1558 "\1\115",
1559 "\1\116",
1560 "\1\117",
1531 "", 1561 "",
1532 "", 1562 "",
1533 "", 1563 "",
1534 "", 1564 "",
1535 "\1\116", 1565 "\1\120",
1536 "", 1566 "",
1537 "", 1567 "",
1538 "\1\117", 1568 "\1\121",
1539 "", 1569 "",
1540 "", 1570 "",
1541 "", 1571 "",
@@ -1543,12 +1573,12 @@ public class InternalProblemLexer extends Lexer {
1543 "", 1573 "",
1544 "", 1574 "",
1545 "", 1575 "",
1546 "\1\120", 1576 "\1\122",
1547 "", 1577 "",
1548 "", 1578 "",
1549 "\1\121",
1550 "\1\122",
1551 "\1\123", 1579 "\1\123",
1580 "\1\124",
1581 "\1\125",
1552 "", 1582 "",
1553 "", 1583 "",
1554 "", 1584 "",
@@ -1556,8 +1586,6 @@ public class InternalProblemLexer extends Lexer {
1556 "", 1586 "",
1557 "", 1587 "",
1558 "", 1588 "",
1559 "\1\124",
1560 "\1\125",
1561 "\1\126", 1589 "\1\126",
1562 "\1\127", 1590 "\1\127",
1563 "\1\130", 1591 "\1\130",
@@ -1570,48 +1598,53 @@ public class InternalProblemLexer extends Lexer {
1570 "\1\137", 1598 "\1\137",
1571 "\1\140", 1599 "\1\140",
1572 "\1\141", 1600 "\1\141",
1573 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1601 "\1\142",
1574 "\1\143", 1602 "\1\143",
1575 "\1\144", 1603 "\1\144",
1576 "\1\145", 1604 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1577 "\1\146", 1605 "\1\146",
1578 "\1\147", 1606 "\1\147",
1579 "\1\150", 1607 "\1\150",
1580 "\1\151", 1608 "\1\151",
1581 "\1\152",
1582 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1609 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1610 "\1\153",
1583 "\1\154", 1611 "\1\154",
1584 "\1\155", 1612 "\1\155",
1585 "\1\156", 1613 "\1\156",
1586 "",
1587 "\1\157",
1588 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1614 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1615 "\1\160",
1589 "\1\161", 1616 "\1\161",
1590 "\1\162", 1617 "\1\162",
1618 "",
1619 "\1\163",
1591 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1620 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1592 "\1\164",
1593 "\1\165", 1621 "\1\165",
1594 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1622 "\1\166",
1595 "", 1623 "",
1596 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1624 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1597 "\1\170", 1625 "\1\170",
1598 "\1\171", 1626 "\1\171",
1599 "\1\172", 1627 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1600 "",
1601 "\1\173",
1602 "\1\174",
1603 "", 1628 "",
1604 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1629 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1630 "\1\174",
1631 "\1\175",
1605 "\1\176", 1632 "\1\176",
1606 "", 1633 "",
1607 "",
1608 "\1\177", 1634 "\1\177",
1635 "\1\u0080",
1636 "",
1609 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1637 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1610 "\1\u0081",
1611 "\1\u0082", 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",
1612 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1645 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1613 "", 1646 "",
1614 "\1\u0084", 1647 "\1\u0088",
1615 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1648 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1616 "", 1649 "",
1617 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1650 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
@@ -1654,7 +1687,7 @@ public class InternalProblemLexer extends Lexer {
1654 this.transition = DFA11_transition; 1687 this.transition = DFA11_transition;
1655 } 1688 }
1656 public String getDescription() { 1689 public String getDescription() {
1657 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 | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; 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 );";
1658 } 1691 }
1659 public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { 1692 public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
1660 IntStream input = _input; 1693 IntStream input = _input;
@@ -1664,13 +1697,23 @@ public class InternalProblemLexer extends Lexer {
1664 int LA11_27 = input.LA(1); 1697 int LA11_27 = input.LA(1);
1665 1698
1666 s = -1; 1699 s = -1;
1667 if ( ((LA11_27>='\u0000' && LA11_27<='\uFFFF')) ) {s = 66;} 1700 if ( ((LA11_27>='\u0000' && LA11_27<='\uFFFF')) ) {s = 67;}
1668 1701
1669 else s = 33; 1702 else s = 33;
1670 1703
1671 if ( s>=0 ) return s; 1704 if ( s>=0 ) return s;
1672 break; 1705 break;
1673 case 1 : 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 :
1674 int LA11_0 = input.LA(1); 1717 int LA11_0 = input.LA(1);
1675 1718
1676 s = -1; 1719 s = -1;
@@ -1742,16 +1785,6 @@ public class InternalProblemLexer extends Lexer {
1742 1785
1743 if ( s>=0 ) return s; 1786 if ( s>=0 ) return s;
1744 break; 1787 break;
1745 case 2 :
1746 int LA11_26 = input.LA(1);
1747
1748 s = -1;
1749 if ( ((LA11_26>='\u0000' && LA11_26<='\uFFFF')) ) {s = 65;}
1750
1751 else s = 33;
1752
1753 if ( s>=0 ) return s;
1754 break;
1755 } 1788 }
1756 NoViableAltException nvae = 1789 NoViableAltException nvae =
1757 new NoViableAltException(getDescription(), 11, _s, input); 1790 new NoViableAltException(getDescription(), 11, _s, input);
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java
index c4f19943..28b54551 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java
@@ -22,33 +22,18 @@ import java.util.ArrayList;
22@SuppressWarnings("all") 22@SuppressWarnings("all")
23public class InternalProblemParser extends AbstractInternalAntlrParser { 23public class InternalProblemParser extends AbstractInternalAntlrParser {
24 public static final String[] tokenNames = new String[] { 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'", "','", "'{'", "';'", "'}'", "'contains'", "'refers'", "'['", "']'", "'opposite'", "'error'", "'pred'", "'('", "')'", "':-'", "'!'", "'+'", "':'", "'scope'", "'+='", "'='", "'..'", "'*'", "'true'", "'false'", "'unknown'", "'?'" 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 }; 26 };
27 public static final int RULE_STRING=7;
28 public static final int RULE_SL_COMMENT=9;
29 public static final int T__19=19; 27 public static final int T__19=19;
30 public static final int T__15=15; 28 public static final int T__15=15;
31 public static final int T__37=37;
32 public static final int T__16=16; 29 public static final int T__16=16;
33 public static final int T__38=38;
34 public static final int T__17=17; 30 public static final int T__17=17;
35 public static final int T__39=39;
36 public static final int T__18=18; 31 public static final int T__18=18;
37 public static final int T__33=33;
38 public static final int T__12=12; 32 public static final int T__12=12;
39 public static final int T__34=34;
40 public static final int T__13=13; 33 public static final int T__13=13;
41 public static final int T__35=35;
42 public static final int T__14=14; 34 public static final int T__14=14;
43 public static final int T__36=36;
44 public static final int EOF=-1;
45 public static final int T__30=30;
46 public static final int T__31=31;
47 public static final int T__32=32;
48 public static final int RULE_ID=4; 35 public static final int RULE_ID=4;
49 public static final int RULE_WS=10;
50 public static final int RULE_QUOTED_ID=6; 36 public static final int RULE_QUOTED_ID=6;
51 public static final int RULE_ANY_OTHER=11;
52 public static final int T__26=26; 37 public static final int T__26=26;
53 public static final int T__27=27; 38 public static final int T__27=27;
54 public static final int T__28=28; 39 public static final int T__28=28;
@@ -59,11 +44,27 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
59 public static final int T__23=23; 44 public static final int T__23=23;
60 public static final int T__24=24; 45 public static final int T__24=24;
61 public static final int T__25=25; 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;
62 public static final int T__40=40; 64 public static final int T__40=40;
63 public static final int T__41=41; 65 public static final int T__41=41;
64 public static final int T__20=20;
65 public static final int T__42=42; 66 public static final int T__42=42;
66 public static final int T__21=21; 67 public static final int T__43=43;
67 68
68 // delegates 69 // delegates
69 // delegators 70 // delegators
@@ -141,13 +142,14 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
141 142
142 143
143 // $ANTLR start "ruleProblem" 144 // $ANTLR start "ruleProblem"
144 // InternalProblem.g:72:1: ruleProblem returns [EObject current=null] : ( (otherlv_0= 'problem' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '.' )? ( (lv_statements_3_0= ruleStatement ) )* ) ; 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 ) )* ) ;
145 public final EObject ruleProblem() throws RecognitionException { 146 public final EObject ruleProblem() throws RecognitionException {
146 EObject current = null; 147 EObject current = null;
147 148
148 Token otherlv_0=null; 149 Token otherlv_0=null;
149 Token lv_name_1_0=null;
150 Token otherlv_2=null; 150 Token otherlv_2=null;
151 AntlrDatatypeRuleToken lv_name_1_0 = null;
152
151 EObject lv_statements_3_0 = null; 153 EObject lv_statements_3_0 = null;
152 154
153 155
@@ -155,13 +157,13 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
155 enterRule(); 157 enterRule();
156 158
157 try { 159 try {
158 // InternalProblem.g:78:2: ( ( (otherlv_0= 'problem' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '.' )? ( (lv_statements_3_0= ruleStatement ) )* ) ) 160 // InternalProblem.g:78:2: ( ( (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )? ( (lv_statements_3_0= ruleStatement ) )* ) )
159 // InternalProblem.g:79:2: ( (otherlv_0= 'problem' ( (lv_name_1_0= RULE_ID ) ) 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 ) )* )
160 { 162 {
161 // InternalProblem.g:79:2: ( (otherlv_0= 'problem' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '.' )? ( (lv_statements_3_0= ruleStatement ) )* ) 163 // InternalProblem.g:79:2: ( (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )? ( (lv_statements_3_0= ruleStatement ) )* )
162 // InternalProblem.g:80:3: (otherlv_0= 'problem' ( (lv_name_1_0= RULE_ID ) ) 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 ) )*
163 { 165 {
164 // InternalProblem.g:80:3: (otherlv_0= 'problem' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '.' )? 166 // InternalProblem.g:80:3: (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )?
165 int alt1=2; 167 int alt1=2;
166 int LA1_0 = input.LA(1); 168 int LA1_0 = input.LA(1);
167 169
@@ -170,31 +172,36 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
170 } 172 }
171 switch (alt1) { 173 switch (alt1) {
172 case 1 : 174 case 1 :
173 // InternalProblem.g:81:4: otherlv_0= 'problem' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '.' 175 // InternalProblem.g:81:4: otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.'
174 { 176 {
175 otherlv_0=(Token)match(input,12,FOLLOW_3); 177 otherlv_0=(Token)match(input,12,FOLLOW_3);
176 178
177 newLeafNode(otherlv_0, grammarAccess.getProblemAccess().getProblemKeyword_0_0()); 179 newLeafNode(otherlv_0, grammarAccess.getProblemAccess().getProblemKeyword_0_0());
178 180
179 // InternalProblem.g:85:4: ( (lv_name_1_0= RULE_ID ) ) 181 // InternalProblem.g:85:4: ( (lv_name_1_0= ruleIdentifier ) )
180 // InternalProblem.g:86:5: (lv_name_1_0= RULE_ID ) 182 // InternalProblem.g:86:5: (lv_name_1_0= ruleIdentifier )
181 { 183 {
182 // InternalProblem.g:86:5: (lv_name_1_0= RULE_ID ) 184 // InternalProblem.g:86:5: (lv_name_1_0= ruleIdentifier )
183 // InternalProblem.g:87:6: lv_name_1_0= RULE_ID 185 // InternalProblem.g:87:6: lv_name_1_0= ruleIdentifier
184 { 186 {
185 lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_4);
186 187
187 newLeafNode(lv_name_1_0, grammarAccess.getProblemAccess().getNameIDTerminalRuleCall_0_1_0()); 188 newCompositeNode(grammarAccess.getProblemAccess().getNameIdentifierParserRuleCall_0_1_0());
188 189
190 pushFollow(FOLLOW_4);
191 lv_name_1_0=ruleIdentifier();
192
193 state._fsp--;
194
189 195
190 if (current==null) { 196 if (current==null) {
191 current = createModelElement(grammarAccess.getProblemRule()); 197 current = createModelElementForParent(grammarAccess.getProblemRule());
192 } 198 }
193 setWithLastConsumed( 199 set(
194 current, 200 current,
195 "name", 201 "name",
196 lv_name_1_0, 202 lv_name_1_0,
197 "org.eclipse.xtext.common.Terminals.ID"); 203 "org.eclipse.viatra.solver.language.Problem.Identifier");
204 afterParserOrEnumRuleCall();
198 205
199 206
200 } 207 }
@@ -212,23 +219,23 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
212 219
213 } 220 }
214 221
215 // InternalProblem.g:108:3: ( (lv_statements_3_0= ruleStatement ) )* 222 // InternalProblem.g:109:3: ( (lv_statements_3_0= ruleStatement ) )*
216 loop2: 223 loop2:
217 do { 224 do {
218 int alt2=2; 225 int alt2=2;
219 int LA2_0 = input.LA(1); 226 int LA2_0 = input.LA(1);
220 227
221 if ( (LA2_0==RULE_ID||LA2_0==RULE_QUOTED_ID||(LA2_0>=14 && LA2_0<=15)||(LA2_0>=26 && LA2_0<=27)||LA2_0==31||LA2_0==34||LA2_0==42) ) { 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) ) {
222 alt2=1; 229 alt2=1;
223 } 230 }
224 231
225 232
226 switch (alt2) { 233 switch (alt2) {
227 case 1 : 234 case 1 :
228 // InternalProblem.g:109:4: (lv_statements_3_0= ruleStatement ) 235 // InternalProblem.g:110:4: (lv_statements_3_0= ruleStatement )
229 { 236 {
230 // InternalProblem.g:109:4: (lv_statements_3_0= ruleStatement ) 237 // InternalProblem.g:110:4: (lv_statements_3_0= ruleStatement )
231 // InternalProblem.g:110:5: lv_statements_3_0= ruleStatement 238 // InternalProblem.g:111:5: lv_statements_3_0= ruleStatement
232 { 239 {
233 240
234 newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_1_0()); 241 newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_1_0());
@@ -284,7 +291,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
284 291
285 292
286 // $ANTLR start "entryRuleStatement" 293 // $ANTLR start "entryRuleStatement"
287 // InternalProblem.g:131:1: entryRuleStatement returns [EObject current=null] : iv_ruleStatement= ruleStatement EOF ; 294 // InternalProblem.g:132:1: entryRuleStatement returns [EObject current=null] : iv_ruleStatement= ruleStatement EOF ;
288 public final EObject entryRuleStatement() throws RecognitionException { 295 public final EObject entryRuleStatement() throws RecognitionException {
289 EObject current = null; 296 EObject current = null;
290 297
@@ -292,8 +299,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
292 299
293 300
294 try { 301 try {
295 // InternalProblem.g:131:50: (iv_ruleStatement= ruleStatement EOF ) 302 // InternalProblem.g:132:50: (iv_ruleStatement= ruleStatement EOF )
296 // InternalProblem.g:132:2: iv_ruleStatement= ruleStatement EOF 303 // InternalProblem.g:133:2: iv_ruleStatement= ruleStatement EOF
297 { 304 {
298 newCompositeNode(grammarAccess.getStatementRule()); 305 newCompositeNode(grammarAccess.getStatementRule());
299 pushFollow(FOLLOW_1); 306 pushFollow(FOLLOW_1);
@@ -320,28 +327,30 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
320 327
321 328
322 // $ANTLR start "ruleStatement" 329 // $ANTLR start "ruleStatement"
323 // InternalProblem.g:138:1: ruleStatement returns [EObject current=null] : (this_ClassDeclaration_0= ruleClassDeclaration | this_PredicateDefinition_1= rulePredicateDefinition | this_Assertion_2= ruleAssertion | this_ScopeDeclaration_3= ruleScopeDeclaration ) ; 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 ) ;
324 public final EObject ruleStatement() throws RecognitionException { 331 public final EObject ruleStatement() throws RecognitionException {
325 EObject current = null; 332 EObject current = null;
326 333
327 EObject this_ClassDeclaration_0 = null; 334 EObject this_ClassDeclaration_0 = null;
328 335
329 EObject this_PredicateDefinition_1 = null; 336 EObject this_EnumDeclaration_1 = null;
337
338 EObject this_PredicateDefinition_2 = null;
330 339
331 EObject this_Assertion_2 = null; 340 EObject this_Assertion_3 = null;
332 341
333 EObject this_ScopeDeclaration_3 = null; 342 EObject this_ScopeDeclaration_4 = null;
334 343
335 344
336 345
337 enterRule(); 346 enterRule();
338 347
339 try { 348 try {
340 // InternalProblem.g:144:2: ( (this_ClassDeclaration_0= ruleClassDeclaration | this_PredicateDefinition_1= rulePredicateDefinition | this_Assertion_2= ruleAssertion | this_ScopeDeclaration_3= ruleScopeDeclaration ) ) 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 ) )
341 // InternalProblem.g:145:2: (this_ClassDeclaration_0= ruleClassDeclaration | this_PredicateDefinition_1= rulePredicateDefinition | this_Assertion_2= ruleAssertion | this_ScopeDeclaration_3= 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 )
342 { 351 {
343 // InternalProblem.g:145:2: (this_ClassDeclaration_0= ruleClassDeclaration | this_PredicateDefinition_1= rulePredicateDefinition | this_Assertion_2= ruleAssertion | this_ScopeDeclaration_3= ruleScopeDeclaration ) 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 )
344 int alt3=4; 353 int alt3=5;
345 switch ( input.LA(1) ) { 354 switch ( input.LA(1) ) {
346 case 14: 355 case 14:
347 case 15: 356 case 15:
@@ -349,25 +358,32 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
349 alt3=1; 358 alt3=1;
350 } 359 }
351 break; 360 break;
352 case 26: 361 case 21:
353 case 27:
354 { 362 {
355 alt3=2; 363 alt3=2;
356 } 364 }
357 break; 365 break;
358 case RULE_ID: 366 case 27:
359 case RULE_QUOTED_ID: 367 case 28:
360 case 31:
361 case 42:
362 { 368 {
363 alt3=3; 369 alt3=3;
364 } 370 }
365 break; 371 break;
366 case 34: 372 case RULE_ID:
373 case RULE_QUOTED_ID:
374 case 32:
375 case 40:
376 case 41:
377 case 43:
367 { 378 {
368 alt3=4; 379 alt3=4;
369 } 380 }
370 break; 381 break;
382 case 35:
383 {
384 alt3=5;
385 }
386 break;
371 default: 387 default:
372 NoViableAltException nvae = 388 NoViableAltException nvae =
373 new NoViableAltException("", 3, 0, input); 389 new NoViableAltException("", 3, 0, input);
@@ -377,7 +393,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
377 393
378 switch (alt3) { 394 switch (alt3) {
379 case 1 : 395 case 1 :
380 // InternalProblem.g:146:3: this_ClassDeclaration_0= ruleClassDeclaration 396 // InternalProblem.g:147:3: this_ClassDeclaration_0= ruleClassDeclaration
381 { 397 {
382 398
383 newCompositeNode(grammarAccess.getStatementAccess().getClassDeclarationParserRuleCall_0()); 399 newCompositeNode(grammarAccess.getStatementAccess().getClassDeclarationParserRuleCall_0());
@@ -395,54 +411,72 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
395 } 411 }
396 break; 412 break;
397 case 2 : 413 case 2 :
398 // InternalProblem.g:155:3: this_PredicateDefinition_1= rulePredicateDefinition 414 // InternalProblem.g:156:3: this_EnumDeclaration_1= ruleEnumDeclaration
399 { 415 {
400 416
401 newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_1()); 417 newCompositeNode(grammarAccess.getStatementAccess().getEnumDeclarationParserRuleCall_1());
402 418
403 pushFollow(FOLLOW_2); 419 pushFollow(FOLLOW_2);
404 this_PredicateDefinition_1=rulePredicateDefinition(); 420 this_EnumDeclaration_1=ruleEnumDeclaration();
405 421
406 state._fsp--; 422 state._fsp--;
407 423
408 424
409 current = this_PredicateDefinition_1; 425 current = this_EnumDeclaration_1;
410 afterParserOrEnumRuleCall(); 426 afterParserOrEnumRuleCall();
411 427
412 428
413 } 429 }
414 break; 430 break;
415 case 3 : 431 case 3 :
416 // InternalProblem.g:164:3: this_Assertion_2= ruleAssertion 432 // InternalProblem.g:165:3: this_PredicateDefinition_2= rulePredicateDefinition
417 { 433 {
418 434
419 newCompositeNode(grammarAccess.getStatementAccess().getAssertionParserRuleCall_2()); 435 newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_2());
420 436
421 pushFollow(FOLLOW_2); 437 pushFollow(FOLLOW_2);
422 this_Assertion_2=ruleAssertion(); 438 this_PredicateDefinition_2=rulePredicateDefinition();
423 439
424 state._fsp--; 440 state._fsp--;
425 441
426 442
427 current = this_Assertion_2; 443 current = this_PredicateDefinition_2;
428 afterParserOrEnumRuleCall(); 444 afterParserOrEnumRuleCall();
429 445
430 446
431 } 447 }
432 break; 448 break;
433 case 4 : 449 case 4 :
434 // InternalProblem.g:173:3: this_ScopeDeclaration_3= ruleScopeDeclaration 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
435 { 469 {
436 470
437 newCompositeNode(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_3()); 471 newCompositeNode(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_4());
438 472
439 pushFollow(FOLLOW_2); 473 pushFollow(FOLLOW_2);
440 this_ScopeDeclaration_3=ruleScopeDeclaration(); 474 this_ScopeDeclaration_4=ruleScopeDeclaration();
441 475
442 state._fsp--; 476 state._fsp--;
443 477
444 478
445 current = this_ScopeDeclaration_3; 479 current = this_ScopeDeclaration_4;
446 afterParserOrEnumRuleCall(); 480 afterParserOrEnumRuleCall();
447 481
448 482
@@ -471,7 +505,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
471 505
472 506
473 // $ANTLR start "entryRuleClassDeclaration" 507 // $ANTLR start "entryRuleClassDeclaration"
474 // InternalProblem.g:185:1: entryRuleClassDeclaration returns [EObject current=null] : iv_ruleClassDeclaration= ruleClassDeclaration EOF ; 508 // InternalProblem.g:195:1: entryRuleClassDeclaration returns [EObject current=null] : iv_ruleClassDeclaration= ruleClassDeclaration EOF ;
475 public final EObject entryRuleClassDeclaration() throws RecognitionException { 509 public final EObject entryRuleClassDeclaration() throws RecognitionException {
476 EObject current = null; 510 EObject current = null;
477 511
@@ -479,8 +513,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
479 513
480 514
481 try { 515 try {
482 // InternalProblem.g:185:57: (iv_ruleClassDeclaration= ruleClassDeclaration EOF ) 516 // InternalProblem.g:195:57: (iv_ruleClassDeclaration= ruleClassDeclaration EOF )
483 // InternalProblem.g:186:2: iv_ruleClassDeclaration= ruleClassDeclaration EOF 517 // InternalProblem.g:196:2: iv_ruleClassDeclaration= ruleClassDeclaration EOF
484 { 518 {
485 newCompositeNode(grammarAccess.getClassDeclarationRule()); 519 newCompositeNode(grammarAccess.getClassDeclarationRule());
486 pushFollow(FOLLOW_1); 520 pushFollow(FOLLOW_1);
@@ -507,19 +541,20 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
507 541
508 542
509 // $ANTLR start "ruleClassDeclaration" 543 // $ANTLR start "ruleClassDeclaration"
510 // InternalProblem.g:192:1: ruleClassDeclaration returns [EObject current=null] : ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )? ( (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) | otherlv_11= '.' ) ) ; 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= '.' ) ) ;
511 public final EObject ruleClassDeclaration() throws RecognitionException { 545 public final EObject ruleClassDeclaration() throws RecognitionException {
512 EObject current = null; 546 EObject current = null;
513 547
514 Token lv_abstract_0_0=null; 548 Token lv_abstract_0_0=null;
515 Token otherlv_1=null; 549 Token otherlv_1=null;
516 Token lv_name_2_0=null;
517 Token otherlv_3=null; 550 Token otherlv_3=null;
518 Token otherlv_5=null; 551 Token otherlv_5=null;
519 Token otherlv_7=null; 552 Token otherlv_7=null;
520 Token otherlv_9=null; 553 Token otherlv_9=null;
521 Token otherlv_10=null; 554 Token otherlv_10=null;
522 Token otherlv_11=null; 555 Token otherlv_11=null;
556 AntlrDatatypeRuleToken lv_name_2_0 = null;
557
523 EObject lv_referenceDeclarations_8_0 = null; 558 EObject lv_referenceDeclarations_8_0 = null;
524 559
525 560
@@ -527,13 +562,13 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
527 enterRule(); 562 enterRule();
528 563
529 try { 564 try {
530 // InternalProblem.g:198:2: ( ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )? ( (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) | otherlv_11= '.' ) ) ) 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= '.' ) ) )
531 // InternalProblem.g:199:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= RULE_ID ) ) (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= '.' ) )
532 { 567 {
533 // InternalProblem.g:199:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )? ( (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) | otherlv_11= '.' ) ) 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= '.' ) )
534 // InternalProblem.g:200:3: ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= RULE_ID ) ) (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= '.' )
535 { 570 {
536 // InternalProblem.g:200:3: ( (lv_abstract_0_0= 'abstract' ) )? 571 // InternalProblem.g:210:3: ( (lv_abstract_0_0= 'abstract' ) )?
537 int alt4=2; 572 int alt4=2;
538 int LA4_0 = input.LA(1); 573 int LA4_0 = input.LA(1);
539 574
@@ -542,10 +577,10 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
542 } 577 }
543 switch (alt4) { 578 switch (alt4) {
544 case 1 : 579 case 1 :
545 // InternalProblem.g:201:4: (lv_abstract_0_0= 'abstract' ) 580 // InternalProblem.g:211:4: (lv_abstract_0_0= 'abstract' )
546 { 581 {
547 // InternalProblem.g:201:4: (lv_abstract_0_0= 'abstract' ) 582 // InternalProblem.g:211:4: (lv_abstract_0_0= 'abstract' )
548 // InternalProblem.g:202:5: lv_abstract_0_0= 'abstract' 583 // InternalProblem.g:212:5: lv_abstract_0_0= 'abstract'
549 { 584 {
550 lv_abstract_0_0=(Token)match(input,14,FOLLOW_6); 585 lv_abstract_0_0=(Token)match(input,14,FOLLOW_6);
551 586
@@ -570,25 +605,30 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
570 605
571 newLeafNode(otherlv_1, grammarAccess.getClassDeclarationAccess().getClassKeyword_1()); 606 newLeafNode(otherlv_1, grammarAccess.getClassDeclarationAccess().getClassKeyword_1());
572 607
573 // InternalProblem.g:218:3: ( (lv_name_2_0= RULE_ID ) ) 608 // InternalProblem.g:228:3: ( (lv_name_2_0= ruleIdentifier ) )
574 // InternalProblem.g:219:4: (lv_name_2_0= RULE_ID ) 609 // InternalProblem.g:229:4: (lv_name_2_0= ruleIdentifier )
575 { 610 {
576 // InternalProblem.g:219:4: (lv_name_2_0= RULE_ID ) 611 // InternalProblem.g:229:4: (lv_name_2_0= ruleIdentifier )
577 // InternalProblem.g:220:5: lv_name_2_0= RULE_ID 612 // InternalProblem.g:230:5: lv_name_2_0= ruleIdentifier
578 { 613 {
579 lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_7);
580 614
581 newLeafNode(lv_name_2_0, grammarAccess.getClassDeclarationAccess().getNameIDTerminalRuleCall_2_0()); 615 newCompositeNode(grammarAccess.getClassDeclarationAccess().getNameIdentifierParserRuleCall_2_0());
582 616
617 pushFollow(FOLLOW_7);
618 lv_name_2_0=ruleIdentifier();
619
620 state._fsp--;
621
583 622
584 if (current==null) { 623 if (current==null) {
585 current = createModelElement(grammarAccess.getClassDeclarationRule()); 624 current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
586 } 625 }
587 setWithLastConsumed( 626 set(
588 current, 627 current,
589 "name", 628 "name",
590 lv_name_2_0, 629 lv_name_2_0,
591 "org.eclipse.xtext.common.Terminals.ID"); 630 "org.eclipse.viatra.solver.language.Problem.Identifier");
631 afterParserOrEnumRuleCall();
592 632
593 633
594 } 634 }
@@ -596,7 +636,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
596 636
597 } 637 }
598 638
599 // InternalProblem.g:236:3: (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )? 639 // InternalProblem.g:247:3: (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )?
600 int alt6=2; 640 int alt6=2;
601 int LA6_0 = input.LA(1); 641 int LA6_0 = input.LA(1);
602 642
@@ -605,17 +645,17 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
605 } 645 }
606 switch (alt6) { 646 switch (alt6) {
607 case 1 : 647 case 1 :
608 // InternalProblem.g:237:4: otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* 648 // InternalProblem.g:248:4: otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )*
609 { 649 {
610 otherlv_3=(Token)match(input,16,FOLLOW_8); 650 otherlv_3=(Token)match(input,16,FOLLOW_8);
611 651
612 newLeafNode(otherlv_3, grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0()); 652 newLeafNode(otherlv_3, grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0());
613 653
614 // InternalProblem.g:241:4: ( ( ruleQualifiedName ) ) 654 // InternalProblem.g:252:4: ( ( ruleQualifiedName ) )
615 // InternalProblem.g:242:5: ( ruleQualifiedName ) 655 // InternalProblem.g:253:5: ( ruleQualifiedName )
616 { 656 {
617 // InternalProblem.g:242:5: ( ruleQualifiedName ) 657 // InternalProblem.g:253:5: ( ruleQualifiedName )
618 // InternalProblem.g:243:6: ruleQualifiedName 658 // InternalProblem.g:254:6: ruleQualifiedName
619 { 659 {
620 660
621 if (current==null) { 661 if (current==null) {
@@ -623,7 +663,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
623 } 663 }
624 664
625 665
626 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_1_0()); 666 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationCrossReference_3_1_0());
627 667
628 pushFollow(FOLLOW_9); 668 pushFollow(FOLLOW_9);
629 ruleQualifiedName(); 669 ruleQualifiedName();
@@ -639,7 +679,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
639 679
640 } 680 }
641 681
642 // InternalProblem.g:257:4: (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* 682 // InternalProblem.g:268:4: (otherlv_5= ',' ( ( ruleQualifiedName ) ) )*
643 loop5: 683 loop5:
644 do { 684 do {
645 int alt5=2; 685 int alt5=2;
@@ -652,17 +692,17 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
652 692
653 switch (alt5) { 693 switch (alt5) {
654 case 1 : 694 case 1 :
655 // InternalProblem.g:258:5: otherlv_5= ',' ( ( ruleQualifiedName ) ) 695 // InternalProblem.g:269:5: otherlv_5= ',' ( ( ruleQualifiedName ) )
656 { 696 {
657 otherlv_5=(Token)match(input,17,FOLLOW_8); 697 otherlv_5=(Token)match(input,17,FOLLOW_8);
658 698
659 newLeafNode(otherlv_5, grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_2_0()); 699 newLeafNode(otherlv_5, grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_2_0());
660 700
661 // InternalProblem.g:262:5: ( ( ruleQualifiedName ) ) 701 // InternalProblem.g:273:5: ( ( ruleQualifiedName ) )
662 // InternalProblem.g:263:6: ( ruleQualifiedName ) 702 // InternalProblem.g:274:6: ( ruleQualifiedName )
663 { 703 {
664 // InternalProblem.g:263:6: ( ruleQualifiedName ) 704 // InternalProblem.g:274:6: ( ruleQualifiedName )
665 // InternalProblem.g:264:7: ruleQualifiedName 705 // InternalProblem.g:275:7: ruleQualifiedName
666 { 706 {
667 707
668 if (current==null) { 708 if (current==null) {
@@ -670,7 +710,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
670 } 710 }
671 711
672 712
673 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_2_1_0()); 713 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationCrossReference_3_2_1_0());
674 714
675 pushFollow(FOLLOW_9); 715 pushFollow(FOLLOW_9);
676 ruleQualifiedName(); 716 ruleQualifiedName();
@@ -701,7 +741,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
701 741
702 } 742 }
703 743
704 // InternalProblem.g:280:3: ( (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) | otherlv_11= '.' ) 744 // InternalProblem.g:291:3: ( (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) | otherlv_11= '.' )
705 int alt9=2; 745 int alt9=2;
706 int LA9_0 = input.LA(1); 746 int LA9_0 = input.LA(1);
707 747
@@ -719,35 +759,35 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
719 } 759 }
720 switch (alt9) { 760 switch (alt9) {
721 case 1 : 761 case 1 :
722 // InternalProblem.g:281:4: (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) 762 // InternalProblem.g:292:4: (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' )
723 { 763 {
724 // InternalProblem.g:281:4: (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) 764 // InternalProblem.g:292:4: (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' )
725 // InternalProblem.g:282:5: 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= '}'
726 { 766 {
727 otherlv_7=(Token)match(input,18,FOLLOW_10); 767 otherlv_7=(Token)match(input,18,FOLLOW_10);
728 768
729 newLeafNode(otherlv_7, grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0()); 769 newLeafNode(otherlv_7, grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0());
730 770
731 // InternalProblem.g:286:5: ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* 771 // InternalProblem.g:297:5: ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )*
732 loop8: 772 loop8:
733 do { 773 do {
734 int alt8=2; 774 int alt8=2;
735 int LA8_0 = input.LA(1); 775 int LA8_0 = input.LA(1);
736 776
737 if ( ((LA8_0>=21 && LA8_0<=22)) ) { 777 if ( (LA8_0==RULE_ID||LA8_0==RULE_QUOTED_ID||(LA8_0>=22 && LA8_0<=23)||(LA8_0>=40 && LA8_0<=41)) ) {
738 alt8=1; 778 alt8=1;
739 } 779 }
740 780
741 781
742 switch (alt8) { 782 switch (alt8) {
743 case 1 : 783 case 1 :
744 // InternalProblem.g:287:6: ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? 784 // InternalProblem.g:298:6: ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )?
745 { 785 {
746 // InternalProblem.g:287:6: ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) 786 // InternalProblem.g:298:6: ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) )
747 // InternalProblem.g:288:7: (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) 787 // InternalProblem.g:299:7: (lv_referenceDeclarations_8_0= ruleReferenceDeclaration )
748 { 788 {
749 // InternalProblem.g:288:7: (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) 789 // InternalProblem.g:299:7: (lv_referenceDeclarations_8_0= ruleReferenceDeclaration )
750 // InternalProblem.g:289:8: lv_referenceDeclarations_8_0= ruleReferenceDeclaration 790 // InternalProblem.g:300:8: lv_referenceDeclarations_8_0= ruleReferenceDeclaration
751 { 791 {
752 792
753 newCompositeNode(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_4_0_1_0_0()); 793 newCompositeNode(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_4_0_1_0_0());
@@ -774,7 +814,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
774 814
775 } 815 }
776 816
777 // InternalProblem.g:306:6: (otherlv_9= ';' )? 817 // InternalProblem.g:317:6: (otherlv_9= ';' )?
778 int alt7=2; 818 int alt7=2;
779 int LA7_0 = input.LA(1); 819 int LA7_0 = input.LA(1);
780 820
@@ -783,7 +823,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
783 } 823 }
784 switch (alt7) { 824 switch (alt7) {
785 case 1 : 825 case 1 :
786 // InternalProblem.g:307:7: otherlv_9= ';' 826 // InternalProblem.g:318:7: otherlv_9= ';'
787 { 827 {
788 otherlv_9=(Token)match(input,19,FOLLOW_10); 828 otherlv_9=(Token)match(input,19,FOLLOW_10);
789 829
@@ -815,7 +855,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
815 } 855 }
816 break; 856 break;
817 case 2 : 857 case 2 :
818 // InternalProblem.g:319:4: otherlv_11= '.' 858 // InternalProblem.g:330:4: otherlv_11= '.'
819 { 859 {
820 otherlv_11=(Token)match(input,13,FOLLOW_2); 860 otherlv_11=(Token)match(input,13,FOLLOW_2);
821 861
@@ -849,8 +889,428 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
849 // $ANTLR end "ruleClassDeclaration" 889 // $ANTLR end "ruleClassDeclaration"
850 890
851 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
852 // $ANTLR start "entryRuleReferenceDeclaration" 1312 // $ANTLR start "entryRuleReferenceDeclaration"
853 // InternalProblem.g:328:1: entryRuleReferenceDeclaration returns [EObject current=null] : iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF ; 1313 // InternalProblem.g:491:1: entryRuleReferenceDeclaration returns [EObject current=null] : iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF ;
854 public final EObject entryRuleReferenceDeclaration() throws RecognitionException { 1314 public final EObject entryRuleReferenceDeclaration() throws RecognitionException {
855 EObject current = null; 1315 EObject current = null;
856 1316
@@ -858,8 +1318,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
858 1318
859 1319
860 try { 1320 try {
861 // InternalProblem.g:328:61: (iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF ) 1321 // InternalProblem.g:491:61: (iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF )
862 // InternalProblem.g:329:2: iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF 1322 // InternalProblem.g:492:2: iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF
863 { 1323 {
864 newCompositeNode(grammarAccess.getReferenceDeclarationRule()); 1324 newCompositeNode(grammarAccess.getReferenceDeclarationRule());
865 pushFollow(FOLLOW_1); 1325 pushFollow(FOLLOW_1);
@@ -886,7 +1346,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
886 1346
887 1347
888 // $ANTLR start "ruleReferenceDeclaration" 1348 // $ANTLR start "ruleReferenceDeclaration"
889 // InternalProblem.g:335: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= RULE_ID ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )? ) ; 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 ) ) )? ) ;
890 public final EObject ruleReferenceDeclaration() throws RecognitionException { 1350 public final EObject ruleReferenceDeclaration() throws RecognitionException {
891 EObject current = null; 1351 EObject current = null;
892 1352
@@ -894,48 +1354,43 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
894 Token otherlv_1=null; 1354 Token otherlv_1=null;
895 Token otherlv_3=null; 1355 Token otherlv_3=null;
896 Token otherlv_5=null; 1356 Token otherlv_5=null;
897 Token lv_name_6_0=null;
898 Token otherlv_7=null; 1357 Token otherlv_7=null;
899 EObject lv_multiplicity_4_0 = null; 1358 EObject lv_multiplicity_4_0 = null;
900 1359
1360 AntlrDatatypeRuleToken lv_name_6_0 = null;
1361
901 1362
902 1363
903 enterRule(); 1364 enterRule();
904 1365
905 try { 1366 try {
906 // InternalProblem.g:341:2: ( ( ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' ) ( ( ruleQualifiedName ) ) (otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' )? ( (lv_name_6_0= RULE_ID ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )? ) ) 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 ) ) )? ) )
907 // InternalProblem.g:342:2: ( ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' ) ( ( ruleQualifiedName ) ) (otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' )? ( (lv_name_6_0= RULE_ID ) ) (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 ) ) )? )
908 { 1369 {
909 // InternalProblem.g:342:2: ( ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' ) ( ( ruleQualifiedName ) ) (otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' )? ( (lv_name_6_0= RULE_ID ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )? ) 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 ) ) )? )
910 // InternalProblem.g:343:3: ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' ) ( ( ruleQualifiedName ) ) (otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' )? ( (lv_name_6_0= RULE_ID ) ) (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 ) ) )?
911 { 1372 {
912 // InternalProblem.g:343:3: ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' ) 1373 // InternalProblem.g:506:3: ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' )?
913 int alt10=2; 1374 int alt14=3;
914 int LA10_0 = input.LA(1); 1375 int LA14_0 = input.LA(1);
915 1376
916 if ( (LA10_0==21) ) { 1377 if ( (LA14_0==22) ) {
917 alt10=1; 1378 alt14=1;
918 }
919 else if ( (LA10_0==22) ) {
920 alt10=2;
921 } 1379 }
922 else { 1380 else if ( (LA14_0==23) ) {
923 NoViableAltException nvae = 1381 alt14=2;
924 new NoViableAltException("", 10, 0, input);
925
926 throw nvae;
927 } 1382 }
928 switch (alt10) { 1383 switch (alt14) {
929 case 1 : 1384 case 1 :
930 // InternalProblem.g:344:4: ( (lv_containment_0_0= 'contains' ) ) 1385 // InternalProblem.g:507:4: ( (lv_containment_0_0= 'contains' ) )
931 { 1386 {
932 // InternalProblem.g:344:4: ( (lv_containment_0_0= 'contains' ) ) 1387 // InternalProblem.g:507:4: ( (lv_containment_0_0= 'contains' ) )
933 // InternalProblem.g:345:5: (lv_containment_0_0= 'contains' ) 1388 // InternalProblem.g:508:5: (lv_containment_0_0= 'contains' )
934 { 1389 {
935 // InternalProblem.g:345:5: (lv_containment_0_0= 'contains' ) 1390 // InternalProblem.g:508:5: (lv_containment_0_0= 'contains' )
936 // InternalProblem.g:346:6: lv_containment_0_0= 'contains' 1391 // InternalProblem.g:509:6: lv_containment_0_0= 'contains'
937 { 1392 {
938 lv_containment_0_0=(Token)match(input,21,FOLLOW_8); 1393 lv_containment_0_0=(Token)match(input,22,FOLLOW_8);
939 1394
940 newLeafNode(lv_containment_0_0, grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0()); 1395 newLeafNode(lv_containment_0_0, grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0());
941 1396
@@ -955,9 +1410,9 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
955 } 1410 }
956 break; 1411 break;
957 case 2 : 1412 case 2 :
958 // InternalProblem.g:359:4: otherlv_1= 'refers' 1413 // InternalProblem.g:522:4: otherlv_1= 'refers'
959 { 1414 {
960 otherlv_1=(Token)match(input,22,FOLLOW_8); 1415 otherlv_1=(Token)match(input,23,FOLLOW_8);
961 1416
962 newLeafNode(otherlv_1, grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1()); 1417 newLeafNode(otherlv_1, grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1());
963 1418
@@ -967,11 +1422,11 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
967 1422
968 } 1423 }
969 1424
970 // InternalProblem.g:364:3: ( ( ruleQualifiedName ) ) 1425 // InternalProblem.g:527:3: ( ( ruleQualifiedName ) )
971 // InternalProblem.g:365:4: ( ruleQualifiedName ) 1426 // InternalProblem.g:528:4: ( ruleQualifiedName )
972 { 1427 {
973 // InternalProblem.g:365:4: ( ruleQualifiedName ) 1428 // InternalProblem.g:528:4: ( ruleQualifiedName )
974 // InternalProblem.g:366:5: ruleQualifiedName 1429 // InternalProblem.g:529:5: ruleQualifiedName
975 { 1430 {
976 1431
977 if (current==null) { 1432 if (current==null) {
@@ -979,9 +1434,9 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
979 } 1434 }
980 1435
981 1436
982 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeClassDeclarationCrossReference_1_0()); 1437 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeRelationCrossReference_1_0());
983 1438
984 pushFollow(FOLLOW_12); 1439 pushFollow(FOLLOW_16);
985 ruleQualifiedName(); 1440 ruleQualifiedName();
986 1441
987 state._fsp--; 1442 state._fsp--;
@@ -995,31 +1450,31 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
995 1450
996 } 1451 }
997 1452
998 // InternalProblem.g:380:3: (otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' )? 1453 // InternalProblem.g:543:3: (otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' )?
999 int alt11=2; 1454 int alt15=2;
1000 int LA11_0 = input.LA(1); 1455 int LA15_0 = input.LA(1);
1001 1456
1002 if ( (LA11_0==23) ) { 1457 if ( (LA15_0==24) ) {
1003 alt11=1; 1458 alt15=1;
1004 } 1459 }
1005 switch (alt11) { 1460 switch (alt15) {
1006 case 1 : 1461 case 1 :
1007 // InternalProblem.g:381:4: otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' 1462 // InternalProblem.g:544:4: otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']'
1008 { 1463 {
1009 otherlv_3=(Token)match(input,23,FOLLOW_13); 1464 otherlv_3=(Token)match(input,24,FOLLOW_17);
1010 1465
1011 newLeafNode(otherlv_3, grammarAccess.getReferenceDeclarationAccess().getLeftSquareBracketKeyword_2_0()); 1466 newLeafNode(otherlv_3, grammarAccess.getReferenceDeclarationAccess().getLeftSquareBracketKeyword_2_0());
1012 1467
1013 // InternalProblem.g:385:4: ( (lv_multiplicity_4_0= ruleMultiplicity ) ) 1468 // InternalProblem.g:548:4: ( (lv_multiplicity_4_0= ruleMultiplicity ) )
1014 // InternalProblem.g:386:5: (lv_multiplicity_4_0= ruleMultiplicity ) 1469 // InternalProblem.g:549:5: (lv_multiplicity_4_0= ruleMultiplicity )
1015 { 1470 {
1016 // InternalProblem.g:386:5: (lv_multiplicity_4_0= ruleMultiplicity ) 1471 // InternalProblem.g:549:5: (lv_multiplicity_4_0= ruleMultiplicity )
1017 // InternalProblem.g:387:6: lv_multiplicity_4_0= ruleMultiplicity 1472 // InternalProblem.g:550:6: lv_multiplicity_4_0= ruleMultiplicity
1018 { 1473 {
1019 1474
1020 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getMultiplicityMultiplicityParserRuleCall_2_1_0()); 1475 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getMultiplicityMultiplicityParserRuleCall_2_1_0());
1021 1476
1022 pushFollow(FOLLOW_14); 1477 pushFollow(FOLLOW_18);
1023 lv_multiplicity_4_0=ruleMultiplicity(); 1478 lv_multiplicity_4_0=ruleMultiplicity();
1024 1479
1025 state._fsp--; 1480 state._fsp--;
@@ -1041,7 +1496,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1041 1496
1042 } 1497 }
1043 1498
1044 otherlv_5=(Token)match(input,24,FOLLOW_3); 1499 otherlv_5=(Token)match(input,25,FOLLOW_3);
1045 1500
1046 newLeafNode(otherlv_5, grammarAccess.getReferenceDeclarationAccess().getRightSquareBracketKeyword_2_2()); 1501 newLeafNode(otherlv_5, grammarAccess.getReferenceDeclarationAccess().getRightSquareBracketKeyword_2_2());
1047 1502
@@ -1051,25 +1506,30 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1051 1506
1052 } 1507 }
1053 1508
1054 // InternalProblem.g:409:3: ( (lv_name_6_0= RULE_ID ) ) 1509 // InternalProblem.g:572:3: ( (lv_name_6_0= ruleIdentifier ) )
1055 // InternalProblem.g:410:4: (lv_name_6_0= RULE_ID ) 1510 // InternalProblem.g:573:4: (lv_name_6_0= ruleIdentifier )
1056 { 1511 {
1057 // InternalProblem.g:410:4: (lv_name_6_0= RULE_ID ) 1512 // InternalProblem.g:573:4: (lv_name_6_0= ruleIdentifier )
1058 // InternalProblem.g:411:5: lv_name_6_0= RULE_ID 1513 // InternalProblem.g:574:5: lv_name_6_0= ruleIdentifier
1059 { 1514 {
1060 lv_name_6_0=(Token)match(input,RULE_ID,FOLLOW_15);
1061 1515
1062 newLeafNode(lv_name_6_0, grammarAccess.getReferenceDeclarationAccess().getNameIDTerminalRuleCall_3_0()); 1516 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getNameIdentifierParserRuleCall_3_0());
1063 1517
1518 pushFollow(FOLLOW_19);
1519 lv_name_6_0=ruleIdentifier();
1520
1521 state._fsp--;
1522
1064 1523
1065 if (current==null) { 1524 if (current==null) {
1066 current = createModelElement(grammarAccess.getReferenceDeclarationRule()); 1525 current = createModelElementForParent(grammarAccess.getReferenceDeclarationRule());
1067 } 1526 }
1068 setWithLastConsumed( 1527 set(
1069 current, 1528 current,
1070 "name", 1529 "name",
1071 lv_name_6_0, 1530 lv_name_6_0,
1072 "org.eclipse.xtext.common.Terminals.ID"); 1531 "org.eclipse.viatra.solver.language.Problem.Identifier");
1532 afterParserOrEnumRuleCall();
1073 1533
1074 1534
1075 } 1535 }
@@ -1077,26 +1537,26 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1077 1537
1078 } 1538 }
1079 1539
1080 // InternalProblem.g:427:3: (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )? 1540 // InternalProblem.g:591:3: (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )?
1081 int alt12=2; 1541 int alt16=2;
1082 int LA12_0 = input.LA(1); 1542 int LA16_0 = input.LA(1);
1083 1543
1084 if ( (LA12_0==25) ) { 1544 if ( (LA16_0==26) ) {
1085 alt12=1; 1545 alt16=1;
1086 } 1546 }
1087 switch (alt12) { 1547 switch (alt16) {
1088 case 1 : 1548 case 1 :
1089 // InternalProblem.g:428:4: otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) 1549 // InternalProblem.g:592:4: otherlv_7= 'opposite' ( ( ruleQualifiedName ) )
1090 { 1550 {
1091 otherlv_7=(Token)match(input,25,FOLLOW_8); 1551 otherlv_7=(Token)match(input,26,FOLLOW_8);
1092 1552
1093 newLeafNode(otherlv_7, grammarAccess.getReferenceDeclarationAccess().getOppositeKeyword_4_0()); 1553 newLeafNode(otherlv_7, grammarAccess.getReferenceDeclarationAccess().getOppositeKeyword_4_0());
1094 1554
1095 // InternalProblem.g:432:4: ( ( ruleQualifiedName ) ) 1555 // InternalProblem.g:596:4: ( ( ruleQualifiedName ) )
1096 // InternalProblem.g:433:5: ( ruleQualifiedName ) 1556 // InternalProblem.g:597:5: ( ruleQualifiedName )
1097 { 1557 {
1098 // InternalProblem.g:433:5: ( ruleQualifiedName ) 1558 // InternalProblem.g:597:5: ( ruleQualifiedName )
1099 // InternalProblem.g:434:6: ruleQualifiedName 1559 // InternalProblem.g:598:6: ruleQualifiedName
1100 { 1560 {
1101 1561
1102 if (current==null) { 1562 if (current==null) {
@@ -1149,7 +1609,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1149 1609
1150 1610
1151 // $ANTLR start "entryRulePredicateDefinition" 1611 // $ANTLR start "entryRulePredicateDefinition"
1152 // InternalProblem.g:453:1: entryRulePredicateDefinition returns [EObject current=null] : iv_rulePredicateDefinition= rulePredicateDefinition EOF ; 1612 // InternalProblem.g:617:1: entryRulePredicateDefinition returns [EObject current=null] : iv_rulePredicateDefinition= rulePredicateDefinition EOF ;
1153 public final EObject entryRulePredicateDefinition() throws RecognitionException { 1613 public final EObject entryRulePredicateDefinition() throws RecognitionException {
1154 EObject current = null; 1614 EObject current = null;
1155 1615
@@ -1157,8 +1617,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1157 1617
1158 1618
1159 try { 1619 try {
1160 // InternalProblem.g:453:60: (iv_rulePredicateDefinition= rulePredicateDefinition EOF ) 1620 // InternalProblem.g:617:60: (iv_rulePredicateDefinition= rulePredicateDefinition EOF )
1161 // InternalProblem.g:454:2: iv_rulePredicateDefinition= rulePredicateDefinition EOF 1621 // InternalProblem.g:618:2: iv_rulePredicateDefinition= rulePredicateDefinition EOF
1162 { 1622 {
1163 newCompositeNode(grammarAccess.getPredicateDefinitionRule()); 1623 newCompositeNode(grammarAccess.getPredicateDefinitionRule());
1164 pushFollow(FOLLOW_1); 1624 pushFollow(FOLLOW_1);
@@ -1185,20 +1645,21 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1185 1645
1186 1646
1187 // $ANTLR start "rulePredicateDefinition" 1647 // $ANTLR start "rulePredicateDefinition"
1188 // InternalProblem.g:460:1: rulePredicateDefinition returns [EObject current=null] : ( ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) ( (lv_name_3_0= RULE_ID ) ) 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= '.' ) ; 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= '.' ) ;
1189 public final EObject rulePredicateDefinition() throws RecognitionException { 1649 public final EObject rulePredicateDefinition() throws RecognitionException {
1190 EObject current = null; 1650 EObject current = null;
1191 1651
1192 Token lv_error_0_0=null; 1652 Token lv_error_0_0=null;
1193 Token otherlv_1=null; 1653 Token otherlv_1=null;
1194 Token otherlv_2=null; 1654 Token otherlv_2=null;
1195 Token lv_name_3_0=null;
1196 Token otherlv_4=null; 1655 Token otherlv_4=null;
1197 Token otherlv_6=null; 1656 Token otherlv_6=null;
1198 Token otherlv_8=null; 1657 Token otherlv_8=null;
1199 Token otherlv_9=null; 1658 Token otherlv_9=null;
1200 Token otherlv_11=null; 1659 Token otherlv_11=null;
1201 Token otherlv_13=null; 1660 Token otherlv_13=null;
1661 AntlrDatatypeRuleToken lv_name_3_0 = null;
1662
1202 EObject lv_parameters_5_0 = null; 1663 EObject lv_parameters_5_0 = null;
1203 1664
1204 EObject lv_parameters_7_0 = null; 1665 EObject lv_parameters_7_0 = null;
@@ -1212,42 +1673,42 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1212 enterRule(); 1673 enterRule();
1213 1674
1214 try { 1675 try {
1215 // InternalProblem.g:466:2: ( ( ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) ( (lv_name_3_0= RULE_ID ) ) 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= '.' ) ) 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= '.' ) )
1216 // InternalProblem.g:467:2: ( ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) ( (lv_name_3_0= RULE_ID ) ) 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= '.' )
1217 { 1678 {
1218 // InternalProblem.g:467:2: ( ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) ( (lv_name_3_0= RULE_ID ) ) 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= '.' ) 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= '.' )
1219 // InternalProblem.g:468:3: ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) ( (lv_name_3_0= RULE_ID ) ) 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= '.'
1220 { 1681 {
1221 // InternalProblem.g:468:3: ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) 1682 // InternalProblem.g:632:3: ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' )
1222 int alt14=2; 1683 int alt18=2;
1223 int LA14_0 = input.LA(1); 1684 int LA18_0 = input.LA(1);
1224 1685
1225 if ( (LA14_0==26) ) { 1686 if ( (LA18_0==27) ) {
1226 alt14=1; 1687 alt18=1;
1227 } 1688 }
1228 else if ( (LA14_0==27) ) { 1689 else if ( (LA18_0==28) ) {
1229 alt14=2; 1690 alt18=2;
1230 } 1691 }
1231 else { 1692 else {
1232 NoViableAltException nvae = 1693 NoViableAltException nvae =
1233 new NoViableAltException("", 14, 0, input); 1694 new NoViableAltException("", 18, 0, input);
1234 1695
1235 throw nvae; 1696 throw nvae;
1236 } 1697 }
1237 switch (alt14) { 1698 switch (alt18) {
1238 case 1 : 1699 case 1 :
1239 // InternalProblem.g:469:4: ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) 1700 // InternalProblem.g:633:4: ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? )
1240 { 1701 {
1241 // InternalProblem.g:469:4: ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) 1702 // InternalProblem.g:633:4: ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? )
1242 // InternalProblem.g:470:5: ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? 1703 // InternalProblem.g:634:5: ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )?
1243 { 1704 {
1244 // InternalProblem.g:470:5: ( (lv_error_0_0= 'error' ) ) 1705 // InternalProblem.g:634:5: ( (lv_error_0_0= 'error' ) )
1245 // InternalProblem.g:471:6: (lv_error_0_0= 'error' ) 1706 // InternalProblem.g:635:6: (lv_error_0_0= 'error' )
1246 { 1707 {
1247 // InternalProblem.g:471:6: (lv_error_0_0= 'error' ) 1708 // InternalProblem.g:635:6: (lv_error_0_0= 'error' )
1248 // InternalProblem.g:472:7: lv_error_0_0= 'error' 1709 // InternalProblem.g:636:7: lv_error_0_0= 'error'
1249 { 1710 {
1250 lv_error_0_0=(Token)match(input,26,FOLLOW_16); 1711 lv_error_0_0=(Token)match(input,27,FOLLOW_20);
1251 1712
1252 newLeafNode(lv_error_0_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0()); 1713 newLeafNode(lv_error_0_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0());
1253 1714
@@ -1263,18 +1724,18 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1263 1724
1264 } 1725 }
1265 1726
1266 // InternalProblem.g:484:5: (otherlv_1= 'pred' )? 1727 // InternalProblem.g:648:5: (otherlv_1= 'pred' )?
1267 int alt13=2; 1728 int alt17=2;
1268 int LA13_0 = input.LA(1); 1729 int LA17_0 = input.LA(1);
1269 1730
1270 if ( (LA13_0==27) ) { 1731 if ( (LA17_0==28) ) {
1271 alt13=1; 1732 alt17=1;
1272 } 1733 }
1273 switch (alt13) { 1734 switch (alt17) {
1274 case 1 : 1735 case 1 :
1275 // InternalProblem.g:485:6: otherlv_1= 'pred' 1736 // InternalProblem.g:649:6: otherlv_1= 'pred'
1276 { 1737 {
1277 otherlv_1=(Token)match(input,27,FOLLOW_3); 1738 otherlv_1=(Token)match(input,28,FOLLOW_3);
1278 1739
1279 newLeafNode(otherlv_1, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1()); 1740 newLeafNode(otherlv_1, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1());
1280 1741
@@ -1291,9 +1752,9 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1291 } 1752 }
1292 break; 1753 break;
1293 case 2 : 1754 case 2 :
1294 // InternalProblem.g:492:4: otherlv_2= 'pred' 1755 // InternalProblem.g:656:4: otherlv_2= 'pred'
1295 { 1756 {
1296 otherlv_2=(Token)match(input,27,FOLLOW_3); 1757 otherlv_2=(Token)match(input,28,FOLLOW_3);
1297 1758
1298 newLeafNode(otherlv_2, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_1()); 1759 newLeafNode(otherlv_2, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_1());
1299 1760
@@ -1303,25 +1764,30 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1303 1764
1304 } 1765 }
1305 1766
1306 // InternalProblem.g:497:3: ( (lv_name_3_0= RULE_ID ) ) 1767 // InternalProblem.g:661:3: ( (lv_name_3_0= ruleIdentifier ) )
1307 // InternalProblem.g:498:4: (lv_name_3_0= RULE_ID ) 1768 // InternalProblem.g:662:4: (lv_name_3_0= ruleIdentifier )
1308 { 1769 {
1309 // InternalProblem.g:498:4: (lv_name_3_0= RULE_ID ) 1770 // InternalProblem.g:662:4: (lv_name_3_0= ruleIdentifier )
1310 // InternalProblem.g:499:5: lv_name_3_0= RULE_ID 1771 // InternalProblem.g:663:5: lv_name_3_0= ruleIdentifier
1311 { 1772 {
1312 lv_name_3_0=(Token)match(input,RULE_ID,FOLLOW_17);
1313 1773
1314 newLeafNode(lv_name_3_0, grammarAccess.getPredicateDefinitionAccess().getNameIDTerminalRuleCall_1_0()); 1774 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getNameIdentifierParserRuleCall_1_0());
1315 1775
1776 pushFollow(FOLLOW_21);
1777 lv_name_3_0=ruleIdentifier();
1778
1779 state._fsp--;
1780
1316 1781
1317 if (current==null) { 1782 if (current==null) {
1318 current = createModelElement(grammarAccess.getPredicateDefinitionRule()); 1783 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1319 } 1784 }
1320 setWithLastConsumed( 1785 set(
1321 current, 1786 current,
1322 "name", 1787 "name",
1323 lv_name_3_0, 1788 lv_name_3_0,
1324 "org.eclipse.xtext.common.Terminals.ID"); 1789 "org.eclipse.viatra.solver.language.Problem.Identifier");
1790 afterParserOrEnumRuleCall();
1325 1791
1326 1792
1327 } 1793 }
@@ -1329,31 +1795,31 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1329 1795
1330 } 1796 }
1331 1797
1332 otherlv_4=(Token)match(input,28,FOLLOW_18); 1798 otherlv_4=(Token)match(input,29,FOLLOW_22);
1333 1799
1334 newLeafNode(otherlv_4, grammarAccess.getPredicateDefinitionAccess().getLeftParenthesisKeyword_2()); 1800 newLeafNode(otherlv_4, grammarAccess.getPredicateDefinitionAccess().getLeftParenthesisKeyword_2());
1335 1801
1336 // InternalProblem.g:519:3: ( ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )* )? 1802 // InternalProblem.g:684:3: ( ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )* )?
1337 int alt16=2; 1803 int alt20=2;
1338 int LA16_0 = input.LA(1); 1804 int LA20_0 = input.LA(1);
1339 1805
1340 if ( (LA16_0==RULE_ID) ) { 1806 if ( (LA20_0==RULE_ID||LA20_0==RULE_QUOTED_ID||(LA20_0>=40 && LA20_0<=41)) ) {
1341 alt16=1; 1807 alt20=1;
1342 } 1808 }
1343 switch (alt16) { 1809 switch (alt20) {
1344 case 1 : 1810 case 1 :
1345 // InternalProblem.g:520:4: ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )* 1811 // InternalProblem.g:685:4: ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )*
1346 { 1812 {
1347 // InternalProblem.g:520:4: ( (lv_parameters_5_0= ruleParameter ) ) 1813 // InternalProblem.g:685:4: ( (lv_parameters_5_0= ruleParameter ) )
1348 // InternalProblem.g:521:5: (lv_parameters_5_0= ruleParameter ) 1814 // InternalProblem.g:686:5: (lv_parameters_5_0= ruleParameter )
1349 { 1815 {
1350 // InternalProblem.g:521:5: (lv_parameters_5_0= ruleParameter ) 1816 // InternalProblem.g:686:5: (lv_parameters_5_0= ruleParameter )
1351 // InternalProblem.g:522:6: lv_parameters_5_0= ruleParameter 1817 // InternalProblem.g:687:6: lv_parameters_5_0= ruleParameter
1352 { 1818 {
1353 1819
1354 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_0_0()); 1820 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_0_0());
1355 1821
1356 pushFollow(FOLLOW_19); 1822 pushFollow(FOLLOW_23);
1357 lv_parameters_5_0=ruleParameter(); 1823 lv_parameters_5_0=ruleParameter();
1358 1824
1359 state._fsp--; 1825 state._fsp--;
@@ -1375,35 +1841,35 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1375 1841
1376 } 1842 }
1377 1843
1378 // InternalProblem.g:539:4: (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )* 1844 // InternalProblem.g:704:4: (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )*
1379 loop15: 1845 loop19:
1380 do { 1846 do {
1381 int alt15=2; 1847 int alt19=2;
1382 int LA15_0 = input.LA(1); 1848 int LA19_0 = input.LA(1);
1383 1849
1384 if ( (LA15_0==17) ) { 1850 if ( (LA19_0==17) ) {
1385 alt15=1; 1851 alt19=1;
1386 } 1852 }
1387 1853
1388 1854
1389 switch (alt15) { 1855 switch (alt19) {
1390 case 1 : 1856 case 1 :
1391 // InternalProblem.g:540:5: otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) 1857 // InternalProblem.g:705:5: otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) )
1392 { 1858 {
1393 otherlv_6=(Token)match(input,17,FOLLOW_3); 1859 otherlv_6=(Token)match(input,17,FOLLOW_8);
1394 1860
1395 newLeafNode(otherlv_6, grammarAccess.getPredicateDefinitionAccess().getCommaKeyword_3_1_0()); 1861 newLeafNode(otherlv_6, grammarAccess.getPredicateDefinitionAccess().getCommaKeyword_3_1_0());
1396 1862
1397 // InternalProblem.g:544:5: ( (lv_parameters_7_0= ruleParameter ) ) 1863 // InternalProblem.g:709:5: ( (lv_parameters_7_0= ruleParameter ) )
1398 // InternalProblem.g:545:6: (lv_parameters_7_0= ruleParameter ) 1864 // InternalProblem.g:710:6: (lv_parameters_7_0= ruleParameter )
1399 { 1865 {
1400 // InternalProblem.g:545:6: (lv_parameters_7_0= ruleParameter ) 1866 // InternalProblem.g:710:6: (lv_parameters_7_0= ruleParameter )
1401 // InternalProblem.g:546:7: lv_parameters_7_0= ruleParameter 1867 // InternalProblem.g:711:7: lv_parameters_7_0= ruleParameter
1402 { 1868 {
1403 1869
1404 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_1_1_0()); 1870 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_1_1_0());
1405 1871
1406 pushFollow(FOLLOW_19); 1872 pushFollow(FOLLOW_23);
1407 lv_parameters_7_0=ruleParameter(); 1873 lv_parameters_7_0=ruleParameter();
1408 1874
1409 state._fsp--; 1875 state._fsp--;
@@ -1430,7 +1896,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1430 break; 1896 break;
1431 1897
1432 default : 1898 default :
1433 break loop15; 1899 break loop19;
1434 } 1900 }
1435 } while (true); 1901 } while (true);
1436 1902
@@ -1440,35 +1906,35 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1440 1906
1441 } 1907 }
1442 1908
1443 otherlv_8=(Token)match(input,29,FOLLOW_20); 1909 otherlv_8=(Token)match(input,30,FOLLOW_24);
1444 1910
1445 newLeafNode(otherlv_8, grammarAccess.getPredicateDefinitionAccess().getRightParenthesisKeyword_4()); 1911 newLeafNode(otherlv_8, grammarAccess.getPredicateDefinitionAccess().getRightParenthesisKeyword_4());
1446 1912
1447 // InternalProblem.g:569:3: (otherlv_9= ':-' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )* )? 1913 // InternalProblem.g:734:3: (otherlv_9= ':-' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )* )?
1448 int alt18=2; 1914 int alt22=2;
1449 int LA18_0 = input.LA(1); 1915 int LA22_0 = input.LA(1);
1450 1916
1451 if ( (LA18_0==30) ) { 1917 if ( (LA22_0==31) ) {
1452 alt18=1; 1918 alt22=1;
1453 } 1919 }
1454 switch (alt18) { 1920 switch (alt22) {
1455 case 1 : 1921 case 1 :
1456 // InternalProblem.g:570:4: otherlv_9= ':-' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )* 1922 // InternalProblem.g:735:4: otherlv_9= ':-' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )*
1457 { 1923 {
1458 otherlv_9=(Token)match(input,30,FOLLOW_21); 1924 otherlv_9=(Token)match(input,31,FOLLOW_25);
1459 1925
1460 newLeafNode(otherlv_9, grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_5_0()); 1926 newLeafNode(otherlv_9, grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_5_0());
1461 1927
1462 // InternalProblem.g:574:4: ( (lv_bodies_10_0= ruleConjunction ) ) 1928 // InternalProblem.g:739:4: ( (lv_bodies_10_0= ruleConjunction ) )
1463 // InternalProblem.g:575:5: (lv_bodies_10_0= ruleConjunction ) 1929 // InternalProblem.g:740:5: (lv_bodies_10_0= ruleConjunction )
1464 { 1930 {
1465 // InternalProblem.g:575:5: (lv_bodies_10_0= ruleConjunction ) 1931 // InternalProblem.g:740:5: (lv_bodies_10_0= ruleConjunction )
1466 // InternalProblem.g:576:6: lv_bodies_10_0= ruleConjunction 1932 // InternalProblem.g:741:6: lv_bodies_10_0= ruleConjunction
1467 { 1933 {
1468 1934
1469 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_1_0()); 1935 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_1_0());
1470 1936
1471 pushFollow(FOLLOW_22); 1937 pushFollow(FOLLOW_26);
1472 lv_bodies_10_0=ruleConjunction(); 1938 lv_bodies_10_0=ruleConjunction();
1473 1939
1474 state._fsp--; 1940 state._fsp--;
@@ -1490,35 +1956,35 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1490 1956
1491 } 1957 }
1492 1958
1493 // InternalProblem.g:593:4: (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )* 1959 // InternalProblem.g:758:4: (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )*
1494 loop17: 1960 loop21:
1495 do { 1961 do {
1496 int alt17=2; 1962 int alt21=2;
1497 int LA17_0 = input.LA(1); 1963 int LA21_0 = input.LA(1);
1498 1964
1499 if ( (LA17_0==19) ) { 1965 if ( (LA21_0==19) ) {
1500 alt17=1; 1966 alt21=1;
1501 } 1967 }
1502 1968
1503 1969
1504 switch (alt17) { 1970 switch (alt21) {
1505 case 1 : 1971 case 1 :
1506 // InternalProblem.g:594:5: otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) 1972 // InternalProblem.g:759:5: otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) )
1507 { 1973 {
1508 otherlv_11=(Token)match(input,19,FOLLOW_21); 1974 otherlv_11=(Token)match(input,19,FOLLOW_25);
1509 1975
1510 newLeafNode(otherlv_11, grammarAccess.getPredicateDefinitionAccess().getSemicolonKeyword_5_2_0()); 1976 newLeafNode(otherlv_11, grammarAccess.getPredicateDefinitionAccess().getSemicolonKeyword_5_2_0());
1511 1977
1512 // InternalProblem.g:598:5: ( (lv_bodies_12_0= ruleConjunction ) ) 1978 // InternalProblem.g:763:5: ( (lv_bodies_12_0= ruleConjunction ) )
1513 // InternalProblem.g:599:6: (lv_bodies_12_0= ruleConjunction ) 1979 // InternalProblem.g:764:6: (lv_bodies_12_0= ruleConjunction )
1514 { 1980 {
1515 // InternalProblem.g:599:6: (lv_bodies_12_0= ruleConjunction ) 1981 // InternalProblem.g:764:6: (lv_bodies_12_0= ruleConjunction )
1516 // InternalProblem.g:600:7: lv_bodies_12_0= ruleConjunction 1982 // InternalProblem.g:765:7: lv_bodies_12_0= ruleConjunction
1517 { 1983 {
1518 1984
1519 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_2_1_0()); 1985 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_2_1_0());
1520 1986
1521 pushFollow(FOLLOW_22); 1987 pushFollow(FOLLOW_26);
1522 lv_bodies_12_0=ruleConjunction(); 1988 lv_bodies_12_0=ruleConjunction();
1523 1989
1524 state._fsp--; 1990 state._fsp--;
@@ -1545,7 +2011,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1545 break; 2011 break;
1546 2012
1547 default : 2013 default :
1548 break loop17; 2014 break loop21;
1549 } 2015 }
1550 } while (true); 2016 } while (true);
1551 2017
@@ -1582,7 +2048,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1582 2048
1583 2049
1584 // $ANTLR start "entryRuleParameter" 2050 // $ANTLR start "entryRuleParameter"
1585 // InternalProblem.g:627:1: entryRuleParameter returns [EObject current=null] : iv_ruleParameter= ruleParameter EOF ; 2051 // InternalProblem.g:792:1: entryRuleParameter returns [EObject current=null] : iv_ruleParameter= ruleParameter EOF ;
1586 public final EObject entryRuleParameter() throws RecognitionException { 2052 public final EObject entryRuleParameter() throws RecognitionException {
1587 EObject current = null; 2053 EObject current = null;
1588 2054
@@ -1590,8 +2056,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1590 2056
1591 2057
1592 try { 2058 try {
1593 // InternalProblem.g:627:50: (iv_ruleParameter= ruleParameter EOF ) 2059 // InternalProblem.g:792:50: (iv_ruleParameter= ruleParameter EOF )
1594 // InternalProblem.g:628:2: iv_ruleParameter= ruleParameter EOF 2060 // InternalProblem.g:793:2: iv_ruleParameter= ruleParameter EOF
1595 { 2061 {
1596 newCompositeNode(grammarAccess.getParameterRule()); 2062 newCompositeNode(grammarAccess.getParameterRule());
1597 pushFollow(FOLLOW_1); 2063 pushFollow(FOLLOW_1);
@@ -1618,63 +2084,116 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1618 2084
1619 2085
1620 // $ANTLR start "ruleParameter" 2086 // $ANTLR start "ruleParameter"
1621 // InternalProblem.g:634:1: ruleParameter returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) ( (lv_name_1_0= RULE_ID ) ) ) ; 2087 // InternalProblem.g:799:1: ruleParameter returns [EObject current=null] : ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= ruleIdentifier ) ) ) ;
1622 public final EObject ruleParameter() throws RecognitionException { 2088 public final EObject ruleParameter() throws RecognitionException {
1623 EObject current = null; 2089 EObject current = null;
1624 2090
1625 Token otherlv_0=null; 2091 AntlrDatatypeRuleToken lv_name_1_0 = null;
1626 Token lv_name_1_0=null; 2092
1627 2093
1628 2094
1629 enterRule(); 2095 enterRule();
1630 2096
1631 try { 2097 try {
1632 // InternalProblem.g:640:2: ( ( ( (otherlv_0= RULE_ID ) ) ( (lv_name_1_0= RULE_ID ) ) ) ) 2098 // InternalProblem.g:805:2: ( ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= ruleIdentifier ) ) ) )
1633 // InternalProblem.g:641:2: ( ( (otherlv_0= RULE_ID ) ) ( (lv_name_1_0= RULE_ID ) ) ) 2099 // InternalProblem.g:806:2: ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= ruleIdentifier ) ) )
1634 {
1635 // InternalProblem.g:641:2: ( ( (otherlv_0= RULE_ID ) ) ( (lv_name_1_0= RULE_ID ) ) )
1636 // InternalProblem.g:642:3: ( (otherlv_0= RULE_ID ) ) ( (lv_name_1_0= RULE_ID ) )
1637 {
1638 // InternalProblem.g:642:3: ( (otherlv_0= RULE_ID ) )
1639 // InternalProblem.g:643:4: (otherlv_0= RULE_ID )
1640 { 2100 {
1641 // InternalProblem.g:643:4: (otherlv_0= RULE_ID ) 2101 // InternalProblem.g:806:2: ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= ruleIdentifier ) ) )
1642 // InternalProblem.g:644:5: otherlv_0= RULE_ID 2102 // InternalProblem.g:807:3: ( ( ruleQualifiedName ) )? ( (lv_name_1_0= ruleIdentifier ) )
1643 { 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);
1644 2115
1645 if (current==null) { 2116 if ( (LA23_2==RULE_ID||LA23_2==34||(LA23_2>=40 && LA23_2<=41)) ) {
1646 current = createModelElement(grammarAccess.getParameterRule()); 2117 alt23=1;
1647 } 2118 }
1648 2119 }
1649 otherlv_0=(Token)match(input,RULE_ID,FOLLOW_3); 2120 break;
2121 case 40:
2122 {
2123 int LA23_3 = input.LA(2);
1650 2124
1651 newLeafNode(otherlv_0, grammarAccess.getParameterAccess().getParameterTypeClassDeclarationCrossReference_0_0()); 2125 if ( (LA23_3==RULE_ID||LA23_3==34||(LA23_3>=40 && LA23_3<=41)) ) {
1652 2126 alt23=1;
2127 }
2128 }
2129 break;
2130 case 41:
2131 {
2132 int LA23_4 = input.LA(2);
1653 2133
2134 if ( (LA23_4==RULE_ID||LA23_4==34||(LA23_4>=40 && LA23_4<=41)) ) {
2135 alt23=1;
2136 }
2137 }
2138 break;
1654 } 2139 }
1655 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;
1656 2170
1657 } 2171 }
1658 2172
1659 // InternalProblem.g:655:3: ( (lv_name_1_0= RULE_ID ) ) 2173 // InternalProblem.g:823:3: ( (lv_name_1_0= ruleIdentifier ) )
1660 // InternalProblem.g:656:4: (lv_name_1_0= RULE_ID ) 2174 // InternalProblem.g:824:4: (lv_name_1_0= ruleIdentifier )
1661 { 2175 {
1662 // InternalProblem.g:656:4: (lv_name_1_0= RULE_ID ) 2176 // InternalProblem.g:824:4: (lv_name_1_0= ruleIdentifier )
1663 // InternalProblem.g:657:5: lv_name_1_0= RULE_ID 2177 // InternalProblem.g:825:5: lv_name_1_0= ruleIdentifier
1664 { 2178 {
1665 lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_2);
1666 2179
1667 newLeafNode(lv_name_1_0, grammarAccess.getParameterAccess().getNameIDTerminalRuleCall_1_0()); 2180 newCompositeNode(grammarAccess.getParameterAccess().getNameIdentifierParserRuleCall_1_0());
1668 2181
2182 pushFollow(FOLLOW_2);
2183 lv_name_1_0=ruleIdentifier();
2184
2185 state._fsp--;
2186
1669 2187
1670 if (current==null) { 2188 if (current==null) {
1671 current = createModelElement(grammarAccess.getParameterRule()); 2189 current = createModelElementForParent(grammarAccess.getParameterRule());
1672 } 2190 }
1673 setWithLastConsumed( 2191 set(
1674 current, 2192 current,
1675 "name", 2193 "name",
1676 lv_name_1_0, 2194 lv_name_1_0,
1677 "org.eclipse.xtext.common.Terminals.ID"); 2195 "org.eclipse.viatra.solver.language.Problem.Identifier");
2196 afterParserOrEnumRuleCall();
1678 2197
1679 2198
1680 } 2199 }
@@ -1705,7 +2224,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1705 2224
1706 2225
1707 // $ANTLR start "entryRuleConjunction" 2226 // $ANTLR start "entryRuleConjunction"
1708 // InternalProblem.g:677:1: entryRuleConjunction returns [EObject current=null] : iv_ruleConjunction= ruleConjunction EOF ; 2227 // InternalProblem.g:846:1: entryRuleConjunction returns [EObject current=null] : iv_ruleConjunction= ruleConjunction EOF ;
1709 public final EObject entryRuleConjunction() throws RecognitionException { 2228 public final EObject entryRuleConjunction() throws RecognitionException {
1710 EObject current = null; 2229 EObject current = null;
1711 2230
@@ -1713,8 +2232,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1713 2232
1714 2233
1715 try { 2234 try {
1716 // InternalProblem.g:677:52: (iv_ruleConjunction= ruleConjunction EOF ) 2235 // InternalProblem.g:846:52: (iv_ruleConjunction= ruleConjunction EOF )
1717 // InternalProblem.g:678:2: iv_ruleConjunction= ruleConjunction EOF 2236 // InternalProblem.g:847:2: iv_ruleConjunction= ruleConjunction EOF
1718 { 2237 {
1719 newCompositeNode(grammarAccess.getConjunctionRule()); 2238 newCompositeNode(grammarAccess.getConjunctionRule());
1720 pushFollow(FOLLOW_1); 2239 pushFollow(FOLLOW_1);
@@ -1741,7 +2260,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1741 2260
1742 2261
1743 // $ANTLR start "ruleConjunction" 2262 // $ANTLR start "ruleConjunction"
1744 // InternalProblem.g:684:1: ruleConjunction returns [EObject current=null] : ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* ) ; 2263 // InternalProblem.g:853:1: ruleConjunction returns [EObject current=null] : ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* ) ;
1745 public final EObject ruleConjunction() throws RecognitionException { 2264 public final EObject ruleConjunction() throws RecognitionException {
1746 EObject current = null; 2265 EObject current = null;
1747 2266
@@ -1755,22 +2274,22 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1755 enterRule(); 2274 enterRule();
1756 2275
1757 try { 2276 try {
1758 // InternalProblem.g:690:2: ( ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* ) ) 2277 // InternalProblem.g:859:2: ( ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* ) )
1759 // InternalProblem.g:691: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 ) ) )* )
1760 { 2279 {
1761 // InternalProblem.g:691:2: ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* ) 2280 // InternalProblem.g:860:2: ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* )
1762 // InternalProblem.g:692:3: ( (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 ) ) )*
1763 { 2282 {
1764 // InternalProblem.g:692:3: ( (lv_literals_0_0= ruleLiteral ) ) 2283 // InternalProblem.g:861:3: ( (lv_literals_0_0= ruleLiteral ) )
1765 // InternalProblem.g:693:4: (lv_literals_0_0= ruleLiteral ) 2284 // InternalProblem.g:862:4: (lv_literals_0_0= ruleLiteral )
1766 { 2285 {
1767 // InternalProblem.g:693:4: (lv_literals_0_0= ruleLiteral ) 2286 // InternalProblem.g:862:4: (lv_literals_0_0= ruleLiteral )
1768 // InternalProblem.g:694:5: lv_literals_0_0= ruleLiteral 2287 // InternalProblem.g:863:5: lv_literals_0_0= ruleLiteral
1769 { 2288 {
1770 2289
1771 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_0_0()); 2290 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_0_0());
1772 2291
1773 pushFollow(FOLLOW_23); 2292 pushFollow(FOLLOW_27);
1774 lv_literals_0_0=ruleLiteral(); 2293 lv_literals_0_0=ruleLiteral();
1775 2294
1776 state._fsp--; 2295 state._fsp--;
@@ -1792,35 +2311,35 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1792 2311
1793 } 2312 }
1794 2313
1795 // InternalProblem.g:711:3: (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* 2314 // InternalProblem.g:880:3: (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )*
1796 loop19: 2315 loop24:
1797 do { 2316 do {
1798 int alt19=2; 2317 int alt24=2;
1799 int LA19_0 = input.LA(1); 2318 int LA24_0 = input.LA(1);
1800 2319
1801 if ( (LA19_0==17) ) { 2320 if ( (LA24_0==17) ) {
1802 alt19=1; 2321 alt24=1;
1803 } 2322 }
1804 2323
1805 2324
1806 switch (alt19) { 2325 switch (alt24) {
1807 case 1 : 2326 case 1 :
1808 // InternalProblem.g:712:4: otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) 2327 // InternalProblem.g:881:4: otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) )
1809 { 2328 {
1810 otherlv_1=(Token)match(input,17,FOLLOW_21); 2329 otherlv_1=(Token)match(input,17,FOLLOW_25);
1811 2330
1812 newLeafNode(otherlv_1, grammarAccess.getConjunctionAccess().getCommaKeyword_1_0()); 2331 newLeafNode(otherlv_1, grammarAccess.getConjunctionAccess().getCommaKeyword_1_0());
1813 2332
1814 // InternalProblem.g:716:4: ( (lv_literals_2_0= ruleLiteral ) ) 2333 // InternalProblem.g:885:4: ( (lv_literals_2_0= ruleLiteral ) )
1815 // InternalProblem.g:717:5: (lv_literals_2_0= ruleLiteral ) 2334 // InternalProblem.g:886:5: (lv_literals_2_0= ruleLiteral )
1816 { 2335 {
1817 // InternalProblem.g:717:5: (lv_literals_2_0= ruleLiteral ) 2336 // InternalProblem.g:886:5: (lv_literals_2_0= ruleLiteral )
1818 // InternalProblem.g:718:6: lv_literals_2_0= ruleLiteral 2337 // InternalProblem.g:887:6: lv_literals_2_0= ruleLiteral
1819 { 2338 {
1820 2339
1821 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_1_1_0()); 2340 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_1_1_0());
1822 2341
1823 pushFollow(FOLLOW_23); 2342 pushFollow(FOLLOW_27);
1824 lv_literals_2_0=ruleLiteral(); 2343 lv_literals_2_0=ruleLiteral();
1825 2344
1826 state._fsp--; 2345 state._fsp--;
@@ -1847,7 +2366,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1847 break; 2366 break;
1848 2367
1849 default : 2368 default :
1850 break loop19; 2369 break loop24;
1851 } 2370 }
1852 } while (true); 2371 } while (true);
1853 2372
@@ -1874,7 +2393,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1874 2393
1875 2394
1876 // $ANTLR start "entryRuleLiteral" 2395 // $ANTLR start "entryRuleLiteral"
1877 // InternalProblem.g:740:1: entryRuleLiteral returns [EObject current=null] : iv_ruleLiteral= ruleLiteral EOF ; 2396 // InternalProblem.g:909:1: entryRuleLiteral returns [EObject current=null] : iv_ruleLiteral= ruleLiteral EOF ;
1878 public final EObject entryRuleLiteral() throws RecognitionException { 2397 public final EObject entryRuleLiteral() throws RecognitionException {
1879 EObject current = null; 2398 EObject current = null;
1880 2399
@@ -1882,8 +2401,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1882 2401
1883 2402
1884 try { 2403 try {
1885 // InternalProblem.g:740:48: (iv_ruleLiteral= ruleLiteral EOF ) 2404 // InternalProblem.g:909:48: (iv_ruleLiteral= ruleLiteral EOF )
1886 // InternalProblem.g:741:2: iv_ruleLiteral= ruleLiteral EOF 2405 // InternalProblem.g:910:2: iv_ruleLiteral= ruleLiteral EOF
1887 { 2406 {
1888 newCompositeNode(grammarAccess.getLiteralRule()); 2407 newCompositeNode(grammarAccess.getLiteralRule());
1889 pushFollow(FOLLOW_1); 2408 pushFollow(FOLLOW_1);
@@ -1910,7 +2429,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1910 2429
1911 2430
1912 // $ANTLR start "ruleLiteral" 2431 // $ANTLR start "ruleLiteral"
1913 // InternalProblem.g:747:1: ruleLiteral returns [EObject current=null] : (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral ) ; 2432 // InternalProblem.g:916:1: ruleLiteral returns [EObject current=null] : (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral ) ;
1914 public final EObject ruleLiteral() throws RecognitionException { 2433 public final EObject ruleLiteral() throws RecognitionException {
1915 EObject current = null; 2434 EObject current = null;
1916 2435
@@ -1923,28 +2442,28 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1923 enterRule(); 2442 enterRule();
1924 2443
1925 try { 2444 try {
1926 // InternalProblem.g:753:2: ( (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral ) ) 2445 // InternalProblem.g:922:2: ( (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral ) )
1927 // InternalProblem.g:754:2: (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral ) 2446 // InternalProblem.g:923:2: (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral )
1928 { 2447 {
1929 // InternalProblem.g:754:2: (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral ) 2448 // InternalProblem.g:923:2: (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral )
1930 int alt20=2; 2449 int alt25=2;
1931 int LA20_0 = input.LA(1); 2450 int LA25_0 = input.LA(1);
1932 2451
1933 if ( (LA20_0==RULE_ID||LA20_0==RULE_QUOTED_ID) ) { 2452 if ( (LA25_0==RULE_ID||LA25_0==RULE_QUOTED_ID||(LA25_0>=40 && LA25_0<=41)) ) {
1934 alt20=1; 2453 alt25=1;
1935 } 2454 }
1936 else if ( (LA20_0==31) ) { 2455 else if ( (LA25_0==32) ) {
1937 alt20=2; 2456 alt25=2;
1938 } 2457 }
1939 else { 2458 else {
1940 NoViableAltException nvae = 2459 NoViableAltException nvae =
1941 new NoViableAltException("", 20, 0, input); 2460 new NoViableAltException("", 25, 0, input);
1942 2461
1943 throw nvae; 2462 throw nvae;
1944 } 2463 }
1945 switch (alt20) { 2464 switch (alt25) {
1946 case 1 : 2465 case 1 :
1947 // InternalProblem.g:755:3: this_Atom_0= ruleAtom 2466 // InternalProblem.g:924:3: this_Atom_0= ruleAtom
1948 { 2467 {
1949 2468
1950 newCompositeNode(grammarAccess.getLiteralAccess().getAtomParserRuleCall_0()); 2469 newCompositeNode(grammarAccess.getLiteralAccess().getAtomParserRuleCall_0());
@@ -1962,7 +2481,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1962 } 2481 }
1963 break; 2482 break;
1964 case 2 : 2483 case 2 :
1965 // InternalProblem.g:764:3: this_NegativeLiteral_1= ruleNegativeLiteral 2484 // InternalProblem.g:933:3: this_NegativeLiteral_1= ruleNegativeLiteral
1966 { 2485 {
1967 2486
1968 newCompositeNode(grammarAccess.getLiteralAccess().getNegativeLiteralParserRuleCall_1()); 2487 newCompositeNode(grammarAccess.getLiteralAccess().getNegativeLiteralParserRuleCall_1());
@@ -2002,7 +2521,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2002 2521
2003 2522
2004 // $ANTLR start "entryRuleNegativeLiteral" 2523 // $ANTLR start "entryRuleNegativeLiteral"
2005 // InternalProblem.g:776:1: entryRuleNegativeLiteral returns [EObject current=null] : iv_ruleNegativeLiteral= ruleNegativeLiteral EOF ; 2524 // InternalProblem.g:945:1: entryRuleNegativeLiteral returns [EObject current=null] : iv_ruleNegativeLiteral= ruleNegativeLiteral EOF ;
2006 public final EObject entryRuleNegativeLiteral() throws RecognitionException { 2525 public final EObject entryRuleNegativeLiteral() throws RecognitionException {
2007 EObject current = null; 2526 EObject current = null;
2008 2527
@@ -2010,8 +2529,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2010 2529
2011 2530
2012 try { 2531 try {
2013 // InternalProblem.g:776:56: (iv_ruleNegativeLiteral= ruleNegativeLiteral EOF ) 2532 // InternalProblem.g:945:56: (iv_ruleNegativeLiteral= ruleNegativeLiteral EOF )
2014 // InternalProblem.g:777:2: iv_ruleNegativeLiteral= ruleNegativeLiteral EOF 2533 // InternalProblem.g:946:2: iv_ruleNegativeLiteral= ruleNegativeLiteral EOF
2015 { 2534 {
2016 newCompositeNode(grammarAccess.getNegativeLiteralRule()); 2535 newCompositeNode(grammarAccess.getNegativeLiteralRule());
2017 pushFollow(FOLLOW_1); 2536 pushFollow(FOLLOW_1);
@@ -2038,7 +2557,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2038 2557
2039 2558
2040 // $ANTLR start "ruleNegativeLiteral" 2559 // $ANTLR start "ruleNegativeLiteral"
2041 // InternalProblem.g:783:1: ruleNegativeLiteral returns [EObject current=null] : (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) ) ; 2560 // InternalProblem.g:952:1: ruleNegativeLiteral returns [EObject current=null] : (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) ) ;
2042 public final EObject ruleNegativeLiteral() throws RecognitionException { 2561 public final EObject ruleNegativeLiteral() throws RecognitionException {
2043 EObject current = null; 2562 EObject current = null;
2044 2563
@@ -2050,21 +2569,21 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2050 enterRule(); 2569 enterRule();
2051 2570
2052 try { 2571 try {
2053 // InternalProblem.g:789:2: ( (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) ) ) 2572 // InternalProblem.g:958:2: ( (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) ) )
2054 // InternalProblem.g:790:2: (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) ) 2573 // InternalProblem.g:959:2: (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) )
2055 { 2574 {
2056 // InternalProblem.g:790:2: (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) ) 2575 // InternalProblem.g:959:2: (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) )
2057 // InternalProblem.g:791:3: otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) 2576 // InternalProblem.g:960:3: otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) )
2058 { 2577 {
2059 otherlv_0=(Token)match(input,31,FOLLOW_8); 2578 otherlv_0=(Token)match(input,32,FOLLOW_8);
2060 2579
2061 newLeafNode(otherlv_0, grammarAccess.getNegativeLiteralAccess().getExclamationMarkKeyword_0()); 2580 newLeafNode(otherlv_0, grammarAccess.getNegativeLiteralAccess().getExclamationMarkKeyword_0());
2062 2581
2063 // InternalProblem.g:795:3: ( (lv_atom_1_0= ruleAtom ) ) 2582 // InternalProblem.g:964:3: ( (lv_atom_1_0= ruleAtom ) )
2064 // InternalProblem.g:796:4: (lv_atom_1_0= ruleAtom ) 2583 // InternalProblem.g:965:4: (lv_atom_1_0= ruleAtom )
2065 { 2584 {
2066 // InternalProblem.g:796:4: (lv_atom_1_0= ruleAtom ) 2585 // InternalProblem.g:965:4: (lv_atom_1_0= ruleAtom )
2067 // InternalProblem.g:797:5: lv_atom_1_0= ruleAtom 2586 // InternalProblem.g:966:5: lv_atom_1_0= ruleAtom
2068 { 2587 {
2069 2588
2070 newCompositeNode(grammarAccess.getNegativeLiteralAccess().getAtomAtomParserRuleCall_1_0()); 2589 newCompositeNode(grammarAccess.getNegativeLiteralAccess().getAtomAtomParserRuleCall_1_0());
@@ -2114,7 +2633,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2114 2633
2115 2634
2116 // $ANTLR start "entryRuleAtom" 2635 // $ANTLR start "entryRuleAtom"
2117 // InternalProblem.g:818:1: entryRuleAtom returns [EObject current=null] : iv_ruleAtom= ruleAtom EOF ; 2636 // InternalProblem.g:987:1: entryRuleAtom returns [EObject current=null] : iv_ruleAtom= ruleAtom EOF ;
2118 public final EObject entryRuleAtom() throws RecognitionException { 2637 public final EObject entryRuleAtom() throws RecognitionException {
2119 EObject current = null; 2638 EObject current = null;
2120 2639
@@ -2122,8 +2641,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2122 2641
2123 2642
2124 try { 2643 try {
2125 // InternalProblem.g:818:45: (iv_ruleAtom= ruleAtom EOF ) 2644 // InternalProblem.g:987:45: (iv_ruleAtom= ruleAtom EOF )
2126 // InternalProblem.g:819:2: iv_ruleAtom= ruleAtom EOF 2645 // InternalProblem.g:988:2: iv_ruleAtom= ruleAtom EOF
2127 { 2646 {
2128 newCompositeNode(grammarAccess.getAtomRule()); 2647 newCompositeNode(grammarAccess.getAtomRule());
2129 pushFollow(FOLLOW_1); 2648 pushFollow(FOLLOW_1);
@@ -2150,7 +2669,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2150 2669
2151 2670
2152 // $ANTLR start "ruleAtom" 2671 // $ANTLR start "ruleAtom"
2153 // InternalProblem.g:825: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= ')' ) ; 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= ')' ) ;
2154 public final EObject ruleAtom() throws RecognitionException { 2673 public final EObject ruleAtom() throws RecognitionException {
2155 EObject current = null; 2674 EObject current = null;
2156 2675
@@ -2167,17 +2686,17 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2167 enterRule(); 2686 enterRule();
2168 2687
2169 try { 2688 try {
2170 // InternalProblem.g:831:2: ( ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )? otherlv_6= ')' ) ) 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= ')' ) )
2171 // InternalProblem.g:832: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= ')' )
2172 { 2691 {
2173 // InternalProblem.g:832:2: ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )? otherlv_6= ')' ) 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= ')' )
2174 // InternalProblem.g:833:3: ( ( 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= ')'
2175 { 2694 {
2176 // InternalProblem.g:833:3: ( ( ruleQualifiedName ) ) 2695 // InternalProblem.g:1002:3: ( ( ruleQualifiedName ) )
2177 // InternalProblem.g:834:4: ( ruleQualifiedName ) 2696 // InternalProblem.g:1003:4: ( ruleQualifiedName )
2178 { 2697 {
2179 // InternalProblem.g:834:4: ( ruleQualifiedName ) 2698 // InternalProblem.g:1003:4: ( ruleQualifiedName )
2180 // InternalProblem.g:835:5: ruleQualifiedName 2699 // InternalProblem.g:1004:5: ruleQualifiedName
2181 { 2700 {
2182 2701
2183 if (current==null) { 2702 if (current==null) {
@@ -2187,7 +2706,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2187 2706
2188 newCompositeNode(grammarAccess.getAtomAccess().getRelationRelationCrossReference_0_0()); 2707 newCompositeNode(grammarAccess.getAtomAccess().getRelationRelationCrossReference_0_0());
2189 2708
2190 pushFollow(FOLLOW_24); 2709 pushFollow(FOLLOW_28);
2191 ruleQualifiedName(); 2710 ruleQualifiedName();
2192 2711
2193 state._fsp--; 2712 state._fsp--;
@@ -2201,21 +2720,21 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2201 2720
2202 } 2721 }
2203 2722
2204 // InternalProblem.g:849:3: ( (lv_transitiveClosure_1_0= '+' ) )? 2723 // InternalProblem.g:1018:3: ( (lv_transitiveClosure_1_0= '+' ) )?
2205 int alt21=2; 2724 int alt26=2;
2206 int LA21_0 = input.LA(1); 2725 int LA26_0 = input.LA(1);
2207 2726
2208 if ( (LA21_0==32) ) { 2727 if ( (LA26_0==33) ) {
2209 alt21=1; 2728 alt26=1;
2210 } 2729 }
2211 switch (alt21) { 2730 switch (alt26) {
2212 case 1 : 2731 case 1 :
2213 // InternalProblem.g:850:4: (lv_transitiveClosure_1_0= '+' ) 2732 // InternalProblem.g:1019:4: (lv_transitiveClosure_1_0= '+' )
2214 { 2733 {
2215 // InternalProblem.g:850:4: (lv_transitiveClosure_1_0= '+' ) 2734 // InternalProblem.g:1019:4: (lv_transitiveClosure_1_0= '+' )
2216 // InternalProblem.g:851:5: lv_transitiveClosure_1_0= '+' 2735 // InternalProblem.g:1020:5: lv_transitiveClosure_1_0= '+'
2217 { 2736 {
2218 lv_transitiveClosure_1_0=(Token)match(input,32,FOLLOW_17); 2737 lv_transitiveClosure_1_0=(Token)match(input,33,FOLLOW_21);
2219 2738
2220 newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0()); 2739 newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0());
2221 2740
@@ -2234,31 +2753,31 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2234 2753
2235 } 2754 }
2236 2755
2237 otherlv_2=(Token)match(input,28,FOLLOW_18); 2756 otherlv_2=(Token)match(input,29,FOLLOW_22);
2238 2757
2239 newLeafNode(otherlv_2, grammarAccess.getAtomAccess().getLeftParenthesisKeyword_2()); 2758 newLeafNode(otherlv_2, grammarAccess.getAtomAccess().getLeftParenthesisKeyword_2());
2240 2759
2241 // InternalProblem.g:867:3: ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )? 2760 // InternalProblem.g:1036:3: ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )?
2242 int alt23=2; 2761 int alt28=2;
2243 int LA23_0 = input.LA(1); 2762 int LA28_0 = input.LA(1);
2244 2763
2245 if ( (LA23_0==RULE_ID) ) { 2764 if ( (LA28_0==RULE_ID||LA28_0==RULE_QUOTED_ID||(LA28_0>=40 && LA28_0<=41)) ) {
2246 alt23=1; 2765 alt28=1;
2247 } 2766 }
2248 switch (alt23) { 2767 switch (alt28) {
2249 case 1 : 2768 case 1 :
2250 // InternalProblem.g:868:4: ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* 2769 // InternalProblem.g:1037:4: ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )*
2251 { 2770 {
2252 // InternalProblem.g:868:4: ( (lv_arguments_3_0= ruleArgument ) ) 2771 // InternalProblem.g:1037:4: ( (lv_arguments_3_0= ruleArgument ) )
2253 // InternalProblem.g:869:5: (lv_arguments_3_0= ruleArgument ) 2772 // InternalProblem.g:1038:5: (lv_arguments_3_0= ruleArgument )
2254 { 2773 {
2255 // InternalProblem.g:869:5: (lv_arguments_3_0= ruleArgument ) 2774 // InternalProblem.g:1038:5: (lv_arguments_3_0= ruleArgument )
2256 // InternalProblem.g:870:6: lv_arguments_3_0= ruleArgument 2775 // InternalProblem.g:1039:6: lv_arguments_3_0= ruleArgument
2257 { 2776 {
2258 2777
2259 newCompositeNode(grammarAccess.getAtomAccess().getArgumentsArgumentParserRuleCall_3_0_0()); 2778 newCompositeNode(grammarAccess.getAtomAccess().getArgumentsArgumentParserRuleCall_3_0_0());
2260 2779
2261 pushFollow(FOLLOW_19); 2780 pushFollow(FOLLOW_23);
2262 lv_arguments_3_0=ruleArgument(); 2781 lv_arguments_3_0=ruleArgument();
2263 2782
2264 state._fsp--; 2783 state._fsp--;
@@ -2280,35 +2799,35 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2280 2799
2281 } 2800 }
2282 2801
2283 // InternalProblem.g:887:4: (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* 2802 // InternalProblem.g:1056:4: (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )*
2284 loop22: 2803 loop27:
2285 do { 2804 do {
2286 int alt22=2; 2805 int alt27=2;
2287 int LA22_0 = input.LA(1); 2806 int LA27_0 = input.LA(1);
2288 2807
2289 if ( (LA22_0==17) ) { 2808 if ( (LA27_0==17) ) {
2290 alt22=1; 2809 alt27=1;
2291 } 2810 }
2292 2811
2293 2812
2294 switch (alt22) { 2813 switch (alt27) {
2295 case 1 : 2814 case 1 :
2296 // InternalProblem.g:888:5: otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) 2815 // InternalProblem.g:1057:5: otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) )
2297 { 2816 {
2298 otherlv_4=(Token)match(input,17,FOLLOW_3); 2817 otherlv_4=(Token)match(input,17,FOLLOW_8);
2299 2818
2300 newLeafNode(otherlv_4, grammarAccess.getAtomAccess().getCommaKeyword_3_1_0()); 2819 newLeafNode(otherlv_4, grammarAccess.getAtomAccess().getCommaKeyword_3_1_0());
2301 2820
2302 // InternalProblem.g:892:5: ( (lv_arguments_5_0= ruleArgument ) ) 2821 // InternalProblem.g:1061:5: ( (lv_arguments_5_0= ruleArgument ) )
2303 // InternalProblem.g:893:6: (lv_arguments_5_0= ruleArgument ) 2822 // InternalProblem.g:1062:6: (lv_arguments_5_0= ruleArgument )
2304 { 2823 {
2305 // InternalProblem.g:893:6: (lv_arguments_5_0= ruleArgument ) 2824 // InternalProblem.g:1062:6: (lv_arguments_5_0= ruleArgument )
2306 // InternalProblem.g:894:7: lv_arguments_5_0= ruleArgument 2825 // InternalProblem.g:1063:7: lv_arguments_5_0= ruleArgument
2307 { 2826 {
2308 2827
2309 newCompositeNode(grammarAccess.getAtomAccess().getArgumentsArgumentParserRuleCall_3_1_1_0()); 2828 newCompositeNode(grammarAccess.getAtomAccess().getArgumentsArgumentParserRuleCall_3_1_1_0());
2310 2829
2311 pushFollow(FOLLOW_19); 2830 pushFollow(FOLLOW_23);
2312 lv_arguments_5_0=ruleArgument(); 2831 lv_arguments_5_0=ruleArgument();
2313 2832
2314 state._fsp--; 2833 state._fsp--;
@@ -2335,7 +2854,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2335 break; 2854 break;
2336 2855
2337 default : 2856 default :
2338 break loop22; 2857 break loop27;
2339 } 2858 }
2340 } while (true); 2859 } while (true);
2341 2860
@@ -2345,7 +2864,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2345 2864
2346 } 2865 }
2347 2866
2348 otherlv_6=(Token)match(input,29,FOLLOW_2); 2867 otherlv_6=(Token)match(input,30,FOLLOW_2);
2349 2868
2350 newLeafNode(otherlv_6, grammarAccess.getAtomAccess().getRightParenthesisKeyword_4()); 2869 newLeafNode(otherlv_6, grammarAccess.getAtomAccess().getRightParenthesisKeyword_4());
2351 2870
@@ -2372,7 +2891,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2372 2891
2373 2892
2374 // $ANTLR start "entryRuleArgument" 2893 // $ANTLR start "entryRuleArgument"
2375 // InternalProblem.g:921:1: entryRuleArgument returns [EObject current=null] : iv_ruleArgument= ruleArgument EOF ; 2894 // InternalProblem.g:1090:1: entryRuleArgument returns [EObject current=null] : iv_ruleArgument= ruleArgument EOF ;
2376 public final EObject entryRuleArgument() throws RecognitionException { 2895 public final EObject entryRuleArgument() throws RecognitionException {
2377 EObject current = null; 2896 EObject current = null;
2378 2897
@@ -2380,8 +2899,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2380 2899
2381 2900
2382 try { 2901 try {
2383 // InternalProblem.g:921:49: (iv_ruleArgument= ruleArgument EOF ) 2902 // InternalProblem.g:1090:49: (iv_ruleArgument= ruleArgument EOF )
2384 // InternalProblem.g:922:2: iv_ruleArgument= ruleArgument EOF 2903 // InternalProblem.g:1091:2: iv_ruleArgument= ruleArgument EOF
2385 { 2904 {
2386 newCompositeNode(grammarAccess.getArgumentRule()); 2905 newCompositeNode(grammarAccess.getArgumentRule());
2387 pushFollow(FOLLOW_1); 2906 pushFollow(FOLLOW_1);
@@ -2408,33 +2927,38 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2408 2927
2409 2928
2410 // $ANTLR start "ruleArgument" 2929 // $ANTLR start "ruleArgument"
2411 // InternalProblem.g:928:1: ruleArgument returns [EObject current=null] : ( (otherlv_0= RULE_ID ) ) ; 2930 // InternalProblem.g:1097:1: ruleArgument returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
2412 public final EObject ruleArgument() throws RecognitionException { 2931 public final EObject ruleArgument() throws RecognitionException {
2413 EObject current = null; 2932 EObject current = null;
2414 2933
2415 Token otherlv_0=null;
2416
2417 2934
2418 enterRule(); 2935 enterRule();
2419 2936
2420 try { 2937 try {
2421 // InternalProblem.g:934:2: ( ( (otherlv_0= RULE_ID ) ) ) 2938 // InternalProblem.g:1103:2: ( ( ( ruleQualifiedName ) ) )
2422 // InternalProblem.g:935:2: ( (otherlv_0= RULE_ID ) ) 2939 // InternalProblem.g:1104:2: ( ( ruleQualifiedName ) )
2423 { 2940 {
2424 // InternalProblem.g:935:2: ( (otherlv_0= RULE_ID ) ) 2941 // InternalProblem.g:1104:2: ( ( ruleQualifiedName ) )
2425 // InternalProblem.g:936:3: (otherlv_0= RULE_ID ) 2942 // InternalProblem.g:1105:3: ( ruleQualifiedName )
2426 { 2943 {
2427 // InternalProblem.g:936:3: (otherlv_0= RULE_ID ) 2944 // InternalProblem.g:1105:3: ( ruleQualifiedName )
2428 // InternalProblem.g:937:4: otherlv_0= RULE_ID 2945 // InternalProblem.g:1106:4: ruleQualifiedName
2429 { 2946 {
2430 2947
2431 if (current==null) { 2948 if (current==null) {
2432 current = createModelElement(grammarAccess.getArgumentRule()); 2949 current = createModelElement(grammarAccess.getArgumentRule());
2433 } 2950 }
2434 2951
2435 otherlv_0=(Token)match(input,RULE_ID,FOLLOW_2);
2436 2952
2437 newLeafNode(otherlv_0, grammarAccess.getArgumentAccess().getVariableVariableCrossReference_0()); 2953 newCompositeNode(grammarAccess.getArgumentAccess().getVariableOrNodeVariableOrNodeCrossReference_0());
2954
2955 pushFollow(FOLLOW_2);
2956 ruleQualifiedName();
2957
2958 state._fsp--;
2959
2960
2961 afterParserOrEnumRuleCall();
2438 2962
2439 2963
2440 } 2964 }
@@ -2462,7 +2986,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2462 2986
2463 2987
2464 // $ANTLR start "entryRuleAssertion" 2988 // $ANTLR start "entryRuleAssertion"
2465 // InternalProblem.g:951:1: entryRuleAssertion returns [EObject current=null] : iv_ruleAssertion= ruleAssertion EOF ; 2989 // InternalProblem.g:1123:1: entryRuleAssertion returns [EObject current=null] : iv_ruleAssertion= ruleAssertion EOF ;
2466 public final EObject entryRuleAssertion() throws RecognitionException { 2990 public final EObject entryRuleAssertion() throws RecognitionException {
2467 EObject current = null; 2991 EObject current = null;
2468 2992
@@ -2470,8 +2994,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2470 2994
2471 2995
2472 try { 2996 try {
2473 // InternalProblem.g:951:50: (iv_ruleAssertion= ruleAssertion EOF ) 2997 // InternalProblem.g:1123:50: (iv_ruleAssertion= ruleAssertion EOF )
2474 // InternalProblem.g:952:2: iv_ruleAssertion= ruleAssertion EOF 2998 // InternalProblem.g:1124:2: iv_ruleAssertion= ruleAssertion EOF
2475 { 2999 {
2476 newCompositeNode(grammarAccess.getAssertionRule()); 3000 newCompositeNode(grammarAccess.getAssertionRule());
2477 pushFollow(FOLLOW_1); 3001 pushFollow(FOLLOW_1);
@@ -2498,7 +3022,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2498 3022
2499 3023
2500 // $ANTLR start "ruleAssertion" 3024 // $ANTLR start "ruleAssertion"
2501 // InternalProblem.g:958: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= '.' ) ; 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= '.' ) ;
2502 public final EObject ruleAssertion() throws RecognitionException { 3026 public final EObject ruleAssertion() throws RecognitionException {
2503 EObject current = null; 3027 EObject current = null;
2504 3028
@@ -2519,27 +3043,27 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2519 enterRule(); 3043 enterRule();
2520 3044
2521 try { 3045 try {
2522 // InternalProblem.g:964: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= '.' ) ) 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= '.' ) )
2523 // InternalProblem.g:965: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= '.' )
2524 { 3048 {
2525 // InternalProblem.g:965: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= '.' ) 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= '.' )
2526 // InternalProblem.g:966: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= '.' 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= '.'
2527 { 3051 {
2528 // InternalProblem.g:966: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= ')' ) ) 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= ')' ) )
2529 int alt29=2; 3053 int alt34=2;
2530 alt29 = dfa29.predict(input); 3054 alt34 = dfa34.predict(input);
2531 switch (alt29) { 3055 switch (alt34) {
2532 case 1 : 3056 case 1 :
2533 // InternalProblem.g:967:4: ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) 3057 // InternalProblem.g:1139:4: ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) )
2534 { 3058 {
2535 // InternalProblem.g:967:4: ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) 3059 // InternalProblem.g:1139:4: ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) )
2536 // InternalProblem.g:968:5: ( ( 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 ) )
2537 { 3061 {
2538 // InternalProblem.g:968:5: ( ( ruleQualifiedName ) ) 3062 // InternalProblem.g:1140:5: ( ( ruleQualifiedName ) )
2539 // InternalProblem.g:969:6: ( ruleQualifiedName ) 3063 // InternalProblem.g:1141:6: ( ruleQualifiedName )
2540 { 3064 {
2541 // InternalProblem.g:969:6: ( ruleQualifiedName ) 3065 // InternalProblem.g:1141:6: ( ruleQualifiedName )
2542 // InternalProblem.g:970:7: ruleQualifiedName 3066 // InternalProblem.g:1142:7: ruleQualifiedName
2543 { 3067 {
2544 3068
2545 if (current==null) { 3069 if (current==null) {
@@ -2549,7 +3073,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2549 3073
2550 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_0_0_0()); 3074 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_0_0_0());
2551 3075
2552 pushFollow(FOLLOW_17); 3076 pushFollow(FOLLOW_21);
2553 ruleQualifiedName(); 3077 ruleQualifiedName();
2554 3078
2555 state._fsp--; 3079 state._fsp--;
@@ -2563,26 +3087,26 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2563 3087
2564 } 3088 }
2565 3089
2566 otherlv_1=(Token)match(input,28,FOLLOW_25); 3090 otherlv_1=(Token)match(input,29,FOLLOW_22);
2567 3091
2568 newLeafNode(otherlv_1, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_0_1()); 3092 newLeafNode(otherlv_1, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_0_1());
2569 3093
2570 // InternalProblem.g:988:5: ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? 3094 // InternalProblem.g:1160:5: ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )?
2571 int alt25=2; 3095 int alt30=2;
2572 int LA25_0 = input.LA(1); 3096 int LA30_0 = input.LA(1);
2573 3097
2574 if ( (LA25_0==RULE_ID||LA25_0==RULE_QUOTED_ID) ) { 3098 if ( (LA30_0==RULE_ID||LA30_0==RULE_QUOTED_ID||(LA30_0>=40 && LA30_0<=41)) ) {
2575 alt25=1; 3099 alt30=1;
2576 } 3100 }
2577 switch (alt25) { 3101 switch (alt30) {
2578 case 1 : 3102 case 1 :
2579 // InternalProblem.g:989:6: ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* 3103 // InternalProblem.g:1161:6: ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )*
2580 { 3104 {
2581 // InternalProblem.g:989:6: ( ( ruleQualifiedName ) ) 3105 // InternalProblem.g:1161:6: ( ( ruleQualifiedName ) )
2582 // InternalProblem.g:990:7: ( ruleQualifiedName ) 3106 // InternalProblem.g:1162:7: ( ruleQualifiedName )
2583 { 3107 {
2584 // InternalProblem.g:990:7: ( ruleQualifiedName ) 3108 // InternalProblem.g:1162:7: ( ruleQualifiedName )
2585 // InternalProblem.g:991:8: ruleQualifiedName 3109 // InternalProblem.g:1163:8: ruleQualifiedName
2586 { 3110 {
2587 3111
2588 if (current==null) { 3112 if (current==null) {
@@ -2592,7 +3116,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2592 3116
2593 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_0_0()); 3117 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_0_0());
2594 3118
2595 pushFollow(FOLLOW_19); 3119 pushFollow(FOLLOW_23);
2596 ruleQualifiedName(); 3120 ruleQualifiedName();
2597 3121
2598 state._fsp--; 3122 state._fsp--;
@@ -2606,30 +3130,30 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2606 3130
2607 } 3131 }
2608 3132
2609 // InternalProblem.g:1005:6: (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* 3133 // InternalProblem.g:1177:6: (otherlv_3= ',' ( ( ruleQualifiedName ) ) )*
2610 loop24: 3134 loop29:
2611 do { 3135 do {
2612 int alt24=2; 3136 int alt29=2;
2613 int LA24_0 = input.LA(1); 3137 int LA29_0 = input.LA(1);
2614 3138
2615 if ( (LA24_0==17) ) { 3139 if ( (LA29_0==17) ) {
2616 alt24=1; 3140 alt29=1;
2617 } 3141 }
2618 3142
2619 3143
2620 switch (alt24) { 3144 switch (alt29) {
2621 case 1 : 3145 case 1 :
2622 // InternalProblem.g:1006:7: otherlv_3= ',' ( ( ruleQualifiedName ) ) 3146 // InternalProblem.g:1178:7: otherlv_3= ',' ( ( ruleQualifiedName ) )
2623 { 3147 {
2624 otherlv_3=(Token)match(input,17,FOLLOW_8); 3148 otherlv_3=(Token)match(input,17,FOLLOW_8);
2625 3149
2626 newLeafNode(otherlv_3, grammarAccess.getAssertionAccess().getCommaKeyword_0_0_2_1_0()); 3150 newLeafNode(otherlv_3, grammarAccess.getAssertionAccess().getCommaKeyword_0_0_2_1_0());
2627 3151
2628 // InternalProblem.g:1010:7: ( ( ruleQualifiedName ) ) 3152 // InternalProblem.g:1182:7: ( ( ruleQualifiedName ) )
2629 // InternalProblem.g:1011:8: ( ruleQualifiedName ) 3153 // InternalProblem.g:1183:8: ( ruleQualifiedName )
2630 { 3154 {
2631 // InternalProblem.g:1011:8: ( ruleQualifiedName ) 3155 // InternalProblem.g:1183:8: ( ruleQualifiedName )
2632 // InternalProblem.g:1012:9: ruleQualifiedName 3156 // InternalProblem.g:1184:9: ruleQualifiedName
2633 { 3157 {
2634 3158
2635 if (current==null) { 3159 if (current==null) {
@@ -2639,7 +3163,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2639 3163
2640 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_1_1_0()); 3164 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_1_1_0());
2641 3165
2642 pushFollow(FOLLOW_19); 3166 pushFollow(FOLLOW_23);
2643 ruleQualifiedName(); 3167 ruleQualifiedName();
2644 3168
2645 state._fsp--; 3169 state._fsp--;
@@ -2658,7 +3182,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2658 break; 3182 break;
2659 3183
2660 default : 3184 default :
2661 break loop24; 3185 break loop29;
2662 } 3186 }
2663 } while (true); 3187 } while (true);
2664 3188
@@ -2668,19 +3192,19 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2668 3192
2669 } 3193 }
2670 3194
2671 otherlv_5=(Token)match(input,29,FOLLOW_26); 3195 otherlv_5=(Token)match(input,30,FOLLOW_29);
2672 3196
2673 newLeafNode(otherlv_5, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_0_3()); 3197 newLeafNode(otherlv_5, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_0_3());
2674 3198
2675 otherlv_6=(Token)match(input,33,FOLLOW_27); 3199 otherlv_6=(Token)match(input,34,FOLLOW_30);
2676 3200
2677 newLeafNode(otherlv_6, grammarAccess.getAssertionAccess().getColonKeyword_0_0_4()); 3201 newLeafNode(otherlv_6, grammarAccess.getAssertionAccess().getColonKeyword_0_0_4());
2678 3202
2679 // InternalProblem.g:1036:5: ( (lv_value_7_0= ruleLogicValue ) ) 3203 // InternalProblem.g:1208:5: ( (lv_value_7_0= ruleLogicValue ) )
2680 // InternalProblem.g:1037:6: (lv_value_7_0= ruleLogicValue ) 3204 // InternalProblem.g:1209:6: (lv_value_7_0= ruleLogicValue )
2681 { 3205 {
2682 // InternalProblem.g:1037:6: (lv_value_7_0= ruleLogicValue ) 3206 // InternalProblem.g:1209:6: (lv_value_7_0= ruleLogicValue )
2683 // InternalProblem.g:1038:7: lv_value_7_0= ruleLogicValue 3207 // InternalProblem.g:1210:7: lv_value_7_0= ruleLogicValue
2684 { 3208 {
2685 3209
2686 newCompositeNode(grammarAccess.getAssertionAccess().getValueLogicValueEnumRuleCall_0_0_5_0()); 3210 newCompositeNode(grammarAccess.getAssertionAccess().getValueLogicValueEnumRuleCall_0_0_5_0());
@@ -2714,24 +3238,24 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2714 } 3238 }
2715 break; 3239 break;
2716 case 2 : 3240 case 2 :
2717 // InternalProblem.g:1057:4: ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' ) 3241 // InternalProblem.g:1229:4: ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' )
2718 { 3242 {
2719 // InternalProblem.g:1057:4: ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' ) 3243 // InternalProblem.g:1229:4: ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' )
2720 // InternalProblem.g:1058:5: ( (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= ')'
2721 { 3245 {
2722 // InternalProblem.g:1058:5: ( (lv_value_8_0= ruleShortLogicValue ) )? 3246 // InternalProblem.g:1230:5: ( (lv_value_8_0= ruleShortLogicValue ) )?
2723 int alt26=2; 3247 int alt31=2;
2724 int LA26_0 = input.LA(1); 3248 int LA31_0 = input.LA(1);
2725 3249
2726 if ( (LA26_0==31||LA26_0==42) ) { 3250 if ( (LA31_0==32||LA31_0==43) ) {
2727 alt26=1; 3251 alt31=1;
2728 } 3252 }
2729 switch (alt26) { 3253 switch (alt31) {
2730 case 1 : 3254 case 1 :
2731 // InternalProblem.g:1059:6: (lv_value_8_0= ruleShortLogicValue ) 3255 // InternalProblem.g:1231:6: (lv_value_8_0= ruleShortLogicValue )
2732 { 3256 {
2733 // InternalProblem.g:1059:6: (lv_value_8_0= ruleShortLogicValue ) 3257 // InternalProblem.g:1231:6: (lv_value_8_0= ruleShortLogicValue )
2734 // InternalProblem.g:1060:7: lv_value_8_0= ruleShortLogicValue 3258 // InternalProblem.g:1232:7: lv_value_8_0= ruleShortLogicValue
2735 { 3259 {
2736 3260
2737 newCompositeNode(grammarAccess.getAssertionAccess().getValueShortLogicValueEnumRuleCall_0_1_0_0()); 3261 newCompositeNode(grammarAccess.getAssertionAccess().getValueShortLogicValueEnumRuleCall_0_1_0_0());
@@ -2761,11 +3285,11 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2761 3285
2762 } 3286 }
2763 3287
2764 // InternalProblem.g:1077:5: ( ( ruleQualifiedName ) ) 3288 // InternalProblem.g:1249:5: ( ( ruleQualifiedName ) )
2765 // InternalProblem.g:1078:6: ( ruleQualifiedName ) 3289 // InternalProblem.g:1250:6: ( ruleQualifiedName )
2766 { 3290 {
2767 // InternalProblem.g:1078:6: ( ruleQualifiedName ) 3291 // InternalProblem.g:1250:6: ( ruleQualifiedName )
2768 // InternalProblem.g:1079:7: ruleQualifiedName 3292 // InternalProblem.g:1251:7: ruleQualifiedName
2769 { 3293 {
2770 3294
2771 if (current==null) { 3295 if (current==null) {
@@ -2775,7 +3299,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2775 3299
2776 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_1_1_0()); 3300 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_1_1_0());
2777 3301
2778 pushFollow(FOLLOW_17); 3302 pushFollow(FOLLOW_21);
2779 ruleQualifiedName(); 3303 ruleQualifiedName();
2780 3304
2781 state._fsp--; 3305 state._fsp--;
@@ -2789,26 +3313,26 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2789 3313
2790 } 3314 }
2791 3315
2792 otherlv_10=(Token)match(input,28,FOLLOW_25); 3316 otherlv_10=(Token)match(input,29,FOLLOW_22);
2793 3317
2794 newLeafNode(otherlv_10, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_1_2()); 3318 newLeafNode(otherlv_10, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_1_2());
2795 3319
2796 // InternalProblem.g:1097:5: ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? 3320 // InternalProblem.g:1269:5: ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )?
2797 int alt28=2; 3321 int alt33=2;
2798 int LA28_0 = input.LA(1); 3322 int LA33_0 = input.LA(1);
2799 3323
2800 if ( (LA28_0==RULE_ID||LA28_0==RULE_QUOTED_ID) ) { 3324 if ( (LA33_0==RULE_ID||LA33_0==RULE_QUOTED_ID||(LA33_0>=40 && LA33_0<=41)) ) {
2801 alt28=1; 3325 alt33=1;
2802 } 3326 }
2803 switch (alt28) { 3327 switch (alt33) {
2804 case 1 : 3328 case 1 :
2805 // InternalProblem.g:1098:6: ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* 3329 // InternalProblem.g:1270:6: ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )*
2806 { 3330 {
2807 // InternalProblem.g:1098:6: ( ( ruleQualifiedName ) ) 3331 // InternalProblem.g:1270:6: ( ( ruleQualifiedName ) )
2808 // InternalProblem.g:1099:7: ( ruleQualifiedName ) 3332 // InternalProblem.g:1271:7: ( ruleQualifiedName )
2809 { 3333 {
2810 // InternalProblem.g:1099:7: ( ruleQualifiedName ) 3334 // InternalProblem.g:1271:7: ( ruleQualifiedName )
2811 // InternalProblem.g:1100:8: ruleQualifiedName 3335 // InternalProblem.g:1272:8: ruleQualifiedName
2812 { 3336 {
2813 3337
2814 if (current==null) { 3338 if (current==null) {
@@ -2818,7 +3342,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2818 3342
2819 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_0_0()); 3343 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_0_0());
2820 3344
2821 pushFollow(FOLLOW_19); 3345 pushFollow(FOLLOW_23);
2822 ruleQualifiedName(); 3346 ruleQualifiedName();
2823 3347
2824 state._fsp--; 3348 state._fsp--;
@@ -2832,30 +3356,30 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2832 3356
2833 } 3357 }
2834 3358
2835 // InternalProblem.g:1114:6: (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* 3359 // InternalProblem.g:1286:6: (otherlv_12= ',' ( ( ruleQualifiedName ) ) )*
2836 loop27: 3360 loop32:
2837 do { 3361 do {
2838 int alt27=2; 3362 int alt32=2;
2839 int LA27_0 = input.LA(1); 3363 int LA32_0 = input.LA(1);
2840 3364
2841 if ( (LA27_0==17) ) { 3365 if ( (LA32_0==17) ) {
2842 alt27=1; 3366 alt32=1;
2843 } 3367 }
2844 3368
2845 3369
2846 switch (alt27) { 3370 switch (alt32) {
2847 case 1 : 3371 case 1 :
2848 // InternalProblem.g:1115:7: otherlv_12= ',' ( ( ruleQualifiedName ) ) 3372 // InternalProblem.g:1287:7: otherlv_12= ',' ( ( ruleQualifiedName ) )
2849 { 3373 {
2850 otherlv_12=(Token)match(input,17,FOLLOW_8); 3374 otherlv_12=(Token)match(input,17,FOLLOW_8);
2851 3375
2852 newLeafNode(otherlv_12, grammarAccess.getAssertionAccess().getCommaKeyword_0_1_3_1_0()); 3376 newLeafNode(otherlv_12, grammarAccess.getAssertionAccess().getCommaKeyword_0_1_3_1_0());
2853 3377
2854 // InternalProblem.g:1119:7: ( ( ruleQualifiedName ) ) 3378 // InternalProblem.g:1291:7: ( ( ruleQualifiedName ) )
2855 // InternalProblem.g:1120:8: ( ruleQualifiedName ) 3379 // InternalProblem.g:1292:8: ( ruleQualifiedName )
2856 { 3380 {
2857 // InternalProblem.g:1120:8: ( ruleQualifiedName ) 3381 // InternalProblem.g:1292:8: ( ruleQualifiedName )
2858 // InternalProblem.g:1121:9: ruleQualifiedName 3382 // InternalProblem.g:1293:9: ruleQualifiedName
2859 { 3383 {
2860 3384
2861 if (current==null) { 3385 if (current==null) {
@@ -2865,7 +3389,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2865 3389
2866 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_1_1_0()); 3390 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_1_1_0());
2867 3391
2868 pushFollow(FOLLOW_19); 3392 pushFollow(FOLLOW_23);
2869 ruleQualifiedName(); 3393 ruleQualifiedName();
2870 3394
2871 state._fsp--; 3395 state._fsp--;
@@ -2884,7 +3408,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2884 break; 3408 break;
2885 3409
2886 default : 3410 default :
2887 break loop27; 3411 break loop32;
2888 } 3412 }
2889 } while (true); 3413 } while (true);
2890 3414
@@ -2894,7 +3418,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2894 3418
2895 } 3419 }
2896 3420
2897 otherlv_14=(Token)match(input,29,FOLLOW_4); 3421 otherlv_14=(Token)match(input,30,FOLLOW_4);
2898 3422
2899 newLeafNode(otherlv_14, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_1_4()); 3423 newLeafNode(otherlv_14, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_1_4());
2900 3424
@@ -2934,7 +3458,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2934 3458
2935 3459
2936 // $ANTLR start "entryRuleScopeDeclaration" 3460 // $ANTLR start "entryRuleScopeDeclaration"
2937 // InternalProblem.g:1151:1: entryRuleScopeDeclaration returns [EObject current=null] : iv_ruleScopeDeclaration= ruleScopeDeclaration EOF ; 3461 // InternalProblem.g:1323:1: entryRuleScopeDeclaration returns [EObject current=null] : iv_ruleScopeDeclaration= ruleScopeDeclaration EOF ;
2938 public final EObject entryRuleScopeDeclaration() throws RecognitionException { 3462 public final EObject entryRuleScopeDeclaration() throws RecognitionException {
2939 EObject current = null; 3463 EObject current = null;
2940 3464
@@ -2942,8 +3466,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2942 3466
2943 3467
2944 try { 3468 try {
2945 // InternalProblem.g:1151:57: (iv_ruleScopeDeclaration= ruleScopeDeclaration EOF ) 3469 // InternalProblem.g:1323:57: (iv_ruleScopeDeclaration= ruleScopeDeclaration EOF )
2946 // InternalProblem.g:1152:2: iv_ruleScopeDeclaration= ruleScopeDeclaration EOF 3470 // InternalProblem.g:1324:2: iv_ruleScopeDeclaration= ruleScopeDeclaration EOF
2947 { 3471 {
2948 newCompositeNode(grammarAccess.getScopeDeclarationRule()); 3472 newCompositeNode(grammarAccess.getScopeDeclarationRule());
2949 pushFollow(FOLLOW_1); 3473 pushFollow(FOLLOW_1);
@@ -2970,7 +3494,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2970 3494
2971 3495
2972 // $ANTLR start "ruleScopeDeclaration" 3496 // $ANTLR start "ruleScopeDeclaration"
2973 // InternalProblem.g:1158:1: ruleScopeDeclaration returns [EObject current=null] : (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' ) ; 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= '.' ) ;
2974 public final EObject ruleScopeDeclaration() throws RecognitionException { 3498 public final EObject ruleScopeDeclaration() throws RecognitionException {
2975 EObject current = null; 3499 EObject current = null;
2976 3500
@@ -2986,26 +3510,26 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2986 enterRule(); 3510 enterRule();
2987 3511
2988 try { 3512 try {
2989 // InternalProblem.g:1164:2: ( (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' ) ) 3513 // InternalProblem.g:1336:2: ( (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' ) )
2990 // InternalProblem.g:1165: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= '.' )
2991 { 3515 {
2992 // InternalProblem.g:1165:2: (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' ) 3516 // InternalProblem.g:1337:2: (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' )
2993 // InternalProblem.g:1166:3: 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= '.'
2994 { 3518 {
2995 otherlv_0=(Token)match(input,34,FOLLOW_3); 3519 otherlv_0=(Token)match(input,35,FOLLOW_31);
2996 3520
2997 newLeafNode(otherlv_0, grammarAccess.getScopeDeclarationAccess().getScopeKeyword_0()); 3521 newLeafNode(otherlv_0, grammarAccess.getScopeDeclarationAccess().getScopeKeyword_0());
2998 3522
2999 // InternalProblem.g:1170:3: ( (lv_typeScopes_1_0= ruleTypeScope ) ) 3523 // InternalProblem.g:1342:3: ( (lv_typeScopes_1_0= ruleTypeScope ) )
3000 // InternalProblem.g:1171:4: (lv_typeScopes_1_0= ruleTypeScope ) 3524 // InternalProblem.g:1343:4: (lv_typeScopes_1_0= ruleTypeScope )
3001 { 3525 {
3002 // InternalProblem.g:1171:4: (lv_typeScopes_1_0= ruleTypeScope ) 3526 // InternalProblem.g:1343:4: (lv_typeScopes_1_0= ruleTypeScope )
3003 // InternalProblem.g:1172:5: lv_typeScopes_1_0= ruleTypeScope 3527 // InternalProblem.g:1344:5: lv_typeScopes_1_0= ruleTypeScope
3004 { 3528 {
3005 3529
3006 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_1_0()); 3530 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_1_0());
3007 3531
3008 pushFollow(FOLLOW_28); 3532 pushFollow(FOLLOW_32);
3009 lv_typeScopes_1_0=ruleTypeScope(); 3533 lv_typeScopes_1_0=ruleTypeScope();
3010 3534
3011 state._fsp--; 3535 state._fsp--;
@@ -3027,35 +3551,35 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3027 3551
3028 } 3552 }
3029 3553
3030 // InternalProblem.g:1189:3: (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* 3554 // InternalProblem.g:1361:3: (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )*
3031 loop30: 3555 loop35:
3032 do { 3556 do {
3033 int alt30=2; 3557 int alt35=2;
3034 int LA30_0 = input.LA(1); 3558 int LA35_0 = input.LA(1);
3035 3559
3036 if ( (LA30_0==17) ) { 3560 if ( (LA35_0==17) ) {
3037 alt30=1; 3561 alt35=1;
3038 } 3562 }
3039 3563
3040 3564
3041 switch (alt30) { 3565 switch (alt35) {
3042 case 1 : 3566 case 1 :
3043 // InternalProblem.g:1190:4: otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) 3567 // InternalProblem.g:1362:4: otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) )
3044 { 3568 {
3045 otherlv_2=(Token)match(input,17,FOLLOW_3); 3569 otherlv_2=(Token)match(input,17,FOLLOW_31);
3046 3570
3047 newLeafNode(otherlv_2, grammarAccess.getScopeDeclarationAccess().getCommaKeyword_2_0()); 3571 newLeafNode(otherlv_2, grammarAccess.getScopeDeclarationAccess().getCommaKeyword_2_0());
3048 3572
3049 // InternalProblem.g:1194:4: ( (lv_typeScopes_3_0= ruleTypeScope ) ) 3573 // InternalProblem.g:1366:4: ( (lv_typeScopes_3_0= ruleTypeScope ) )
3050 // InternalProblem.g:1195:5: (lv_typeScopes_3_0= ruleTypeScope ) 3574 // InternalProblem.g:1367:5: (lv_typeScopes_3_0= ruleTypeScope )
3051 { 3575 {
3052 // InternalProblem.g:1195:5: (lv_typeScopes_3_0= ruleTypeScope ) 3576 // InternalProblem.g:1367:5: (lv_typeScopes_3_0= ruleTypeScope )
3053 // InternalProblem.g:1196:6: lv_typeScopes_3_0= ruleTypeScope 3577 // InternalProblem.g:1368:6: lv_typeScopes_3_0= ruleTypeScope
3054 { 3578 {
3055 3579
3056 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_2_1_0()); 3580 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_2_1_0());
3057 3581
3058 pushFollow(FOLLOW_28); 3582 pushFollow(FOLLOW_32);
3059 lv_typeScopes_3_0=ruleTypeScope(); 3583 lv_typeScopes_3_0=ruleTypeScope();
3060 3584
3061 state._fsp--; 3585 state._fsp--;
@@ -3082,7 +3606,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3082 break; 3606 break;
3083 3607
3084 default : 3608 default :
3085 break loop30; 3609 break loop35;
3086 } 3610 }
3087 } while (true); 3611 } while (true);
3088 3612
@@ -3113,7 +3637,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3113 3637
3114 3638
3115 // $ANTLR start "entryRuleTypeScope" 3639 // $ANTLR start "entryRuleTypeScope"
3116 // InternalProblem.g:1222:1: entryRuleTypeScope returns [EObject current=null] : iv_ruleTypeScope= ruleTypeScope EOF ; 3640 // InternalProblem.g:1394:1: entryRuleTypeScope returns [EObject current=null] : iv_ruleTypeScope= ruleTypeScope EOF ;
3117 public final EObject entryRuleTypeScope() throws RecognitionException { 3641 public final EObject entryRuleTypeScope() throws RecognitionException {
3118 EObject current = null; 3642 EObject current = null;
3119 3643
@@ -3121,8 +3645,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3121 3645
3122 3646
3123 try { 3647 try {
3124 // InternalProblem.g:1222:50: (iv_ruleTypeScope= ruleTypeScope EOF ) 3648 // InternalProblem.g:1394:50: (iv_ruleTypeScope= ruleTypeScope EOF )
3125 // InternalProblem.g:1223:2: iv_ruleTypeScope= ruleTypeScope EOF 3649 // InternalProblem.g:1395:2: iv_ruleTypeScope= ruleTypeScope EOF
3126 { 3650 {
3127 newCompositeNode(grammarAccess.getTypeScopeRule()); 3651 newCompositeNode(grammarAccess.getTypeScopeRule());
3128 pushFollow(FOLLOW_1); 3652 pushFollow(FOLLOW_1);
@@ -3149,7 +3673,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3149 3673
3150 3674
3151 // $ANTLR start "ruleTypeScope" 3675 // $ANTLR start "ruleTypeScope"
3152 // InternalProblem.g:1229:1: ruleTypeScope returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) ) ) ; 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 ) ) ) ;
3153 public final EObject ruleTypeScope() throws RecognitionException { 3677 public final EObject ruleTypeScope() throws RecognitionException {
3154 EObject current = null; 3678 EObject current = null;
3155 3679
@@ -3163,24 +3687,24 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3163 enterRule(); 3687 enterRule();
3164 3688
3165 try { 3689 try {
3166 // InternalProblem.g:1235:2: ( ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) ) ) ) 3690 // InternalProblem.g:1407:2: ( ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) ) ) )
3167 // InternalProblem.g:1236: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 ) ) )
3168 { 3692 {
3169 // InternalProblem.g:1236:2: ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) ) ) 3693 // InternalProblem.g:1408:2: ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) ) )
3170 // InternalProblem.g:1237:3: ( (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 ) )
3171 { 3695 {
3172 // InternalProblem.g:1237:3: ( (otherlv_0= RULE_ID ) ) 3696 // InternalProblem.g:1409:3: ( (otherlv_0= RULE_ID ) )
3173 // InternalProblem.g:1238:4: (otherlv_0= RULE_ID ) 3697 // InternalProblem.g:1410:4: (otherlv_0= RULE_ID )
3174 { 3698 {
3175 // InternalProblem.g:1238:4: (otherlv_0= RULE_ID ) 3699 // InternalProblem.g:1410:4: (otherlv_0= RULE_ID )
3176 // InternalProblem.g:1239:5: otherlv_0= RULE_ID 3700 // InternalProblem.g:1411:5: otherlv_0= RULE_ID
3177 { 3701 {
3178 3702
3179 if (current==null) { 3703 if (current==null) {
3180 current = createModelElement(grammarAccess.getTypeScopeRule()); 3704 current = createModelElement(grammarAccess.getTypeScopeRule());
3181 } 3705 }
3182 3706
3183 otherlv_0=(Token)match(input,RULE_ID,FOLLOW_29); 3707 otherlv_0=(Token)match(input,RULE_ID,FOLLOW_33);
3184 3708
3185 newLeafNode(otherlv_0, grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationCrossReference_0_0()); 3709 newLeafNode(otherlv_0, grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationCrossReference_0_0());
3186 3710
@@ -3190,33 +3714,33 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3190 3714
3191 } 3715 }
3192 3716
3193 // InternalProblem.g:1250:3: ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) 3717 // InternalProblem.g:1422:3: ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' )
3194 int alt31=2; 3718 int alt36=2;
3195 int LA31_0 = input.LA(1); 3719 int LA36_0 = input.LA(1);
3196 3720
3197 if ( (LA31_0==35) ) { 3721 if ( (LA36_0==36) ) {
3198 alt31=1; 3722 alt36=1;
3199 } 3723 }
3200 else if ( (LA31_0==36) ) { 3724 else if ( (LA36_0==37) ) {
3201 alt31=2; 3725 alt36=2;
3202 } 3726 }
3203 else { 3727 else {
3204 NoViableAltException nvae = 3728 NoViableAltException nvae =
3205 new NoViableAltException("", 31, 0, input); 3729 new NoViableAltException("", 36, 0, input);
3206 3730
3207 throw nvae; 3731 throw nvae;
3208 } 3732 }
3209 switch (alt31) { 3733 switch (alt36) {
3210 case 1 : 3734 case 1 :
3211 // InternalProblem.g:1251:4: ( (lv_increment_1_0= '+=' ) ) 3735 // InternalProblem.g:1423:4: ( (lv_increment_1_0= '+=' ) )
3212 { 3736 {
3213 // InternalProblem.g:1251:4: ( (lv_increment_1_0= '+=' ) ) 3737 // InternalProblem.g:1423:4: ( (lv_increment_1_0= '+=' ) )
3214 // InternalProblem.g:1252:5: (lv_increment_1_0= '+=' ) 3738 // InternalProblem.g:1424:5: (lv_increment_1_0= '+=' )
3215 { 3739 {
3216 // InternalProblem.g:1252:5: (lv_increment_1_0= '+=' ) 3740 // InternalProblem.g:1424:5: (lv_increment_1_0= '+=' )
3217 // InternalProblem.g:1253:6: lv_increment_1_0= '+=' 3741 // InternalProblem.g:1425:6: lv_increment_1_0= '+='
3218 { 3742 {
3219 lv_increment_1_0=(Token)match(input,35,FOLLOW_13); 3743 lv_increment_1_0=(Token)match(input,36,FOLLOW_17);
3220 3744
3221 newLeafNode(lv_increment_1_0, grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0()); 3745 newLeafNode(lv_increment_1_0, grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0());
3222 3746
@@ -3236,9 +3760,9 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3236 } 3760 }
3237 break; 3761 break;
3238 case 2 : 3762 case 2 :
3239 // InternalProblem.g:1266:4: otherlv_2= '=' 3763 // InternalProblem.g:1438:4: otherlv_2= '='
3240 { 3764 {
3241 otherlv_2=(Token)match(input,36,FOLLOW_13); 3765 otherlv_2=(Token)match(input,37,FOLLOW_17);
3242 3766
3243 newLeafNode(otherlv_2, grammarAccess.getTypeScopeAccess().getEqualsSignKeyword_1_1()); 3767 newLeafNode(otherlv_2, grammarAccess.getTypeScopeAccess().getEqualsSignKeyword_1_1());
3244 3768
@@ -3248,11 +3772,11 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3248 3772
3249 } 3773 }
3250 3774
3251 // InternalProblem.g:1271:3: ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) ) 3775 // InternalProblem.g:1443:3: ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) )
3252 // InternalProblem.g:1272:4: (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) 3776 // InternalProblem.g:1444:4: (lv_multiplicity_3_0= ruleDefiniteMultiplicity )
3253 { 3777 {
3254 // InternalProblem.g:1272:4: (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) 3778 // InternalProblem.g:1444:4: (lv_multiplicity_3_0= ruleDefiniteMultiplicity )
3255 // InternalProblem.g:1273:5: lv_multiplicity_3_0= ruleDefiniteMultiplicity 3779 // InternalProblem.g:1445:5: lv_multiplicity_3_0= ruleDefiniteMultiplicity
3256 { 3780 {
3257 3781
3258 newCompositeNode(grammarAccess.getTypeScopeAccess().getMultiplicityDefiniteMultiplicityParserRuleCall_2_0()); 3782 newCompositeNode(grammarAccess.getTypeScopeAccess().getMultiplicityDefiniteMultiplicityParserRuleCall_2_0());
@@ -3302,7 +3826,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3302 3826
3303 3827
3304 // $ANTLR start "entryRuleMultiplicity" 3828 // $ANTLR start "entryRuleMultiplicity"
3305 // InternalProblem.g:1294:1: entryRuleMultiplicity returns [EObject current=null] : iv_ruleMultiplicity= ruleMultiplicity EOF ; 3829 // InternalProblem.g:1466:1: entryRuleMultiplicity returns [EObject current=null] : iv_ruleMultiplicity= ruleMultiplicity EOF ;
3306 public final EObject entryRuleMultiplicity() throws RecognitionException { 3830 public final EObject entryRuleMultiplicity() throws RecognitionException {
3307 EObject current = null; 3831 EObject current = null;
3308 3832
@@ -3310,8 +3834,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3310 3834
3311 3835
3312 try { 3836 try {
3313 // InternalProblem.g:1294:53: (iv_ruleMultiplicity= ruleMultiplicity EOF ) 3837 // InternalProblem.g:1466:53: (iv_ruleMultiplicity= ruleMultiplicity EOF )
3314 // InternalProblem.g:1295:2: iv_ruleMultiplicity= ruleMultiplicity EOF 3838 // InternalProblem.g:1467:2: iv_ruleMultiplicity= ruleMultiplicity EOF
3315 { 3839 {
3316 newCompositeNode(grammarAccess.getMultiplicityRule()); 3840 newCompositeNode(grammarAccess.getMultiplicityRule());
3317 pushFollow(FOLLOW_1); 3841 pushFollow(FOLLOW_1);
@@ -3338,7 +3862,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3338 3862
3339 3863
3340 // $ANTLR start "ruleMultiplicity" 3864 // $ANTLR start "ruleMultiplicity"
3341 // InternalProblem.g:1301:1: ruleMultiplicity returns [EObject current=null] : (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity ) ; 3865 // InternalProblem.g:1473:1: ruleMultiplicity returns [EObject current=null] : (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity ) ;
3342 public final EObject ruleMultiplicity() throws RecognitionException { 3866 public final EObject ruleMultiplicity() throws RecognitionException {
3343 EObject current = null; 3867 EObject current = null;
3344 3868
@@ -3351,28 +3875,28 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3351 enterRule(); 3875 enterRule();
3352 3876
3353 try { 3877 try {
3354 // InternalProblem.g:1307:2: ( (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity ) ) 3878 // InternalProblem.g:1479:2: ( (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity ) )
3355 // InternalProblem.g:1308:2: (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity ) 3879 // InternalProblem.g:1480:2: (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity )
3356 { 3880 {
3357 // InternalProblem.g:1308:2: (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity ) 3881 // InternalProblem.g:1480:2: (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity )
3358 int alt32=2; 3882 int alt37=2;
3359 int LA32_0 = input.LA(1); 3883 int LA37_0 = input.LA(1);
3360 3884
3361 if ( (LA32_0==EOF||LA32_0==24) ) { 3885 if ( (LA37_0==EOF||LA37_0==25) ) {
3362 alt32=1; 3886 alt37=1;
3363 } 3887 }
3364 else if ( (LA32_0==RULE_INT) ) { 3888 else if ( (LA37_0==RULE_INT) ) {
3365 alt32=2; 3889 alt37=2;
3366 } 3890 }
3367 else { 3891 else {
3368 NoViableAltException nvae = 3892 NoViableAltException nvae =
3369 new NoViableAltException("", 32, 0, input); 3893 new NoViableAltException("", 37, 0, input);
3370 3894
3371 throw nvae; 3895 throw nvae;
3372 } 3896 }
3373 switch (alt32) { 3897 switch (alt37) {
3374 case 1 : 3898 case 1 :
3375 // InternalProblem.g:1309:3: this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity 3899 // InternalProblem.g:1481:3: this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity
3376 { 3900 {
3377 3901
3378 newCompositeNode(grammarAccess.getMultiplicityAccess().getUnboundedMultiplicityParserRuleCall_0()); 3902 newCompositeNode(grammarAccess.getMultiplicityAccess().getUnboundedMultiplicityParserRuleCall_0());
@@ -3390,7 +3914,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3390 } 3914 }
3391 break; 3915 break;
3392 case 2 : 3916 case 2 :
3393 // InternalProblem.g:1318:3: this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity 3917 // InternalProblem.g:1490:3: this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity
3394 { 3918 {
3395 3919
3396 newCompositeNode(grammarAccess.getMultiplicityAccess().getDefiniteMultiplicityParserRuleCall_1()); 3920 newCompositeNode(grammarAccess.getMultiplicityAccess().getDefiniteMultiplicityParserRuleCall_1());
@@ -3430,7 +3954,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3430 3954
3431 3955
3432 // $ANTLR start "entryRuleDefiniteMultiplicity" 3956 // $ANTLR start "entryRuleDefiniteMultiplicity"
3433 // InternalProblem.g:1330:1: entryRuleDefiniteMultiplicity returns [EObject current=null] : iv_ruleDefiniteMultiplicity= ruleDefiniteMultiplicity EOF ; 3957 // InternalProblem.g:1502:1: entryRuleDefiniteMultiplicity returns [EObject current=null] : iv_ruleDefiniteMultiplicity= ruleDefiniteMultiplicity EOF ;
3434 public final EObject entryRuleDefiniteMultiplicity() throws RecognitionException { 3958 public final EObject entryRuleDefiniteMultiplicity() throws RecognitionException {
3435 EObject current = null; 3959 EObject current = null;
3436 3960
@@ -3438,8 +3962,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3438 3962
3439 3963
3440 try { 3964 try {
3441 // InternalProblem.g:1330:61: (iv_ruleDefiniteMultiplicity= ruleDefiniteMultiplicity EOF ) 3965 // InternalProblem.g:1502:61: (iv_ruleDefiniteMultiplicity= ruleDefiniteMultiplicity EOF )
3442 // InternalProblem.g:1331:2: iv_ruleDefiniteMultiplicity= ruleDefiniteMultiplicity EOF 3966 // InternalProblem.g:1503:2: iv_ruleDefiniteMultiplicity= ruleDefiniteMultiplicity EOF
3443 { 3967 {
3444 newCompositeNode(grammarAccess.getDefiniteMultiplicityRule()); 3968 newCompositeNode(grammarAccess.getDefiniteMultiplicityRule());
3445 pushFollow(FOLLOW_1); 3969 pushFollow(FOLLOW_1);
@@ -3466,7 +3990,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3466 3990
3467 3991
3468 // $ANTLR start "ruleDefiniteMultiplicity" 3992 // $ANTLR start "ruleDefiniteMultiplicity"
3469 // InternalProblem.g:1337:1: ruleDefiniteMultiplicity returns [EObject current=null] : (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity ) ; 3993 // InternalProblem.g:1509:1: ruleDefiniteMultiplicity returns [EObject current=null] : (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity ) ;
3470 public final EObject ruleDefiniteMultiplicity() throws RecognitionException { 3994 public final EObject ruleDefiniteMultiplicity() throws RecognitionException {
3471 EObject current = null; 3995 EObject current = null;
3472 3996
@@ -3479,38 +4003,38 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3479 enterRule(); 4003 enterRule();
3480 4004
3481 try { 4005 try {
3482 // InternalProblem.g:1343:2: ( (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity ) ) 4006 // InternalProblem.g:1515:2: ( (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity ) )
3483 // InternalProblem.g:1344:2: (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity ) 4007 // InternalProblem.g:1516:2: (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity )
3484 { 4008 {
3485 // InternalProblem.g:1344:2: (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity ) 4009 // InternalProblem.g:1516:2: (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity )
3486 int alt33=2; 4010 int alt38=2;
3487 int LA33_0 = input.LA(1); 4011 int LA38_0 = input.LA(1);
3488 4012
3489 if ( (LA33_0==RULE_INT) ) { 4013 if ( (LA38_0==RULE_INT) ) {
3490 int LA33_1 = input.LA(2); 4014 int LA38_1 = input.LA(2);
3491 4015
3492 if ( (LA33_1==37) ) { 4016 if ( (LA38_1==38) ) {
3493 alt33=1; 4017 alt38=1;
3494 } 4018 }
3495 else if ( (LA33_1==EOF||LA33_1==13||LA33_1==17||LA33_1==24) ) { 4019 else if ( (LA38_1==EOF||LA38_1==13||LA38_1==17||LA38_1==25) ) {
3496 alt33=2; 4020 alt38=2;
3497 } 4021 }
3498 else { 4022 else {
3499 NoViableAltException nvae = 4023 NoViableAltException nvae =
3500 new NoViableAltException("", 33, 1, input); 4024 new NoViableAltException("", 38, 1, input);
3501 4025
3502 throw nvae; 4026 throw nvae;
3503 } 4027 }
3504 } 4028 }
3505 else { 4029 else {
3506 NoViableAltException nvae = 4030 NoViableAltException nvae =
3507 new NoViableAltException("", 33, 0, input); 4031 new NoViableAltException("", 38, 0, input);
3508 4032
3509 throw nvae; 4033 throw nvae;
3510 } 4034 }
3511 switch (alt33) { 4035 switch (alt38) {
3512 case 1 : 4036 case 1 :
3513 // InternalProblem.g:1345:3: this_RangeMultiplicity_0= ruleRangeMultiplicity 4037 // InternalProblem.g:1517:3: this_RangeMultiplicity_0= ruleRangeMultiplicity
3514 { 4038 {
3515 4039
3516 newCompositeNode(grammarAccess.getDefiniteMultiplicityAccess().getRangeMultiplicityParserRuleCall_0()); 4040 newCompositeNode(grammarAccess.getDefiniteMultiplicityAccess().getRangeMultiplicityParserRuleCall_0());
@@ -3528,7 +4052,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3528 } 4052 }
3529 break; 4053 break;
3530 case 2 : 4054 case 2 :
3531 // InternalProblem.g:1354:3: this_ExactMultiplicity_1= ruleExactMultiplicity 4055 // InternalProblem.g:1526:3: this_ExactMultiplicity_1= ruleExactMultiplicity
3532 { 4056 {
3533 4057
3534 newCompositeNode(grammarAccess.getDefiniteMultiplicityAccess().getExactMultiplicityParserRuleCall_1()); 4058 newCompositeNode(grammarAccess.getDefiniteMultiplicityAccess().getExactMultiplicityParserRuleCall_1());
@@ -3568,7 +4092,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3568 4092
3569 4093
3570 // $ANTLR start "entryRuleUnboundedMultiplicity" 4094 // $ANTLR start "entryRuleUnboundedMultiplicity"
3571 // InternalProblem.g:1366:1: entryRuleUnboundedMultiplicity returns [EObject current=null] : iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF ; 4095 // InternalProblem.g:1538:1: entryRuleUnboundedMultiplicity returns [EObject current=null] : iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF ;
3572 public final EObject entryRuleUnboundedMultiplicity() throws RecognitionException { 4096 public final EObject entryRuleUnboundedMultiplicity() throws RecognitionException {
3573 EObject current = null; 4097 EObject current = null;
3574 4098
@@ -3576,8 +4100,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3576 4100
3577 4101
3578 try { 4102 try {
3579 // InternalProblem.g:1366:62: (iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF ) 4103 // InternalProblem.g:1538:62: (iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF )
3580 // InternalProblem.g:1367:2: iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF 4104 // InternalProblem.g:1539:2: iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF
3581 { 4105 {
3582 newCompositeNode(grammarAccess.getUnboundedMultiplicityRule()); 4106 newCompositeNode(grammarAccess.getUnboundedMultiplicityRule());
3583 pushFollow(FOLLOW_1); 4107 pushFollow(FOLLOW_1);
@@ -3604,7 +4128,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3604 4128
3605 4129
3606 // $ANTLR start "ruleUnboundedMultiplicity" 4130 // $ANTLR start "ruleUnboundedMultiplicity"
3607 // InternalProblem.g:1373:1: ruleUnboundedMultiplicity returns [EObject current=null] : () ; 4131 // InternalProblem.g:1545:1: ruleUnboundedMultiplicity returns [EObject current=null] : () ;
3608 public final EObject ruleUnboundedMultiplicity() throws RecognitionException { 4132 public final EObject ruleUnboundedMultiplicity() throws RecognitionException {
3609 EObject current = null; 4133 EObject current = null;
3610 4134
@@ -3612,11 +4136,11 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3612 enterRule(); 4136 enterRule();
3613 4137
3614 try { 4138 try {
3615 // InternalProblem.g:1379:2: ( () ) 4139 // InternalProblem.g:1551:2: ( () )
3616 // InternalProblem.g:1380:2: () 4140 // InternalProblem.g:1552:2: ()
3617 { 4141 {
3618 // InternalProblem.g:1380:2: () 4142 // InternalProblem.g:1552:2: ()
3619 // InternalProblem.g:1381:3: 4143 // InternalProblem.g:1553:3:
3620 { 4144 {
3621 4145
3622 current = forceCreateModelElement( 4146 current = forceCreateModelElement(
@@ -3641,7 +4165,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3641 4165
3642 4166
3643 // $ANTLR start "entryRuleRangeMultiplicity" 4167 // $ANTLR start "entryRuleRangeMultiplicity"
3644 // InternalProblem.g:1390:1: entryRuleRangeMultiplicity returns [EObject current=null] : iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF ; 4168 // InternalProblem.g:1562:1: entryRuleRangeMultiplicity returns [EObject current=null] : iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF ;
3645 public final EObject entryRuleRangeMultiplicity() throws RecognitionException { 4169 public final EObject entryRuleRangeMultiplicity() throws RecognitionException {
3646 EObject current = null; 4170 EObject current = null;
3647 4171
@@ -3649,8 +4173,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3649 4173
3650 4174
3651 try { 4175 try {
3652 // InternalProblem.g:1390:58: (iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF ) 4176 // InternalProblem.g:1562:58: (iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF )
3653 // InternalProblem.g:1391:2: iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF 4177 // InternalProblem.g:1563:2: iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF
3654 { 4178 {
3655 newCompositeNode(grammarAccess.getRangeMultiplicityRule()); 4179 newCompositeNode(grammarAccess.getRangeMultiplicityRule());
3656 pushFollow(FOLLOW_1); 4180 pushFollow(FOLLOW_1);
@@ -3677,7 +4201,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3677 4201
3678 4202
3679 // $ANTLR start "ruleRangeMultiplicity" 4203 // $ANTLR start "ruleRangeMultiplicity"
3680 // InternalProblem.g:1397:1: ruleRangeMultiplicity returns [EObject current=null] : ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) ) ; 4204 // InternalProblem.g:1569:1: ruleRangeMultiplicity returns [EObject current=null] : ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) ) ;
3681 public final EObject ruleRangeMultiplicity() throws RecognitionException { 4205 public final EObject ruleRangeMultiplicity() throws RecognitionException {
3682 EObject current = null; 4206 EObject current = null;
3683 4207
@@ -3690,19 +4214,19 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3690 enterRule(); 4214 enterRule();
3691 4215
3692 try { 4216 try {
3693 // InternalProblem.g:1403:2: ( ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) ) ) 4217 // InternalProblem.g:1575:2: ( ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) ) )
3694 // InternalProblem.g:1404: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 ) ) )
3695 { 4219 {
3696 // InternalProblem.g:1404:2: ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) ) 4220 // InternalProblem.g:1576:2: ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) )
3697 // InternalProblem.g:1405:3: ( (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 ) )
3698 { 4222 {
3699 // InternalProblem.g:1405:3: ( (lv_lowerBound_0_0= RULE_INT ) ) 4223 // InternalProblem.g:1577:3: ( (lv_lowerBound_0_0= RULE_INT ) )
3700 // InternalProblem.g:1406:4: (lv_lowerBound_0_0= RULE_INT ) 4224 // InternalProblem.g:1578:4: (lv_lowerBound_0_0= RULE_INT )
3701 { 4225 {
3702 // InternalProblem.g:1406:4: (lv_lowerBound_0_0= RULE_INT ) 4226 // InternalProblem.g:1578:4: (lv_lowerBound_0_0= RULE_INT )
3703 // InternalProblem.g:1407:5: lv_lowerBound_0_0= RULE_INT 4227 // InternalProblem.g:1579:5: lv_lowerBound_0_0= RULE_INT
3704 { 4228 {
3705 lv_lowerBound_0_0=(Token)match(input,RULE_INT,FOLLOW_30); 4229 lv_lowerBound_0_0=(Token)match(input,RULE_INT,FOLLOW_34);
3706 4230
3707 newLeafNode(lv_lowerBound_0_0, grammarAccess.getRangeMultiplicityAccess().getLowerBoundINTTerminalRuleCall_0_0()); 4231 newLeafNode(lv_lowerBound_0_0, grammarAccess.getRangeMultiplicityAccess().getLowerBoundINTTerminalRuleCall_0_0());
3708 4232
@@ -3722,15 +4246,15 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3722 4246
3723 } 4247 }
3724 4248
3725 otherlv_1=(Token)match(input,37,FOLLOW_31); 4249 otherlv_1=(Token)match(input,38,FOLLOW_35);
3726 4250
3727 newLeafNode(otherlv_1, grammarAccess.getRangeMultiplicityAccess().getFullStopFullStopKeyword_1()); 4251 newLeafNode(otherlv_1, grammarAccess.getRangeMultiplicityAccess().getFullStopFullStopKeyword_1());
3728 4252
3729 // InternalProblem.g:1427:3: ( (lv_upperBound_2_0= ruleUpperBound ) ) 4253 // InternalProblem.g:1599:3: ( (lv_upperBound_2_0= ruleUpperBound ) )
3730 // InternalProblem.g:1428:4: (lv_upperBound_2_0= ruleUpperBound ) 4254 // InternalProblem.g:1600:4: (lv_upperBound_2_0= ruleUpperBound )
3731 { 4255 {
3732 // InternalProblem.g:1428:4: (lv_upperBound_2_0= ruleUpperBound ) 4256 // InternalProblem.g:1600:4: (lv_upperBound_2_0= ruleUpperBound )
3733 // InternalProblem.g:1429:5: lv_upperBound_2_0= ruleUpperBound 4257 // InternalProblem.g:1601:5: lv_upperBound_2_0= ruleUpperBound
3734 { 4258 {
3735 4259
3736 newCompositeNode(grammarAccess.getRangeMultiplicityAccess().getUpperBoundUpperBoundParserRuleCall_2_0()); 4260 newCompositeNode(grammarAccess.getRangeMultiplicityAccess().getUpperBoundUpperBoundParserRuleCall_2_0());
@@ -3780,7 +4304,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3780 4304
3781 4305
3782 // $ANTLR start "entryRuleExactMultiplicity" 4306 // $ANTLR start "entryRuleExactMultiplicity"
3783 // InternalProblem.g:1450:1: entryRuleExactMultiplicity returns [EObject current=null] : iv_ruleExactMultiplicity= ruleExactMultiplicity EOF ; 4307 // InternalProblem.g:1622:1: entryRuleExactMultiplicity returns [EObject current=null] : iv_ruleExactMultiplicity= ruleExactMultiplicity EOF ;
3784 public final EObject entryRuleExactMultiplicity() throws RecognitionException { 4308 public final EObject entryRuleExactMultiplicity() throws RecognitionException {
3785 EObject current = null; 4309 EObject current = null;
3786 4310
@@ -3788,8 +4312,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3788 4312
3789 4313
3790 try { 4314 try {
3791 // InternalProblem.g:1450:58: (iv_ruleExactMultiplicity= ruleExactMultiplicity EOF ) 4315 // InternalProblem.g:1622:58: (iv_ruleExactMultiplicity= ruleExactMultiplicity EOF )
3792 // InternalProblem.g:1451:2: iv_ruleExactMultiplicity= ruleExactMultiplicity EOF 4316 // InternalProblem.g:1623:2: iv_ruleExactMultiplicity= ruleExactMultiplicity EOF
3793 { 4317 {
3794 newCompositeNode(grammarAccess.getExactMultiplicityRule()); 4318 newCompositeNode(grammarAccess.getExactMultiplicityRule());
3795 pushFollow(FOLLOW_1); 4319 pushFollow(FOLLOW_1);
@@ -3816,7 +4340,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3816 4340
3817 4341
3818 // $ANTLR start "ruleExactMultiplicity" 4342 // $ANTLR start "ruleExactMultiplicity"
3819 // InternalProblem.g:1457:1: ruleExactMultiplicity returns [EObject current=null] : ( (lv_exactValue_0_0= RULE_INT ) ) ; 4343 // InternalProblem.g:1629:1: ruleExactMultiplicity returns [EObject current=null] : ( (lv_exactValue_0_0= RULE_INT ) ) ;
3820 public final EObject ruleExactMultiplicity() throws RecognitionException { 4344 public final EObject ruleExactMultiplicity() throws RecognitionException {
3821 EObject current = null; 4345 EObject current = null;
3822 4346
@@ -3826,14 +4350,14 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3826 enterRule(); 4350 enterRule();
3827 4351
3828 try { 4352 try {
3829 // InternalProblem.g:1463:2: ( ( (lv_exactValue_0_0= RULE_INT ) ) ) 4353 // InternalProblem.g:1635:2: ( ( (lv_exactValue_0_0= RULE_INT ) ) )
3830 // InternalProblem.g:1464:2: ( (lv_exactValue_0_0= RULE_INT ) ) 4354 // InternalProblem.g:1636:2: ( (lv_exactValue_0_0= RULE_INT ) )
3831 { 4355 {
3832 // InternalProblem.g:1464:2: ( (lv_exactValue_0_0= RULE_INT ) ) 4356 // InternalProblem.g:1636:2: ( (lv_exactValue_0_0= RULE_INT ) )
3833 // InternalProblem.g:1465:3: (lv_exactValue_0_0= RULE_INT ) 4357 // InternalProblem.g:1637:3: (lv_exactValue_0_0= RULE_INT )
3834 { 4358 {
3835 // InternalProblem.g:1465:3: (lv_exactValue_0_0= RULE_INT ) 4359 // InternalProblem.g:1637:3: (lv_exactValue_0_0= RULE_INT )
3836 // InternalProblem.g:1466:4: lv_exactValue_0_0= RULE_INT 4360 // InternalProblem.g:1638:4: lv_exactValue_0_0= RULE_INT
3837 { 4361 {
3838 lv_exactValue_0_0=(Token)match(input,RULE_INT,FOLLOW_2); 4362 lv_exactValue_0_0=(Token)match(input,RULE_INT,FOLLOW_2);
3839 4363
@@ -3875,7 +4399,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3875 4399
3876 4400
3877 // $ANTLR start "entryRuleUpperBound" 4401 // $ANTLR start "entryRuleUpperBound"
3878 // InternalProblem.g:1485:1: entryRuleUpperBound returns [String current=null] : iv_ruleUpperBound= ruleUpperBound EOF ; 4402 // InternalProblem.g:1657:1: entryRuleUpperBound returns [String current=null] : iv_ruleUpperBound= ruleUpperBound EOF ;
3879 public final String entryRuleUpperBound() throws RecognitionException { 4403 public final String entryRuleUpperBound() throws RecognitionException {
3880 String current = null; 4404 String current = null;
3881 4405
@@ -3883,8 +4407,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3883 4407
3884 4408
3885 try { 4409 try {
3886 // InternalProblem.g:1485:50: (iv_ruleUpperBound= ruleUpperBound EOF ) 4410 // InternalProblem.g:1657:50: (iv_ruleUpperBound= ruleUpperBound EOF )
3887 // InternalProblem.g:1486:2: iv_ruleUpperBound= ruleUpperBound EOF 4411 // InternalProblem.g:1658:2: iv_ruleUpperBound= ruleUpperBound EOF
3888 { 4412 {
3889 newCompositeNode(grammarAccess.getUpperBoundRule()); 4413 newCompositeNode(grammarAccess.getUpperBoundRule());
3890 pushFollow(FOLLOW_1); 4414 pushFollow(FOLLOW_1);
@@ -3911,7 +4435,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3911 4435
3912 4436
3913 // $ANTLR start "ruleUpperBound" 4437 // $ANTLR start "ruleUpperBound"
3914 // InternalProblem.g:1492:1: ruleUpperBound returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT | kw= '*' ) ; 4438 // InternalProblem.g:1664:1: ruleUpperBound returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT | kw= '*' ) ;
3915 public final AntlrDatatypeRuleToken ruleUpperBound() throws RecognitionException { 4439 public final AntlrDatatypeRuleToken ruleUpperBound() throws RecognitionException {
3916 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); 4440 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
3917 4441
@@ -3922,28 +4446,28 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3922 enterRule(); 4446 enterRule();
3923 4447
3924 try { 4448 try {
3925 // InternalProblem.g:1498:2: ( (this_INT_0= RULE_INT | kw= '*' ) ) 4449 // InternalProblem.g:1670:2: ( (this_INT_0= RULE_INT | kw= '*' ) )
3926 // InternalProblem.g:1499:2: (this_INT_0= RULE_INT | kw= '*' ) 4450 // InternalProblem.g:1671:2: (this_INT_0= RULE_INT | kw= '*' )
3927 { 4451 {
3928 // InternalProblem.g:1499:2: (this_INT_0= RULE_INT | kw= '*' ) 4452 // InternalProblem.g:1671:2: (this_INT_0= RULE_INT | kw= '*' )
3929 int alt34=2; 4453 int alt39=2;
3930 int LA34_0 = input.LA(1); 4454 int LA39_0 = input.LA(1);
3931 4455
3932 if ( (LA34_0==RULE_INT) ) { 4456 if ( (LA39_0==RULE_INT) ) {
3933 alt34=1; 4457 alt39=1;
3934 } 4458 }
3935 else if ( (LA34_0==38) ) { 4459 else if ( (LA39_0==39) ) {
3936 alt34=2; 4460 alt39=2;
3937 } 4461 }
3938 else { 4462 else {
3939 NoViableAltException nvae = 4463 NoViableAltException nvae =
3940 new NoViableAltException("", 34, 0, input); 4464 new NoViableAltException("", 39, 0, input);
3941 4465
3942 throw nvae; 4466 throw nvae;
3943 } 4467 }
3944 switch (alt34) { 4468 switch (alt39) {
3945 case 1 : 4469 case 1 :
3946 // InternalProblem.g:1500:3: this_INT_0= RULE_INT 4470 // InternalProblem.g:1672:3: this_INT_0= RULE_INT
3947 { 4471 {
3948 this_INT_0=(Token)match(input,RULE_INT,FOLLOW_2); 4472 this_INT_0=(Token)match(input,RULE_INT,FOLLOW_2);
3949 4473
@@ -3956,9 +4480,9 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3956 } 4480 }
3957 break; 4481 break;
3958 case 2 : 4482 case 2 :
3959 // InternalProblem.g:1508:3: kw= '*' 4483 // InternalProblem.g:1680:3: kw= '*'
3960 { 4484 {
3961 kw=(Token)match(input,38,FOLLOW_2); 4485 kw=(Token)match(input,39,FOLLOW_2);
3962 4486
3963 current.merge(kw); 4487 current.merge(kw);
3964 newLeafNode(kw, grammarAccess.getUpperBoundAccess().getAsteriskKeyword_1()); 4488 newLeafNode(kw, grammarAccess.getUpperBoundAccess().getAsteriskKeyword_1());
@@ -3988,8 +4512,132 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3988 // $ANTLR end "ruleUpperBound" 4512 // $ANTLR end "ruleUpperBound"
3989 4513
3990 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
3991 // $ANTLR start "entryRuleQualifiedName" 4639 // $ANTLR start "entryRuleQualifiedName"
3992 // InternalProblem.g:1517:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ; 4640 // InternalProblem.g:1726:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
3993 public final String entryRuleQualifiedName() throws RecognitionException { 4641 public final String entryRuleQualifiedName() throws RecognitionException {
3994 String current = null; 4642 String current = null;
3995 4643
@@ -3997,8 +4645,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3997 4645
3998 4646
3999 try { 4647 try {
4000 // InternalProblem.g:1517:53: (iv_ruleQualifiedName= ruleQualifiedName EOF ) 4648 // InternalProblem.g:1726:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
4001 // InternalProblem.g:1518:2: iv_ruleQualifiedName= ruleQualifiedName EOF 4649 // InternalProblem.g:1727:2: iv_ruleQualifiedName= ruleQualifiedName EOF
4002 { 4650 {
4003 newCompositeNode(grammarAccess.getQualifiedNameRule()); 4651 newCompositeNode(grammarAccess.getQualifiedNameRule());
4004 pushFollow(FOLLOW_1); 4652 pushFollow(FOLLOW_1);
@@ -4025,42 +4673,44 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4025 4673
4026 4674
4027 // $ANTLR start "ruleQualifiedName" 4675 // $ANTLR start "ruleQualifiedName"
4028 // InternalProblem.g:1524:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_ID_1= RULE_ID (kw= ':' this_ID_3= RULE_ID )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) ) ; 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 )? ) ) ;
4029 public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException { 4677 public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
4030 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); 4678 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
4031 4679
4032 Token this_QUOTED_ID_0=null; 4680 Token this_QUOTED_ID_0=null;
4033 Token this_ID_1=null;
4034 Token kw=null; 4681 Token kw=null;
4035 Token this_ID_3=null;
4036 Token this_QUOTED_ID_5=null; 4682 Token this_QUOTED_ID_5=null;
4683 AntlrDatatypeRuleToken this_Identifier_1 = null;
4684
4685 AntlrDatatypeRuleToken this_Identifier_3 = null;
4686
4037 4687
4038 4688
4039 enterRule(); 4689 enterRule();
4040 4690
4041 try { 4691 try {
4042 // InternalProblem.g:1530:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_ID_1= RULE_ID (kw= ':' this_ID_3= RULE_ID )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) ) ) 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 )? ) ) )
4043 // InternalProblem.g:1531:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_ID_1= RULE_ID (kw= ':' this_ID_3= RULE_ID )* (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 )? ) )
4044 { 4694 {
4045 // InternalProblem.g:1531:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_ID_1= RULE_ID (kw= ':' this_ID_3= RULE_ID )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) ) 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 )? ) )
4046 int alt37=2; 4696 int alt43=2;
4047 int LA37_0 = input.LA(1); 4697 int LA43_0 = input.LA(1);
4048 4698
4049 if ( (LA37_0==RULE_QUOTED_ID) ) { 4699 if ( (LA43_0==RULE_QUOTED_ID) ) {
4050 alt37=1; 4700 alt43=1;
4051 } 4701 }
4052 else if ( (LA37_0==RULE_ID) ) { 4702 else if ( (LA43_0==RULE_ID||(LA43_0>=40 && LA43_0<=41)) ) {
4053 alt37=2; 4703 alt43=2;
4054 } 4704 }
4055 else { 4705 else {
4056 NoViableAltException nvae = 4706 NoViableAltException nvae =
4057 new NoViableAltException("", 37, 0, input); 4707 new NoViableAltException("", 43, 0, input);
4058 4708
4059 throw nvae; 4709 throw nvae;
4060 } 4710 }
4061 switch (alt37) { 4711 switch (alt43) {
4062 case 1 : 4712 case 1 :
4063 // InternalProblem.g:1532:3: this_QUOTED_ID_0= RULE_QUOTED_ID 4713 // InternalProblem.g:1741:3: this_QUOTED_ID_0= RULE_QUOTED_ID
4064 { 4714 {
4065 this_QUOTED_ID_0=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2); 4715 this_QUOTED_ID_0=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2);
4066 4716
@@ -4073,72 +4723,86 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4073 } 4723 }
4074 break; 4724 break;
4075 case 2 : 4725 case 2 :
4076 // InternalProblem.g:1540:3: (this_ID_1= RULE_ID (kw= ':' this_ID_3= RULE_ID )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) 4726 // InternalProblem.g:1749:3: (this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? )
4077 { 4727 {
4078 // InternalProblem.g:1540:3: (this_ID_1= RULE_ID (kw= ':' this_ID_3= RULE_ID )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) 4728 // InternalProblem.g:1749:3: (this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? )
4079 // InternalProblem.g:1541:4: this_ID_1= RULE_ID (kw= ':' this_ID_3= RULE_ID )* (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 )?
4080 { 4730 {
4081 this_ID_1=(Token)match(input,RULE_ID,FOLLOW_32);
4082 4731
4083 current.merge(this_ID_1); 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);
4084 4741
4085 4742
4086 newLeafNode(this_ID_1, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_0()); 4743 afterParserOrEnumRuleCall();
4087 4744
4088 // InternalProblem.g:1548:4: (kw= ':' this_ID_3= RULE_ID )* 4745 // InternalProblem.g:1760:4: (kw= ':' this_Identifier_3= ruleIdentifier )*
4089 loop35: 4746 loop41:
4090 do { 4747 do {
4091 int alt35=2; 4748 int alt41=2;
4092 int LA35_0 = input.LA(1); 4749 int LA41_0 = input.LA(1);
4093 4750
4094 if ( (LA35_0==33) ) { 4751 if ( (LA41_0==34) ) {
4095 int LA35_1 = input.LA(2); 4752 int LA41_1 = input.LA(2);
4096 4753
4097 if ( (LA35_1==RULE_ID) ) { 4754 if ( (LA41_1==RULE_ID||(LA41_1>=40 && LA41_1<=41)) ) {
4098 alt35=1; 4755 alt41=1;
4099 } 4756 }
4100 4757
4101 4758
4102 } 4759 }
4103 4760
4104 4761
4105 switch (alt35) { 4762 switch (alt41) {
4106 case 1 : 4763 case 1 :
4107 // InternalProblem.g:1549:5: kw= ':' this_ID_3= RULE_ID 4764 // InternalProblem.g:1761:5: kw= ':' this_Identifier_3= ruleIdentifier
4108 { 4765 {
4109 kw=(Token)match(input,33,FOLLOW_3); 4766 kw=(Token)match(input,34,FOLLOW_3);
4110 4767
4111 current.merge(kw); 4768 current.merge(kw);
4112 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonKeyword_1_1_0()); 4769 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonKeyword_1_1_0());
4113 4770
4114 this_ID_3=(Token)match(input,RULE_ID,FOLLOW_32);
4115 4771
4116 current.merge(this_ID_3); 4772 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_1_1());
4117 4773
4774 pushFollow(FOLLOW_36);
4775 this_Identifier_3=ruleIdentifier();
4776
4777 state._fsp--;
4778
4118 4779
4119 newLeafNode(this_ID_3, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1_1()); 4780 current.merge(this_Identifier_3);
4781
4782
4783 afterParserOrEnumRuleCall();
4120 4784
4121 4785
4122 } 4786 }
4123 break; 4787 break;
4124 4788
4125 default : 4789 default :
4126 break loop35; 4790 break loop41;
4127 } 4791 }
4128 } while (true); 4792 } while (true);
4129 4793
4130 // InternalProblem.g:1562:4: (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? 4794 // InternalProblem.g:1777:4: (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )?
4131 int alt36=2; 4795 int alt42=2;
4132 int LA36_0 = input.LA(1); 4796 int LA42_0 = input.LA(1);
4133 4797
4134 if ( (LA36_0==33) ) { 4798 if ( (LA42_0==34) ) {
4135 alt36=1; 4799 alt42=1;
4136 } 4800 }
4137 switch (alt36) { 4801 switch (alt42) {
4138 case 1 : 4802 case 1 :
4139 // InternalProblem.g:1563:5: kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID 4803 // InternalProblem.g:1778:5: kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID
4140 { 4804 {
4141 kw=(Token)match(input,33,FOLLOW_33); 4805 kw=(Token)match(input,34,FOLLOW_37);
4142 4806
4143 current.merge(kw); 4807 current.merge(kw);
4144 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonKeyword_1_2_0()); 4808 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonKeyword_1_2_0());
@@ -4184,8 +4848,142 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4184 // $ANTLR end "ruleQualifiedName" 4848 // $ANTLR end "ruleQualifiedName"
4185 4849
4186 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
4187 // $ANTLR start "ruleLogicValue" 4985 // $ANTLR start "ruleLogicValue"
4188 // InternalProblem.g:1581:1: ruleLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) ; 4986 // InternalProblem.g:1834:1: ruleLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) ;
4189 public final Enumerator ruleLogicValue() throws RecognitionException { 4987 public final Enumerator ruleLogicValue() throws RecognitionException {
4190 Enumerator current = null; 4988 Enumerator current = null;
4191 4989
@@ -4197,42 +4995,42 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4197 enterRule(); 4995 enterRule();
4198 4996
4199 try { 4997 try {
4200 // InternalProblem.g:1587:2: ( ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) ) 4998 // InternalProblem.g:1840:2: ( ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) )
4201 // InternalProblem.g:1588:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) 4999 // InternalProblem.g:1841:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) )
4202 { 5000 {
4203 // InternalProblem.g:1588:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) 5001 // InternalProblem.g:1841:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) )
4204 int alt38=3; 5002 int alt45=3;
4205 switch ( input.LA(1) ) { 5003 switch ( input.LA(1) ) {
4206 case 39: 5004 case 40:
4207 { 5005 {
4208 alt38=1; 5006 alt45=1;
4209 } 5007 }
4210 break; 5008 break;
4211 case 40: 5009 case 41:
4212 { 5010 {
4213 alt38=2; 5011 alt45=2;
4214 } 5012 }
4215 break; 5013 break;
4216 case 41: 5014 case 42:
4217 { 5015 {
4218 alt38=3; 5016 alt45=3;
4219 } 5017 }
4220 break; 5018 break;
4221 default: 5019 default:
4222 NoViableAltException nvae = 5020 NoViableAltException nvae =
4223 new NoViableAltException("", 38, 0, input); 5021 new NoViableAltException("", 45, 0, input);
4224 5022
4225 throw nvae; 5023 throw nvae;
4226 } 5024 }
4227 5025
4228 switch (alt38) { 5026 switch (alt45) {
4229 case 1 : 5027 case 1 :
4230 // InternalProblem.g:1589:3: (enumLiteral_0= 'true' ) 5028 // InternalProblem.g:1842:3: (enumLiteral_0= 'true' )
4231 { 5029 {
4232 // InternalProblem.g:1589:3: (enumLiteral_0= 'true' ) 5030 // InternalProblem.g:1842:3: (enumLiteral_0= 'true' )
4233 // InternalProblem.g:1590:4: enumLiteral_0= 'true' 5031 // InternalProblem.g:1843:4: enumLiteral_0= 'true'
4234 { 5032 {
4235 enumLiteral_0=(Token)match(input,39,FOLLOW_2); 5033 enumLiteral_0=(Token)match(input,40,FOLLOW_2);
4236 5034
4237 current = grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); 5035 current = grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
4238 newLeafNode(enumLiteral_0, grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0()); 5036 newLeafNode(enumLiteral_0, grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0());
@@ -4244,12 +5042,12 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4244 } 5042 }
4245 break; 5043 break;
4246 case 2 : 5044 case 2 :
4247 // InternalProblem.g:1597:3: (enumLiteral_1= 'false' ) 5045 // InternalProblem.g:1850:3: (enumLiteral_1= 'false' )
4248 { 5046 {
4249 // InternalProblem.g:1597:3: (enumLiteral_1= 'false' ) 5047 // InternalProblem.g:1850:3: (enumLiteral_1= 'false' )
4250 // InternalProblem.g:1598:4: enumLiteral_1= 'false' 5048 // InternalProblem.g:1851:4: enumLiteral_1= 'false'
4251 { 5049 {
4252 enumLiteral_1=(Token)match(input,40,FOLLOW_2); 5050 enumLiteral_1=(Token)match(input,41,FOLLOW_2);
4253 5051
4254 current = grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); 5052 current = grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
4255 newLeafNode(enumLiteral_1, grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1()); 5053 newLeafNode(enumLiteral_1, grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1());
@@ -4261,12 +5059,12 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4261 } 5059 }
4262 break; 5060 break;
4263 case 3 : 5061 case 3 :
4264 // InternalProblem.g:1605:3: (enumLiteral_2= 'unknown' ) 5062 // InternalProblem.g:1858:3: (enumLiteral_2= 'unknown' )
4265 { 5063 {
4266 // InternalProblem.g:1605:3: (enumLiteral_2= 'unknown' ) 5064 // InternalProblem.g:1858:3: (enumLiteral_2= 'unknown' )
4267 // InternalProblem.g:1606:4: enumLiteral_2= 'unknown' 5065 // InternalProblem.g:1859:4: enumLiteral_2= 'unknown'
4268 { 5066 {
4269 enumLiteral_2=(Token)match(input,41,FOLLOW_2); 5067 enumLiteral_2=(Token)match(input,42,FOLLOW_2);
4270 5068
4271 current = grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); 5069 current = grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
4272 newLeafNode(enumLiteral_2, grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2()); 5070 newLeafNode(enumLiteral_2, grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2());
@@ -4300,7 +5098,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4300 5098
4301 5099
4302 // $ANTLR start "ruleShortLogicValue" 5100 // $ANTLR start "ruleShortLogicValue"
4303 // InternalProblem.g:1616:1: ruleShortLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) ; 5101 // InternalProblem.g:1869:1: ruleShortLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) ;
4304 public final Enumerator ruleShortLogicValue() throws RecognitionException { 5102 public final Enumerator ruleShortLogicValue() throws RecognitionException {
4305 Enumerator current = null; 5103 Enumerator current = null;
4306 5104
@@ -4311,33 +5109,33 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4311 enterRule(); 5109 enterRule();
4312 5110
4313 try { 5111 try {
4314 // InternalProblem.g:1622:2: ( ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) ) 5112 // InternalProblem.g:1875:2: ( ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) )
4315 // InternalProblem.g:1623:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) 5113 // InternalProblem.g:1876:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) )
4316 { 5114 {
4317 // InternalProblem.g:1623:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) 5115 // InternalProblem.g:1876:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) )
4318 int alt39=2; 5116 int alt46=2;
4319 int LA39_0 = input.LA(1); 5117 int LA46_0 = input.LA(1);
4320 5118
4321 if ( (LA39_0==31) ) { 5119 if ( (LA46_0==32) ) {
4322 alt39=1; 5120 alt46=1;
4323 } 5121 }
4324 else if ( (LA39_0==42) ) { 5122 else if ( (LA46_0==43) ) {
4325 alt39=2; 5123 alt46=2;
4326 } 5124 }
4327 else { 5125 else {
4328 NoViableAltException nvae = 5126 NoViableAltException nvae =
4329 new NoViableAltException("", 39, 0, input); 5127 new NoViableAltException("", 46, 0, input);
4330 5128
4331 throw nvae; 5129 throw nvae;
4332 } 5130 }
4333 switch (alt39) { 5131 switch (alt46) {
4334 case 1 : 5132 case 1 :
4335 // InternalProblem.g:1624:3: (enumLiteral_0= '!' ) 5133 // InternalProblem.g:1877:3: (enumLiteral_0= '!' )
4336 { 5134 {
4337 // InternalProblem.g:1624:3: (enumLiteral_0= '!' ) 5135 // InternalProblem.g:1877:3: (enumLiteral_0= '!' )
4338 // InternalProblem.g:1625:4: enumLiteral_0= '!' 5136 // InternalProblem.g:1878:4: enumLiteral_0= '!'
4339 { 5137 {
4340 enumLiteral_0=(Token)match(input,31,FOLLOW_2); 5138 enumLiteral_0=(Token)match(input,32,FOLLOW_2);
4341 5139
4342 current = grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); 5140 current = grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
4343 newLeafNode(enumLiteral_0, grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0()); 5141 newLeafNode(enumLiteral_0, grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0());
@@ -4349,12 +5147,12 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4349 } 5147 }
4350 break; 5148 break;
4351 case 2 : 5149 case 2 :
4352 // InternalProblem.g:1632:3: (enumLiteral_1= '?' ) 5150 // InternalProblem.g:1885:3: (enumLiteral_1= '?' )
4353 { 5151 {
4354 // InternalProblem.g:1632:3: (enumLiteral_1= '?' ) 5152 // InternalProblem.g:1885:3: (enumLiteral_1= '?' )
4355 // InternalProblem.g:1633:4: enumLiteral_1= '?' 5153 // InternalProblem.g:1886:4: enumLiteral_1= '?'
4356 { 5154 {
4357 enumLiteral_1=(Token)match(input,42,FOLLOW_2); 5155 enumLiteral_1=(Token)match(input,43,FOLLOW_2);
4358 5156
4359 current = grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); 5157 current = grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
4360 newLeafNode(enumLiteral_1, grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1()); 5158 newLeafNode(enumLiteral_1, grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1());
@@ -4389,34 +5187,46 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4389 // Delegated rules 5187 // Delegated rules
4390 5188
4391 5189
4392 protected DFA29 dfa29 = new DFA29(this); 5190 protected DFA34 dfa34 = new DFA34(this);
4393 static final String dfa_1s = "\25\uffff"; 5191 static final String dfa_1s = "\41\uffff";
4394 static final String dfa_2s = "\1\4\2\34\1\uffff\2\4\2\21\1\15\2\34\2\4\1\uffff\4\21\1\4\2\21"; 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";
4395 static final String dfa_3s = "\1\52\1\34\1\41\1\uffff\1\35\1\6\1\35\2\41\1\34\1\41\2\6\1\uffff\1\35\1\41\1\35\1\41\1\6\1\35\1\41"; 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";
4396 static final String dfa_4s = "\3\uffff\1\2\11\uffff\1\1\7\uffff"; 5194 static final String dfa_4s = "\5\uffff\1\2\15\uffff\1\1\15\uffff";
4397 static final String dfa_5s = "\25\uffff}>"; 5195 static final String dfa_5s = "\41\uffff}>";
4398 static final String[] dfa_6s = { 5196 static final String[] dfa_6s = {
4399 "\1\2\1\uffff\1\1\30\uffff\1\3\12\uffff\1\3", 5197 "\1\2\1\uffff\1\1\31\uffff\1\5\7\uffff\1\3\1\4\1\uffff\1\5",
4400 "\1\4", 5198 "\1\6",
4401 "\1\4\4\uffff\1\5", 5199 "\1\6\4\uffff\1\7",
5200 "\1\6\4\uffff\1\7",
5201 "\1\6\4\uffff\1\7",
4402 "", 5202 "",
4403 "\1\7\1\uffff\1\6\26\uffff\1\10", 5203 "\1\11\1\uffff\1\10\27\uffff\1\14\11\uffff\1\12\1\13",
4404 "\1\12\1\uffff\1\11", 5204 "\1\15\1\uffff\1\20\41\uffff\1\16\1\17",
4405 "\1\13\13\uffff\1\10", 5205 "\1\21\14\uffff\1\14",
4406 "\1\13\13\uffff\1\10\3\uffff\1\14", 5206 "\1\21\14\uffff\1\14\3\uffff\1\22",
4407 "\1\3\23\uffff\1\15", 5207 "\1\21\14\uffff\1\14\3\uffff\1\22",
4408 "\1\4", 5208 "\1\21\14\uffff\1\14\3\uffff\1\22",
4409 "\1\4\4\uffff\1\5", 5209 "\1\5\24\uffff\1\23",
4410 "\1\17\1\uffff\1\16", 5210 "\1\6\4\uffff\1\7",
4411 "\1\21\1\uffff\1\20", 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",
4412 "", 5216 "",
4413 "\1\13\13\uffff\1\10", 5217 "\1\21\14\uffff\1\14",
4414 "\1\13\13\uffff\1\10\3\uffff\1\22", 5218 "\1\21\14\uffff\1\14\3\uffff\1\34",
4415 "\1\13\13\uffff\1\10", 5219 "\1\21\14\uffff\1\14\3\uffff\1\34",
4416 "\1\13\13\uffff\1\10\3\uffff\1\14", 5220 "\1\21\14\uffff\1\14\3\uffff\1\34",
4417 "\1\24\1\uffff\1\23", 5221 "\1\21\14\uffff\1\14\3\uffff\1\22",
4418 "\1\13\13\uffff\1\10", 5222 "\1\21\14\uffff\1\14\3\uffff\1\22",
4419 "\1\13\13\uffff\1\10\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"
4420 }; 5230 };
4421 5231
4422 static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s); 5232 static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
@@ -4426,11 +5236,11 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4426 static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s); 5236 static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
4427 static final short[][] dfa_6 = unpackEncodedStringArray(dfa_6s); 5237 static final short[][] dfa_6 = unpackEncodedStringArray(dfa_6s);
4428 5238
4429 class DFA29 extends DFA { 5239 class DFA34 extends DFA {
4430 5240
4431 public DFA29(BaseRecognizer recognizer) { 5241 public DFA34(BaseRecognizer recognizer) {
4432 this.recognizer = recognizer; 5242 this.recognizer = recognizer;
4433 this.decisionNumber = 29; 5243 this.decisionNumber = 34;
4434 this.eot = dfa_1; 5244 this.eot = dfa_1;
4435 this.eof = dfa_1; 5245 this.eof = dfa_1;
4436 this.min = dfa_2; 5246 this.min = dfa_2;
@@ -4440,43 +5250,47 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4440 this.transition = dfa_6; 5250 this.transition = dfa_6;
4441 } 5251 }
4442 public String getDescription() { 5252 public String getDescription() {
4443 return "966: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= ')' ) )"; 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= ')' ) )";
4444 } 5254 }
4445 } 5255 }
4446 5256
4447 5257
4448 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L}); 5258 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
4449 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L}); 5259 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
4450 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000000010L}); 5260 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000030000000010L});
4451 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000002000L}); 5261 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000002000L});
4452 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x000004048C00C052L}); 5262 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x00000B091820C052L});
4453 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000008000L}); 5263 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000008000L});
4454 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000052000L}); 5264 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000052000L});
4455 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000000050L}); 5265 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000030000000050L});
4456 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000062000L}); 5266 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000062000L});
4457 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000700000L}); 5267 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000030000D00050L});
4458 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000780000L}); 5268 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000030000D80050L});
4459 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000800010L}); 5269 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000042000L});
4460 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000000020L}); 5270 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000030000100050L});
4461 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000001000000L}); 5271 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x00000000001A0000L});
4462 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000002000002L}); 5272 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000100000L});
4463 public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000008000010L}); 5273 public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000030001000010L});
4464 public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000010000000L}); 5274 public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000000020L});
4465 public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000020000010L}); 5275 public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000002000000L});
4466 public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000020020000L}); 5276 public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000004000002L});
4467 public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000040002000L}); 5277 public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000030010000010L});
4468 public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000080000050L}); 5278 public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000020000000L});
4469 public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000000082000L}); 5279 public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000030040000050L});
4470 public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000000020002L}); 5280 public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000040020000L});
4471 public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000110000000L}); 5281 public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000080002000L});
4472 public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000020000050L}); 5282 public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000030100000050L});
4473 public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000200000000L}); 5283 public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000082000L});
4474 public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000038000000000L}); 5284 public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000020002L});
4475 public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000000022000L}); 5285 public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000220000000L});
4476 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000001800000000L}); 5286 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000400000000L});
4477 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000002000000000L}); 5287 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000070000000000L});
4478 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000004000000020L}); 5288 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000010L});
4479 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000200000002L}); 5289 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000000022000L});
4480 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000000040L}); 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});
4481 5295
4482} \ No newline at end of file 5296} \ No newline at end of file
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSemanticSequencer.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSemanticSequencer.java
index 336d0867..cb44c31f 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSemanticSequencer.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSemanticSequencer.java
@@ -12,8 +12,10 @@ import org.eclipse.viatra.solver.language.model.problem.Assertion;
12import org.eclipse.viatra.solver.language.model.problem.Atom; 12import org.eclipse.viatra.solver.language.model.problem.Atom;
13import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration; 13import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration;
14import org.eclipse.viatra.solver.language.model.problem.Conjunction; 14import org.eclipse.viatra.solver.language.model.problem.Conjunction;
15import org.eclipse.viatra.solver.language.model.problem.EnumDeclaration;
15import org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity; 16import org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity;
16import org.eclipse.viatra.solver.language.model.problem.NegativeLiteral; 17import org.eclipse.viatra.solver.language.model.problem.NegativeLiteral;
18import org.eclipse.viatra.solver.language.model.problem.Node;
17import org.eclipse.viatra.solver.language.model.problem.PredicateDefinition; 19import org.eclipse.viatra.solver.language.model.problem.PredicateDefinition;
18import org.eclipse.viatra.solver.language.model.problem.Problem; 20import org.eclipse.viatra.solver.language.model.problem.Problem;
19import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; 21import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
@@ -60,12 +62,18 @@ public class ProblemSemanticSequencer extends AbstractDelegatingSemanticSequence
60 case ProblemPackage.CONJUNCTION: 62 case ProblemPackage.CONJUNCTION:
61 sequence_Conjunction(context, (Conjunction) semanticObject); 63 sequence_Conjunction(context, (Conjunction) semanticObject);
62 return; 64 return;
65 case ProblemPackage.ENUM_DECLARATION:
66 sequence_EnumDeclaration(context, (EnumDeclaration) semanticObject);
67 return;
63 case ProblemPackage.EXACT_MULTIPLICITY: 68 case ProblemPackage.EXACT_MULTIPLICITY:
64 sequence_ExactMultiplicity(context, (ExactMultiplicity) semanticObject); 69 sequence_ExactMultiplicity(context, (ExactMultiplicity) semanticObject);
65 return; 70 return;
66 case ProblemPackage.NEGATIVE_LITERAL: 71 case ProblemPackage.NEGATIVE_LITERAL:
67 sequence_NegativeLiteral(context, (NegativeLiteral) semanticObject); 72 sequence_NegativeLiteral(context, (NegativeLiteral) semanticObject);
68 return; 73 return;
74 case ProblemPackage.NODE:
75 sequence_EnumLiteral(context, (Node) semanticObject);
76 return;
69 case ProblemPackage.PARAMETER: 77 case ProblemPackage.PARAMETER:
70 sequence_Parameter(context, (org.eclipse.viatra.solver.language.model.problem.Parameter) semanticObject); 78 sequence_Parameter(context, (org.eclipse.viatra.solver.language.model.problem.Parameter) semanticObject);
71 return; 79 return;
@@ -100,15 +108,15 @@ public class ProblemSemanticSequencer extends AbstractDelegatingSemanticSequence
100 * Argument returns Argument 108 * Argument returns Argument
101 * 109 *
102 * Constraint: 110 * Constraint:
103 * variable=[Variable|ID] 111 * variableOrNode=[VariableOrNode|QualifiedName]
104 */ 112 */
105 protected void sequence_Argument(ISerializationContext context, Argument semanticObject) { 113 protected void sequence_Argument(ISerializationContext context, Argument semanticObject) {
106 if (errorAcceptor != null) { 114 if (errorAcceptor != null) {
107 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.ARGUMENT__VARIABLE) == ValueTransient.YES) 115 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.ARGUMENT__VARIABLE_OR_NODE) == ValueTransient.YES)
108 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.ARGUMENT__VARIABLE)); 116 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.ARGUMENT__VARIABLE_OR_NODE));
109 } 117 }
110 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 118 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
111 feeder.accept(grammarAccess.getArgumentAccess().getVariableVariableIDTerminalRuleCall_0_1(), semanticObject.eGet(ProblemPackage.Literals.ARGUMENT__VARIABLE, false)); 119 feeder.accept(grammarAccess.getArgumentAccess().getVariableOrNodeVariableOrNodeQualifiedNameParserRuleCall_0_1(), semanticObject.eGet(ProblemPackage.Literals.ARGUMENT__VARIABLE_OR_NODE, false));
112 feeder.finish(); 120 feeder.finish();
113 } 121 }
114 122
@@ -150,8 +158,8 @@ public class ProblemSemanticSequencer extends AbstractDelegatingSemanticSequence
150 * Constraint: 158 * Constraint:
151 * ( 159 * (
152 * abstract?='abstract'? 160 * abstract?='abstract'?
153 * name=ID 161 * name=Identifier
154 * (superTypes+=[ClassDeclaration|QualifiedName] superTypes+=[ClassDeclaration|QualifiedName]*)? 162 * (superTypes+=[Relation|QualifiedName] superTypes+=[Relation|QualifiedName]*)?
155 * referenceDeclarations+=ReferenceDeclaration* 163 * referenceDeclarations+=ReferenceDeclaration*
156 * ) 164 * )
157 */ 165 */
@@ -174,6 +182,37 @@ public class ProblemSemanticSequencer extends AbstractDelegatingSemanticSequence
174 182
175 /** 183 /**
176 * Contexts: 184 * Contexts:
185 * Statement returns EnumDeclaration
186 * EnumDeclaration returns EnumDeclaration
187 *
188 * Constraint:
189 * (name=Identifier (literals+=EnumLiteral literals+=EnumLiteral*)?)
190 */
191 protected void sequence_EnumDeclaration(ISerializationContext context, EnumDeclaration semanticObject) {
192 genericSequencer.createSequence(context, semanticObject);
193 }
194
195
196 /**
197 * Contexts:
198 * EnumLiteral returns Node
199 *
200 * Constraint:
201 * name=QuotedOrUnquotedId
202 */
203 protected void sequence_EnumLiteral(ISerializationContext context, Node semanticObject) {
204 if (errorAcceptor != null) {
205 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.NAMED_ELEMENT__NAME) == ValueTransient.YES)
206 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.NAMED_ELEMENT__NAME));
207 }
208 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
209 feeder.accept(grammarAccess.getEnumLiteralAccess().getNameQuotedOrUnquotedIdParserRuleCall_0(), semanticObject.getName());
210 feeder.finish();
211 }
212
213
214 /**
215 * Contexts:
177 * Multiplicity returns ExactMultiplicity 216 * Multiplicity returns ExactMultiplicity
178 * DefiniteMultiplicity returns ExactMultiplicity 217 * DefiniteMultiplicity returns ExactMultiplicity
179 * ExactMultiplicity returns ExactMultiplicity 218 * ExactMultiplicity returns ExactMultiplicity
@@ -216,19 +255,10 @@ public class ProblemSemanticSequencer extends AbstractDelegatingSemanticSequence
216 * Parameter returns Parameter 255 * Parameter returns Parameter
217 * 256 *
218 * Constraint: 257 * Constraint:
219 * (parameterType=[ClassDeclaration|ID] name=ID) 258 * (parameterType=[Relation|QualifiedName]? name=Identifier)
220 */ 259 */
221 protected void sequence_Parameter(ISerializationContext context, org.eclipse.viatra.solver.language.model.problem.Parameter semanticObject) { 260 protected void sequence_Parameter(ISerializationContext context, org.eclipse.viatra.solver.language.model.problem.Parameter semanticObject) {
222 if (errorAcceptor != null) { 261 genericSequencer.createSequence(context, semanticObject);
223 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.PARAMETER__PARAMETER_TYPE) == ValueTransient.YES)
224 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.PARAMETER__PARAMETER_TYPE));
225 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.NAMED_ELEMENT__NAME) == ValueTransient.YES)
226 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.NAMED_ELEMENT__NAME));
227 }
228 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
229 feeder.accept(grammarAccess.getParameterAccess().getParameterTypeClassDeclarationIDTerminalRuleCall_0_0_1(), semanticObject.eGet(ProblemPackage.Literals.PARAMETER__PARAMETER_TYPE, false));
230 feeder.accept(grammarAccess.getParameterAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName());
231 feeder.finish();
232 } 262 }
233 263
234 264
@@ -238,7 +268,7 @@ public class ProblemSemanticSequencer extends AbstractDelegatingSemanticSequence
238 * PredicateDefinition returns PredicateDefinition 268 * PredicateDefinition returns PredicateDefinition
239 * 269 *
240 * Constraint: 270 * Constraint:
241 * (error?='error'? name=ID (parameters+=Parameter parameters+=Parameter*)? (bodies+=Conjunction bodies+=Conjunction*)?) 271 * (error?='error'? name=Identifier (parameters+=Parameter parameters+=Parameter*)? (bodies+=Conjunction bodies+=Conjunction*)?)
242 */ 272 */
243 protected void sequence_PredicateDefinition(ISerializationContext context, PredicateDefinition semanticObject) { 273 protected void sequence_PredicateDefinition(ISerializationContext context, PredicateDefinition semanticObject) {
244 genericSequencer.createSequence(context, semanticObject); 274 genericSequencer.createSequence(context, semanticObject);
@@ -250,7 +280,7 @@ public class ProblemSemanticSequencer extends AbstractDelegatingSemanticSequence
250 * Problem returns Problem 280 * Problem returns Problem
251 * 281 *
252 * Constraint: 282 * Constraint:
253 * ((name=ID statements+=Statement+) | statements+=Statement+)? 283 * ((name=Identifier statements+=Statement+) | statements+=Statement+)?
254 */ 284 */
255 protected void sequence_Problem(ISerializationContext context, Problem semanticObject) { 285 protected void sequence_Problem(ISerializationContext context, Problem semanticObject) {
256 genericSequencer.createSequence(context, semanticObject); 286 genericSequencer.createSequence(context, semanticObject);
@@ -287,9 +317,9 @@ public class ProblemSemanticSequencer extends AbstractDelegatingSemanticSequence
287 * Constraint: 317 * Constraint:
288 * ( 318 * (
289 * containment?='contains'? 319 * containment?='contains'?
290 * referenceType=[ClassDeclaration|QualifiedName] 320 * referenceType=[Relation|QualifiedName]
291 * multiplicity=Multiplicity? 321 * multiplicity=Multiplicity?
292 * name=ID 322 * name=Identifier
293 * opposite=[ReferenceDeclaration|QualifiedName]? 323 * opposite=[ReferenceDeclaration|QualifiedName]?
294 * ) 324 * )
295 */ 325 */
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSyntacticSequencer.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSyntacticSequencer.java
index 80ac73d6..3f0a3f05 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSyntacticSequencer.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSyntacticSequencer.java
@@ -24,14 +24,20 @@ public class ProblemSyntacticSequencer extends AbstractSyntacticSequencer {
24 protected ProblemGrammarAccess grammarAccess; 24 protected ProblemGrammarAccess grammarAccess;
25 protected AbstractElementAlias match_ClassDeclaration_FullStopKeyword_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__; 25 protected AbstractElementAlias match_ClassDeclaration_FullStopKeyword_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__;
26 protected AbstractElementAlias match_ClassDeclaration_SemicolonKeyword_4_0_1_1_q; 26 protected AbstractElementAlias match_ClassDeclaration_SemicolonKeyword_4_0_1_1_q;
27 protected AbstractElementAlias match_EnumDeclaration_FullStopKeyword_2_1_or___LeftCurlyBracketKeyword_2_0_0_RightCurlyBracketKeyword_2_0_2__;
28 protected AbstractElementAlias match_EnumDeclaration___CommaKeyword_2_0_1_2_0_or_SemicolonKeyword_2_0_1_2_1__q;
27 protected AbstractElementAlias match_PredicateDefinition_PredKeyword_0_0_1_q; 29 protected AbstractElementAlias match_PredicateDefinition_PredKeyword_0_0_1_q;
30 protected AbstractElementAlias match_ReferenceDeclaration_RefersKeyword_0_1_q;
28 31
29 @Inject 32 @Inject
30 protected void init(IGrammarAccess access) { 33 protected void init(IGrammarAccess access) {
31 grammarAccess = (ProblemGrammarAccess) access; 34 grammarAccess = (ProblemGrammarAccess) access;
32 match_ClassDeclaration_FullStopKeyword_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getClassDeclarationAccess().getRightCurlyBracketKeyword_4_0_2())), new TokenAlias(false, false, grammarAccess.getClassDeclarationAccess().getFullStopKeyword_4_1())); 35 match_ClassDeclaration_FullStopKeyword_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getClassDeclarationAccess().getRightCurlyBracketKeyword_4_0_2())), new TokenAlias(false, false, grammarAccess.getClassDeclarationAccess().getFullStopKeyword_4_1()));
33 match_ClassDeclaration_SemicolonKeyword_4_0_1_1_q = new TokenAlias(false, true, grammarAccess.getClassDeclarationAccess().getSemicolonKeyword_4_0_1_1()); 36 match_ClassDeclaration_SemicolonKeyword_4_0_1_1_q = new TokenAlias(false, true, grammarAccess.getClassDeclarationAccess().getSemicolonKeyword_4_0_1_1());
37 match_EnumDeclaration_FullStopKeyword_2_1_or___LeftCurlyBracketKeyword_2_0_0_RightCurlyBracketKeyword_2_0_2__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getEnumDeclarationAccess().getLeftCurlyBracketKeyword_2_0_0()), new TokenAlias(false, false, grammarAccess.getEnumDeclarationAccess().getRightCurlyBracketKeyword_2_0_2())), new TokenAlias(false, false, grammarAccess.getEnumDeclarationAccess().getFullStopKeyword_2_1()));
38 match_EnumDeclaration___CommaKeyword_2_0_1_2_0_or_SemicolonKeyword_2_0_1_2_1__q = new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_2_0()), new TokenAlias(false, false, grammarAccess.getEnumDeclarationAccess().getSemicolonKeyword_2_0_1_2_1()));
34 match_PredicateDefinition_PredKeyword_0_0_1_q = new TokenAlias(false, true, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1()); 39 match_PredicateDefinition_PredKeyword_0_0_1_q = new TokenAlias(false, true, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1());
40 match_ReferenceDeclaration_RefersKeyword_0_1_q = new TokenAlias(false, true, grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1());
35 } 41 }
36 42
37 @Override 43 @Override
@@ -50,8 +56,14 @@ public class ProblemSyntacticSequencer extends AbstractSyntacticSequencer {
50 emit_ClassDeclaration_FullStopKeyword_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__(semanticObject, getLastNavigableState(), syntaxNodes); 56 emit_ClassDeclaration_FullStopKeyword_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__(semanticObject, getLastNavigableState(), syntaxNodes);
51 else if (match_ClassDeclaration_SemicolonKeyword_4_0_1_1_q.equals(syntax)) 57 else if (match_ClassDeclaration_SemicolonKeyword_4_0_1_1_q.equals(syntax))
52 emit_ClassDeclaration_SemicolonKeyword_4_0_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes); 58 emit_ClassDeclaration_SemicolonKeyword_4_0_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
59 else if (match_EnumDeclaration_FullStopKeyword_2_1_or___LeftCurlyBracketKeyword_2_0_0_RightCurlyBracketKeyword_2_0_2__.equals(syntax))
60 emit_EnumDeclaration_FullStopKeyword_2_1_or___LeftCurlyBracketKeyword_2_0_0_RightCurlyBracketKeyword_2_0_2__(semanticObject, getLastNavigableState(), syntaxNodes);
61 else if (match_EnumDeclaration___CommaKeyword_2_0_1_2_0_or_SemicolonKeyword_2_0_1_2_1__q.equals(syntax))
62 emit_EnumDeclaration___CommaKeyword_2_0_1_2_0_or_SemicolonKeyword_2_0_1_2_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
53 else if (match_PredicateDefinition_PredKeyword_0_0_1_q.equals(syntax)) 63 else if (match_PredicateDefinition_PredKeyword_0_0_1_q.equals(syntax))
54 emit_PredicateDefinition_PredKeyword_0_0_1_q(semanticObject, getLastNavigableState(), syntaxNodes); 64 emit_PredicateDefinition_PredKeyword_0_0_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
65 else if (match_ReferenceDeclaration_RefersKeyword_0_1_q.equals(syntax))
66 emit_ReferenceDeclaration_RefersKeyword_0_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
55 else acceptNodes(getLastNavigableState(), syntaxNodes); 67 else acceptNodes(getLastNavigableState(), syntaxNodes);
56 } 68 }
57 } 69 }
@@ -61,8 +73,8 @@ public class ProblemSyntacticSequencer extends AbstractSyntacticSequencer {
61 * ('{' '}') | '.' 73 * ('{' '}') | '.'
62 * 74 *
63 * This ambiguous syntax occurs at: 75 * This ambiguous syntax occurs at:
64 * name=ID (ambiguity) (rule end) 76 * name=Identifier (ambiguity) (rule end)
65 * superTypes+=[ClassDeclaration|QualifiedName] (ambiguity) (rule end) 77 * superTypes+=[Relation|QualifiedName] (ambiguity) (rule end)
66 */ 78 */
67 protected void emit_ClassDeclaration_FullStopKeyword_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) { 79 protected void emit_ClassDeclaration_FullStopKeyword_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
68 acceptNodes(transition, nodes); 80 acceptNodes(transition, nodes);
@@ -82,13 +94,46 @@ public class ProblemSyntacticSequencer extends AbstractSyntacticSequencer {
82 94
83 /** 95 /**
84 * Ambiguous syntax: 96 * Ambiguous syntax:
97 * ('{' '}') | '.'
98 *
99 * This ambiguous syntax occurs at:
100 * name=Identifier (ambiguity) (rule end)
101 */
102 protected void emit_EnumDeclaration_FullStopKeyword_2_1_or___LeftCurlyBracketKeyword_2_0_0_RightCurlyBracketKeyword_2_0_2__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
103 acceptNodes(transition, nodes);
104 }
105
106 /**
107 * Ambiguous syntax:
108 * (',' | ';')?
109 *
110 * This ambiguous syntax occurs at:
111 * literals+=EnumLiteral (ambiguity) '}' (rule end)
112 */
113 protected void emit_EnumDeclaration___CommaKeyword_2_0_1_2_0_or_SemicolonKeyword_2_0_1_2_1__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
114 acceptNodes(transition, nodes);
115 }
116
117 /**
118 * Ambiguous syntax:
85 * 'pred'? 119 * 'pred'?
86 * 120 *
87 * This ambiguous syntax occurs at: 121 * This ambiguous syntax occurs at:
88 * error?='error' (ambiguity) name=ID 122 * error?='error' (ambiguity) name=Identifier
89 */ 123 */
90 protected void emit_PredicateDefinition_PredKeyword_0_0_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) { 124 protected void emit_PredicateDefinition_PredKeyword_0_0_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
91 acceptNodes(transition, nodes); 125 acceptNodes(transition, nodes);
92 } 126 }
93 127
128 /**
129 * Ambiguous syntax:
130 * 'refers'?
131 *
132 * This ambiguous syntax occurs at:
133 * (rule start) (ambiguity) referenceType=[Relation|QualifiedName]
134 */
135 protected void emit_ReferenceDeclaration_RefersKeyword_0_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
136 acceptNodes(transition, nodes);
137 }
138
94} 139}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/services/ProblemGrammarAccess.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/services/ProblemGrammarAccess.java
index 5b3781a2..4368036b 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/services/ProblemGrammarAccess.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/services/ProblemGrammarAccess.java
@@ -32,31 +32,31 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
32 private final Group cGroup_0 = (Group)cGroup.eContents().get(0); 32 private final Group cGroup_0 = (Group)cGroup.eContents().get(0);
33 private final Keyword cProblemKeyword_0_0 = (Keyword)cGroup_0.eContents().get(0); 33 private final Keyword cProblemKeyword_0_0 = (Keyword)cGroup_0.eContents().get(0);
34 private final Assignment cNameAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1); 34 private final Assignment cNameAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1);
35 private final RuleCall cNameIDTerminalRuleCall_0_1_0 = (RuleCall)cNameAssignment_0_1.eContents().get(0); 35 private final RuleCall cNameIdentifierParserRuleCall_0_1_0 = (RuleCall)cNameAssignment_0_1.eContents().get(0);
36 private final Keyword cFullStopKeyword_0_2 = (Keyword)cGroup_0.eContents().get(2); 36 private final Keyword cFullStopKeyword_0_2 = (Keyword)cGroup_0.eContents().get(2);
37 private final Assignment cStatementsAssignment_1 = (Assignment)cGroup.eContents().get(1); 37 private final Assignment cStatementsAssignment_1 = (Assignment)cGroup.eContents().get(1);
38 private final RuleCall cStatementsStatementParserRuleCall_1_0 = (RuleCall)cStatementsAssignment_1.eContents().get(0); 38 private final RuleCall cStatementsStatementParserRuleCall_1_0 = (RuleCall)cStatementsAssignment_1.eContents().get(0);
39 39
40 //Problem: 40 //Problem:
41 // ("problem" name=ID ".")? 41 // ("problem" name=Identifier ".")?
42 // statements+=Statement*; 42 // statements+=Statement*;
43 @Override public ParserRule getRule() { return rule; } 43 @Override public ParserRule getRule() { return rule; }
44 44
45 //("problem" name=ID ".")? 45 //("problem" name=Identifier ".")?
46 //statements+=Statement* 46 //statements+=Statement*
47 public Group getGroup() { return cGroup; } 47 public Group getGroup() { return cGroup; }
48 48
49 //("problem" name=ID ".")? 49 //("problem" name=Identifier ".")?
50 public Group getGroup_0() { return cGroup_0; } 50 public Group getGroup_0() { return cGroup_0; }
51 51
52 //"problem" 52 //"problem"
53 public Keyword getProblemKeyword_0_0() { return cProblemKeyword_0_0; } 53 public Keyword getProblemKeyword_0_0() { return cProblemKeyword_0_0; }
54 54
55 //name=ID 55 //name=Identifier
56 public Assignment getNameAssignment_0_1() { return cNameAssignment_0_1; } 56 public Assignment getNameAssignment_0_1() { return cNameAssignment_0_1; }
57 57
58 //ID 58 //Identifier
59 public RuleCall getNameIDTerminalRuleCall_0_1_0() { return cNameIDTerminalRuleCall_0_1_0; } 59 public RuleCall getNameIdentifierParserRuleCall_0_1_0() { return cNameIdentifierParserRuleCall_0_1_0; }
60 60
61 //"." 61 //"."
62 public Keyword getFullStopKeyword_0_2() { return cFullStopKeyword_0_2; } 62 public Keyword getFullStopKeyword_0_2() { return cFullStopKeyword_0_2; }
@@ -71,28 +71,32 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
71 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Statement"); 71 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Statement");
72 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 72 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
73 private final RuleCall cClassDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); 73 private final RuleCall cClassDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
74 private final RuleCall cPredicateDefinitionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); 74 private final RuleCall cEnumDeclarationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
75 private final RuleCall cAssertionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); 75 private final RuleCall cPredicateDefinitionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
76 private final RuleCall cScopeDeclarationParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); 76 private final RuleCall cAssertionParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
77 private final RuleCall cScopeDeclarationParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
77 78
78 //Statement: 79 //Statement:
79 // ClassDeclaration | PredicateDefinition | Assertion | ScopeDeclaration; 80 // ClassDeclaration | EnumDeclaration | PredicateDefinition | Assertion | ScopeDeclaration;
80 @Override public ParserRule getRule() { return rule; } 81 @Override public ParserRule getRule() { return rule; }
81 82
82 //ClassDeclaration | PredicateDefinition | Assertion | ScopeDeclaration 83 //ClassDeclaration | EnumDeclaration | PredicateDefinition | Assertion | ScopeDeclaration
83 public Alternatives getAlternatives() { return cAlternatives; } 84 public Alternatives getAlternatives() { return cAlternatives; }
84 85
85 //ClassDeclaration 86 //ClassDeclaration
86 public RuleCall getClassDeclarationParserRuleCall_0() { return cClassDeclarationParserRuleCall_0; } 87 public RuleCall getClassDeclarationParserRuleCall_0() { return cClassDeclarationParserRuleCall_0; }
87 88
89 //EnumDeclaration
90 public RuleCall getEnumDeclarationParserRuleCall_1() { return cEnumDeclarationParserRuleCall_1; }
91
88 //PredicateDefinition 92 //PredicateDefinition
89 public RuleCall getPredicateDefinitionParserRuleCall_1() { return cPredicateDefinitionParserRuleCall_1; } 93 public RuleCall getPredicateDefinitionParserRuleCall_2() { return cPredicateDefinitionParserRuleCall_2; }
90 94
91 //Assertion 95 //Assertion
92 public RuleCall getAssertionParserRuleCall_2() { return cAssertionParserRuleCall_2; } 96 public RuleCall getAssertionParserRuleCall_3() { return cAssertionParserRuleCall_3; }
93 97
94 //ScopeDeclaration 98 //ScopeDeclaration
95 public RuleCall getScopeDeclarationParserRuleCall_3() { return cScopeDeclarationParserRuleCall_3; } 99 public RuleCall getScopeDeclarationParserRuleCall_4() { return cScopeDeclarationParserRuleCall_4; }
96 } 100 }
97 public class ClassDeclarationElements extends AbstractParserRuleElementFinder { 101 public class ClassDeclarationElements extends AbstractParserRuleElementFinder {
98 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ClassDeclaration"); 102 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ClassDeclaration");
@@ -101,17 +105,17 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
101 private final Keyword cAbstractAbstractKeyword_0_0 = (Keyword)cAbstractAssignment_0.eContents().get(0); 105 private final Keyword cAbstractAbstractKeyword_0_0 = (Keyword)cAbstractAssignment_0.eContents().get(0);
102 private final Keyword cClassKeyword_1 = (Keyword)cGroup.eContents().get(1); 106 private final Keyword cClassKeyword_1 = (Keyword)cGroup.eContents().get(1);
103 private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); 107 private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
104 private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); 108 private final RuleCall cNameIdentifierParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
105 private final Group cGroup_3 = (Group)cGroup.eContents().get(3); 109 private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
106 private final Keyword cExtendsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); 110 private final Keyword cExtendsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
107 private final Assignment cSuperTypesAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1); 111 private final Assignment cSuperTypesAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
108 private final CrossReference cSuperTypesClassDeclarationCrossReference_3_1_0 = (CrossReference)cSuperTypesAssignment_3_1.eContents().get(0); 112 private final CrossReference cSuperTypesRelationCrossReference_3_1_0 = (CrossReference)cSuperTypesAssignment_3_1.eContents().get(0);
109 private final RuleCall cSuperTypesClassDeclarationQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cSuperTypesClassDeclarationCrossReference_3_1_0.eContents().get(1); 113 private final RuleCall cSuperTypesRelationQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cSuperTypesRelationCrossReference_3_1_0.eContents().get(1);
110 private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2); 114 private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2);
111 private final Keyword cCommaKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0); 115 private final Keyword cCommaKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0);
112 private final Assignment cSuperTypesAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1); 116 private final Assignment cSuperTypesAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1);
113 private final CrossReference cSuperTypesClassDeclarationCrossReference_3_2_1_0 = (CrossReference)cSuperTypesAssignment_3_2_1.eContents().get(0); 117 private final CrossReference cSuperTypesRelationCrossReference_3_2_1_0 = (CrossReference)cSuperTypesAssignment_3_2_1.eContents().get(0);
114 private final RuleCall cSuperTypesClassDeclarationQualifiedNameParserRuleCall_3_2_1_0_1 = (RuleCall)cSuperTypesClassDeclarationCrossReference_3_2_1_0.eContents().get(1); 118 private final RuleCall cSuperTypesRelationQualifiedNameParserRuleCall_3_2_1_0_1 = (RuleCall)cSuperTypesRelationCrossReference_3_2_1_0.eContents().get(1);
115 private final Alternatives cAlternatives_4 = (Alternatives)cGroup.eContents().get(4); 119 private final Alternatives cAlternatives_4 = (Alternatives)cGroup.eContents().get(4);
116 private final Group cGroup_4_0 = (Group)cAlternatives_4.eContents().get(0); 120 private final Group cGroup_4_0 = (Group)cAlternatives_4.eContents().get(0);
117 private final Keyword cLeftCurlyBracketKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0); 121 private final Keyword cLeftCurlyBracketKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
@@ -124,14 +128,14 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
124 128
125 //ClassDeclaration: 129 //ClassDeclaration:
126 // abstract?="abstract"? "class" 130 // abstract?="abstract"? "class"
127 // name=ID 131 // name=Identifier
128 // ("extends" superTypes+=[ClassDeclaration|QualifiedName] ("," superTypes+=[ClassDeclaration|QualifiedName])*)? 132 // ("extends" superTypes+=[Relation|QualifiedName] ("," superTypes+=[Relation|QualifiedName])*)?
129 // ("{" (referenceDeclarations+=ReferenceDeclaration ";"?)* "}" | "."); 133 // ("{" (referenceDeclarations+=ReferenceDeclaration ";"?)* "}" | ".");
130 @Override public ParserRule getRule() { return rule; } 134 @Override public ParserRule getRule() { return rule; }
131 135
132 //abstract?="abstract"? "class" 136 //abstract?="abstract"? "class"
133 //name=ID 137 //name=Identifier
134 //("extends" superTypes+=[ClassDeclaration|QualifiedName] ("," superTypes+=[ClassDeclaration|QualifiedName])*)? 138 //("extends" superTypes+=[Relation|QualifiedName] ("," superTypes+=[Relation|QualifiedName])*)?
135 //("{" (referenceDeclarations+=ReferenceDeclaration ";"?)* "}" | ".") 139 //("{" (referenceDeclarations+=ReferenceDeclaration ";"?)* "}" | ".")
136 public Group getGroup() { return cGroup; } 140 public Group getGroup() { return cGroup; }
137 141
@@ -144,41 +148,41 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
144 //"class" 148 //"class"
145 public Keyword getClassKeyword_1() { return cClassKeyword_1; } 149 public Keyword getClassKeyword_1() { return cClassKeyword_1; }
146 150
147 //name=ID 151 //name=Identifier
148 public Assignment getNameAssignment_2() { return cNameAssignment_2; } 152 public Assignment getNameAssignment_2() { return cNameAssignment_2; }
149 153
150 //ID 154 //Identifier
151 public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; } 155 public RuleCall getNameIdentifierParserRuleCall_2_0() { return cNameIdentifierParserRuleCall_2_0; }
152 156
153 //("extends" superTypes+=[ClassDeclaration|QualifiedName] ("," superTypes+=[ClassDeclaration|QualifiedName])*)? 157 //("extends" superTypes+=[Relation|QualifiedName] ("," superTypes+=[Relation|QualifiedName])*)?
154 public Group getGroup_3() { return cGroup_3; } 158 public Group getGroup_3() { return cGroup_3; }
155 159
156 //"extends" 160 //"extends"
157 public Keyword getExtendsKeyword_3_0() { return cExtendsKeyword_3_0; } 161 public Keyword getExtendsKeyword_3_0() { return cExtendsKeyword_3_0; }
158 162
159 //superTypes+=[ClassDeclaration|QualifiedName] 163 //superTypes+=[Relation|QualifiedName]
160 public Assignment getSuperTypesAssignment_3_1() { return cSuperTypesAssignment_3_1; } 164 public Assignment getSuperTypesAssignment_3_1() { return cSuperTypesAssignment_3_1; }
161 165
162 //[ClassDeclaration|QualifiedName] 166 //[Relation|QualifiedName]
163 public CrossReference getSuperTypesClassDeclarationCrossReference_3_1_0() { return cSuperTypesClassDeclarationCrossReference_3_1_0; } 167 public CrossReference getSuperTypesRelationCrossReference_3_1_0() { return cSuperTypesRelationCrossReference_3_1_0; }
164 168
165 //QualifiedName 169 //QualifiedName
166 public RuleCall getSuperTypesClassDeclarationQualifiedNameParserRuleCall_3_1_0_1() { return cSuperTypesClassDeclarationQualifiedNameParserRuleCall_3_1_0_1; } 170 public RuleCall getSuperTypesRelationQualifiedNameParserRuleCall_3_1_0_1() { return cSuperTypesRelationQualifiedNameParserRuleCall_3_1_0_1; }
167 171
168 //("," superTypes+=[ClassDeclaration|QualifiedName])* 172 //("," superTypes+=[Relation|QualifiedName])*
169 public Group getGroup_3_2() { return cGroup_3_2; } 173 public Group getGroup_3_2() { return cGroup_3_2; }
170 174
171 //"," 175 //","
172 public Keyword getCommaKeyword_3_2_0() { return cCommaKeyword_3_2_0; } 176 public Keyword getCommaKeyword_3_2_0() { return cCommaKeyword_3_2_0; }
173 177
174 //superTypes+=[ClassDeclaration|QualifiedName] 178 //superTypes+=[Relation|QualifiedName]
175 public Assignment getSuperTypesAssignment_3_2_1() { return cSuperTypesAssignment_3_2_1; } 179 public Assignment getSuperTypesAssignment_3_2_1() { return cSuperTypesAssignment_3_2_1; }
176 180
177 //[ClassDeclaration|QualifiedName] 181 //[Relation|QualifiedName]
178 public CrossReference getSuperTypesClassDeclarationCrossReference_3_2_1_0() { return cSuperTypesClassDeclarationCrossReference_3_2_1_0; } 182 public CrossReference getSuperTypesRelationCrossReference_3_2_1_0() { return cSuperTypesRelationCrossReference_3_2_1_0; }
179 183
180 //QualifiedName 184 //QualifiedName
181 public RuleCall getSuperTypesClassDeclarationQualifiedNameParserRuleCall_3_2_1_0_1() { return cSuperTypesClassDeclarationQualifiedNameParserRuleCall_3_2_1_0_1; } 185 public RuleCall getSuperTypesRelationQualifiedNameParserRuleCall_3_2_1_0_1() { return cSuperTypesRelationQualifiedNameParserRuleCall_3_2_1_0_1; }
182 186
183 //("{" (referenceDeclarations+=ReferenceDeclaration ";"?)* "}" | ".") 187 //("{" (referenceDeclarations+=ReferenceDeclaration ";"?)* "}" | ".")
184 public Alternatives getAlternatives_4() { return cAlternatives_4; } 188 public Alternatives getAlternatives_4() { return cAlternatives_4; }
@@ -207,6 +211,108 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
207 //"." 211 //"."
208 public Keyword getFullStopKeyword_4_1() { return cFullStopKeyword_4_1; } 212 public Keyword getFullStopKeyword_4_1() { return cFullStopKeyword_4_1; }
209 } 213 }
214 public class EnumDeclarationElements extends AbstractParserRuleElementFinder {
215 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.EnumDeclaration");
216 private final Group cGroup = (Group)rule.eContents().get(1);
217 private final Keyword cEnumKeyword_0 = (Keyword)cGroup.eContents().get(0);
218 private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
219 private final RuleCall cNameIdentifierParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
220 private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
221 private final Group cGroup_2_0 = (Group)cAlternatives_2.eContents().get(0);
222 private final Keyword cLeftCurlyBracketKeyword_2_0_0 = (Keyword)cGroup_2_0.eContents().get(0);
223 private final Group cGroup_2_0_1 = (Group)cGroup_2_0.eContents().get(1);
224 private final Assignment cLiteralsAssignment_2_0_1_0 = (Assignment)cGroup_2_0_1.eContents().get(0);
225 private final RuleCall cLiteralsEnumLiteralParserRuleCall_2_0_1_0_0 = (RuleCall)cLiteralsAssignment_2_0_1_0.eContents().get(0);
226 private final Group cGroup_2_0_1_1 = (Group)cGroup_2_0_1.eContents().get(1);
227 private final Keyword cCommaKeyword_2_0_1_1_0 = (Keyword)cGroup_2_0_1_1.eContents().get(0);
228 private final Assignment cLiteralsAssignment_2_0_1_1_1 = (Assignment)cGroup_2_0_1_1.eContents().get(1);
229 private final RuleCall cLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0 = (RuleCall)cLiteralsAssignment_2_0_1_1_1.eContents().get(0);
230 private final Alternatives cAlternatives_2_0_1_2 = (Alternatives)cGroup_2_0_1.eContents().get(2);
231 private final Keyword cCommaKeyword_2_0_1_2_0 = (Keyword)cAlternatives_2_0_1_2.eContents().get(0);
232 private final Keyword cSemicolonKeyword_2_0_1_2_1 = (Keyword)cAlternatives_2_0_1_2.eContents().get(1);
233 private final Keyword cRightCurlyBracketKeyword_2_0_2 = (Keyword)cGroup_2_0.eContents().get(2);
234 private final Keyword cFullStopKeyword_2_1 = (Keyword)cAlternatives_2.eContents().get(1);
235
236 //EnumDeclaration:
237 // "enum"
238 // name=Identifier
239 // ("{" (literals+=EnumLiteral ("," literals+=EnumLiteral)* ("," | ";")?)? "}" | ".");
240 @Override public ParserRule getRule() { return rule; }
241
242 //"enum"
243 //name=Identifier
244 //("{" (literals+=EnumLiteral ("," literals+=EnumLiteral)* ("," | ";")?)? "}" | ".")
245 public Group getGroup() { return cGroup; }
246
247 //"enum"
248 public Keyword getEnumKeyword_0() { return cEnumKeyword_0; }
249
250 //name=Identifier
251 public Assignment getNameAssignment_1() { return cNameAssignment_1; }
252
253 //Identifier
254 public RuleCall getNameIdentifierParserRuleCall_1_0() { return cNameIdentifierParserRuleCall_1_0; }
255
256 //("{" (literals+=EnumLiteral ("," literals+=EnumLiteral)* ("," | ";")?)? "}" | ".")
257 public Alternatives getAlternatives_2() { return cAlternatives_2; }
258
259 //"{" (literals+=EnumLiteral ("," literals+=EnumLiteral)* ("," | ";")?)? "}"
260 public Group getGroup_2_0() { return cGroup_2_0; }
261
262 //"{"
263 public Keyword getLeftCurlyBracketKeyword_2_0_0() { return cLeftCurlyBracketKeyword_2_0_0; }
264
265 //(literals+=EnumLiteral ("," literals+=EnumLiteral)* ("," | ";")?)?
266 public Group getGroup_2_0_1() { return cGroup_2_0_1; }
267
268 //literals+=EnumLiteral
269 public Assignment getLiteralsAssignment_2_0_1_0() { return cLiteralsAssignment_2_0_1_0; }
270
271 //EnumLiteral
272 public RuleCall getLiteralsEnumLiteralParserRuleCall_2_0_1_0_0() { return cLiteralsEnumLiteralParserRuleCall_2_0_1_0_0; }
273
274 //("," literals+=EnumLiteral)*
275 public Group getGroup_2_0_1_1() { return cGroup_2_0_1_1; }
276
277 //","
278 public Keyword getCommaKeyword_2_0_1_1_0() { return cCommaKeyword_2_0_1_1_0; }
279
280 //literals+=EnumLiteral
281 public Assignment getLiteralsAssignment_2_0_1_1_1() { return cLiteralsAssignment_2_0_1_1_1; }
282
283 //EnumLiteral
284 public RuleCall getLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0() { return cLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0; }
285
286 //("," | ";")?
287 public Alternatives getAlternatives_2_0_1_2() { return cAlternatives_2_0_1_2; }
288
289 //","
290 public Keyword getCommaKeyword_2_0_1_2_0() { return cCommaKeyword_2_0_1_2_0; }
291
292 //";"
293 public Keyword getSemicolonKeyword_2_0_1_2_1() { return cSemicolonKeyword_2_0_1_2_1; }
294
295 //"}"
296 public Keyword getRightCurlyBracketKeyword_2_0_2() { return cRightCurlyBracketKeyword_2_0_2; }
297
298 //"."
299 public Keyword getFullStopKeyword_2_1() { return cFullStopKeyword_2_1; }
300 }
301 public class EnumLiteralElements extends AbstractParserRuleElementFinder {
302 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.EnumLiteral");
303 private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1);
304 private final RuleCall cNameQuotedOrUnquotedIdParserRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0);
305
306 //EnumLiteral returns Node:
307 // name=QuotedOrUnquotedId;
308 @Override public ParserRule getRule() { return rule; }
309
310 //name=QuotedOrUnquotedId
311 public Assignment getNameAssignment() { return cNameAssignment; }
312
313 //QuotedOrUnquotedId
314 public RuleCall getNameQuotedOrUnquotedIdParserRuleCall_0() { return cNameQuotedOrUnquotedIdParserRuleCall_0; }
315 }
210 public class ReferenceDeclarationElements extends AbstractParserRuleElementFinder { 316 public class ReferenceDeclarationElements extends AbstractParserRuleElementFinder {
211 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ReferenceDeclaration"); 317 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ReferenceDeclaration");
212 private final Group cGroup = (Group)rule.eContents().get(1); 318 private final Group cGroup = (Group)rule.eContents().get(1);
@@ -215,15 +321,15 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
215 private final Keyword cContainmentContainsKeyword_0_0_0 = (Keyword)cContainmentAssignment_0_0.eContents().get(0); 321 private final Keyword cContainmentContainsKeyword_0_0_0 = (Keyword)cContainmentAssignment_0_0.eContents().get(0);
216 private final Keyword cRefersKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1); 322 private final Keyword cRefersKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1);
217 private final Assignment cReferenceTypeAssignment_1 = (Assignment)cGroup.eContents().get(1); 323 private final Assignment cReferenceTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
218 private final CrossReference cReferenceTypeClassDeclarationCrossReference_1_0 = (CrossReference)cReferenceTypeAssignment_1.eContents().get(0); 324 private final CrossReference cReferenceTypeRelationCrossReference_1_0 = (CrossReference)cReferenceTypeAssignment_1.eContents().get(0);
219 private final RuleCall cReferenceTypeClassDeclarationQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cReferenceTypeClassDeclarationCrossReference_1_0.eContents().get(1); 325 private final RuleCall cReferenceTypeRelationQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cReferenceTypeRelationCrossReference_1_0.eContents().get(1);
220 private final Group cGroup_2 = (Group)cGroup.eContents().get(2); 326 private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
221 private final Keyword cLeftSquareBracketKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); 327 private final Keyword cLeftSquareBracketKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
222 private final Assignment cMultiplicityAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); 328 private final Assignment cMultiplicityAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
223 private final RuleCall cMultiplicityMultiplicityParserRuleCall_2_1_0 = (RuleCall)cMultiplicityAssignment_2_1.eContents().get(0); 329 private final RuleCall cMultiplicityMultiplicityParserRuleCall_2_1_0 = (RuleCall)cMultiplicityAssignment_2_1.eContents().get(0);
224 private final Keyword cRightSquareBracketKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2); 330 private final Keyword cRightSquareBracketKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
225 private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3); 331 private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3);
226 private final RuleCall cNameIDTerminalRuleCall_3_0 = (RuleCall)cNameAssignment_3.eContents().get(0); 332 private final RuleCall cNameIdentifierParserRuleCall_3_0 = (RuleCall)cNameAssignment_3.eContents().get(0);
227 private final Group cGroup_4 = (Group)cGroup.eContents().get(4); 333 private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
228 private final Keyword cOppositeKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0); 334 private final Keyword cOppositeKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
229 private final Assignment cOppositeAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1); 335 private final Assignment cOppositeAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
@@ -231,21 +337,21 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
231 private final RuleCall cOppositeReferenceDeclarationQualifiedNameParserRuleCall_4_1_0_1 = (RuleCall)cOppositeReferenceDeclarationCrossReference_4_1_0.eContents().get(1); 337 private final RuleCall cOppositeReferenceDeclarationQualifiedNameParserRuleCall_4_1_0_1 = (RuleCall)cOppositeReferenceDeclarationCrossReference_4_1_0.eContents().get(1);
232 338
233 //ReferenceDeclaration: 339 //ReferenceDeclaration:
234 // (containment?="contains" | "refers") 340 // (containment?="contains" | "refers")?
235 // referenceType=[ClassDeclaration|QualifiedName] 341 // referenceType=[Relation|QualifiedName]
236 // ("[" multiplicity=Multiplicity "]")? 342 // ("[" multiplicity=Multiplicity "]")?
237 // name=ID 343 // name=Identifier
238 // ("opposite" opposite=[ReferenceDeclaration|QualifiedName])?; 344 // ("opposite" opposite=[ReferenceDeclaration|QualifiedName])?;
239 @Override public ParserRule getRule() { return rule; } 345 @Override public ParserRule getRule() { return rule; }
240 346
241 //(containment?="contains" | "refers") 347 //(containment?="contains" | "refers")?
242 //referenceType=[ClassDeclaration|QualifiedName] 348 //referenceType=[Relation|QualifiedName]
243 //("[" multiplicity=Multiplicity "]")? 349 //("[" multiplicity=Multiplicity "]")?
244 //name=ID 350 //name=Identifier
245 //("opposite" opposite=[ReferenceDeclaration|QualifiedName])? 351 //("opposite" opposite=[ReferenceDeclaration|QualifiedName])?
246 public Group getGroup() { return cGroup; } 352 public Group getGroup() { return cGroup; }
247 353
248 //(containment?="contains" | "refers") 354 //(containment?="contains" | "refers")?
249 public Alternatives getAlternatives_0() { return cAlternatives_0; } 355 public Alternatives getAlternatives_0() { return cAlternatives_0; }
250 356
251 //containment?="contains" 357 //containment?="contains"
@@ -257,14 +363,14 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
257 //"refers" 363 //"refers"
258 public Keyword getRefersKeyword_0_1() { return cRefersKeyword_0_1; } 364 public Keyword getRefersKeyword_0_1() { return cRefersKeyword_0_1; }
259 365
260 //referenceType=[ClassDeclaration|QualifiedName] 366 //referenceType=[Relation|QualifiedName]
261 public Assignment getReferenceTypeAssignment_1() { return cReferenceTypeAssignment_1; } 367 public Assignment getReferenceTypeAssignment_1() { return cReferenceTypeAssignment_1; }
262 368
263 //[ClassDeclaration|QualifiedName] 369 //[Relation|QualifiedName]
264 public CrossReference getReferenceTypeClassDeclarationCrossReference_1_0() { return cReferenceTypeClassDeclarationCrossReference_1_0; } 370 public CrossReference getReferenceTypeRelationCrossReference_1_0() { return cReferenceTypeRelationCrossReference_1_0; }
265 371
266 //QualifiedName 372 //QualifiedName
267 public RuleCall getReferenceTypeClassDeclarationQualifiedNameParserRuleCall_1_0_1() { return cReferenceTypeClassDeclarationQualifiedNameParserRuleCall_1_0_1; } 373 public RuleCall getReferenceTypeRelationQualifiedNameParserRuleCall_1_0_1() { return cReferenceTypeRelationQualifiedNameParserRuleCall_1_0_1; }
268 374
269 //("[" multiplicity=Multiplicity "]")? 375 //("[" multiplicity=Multiplicity "]")?
270 public Group getGroup_2() { return cGroup_2; } 376 public Group getGroup_2() { return cGroup_2; }
@@ -281,11 +387,11 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
281 //"]" 387 //"]"
282 public Keyword getRightSquareBracketKeyword_2_2() { return cRightSquareBracketKeyword_2_2; } 388 public Keyword getRightSquareBracketKeyword_2_2() { return cRightSquareBracketKeyword_2_2; }
283 389
284 //name=ID 390 //name=Identifier
285 public Assignment getNameAssignment_3() { return cNameAssignment_3; } 391 public Assignment getNameAssignment_3() { return cNameAssignment_3; }
286 392
287 //ID 393 //Identifier
288 public RuleCall getNameIDTerminalRuleCall_3_0() { return cNameIDTerminalRuleCall_3_0; } 394 public RuleCall getNameIdentifierParserRuleCall_3_0() { return cNameIdentifierParserRuleCall_3_0; }
289 395
290 //("opposite" opposite=[ReferenceDeclaration|QualifiedName])? 396 //("opposite" opposite=[ReferenceDeclaration|QualifiedName])?
291 public Group getGroup_4() { return cGroup_4; } 397 public Group getGroup_4() { return cGroup_4; }
@@ -312,7 +418,7 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
312 private final Keyword cPredKeyword_0_0_1 = (Keyword)cGroup_0_0.eContents().get(1); 418 private final Keyword cPredKeyword_0_0_1 = (Keyword)cGroup_0_0.eContents().get(1);
313 private final Keyword cPredKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1); 419 private final Keyword cPredKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1);
314 private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); 420 private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
315 private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); 421 private final RuleCall cNameIdentifierParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
316 private final Keyword cLeftParenthesisKeyword_2 = (Keyword)cGroup.eContents().get(2); 422 private final Keyword cLeftParenthesisKeyword_2 = (Keyword)cGroup.eContents().get(2);
317 private final Group cGroup_3 = (Group)cGroup.eContents().get(3); 423 private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
318 private final Assignment cParametersAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0); 424 private final Assignment cParametersAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0);
@@ -334,14 +440,14 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
334 440
335 //PredicateDefinition: 441 //PredicateDefinition:
336 // (error?="error" "pred"? | "pred") 442 // (error?="error" "pred"? | "pred")
337 // name=ID 443 // name=Identifier
338 // "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")" 444 // "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")"
339 // (":-" bodies+=Conjunction (";" bodies+=Conjunction)*)? 445 // (":-" bodies+=Conjunction (";" bodies+=Conjunction)*)?
340 // "."; 446 // ".";
341 @Override public ParserRule getRule() { return rule; } 447 @Override public ParserRule getRule() { return rule; }
342 448
343 //(error?="error" "pred"? | "pred") 449 //(error?="error" "pred"? | "pred")
344 //name=ID 450 //name=Identifier
345 //"(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")" 451 //"(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")"
346 //(":-" bodies+=Conjunction (";" bodies+=Conjunction)*)? 452 //(":-" bodies+=Conjunction (";" bodies+=Conjunction)*)?
347 //"." 453 //"."
@@ -365,11 +471,11 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
365 //"pred" 471 //"pred"
366 public Keyword getPredKeyword_0_1() { return cPredKeyword_0_1; } 472 public Keyword getPredKeyword_0_1() { return cPredKeyword_0_1; }
367 473
368 //name=ID 474 //name=Identifier
369 public Assignment getNameAssignment_1() { return cNameAssignment_1; } 475 public Assignment getNameAssignment_1() { return cNameAssignment_1; }
370 476
371 //ID 477 //Identifier
372 public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } 478 public RuleCall getNameIdentifierParserRuleCall_1_0() { return cNameIdentifierParserRuleCall_1_0; }
373 479
374 //"(" 480 //"("
375 public Keyword getLeftParenthesisKeyword_2() { return cLeftParenthesisKeyword_2; } 481 public Keyword getLeftParenthesisKeyword_2() { return cLeftParenthesisKeyword_2; }
@@ -429,32 +535,32 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
429 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Parameter"); 535 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Parameter");
430 private final Group cGroup = (Group)rule.eContents().get(1); 536 private final Group cGroup = (Group)rule.eContents().get(1);
431 private final Assignment cParameterTypeAssignment_0 = (Assignment)cGroup.eContents().get(0); 537 private final Assignment cParameterTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
432 private final CrossReference cParameterTypeClassDeclarationCrossReference_0_0 = (CrossReference)cParameterTypeAssignment_0.eContents().get(0); 538 private final CrossReference cParameterTypeRelationCrossReference_0_0 = (CrossReference)cParameterTypeAssignment_0.eContents().get(0);
433 private final RuleCall cParameterTypeClassDeclarationIDTerminalRuleCall_0_0_1 = (RuleCall)cParameterTypeClassDeclarationCrossReference_0_0.eContents().get(1); 539 private final RuleCall cParameterTypeRelationQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cParameterTypeRelationCrossReference_0_0.eContents().get(1);
434 private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); 540 private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
435 private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); 541 private final RuleCall cNameIdentifierParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
436 542
437 //Parameter: 543 //Parameter:
438 // parameterType=[ClassDeclaration] name=ID; 544 // parameterType=[Relation|QualifiedName]? name=Identifier;
439 @Override public ParserRule getRule() { return rule; } 545 @Override public ParserRule getRule() { return rule; }
440 546
441 //parameterType=[ClassDeclaration] name=ID 547 //parameterType=[Relation|QualifiedName]? name=Identifier
442 public Group getGroup() { return cGroup; } 548 public Group getGroup() { return cGroup; }
443 549
444 //parameterType=[ClassDeclaration] 550 //parameterType=[Relation|QualifiedName]?
445 public Assignment getParameterTypeAssignment_0() { return cParameterTypeAssignment_0; } 551 public Assignment getParameterTypeAssignment_0() { return cParameterTypeAssignment_0; }
446 552
447 //[ClassDeclaration] 553 //[Relation|QualifiedName]
448 public CrossReference getParameterTypeClassDeclarationCrossReference_0_0() { return cParameterTypeClassDeclarationCrossReference_0_0; } 554 public CrossReference getParameterTypeRelationCrossReference_0_0() { return cParameterTypeRelationCrossReference_0_0; }
449 555
450 //ID 556 //QualifiedName
451 public RuleCall getParameterTypeClassDeclarationIDTerminalRuleCall_0_0_1() { return cParameterTypeClassDeclarationIDTerminalRuleCall_0_0_1; } 557 public RuleCall getParameterTypeRelationQualifiedNameParserRuleCall_0_0_1() { return cParameterTypeRelationQualifiedNameParserRuleCall_0_0_1; }
452 558
453 //name=ID 559 //name=Identifier
454 public Assignment getNameAssignment_1() { return cNameAssignment_1; } 560 public Assignment getNameAssignment_1() { return cNameAssignment_1; }
455 561
456 //ID 562 //Identifier
457 public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } 563 public RuleCall getNameIdentifierParserRuleCall_1_0() { return cNameIdentifierParserRuleCall_1_0; }
458 } 564 }
459 public class ConjunctionElements extends AbstractParserRuleElementFinder { 565 public class ConjunctionElements extends AbstractParserRuleElementFinder {
460 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Conjunction"); 566 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Conjunction");
@@ -606,22 +712,22 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
606 } 712 }
607 public class ArgumentElements extends AbstractParserRuleElementFinder { 713 public class ArgumentElements extends AbstractParserRuleElementFinder {
608 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Argument"); 714 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Argument");
609 private final Assignment cVariableAssignment = (Assignment)rule.eContents().get(1); 715 private final Assignment cVariableOrNodeAssignment = (Assignment)rule.eContents().get(1);
610 private final CrossReference cVariableVariableCrossReference_0 = (CrossReference)cVariableAssignment.eContents().get(0); 716 private final CrossReference cVariableOrNodeVariableOrNodeCrossReference_0 = (CrossReference)cVariableOrNodeAssignment.eContents().get(0);
611 private final RuleCall cVariableVariableIDTerminalRuleCall_0_1 = (RuleCall)cVariableVariableCrossReference_0.eContents().get(1); 717 private final RuleCall cVariableOrNodeVariableOrNodeQualifiedNameParserRuleCall_0_1 = (RuleCall)cVariableOrNodeVariableOrNodeCrossReference_0.eContents().get(1);
612 718
613 //Argument: 719 //Argument:
614 // variable=[Variable]; 720 // variableOrNode=[VariableOrNode|QualifiedName];
615 @Override public ParserRule getRule() { return rule; } 721 @Override public ParserRule getRule() { return rule; }
616 722
617 //variable=[Variable] 723 //variableOrNode=[VariableOrNode|QualifiedName]
618 public Assignment getVariableAssignment() { return cVariableAssignment; } 724 public Assignment getVariableOrNodeAssignment() { return cVariableOrNodeAssignment; }
619 725
620 //[Variable] 726 //[VariableOrNode|QualifiedName]
621 public CrossReference getVariableVariableCrossReference_0() { return cVariableVariableCrossReference_0; } 727 public CrossReference getVariableOrNodeVariableOrNodeCrossReference_0() { return cVariableOrNodeVariableOrNodeCrossReference_0; }
622 728
623 //ID 729 //QualifiedName
624 public RuleCall getVariableVariableIDTerminalRuleCall_0_1() { return cVariableVariableIDTerminalRuleCall_0_1; } 730 public RuleCall getVariableOrNodeVariableOrNodeQualifiedNameParserRuleCall_0_1() { return cVariableOrNodeVariableOrNodeQualifiedNameParserRuleCall_0_1; }
625 } 731 }
626 public class AssertionElements extends AbstractParserRuleElementFinder { 732 public class AssertionElements extends AbstractParserRuleElementFinder {
627 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Assertion"); 733 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Assertion");
@@ -1011,43 +1117,62 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1011 //"*" 1117 //"*"
1012 public Keyword getAsteriskKeyword_1() { return cAsteriskKeyword_1; } 1118 public Keyword getAsteriskKeyword_1() { return cAsteriskKeyword_1; }
1013 } 1119 }
1120 public class QuotedOrUnquotedIdElements extends AbstractParserRuleElementFinder {
1121 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.QuotedOrUnquotedId");
1122 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1123 private final RuleCall cQUOTED_IDTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1124 private final RuleCall cIdentifierParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
1125
1126 //QuotedOrUnquotedId:
1127 // QUOTED_ID | Identifier;
1128 @Override public ParserRule getRule() { return rule; }
1129
1130 //QUOTED_ID | Identifier
1131 public Alternatives getAlternatives() { return cAlternatives; }
1132
1133 //QUOTED_ID
1134 public RuleCall getQUOTED_IDTerminalRuleCall_0() { return cQUOTED_IDTerminalRuleCall_0; }
1135
1136 //Identifier
1137 public RuleCall getIdentifierParserRuleCall_1() { return cIdentifierParserRuleCall_1; }
1138 }
1014 public class QualifiedNameElements extends AbstractParserRuleElementFinder { 1139 public class QualifiedNameElements extends AbstractParserRuleElementFinder {
1015 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.QualifiedName"); 1140 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.QualifiedName");
1016 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 1141 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1017 private final RuleCall cQUOTED_IDTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); 1142 private final RuleCall cQUOTED_IDTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1018 private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); 1143 private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1);
1019 private final RuleCall cIDTerminalRuleCall_1_0 = (RuleCall)cGroup_1.eContents().get(0); 1144 private final RuleCall cIdentifierParserRuleCall_1_0 = (RuleCall)cGroup_1.eContents().get(0);
1020 private final Group cGroup_1_1 = (Group)cGroup_1.eContents().get(1); 1145 private final Group cGroup_1_1 = (Group)cGroup_1.eContents().get(1);
1021 private final Keyword cColonKeyword_1_1_0 = (Keyword)cGroup_1_1.eContents().get(0); 1146 private final Keyword cColonKeyword_1_1_0 = (Keyword)cGroup_1_1.eContents().get(0);
1022 private final RuleCall cIDTerminalRuleCall_1_1_1 = (RuleCall)cGroup_1_1.eContents().get(1); 1147 private final RuleCall cIdentifierParserRuleCall_1_1_1 = (RuleCall)cGroup_1_1.eContents().get(1);
1023 private final Group cGroup_1_2 = (Group)cGroup_1.eContents().get(2); 1148 private final Group cGroup_1_2 = (Group)cGroup_1.eContents().get(2);
1024 private final Keyword cColonKeyword_1_2_0 = (Keyword)cGroup_1_2.eContents().get(0); 1149 private final Keyword cColonKeyword_1_2_0 = (Keyword)cGroup_1_2.eContents().get(0);
1025 private final RuleCall cQUOTED_IDTerminalRuleCall_1_2_1 = (RuleCall)cGroup_1_2.eContents().get(1); 1150 private final RuleCall cQUOTED_IDTerminalRuleCall_1_2_1 = (RuleCall)cGroup_1_2.eContents().get(1);
1026 1151
1027 //QualifiedName: 1152 //QualifiedName:
1028 // QUOTED_ID | ID (":" ID)* (":" QUOTED_ID)?; 1153 // QUOTED_ID | Identifier (":" Identifier)* (":" QUOTED_ID)?;
1029 @Override public ParserRule getRule() { return rule; } 1154 @Override public ParserRule getRule() { return rule; }
1030 1155
1031 //QUOTED_ID | ID (":" ID)* (":" QUOTED_ID)? 1156 //QUOTED_ID | Identifier (":" Identifier)* (":" QUOTED_ID)?
1032 public Alternatives getAlternatives() { return cAlternatives; } 1157 public Alternatives getAlternatives() { return cAlternatives; }
1033 1158
1034 //QUOTED_ID 1159 //QUOTED_ID
1035 public RuleCall getQUOTED_IDTerminalRuleCall_0() { return cQUOTED_IDTerminalRuleCall_0; } 1160 public RuleCall getQUOTED_IDTerminalRuleCall_0() { return cQUOTED_IDTerminalRuleCall_0; }
1036 1161
1037 //ID (":" ID)* (":" QUOTED_ID)? 1162 //Identifier (":" Identifier)* (":" QUOTED_ID)?
1038 public Group getGroup_1() { return cGroup_1; } 1163 public Group getGroup_1() { return cGroup_1; }
1039 1164
1040 //ID 1165 //Identifier
1041 public RuleCall getIDTerminalRuleCall_1_0() { return cIDTerminalRuleCall_1_0; } 1166 public RuleCall getIdentifierParserRuleCall_1_0() { return cIdentifierParserRuleCall_1_0; }
1042 1167
1043 //(":" ID)* 1168 //(":" Identifier)*
1044 public Group getGroup_1_1() { return cGroup_1_1; } 1169 public Group getGroup_1_1() { return cGroup_1_1; }
1045 1170
1046 //":" 1171 //":"
1047 public Keyword getColonKeyword_1_1_0() { return cColonKeyword_1_1_0; } 1172 public Keyword getColonKeyword_1_1_0() { return cColonKeyword_1_1_0; }
1048 1173
1049 //ID 1174 //Identifier
1050 public RuleCall getIDTerminalRuleCall_1_1_1() { return cIDTerminalRuleCall_1_1_1; } 1175 public RuleCall getIdentifierParserRuleCall_1_1_1() { return cIdentifierParserRuleCall_1_1_1; }
1051 1176
1052 //(":" QUOTED_ID)? 1177 //(":" QUOTED_ID)?
1053 public Group getGroup_1_2() { return cGroup_1_2; } 1178 public Group getGroup_1_2() { return cGroup_1_2; }
@@ -1058,6 +1183,29 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1058 //QUOTED_ID 1183 //QUOTED_ID
1059 public RuleCall getQUOTED_IDTerminalRuleCall_1_2_1() { return cQUOTED_IDTerminalRuleCall_1_2_1; } 1184 public RuleCall getQUOTED_IDTerminalRuleCall_1_2_1() { return cQUOTED_IDTerminalRuleCall_1_2_1; }
1060 } 1185 }
1186 public class IdentifierElements extends AbstractParserRuleElementFinder {
1187 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Identifier");
1188 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1189 private final RuleCall cIDTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1190 private final Keyword cTrueKeyword_1 = (Keyword)cAlternatives.eContents().get(1);
1191 private final Keyword cFalseKeyword_2 = (Keyword)cAlternatives.eContents().get(2);
1192
1193 //Identifier:
1194 // ID | "true" | "false";
1195 @Override public ParserRule getRule() { return rule; }
1196
1197 //ID | "true" | "false"
1198 public Alternatives getAlternatives() { return cAlternatives; }
1199
1200 //ID
1201 public RuleCall getIDTerminalRuleCall_0() { return cIDTerminalRuleCall_0; }
1202
1203 //"true"
1204 public Keyword getTrueKeyword_1() { return cTrueKeyword_1; }
1205
1206 //"false"
1207 public Keyword getFalseKeyword_2() { return cFalseKeyword_2; }
1208 }
1061 1209
1062 public class LogicValueElements extends AbstractElementFinder.AbstractEnumRuleElementFinder { 1210 public class LogicValueElements extends AbstractElementFinder.AbstractEnumRuleElementFinder {
1063 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.LogicValue"); 1211 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.LogicValue");
@@ -1125,6 +1273,8 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1125 private final ProblemElements pProblem; 1273 private final ProblemElements pProblem;
1126 private final StatementElements pStatement; 1274 private final StatementElements pStatement;
1127 private final ClassDeclarationElements pClassDeclaration; 1275 private final ClassDeclarationElements pClassDeclaration;
1276 private final EnumDeclarationElements pEnumDeclaration;
1277 private final EnumLiteralElements pEnumLiteral;
1128 private final ReferenceDeclarationElements pReferenceDeclaration; 1278 private final ReferenceDeclarationElements pReferenceDeclaration;
1129 private final PredicateDefinitionElements pPredicateDefinition; 1279 private final PredicateDefinitionElements pPredicateDefinition;
1130 private final ParameterElements pParameter; 1280 private final ParameterElements pParameter;
@@ -1144,7 +1294,9 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1144 private final RangeMultiplicityElements pRangeMultiplicity; 1294 private final RangeMultiplicityElements pRangeMultiplicity;
1145 private final ExactMultiplicityElements pExactMultiplicity; 1295 private final ExactMultiplicityElements pExactMultiplicity;
1146 private final UpperBoundElements pUpperBound; 1296 private final UpperBoundElements pUpperBound;
1297 private final QuotedOrUnquotedIdElements pQuotedOrUnquotedId;
1147 private final QualifiedNameElements pQualifiedName; 1298 private final QualifiedNameElements pQualifiedName;
1299 private final IdentifierElements pIdentifier;
1148 private final TerminalRule tSTRING; 1300 private final TerminalRule tSTRING;
1149 private final TerminalRule tQUOTED_ID; 1301 private final TerminalRule tQUOTED_ID;
1150 1302
@@ -1160,6 +1312,8 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1160 this.pProblem = new ProblemElements(); 1312 this.pProblem = new ProblemElements();
1161 this.pStatement = new StatementElements(); 1313 this.pStatement = new StatementElements();
1162 this.pClassDeclaration = new ClassDeclarationElements(); 1314 this.pClassDeclaration = new ClassDeclarationElements();
1315 this.pEnumDeclaration = new EnumDeclarationElements();
1316 this.pEnumLiteral = new EnumLiteralElements();
1163 this.pReferenceDeclaration = new ReferenceDeclarationElements(); 1317 this.pReferenceDeclaration = new ReferenceDeclarationElements();
1164 this.pPredicateDefinition = new PredicateDefinitionElements(); 1318 this.pPredicateDefinition = new PredicateDefinitionElements();
1165 this.pParameter = new ParameterElements(); 1319 this.pParameter = new ParameterElements();
@@ -1179,7 +1333,9 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1179 this.pRangeMultiplicity = new RangeMultiplicityElements(); 1333 this.pRangeMultiplicity = new RangeMultiplicityElements();
1180 this.pExactMultiplicity = new ExactMultiplicityElements(); 1334 this.pExactMultiplicity = new ExactMultiplicityElements();
1181 this.pUpperBound = new UpperBoundElements(); 1335 this.pUpperBound = new UpperBoundElements();
1336 this.pQuotedOrUnquotedId = new QuotedOrUnquotedIdElements();
1182 this.pQualifiedName = new QualifiedNameElements(); 1337 this.pQualifiedName = new QualifiedNameElements();
1338 this.pIdentifier = new IdentifierElements();
1183 this.tSTRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.STRING"); 1339 this.tSTRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.STRING");
1184 this.tQUOTED_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.QUOTED_ID"); 1340 this.tQUOTED_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.QUOTED_ID");
1185 } 1341 }
@@ -1212,7 +1368,7 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1212 1368
1213 1369
1214 //Problem: 1370 //Problem:
1215 // ("problem" name=ID ".")? 1371 // ("problem" name=Identifier ".")?
1216 // statements+=Statement*; 1372 // statements+=Statement*;
1217 public ProblemElements getProblemAccess() { 1373 public ProblemElements getProblemAccess() {
1218 return pProblem; 1374 return pProblem;
@@ -1223,7 +1379,7 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1223 } 1379 }
1224 1380
1225 //Statement: 1381 //Statement:
1226 // ClassDeclaration | PredicateDefinition | Assertion | ScopeDeclaration; 1382 // ClassDeclaration | EnumDeclaration | PredicateDefinition | Assertion | ScopeDeclaration;
1227 public StatementElements getStatementAccess() { 1383 public StatementElements getStatementAccess() {
1228 return pStatement; 1384 return pStatement;
1229 } 1385 }
@@ -1234,8 +1390,8 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1234 1390
1235 //ClassDeclaration: 1391 //ClassDeclaration:
1236 // abstract?="abstract"? "class" 1392 // abstract?="abstract"? "class"
1237 // name=ID 1393 // name=Identifier
1238 // ("extends" superTypes+=[ClassDeclaration|QualifiedName] ("," superTypes+=[ClassDeclaration|QualifiedName])*)? 1394 // ("extends" superTypes+=[Relation|QualifiedName] ("," superTypes+=[Relation|QualifiedName])*)?
1239 // ("{" (referenceDeclarations+=ReferenceDeclaration ";"?)* "}" | "."); 1395 // ("{" (referenceDeclarations+=ReferenceDeclaration ";"?)* "}" | ".");
1240 public ClassDeclarationElements getClassDeclarationAccess() { 1396 public ClassDeclarationElements getClassDeclarationAccess() {
1241 return pClassDeclaration; 1397 return pClassDeclaration;
@@ -1245,11 +1401,33 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1245 return getClassDeclarationAccess().getRule(); 1401 return getClassDeclarationAccess().getRule();
1246 } 1402 }
1247 1403
1404 //EnumDeclaration:
1405 // "enum"
1406 // name=Identifier
1407 // ("{" (literals+=EnumLiteral ("," literals+=EnumLiteral)* ("," | ";")?)? "}" | ".");
1408 public EnumDeclarationElements getEnumDeclarationAccess() {
1409 return pEnumDeclaration;
1410 }
1411
1412 public ParserRule getEnumDeclarationRule() {
1413 return getEnumDeclarationAccess().getRule();
1414 }
1415
1416 //EnumLiteral returns Node:
1417 // name=QuotedOrUnquotedId;
1418 public EnumLiteralElements getEnumLiteralAccess() {
1419 return pEnumLiteral;
1420 }
1421
1422 public ParserRule getEnumLiteralRule() {
1423 return getEnumLiteralAccess().getRule();
1424 }
1425
1248 //ReferenceDeclaration: 1426 //ReferenceDeclaration:
1249 // (containment?="contains" | "refers") 1427 // (containment?="contains" | "refers")?
1250 // referenceType=[ClassDeclaration|QualifiedName] 1428 // referenceType=[Relation|QualifiedName]
1251 // ("[" multiplicity=Multiplicity "]")? 1429 // ("[" multiplicity=Multiplicity "]")?
1252 // name=ID 1430 // name=Identifier
1253 // ("opposite" opposite=[ReferenceDeclaration|QualifiedName])?; 1431 // ("opposite" opposite=[ReferenceDeclaration|QualifiedName])?;
1254 public ReferenceDeclarationElements getReferenceDeclarationAccess() { 1432 public ReferenceDeclarationElements getReferenceDeclarationAccess() {
1255 return pReferenceDeclaration; 1433 return pReferenceDeclaration;
@@ -1261,7 +1439,7 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1261 1439
1262 //PredicateDefinition: 1440 //PredicateDefinition:
1263 // (error?="error" "pred"? | "pred") 1441 // (error?="error" "pred"? | "pred")
1264 // name=ID 1442 // name=Identifier
1265 // "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")" 1443 // "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")"
1266 // (":-" bodies+=Conjunction (";" bodies+=Conjunction)*)? 1444 // (":-" bodies+=Conjunction (";" bodies+=Conjunction)*)?
1267 // "."; 1445 // ".";
@@ -1274,7 +1452,7 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1274 } 1452 }
1275 1453
1276 //Parameter: 1454 //Parameter:
1277 // parameterType=[ClassDeclaration] name=ID; 1455 // parameterType=[Relation|QualifiedName]? name=Identifier;
1278 public ParameterElements getParameterAccess() { 1456 public ParameterElements getParameterAccess() {
1279 return pParameter; 1457 return pParameter;
1280 } 1458 }
@@ -1326,7 +1504,7 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1326 } 1504 }
1327 1505
1328 //Argument: 1506 //Argument:
1329 // variable=[Variable]; 1507 // variableOrNode=[VariableOrNode|QualifiedName];
1330 public ArgumentElements getArgumentAccess() { 1508 public ArgumentElements getArgumentAccess() {
1331 return pArgument; 1509 return pArgument;
1332 } 1510 }
@@ -1453,8 +1631,18 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1453 return getUpperBoundAccess().getRule(); 1631 return getUpperBoundAccess().getRule();
1454 } 1632 }
1455 1633
1634 //QuotedOrUnquotedId:
1635 // QUOTED_ID | Identifier;
1636 public QuotedOrUnquotedIdElements getQuotedOrUnquotedIdAccess() {
1637 return pQuotedOrUnquotedId;
1638 }
1639
1640 public ParserRule getQuotedOrUnquotedIdRule() {
1641 return getQuotedOrUnquotedIdAccess().getRule();
1642 }
1643
1456 //QualifiedName: 1644 //QualifiedName:
1457 // QUOTED_ID | ID (":" ID)* (":" QUOTED_ID)?; 1645 // QUOTED_ID | Identifier (":" Identifier)* (":" QUOTED_ID)?;
1458 public QualifiedNameElements getQualifiedNameAccess() { 1646 public QualifiedNameElements getQualifiedNameAccess() {
1459 return pQualifiedName; 1647 return pQualifiedName;
1460 } 1648 }
@@ -1463,13 +1651,25 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1463 return getQualifiedNameAccess().getRule(); 1651 return getQualifiedNameAccess().getRule();
1464 } 1652 }
1465 1653
1654 //Identifier:
1655 // ID | "true" | "false";
1656 public IdentifierElements getIdentifierAccess() {
1657 return pIdentifier;
1658 }
1659
1660 public ParserRule getIdentifierRule() {
1661 return getIdentifierAccess().getRule();
1662 }
1663
1466 //@Override 1664 //@Override
1467 //terminal STRING: '"' ( '\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\'|'"') )* '"'; 1665 //terminal STRING:
1666 // '"' ('\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\' | '"'))* '"';
1468 public TerminalRule getSTRINGRule() { 1667 public TerminalRule getSTRINGRule() {
1469 return tSTRING; 1668 return tSTRING;
1470 } 1669 }
1471 1670
1472 //terminal QUOTED_ID: "'" ( '\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\'|"'") )* "'"; 1671 //terminal QUOTED_ID:
1672 // "'" ('\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\' | "'"))* "'";
1473 public TerminalRule getQUOTED_IDRule() { 1673 public TerminalRule getQUOTED_IDRule() {
1474 return tQUOTED_ID; 1674 return tQUOTED_ID;
1475 } 1675 }