aboutsummaryrefslogtreecommitdiffstats
path: root/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
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/solver/language/parser/antlr/internal/InternalProblemParser.java')
-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.java4056
1 files changed, 4056 insertions, 0 deletions
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
new file mode 100644
index 00000000..9bfeb079
--- /dev/null
+++ 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
@@ -0,0 +1,4056 @@
1package org.eclipse.viatra.solver.language.parser.antlr.internal;
2
3import org.eclipse.xtext.*;
4import org.eclipse.xtext.parser.*;
5import org.eclipse.xtext.parser.impl.*;
6import org.eclipse.emf.ecore.util.EcoreUtil;
7import org.eclipse.emf.ecore.EObject;
8import org.eclipse.emf.common.util.Enumerator;
9import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
10import org.eclipse.xtext.parser.antlr.XtextTokenStream;
11import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
12import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
13import org.eclipse.viatra.solver.language.services.ProblemGrammarAccess;
14
15
16
17import org.antlr.runtime.*;
18import java.util.Stack;
19import java.util.List;
20import java.util.ArrayList;
21
22@SuppressWarnings("all")
23public class InternalProblemParser extends AbstractInternalAntlrParser {
24 public static final String[] tokenNames = new String[] {
25 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'abstract'", "'class'", "'extends'", "'['", "','", "']'", "'.'", "'contains'", "'refers'", "'opposite'", "'error'", "'pred'", "'('", "')'", "':='", "';'", "'!'", "'+'", "':'", "'scope'", "'+='", "'='", "'..'", "'*'", "'::'", "'true'", "'false'", "'unknown'", "'?'"
26 };
27 public static final int RULE_STRING=6;
28 public static final int RULE_SL_COMMENT=8;
29 public static final int T__19=19;
30 public static final int T__15=15;
31 public static final int T__37=37;
32 public static final int T__16=16;
33 public static final int T__38=38;
34 public static final int T__17=17;
35 public static final int T__39=39;
36 public static final int T__18=18;
37 public static final int T__11=11;
38 public static final int T__33=33;
39 public static final int T__12=12;
40 public static final int T__34=34;
41 public static final int T__13=13;
42 public static final int T__35=35;
43 public static final int T__14=14;
44 public static final int T__36=36;
45 public static final int EOF=-1;
46 public static final int T__30=30;
47 public static final int T__31=31;
48 public static final int T__32=32;
49 public static final int RULE_ID=4;
50 public static final int RULE_WS=9;
51 public static final int RULE_ANY_OTHER=10;
52 public static final int T__26=26;
53 public static final int T__27=27;
54 public static final int T__28=28;
55 public static final int RULE_INT=5;
56 public static final int T__29=29;
57 public static final int T__22=22;
58 public static final int RULE_ML_COMMENT=7;
59 public static final int T__23=23;
60 public static final int T__24=24;
61 public static final int T__25=25;
62 public static final int T__20=20;
63 public static final int T__21=21;
64
65 // delegates
66 // delegators
67
68
69 public InternalProblemParser(TokenStream input) {
70 this(input, new RecognizerSharedState());
71 }
72 public InternalProblemParser(TokenStream input, RecognizerSharedState state) {
73 super(input, state);
74
75 }
76
77
78 public String[] getTokenNames() { return InternalProblemParser.tokenNames; }
79 public String getGrammarFileName() { return "InternalProblem.g"; }
80
81
82
83 private ProblemGrammarAccess grammarAccess;
84
85 public InternalProblemParser(TokenStream input, ProblemGrammarAccess grammarAccess) {
86 this(input);
87 this.grammarAccess = grammarAccess;
88 registerRules(grammarAccess.getGrammar());
89 }
90
91 @Override
92 protected String getFirstRuleName() {
93 return "Problem";
94 }
95
96 @Override
97 protected ProblemGrammarAccess getGrammarAccess() {
98 return grammarAccess;
99 }
100
101
102
103
104 // $ANTLR start "entryRuleProblem"
105 // InternalProblem.g:65:1: entryRuleProblem returns [EObject current=null] : iv_ruleProblem= ruleProblem EOF ;
106 public final EObject entryRuleProblem() throws RecognitionException {
107 EObject current = null;
108
109 EObject iv_ruleProblem = null;
110
111
112 try {
113 // InternalProblem.g:65:48: (iv_ruleProblem= ruleProblem EOF )
114 // InternalProblem.g:66:2: iv_ruleProblem= ruleProblem EOF
115 {
116 newCompositeNode(grammarAccess.getProblemRule());
117 pushFollow(FOLLOW_1);
118 iv_ruleProblem=ruleProblem();
119
120 state._fsp--;
121
122 current =iv_ruleProblem;
123 match(input,EOF,FOLLOW_2);
124
125 }
126
127 }
128
129 catch (RecognitionException re) {
130 recover(input,re);
131 appendSkippedTokens();
132 }
133 finally {
134 }
135 return current;
136 }
137 // $ANTLR end "entryRuleProblem"
138
139
140 // $ANTLR start "ruleProblem"
141 // InternalProblem.g:72:1: ruleProblem returns [EObject current=null] : ( (lv_statements_0_0= ruleStatement ) )* ;
142 public final EObject ruleProblem() throws RecognitionException {
143 EObject current = null;
144
145 EObject lv_statements_0_0 = null;
146
147
148
149 enterRule();
150
151 try {
152 // InternalProblem.g:78:2: ( ( (lv_statements_0_0= ruleStatement ) )* )
153 // InternalProblem.g:79:2: ( (lv_statements_0_0= ruleStatement ) )*
154 {
155 // InternalProblem.g:79:2: ( (lv_statements_0_0= ruleStatement ) )*
156 loop1:
157 do {
158 int alt1=2;
159 int LA1_0 = input.LA(1);
160
161 if ( (LA1_0==RULE_ID||(LA1_0>=11 && LA1_0<=12)||(LA1_0>=21 && LA1_0<=22)||LA1_0==27||LA1_0==30||LA1_0==39) ) {
162 alt1=1;
163 }
164
165
166 switch (alt1) {
167 case 1 :
168 // InternalProblem.g:80:3: (lv_statements_0_0= ruleStatement )
169 {
170 // InternalProblem.g:80:3: (lv_statements_0_0= ruleStatement )
171 // InternalProblem.g:81:4: lv_statements_0_0= ruleStatement
172 {
173
174 newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_0());
175
176 pushFollow(FOLLOW_3);
177 lv_statements_0_0=ruleStatement();
178
179 state._fsp--;
180
181
182 if (current==null) {
183 current = createModelElementForParent(grammarAccess.getProblemRule());
184 }
185 add(
186 current,
187 "statements",
188 lv_statements_0_0,
189 "org.eclipse.viatra.solver.language.Problem.Statement");
190 afterParserOrEnumRuleCall();
191
192
193 }
194
195
196 }
197 break;
198
199 default :
200 break loop1;
201 }
202 } while (true);
203
204
205 }
206
207
208 leaveRule();
209
210 }
211
212 catch (RecognitionException re) {
213 recover(input,re);
214 appendSkippedTokens();
215 }
216 finally {
217 }
218 return current;
219 }
220 // $ANTLR end "ruleProblem"
221
222
223 // $ANTLR start "entryRuleStatement"
224 // InternalProblem.g:101:1: entryRuleStatement returns [EObject current=null] : iv_ruleStatement= ruleStatement EOF ;
225 public final EObject entryRuleStatement() throws RecognitionException {
226 EObject current = null;
227
228 EObject iv_ruleStatement = null;
229
230
231 try {
232 // InternalProblem.g:101:50: (iv_ruleStatement= ruleStatement EOF )
233 // InternalProblem.g:102:2: iv_ruleStatement= ruleStatement EOF
234 {
235 newCompositeNode(grammarAccess.getStatementRule());
236 pushFollow(FOLLOW_1);
237 iv_ruleStatement=ruleStatement();
238
239 state._fsp--;
240
241 current =iv_ruleStatement;
242 match(input,EOF,FOLLOW_2);
243
244 }
245
246 }
247
248 catch (RecognitionException re) {
249 recover(input,re);
250 appendSkippedTokens();
251 }
252 finally {
253 }
254 return current;
255 }
256 // $ANTLR end "entryRuleStatement"
257
258
259 // $ANTLR start "ruleStatement"
260 // InternalProblem.g:108:1: ruleStatement returns [EObject current=null] : (this_ClassDeclaration_0= ruleClassDeclaration | this_PredicateDefinition_1= rulePredicateDefinition | this_Assertion_2= ruleAssertion | this_ScopeDeclaration_3= ruleScopeDeclaration ) ;
261 public final EObject ruleStatement() throws RecognitionException {
262 EObject current = null;
263
264 EObject this_ClassDeclaration_0 = null;
265
266 EObject this_PredicateDefinition_1 = null;
267
268 EObject this_Assertion_2 = null;
269
270 EObject this_ScopeDeclaration_3 = null;
271
272
273
274 enterRule();
275
276 try {
277 // InternalProblem.g:114:2: ( (this_ClassDeclaration_0= ruleClassDeclaration | this_PredicateDefinition_1= rulePredicateDefinition | this_Assertion_2= ruleAssertion | this_ScopeDeclaration_3= ruleScopeDeclaration ) )
278 // InternalProblem.g:115:2: (this_ClassDeclaration_0= ruleClassDeclaration | this_PredicateDefinition_1= rulePredicateDefinition | this_Assertion_2= ruleAssertion | this_ScopeDeclaration_3= ruleScopeDeclaration )
279 {
280 // InternalProblem.g:115:2: (this_ClassDeclaration_0= ruleClassDeclaration | this_PredicateDefinition_1= rulePredicateDefinition | this_Assertion_2= ruleAssertion | this_ScopeDeclaration_3= ruleScopeDeclaration )
281 int alt2=4;
282 switch ( input.LA(1) ) {
283 case 11:
284 case 12:
285 {
286 alt2=1;
287 }
288 break;
289 case 21:
290 case 22:
291 {
292 alt2=2;
293 }
294 break;
295 case RULE_ID:
296 case 27:
297 case 39:
298 {
299 alt2=3;
300 }
301 break;
302 case 30:
303 {
304 alt2=4;
305 }
306 break;
307 default:
308 NoViableAltException nvae =
309 new NoViableAltException("", 2, 0, input);
310
311 throw nvae;
312 }
313
314 switch (alt2) {
315 case 1 :
316 // InternalProblem.g:116:3: this_ClassDeclaration_0= ruleClassDeclaration
317 {
318
319 newCompositeNode(grammarAccess.getStatementAccess().getClassDeclarationParserRuleCall_0());
320
321 pushFollow(FOLLOW_2);
322 this_ClassDeclaration_0=ruleClassDeclaration();
323
324 state._fsp--;
325
326
327 current = this_ClassDeclaration_0;
328 afterParserOrEnumRuleCall();
329
330
331 }
332 break;
333 case 2 :
334 // InternalProblem.g:125:3: this_PredicateDefinition_1= rulePredicateDefinition
335 {
336
337 newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_1());
338
339 pushFollow(FOLLOW_2);
340 this_PredicateDefinition_1=rulePredicateDefinition();
341
342 state._fsp--;
343
344
345 current = this_PredicateDefinition_1;
346 afterParserOrEnumRuleCall();
347
348
349 }
350 break;
351 case 3 :
352 // InternalProblem.g:134:3: this_Assertion_2= ruleAssertion
353 {
354
355 newCompositeNode(grammarAccess.getStatementAccess().getAssertionParserRuleCall_2());
356
357 pushFollow(FOLLOW_2);
358 this_Assertion_2=ruleAssertion();
359
360 state._fsp--;
361
362
363 current = this_Assertion_2;
364 afterParserOrEnumRuleCall();
365
366
367 }
368 break;
369 case 4 :
370 // InternalProblem.g:143:3: this_ScopeDeclaration_3= ruleScopeDeclaration
371 {
372
373 newCompositeNode(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_3());
374
375 pushFollow(FOLLOW_2);
376 this_ScopeDeclaration_3=ruleScopeDeclaration();
377
378 state._fsp--;
379
380
381 current = this_ScopeDeclaration_3;
382 afterParserOrEnumRuleCall();
383
384
385 }
386 break;
387
388 }
389
390
391 }
392
393
394 leaveRule();
395
396 }
397
398 catch (RecognitionException re) {
399 recover(input,re);
400 appendSkippedTokens();
401 }
402 finally {
403 }
404 return current;
405 }
406 // $ANTLR end "ruleStatement"
407
408
409 // $ANTLR start "entryRuleClassDeclaration"
410 // InternalProblem.g:155:1: entryRuleClassDeclaration returns [EObject current=null] : iv_ruleClassDeclaration= ruleClassDeclaration EOF ;
411 public final EObject entryRuleClassDeclaration() throws RecognitionException {
412 EObject current = null;
413
414 EObject iv_ruleClassDeclaration = null;
415
416
417 try {
418 // InternalProblem.g:155:57: (iv_ruleClassDeclaration= ruleClassDeclaration EOF )
419 // InternalProblem.g:156:2: iv_ruleClassDeclaration= ruleClassDeclaration EOF
420 {
421 newCompositeNode(grammarAccess.getClassDeclarationRule());
422 pushFollow(FOLLOW_1);
423 iv_ruleClassDeclaration=ruleClassDeclaration();
424
425 state._fsp--;
426
427 current =iv_ruleClassDeclaration;
428 match(input,EOF,FOLLOW_2);
429
430 }
431
432 }
433
434 catch (RecognitionException re) {
435 recover(input,re);
436 appendSkippedTokens();
437 }
438 finally {
439 }
440 return current;
441 }
442 // $ANTLR end "entryRuleClassDeclaration"
443
444
445 // $ANTLR start "ruleClassDeclaration"
446 // InternalProblem.g:162:1: ruleClassDeclaration returns [EObject current=null] : ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= RULE_ID ) ) ( (otherlv_3= 'extends' ( ( (otherlv_4= RULE_ID ) ) | (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' ) ) ) | ( (lv_referenceDeclarations_10_0= ruleReferenceDeclaration ) ) )? (otherlv_11= ',' ( (lv_referenceDeclarations_12_0= ruleReferenceDeclaration ) ) )* otherlv_13= '.' ) ;
447 public final EObject ruleClassDeclaration() throws RecognitionException {
448 EObject current = null;
449
450 Token lv_abstract_0_0=null;
451 Token otherlv_1=null;
452 Token lv_name_2_0=null;
453 Token otherlv_3=null;
454 Token otherlv_4=null;
455 Token otherlv_5=null;
456 Token otherlv_6=null;
457 Token otherlv_7=null;
458 Token otherlv_8=null;
459 Token otherlv_9=null;
460 Token otherlv_11=null;
461 Token otherlv_13=null;
462 EObject lv_referenceDeclarations_10_0 = null;
463
464 EObject lv_referenceDeclarations_12_0 = null;
465
466
467
468 enterRule();
469
470 try {
471 // InternalProblem.g:168:2: ( ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= RULE_ID ) ) ( (otherlv_3= 'extends' ( ( (otherlv_4= RULE_ID ) ) | (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' ) ) ) | ( (lv_referenceDeclarations_10_0= ruleReferenceDeclaration ) ) )? (otherlv_11= ',' ( (lv_referenceDeclarations_12_0= ruleReferenceDeclaration ) ) )* otherlv_13= '.' ) )
472 // InternalProblem.g:169:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= RULE_ID ) ) ( (otherlv_3= 'extends' ( ( (otherlv_4= RULE_ID ) ) | (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' ) ) ) | ( (lv_referenceDeclarations_10_0= ruleReferenceDeclaration ) ) )? (otherlv_11= ',' ( (lv_referenceDeclarations_12_0= ruleReferenceDeclaration ) ) )* otherlv_13= '.' )
473 {
474 // InternalProblem.g:169:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= RULE_ID ) ) ( (otherlv_3= 'extends' ( ( (otherlv_4= RULE_ID ) ) | (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' ) ) ) | ( (lv_referenceDeclarations_10_0= ruleReferenceDeclaration ) ) )? (otherlv_11= ',' ( (lv_referenceDeclarations_12_0= ruleReferenceDeclaration ) ) )* otherlv_13= '.' )
475 // InternalProblem.g:170:3: ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= RULE_ID ) ) ( (otherlv_3= 'extends' ( ( (otherlv_4= RULE_ID ) ) | (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' ) ) ) | ( (lv_referenceDeclarations_10_0= ruleReferenceDeclaration ) ) )? (otherlv_11= ',' ( (lv_referenceDeclarations_12_0= ruleReferenceDeclaration ) ) )* otherlv_13= '.'
476 {
477 // InternalProblem.g:170:3: ( (lv_abstract_0_0= 'abstract' ) )?
478 int alt3=2;
479 int LA3_0 = input.LA(1);
480
481 if ( (LA3_0==11) ) {
482 alt3=1;
483 }
484 switch (alt3) {
485 case 1 :
486 // InternalProblem.g:171:4: (lv_abstract_0_0= 'abstract' )
487 {
488 // InternalProblem.g:171:4: (lv_abstract_0_0= 'abstract' )
489 // InternalProblem.g:172:5: lv_abstract_0_0= 'abstract'
490 {
491 lv_abstract_0_0=(Token)match(input,11,FOLLOW_4);
492
493 newLeafNode(lv_abstract_0_0, grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0());
494
495
496 if (current==null) {
497 current = createModelElement(grammarAccess.getClassDeclarationRule());
498 }
499 setWithLastConsumed(current, "abstract", lv_abstract_0_0 != null, "abstract");
500
501
502 }
503
504
505 }
506 break;
507
508 }
509
510 otherlv_1=(Token)match(input,12,FOLLOW_5);
511
512 newLeafNode(otherlv_1, grammarAccess.getClassDeclarationAccess().getClassKeyword_1());
513
514 // InternalProblem.g:188:3: ( (lv_name_2_0= RULE_ID ) )
515 // InternalProblem.g:189:4: (lv_name_2_0= RULE_ID )
516 {
517 // InternalProblem.g:189:4: (lv_name_2_0= RULE_ID )
518 // InternalProblem.g:190:5: lv_name_2_0= RULE_ID
519 {
520 lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_6);
521
522 newLeafNode(lv_name_2_0, grammarAccess.getClassDeclarationAccess().getNameIDTerminalRuleCall_2_0());
523
524
525 if (current==null) {
526 current = createModelElement(grammarAccess.getClassDeclarationRule());
527 }
528 setWithLastConsumed(
529 current,
530 "name",
531 lv_name_2_0,
532 "org.eclipse.xtext.common.Terminals.ID");
533
534
535 }
536
537
538 }
539
540 // InternalProblem.g:206:3: ( (otherlv_3= 'extends' ( ( (otherlv_4= RULE_ID ) ) | (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' ) ) ) | ( (lv_referenceDeclarations_10_0= ruleReferenceDeclaration ) ) )?
541 int alt7=3;
542 int LA7_0 = input.LA(1);
543
544 if ( (LA7_0==13) ) {
545 alt7=1;
546 }
547 else if ( ((LA7_0>=18 && LA7_0<=19)) ) {
548 alt7=2;
549 }
550 switch (alt7) {
551 case 1 :
552 // InternalProblem.g:207:4: (otherlv_3= 'extends' ( ( (otherlv_4= RULE_ID ) ) | (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' ) ) )
553 {
554 // InternalProblem.g:207:4: (otherlv_3= 'extends' ( ( (otherlv_4= RULE_ID ) ) | (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' ) ) )
555 // InternalProblem.g:208:5: otherlv_3= 'extends' ( ( (otherlv_4= RULE_ID ) ) | (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' ) )
556 {
557 otherlv_3=(Token)match(input,13,FOLLOW_7);
558
559 newLeafNode(otherlv_3, grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0_0());
560
561 // InternalProblem.g:212:5: ( ( (otherlv_4= RULE_ID ) ) | (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' ) )
562 int alt6=2;
563 int LA6_0 = input.LA(1);
564
565 if ( (LA6_0==RULE_ID) ) {
566 alt6=1;
567 }
568 else if ( (LA6_0==14) ) {
569 alt6=2;
570 }
571 else {
572 NoViableAltException nvae =
573 new NoViableAltException("", 6, 0, input);
574
575 throw nvae;
576 }
577 switch (alt6) {
578 case 1 :
579 // InternalProblem.g:213:6: ( (otherlv_4= RULE_ID ) )
580 {
581 // InternalProblem.g:213:6: ( (otherlv_4= RULE_ID ) )
582 // InternalProblem.g:214:7: (otherlv_4= RULE_ID )
583 {
584 // InternalProblem.g:214:7: (otherlv_4= RULE_ID )
585 // InternalProblem.g:215:8: otherlv_4= RULE_ID
586 {
587
588 if (current==null) {
589 current = createModelElement(grammarAccess.getClassDeclarationRule());
590 }
591
592 otherlv_4=(Token)match(input,RULE_ID,FOLLOW_8);
593
594 newLeafNode(otherlv_4, grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_0_0());
595
596
597 }
598
599
600 }
601
602
603 }
604 break;
605 case 2 :
606 // InternalProblem.g:227:6: (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' )
607 {
608 // InternalProblem.g:227:6: (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' )
609 // InternalProblem.g:228:7: otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']'
610 {
611 otherlv_5=(Token)match(input,14,FOLLOW_9);
612
613 newLeafNode(otherlv_5, grammarAccess.getClassDeclarationAccess().getLeftSquareBracketKeyword_3_0_1_1_0());
614
615 // InternalProblem.g:232:7: ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )?
616 int alt5=2;
617 int LA5_0 = input.LA(1);
618
619 if ( (LA5_0==RULE_ID) ) {
620 alt5=1;
621 }
622 switch (alt5) {
623 case 1 :
624 // InternalProblem.g:233:8: ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )*
625 {
626 // InternalProblem.g:233:8: ( (otherlv_6= RULE_ID ) )
627 // InternalProblem.g:234:9: (otherlv_6= RULE_ID )
628 {
629 // InternalProblem.g:234:9: (otherlv_6= RULE_ID )
630 // InternalProblem.g:235:10: otherlv_6= RULE_ID
631 {
632
633 if (current==null) {
634 current = createModelElement(grammarAccess.getClassDeclarationRule());
635 }
636
637 otherlv_6=(Token)match(input,RULE_ID,FOLLOW_10);
638
639 newLeafNode(otherlv_6, grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_1_1_0_0());
640
641
642 }
643
644
645 }
646
647 // InternalProblem.g:246:8: (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )*
648 loop4:
649 do {
650 int alt4=2;
651 int LA4_0 = input.LA(1);
652
653 if ( (LA4_0==15) ) {
654 alt4=1;
655 }
656
657
658 switch (alt4) {
659 case 1 :
660 // InternalProblem.g:247:9: otherlv_7= ',' ( (otherlv_8= RULE_ID ) )
661 {
662 otherlv_7=(Token)match(input,15,FOLLOW_5);
663
664 newLeafNode(otherlv_7, grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_0_1_1_1_1_0());
665
666 // InternalProblem.g:251:9: ( (otherlv_8= RULE_ID ) )
667 // InternalProblem.g:252:10: (otherlv_8= RULE_ID )
668 {
669 // InternalProblem.g:252:10: (otherlv_8= RULE_ID )
670 // InternalProblem.g:253:11: otherlv_8= RULE_ID
671 {
672
673 if (current==null) {
674 current = createModelElement(grammarAccess.getClassDeclarationRule());
675 }
676
677 otherlv_8=(Token)match(input,RULE_ID,FOLLOW_10);
678
679 newLeafNode(otherlv_8, grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_1_1_1_1_0());
680
681
682 }
683
684
685 }
686
687
688 }
689 break;
690
691 default :
692 break loop4;
693 }
694 } while (true);
695
696
697 }
698 break;
699
700 }
701
702 otherlv_9=(Token)match(input,16,FOLLOW_8);
703
704 newLeafNode(otherlv_9, grammarAccess.getClassDeclarationAccess().getRightSquareBracketKeyword_3_0_1_1_2());
705
706
707 }
708
709
710 }
711 break;
712
713 }
714
715
716 }
717
718
719 }
720 break;
721 case 2 :
722 // InternalProblem.g:274:4: ( (lv_referenceDeclarations_10_0= ruleReferenceDeclaration ) )
723 {
724 // InternalProblem.g:274:4: ( (lv_referenceDeclarations_10_0= ruleReferenceDeclaration ) )
725 // InternalProblem.g:275:5: (lv_referenceDeclarations_10_0= ruleReferenceDeclaration )
726 {
727 // InternalProblem.g:275:5: (lv_referenceDeclarations_10_0= ruleReferenceDeclaration )
728 // InternalProblem.g:276:6: lv_referenceDeclarations_10_0= ruleReferenceDeclaration
729 {
730
731 newCompositeNode(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_3_1_0());
732
733 pushFollow(FOLLOW_8);
734 lv_referenceDeclarations_10_0=ruleReferenceDeclaration();
735
736 state._fsp--;
737
738
739 if (current==null) {
740 current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
741 }
742 add(
743 current,
744 "referenceDeclarations",
745 lv_referenceDeclarations_10_0,
746 "org.eclipse.viatra.solver.language.Problem.ReferenceDeclaration");
747 afterParserOrEnumRuleCall();
748
749
750 }
751
752
753 }
754
755
756 }
757 break;
758
759 }
760
761 // InternalProblem.g:294:3: (otherlv_11= ',' ( (lv_referenceDeclarations_12_0= ruleReferenceDeclaration ) ) )*
762 loop8:
763 do {
764 int alt8=2;
765 int LA8_0 = input.LA(1);
766
767 if ( (LA8_0==15) ) {
768 alt8=1;
769 }
770
771
772 switch (alt8) {
773 case 1 :
774 // InternalProblem.g:295:4: otherlv_11= ',' ( (lv_referenceDeclarations_12_0= ruleReferenceDeclaration ) )
775 {
776 otherlv_11=(Token)match(input,15,FOLLOW_11);
777
778 newLeafNode(otherlv_11, grammarAccess.getClassDeclarationAccess().getCommaKeyword_4_0());
779
780 // InternalProblem.g:299:4: ( (lv_referenceDeclarations_12_0= ruleReferenceDeclaration ) )
781 // InternalProblem.g:300:5: (lv_referenceDeclarations_12_0= ruleReferenceDeclaration )
782 {
783 // InternalProblem.g:300:5: (lv_referenceDeclarations_12_0= ruleReferenceDeclaration )
784 // InternalProblem.g:301:6: lv_referenceDeclarations_12_0= ruleReferenceDeclaration
785 {
786
787 newCompositeNode(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_4_1_0());
788
789 pushFollow(FOLLOW_8);
790 lv_referenceDeclarations_12_0=ruleReferenceDeclaration();
791
792 state._fsp--;
793
794
795 if (current==null) {
796 current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
797 }
798 add(
799 current,
800 "referenceDeclarations",
801 lv_referenceDeclarations_12_0,
802 "org.eclipse.viatra.solver.language.Problem.ReferenceDeclaration");
803 afterParserOrEnumRuleCall();
804
805
806 }
807
808
809 }
810
811
812 }
813 break;
814
815 default :
816 break loop8;
817 }
818 } while (true);
819
820 otherlv_13=(Token)match(input,17,FOLLOW_2);
821
822 newLeafNode(otherlv_13, grammarAccess.getClassDeclarationAccess().getFullStopKeyword_5());
823
824
825 }
826
827
828 }
829
830
831 leaveRule();
832
833 }
834
835 catch (RecognitionException re) {
836 recover(input,re);
837 appendSkippedTokens();
838 }
839 finally {
840 }
841 return current;
842 }
843 // $ANTLR end "ruleClassDeclaration"
844
845
846 // $ANTLR start "entryRuleReferenceDeclaration"
847 // InternalProblem.g:327:1: entryRuleReferenceDeclaration returns [EObject current=null] : iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF ;
848 public final EObject entryRuleReferenceDeclaration() throws RecognitionException {
849 EObject current = null;
850
851 EObject iv_ruleReferenceDeclaration = null;
852
853
854 try {
855 // InternalProblem.g:327:61: (iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF )
856 // InternalProblem.g:328:2: iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF
857 {
858 newCompositeNode(grammarAccess.getReferenceDeclarationRule());
859 pushFollow(FOLLOW_1);
860 iv_ruleReferenceDeclaration=ruleReferenceDeclaration();
861
862 state._fsp--;
863
864 current =iv_ruleReferenceDeclaration;
865 match(input,EOF,FOLLOW_2);
866
867 }
868
869 }
870
871 catch (RecognitionException re) {
872 recover(input,re);
873 appendSkippedTokens();
874 }
875 finally {
876 }
877 return current;
878 }
879 // $ANTLR end "entryRuleReferenceDeclaration"
880
881
882 // $ANTLR start "ruleReferenceDeclaration"
883 // InternalProblem.g:334:1: ruleReferenceDeclaration returns [EObject current=null] : ( ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' ) ( (otherlv_2= RULE_ID ) ) otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' ( (lv_name_6_0= RULE_ID ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )? ) ;
884 public final EObject ruleReferenceDeclaration() throws RecognitionException {
885 EObject current = null;
886
887 Token lv_containment_0_0=null;
888 Token otherlv_1=null;
889 Token otherlv_2=null;
890 Token otherlv_3=null;
891 Token otherlv_5=null;
892 Token lv_name_6_0=null;
893 Token otherlv_7=null;
894 EObject lv_multiplicity_4_0 = null;
895
896
897
898 enterRule();
899
900 try {
901 // InternalProblem.g:340:2: ( ( ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' ) ( (otherlv_2= RULE_ID ) ) otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' ( (lv_name_6_0= RULE_ID ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )? ) )
902 // InternalProblem.g:341:2: ( ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' ) ( (otherlv_2= RULE_ID ) ) otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' ( (lv_name_6_0= RULE_ID ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )? )
903 {
904 // InternalProblem.g:341:2: ( ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' ) ( (otherlv_2= RULE_ID ) ) otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' ( (lv_name_6_0= RULE_ID ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )? )
905 // InternalProblem.g:342:3: ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' ) ( (otherlv_2= RULE_ID ) ) otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' ( (lv_name_6_0= RULE_ID ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )?
906 {
907 // InternalProblem.g:342:3: ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' )
908 int alt9=2;
909 int LA9_0 = input.LA(1);
910
911 if ( (LA9_0==18) ) {
912 alt9=1;
913 }
914 else if ( (LA9_0==19) ) {
915 alt9=2;
916 }
917 else {
918 NoViableAltException nvae =
919 new NoViableAltException("", 9, 0, input);
920
921 throw nvae;
922 }
923 switch (alt9) {
924 case 1 :
925 // InternalProblem.g:343:4: ( (lv_containment_0_0= 'contains' ) )
926 {
927 // InternalProblem.g:343:4: ( (lv_containment_0_0= 'contains' ) )
928 // InternalProblem.g:344:5: (lv_containment_0_0= 'contains' )
929 {
930 // InternalProblem.g:344:5: (lv_containment_0_0= 'contains' )
931 // InternalProblem.g:345:6: lv_containment_0_0= 'contains'
932 {
933 lv_containment_0_0=(Token)match(input,18,FOLLOW_5);
934
935 newLeafNode(lv_containment_0_0, grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0());
936
937
938 if (current==null) {
939 current = createModelElement(grammarAccess.getReferenceDeclarationRule());
940 }
941 setWithLastConsumed(current, "containment", lv_containment_0_0 != null, "contains");
942
943
944 }
945
946
947 }
948
949
950 }
951 break;
952 case 2 :
953 // InternalProblem.g:358:4: otherlv_1= 'refers'
954 {
955 otherlv_1=(Token)match(input,19,FOLLOW_5);
956
957 newLeafNode(otherlv_1, grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1());
958
959
960 }
961 break;
962
963 }
964
965 // InternalProblem.g:363:3: ( (otherlv_2= RULE_ID ) )
966 // InternalProblem.g:364:4: (otherlv_2= RULE_ID )
967 {
968 // InternalProblem.g:364:4: (otherlv_2= RULE_ID )
969 // InternalProblem.g:365:5: otherlv_2= RULE_ID
970 {
971
972 if (current==null) {
973 current = createModelElement(grammarAccess.getReferenceDeclarationRule());
974 }
975
976 otherlv_2=(Token)match(input,RULE_ID,FOLLOW_12);
977
978 newLeafNode(otherlv_2, grammarAccess.getReferenceDeclarationAccess().getReferenceTypeClassDeclarationCrossReference_1_0());
979
980
981 }
982
983
984 }
985
986 otherlv_3=(Token)match(input,14,FOLLOW_13);
987
988 newLeafNode(otherlv_3, grammarAccess.getReferenceDeclarationAccess().getLeftSquareBracketKeyword_2());
989
990 // InternalProblem.g:380:3: ( (lv_multiplicity_4_0= ruleMultiplicity ) )
991 // InternalProblem.g:381:4: (lv_multiplicity_4_0= ruleMultiplicity )
992 {
993 // InternalProblem.g:381:4: (lv_multiplicity_4_0= ruleMultiplicity )
994 // InternalProblem.g:382:5: lv_multiplicity_4_0= ruleMultiplicity
995 {
996
997 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getMultiplicityMultiplicityParserRuleCall_3_0());
998
999 pushFollow(FOLLOW_14);
1000 lv_multiplicity_4_0=ruleMultiplicity();
1001
1002 state._fsp--;
1003
1004
1005 if (current==null) {
1006 current = createModelElementForParent(grammarAccess.getReferenceDeclarationRule());
1007 }
1008 set(
1009 current,
1010 "multiplicity",
1011 lv_multiplicity_4_0,
1012 "org.eclipse.viatra.solver.language.Problem.Multiplicity");
1013 afterParserOrEnumRuleCall();
1014
1015
1016 }
1017
1018
1019 }
1020
1021 otherlv_5=(Token)match(input,16,FOLLOW_5);
1022
1023 newLeafNode(otherlv_5, grammarAccess.getReferenceDeclarationAccess().getRightSquareBracketKeyword_4());
1024
1025 // InternalProblem.g:403:3: ( (lv_name_6_0= RULE_ID ) )
1026 // InternalProblem.g:404:4: (lv_name_6_0= RULE_ID )
1027 {
1028 // InternalProblem.g:404:4: (lv_name_6_0= RULE_ID )
1029 // InternalProblem.g:405:5: lv_name_6_0= RULE_ID
1030 {
1031 lv_name_6_0=(Token)match(input,RULE_ID,FOLLOW_15);
1032
1033 newLeafNode(lv_name_6_0, grammarAccess.getReferenceDeclarationAccess().getNameIDTerminalRuleCall_5_0());
1034
1035
1036 if (current==null) {
1037 current = createModelElement(grammarAccess.getReferenceDeclarationRule());
1038 }
1039 setWithLastConsumed(
1040 current,
1041 "name",
1042 lv_name_6_0,
1043 "org.eclipse.xtext.common.Terminals.ID");
1044
1045
1046 }
1047
1048
1049 }
1050
1051 // InternalProblem.g:421:3: (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )?
1052 int alt10=2;
1053 int LA10_0 = input.LA(1);
1054
1055 if ( (LA10_0==20) ) {
1056 alt10=1;
1057 }
1058 switch (alt10) {
1059 case 1 :
1060 // InternalProblem.g:422:4: otherlv_7= 'opposite' ( ( ruleQualifiedName ) )
1061 {
1062 otherlv_7=(Token)match(input,20,FOLLOW_5);
1063
1064 newLeafNode(otherlv_7, grammarAccess.getReferenceDeclarationAccess().getOppositeKeyword_6_0());
1065
1066 // InternalProblem.g:426:4: ( ( ruleQualifiedName ) )
1067 // InternalProblem.g:427:5: ( ruleQualifiedName )
1068 {
1069 // InternalProblem.g:427:5: ( ruleQualifiedName )
1070 // InternalProblem.g:428:6: ruleQualifiedName
1071 {
1072
1073 if (current==null) {
1074 current = createModelElement(grammarAccess.getReferenceDeclarationRule());
1075 }
1076
1077
1078 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationCrossReference_6_1_0());
1079
1080 pushFollow(FOLLOW_2);
1081 ruleQualifiedName();
1082
1083 state._fsp--;
1084
1085
1086 afterParserOrEnumRuleCall();
1087
1088
1089 }
1090
1091
1092 }
1093
1094
1095 }
1096 break;
1097
1098 }
1099
1100
1101 }
1102
1103
1104 }
1105
1106
1107 leaveRule();
1108
1109 }
1110
1111 catch (RecognitionException re) {
1112 recover(input,re);
1113 appendSkippedTokens();
1114 }
1115 finally {
1116 }
1117 return current;
1118 }
1119 // $ANTLR end "ruleReferenceDeclaration"
1120
1121
1122 // $ANTLR start "entryRulePredicateDefinition"
1123 // InternalProblem.g:447:1: entryRulePredicateDefinition returns [EObject current=null] : iv_rulePredicateDefinition= rulePredicateDefinition EOF ;
1124 public final EObject entryRulePredicateDefinition() throws RecognitionException {
1125 EObject current = null;
1126
1127 EObject iv_rulePredicateDefinition = null;
1128
1129
1130 try {
1131 // InternalProblem.g:447:60: (iv_rulePredicateDefinition= rulePredicateDefinition EOF )
1132 // InternalProblem.g:448:2: iv_rulePredicateDefinition= rulePredicateDefinition EOF
1133 {
1134 newCompositeNode(grammarAccess.getPredicateDefinitionRule());
1135 pushFollow(FOLLOW_1);
1136 iv_rulePredicateDefinition=rulePredicateDefinition();
1137
1138 state._fsp--;
1139
1140 current =iv_rulePredicateDefinition;
1141 match(input,EOF,FOLLOW_2);
1142
1143 }
1144
1145 }
1146
1147 catch (RecognitionException re) {
1148 recover(input,re);
1149 appendSkippedTokens();
1150 }
1151 finally {
1152 }
1153 return current;
1154 }
1155 // $ANTLR end "entryRulePredicateDefinition"
1156
1157
1158 // $ANTLR start "rulePredicateDefinition"
1159 // InternalProblem.g:454: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= '.' ) ;
1160 public final EObject rulePredicateDefinition() throws RecognitionException {
1161 EObject current = null;
1162
1163 Token lv_error_0_0=null;
1164 Token otherlv_1=null;
1165 Token otherlv_2=null;
1166 Token lv_name_3_0=null;
1167 Token otherlv_4=null;
1168 Token otherlv_6=null;
1169 Token otherlv_8=null;
1170 Token otherlv_9=null;
1171 Token otherlv_11=null;
1172 Token otherlv_13=null;
1173 EObject lv_parameters_5_0 = null;
1174
1175 EObject lv_parameters_7_0 = null;
1176
1177 EObject lv_bodies_10_0 = null;
1178
1179 EObject lv_bodies_12_0 = null;
1180
1181
1182
1183 enterRule();
1184
1185 try {
1186 // InternalProblem.g:460: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= '.' ) )
1187 // InternalProblem.g:461: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= '.' )
1188 {
1189 // InternalProblem.g:461: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= '.' )
1190 // InternalProblem.g:462: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= '.'
1191 {
1192 // InternalProblem.g:462:3: ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' )
1193 int alt12=2;
1194 int LA12_0 = input.LA(1);
1195
1196 if ( (LA12_0==21) ) {
1197 alt12=1;
1198 }
1199 else if ( (LA12_0==22) ) {
1200 alt12=2;
1201 }
1202 else {
1203 NoViableAltException nvae =
1204 new NoViableAltException("", 12, 0, input);
1205
1206 throw nvae;
1207 }
1208 switch (alt12) {
1209 case 1 :
1210 // InternalProblem.g:463:4: ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? )
1211 {
1212 // InternalProblem.g:463:4: ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? )
1213 // InternalProblem.g:464:5: ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )?
1214 {
1215 // InternalProblem.g:464:5: ( (lv_error_0_0= 'error' ) )
1216 // InternalProblem.g:465:6: (lv_error_0_0= 'error' )
1217 {
1218 // InternalProblem.g:465:6: (lv_error_0_0= 'error' )
1219 // InternalProblem.g:466:7: lv_error_0_0= 'error'
1220 {
1221 lv_error_0_0=(Token)match(input,21,FOLLOW_16);
1222
1223 newLeafNode(lv_error_0_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0());
1224
1225
1226 if (current==null) {
1227 current = createModelElement(grammarAccess.getPredicateDefinitionRule());
1228 }
1229 setWithLastConsumed(current, "error", lv_error_0_0 != null, "error");
1230
1231
1232 }
1233
1234
1235 }
1236
1237 // InternalProblem.g:478:5: (otherlv_1= 'pred' )?
1238 int alt11=2;
1239 int LA11_0 = input.LA(1);
1240
1241 if ( (LA11_0==22) ) {
1242 alt11=1;
1243 }
1244 switch (alt11) {
1245 case 1 :
1246 // InternalProblem.g:479:6: otherlv_1= 'pred'
1247 {
1248 otherlv_1=(Token)match(input,22,FOLLOW_5);
1249
1250 newLeafNode(otherlv_1, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1());
1251
1252
1253 }
1254 break;
1255
1256 }
1257
1258
1259 }
1260
1261
1262 }
1263 break;
1264 case 2 :
1265 // InternalProblem.g:486:4: otherlv_2= 'pred'
1266 {
1267 otherlv_2=(Token)match(input,22,FOLLOW_5);
1268
1269 newLeafNode(otherlv_2, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_1());
1270
1271
1272 }
1273 break;
1274
1275 }
1276
1277 // InternalProblem.g:491:3: ( (lv_name_3_0= RULE_ID ) )
1278 // InternalProblem.g:492:4: (lv_name_3_0= RULE_ID )
1279 {
1280 // InternalProblem.g:492:4: (lv_name_3_0= RULE_ID )
1281 // InternalProblem.g:493:5: lv_name_3_0= RULE_ID
1282 {
1283 lv_name_3_0=(Token)match(input,RULE_ID,FOLLOW_17);
1284
1285 newLeafNode(lv_name_3_0, grammarAccess.getPredicateDefinitionAccess().getNameIDTerminalRuleCall_1_0());
1286
1287
1288 if (current==null) {
1289 current = createModelElement(grammarAccess.getPredicateDefinitionRule());
1290 }
1291 setWithLastConsumed(
1292 current,
1293 "name",
1294 lv_name_3_0,
1295 "org.eclipse.xtext.common.Terminals.ID");
1296
1297
1298 }
1299
1300
1301 }
1302
1303 otherlv_4=(Token)match(input,23,FOLLOW_18);
1304
1305 newLeafNode(otherlv_4, grammarAccess.getPredicateDefinitionAccess().getLeftParenthesisKeyword_2());
1306
1307 // InternalProblem.g:513:3: ( ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )* )?
1308 int alt14=2;
1309 int LA14_0 = input.LA(1);
1310
1311 if ( (LA14_0==RULE_ID) ) {
1312 alt14=1;
1313 }
1314 switch (alt14) {
1315 case 1 :
1316 // InternalProblem.g:514:4: ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )*
1317 {
1318 // InternalProblem.g:514:4: ( (lv_parameters_5_0= ruleParameter ) )
1319 // InternalProblem.g:515:5: (lv_parameters_5_0= ruleParameter )
1320 {
1321 // InternalProblem.g:515:5: (lv_parameters_5_0= ruleParameter )
1322 // InternalProblem.g:516:6: lv_parameters_5_0= ruleParameter
1323 {
1324
1325 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_0_0());
1326
1327 pushFollow(FOLLOW_19);
1328 lv_parameters_5_0=ruleParameter();
1329
1330 state._fsp--;
1331
1332
1333 if (current==null) {
1334 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1335 }
1336 add(
1337 current,
1338 "parameters",
1339 lv_parameters_5_0,
1340 "org.eclipse.viatra.solver.language.Problem.Parameter");
1341 afterParserOrEnumRuleCall();
1342
1343
1344 }
1345
1346
1347 }
1348
1349 // InternalProblem.g:533:4: (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )*
1350 loop13:
1351 do {
1352 int alt13=2;
1353 int LA13_0 = input.LA(1);
1354
1355 if ( (LA13_0==15) ) {
1356 alt13=1;
1357 }
1358
1359
1360 switch (alt13) {
1361 case 1 :
1362 // InternalProblem.g:534:5: otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) )
1363 {
1364 otherlv_6=(Token)match(input,15,FOLLOW_5);
1365
1366 newLeafNode(otherlv_6, grammarAccess.getPredicateDefinitionAccess().getCommaKeyword_3_1_0());
1367
1368 // InternalProblem.g:538:5: ( (lv_parameters_7_0= ruleParameter ) )
1369 // InternalProblem.g:539:6: (lv_parameters_7_0= ruleParameter )
1370 {
1371 // InternalProblem.g:539:6: (lv_parameters_7_0= ruleParameter )
1372 // InternalProblem.g:540:7: lv_parameters_7_0= ruleParameter
1373 {
1374
1375 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_1_1_0());
1376
1377 pushFollow(FOLLOW_19);
1378 lv_parameters_7_0=ruleParameter();
1379
1380 state._fsp--;
1381
1382
1383 if (current==null) {
1384 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1385 }
1386 add(
1387 current,
1388 "parameters",
1389 lv_parameters_7_0,
1390 "org.eclipse.viatra.solver.language.Problem.Parameter");
1391 afterParserOrEnumRuleCall();
1392
1393
1394 }
1395
1396
1397 }
1398
1399
1400 }
1401 break;
1402
1403 default :
1404 break loop13;
1405 }
1406 } while (true);
1407
1408
1409 }
1410 break;
1411
1412 }
1413
1414 otherlv_8=(Token)match(input,24,FOLLOW_20);
1415
1416 newLeafNode(otherlv_8, grammarAccess.getPredicateDefinitionAccess().getRightParenthesisKeyword_4());
1417
1418 // InternalProblem.g:563:3: (otherlv_9= ':=' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )* )?
1419 int alt16=2;
1420 int LA16_0 = input.LA(1);
1421
1422 if ( (LA16_0==25) ) {
1423 alt16=1;
1424 }
1425 switch (alt16) {
1426 case 1 :
1427 // InternalProblem.g:564:4: otherlv_9= ':=' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )*
1428 {
1429 otherlv_9=(Token)match(input,25,FOLLOW_21);
1430
1431 newLeafNode(otherlv_9, grammarAccess.getPredicateDefinitionAccess().getColonEqualsSignKeyword_5_0());
1432
1433 // InternalProblem.g:568:4: ( (lv_bodies_10_0= ruleConjunction ) )
1434 // InternalProblem.g:569:5: (lv_bodies_10_0= ruleConjunction )
1435 {
1436 // InternalProblem.g:569:5: (lv_bodies_10_0= ruleConjunction )
1437 // InternalProblem.g:570:6: lv_bodies_10_0= ruleConjunction
1438 {
1439
1440 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_1_0());
1441
1442 pushFollow(FOLLOW_22);
1443 lv_bodies_10_0=ruleConjunction();
1444
1445 state._fsp--;
1446
1447
1448 if (current==null) {
1449 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1450 }
1451 add(
1452 current,
1453 "bodies",
1454 lv_bodies_10_0,
1455 "org.eclipse.viatra.solver.language.Problem.Conjunction");
1456 afterParserOrEnumRuleCall();
1457
1458
1459 }
1460
1461
1462 }
1463
1464 // InternalProblem.g:587:4: (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )*
1465 loop15:
1466 do {
1467 int alt15=2;
1468 int LA15_0 = input.LA(1);
1469
1470 if ( (LA15_0==26) ) {
1471 alt15=1;
1472 }
1473
1474
1475 switch (alt15) {
1476 case 1 :
1477 // InternalProblem.g:588:5: otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) )
1478 {
1479 otherlv_11=(Token)match(input,26,FOLLOW_21);
1480
1481 newLeafNode(otherlv_11, grammarAccess.getPredicateDefinitionAccess().getSemicolonKeyword_5_2_0());
1482
1483 // InternalProblem.g:592:5: ( (lv_bodies_12_0= ruleConjunction ) )
1484 // InternalProblem.g:593:6: (lv_bodies_12_0= ruleConjunction )
1485 {
1486 // InternalProblem.g:593:6: (lv_bodies_12_0= ruleConjunction )
1487 // InternalProblem.g:594:7: lv_bodies_12_0= ruleConjunction
1488 {
1489
1490 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_2_1_0());
1491
1492 pushFollow(FOLLOW_22);
1493 lv_bodies_12_0=ruleConjunction();
1494
1495 state._fsp--;
1496
1497
1498 if (current==null) {
1499 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1500 }
1501 add(
1502 current,
1503 "bodies",
1504 lv_bodies_12_0,
1505 "org.eclipse.viatra.solver.language.Problem.Conjunction");
1506 afterParserOrEnumRuleCall();
1507
1508
1509 }
1510
1511
1512 }
1513
1514
1515 }
1516 break;
1517
1518 default :
1519 break loop15;
1520 }
1521 } while (true);
1522
1523
1524 }
1525 break;
1526
1527 }
1528
1529 otherlv_13=(Token)match(input,17,FOLLOW_2);
1530
1531 newLeafNode(otherlv_13, grammarAccess.getPredicateDefinitionAccess().getFullStopKeyword_6());
1532
1533
1534 }
1535
1536
1537 }
1538
1539
1540 leaveRule();
1541
1542 }
1543
1544 catch (RecognitionException re) {
1545 recover(input,re);
1546 appendSkippedTokens();
1547 }
1548 finally {
1549 }
1550 return current;
1551 }
1552 // $ANTLR end "rulePredicateDefinition"
1553
1554
1555 // $ANTLR start "entryRuleParameter"
1556 // InternalProblem.g:621:1: entryRuleParameter returns [EObject current=null] : iv_ruleParameter= ruleParameter EOF ;
1557 public final EObject entryRuleParameter() throws RecognitionException {
1558 EObject current = null;
1559
1560 EObject iv_ruleParameter = null;
1561
1562
1563 try {
1564 // InternalProblem.g:621:50: (iv_ruleParameter= ruleParameter EOF )
1565 // InternalProblem.g:622:2: iv_ruleParameter= ruleParameter EOF
1566 {
1567 newCompositeNode(grammarAccess.getParameterRule());
1568 pushFollow(FOLLOW_1);
1569 iv_ruleParameter=ruleParameter();
1570
1571 state._fsp--;
1572
1573 current =iv_ruleParameter;
1574 match(input,EOF,FOLLOW_2);
1575
1576 }
1577
1578 }
1579
1580 catch (RecognitionException re) {
1581 recover(input,re);
1582 appendSkippedTokens();
1583 }
1584 finally {
1585 }
1586 return current;
1587 }
1588 // $ANTLR end "entryRuleParameter"
1589
1590
1591 // $ANTLR start "ruleParameter"
1592 // InternalProblem.g:628:1: ruleParameter returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) ( (lv_name_1_0= RULE_ID ) ) ) ;
1593 public final EObject ruleParameter() throws RecognitionException {
1594 EObject current = null;
1595
1596 Token otherlv_0=null;
1597 Token lv_name_1_0=null;
1598
1599
1600 enterRule();
1601
1602 try {
1603 // InternalProblem.g:634:2: ( ( ( (otherlv_0= RULE_ID ) ) ( (lv_name_1_0= RULE_ID ) ) ) )
1604 // InternalProblem.g:635:2: ( ( (otherlv_0= RULE_ID ) ) ( (lv_name_1_0= RULE_ID ) ) )
1605 {
1606 // InternalProblem.g:635:2: ( ( (otherlv_0= RULE_ID ) ) ( (lv_name_1_0= RULE_ID ) ) )
1607 // InternalProblem.g:636:3: ( (otherlv_0= RULE_ID ) ) ( (lv_name_1_0= RULE_ID ) )
1608 {
1609 // InternalProblem.g:636:3: ( (otherlv_0= RULE_ID ) )
1610 // InternalProblem.g:637:4: (otherlv_0= RULE_ID )
1611 {
1612 // InternalProblem.g:637:4: (otherlv_0= RULE_ID )
1613 // InternalProblem.g:638:5: otherlv_0= RULE_ID
1614 {
1615
1616 if (current==null) {
1617 current = createModelElement(grammarAccess.getParameterRule());
1618 }
1619
1620 otherlv_0=(Token)match(input,RULE_ID,FOLLOW_5);
1621
1622 newLeafNode(otherlv_0, grammarAccess.getParameterAccess().getParameterTypeClassDeclarationCrossReference_0_0());
1623
1624
1625 }
1626
1627
1628 }
1629
1630 // InternalProblem.g:649:3: ( (lv_name_1_0= RULE_ID ) )
1631 // InternalProblem.g:650:4: (lv_name_1_0= RULE_ID )
1632 {
1633 // InternalProblem.g:650:4: (lv_name_1_0= RULE_ID )
1634 // InternalProblem.g:651:5: lv_name_1_0= RULE_ID
1635 {
1636 lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_2);
1637
1638 newLeafNode(lv_name_1_0, grammarAccess.getParameterAccess().getNameIDTerminalRuleCall_1_0());
1639
1640
1641 if (current==null) {
1642 current = createModelElement(grammarAccess.getParameterRule());
1643 }
1644 setWithLastConsumed(
1645 current,
1646 "name",
1647 lv_name_1_0,
1648 "org.eclipse.xtext.common.Terminals.ID");
1649
1650
1651 }
1652
1653
1654 }
1655
1656
1657 }
1658
1659
1660 }
1661
1662
1663 leaveRule();
1664
1665 }
1666
1667 catch (RecognitionException re) {
1668 recover(input,re);
1669 appendSkippedTokens();
1670 }
1671 finally {
1672 }
1673 return current;
1674 }
1675 // $ANTLR end "ruleParameter"
1676
1677
1678 // $ANTLR start "entryRuleConjunction"
1679 // InternalProblem.g:671:1: entryRuleConjunction returns [EObject current=null] : iv_ruleConjunction= ruleConjunction EOF ;
1680 public final EObject entryRuleConjunction() throws RecognitionException {
1681 EObject current = null;
1682
1683 EObject iv_ruleConjunction = null;
1684
1685
1686 try {
1687 // InternalProblem.g:671:52: (iv_ruleConjunction= ruleConjunction EOF )
1688 // InternalProblem.g:672:2: iv_ruleConjunction= ruleConjunction EOF
1689 {
1690 newCompositeNode(grammarAccess.getConjunctionRule());
1691 pushFollow(FOLLOW_1);
1692 iv_ruleConjunction=ruleConjunction();
1693
1694 state._fsp--;
1695
1696 current =iv_ruleConjunction;
1697 match(input,EOF,FOLLOW_2);
1698
1699 }
1700
1701 }
1702
1703 catch (RecognitionException re) {
1704 recover(input,re);
1705 appendSkippedTokens();
1706 }
1707 finally {
1708 }
1709 return current;
1710 }
1711 // $ANTLR end "entryRuleConjunction"
1712
1713
1714 // $ANTLR start "ruleConjunction"
1715 // InternalProblem.g:678:1: ruleConjunction returns [EObject current=null] : ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* ) ;
1716 public final EObject ruleConjunction() throws RecognitionException {
1717 EObject current = null;
1718
1719 Token otherlv_1=null;
1720 EObject lv_literals_0_0 = null;
1721
1722 EObject lv_literals_2_0 = null;
1723
1724
1725
1726 enterRule();
1727
1728 try {
1729 // InternalProblem.g:684:2: ( ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* ) )
1730 // InternalProblem.g:685:2: ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* )
1731 {
1732 // InternalProblem.g:685:2: ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* )
1733 // InternalProblem.g:686:3: ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )*
1734 {
1735 // InternalProblem.g:686:3: ( (lv_literals_0_0= ruleLiteral ) )
1736 // InternalProblem.g:687:4: (lv_literals_0_0= ruleLiteral )
1737 {
1738 // InternalProblem.g:687:4: (lv_literals_0_0= ruleLiteral )
1739 // InternalProblem.g:688:5: lv_literals_0_0= ruleLiteral
1740 {
1741
1742 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_0_0());
1743
1744 pushFollow(FOLLOW_23);
1745 lv_literals_0_0=ruleLiteral();
1746
1747 state._fsp--;
1748
1749
1750 if (current==null) {
1751 current = createModelElementForParent(grammarAccess.getConjunctionRule());
1752 }
1753 add(
1754 current,
1755 "literals",
1756 lv_literals_0_0,
1757 "org.eclipse.viatra.solver.language.Problem.Literal");
1758 afterParserOrEnumRuleCall();
1759
1760
1761 }
1762
1763
1764 }
1765
1766 // InternalProblem.g:705:3: (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )*
1767 loop17:
1768 do {
1769 int alt17=2;
1770 int LA17_0 = input.LA(1);
1771
1772 if ( (LA17_0==15) ) {
1773 alt17=1;
1774 }
1775
1776
1777 switch (alt17) {
1778 case 1 :
1779 // InternalProblem.g:706:4: otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) )
1780 {
1781 otherlv_1=(Token)match(input,15,FOLLOW_21);
1782
1783 newLeafNode(otherlv_1, grammarAccess.getConjunctionAccess().getCommaKeyword_1_0());
1784
1785 // InternalProblem.g:710:4: ( (lv_literals_2_0= ruleLiteral ) )
1786 // InternalProblem.g:711:5: (lv_literals_2_0= ruleLiteral )
1787 {
1788 // InternalProblem.g:711:5: (lv_literals_2_0= ruleLiteral )
1789 // InternalProblem.g:712:6: lv_literals_2_0= ruleLiteral
1790 {
1791
1792 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_1_1_0());
1793
1794 pushFollow(FOLLOW_23);
1795 lv_literals_2_0=ruleLiteral();
1796
1797 state._fsp--;
1798
1799
1800 if (current==null) {
1801 current = createModelElementForParent(grammarAccess.getConjunctionRule());
1802 }
1803 add(
1804 current,
1805 "literals",
1806 lv_literals_2_0,
1807 "org.eclipse.viatra.solver.language.Problem.Literal");
1808 afterParserOrEnumRuleCall();
1809
1810
1811 }
1812
1813
1814 }
1815
1816
1817 }
1818 break;
1819
1820 default :
1821 break loop17;
1822 }
1823 } while (true);
1824
1825
1826 }
1827
1828
1829 }
1830
1831
1832 leaveRule();
1833
1834 }
1835
1836 catch (RecognitionException re) {
1837 recover(input,re);
1838 appendSkippedTokens();
1839 }
1840 finally {
1841 }
1842 return current;
1843 }
1844 // $ANTLR end "ruleConjunction"
1845
1846
1847 // $ANTLR start "entryRuleLiteral"
1848 // InternalProblem.g:734:1: entryRuleLiteral returns [EObject current=null] : iv_ruleLiteral= ruleLiteral EOF ;
1849 public final EObject entryRuleLiteral() throws RecognitionException {
1850 EObject current = null;
1851
1852 EObject iv_ruleLiteral = null;
1853
1854
1855 try {
1856 // InternalProblem.g:734:48: (iv_ruleLiteral= ruleLiteral EOF )
1857 // InternalProblem.g:735:2: iv_ruleLiteral= ruleLiteral EOF
1858 {
1859 newCompositeNode(grammarAccess.getLiteralRule());
1860 pushFollow(FOLLOW_1);
1861 iv_ruleLiteral=ruleLiteral();
1862
1863 state._fsp--;
1864
1865 current =iv_ruleLiteral;
1866 match(input,EOF,FOLLOW_2);
1867
1868 }
1869
1870 }
1871
1872 catch (RecognitionException re) {
1873 recover(input,re);
1874 appendSkippedTokens();
1875 }
1876 finally {
1877 }
1878 return current;
1879 }
1880 // $ANTLR end "entryRuleLiteral"
1881
1882
1883 // $ANTLR start "ruleLiteral"
1884 // InternalProblem.g:741:1: ruleLiteral returns [EObject current=null] : (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral ) ;
1885 public final EObject ruleLiteral() throws RecognitionException {
1886 EObject current = null;
1887
1888 EObject this_Atom_0 = null;
1889
1890 EObject this_NegativeLiteral_1 = null;
1891
1892
1893
1894 enterRule();
1895
1896 try {
1897 // InternalProblem.g:747:2: ( (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral ) )
1898 // InternalProblem.g:748:2: (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral )
1899 {
1900 // InternalProblem.g:748:2: (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral )
1901 int alt18=2;
1902 int LA18_0 = input.LA(1);
1903
1904 if ( (LA18_0==RULE_ID) ) {
1905 alt18=1;
1906 }
1907 else if ( (LA18_0==27) ) {
1908 alt18=2;
1909 }
1910 else {
1911 NoViableAltException nvae =
1912 new NoViableAltException("", 18, 0, input);
1913
1914 throw nvae;
1915 }
1916 switch (alt18) {
1917 case 1 :
1918 // InternalProblem.g:749:3: this_Atom_0= ruleAtom
1919 {
1920
1921 newCompositeNode(grammarAccess.getLiteralAccess().getAtomParserRuleCall_0());
1922
1923 pushFollow(FOLLOW_2);
1924 this_Atom_0=ruleAtom();
1925
1926 state._fsp--;
1927
1928
1929 current = this_Atom_0;
1930 afterParserOrEnumRuleCall();
1931
1932
1933 }
1934 break;
1935 case 2 :
1936 // InternalProblem.g:758:3: this_NegativeLiteral_1= ruleNegativeLiteral
1937 {
1938
1939 newCompositeNode(grammarAccess.getLiteralAccess().getNegativeLiteralParserRuleCall_1());
1940
1941 pushFollow(FOLLOW_2);
1942 this_NegativeLiteral_1=ruleNegativeLiteral();
1943
1944 state._fsp--;
1945
1946
1947 current = this_NegativeLiteral_1;
1948 afterParserOrEnumRuleCall();
1949
1950
1951 }
1952 break;
1953
1954 }
1955
1956
1957 }
1958
1959
1960 leaveRule();
1961
1962 }
1963
1964 catch (RecognitionException re) {
1965 recover(input,re);
1966 appendSkippedTokens();
1967 }
1968 finally {
1969 }
1970 return current;
1971 }
1972 // $ANTLR end "ruleLiteral"
1973
1974
1975 // $ANTLR start "entryRuleNegativeLiteral"
1976 // InternalProblem.g:770:1: entryRuleNegativeLiteral returns [EObject current=null] : iv_ruleNegativeLiteral= ruleNegativeLiteral EOF ;
1977 public final EObject entryRuleNegativeLiteral() throws RecognitionException {
1978 EObject current = null;
1979
1980 EObject iv_ruleNegativeLiteral = null;
1981
1982
1983 try {
1984 // InternalProblem.g:770:56: (iv_ruleNegativeLiteral= ruleNegativeLiteral EOF )
1985 // InternalProblem.g:771:2: iv_ruleNegativeLiteral= ruleNegativeLiteral EOF
1986 {
1987 newCompositeNode(grammarAccess.getNegativeLiteralRule());
1988 pushFollow(FOLLOW_1);
1989 iv_ruleNegativeLiteral=ruleNegativeLiteral();
1990
1991 state._fsp--;
1992
1993 current =iv_ruleNegativeLiteral;
1994 match(input,EOF,FOLLOW_2);
1995
1996 }
1997
1998 }
1999
2000 catch (RecognitionException re) {
2001 recover(input,re);
2002 appendSkippedTokens();
2003 }
2004 finally {
2005 }
2006 return current;
2007 }
2008 // $ANTLR end "entryRuleNegativeLiteral"
2009
2010
2011 // $ANTLR start "ruleNegativeLiteral"
2012 // InternalProblem.g:777:1: ruleNegativeLiteral returns [EObject current=null] : (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) ) ;
2013 public final EObject ruleNegativeLiteral() throws RecognitionException {
2014 EObject current = null;
2015
2016 Token otherlv_0=null;
2017 EObject lv_atom_1_0 = null;
2018
2019
2020
2021 enterRule();
2022
2023 try {
2024 // InternalProblem.g:783:2: ( (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) ) )
2025 // InternalProblem.g:784:2: (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) )
2026 {
2027 // InternalProblem.g:784:2: (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) )
2028 // InternalProblem.g:785:3: otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) )
2029 {
2030 otherlv_0=(Token)match(input,27,FOLLOW_5);
2031
2032 newLeafNode(otherlv_0, grammarAccess.getNegativeLiteralAccess().getExclamationMarkKeyword_0());
2033
2034 // InternalProblem.g:789:3: ( (lv_atom_1_0= ruleAtom ) )
2035 // InternalProblem.g:790:4: (lv_atom_1_0= ruleAtom )
2036 {
2037 // InternalProblem.g:790:4: (lv_atom_1_0= ruleAtom )
2038 // InternalProblem.g:791:5: lv_atom_1_0= ruleAtom
2039 {
2040
2041 newCompositeNode(grammarAccess.getNegativeLiteralAccess().getAtomAtomParserRuleCall_1_0());
2042
2043 pushFollow(FOLLOW_2);
2044 lv_atom_1_0=ruleAtom();
2045
2046 state._fsp--;
2047
2048
2049 if (current==null) {
2050 current = createModelElementForParent(grammarAccess.getNegativeLiteralRule());
2051 }
2052 set(
2053 current,
2054 "atom",
2055 lv_atom_1_0,
2056 "org.eclipse.viatra.solver.language.Problem.Atom");
2057 afterParserOrEnumRuleCall();
2058
2059
2060 }
2061
2062
2063 }
2064
2065
2066 }
2067
2068
2069 }
2070
2071
2072 leaveRule();
2073
2074 }
2075
2076 catch (RecognitionException re) {
2077 recover(input,re);
2078 appendSkippedTokens();
2079 }
2080 finally {
2081 }
2082 return current;
2083 }
2084 // $ANTLR end "ruleNegativeLiteral"
2085
2086
2087 // $ANTLR start "entryRuleAtom"
2088 // InternalProblem.g:812:1: entryRuleAtom returns [EObject current=null] : iv_ruleAtom= ruleAtom EOF ;
2089 public final EObject entryRuleAtom() throws RecognitionException {
2090 EObject current = null;
2091
2092 EObject iv_ruleAtom = null;
2093
2094
2095 try {
2096 // InternalProblem.g:812:45: (iv_ruleAtom= ruleAtom EOF )
2097 // InternalProblem.g:813:2: iv_ruleAtom= ruleAtom EOF
2098 {
2099 newCompositeNode(grammarAccess.getAtomRule());
2100 pushFollow(FOLLOW_1);
2101 iv_ruleAtom=ruleAtom();
2102
2103 state._fsp--;
2104
2105 current =iv_ruleAtom;
2106 match(input,EOF,FOLLOW_2);
2107
2108 }
2109
2110 }
2111
2112 catch (RecognitionException re) {
2113 recover(input,re);
2114 appendSkippedTokens();
2115 }
2116 finally {
2117 }
2118 return current;
2119 }
2120 // $ANTLR end "entryRuleAtom"
2121
2122
2123 // $ANTLR start "ruleAtom"
2124 // InternalProblem.g:819:1: ruleAtom returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (otherlv_3= RULE_ID ) ) (otherlv_4= ',' ( (otherlv_5= RULE_ID ) ) )* )? otherlv_6= ')' ) ;
2125 public final EObject ruleAtom() throws RecognitionException {
2126 EObject current = null;
2127
2128 Token lv_transitiveClosure_1_0=null;
2129 Token otherlv_2=null;
2130 Token otherlv_3=null;
2131 Token otherlv_4=null;
2132 Token otherlv_5=null;
2133 Token otherlv_6=null;
2134
2135
2136 enterRule();
2137
2138 try {
2139 // InternalProblem.g:825:2: ( ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (otherlv_3= RULE_ID ) ) (otherlv_4= ',' ( (otherlv_5= RULE_ID ) ) )* )? otherlv_6= ')' ) )
2140 // InternalProblem.g:826:2: ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (otherlv_3= RULE_ID ) ) (otherlv_4= ',' ( (otherlv_5= RULE_ID ) ) )* )? otherlv_6= ')' )
2141 {
2142 // InternalProblem.g:826:2: ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (otherlv_3= RULE_ID ) ) (otherlv_4= ',' ( (otherlv_5= RULE_ID ) ) )* )? otherlv_6= ')' )
2143 // InternalProblem.g:827:3: ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (otherlv_3= RULE_ID ) ) (otherlv_4= ',' ( (otherlv_5= RULE_ID ) ) )* )? otherlv_6= ')'
2144 {
2145 // InternalProblem.g:827:3: ( ( ruleQualifiedName ) )
2146 // InternalProblem.g:828:4: ( ruleQualifiedName )
2147 {
2148 // InternalProblem.g:828:4: ( ruleQualifiedName )
2149 // InternalProblem.g:829:5: ruleQualifiedName
2150 {
2151
2152 if (current==null) {
2153 current = createModelElement(grammarAccess.getAtomRule());
2154 }
2155
2156
2157 newCompositeNode(grammarAccess.getAtomAccess().getRelationRelationCrossReference_0_0());
2158
2159 pushFollow(FOLLOW_24);
2160 ruleQualifiedName();
2161
2162 state._fsp--;
2163
2164
2165 afterParserOrEnumRuleCall();
2166
2167
2168 }
2169
2170
2171 }
2172
2173 // InternalProblem.g:843:3: ( (lv_transitiveClosure_1_0= '+' ) )?
2174 int alt19=2;
2175 int LA19_0 = input.LA(1);
2176
2177 if ( (LA19_0==28) ) {
2178 alt19=1;
2179 }
2180 switch (alt19) {
2181 case 1 :
2182 // InternalProblem.g:844:4: (lv_transitiveClosure_1_0= '+' )
2183 {
2184 // InternalProblem.g:844:4: (lv_transitiveClosure_1_0= '+' )
2185 // InternalProblem.g:845:5: lv_transitiveClosure_1_0= '+'
2186 {
2187 lv_transitiveClosure_1_0=(Token)match(input,28,FOLLOW_17);
2188
2189 newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0());
2190
2191
2192 if (current==null) {
2193 current = createModelElement(grammarAccess.getAtomRule());
2194 }
2195 setWithLastConsumed(current, "transitiveClosure", lv_transitiveClosure_1_0 != null, "+");
2196
2197
2198 }
2199
2200
2201 }
2202 break;
2203
2204 }
2205
2206 otherlv_2=(Token)match(input,23,FOLLOW_18);
2207
2208 newLeafNode(otherlv_2, grammarAccess.getAtomAccess().getLeftParenthesisKeyword_2());
2209
2210 // InternalProblem.g:861:3: ( ( (otherlv_3= RULE_ID ) ) (otherlv_4= ',' ( (otherlv_5= RULE_ID ) ) )* )?
2211 int alt21=2;
2212 int LA21_0 = input.LA(1);
2213
2214 if ( (LA21_0==RULE_ID) ) {
2215 alt21=1;
2216 }
2217 switch (alt21) {
2218 case 1 :
2219 // InternalProblem.g:862:4: ( (otherlv_3= RULE_ID ) ) (otherlv_4= ',' ( (otherlv_5= RULE_ID ) ) )*
2220 {
2221 // InternalProblem.g:862:4: ( (otherlv_3= RULE_ID ) )
2222 // InternalProblem.g:863:5: (otherlv_3= RULE_ID )
2223 {
2224 // InternalProblem.g:863:5: (otherlv_3= RULE_ID )
2225 // InternalProblem.g:864:6: otherlv_3= RULE_ID
2226 {
2227
2228 if (current==null) {
2229 current = createModelElement(grammarAccess.getAtomRule());
2230 }
2231
2232 otherlv_3=(Token)match(input,RULE_ID,FOLLOW_19);
2233
2234 newLeafNode(otherlv_3, grammarAccess.getAtomAccess().getArgumentsVariableCrossReference_3_0_0());
2235
2236
2237 }
2238
2239
2240 }
2241
2242 // InternalProblem.g:875:4: (otherlv_4= ',' ( (otherlv_5= RULE_ID ) ) )*
2243 loop20:
2244 do {
2245 int alt20=2;
2246 int LA20_0 = input.LA(1);
2247
2248 if ( (LA20_0==15) ) {
2249 alt20=1;
2250 }
2251
2252
2253 switch (alt20) {
2254 case 1 :
2255 // InternalProblem.g:876:5: otherlv_4= ',' ( (otherlv_5= RULE_ID ) )
2256 {
2257 otherlv_4=(Token)match(input,15,FOLLOW_5);
2258
2259 newLeafNode(otherlv_4, grammarAccess.getAtomAccess().getCommaKeyword_3_1_0());
2260
2261 // InternalProblem.g:880:5: ( (otherlv_5= RULE_ID ) )
2262 // InternalProblem.g:881:6: (otherlv_5= RULE_ID )
2263 {
2264 // InternalProblem.g:881:6: (otherlv_5= RULE_ID )
2265 // InternalProblem.g:882:7: otherlv_5= RULE_ID
2266 {
2267
2268 if (current==null) {
2269 current = createModelElement(grammarAccess.getAtomRule());
2270 }
2271
2272 otherlv_5=(Token)match(input,RULE_ID,FOLLOW_19);
2273
2274 newLeafNode(otherlv_5, grammarAccess.getAtomAccess().getArgumentsVariableCrossReference_3_1_1_0());
2275
2276
2277 }
2278
2279
2280 }
2281
2282
2283 }
2284 break;
2285
2286 default :
2287 break loop20;
2288 }
2289 } while (true);
2290
2291
2292 }
2293 break;
2294
2295 }
2296
2297 otherlv_6=(Token)match(input,24,FOLLOW_2);
2298
2299 newLeafNode(otherlv_6, grammarAccess.getAtomAccess().getRightParenthesisKeyword_4());
2300
2301
2302 }
2303
2304
2305 }
2306
2307
2308 leaveRule();
2309
2310 }
2311
2312 catch (RecognitionException re) {
2313 recover(input,re);
2314 appendSkippedTokens();
2315 }
2316 finally {
2317 }
2318 return current;
2319 }
2320 // $ANTLR end "ruleAtom"
2321
2322
2323 // $ANTLR start "entryRuleAssertion"
2324 // InternalProblem.g:903:1: entryRuleAssertion returns [EObject current=null] : iv_ruleAssertion= ruleAssertion EOF ;
2325 public final EObject entryRuleAssertion() throws RecognitionException {
2326 EObject current = null;
2327
2328 EObject iv_ruleAssertion = null;
2329
2330
2331 try {
2332 // InternalProblem.g:903:50: (iv_ruleAssertion= ruleAssertion EOF )
2333 // InternalProblem.g:904:2: iv_ruleAssertion= ruleAssertion EOF
2334 {
2335 newCompositeNode(grammarAccess.getAssertionRule());
2336 pushFollow(FOLLOW_1);
2337 iv_ruleAssertion=ruleAssertion();
2338
2339 state._fsp--;
2340
2341 current =iv_ruleAssertion;
2342 match(input,EOF,FOLLOW_2);
2343
2344 }
2345
2346 }
2347
2348 catch (RecognitionException re) {
2349 recover(input,re);
2350 appendSkippedTokens();
2351 }
2352 finally {
2353 }
2354 return current;
2355 }
2356 // $ANTLR end "entryRuleAssertion"
2357
2358
2359 // $ANTLR start "ruleAssertion"
2360 // InternalProblem.g:910: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= '.' ) ;
2361 public final EObject ruleAssertion() throws RecognitionException {
2362 EObject current = null;
2363
2364 Token otherlv_1=null;
2365 Token otherlv_3=null;
2366 Token otherlv_5=null;
2367 Token otherlv_6=null;
2368 Token otherlv_10=null;
2369 Token otherlv_12=null;
2370 Token otherlv_14=null;
2371 Token otherlv_15=null;
2372 Enumerator lv_value_7_0 = null;
2373
2374 Enumerator lv_value_8_0 = null;
2375
2376
2377
2378 enterRule();
2379
2380 try {
2381 // InternalProblem.g:916: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= '.' ) )
2382 // InternalProblem.g:917: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= '.' )
2383 {
2384 // InternalProblem.g:917: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= '.' )
2385 // InternalProblem.g:918: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= '.'
2386 {
2387 // InternalProblem.g:918: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= ')' ) )
2388 int alt27=2;
2389 alt27 = dfa27.predict(input);
2390 switch (alt27) {
2391 case 1 :
2392 // InternalProblem.g:919:4: ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) )
2393 {
2394 // InternalProblem.g:919:4: ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) )
2395 // InternalProblem.g:920:5: ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) )
2396 {
2397 // InternalProblem.g:920:5: ( ( ruleQualifiedName ) )
2398 // InternalProblem.g:921:6: ( ruleQualifiedName )
2399 {
2400 // InternalProblem.g:921:6: ( ruleQualifiedName )
2401 // InternalProblem.g:922:7: ruleQualifiedName
2402 {
2403
2404 if (current==null) {
2405 current = createModelElement(grammarAccess.getAssertionRule());
2406 }
2407
2408
2409 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_0_0_0());
2410
2411 pushFollow(FOLLOW_17);
2412 ruleQualifiedName();
2413
2414 state._fsp--;
2415
2416
2417 afterParserOrEnumRuleCall();
2418
2419
2420 }
2421
2422
2423 }
2424
2425 otherlv_1=(Token)match(input,23,FOLLOW_18);
2426
2427 newLeafNode(otherlv_1, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_0_1());
2428
2429 // InternalProblem.g:940:5: ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )?
2430 int alt23=2;
2431 int LA23_0 = input.LA(1);
2432
2433 if ( (LA23_0==RULE_ID) ) {
2434 alt23=1;
2435 }
2436 switch (alt23) {
2437 case 1 :
2438 // InternalProblem.g:941:6: ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )*
2439 {
2440 // InternalProblem.g:941:6: ( ( ruleQualifiedName ) )
2441 // InternalProblem.g:942:7: ( ruleQualifiedName )
2442 {
2443 // InternalProblem.g:942:7: ( ruleQualifiedName )
2444 // InternalProblem.g:943:8: ruleQualifiedName
2445 {
2446
2447 if (current==null) {
2448 current = createModelElement(grammarAccess.getAssertionRule());
2449 }
2450
2451
2452 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_0_0());
2453
2454 pushFollow(FOLLOW_19);
2455 ruleQualifiedName();
2456
2457 state._fsp--;
2458
2459
2460 afterParserOrEnumRuleCall();
2461
2462
2463 }
2464
2465
2466 }
2467
2468 // InternalProblem.g:957:6: (otherlv_3= ',' ( ( ruleQualifiedName ) ) )*
2469 loop22:
2470 do {
2471 int alt22=2;
2472 int LA22_0 = input.LA(1);
2473
2474 if ( (LA22_0==15) ) {
2475 alt22=1;
2476 }
2477
2478
2479 switch (alt22) {
2480 case 1 :
2481 // InternalProblem.g:958:7: otherlv_3= ',' ( ( ruleQualifiedName ) )
2482 {
2483 otherlv_3=(Token)match(input,15,FOLLOW_5);
2484
2485 newLeafNode(otherlv_3, grammarAccess.getAssertionAccess().getCommaKeyword_0_0_2_1_0());
2486
2487 // InternalProblem.g:962:7: ( ( ruleQualifiedName ) )
2488 // InternalProblem.g:963:8: ( ruleQualifiedName )
2489 {
2490 // InternalProblem.g:963:8: ( ruleQualifiedName )
2491 // InternalProblem.g:964:9: ruleQualifiedName
2492 {
2493
2494 if (current==null) {
2495 current = createModelElement(grammarAccess.getAssertionRule());
2496 }
2497
2498
2499 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_1_1_0());
2500
2501 pushFollow(FOLLOW_19);
2502 ruleQualifiedName();
2503
2504 state._fsp--;
2505
2506
2507 afterParserOrEnumRuleCall();
2508
2509
2510 }
2511
2512
2513 }
2514
2515
2516 }
2517 break;
2518
2519 default :
2520 break loop22;
2521 }
2522 } while (true);
2523
2524
2525 }
2526 break;
2527
2528 }
2529
2530 otherlv_5=(Token)match(input,24,FOLLOW_25);
2531
2532 newLeafNode(otherlv_5, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_0_3());
2533
2534 otherlv_6=(Token)match(input,29,FOLLOW_26);
2535
2536 newLeafNode(otherlv_6, grammarAccess.getAssertionAccess().getColonKeyword_0_0_4());
2537
2538 // InternalProblem.g:988:5: ( (lv_value_7_0= ruleLogicValue ) )
2539 // InternalProblem.g:989:6: (lv_value_7_0= ruleLogicValue )
2540 {
2541 // InternalProblem.g:989:6: (lv_value_7_0= ruleLogicValue )
2542 // InternalProblem.g:990:7: lv_value_7_0= ruleLogicValue
2543 {
2544
2545 newCompositeNode(grammarAccess.getAssertionAccess().getValueLogicValueEnumRuleCall_0_0_5_0());
2546
2547 pushFollow(FOLLOW_27);
2548 lv_value_7_0=ruleLogicValue();
2549
2550 state._fsp--;
2551
2552
2553 if (current==null) {
2554 current = createModelElementForParent(grammarAccess.getAssertionRule());
2555 }
2556 set(
2557 current,
2558 "value",
2559 lv_value_7_0,
2560 "org.eclipse.viatra.solver.language.Problem.LogicValue");
2561 afterParserOrEnumRuleCall();
2562
2563
2564 }
2565
2566
2567 }
2568
2569
2570 }
2571
2572
2573 }
2574 break;
2575 case 2 :
2576 // InternalProblem.g:1009:4: ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' )
2577 {
2578 // InternalProblem.g:1009:4: ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' )
2579 // InternalProblem.g:1010:5: ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')'
2580 {
2581 // InternalProblem.g:1010:5: ( (lv_value_8_0= ruleShortLogicValue ) )?
2582 int alt24=2;
2583 int LA24_0 = input.LA(1);
2584
2585 if ( (LA24_0==27||LA24_0==39) ) {
2586 alt24=1;
2587 }
2588 switch (alt24) {
2589 case 1 :
2590 // InternalProblem.g:1011:6: (lv_value_8_0= ruleShortLogicValue )
2591 {
2592 // InternalProblem.g:1011:6: (lv_value_8_0= ruleShortLogicValue )
2593 // InternalProblem.g:1012:7: lv_value_8_0= ruleShortLogicValue
2594 {
2595
2596 newCompositeNode(grammarAccess.getAssertionAccess().getValueShortLogicValueEnumRuleCall_0_1_0_0());
2597
2598 pushFollow(FOLLOW_5);
2599 lv_value_8_0=ruleShortLogicValue();
2600
2601 state._fsp--;
2602
2603
2604 if (current==null) {
2605 current = createModelElementForParent(grammarAccess.getAssertionRule());
2606 }
2607 set(
2608 current,
2609 "value",
2610 lv_value_8_0,
2611 "org.eclipse.viatra.solver.language.Problem.ShortLogicValue");
2612 afterParserOrEnumRuleCall();
2613
2614
2615 }
2616
2617
2618 }
2619 break;
2620
2621 }
2622
2623 // InternalProblem.g:1029:5: ( ( ruleQualifiedName ) )
2624 // InternalProblem.g:1030:6: ( ruleQualifiedName )
2625 {
2626 // InternalProblem.g:1030:6: ( ruleQualifiedName )
2627 // InternalProblem.g:1031:7: ruleQualifiedName
2628 {
2629
2630 if (current==null) {
2631 current = createModelElement(grammarAccess.getAssertionRule());
2632 }
2633
2634
2635 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_1_1_0());
2636
2637 pushFollow(FOLLOW_17);
2638 ruleQualifiedName();
2639
2640 state._fsp--;
2641
2642
2643 afterParserOrEnumRuleCall();
2644
2645
2646 }
2647
2648
2649 }
2650
2651 otherlv_10=(Token)match(input,23,FOLLOW_18);
2652
2653 newLeafNode(otherlv_10, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_1_2());
2654
2655 // InternalProblem.g:1049:5: ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )?
2656 int alt26=2;
2657 int LA26_0 = input.LA(1);
2658
2659 if ( (LA26_0==RULE_ID) ) {
2660 alt26=1;
2661 }
2662 switch (alt26) {
2663 case 1 :
2664 // InternalProblem.g:1050:6: ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )*
2665 {
2666 // InternalProblem.g:1050:6: ( ( ruleQualifiedName ) )
2667 // InternalProblem.g:1051:7: ( ruleQualifiedName )
2668 {
2669 // InternalProblem.g:1051:7: ( ruleQualifiedName )
2670 // InternalProblem.g:1052:8: ruleQualifiedName
2671 {
2672
2673 if (current==null) {
2674 current = createModelElement(grammarAccess.getAssertionRule());
2675 }
2676
2677
2678 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_0_0());
2679
2680 pushFollow(FOLLOW_19);
2681 ruleQualifiedName();
2682
2683 state._fsp--;
2684
2685
2686 afterParserOrEnumRuleCall();
2687
2688
2689 }
2690
2691
2692 }
2693
2694 // InternalProblem.g:1066:6: (otherlv_12= ',' ( ( ruleQualifiedName ) ) )*
2695 loop25:
2696 do {
2697 int alt25=2;
2698 int LA25_0 = input.LA(1);
2699
2700 if ( (LA25_0==15) ) {
2701 alt25=1;
2702 }
2703
2704
2705 switch (alt25) {
2706 case 1 :
2707 // InternalProblem.g:1067:7: otherlv_12= ',' ( ( ruleQualifiedName ) )
2708 {
2709 otherlv_12=(Token)match(input,15,FOLLOW_5);
2710
2711 newLeafNode(otherlv_12, grammarAccess.getAssertionAccess().getCommaKeyword_0_1_3_1_0());
2712
2713 // InternalProblem.g:1071:7: ( ( ruleQualifiedName ) )
2714 // InternalProblem.g:1072:8: ( ruleQualifiedName )
2715 {
2716 // InternalProblem.g:1072:8: ( ruleQualifiedName )
2717 // InternalProblem.g:1073:9: ruleQualifiedName
2718 {
2719
2720 if (current==null) {
2721 current = createModelElement(grammarAccess.getAssertionRule());
2722 }
2723
2724
2725 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_1_1_0());
2726
2727 pushFollow(FOLLOW_19);
2728 ruleQualifiedName();
2729
2730 state._fsp--;
2731
2732
2733 afterParserOrEnumRuleCall();
2734
2735
2736 }
2737
2738
2739 }
2740
2741
2742 }
2743 break;
2744
2745 default :
2746 break loop25;
2747 }
2748 } while (true);
2749
2750
2751 }
2752 break;
2753
2754 }
2755
2756 otherlv_14=(Token)match(input,24,FOLLOW_27);
2757
2758 newLeafNode(otherlv_14, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_1_4());
2759
2760
2761 }
2762
2763
2764 }
2765 break;
2766
2767 }
2768
2769 otherlv_15=(Token)match(input,17,FOLLOW_2);
2770
2771 newLeafNode(otherlv_15, grammarAccess.getAssertionAccess().getFullStopKeyword_1());
2772
2773
2774 }
2775
2776
2777 }
2778
2779
2780 leaveRule();
2781
2782 }
2783
2784 catch (RecognitionException re) {
2785 recover(input,re);
2786 appendSkippedTokens();
2787 }
2788 finally {
2789 }
2790 return current;
2791 }
2792 // $ANTLR end "ruleAssertion"
2793
2794
2795 // $ANTLR start "entryRuleScopeDeclaration"
2796 // InternalProblem.g:1103:1: entryRuleScopeDeclaration returns [EObject current=null] : iv_ruleScopeDeclaration= ruleScopeDeclaration EOF ;
2797 public final EObject entryRuleScopeDeclaration() throws RecognitionException {
2798 EObject current = null;
2799
2800 EObject iv_ruleScopeDeclaration = null;
2801
2802
2803 try {
2804 // InternalProblem.g:1103:57: (iv_ruleScopeDeclaration= ruleScopeDeclaration EOF )
2805 // InternalProblem.g:1104:2: iv_ruleScopeDeclaration= ruleScopeDeclaration EOF
2806 {
2807 newCompositeNode(grammarAccess.getScopeDeclarationRule());
2808 pushFollow(FOLLOW_1);
2809 iv_ruleScopeDeclaration=ruleScopeDeclaration();
2810
2811 state._fsp--;
2812
2813 current =iv_ruleScopeDeclaration;
2814 match(input,EOF,FOLLOW_2);
2815
2816 }
2817
2818 }
2819
2820 catch (RecognitionException re) {
2821 recover(input,re);
2822 appendSkippedTokens();
2823 }
2824 finally {
2825 }
2826 return current;
2827 }
2828 // $ANTLR end "entryRuleScopeDeclaration"
2829
2830
2831 // $ANTLR start "ruleScopeDeclaration"
2832 // InternalProblem.g:1110:1: ruleScopeDeclaration returns [EObject current=null] : (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' ) ;
2833 public final EObject ruleScopeDeclaration() throws RecognitionException {
2834 EObject current = null;
2835
2836 Token otherlv_0=null;
2837 Token otherlv_2=null;
2838 Token otherlv_4=null;
2839 EObject lv_typeScopes_1_0 = null;
2840
2841 EObject lv_typeScopes_3_0 = null;
2842
2843
2844
2845 enterRule();
2846
2847 try {
2848 // InternalProblem.g:1116:2: ( (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' ) )
2849 // InternalProblem.g:1117:2: (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' )
2850 {
2851 // InternalProblem.g:1117:2: (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' )
2852 // InternalProblem.g:1118:3: otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.'
2853 {
2854 otherlv_0=(Token)match(input,30,FOLLOW_5);
2855
2856 newLeafNode(otherlv_0, grammarAccess.getScopeDeclarationAccess().getScopeKeyword_0());
2857
2858 // InternalProblem.g:1122:3: ( (lv_typeScopes_1_0= ruleTypeScope ) )
2859 // InternalProblem.g:1123:4: (lv_typeScopes_1_0= ruleTypeScope )
2860 {
2861 // InternalProblem.g:1123:4: (lv_typeScopes_1_0= ruleTypeScope )
2862 // InternalProblem.g:1124:5: lv_typeScopes_1_0= ruleTypeScope
2863 {
2864
2865 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_1_0());
2866
2867 pushFollow(FOLLOW_8);
2868 lv_typeScopes_1_0=ruleTypeScope();
2869
2870 state._fsp--;
2871
2872
2873 if (current==null) {
2874 current = createModelElementForParent(grammarAccess.getScopeDeclarationRule());
2875 }
2876 add(
2877 current,
2878 "typeScopes",
2879 lv_typeScopes_1_0,
2880 "org.eclipse.viatra.solver.language.Problem.TypeScope");
2881 afterParserOrEnumRuleCall();
2882
2883
2884 }
2885
2886
2887 }
2888
2889 // InternalProblem.g:1141:3: (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )*
2890 loop28:
2891 do {
2892 int alt28=2;
2893 int LA28_0 = input.LA(1);
2894
2895 if ( (LA28_0==15) ) {
2896 alt28=1;
2897 }
2898
2899
2900 switch (alt28) {
2901 case 1 :
2902 // InternalProblem.g:1142:4: otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) )
2903 {
2904 otherlv_2=(Token)match(input,15,FOLLOW_5);
2905
2906 newLeafNode(otherlv_2, grammarAccess.getScopeDeclarationAccess().getCommaKeyword_2_0());
2907
2908 // InternalProblem.g:1146:4: ( (lv_typeScopes_3_0= ruleTypeScope ) )
2909 // InternalProblem.g:1147:5: (lv_typeScopes_3_0= ruleTypeScope )
2910 {
2911 // InternalProblem.g:1147:5: (lv_typeScopes_3_0= ruleTypeScope )
2912 // InternalProblem.g:1148:6: lv_typeScopes_3_0= ruleTypeScope
2913 {
2914
2915 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_2_1_0());
2916
2917 pushFollow(FOLLOW_8);
2918 lv_typeScopes_3_0=ruleTypeScope();
2919
2920 state._fsp--;
2921
2922
2923 if (current==null) {
2924 current = createModelElementForParent(grammarAccess.getScopeDeclarationRule());
2925 }
2926 add(
2927 current,
2928 "typeScopes",
2929 lv_typeScopes_3_0,
2930 "org.eclipse.viatra.solver.language.Problem.TypeScope");
2931 afterParserOrEnumRuleCall();
2932
2933
2934 }
2935
2936
2937 }
2938
2939
2940 }
2941 break;
2942
2943 default :
2944 break loop28;
2945 }
2946 } while (true);
2947
2948 otherlv_4=(Token)match(input,17,FOLLOW_2);
2949
2950 newLeafNode(otherlv_4, grammarAccess.getScopeDeclarationAccess().getFullStopKeyword_3());
2951
2952
2953 }
2954
2955
2956 }
2957
2958
2959 leaveRule();
2960
2961 }
2962
2963 catch (RecognitionException re) {
2964 recover(input,re);
2965 appendSkippedTokens();
2966 }
2967 finally {
2968 }
2969 return current;
2970 }
2971 // $ANTLR end "ruleScopeDeclaration"
2972
2973
2974 // $ANTLR start "entryRuleTypeScope"
2975 // InternalProblem.g:1174:1: entryRuleTypeScope returns [EObject current=null] : iv_ruleTypeScope= ruleTypeScope EOF ;
2976 public final EObject entryRuleTypeScope() throws RecognitionException {
2977 EObject current = null;
2978
2979 EObject iv_ruleTypeScope = null;
2980
2981
2982 try {
2983 // InternalProblem.g:1174:50: (iv_ruleTypeScope= ruleTypeScope EOF )
2984 // InternalProblem.g:1175:2: iv_ruleTypeScope= ruleTypeScope EOF
2985 {
2986 newCompositeNode(grammarAccess.getTypeScopeRule());
2987 pushFollow(FOLLOW_1);
2988 iv_ruleTypeScope=ruleTypeScope();
2989
2990 state._fsp--;
2991
2992 current =iv_ruleTypeScope;
2993 match(input,EOF,FOLLOW_2);
2994
2995 }
2996
2997 }
2998
2999 catch (RecognitionException re) {
3000 recover(input,re);
3001 appendSkippedTokens();
3002 }
3003 finally {
3004 }
3005 return current;
3006 }
3007 // $ANTLR end "entryRuleTypeScope"
3008
3009
3010 // $ANTLR start "ruleTypeScope"
3011 // InternalProblem.g:1181:1: ruleTypeScope returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleMultiplicity ) ) ) ;
3012 public final EObject ruleTypeScope() throws RecognitionException {
3013 EObject current = null;
3014
3015 Token otherlv_0=null;
3016 Token lv_increment_1_0=null;
3017 Token otherlv_2=null;
3018 EObject lv_multiplicity_3_0 = null;
3019
3020
3021
3022 enterRule();
3023
3024 try {
3025 // InternalProblem.g:1187:2: ( ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleMultiplicity ) ) ) )
3026 // InternalProblem.g:1188:2: ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleMultiplicity ) ) )
3027 {
3028 // InternalProblem.g:1188:2: ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleMultiplicity ) ) )
3029 // InternalProblem.g:1189:3: ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleMultiplicity ) )
3030 {
3031 // InternalProblem.g:1189:3: ( (otherlv_0= RULE_ID ) )
3032 // InternalProblem.g:1190:4: (otherlv_0= RULE_ID )
3033 {
3034 // InternalProblem.g:1190:4: (otherlv_0= RULE_ID )
3035 // InternalProblem.g:1191:5: otherlv_0= RULE_ID
3036 {
3037
3038 if (current==null) {
3039 current = createModelElement(grammarAccess.getTypeScopeRule());
3040 }
3041
3042 otherlv_0=(Token)match(input,RULE_ID,FOLLOW_28);
3043
3044 newLeafNode(otherlv_0, grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationCrossReference_0_0());
3045
3046
3047 }
3048
3049
3050 }
3051
3052 // InternalProblem.g:1202:3: ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' )
3053 int alt29=2;
3054 int LA29_0 = input.LA(1);
3055
3056 if ( (LA29_0==31) ) {
3057 alt29=1;
3058 }
3059 else if ( (LA29_0==32) ) {
3060 alt29=2;
3061 }
3062 else {
3063 NoViableAltException nvae =
3064 new NoViableAltException("", 29, 0, input);
3065
3066 throw nvae;
3067 }
3068 switch (alt29) {
3069 case 1 :
3070 // InternalProblem.g:1203:4: ( (lv_increment_1_0= '+=' ) )
3071 {
3072 // InternalProblem.g:1203:4: ( (lv_increment_1_0= '+=' ) )
3073 // InternalProblem.g:1204:5: (lv_increment_1_0= '+=' )
3074 {
3075 // InternalProblem.g:1204:5: (lv_increment_1_0= '+=' )
3076 // InternalProblem.g:1205:6: lv_increment_1_0= '+='
3077 {
3078 lv_increment_1_0=(Token)match(input,31,FOLLOW_13);
3079
3080 newLeafNode(lv_increment_1_0, grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0());
3081
3082
3083 if (current==null) {
3084 current = createModelElement(grammarAccess.getTypeScopeRule());
3085 }
3086 setWithLastConsumed(current, "increment", lv_increment_1_0 != null, "+=");
3087
3088
3089 }
3090
3091
3092 }
3093
3094
3095 }
3096 break;
3097 case 2 :
3098 // InternalProblem.g:1218:4: otherlv_2= '='
3099 {
3100 otherlv_2=(Token)match(input,32,FOLLOW_13);
3101
3102 newLeafNode(otherlv_2, grammarAccess.getTypeScopeAccess().getEqualsSignKeyword_1_1());
3103
3104
3105 }
3106 break;
3107
3108 }
3109
3110 // InternalProblem.g:1223:3: ( (lv_multiplicity_3_0= ruleMultiplicity ) )
3111 // InternalProblem.g:1224:4: (lv_multiplicity_3_0= ruleMultiplicity )
3112 {
3113 // InternalProblem.g:1224:4: (lv_multiplicity_3_0= ruleMultiplicity )
3114 // InternalProblem.g:1225:5: lv_multiplicity_3_0= ruleMultiplicity
3115 {
3116
3117 newCompositeNode(grammarAccess.getTypeScopeAccess().getMultiplicityMultiplicityParserRuleCall_2_0());
3118
3119 pushFollow(FOLLOW_2);
3120 lv_multiplicity_3_0=ruleMultiplicity();
3121
3122 state._fsp--;
3123
3124
3125 if (current==null) {
3126 current = createModelElementForParent(grammarAccess.getTypeScopeRule());
3127 }
3128 set(
3129 current,
3130 "multiplicity",
3131 lv_multiplicity_3_0,
3132 "org.eclipse.viatra.solver.language.Problem.Multiplicity");
3133 afterParserOrEnumRuleCall();
3134
3135
3136 }
3137
3138
3139 }
3140
3141
3142 }
3143
3144
3145 }
3146
3147
3148 leaveRule();
3149
3150 }
3151
3152 catch (RecognitionException re) {
3153 recover(input,re);
3154 appendSkippedTokens();
3155 }
3156 finally {
3157 }
3158 return current;
3159 }
3160 // $ANTLR end "ruleTypeScope"
3161
3162
3163 // $ANTLR start "entryRuleMultiplicity"
3164 // InternalProblem.g:1246:1: entryRuleMultiplicity returns [EObject current=null] : iv_ruleMultiplicity= ruleMultiplicity EOF ;
3165 public final EObject entryRuleMultiplicity() throws RecognitionException {
3166 EObject current = null;
3167
3168 EObject iv_ruleMultiplicity = null;
3169
3170
3171 try {
3172 // InternalProblem.g:1246:53: (iv_ruleMultiplicity= ruleMultiplicity EOF )
3173 // InternalProblem.g:1247:2: iv_ruleMultiplicity= ruleMultiplicity EOF
3174 {
3175 newCompositeNode(grammarAccess.getMultiplicityRule());
3176 pushFollow(FOLLOW_1);
3177 iv_ruleMultiplicity=ruleMultiplicity();
3178
3179 state._fsp--;
3180
3181 current =iv_ruleMultiplicity;
3182 match(input,EOF,FOLLOW_2);
3183
3184 }
3185
3186 }
3187
3188 catch (RecognitionException re) {
3189 recover(input,re);
3190 appendSkippedTokens();
3191 }
3192 finally {
3193 }
3194 return current;
3195 }
3196 // $ANTLR end "entryRuleMultiplicity"
3197
3198
3199 // $ANTLR start "ruleMultiplicity"
3200 // InternalProblem.g:1253:1: ruleMultiplicity returns [EObject current=null] : (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity ) ;
3201 public final EObject ruleMultiplicity() throws RecognitionException {
3202 EObject current = null;
3203
3204 EObject this_RangeMultiplicity_0 = null;
3205
3206 EObject this_ExactMultiplicity_1 = null;
3207
3208
3209
3210 enterRule();
3211
3212 try {
3213 // InternalProblem.g:1259:2: ( (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity ) )
3214 // InternalProblem.g:1260:2: (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity )
3215 {
3216 // InternalProblem.g:1260:2: (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity )
3217 int alt30=2;
3218 int LA30_0 = input.LA(1);
3219
3220 if ( (LA30_0==RULE_INT) ) {
3221 int LA30_1 = input.LA(2);
3222
3223 if ( (LA30_1==33) ) {
3224 alt30=1;
3225 }
3226 else if ( (LA30_1==EOF||(LA30_1>=15 && LA30_1<=17)) ) {
3227 alt30=2;
3228 }
3229 else {
3230 NoViableAltException nvae =
3231 new NoViableAltException("", 30, 1, input);
3232
3233 throw nvae;
3234 }
3235 }
3236 else {
3237 NoViableAltException nvae =
3238 new NoViableAltException("", 30, 0, input);
3239
3240 throw nvae;
3241 }
3242 switch (alt30) {
3243 case 1 :
3244 // InternalProblem.g:1261:3: this_RangeMultiplicity_0= ruleRangeMultiplicity
3245 {
3246
3247 newCompositeNode(grammarAccess.getMultiplicityAccess().getRangeMultiplicityParserRuleCall_0());
3248
3249 pushFollow(FOLLOW_2);
3250 this_RangeMultiplicity_0=ruleRangeMultiplicity();
3251
3252 state._fsp--;
3253
3254
3255 current = this_RangeMultiplicity_0;
3256 afterParserOrEnumRuleCall();
3257
3258
3259 }
3260 break;
3261 case 2 :
3262 // InternalProblem.g:1270:3: this_ExactMultiplicity_1= ruleExactMultiplicity
3263 {
3264
3265 newCompositeNode(grammarAccess.getMultiplicityAccess().getExactMultiplicityParserRuleCall_1());
3266
3267 pushFollow(FOLLOW_2);
3268 this_ExactMultiplicity_1=ruleExactMultiplicity();
3269
3270 state._fsp--;
3271
3272
3273 current = this_ExactMultiplicity_1;
3274 afterParserOrEnumRuleCall();
3275
3276
3277 }
3278 break;
3279
3280 }
3281
3282
3283 }
3284
3285
3286 leaveRule();
3287
3288 }
3289
3290 catch (RecognitionException re) {
3291 recover(input,re);
3292 appendSkippedTokens();
3293 }
3294 finally {
3295 }
3296 return current;
3297 }
3298 // $ANTLR end "ruleMultiplicity"
3299
3300
3301 // $ANTLR start "entryRuleRangeMultiplicity"
3302 // InternalProblem.g:1282:1: entryRuleRangeMultiplicity returns [EObject current=null] : iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF ;
3303 public final EObject entryRuleRangeMultiplicity() throws RecognitionException {
3304 EObject current = null;
3305
3306 EObject iv_ruleRangeMultiplicity = null;
3307
3308
3309 try {
3310 // InternalProblem.g:1282:58: (iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF )
3311 // InternalProblem.g:1283:2: iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF
3312 {
3313 newCompositeNode(grammarAccess.getRangeMultiplicityRule());
3314 pushFollow(FOLLOW_1);
3315 iv_ruleRangeMultiplicity=ruleRangeMultiplicity();
3316
3317 state._fsp--;
3318
3319 current =iv_ruleRangeMultiplicity;
3320 match(input,EOF,FOLLOW_2);
3321
3322 }
3323
3324 }
3325
3326 catch (RecognitionException re) {
3327 recover(input,re);
3328 appendSkippedTokens();
3329 }
3330 finally {
3331 }
3332 return current;
3333 }
3334 // $ANTLR end "entryRuleRangeMultiplicity"
3335
3336
3337 // $ANTLR start "ruleRangeMultiplicity"
3338 // InternalProblem.g:1289:1: ruleRangeMultiplicity returns [EObject current=null] : ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) ) ;
3339 public final EObject ruleRangeMultiplicity() throws RecognitionException {
3340 EObject current = null;
3341
3342 Token lv_lowerBound_0_0=null;
3343 Token otherlv_1=null;
3344 AntlrDatatypeRuleToken lv_upperBound_2_0 = null;
3345
3346
3347
3348 enterRule();
3349
3350 try {
3351 // InternalProblem.g:1295:2: ( ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) ) )
3352 // InternalProblem.g:1296:2: ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) )
3353 {
3354 // InternalProblem.g:1296:2: ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) )
3355 // InternalProblem.g:1297:3: ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) )
3356 {
3357 // InternalProblem.g:1297:3: ( (lv_lowerBound_0_0= RULE_INT ) )
3358 // InternalProblem.g:1298:4: (lv_lowerBound_0_0= RULE_INT )
3359 {
3360 // InternalProblem.g:1298:4: (lv_lowerBound_0_0= RULE_INT )
3361 // InternalProblem.g:1299:5: lv_lowerBound_0_0= RULE_INT
3362 {
3363 lv_lowerBound_0_0=(Token)match(input,RULE_INT,FOLLOW_29);
3364
3365 newLeafNode(lv_lowerBound_0_0, grammarAccess.getRangeMultiplicityAccess().getLowerBoundINTTerminalRuleCall_0_0());
3366
3367
3368 if (current==null) {
3369 current = createModelElement(grammarAccess.getRangeMultiplicityRule());
3370 }
3371 setWithLastConsumed(
3372 current,
3373 "lowerBound",
3374 lv_lowerBound_0_0,
3375 "org.eclipse.xtext.common.Terminals.INT");
3376
3377
3378 }
3379
3380
3381 }
3382
3383 otherlv_1=(Token)match(input,33,FOLLOW_30);
3384
3385 newLeafNode(otherlv_1, grammarAccess.getRangeMultiplicityAccess().getFullStopFullStopKeyword_1());
3386
3387 // InternalProblem.g:1319:3: ( (lv_upperBound_2_0= ruleUpperBound ) )
3388 // InternalProblem.g:1320:4: (lv_upperBound_2_0= ruleUpperBound )
3389 {
3390 // InternalProblem.g:1320:4: (lv_upperBound_2_0= ruleUpperBound )
3391 // InternalProblem.g:1321:5: lv_upperBound_2_0= ruleUpperBound
3392 {
3393
3394 newCompositeNode(grammarAccess.getRangeMultiplicityAccess().getUpperBoundUpperBoundParserRuleCall_2_0());
3395
3396 pushFollow(FOLLOW_2);
3397 lv_upperBound_2_0=ruleUpperBound();
3398
3399 state._fsp--;
3400
3401
3402 if (current==null) {
3403 current = createModelElementForParent(grammarAccess.getRangeMultiplicityRule());
3404 }
3405 set(
3406 current,
3407 "upperBound",
3408 lv_upperBound_2_0,
3409 "org.eclipse.viatra.solver.language.Problem.UpperBound");
3410 afterParserOrEnumRuleCall();
3411
3412
3413 }
3414
3415
3416 }
3417
3418
3419 }
3420
3421
3422 }
3423
3424
3425 leaveRule();
3426
3427 }
3428
3429 catch (RecognitionException re) {
3430 recover(input,re);
3431 appendSkippedTokens();
3432 }
3433 finally {
3434 }
3435 return current;
3436 }
3437 // $ANTLR end "ruleRangeMultiplicity"
3438
3439
3440 // $ANTLR start "entryRuleExactMultiplicity"
3441 // InternalProblem.g:1342:1: entryRuleExactMultiplicity returns [EObject current=null] : iv_ruleExactMultiplicity= ruleExactMultiplicity EOF ;
3442 public final EObject entryRuleExactMultiplicity() throws RecognitionException {
3443 EObject current = null;
3444
3445 EObject iv_ruleExactMultiplicity = null;
3446
3447
3448 try {
3449 // InternalProblem.g:1342:58: (iv_ruleExactMultiplicity= ruleExactMultiplicity EOF )
3450 // InternalProblem.g:1343:2: iv_ruleExactMultiplicity= ruleExactMultiplicity EOF
3451 {
3452 newCompositeNode(grammarAccess.getExactMultiplicityRule());
3453 pushFollow(FOLLOW_1);
3454 iv_ruleExactMultiplicity=ruleExactMultiplicity();
3455
3456 state._fsp--;
3457
3458 current =iv_ruleExactMultiplicity;
3459 match(input,EOF,FOLLOW_2);
3460
3461 }
3462
3463 }
3464
3465 catch (RecognitionException re) {
3466 recover(input,re);
3467 appendSkippedTokens();
3468 }
3469 finally {
3470 }
3471 return current;
3472 }
3473 // $ANTLR end "entryRuleExactMultiplicity"
3474
3475
3476 // $ANTLR start "ruleExactMultiplicity"
3477 // InternalProblem.g:1349:1: ruleExactMultiplicity returns [EObject current=null] : ( (lv_exactValue_0_0= RULE_INT ) ) ;
3478 public final EObject ruleExactMultiplicity() throws RecognitionException {
3479 EObject current = null;
3480
3481 Token lv_exactValue_0_0=null;
3482
3483
3484 enterRule();
3485
3486 try {
3487 // InternalProblem.g:1355:2: ( ( (lv_exactValue_0_0= RULE_INT ) ) )
3488 // InternalProblem.g:1356:2: ( (lv_exactValue_0_0= RULE_INT ) )
3489 {
3490 // InternalProblem.g:1356:2: ( (lv_exactValue_0_0= RULE_INT ) )
3491 // InternalProblem.g:1357:3: (lv_exactValue_0_0= RULE_INT )
3492 {
3493 // InternalProblem.g:1357:3: (lv_exactValue_0_0= RULE_INT )
3494 // InternalProblem.g:1358:4: lv_exactValue_0_0= RULE_INT
3495 {
3496 lv_exactValue_0_0=(Token)match(input,RULE_INT,FOLLOW_2);
3497
3498 newLeafNode(lv_exactValue_0_0, grammarAccess.getExactMultiplicityAccess().getExactValueINTTerminalRuleCall_0());
3499
3500
3501 if (current==null) {
3502 current = createModelElement(grammarAccess.getExactMultiplicityRule());
3503 }
3504 setWithLastConsumed(
3505 current,
3506 "exactValue",
3507 lv_exactValue_0_0,
3508 "org.eclipse.xtext.common.Terminals.INT");
3509
3510
3511 }
3512
3513
3514 }
3515
3516
3517 }
3518
3519
3520 leaveRule();
3521
3522 }
3523
3524 catch (RecognitionException re) {
3525 recover(input,re);
3526 appendSkippedTokens();
3527 }
3528 finally {
3529 }
3530 return current;
3531 }
3532 // $ANTLR end "ruleExactMultiplicity"
3533
3534
3535 // $ANTLR start "entryRuleUpperBound"
3536 // InternalProblem.g:1377:1: entryRuleUpperBound returns [String current=null] : iv_ruleUpperBound= ruleUpperBound EOF ;
3537 public final String entryRuleUpperBound() throws RecognitionException {
3538 String current = null;
3539
3540 AntlrDatatypeRuleToken iv_ruleUpperBound = null;
3541
3542
3543 try {
3544 // InternalProblem.g:1377:50: (iv_ruleUpperBound= ruleUpperBound EOF )
3545 // InternalProblem.g:1378:2: iv_ruleUpperBound= ruleUpperBound EOF
3546 {
3547 newCompositeNode(grammarAccess.getUpperBoundRule());
3548 pushFollow(FOLLOW_1);
3549 iv_ruleUpperBound=ruleUpperBound();
3550
3551 state._fsp--;
3552
3553 current =iv_ruleUpperBound.getText();
3554 match(input,EOF,FOLLOW_2);
3555
3556 }
3557
3558 }
3559
3560 catch (RecognitionException re) {
3561 recover(input,re);
3562 appendSkippedTokens();
3563 }
3564 finally {
3565 }
3566 return current;
3567 }
3568 // $ANTLR end "entryRuleUpperBound"
3569
3570
3571 // $ANTLR start "ruleUpperBound"
3572 // InternalProblem.g:1384:1: ruleUpperBound returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT | kw= '*' ) ;
3573 public final AntlrDatatypeRuleToken ruleUpperBound() throws RecognitionException {
3574 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
3575
3576 Token this_INT_0=null;
3577 Token kw=null;
3578
3579
3580 enterRule();
3581
3582 try {
3583 // InternalProblem.g:1390:2: ( (this_INT_0= RULE_INT | kw= '*' ) )
3584 // InternalProblem.g:1391:2: (this_INT_0= RULE_INT | kw= '*' )
3585 {
3586 // InternalProblem.g:1391:2: (this_INT_0= RULE_INT | kw= '*' )
3587 int alt31=2;
3588 int LA31_0 = input.LA(1);
3589
3590 if ( (LA31_0==RULE_INT) ) {
3591 alt31=1;
3592 }
3593 else if ( (LA31_0==34) ) {
3594 alt31=2;
3595 }
3596 else {
3597 NoViableAltException nvae =
3598 new NoViableAltException("", 31, 0, input);
3599
3600 throw nvae;
3601 }
3602 switch (alt31) {
3603 case 1 :
3604 // InternalProblem.g:1392:3: this_INT_0= RULE_INT
3605 {
3606 this_INT_0=(Token)match(input,RULE_INT,FOLLOW_2);
3607
3608 current.merge(this_INT_0);
3609
3610
3611 newLeafNode(this_INT_0, grammarAccess.getUpperBoundAccess().getINTTerminalRuleCall_0());
3612
3613
3614 }
3615 break;
3616 case 2 :
3617 // InternalProblem.g:1400:3: kw= '*'
3618 {
3619 kw=(Token)match(input,34,FOLLOW_2);
3620
3621 current.merge(kw);
3622 newLeafNode(kw, grammarAccess.getUpperBoundAccess().getAsteriskKeyword_1());
3623
3624
3625 }
3626 break;
3627
3628 }
3629
3630
3631 }
3632
3633
3634 leaveRule();
3635
3636 }
3637
3638 catch (RecognitionException re) {
3639 recover(input,re);
3640 appendSkippedTokens();
3641 }
3642 finally {
3643 }
3644 return current;
3645 }
3646 // $ANTLR end "ruleUpperBound"
3647
3648
3649 // $ANTLR start "entryRuleQualifiedName"
3650 // InternalProblem.g:1409:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
3651 public final String entryRuleQualifiedName() throws RecognitionException {
3652 String current = null;
3653
3654 AntlrDatatypeRuleToken iv_ruleQualifiedName = null;
3655
3656
3657 try {
3658 // InternalProblem.g:1409:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
3659 // InternalProblem.g:1410:2: iv_ruleQualifiedName= ruleQualifiedName EOF
3660 {
3661 newCompositeNode(grammarAccess.getQualifiedNameRule());
3662 pushFollow(FOLLOW_1);
3663 iv_ruleQualifiedName=ruleQualifiedName();
3664
3665 state._fsp--;
3666
3667 current =iv_ruleQualifiedName.getText();
3668 match(input,EOF,FOLLOW_2);
3669
3670 }
3671
3672 }
3673
3674 catch (RecognitionException re) {
3675 recover(input,re);
3676 appendSkippedTokens();
3677 }
3678 finally {
3679 }
3680 return current;
3681 }
3682 // $ANTLR end "entryRuleQualifiedName"
3683
3684
3685 // $ANTLR start "ruleQualifiedName"
3686 // InternalProblem.g:1416:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ID_0= RULE_ID (kw= '::' this_ID_2= RULE_ID )* ) ;
3687 public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
3688 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
3689
3690 Token this_ID_0=null;
3691 Token kw=null;
3692 Token this_ID_2=null;
3693
3694
3695 enterRule();
3696
3697 try {
3698 // InternalProblem.g:1422:2: ( (this_ID_0= RULE_ID (kw= '::' this_ID_2= RULE_ID )* ) )
3699 // InternalProblem.g:1423:2: (this_ID_0= RULE_ID (kw= '::' this_ID_2= RULE_ID )* )
3700 {
3701 // InternalProblem.g:1423:2: (this_ID_0= RULE_ID (kw= '::' this_ID_2= RULE_ID )* )
3702 // InternalProblem.g:1424:3: this_ID_0= RULE_ID (kw= '::' this_ID_2= RULE_ID )*
3703 {
3704 this_ID_0=(Token)match(input,RULE_ID,FOLLOW_31);
3705
3706 current.merge(this_ID_0);
3707
3708
3709 newLeafNode(this_ID_0, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0());
3710
3711 // InternalProblem.g:1431:3: (kw= '::' this_ID_2= RULE_ID )*
3712 loop32:
3713 do {
3714 int alt32=2;
3715 int LA32_0 = input.LA(1);
3716
3717 if ( (LA32_0==35) ) {
3718 alt32=1;
3719 }
3720
3721
3722 switch (alt32) {
3723 case 1 :
3724 // InternalProblem.g:1432:4: kw= '::' this_ID_2= RULE_ID
3725 {
3726 kw=(Token)match(input,35,FOLLOW_5);
3727
3728 current.merge(kw);
3729 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_0());
3730
3731 this_ID_2=(Token)match(input,RULE_ID,FOLLOW_31);
3732
3733 current.merge(this_ID_2);
3734
3735
3736 newLeafNode(this_ID_2, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1());
3737
3738
3739 }
3740 break;
3741
3742 default :
3743 break loop32;
3744 }
3745 } while (true);
3746
3747
3748 }
3749
3750
3751 }
3752
3753
3754 leaveRule();
3755
3756 }
3757
3758 catch (RecognitionException re) {
3759 recover(input,re);
3760 appendSkippedTokens();
3761 }
3762 finally {
3763 }
3764 return current;
3765 }
3766 // $ANTLR end "ruleQualifiedName"
3767
3768
3769 // $ANTLR start "ruleLogicValue"
3770 // InternalProblem.g:1449:1: ruleLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) ;
3771 public final Enumerator ruleLogicValue() throws RecognitionException {
3772 Enumerator current = null;
3773
3774 Token enumLiteral_0=null;
3775 Token enumLiteral_1=null;
3776 Token enumLiteral_2=null;
3777
3778
3779 enterRule();
3780
3781 try {
3782 // InternalProblem.g:1455:2: ( ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) )
3783 // InternalProblem.g:1456:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) )
3784 {
3785 // InternalProblem.g:1456:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) )
3786 int alt33=3;
3787 switch ( input.LA(1) ) {
3788 case 36:
3789 {
3790 alt33=1;
3791 }
3792 break;
3793 case 37:
3794 {
3795 alt33=2;
3796 }
3797 break;
3798 case 38:
3799 {
3800 alt33=3;
3801 }
3802 break;
3803 default:
3804 NoViableAltException nvae =
3805 new NoViableAltException("", 33, 0, input);
3806
3807 throw nvae;
3808 }
3809
3810 switch (alt33) {
3811 case 1 :
3812 // InternalProblem.g:1457:3: (enumLiteral_0= 'true' )
3813 {
3814 // InternalProblem.g:1457:3: (enumLiteral_0= 'true' )
3815 // InternalProblem.g:1458:4: enumLiteral_0= 'true'
3816 {
3817 enumLiteral_0=(Token)match(input,36,FOLLOW_2);
3818
3819 current = grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
3820 newLeafNode(enumLiteral_0, grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0());
3821
3822
3823 }
3824
3825
3826 }
3827 break;
3828 case 2 :
3829 // InternalProblem.g:1465:3: (enumLiteral_1= 'false' )
3830 {
3831 // InternalProblem.g:1465:3: (enumLiteral_1= 'false' )
3832 // InternalProblem.g:1466:4: enumLiteral_1= 'false'
3833 {
3834 enumLiteral_1=(Token)match(input,37,FOLLOW_2);
3835
3836 current = grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
3837 newLeafNode(enumLiteral_1, grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1());
3838
3839
3840 }
3841
3842
3843 }
3844 break;
3845 case 3 :
3846 // InternalProblem.g:1473:3: (enumLiteral_2= 'unknown' )
3847 {
3848 // InternalProblem.g:1473:3: (enumLiteral_2= 'unknown' )
3849 // InternalProblem.g:1474:4: enumLiteral_2= 'unknown'
3850 {
3851 enumLiteral_2=(Token)match(input,38,FOLLOW_2);
3852
3853 current = grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
3854 newLeafNode(enumLiteral_2, grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2());
3855
3856
3857 }
3858
3859
3860 }
3861 break;
3862
3863 }
3864
3865
3866 }
3867
3868
3869 leaveRule();
3870
3871 }
3872
3873 catch (RecognitionException re) {
3874 recover(input,re);
3875 appendSkippedTokens();
3876 }
3877 finally {
3878 }
3879 return current;
3880 }
3881 // $ANTLR end "ruleLogicValue"
3882
3883
3884 // $ANTLR start "ruleShortLogicValue"
3885 // InternalProblem.g:1484:1: ruleShortLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) ;
3886 public final Enumerator ruleShortLogicValue() throws RecognitionException {
3887 Enumerator current = null;
3888
3889 Token enumLiteral_0=null;
3890 Token enumLiteral_1=null;
3891
3892
3893 enterRule();
3894
3895 try {
3896 // InternalProblem.g:1490:2: ( ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) )
3897 // InternalProblem.g:1491:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) )
3898 {
3899 // InternalProblem.g:1491:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) )
3900 int alt34=2;
3901 int LA34_0 = input.LA(1);
3902
3903 if ( (LA34_0==27) ) {
3904 alt34=1;
3905 }
3906 else if ( (LA34_0==39) ) {
3907 alt34=2;
3908 }
3909 else {
3910 NoViableAltException nvae =
3911 new NoViableAltException("", 34, 0, input);
3912
3913 throw nvae;
3914 }
3915 switch (alt34) {
3916 case 1 :
3917 // InternalProblem.g:1492:3: (enumLiteral_0= '!' )
3918 {
3919 // InternalProblem.g:1492:3: (enumLiteral_0= '!' )
3920 // InternalProblem.g:1493:4: enumLiteral_0= '!'
3921 {
3922 enumLiteral_0=(Token)match(input,27,FOLLOW_2);
3923
3924 current = grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
3925 newLeafNode(enumLiteral_0, grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0());
3926
3927
3928 }
3929
3930
3931 }
3932 break;
3933 case 2 :
3934 // InternalProblem.g:1500:3: (enumLiteral_1= '?' )
3935 {
3936 // InternalProblem.g:1500:3: (enumLiteral_1= '?' )
3937 // InternalProblem.g:1501:4: enumLiteral_1= '?'
3938 {
3939 enumLiteral_1=(Token)match(input,39,FOLLOW_2);
3940
3941 current = grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
3942 newLeafNode(enumLiteral_1, grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1());
3943
3944
3945 }
3946
3947
3948 }
3949 break;
3950
3951 }
3952
3953
3954 }
3955
3956
3957 leaveRule();
3958
3959 }
3960
3961 catch (RecognitionException re) {
3962 recover(input,re);
3963 appendSkippedTokens();
3964 }
3965 finally {
3966 }
3967 return current;
3968 }
3969 // $ANTLR end "ruleShortLogicValue"
3970
3971 // Delegated rules
3972
3973
3974 protected DFA27 dfa27 = new DFA27(this);
3975 static final String dfa_1s = "\17\uffff";
3976 static final String dfa_2s = "\1\4\1\27\1\uffff\2\4\1\27\1\17\1\21\2\4\1\uffff\2\17\1\4\1\17";
3977 static final String dfa_3s = "\1\47\1\43\1\uffff\1\4\1\30\2\43\1\35\2\4\1\uffff\2\43\1\4\1\43";
3978 static final String dfa_4s = "\2\uffff\1\2\7\uffff\1\1\4\uffff";
3979 static final String dfa_5s = "\17\uffff}>";
3980 static final String[] dfa_6s = {
3981 "\1\1\26\uffff\1\2\13\uffff\1\2",
3982 "\1\4\13\uffff\1\3",
3983 "",
3984 "\1\5",
3985 "\1\6\23\uffff\1\7",
3986 "\1\4\13\uffff\1\3",
3987 "\1\11\10\uffff\1\7\12\uffff\1\10",
3988 "\1\2\13\uffff\1\12",
3989 "\1\13",
3990 "\1\14",
3991 "",
3992 "\1\11\10\uffff\1\7\12\uffff\1\10",
3993 "\1\11\10\uffff\1\7\12\uffff\1\15",
3994 "\1\16",
3995 "\1\11\10\uffff\1\7\12\uffff\1\15"
3996 };
3997
3998 static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
3999 static final char[] dfa_2 = DFA.unpackEncodedStringToUnsignedChars(dfa_2s);
4000 static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
4001 static final short[] dfa_4 = DFA.unpackEncodedString(dfa_4s);
4002 static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
4003 static final short[][] dfa_6 = unpackEncodedStringArray(dfa_6s);
4004
4005 class DFA27 extends DFA {
4006
4007 public DFA27(BaseRecognizer recognizer) {
4008 this.recognizer = recognizer;
4009 this.decisionNumber = 27;
4010 this.eot = dfa_1;
4011 this.eof = dfa_1;
4012 this.min = dfa_2;
4013 this.max = dfa_3;
4014 this.accept = dfa_4;
4015 this.special = dfa_5;
4016 this.transition = dfa_6;
4017 }
4018 public String getDescription() {
4019 return "918: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= ')' ) )";
4020 }
4021 }
4022
4023
4024 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
4025 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
4026 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000008048601812L});
4027 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000001000L});
4028 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000000010L});
4029 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x00000000000EA000L});
4030 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000004010L});
4031 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000028000L});
4032 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000010010L});
4033 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000018000L});
4034 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x00000000000C0000L});
4035 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000004000L});
4036 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000000020L});
4037 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000010000L});
4038 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000100002L});
4039 public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000400010L});
4040 public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000800000L});
4041 public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000001000010L});
4042 public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000001008000L});
4043 public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000002020000L});
4044 public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000008000010L});
4045 public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000004020000L});
4046 public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000000008002L});
4047 public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000010800000L});
4048 public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000020000000L});
4049 public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000007000000000L});
4050 public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000020000L});
4051 public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000180000000L});
4052 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000200000000L});
4053 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000400000020L});
4054 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000800000002L});
4055
4056} \ No newline at end of file