aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/internal/InternalVampireLanguageParser.java
diff options
context:
space:
mode:
Diffstat (limited to 'Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/internal/InternalVampireLanguageParser.java')
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/internal/InternalVampireLanguageParser.java6361
1 files changed, 6361 insertions, 0 deletions
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/internal/InternalVampireLanguageParser.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/internal/InternalVampireLanguageParser.java
new file mode 100644
index 00000000..f44428a0
--- /dev/null
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/internal/InternalVampireLanguageParser.java
@@ -0,0 +1,6361 @@
1package ca.mcgill.ecse.dslreasoner.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.xtext.parser.antlr.AbstractInternalAntlrParser;
9import org.eclipse.xtext.parser.antlr.XtextTokenStream;
10import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
11import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
12import ca.mcgill.ecse.dslreasoner.services.VampireLanguageGrammarAccess;
13
14
15
16import org.antlr.runtime.*;
17import java.util.Stack;
18import java.util.List;
19import java.util.ArrayList;
20
21@SuppressWarnings("all")
22public class InternalVampireLanguageParser extends AbstractInternalAntlrParser {
23 public static final String[] tokenNames = new String[] {
24 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_SINGLE_QUOTE", "RULE_LOWER_WORD_ID", "RULE_LITERAL", "RULE_SIGNED_LITERAL", "RULE_SINGLE_COMMENT", "RULE_DOLLAR_ID", "RULE_DOUBLE_DOLLAR_ID", "RULE_UPPER_WORD_ID", "RULE_SIGNED_REAL_ID", "RULE_SIGNED_RAT_ID", "RULE_DOUBLE_QUOTE", "RULE_ALPHA_NUMERIC", "RULE_SIGN", "RULE_INT", "RULE_UNSIGNED_REAL_FRAC_ID", "RULE_UNSIGNED_REAL_EXP_ID", "RULE_UNSIGNED_RAT_ID", "RULE_ID", "RULE_ANY_OTHER", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "'include('", "',['", "','", "']'", "'%'", "'Satisfiable!'", "'fof'", "'('", "')'", "'.'", "'tff'", "'axiom'", "'conjecture'", "'hypothesis'", "'definition'", "'assumption'", "'lemma'", "'theorem'", "'corollary'", "'negated_conjecture'", "'plain'", "'type'", "'fi_domain'", "'fi_functors'", "'fi_predicates'", "'unknown'", "'['", "'<=>'", "'=>'", "'<='", "'<~>'", "'~|'", "'~&'", "'&'", "'|'", "'!'", "':'", "'?'", "'~'", "'!='", "'='", "':='", "'$true'", "'$false'", "'$less'"
25 };
26 public static final int RULE_UNSIGNED_RAT_ID=20;
27 public static final int T__50=50;
28 public static final int RULE_SIGN=16;
29 public static final int T__59=59;
30 public static final int RULE_SIGNED_LITERAL=7;
31 public static final int T__55=55;
32 public static final int T__56=56;
33 public static final int T__57=57;
34 public static final int T__58=58;
35 public static final int T__51=51;
36 public static final int RULE_DOUBLE_QUOTE=14;
37 public static final int T__52=52;
38 public static final int RULE_LITERAL=6;
39 public static final int T__53=53;
40 public static final int RULE_UNSIGNED_REAL_FRAC_ID=18;
41 public static final int T__54=54;
42 public static final int T__60=60;
43 public static final int T__61=61;
44 public static final int RULE_ID=21;
45 public static final int RULE_SINGLE_QUOTE=4;
46 public static final int RULE_SINGLE_COMMENT=8;
47 public static final int T__27=27;
48 public static final int T__28=28;
49 public static final int RULE_INT=17;
50 public static final int T__29=29;
51 public static final int T__66=66;
52 public static final int RULE_ML_COMMENT=24;
53 public static final int T__67=67;
54 public static final int RULE_SIGNED_RAT_ID=13;
55 public static final int T__68=68;
56 public static final int T__69=69;
57 public static final int T__62=62;
58 public static final int T__63=63;
59 public static final int T__64=64;
60 public static final int T__65=65;
61 public static final int T__70=70;
62 public static final int T__71=71;
63 public static final int RULE_LOWER_WORD_ID=5;
64 public static final int RULE_STRING=23;
65 public static final int RULE_SL_COMMENT=25;
66 public static final int T__37=37;
67 public static final int T__38=38;
68 public static final int T__39=39;
69 public static final int T__33=33;
70 public static final int T__34=34;
71 public static final int T__35=35;
72 public static final int T__36=36;
73 public static final int EOF=-1;
74 public static final int T__30=30;
75 public static final int RULE_UNSIGNED_REAL_EXP_ID=19;
76 public static final int T__31=31;
77 public static final int T__32=32;
78 public static final int RULE_UPPER_WORD_ID=11;
79 public static final int RULE_WS=26;
80 public static final int RULE_DOLLAR_ID=9;
81 public static final int RULE_ALPHA_NUMERIC=15;
82 public static final int RULE_ANY_OTHER=22;
83 public static final int RULE_DOUBLE_DOLLAR_ID=10;
84 public static final int T__48=48;
85 public static final int T__49=49;
86 public static final int T__44=44;
87 public static final int T__45=45;
88 public static final int RULE_SIGNED_REAL_ID=12;
89 public static final int T__46=46;
90 public static final int T__47=47;
91 public static final int T__40=40;
92 public static final int T__41=41;
93 public static final int T__42=42;
94 public static final int T__43=43;
95
96 // delegates
97 // delegators
98
99
100 public InternalVampireLanguageParser(TokenStream input) {
101 this(input, new RecognizerSharedState());
102 }
103 public InternalVampireLanguageParser(TokenStream input, RecognizerSharedState state) {
104 super(input, state);
105
106 }
107
108
109 public String[] getTokenNames() { return InternalVampireLanguageParser.tokenNames; }
110 public String getGrammarFileName() { return "InternalVampireLanguage.g"; }
111
112
113
114 private VampireLanguageGrammarAccess grammarAccess;
115
116 public InternalVampireLanguageParser(TokenStream input, VampireLanguageGrammarAccess grammarAccess) {
117 this(input);
118 this.grammarAccess = grammarAccess;
119 registerRules(grammarAccess.getGrammar());
120 }
121
122 @Override
123 protected String getFirstRuleName() {
124 return "VampireModel";
125 }
126
127 @Override
128 protected VampireLanguageGrammarAccess getGrammarAccess() {
129 return grammarAccess;
130 }
131
132
133
134
135 // $ANTLR start "entryRuleVampireModel"
136 // InternalVampireLanguage.g:64:1: entryRuleVampireModel returns [EObject current=null] : iv_ruleVampireModel= ruleVampireModel EOF ;
137 public final EObject entryRuleVampireModel() throws RecognitionException {
138 EObject current = null;
139
140 EObject iv_ruleVampireModel = null;
141
142
143 try {
144 // InternalVampireLanguage.g:64:53: (iv_ruleVampireModel= ruleVampireModel EOF )
145 // InternalVampireLanguage.g:65:2: iv_ruleVampireModel= ruleVampireModel EOF
146 {
147 newCompositeNode(grammarAccess.getVampireModelRule());
148 pushFollow(FOLLOW_1);
149 iv_ruleVampireModel=ruleVampireModel();
150
151 state._fsp--;
152
153 current =iv_ruleVampireModel;
154 match(input,EOF,FOLLOW_2);
155
156 }
157
158 }
159
160 catch (RecognitionException re) {
161 recover(input,re);
162 appendSkippedTokens();
163 }
164 finally {
165 }
166 return current;
167 }
168 // $ANTLR end "entryRuleVampireModel"
169
170
171 // $ANTLR start "ruleVampireModel"
172 // InternalVampireLanguage.g:71:1: ruleVampireModel returns [EObject current=null] : ( ( (lv_includes_0_0= ruleVLSInclude ) ) | ( (lv_comments_1_0= ruleVLSComment ) ) | ( (lv_confirmations_2_0= ruleVLSConfirmations ) ) | ( (lv_formulas_3_0= ruleVLSFofFormula ) ) | ( (lv_tfformulas_4_0= ruleVLSTffFormula ) ) )* ;
173 public final EObject ruleVampireModel() throws RecognitionException {
174 EObject current = null;
175
176 EObject lv_includes_0_0 = null;
177
178 EObject lv_comments_1_0 = null;
179
180 EObject lv_confirmations_2_0 = null;
181
182 EObject lv_formulas_3_0 = null;
183
184 EObject lv_tfformulas_4_0 = null;
185
186
187
188 enterRule();
189
190 try {
191 // InternalVampireLanguage.g:77:2: ( ( ( (lv_includes_0_0= ruleVLSInclude ) ) | ( (lv_comments_1_0= ruleVLSComment ) ) | ( (lv_confirmations_2_0= ruleVLSConfirmations ) ) | ( (lv_formulas_3_0= ruleVLSFofFormula ) ) | ( (lv_tfformulas_4_0= ruleVLSTffFormula ) ) )* )
192 // InternalVampireLanguage.g:78:2: ( ( (lv_includes_0_0= ruleVLSInclude ) ) | ( (lv_comments_1_0= ruleVLSComment ) ) | ( (lv_confirmations_2_0= ruleVLSConfirmations ) ) | ( (lv_formulas_3_0= ruleVLSFofFormula ) ) | ( (lv_tfformulas_4_0= ruleVLSTffFormula ) ) )*
193 {
194 // InternalVampireLanguage.g:78:2: ( ( (lv_includes_0_0= ruleVLSInclude ) ) | ( (lv_comments_1_0= ruleVLSComment ) ) | ( (lv_confirmations_2_0= ruleVLSConfirmations ) ) | ( (lv_formulas_3_0= ruleVLSFofFormula ) ) | ( (lv_tfformulas_4_0= ruleVLSTffFormula ) ) )*
195 loop1:
196 do {
197 int alt1=6;
198 switch ( input.LA(1) ) {
199 case 27:
200 {
201 alt1=1;
202 }
203 break;
204 case 31:
205 {
206 alt1=2;
207 }
208 break;
209 case 32:
210 {
211 alt1=3;
212 }
213 break;
214 case 33:
215 {
216 alt1=4;
217 }
218 break;
219 case 37:
220 {
221 alt1=5;
222 }
223 break;
224
225 }
226
227 switch (alt1) {
228 case 1 :
229 // InternalVampireLanguage.g:79:3: ( (lv_includes_0_0= ruleVLSInclude ) )
230 {
231 // InternalVampireLanguage.g:79:3: ( (lv_includes_0_0= ruleVLSInclude ) )
232 // InternalVampireLanguage.g:80:4: (lv_includes_0_0= ruleVLSInclude )
233 {
234 // InternalVampireLanguage.g:80:4: (lv_includes_0_0= ruleVLSInclude )
235 // InternalVampireLanguage.g:81:5: lv_includes_0_0= ruleVLSInclude
236 {
237
238 newCompositeNode(grammarAccess.getVampireModelAccess().getIncludesVLSIncludeParserRuleCall_0_0());
239
240 pushFollow(FOLLOW_3);
241 lv_includes_0_0=ruleVLSInclude();
242
243 state._fsp--;
244
245
246 if (current==null) {
247 current = createModelElementForParent(grammarAccess.getVampireModelRule());
248 }
249 add(
250 current,
251 "includes",
252 lv_includes_0_0,
253 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSInclude");
254 afterParserOrEnumRuleCall();
255
256
257 }
258
259
260 }
261
262
263 }
264 break;
265 case 2 :
266 // InternalVampireLanguage.g:99:3: ( (lv_comments_1_0= ruleVLSComment ) )
267 {
268 // InternalVampireLanguage.g:99:3: ( (lv_comments_1_0= ruleVLSComment ) )
269 // InternalVampireLanguage.g:100:4: (lv_comments_1_0= ruleVLSComment )
270 {
271 // InternalVampireLanguage.g:100:4: (lv_comments_1_0= ruleVLSComment )
272 // InternalVampireLanguage.g:101:5: lv_comments_1_0= ruleVLSComment
273 {
274
275 newCompositeNode(grammarAccess.getVampireModelAccess().getCommentsVLSCommentParserRuleCall_1_0());
276
277 pushFollow(FOLLOW_3);
278 lv_comments_1_0=ruleVLSComment();
279
280 state._fsp--;
281
282
283 if (current==null) {
284 current = createModelElementForParent(grammarAccess.getVampireModelRule());
285 }
286 add(
287 current,
288 "comments",
289 lv_comments_1_0,
290 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSComment");
291 afterParserOrEnumRuleCall();
292
293
294 }
295
296
297 }
298
299
300 }
301 break;
302 case 3 :
303 // InternalVampireLanguage.g:119:3: ( (lv_confirmations_2_0= ruleVLSConfirmations ) )
304 {
305 // InternalVampireLanguage.g:119:3: ( (lv_confirmations_2_0= ruleVLSConfirmations ) )
306 // InternalVampireLanguage.g:120:4: (lv_confirmations_2_0= ruleVLSConfirmations )
307 {
308 // InternalVampireLanguage.g:120:4: (lv_confirmations_2_0= ruleVLSConfirmations )
309 // InternalVampireLanguage.g:121:5: lv_confirmations_2_0= ruleVLSConfirmations
310 {
311
312 newCompositeNode(grammarAccess.getVampireModelAccess().getConfirmationsVLSConfirmationsParserRuleCall_2_0());
313
314 pushFollow(FOLLOW_3);
315 lv_confirmations_2_0=ruleVLSConfirmations();
316
317 state._fsp--;
318
319
320 if (current==null) {
321 current = createModelElementForParent(grammarAccess.getVampireModelRule());
322 }
323 add(
324 current,
325 "confirmations",
326 lv_confirmations_2_0,
327 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSConfirmations");
328 afterParserOrEnumRuleCall();
329
330
331 }
332
333
334 }
335
336
337 }
338 break;
339 case 4 :
340 // InternalVampireLanguage.g:139:3: ( (lv_formulas_3_0= ruleVLSFofFormula ) )
341 {
342 // InternalVampireLanguage.g:139:3: ( (lv_formulas_3_0= ruleVLSFofFormula ) )
343 // InternalVampireLanguage.g:140:4: (lv_formulas_3_0= ruleVLSFofFormula )
344 {
345 // InternalVampireLanguage.g:140:4: (lv_formulas_3_0= ruleVLSFofFormula )
346 // InternalVampireLanguage.g:141:5: lv_formulas_3_0= ruleVLSFofFormula
347 {
348
349 newCompositeNode(grammarAccess.getVampireModelAccess().getFormulasVLSFofFormulaParserRuleCall_3_0());
350
351 pushFollow(FOLLOW_3);
352 lv_formulas_3_0=ruleVLSFofFormula();
353
354 state._fsp--;
355
356
357 if (current==null) {
358 current = createModelElementForParent(grammarAccess.getVampireModelRule());
359 }
360 add(
361 current,
362 "formulas",
363 lv_formulas_3_0,
364 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofFormula");
365 afterParserOrEnumRuleCall();
366
367
368 }
369
370
371 }
372
373
374 }
375 break;
376 case 5 :
377 // InternalVampireLanguage.g:159:3: ( (lv_tfformulas_4_0= ruleVLSTffFormula ) )
378 {
379 // InternalVampireLanguage.g:159:3: ( (lv_tfformulas_4_0= ruleVLSTffFormula ) )
380 // InternalVampireLanguage.g:160:4: (lv_tfformulas_4_0= ruleVLSTffFormula )
381 {
382 // InternalVampireLanguage.g:160:4: (lv_tfformulas_4_0= ruleVLSTffFormula )
383 // InternalVampireLanguage.g:161:5: lv_tfformulas_4_0= ruleVLSTffFormula
384 {
385
386 newCompositeNode(grammarAccess.getVampireModelAccess().getTfformulasVLSTffFormulaParserRuleCall_4_0());
387
388 pushFollow(FOLLOW_3);
389 lv_tfformulas_4_0=ruleVLSTffFormula();
390
391 state._fsp--;
392
393
394 if (current==null) {
395 current = createModelElementForParent(grammarAccess.getVampireModelRule());
396 }
397 add(
398 current,
399 "tfformulas",
400 lv_tfformulas_4_0,
401 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSTffFormula");
402 afterParserOrEnumRuleCall();
403
404
405 }
406
407
408 }
409
410
411 }
412 break;
413
414 default :
415 break loop1;
416 }
417 } while (true);
418
419
420 }
421
422
423 leaveRule();
424
425 }
426
427 catch (RecognitionException re) {
428 recover(input,re);
429 appendSkippedTokens();
430 }
431 finally {
432 }
433 return current;
434 }
435 // $ANTLR end "ruleVampireModel"
436
437
438 // $ANTLR start "entryRuleVLSInclude"
439 // InternalVampireLanguage.g:182:1: entryRuleVLSInclude returns [EObject current=null] : iv_ruleVLSInclude= ruleVLSInclude EOF ;
440 public final EObject entryRuleVLSInclude() throws RecognitionException {
441 EObject current = null;
442
443 EObject iv_ruleVLSInclude = null;
444
445
446 try {
447 // InternalVampireLanguage.g:182:51: (iv_ruleVLSInclude= ruleVLSInclude EOF )
448 // InternalVampireLanguage.g:183:2: iv_ruleVLSInclude= ruleVLSInclude EOF
449 {
450 newCompositeNode(grammarAccess.getVLSIncludeRule());
451 pushFollow(FOLLOW_1);
452 iv_ruleVLSInclude=ruleVLSInclude();
453
454 state._fsp--;
455
456 current =iv_ruleVLSInclude;
457 match(input,EOF,FOLLOW_2);
458
459 }
460
461 }
462
463 catch (RecognitionException re) {
464 recover(input,re);
465 appendSkippedTokens();
466 }
467 finally {
468 }
469 return current;
470 }
471 // $ANTLR end "entryRuleVLSInclude"
472
473
474 // $ANTLR start "ruleVLSInclude"
475 // InternalVampireLanguage.g:189:1: ruleVLSInclude returns [EObject current=null] : (otherlv_0= 'include(' ( (lv_fileName_1_0= RULE_SINGLE_QUOTE ) ) (otherlv_2= ',[' ( (lv_names_3_0= ruleVLSName ) ) (otherlv_4= ',' ( (lv_names_5_0= ruleVLSName ) ) )* otherlv_6= ']' )? ) ;
476 public final EObject ruleVLSInclude() throws RecognitionException {
477 EObject current = null;
478
479 Token otherlv_0=null;
480 Token lv_fileName_1_0=null;
481 Token otherlv_2=null;
482 Token otherlv_4=null;
483 Token otherlv_6=null;
484 EObject lv_names_3_0 = null;
485
486 EObject lv_names_5_0 = null;
487
488
489
490 enterRule();
491
492 try {
493 // InternalVampireLanguage.g:195:2: ( (otherlv_0= 'include(' ( (lv_fileName_1_0= RULE_SINGLE_QUOTE ) ) (otherlv_2= ',[' ( (lv_names_3_0= ruleVLSName ) ) (otherlv_4= ',' ( (lv_names_5_0= ruleVLSName ) ) )* otherlv_6= ']' )? ) )
494 // InternalVampireLanguage.g:196:2: (otherlv_0= 'include(' ( (lv_fileName_1_0= RULE_SINGLE_QUOTE ) ) (otherlv_2= ',[' ( (lv_names_3_0= ruleVLSName ) ) (otherlv_4= ',' ( (lv_names_5_0= ruleVLSName ) ) )* otherlv_6= ']' )? )
495 {
496 // InternalVampireLanguage.g:196:2: (otherlv_0= 'include(' ( (lv_fileName_1_0= RULE_SINGLE_QUOTE ) ) (otherlv_2= ',[' ( (lv_names_3_0= ruleVLSName ) ) (otherlv_4= ',' ( (lv_names_5_0= ruleVLSName ) ) )* otherlv_6= ']' )? )
497 // InternalVampireLanguage.g:197:3: otherlv_0= 'include(' ( (lv_fileName_1_0= RULE_SINGLE_QUOTE ) ) (otherlv_2= ',[' ( (lv_names_3_0= ruleVLSName ) ) (otherlv_4= ',' ( (lv_names_5_0= ruleVLSName ) ) )* otherlv_6= ']' )?
498 {
499 otherlv_0=(Token)match(input,27,FOLLOW_4);
500
501 newLeafNode(otherlv_0, grammarAccess.getVLSIncludeAccess().getIncludeKeyword_0());
502
503 // InternalVampireLanguage.g:201:3: ( (lv_fileName_1_0= RULE_SINGLE_QUOTE ) )
504 // InternalVampireLanguage.g:202:4: (lv_fileName_1_0= RULE_SINGLE_QUOTE )
505 {
506 // InternalVampireLanguage.g:202:4: (lv_fileName_1_0= RULE_SINGLE_QUOTE )
507 // InternalVampireLanguage.g:203:5: lv_fileName_1_0= RULE_SINGLE_QUOTE
508 {
509 lv_fileName_1_0=(Token)match(input,RULE_SINGLE_QUOTE,FOLLOW_5);
510
511 newLeafNode(lv_fileName_1_0, grammarAccess.getVLSIncludeAccess().getFileNameSINGLE_QUOTETerminalRuleCall_1_0());
512
513
514 if (current==null) {
515 current = createModelElement(grammarAccess.getVLSIncludeRule());
516 }
517 setWithLastConsumed(
518 current,
519 "fileName",
520 lv_fileName_1_0,
521 "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_QUOTE");
522
523
524 }
525
526
527 }
528
529 // InternalVampireLanguage.g:219:3: (otherlv_2= ',[' ( (lv_names_3_0= ruleVLSName ) ) (otherlv_4= ',' ( (lv_names_5_0= ruleVLSName ) ) )* otherlv_6= ']' )?
530 int alt3=2;
531 int LA3_0 = input.LA(1);
532
533 if ( (LA3_0==28) ) {
534 alt3=1;
535 }
536 switch (alt3) {
537 case 1 :
538 // InternalVampireLanguage.g:220:4: otherlv_2= ',[' ( (lv_names_3_0= ruleVLSName ) ) (otherlv_4= ',' ( (lv_names_5_0= ruleVLSName ) ) )* otherlv_6= ']'
539 {
540 otherlv_2=(Token)match(input,28,FOLLOW_6);
541
542 newLeafNode(otherlv_2, grammarAccess.getVLSIncludeAccess().getCommaLeftSquareBracketKeyword_2_0());
543
544 // InternalVampireLanguage.g:224:4: ( (lv_names_3_0= ruleVLSName ) )
545 // InternalVampireLanguage.g:225:5: (lv_names_3_0= ruleVLSName )
546 {
547 // InternalVampireLanguage.g:225:5: (lv_names_3_0= ruleVLSName )
548 // InternalVampireLanguage.g:226:6: lv_names_3_0= ruleVLSName
549 {
550
551 newCompositeNode(grammarAccess.getVLSIncludeAccess().getNamesVLSNameParserRuleCall_2_1_0());
552
553 pushFollow(FOLLOW_7);
554 lv_names_3_0=ruleVLSName();
555
556 state._fsp--;
557
558
559 if (current==null) {
560 current = createModelElementForParent(grammarAccess.getVLSIncludeRule());
561 }
562 add(
563 current,
564 "names",
565 lv_names_3_0,
566 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSName");
567 afterParserOrEnumRuleCall();
568
569
570 }
571
572
573 }
574
575 // InternalVampireLanguage.g:243:4: (otherlv_4= ',' ( (lv_names_5_0= ruleVLSName ) ) )*
576 loop2:
577 do {
578 int alt2=2;
579 int LA2_0 = input.LA(1);
580
581 if ( (LA2_0==29) ) {
582 alt2=1;
583 }
584
585
586 switch (alt2) {
587 case 1 :
588 // InternalVampireLanguage.g:244:5: otherlv_4= ',' ( (lv_names_5_0= ruleVLSName ) )
589 {
590 otherlv_4=(Token)match(input,29,FOLLOW_6);
591
592 newLeafNode(otherlv_4, grammarAccess.getVLSIncludeAccess().getCommaKeyword_2_2_0());
593
594 // InternalVampireLanguage.g:248:5: ( (lv_names_5_0= ruleVLSName ) )
595 // InternalVampireLanguage.g:249:6: (lv_names_5_0= ruleVLSName )
596 {
597 // InternalVampireLanguage.g:249:6: (lv_names_5_0= ruleVLSName )
598 // InternalVampireLanguage.g:250:7: lv_names_5_0= ruleVLSName
599 {
600
601 newCompositeNode(grammarAccess.getVLSIncludeAccess().getNamesVLSNameParserRuleCall_2_2_1_0());
602
603 pushFollow(FOLLOW_7);
604 lv_names_5_0=ruleVLSName();
605
606 state._fsp--;
607
608
609 if (current==null) {
610 current = createModelElementForParent(grammarAccess.getVLSIncludeRule());
611 }
612 add(
613 current,
614 "names",
615 lv_names_5_0,
616 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSName");
617 afterParserOrEnumRuleCall();
618
619
620 }
621
622
623 }
624
625
626 }
627 break;
628
629 default :
630 break loop2;
631 }
632 } while (true);
633
634 otherlv_6=(Token)match(input,30,FOLLOW_2);
635
636 newLeafNode(otherlv_6, grammarAccess.getVLSIncludeAccess().getRightSquareBracketKeyword_2_3());
637
638
639 }
640 break;
641
642 }
643
644
645 }
646
647
648 }
649
650
651 leaveRule();
652
653 }
654
655 catch (RecognitionException re) {
656 recover(input,re);
657 appendSkippedTokens();
658 }
659 finally {
660 }
661 return current;
662 }
663 // $ANTLR end "ruleVLSInclude"
664
665
666 // $ANTLR start "entryRuleVLSName"
667 // InternalVampireLanguage.g:277:1: entryRuleVLSName returns [EObject current=null] : iv_ruleVLSName= ruleVLSName EOF ;
668 public final EObject entryRuleVLSName() throws RecognitionException {
669 EObject current = null;
670
671 EObject iv_ruleVLSName = null;
672
673
674 try {
675 // InternalVampireLanguage.g:277:48: (iv_ruleVLSName= ruleVLSName EOF )
676 // InternalVampireLanguage.g:278:2: iv_ruleVLSName= ruleVLSName EOF
677 {
678 newCompositeNode(grammarAccess.getVLSNameRule());
679 pushFollow(FOLLOW_1);
680 iv_ruleVLSName=ruleVLSName();
681
682 state._fsp--;
683
684 current =iv_ruleVLSName;
685 match(input,EOF,FOLLOW_2);
686
687 }
688
689 }
690
691 catch (RecognitionException re) {
692 recover(input,re);
693 appendSkippedTokens();
694 }
695 finally {
696 }
697 return current;
698 }
699 // $ANTLR end "entryRuleVLSName"
700
701
702 // $ANTLR start "ruleVLSName"
703 // InternalVampireLanguage.g:284:1: ruleVLSName returns [EObject current=null] : ( ( (lv_name_0_1= RULE_LOWER_WORD_ID | lv_name_0_2= RULE_SINGLE_QUOTE | lv_name_0_3= RULE_LITERAL | lv_name_0_4= RULE_SIGNED_LITERAL ) ) ) ;
704 public final EObject ruleVLSName() throws RecognitionException {
705 EObject current = null;
706
707 Token lv_name_0_1=null;
708 Token lv_name_0_2=null;
709 Token lv_name_0_3=null;
710 Token lv_name_0_4=null;
711
712
713 enterRule();
714
715 try {
716 // InternalVampireLanguage.g:290:2: ( ( ( (lv_name_0_1= RULE_LOWER_WORD_ID | lv_name_0_2= RULE_SINGLE_QUOTE | lv_name_0_3= RULE_LITERAL | lv_name_0_4= RULE_SIGNED_LITERAL ) ) ) )
717 // InternalVampireLanguage.g:291:2: ( ( (lv_name_0_1= RULE_LOWER_WORD_ID | lv_name_0_2= RULE_SINGLE_QUOTE | lv_name_0_3= RULE_LITERAL | lv_name_0_4= RULE_SIGNED_LITERAL ) ) )
718 {
719 // InternalVampireLanguage.g:291:2: ( ( (lv_name_0_1= RULE_LOWER_WORD_ID | lv_name_0_2= RULE_SINGLE_QUOTE | lv_name_0_3= RULE_LITERAL | lv_name_0_4= RULE_SIGNED_LITERAL ) ) )
720 // InternalVampireLanguage.g:292:3: ( (lv_name_0_1= RULE_LOWER_WORD_ID | lv_name_0_2= RULE_SINGLE_QUOTE | lv_name_0_3= RULE_LITERAL | lv_name_0_4= RULE_SIGNED_LITERAL ) )
721 {
722 // InternalVampireLanguage.g:292:3: ( (lv_name_0_1= RULE_LOWER_WORD_ID | lv_name_0_2= RULE_SINGLE_QUOTE | lv_name_0_3= RULE_LITERAL | lv_name_0_4= RULE_SIGNED_LITERAL ) )
723 // InternalVampireLanguage.g:293:4: (lv_name_0_1= RULE_LOWER_WORD_ID | lv_name_0_2= RULE_SINGLE_QUOTE | lv_name_0_3= RULE_LITERAL | lv_name_0_4= RULE_SIGNED_LITERAL )
724 {
725 // InternalVampireLanguage.g:293:4: (lv_name_0_1= RULE_LOWER_WORD_ID | lv_name_0_2= RULE_SINGLE_QUOTE | lv_name_0_3= RULE_LITERAL | lv_name_0_4= RULE_SIGNED_LITERAL )
726 int alt4=4;
727 switch ( input.LA(1) ) {
728 case RULE_LOWER_WORD_ID:
729 {
730 alt4=1;
731 }
732 break;
733 case RULE_SINGLE_QUOTE:
734 {
735 alt4=2;
736 }
737 break;
738 case RULE_LITERAL:
739 {
740 alt4=3;
741 }
742 break;
743 case RULE_SIGNED_LITERAL:
744 {
745 alt4=4;
746 }
747 break;
748 default:
749 NoViableAltException nvae =
750 new NoViableAltException("", 4, 0, input);
751
752 throw nvae;
753 }
754
755 switch (alt4) {
756 case 1 :
757 // InternalVampireLanguage.g:294:5: lv_name_0_1= RULE_LOWER_WORD_ID
758 {
759 lv_name_0_1=(Token)match(input,RULE_LOWER_WORD_ID,FOLLOW_2);
760
761 newLeafNode(lv_name_0_1, grammarAccess.getVLSNameAccess().getNameLOWER_WORD_IDTerminalRuleCall_0_0());
762
763
764 if (current==null) {
765 current = createModelElement(grammarAccess.getVLSNameRule());
766 }
767 setWithLastConsumed(
768 current,
769 "name",
770 lv_name_0_1,
771 "ca.mcgill.ecse.dslreasoner.VampireLanguage.LOWER_WORD_ID");
772
773
774 }
775 break;
776 case 2 :
777 // InternalVampireLanguage.g:309:5: lv_name_0_2= RULE_SINGLE_QUOTE
778 {
779 lv_name_0_2=(Token)match(input,RULE_SINGLE_QUOTE,FOLLOW_2);
780
781 newLeafNode(lv_name_0_2, grammarAccess.getVLSNameAccess().getNameSINGLE_QUOTETerminalRuleCall_0_1());
782
783
784 if (current==null) {
785 current = createModelElement(grammarAccess.getVLSNameRule());
786 }
787 setWithLastConsumed(
788 current,
789 "name",
790 lv_name_0_2,
791 "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_QUOTE");
792
793
794 }
795 break;
796 case 3 :
797 // InternalVampireLanguage.g:324:5: lv_name_0_3= RULE_LITERAL
798 {
799 lv_name_0_3=(Token)match(input,RULE_LITERAL,FOLLOW_2);
800
801 newLeafNode(lv_name_0_3, grammarAccess.getVLSNameAccess().getNameLITERALTerminalRuleCall_0_2());
802
803
804 if (current==null) {
805 current = createModelElement(grammarAccess.getVLSNameRule());
806 }
807 setWithLastConsumed(
808 current,
809 "name",
810 lv_name_0_3,
811 "ca.mcgill.ecse.dslreasoner.VampireLanguage.LITERAL");
812
813
814 }
815 break;
816 case 4 :
817 // InternalVampireLanguage.g:339:5: lv_name_0_4= RULE_SIGNED_LITERAL
818 {
819 lv_name_0_4=(Token)match(input,RULE_SIGNED_LITERAL,FOLLOW_2);
820
821 newLeafNode(lv_name_0_4, grammarAccess.getVLSNameAccess().getNameSIGNED_LITERALTerminalRuleCall_0_3());
822
823
824 if (current==null) {
825 current = createModelElement(grammarAccess.getVLSNameRule());
826 }
827 setWithLastConsumed(
828 current,
829 "name",
830 lv_name_0_4,
831 "ca.mcgill.ecse.dslreasoner.VampireLanguage.SIGNED_LITERAL");
832
833
834 }
835 break;
836
837 }
838
839
840 }
841
842
843 }
844
845
846 }
847
848
849 leaveRule();
850
851 }
852
853 catch (RecognitionException re) {
854 recover(input,re);
855 appendSkippedTokens();
856 }
857 finally {
858 }
859 return current;
860 }
861 // $ANTLR end "ruleVLSName"
862
863
864 // $ANTLR start "entryRuleVLSComment"
865 // InternalVampireLanguage.g:359:1: entryRuleVLSComment returns [EObject current=null] : iv_ruleVLSComment= ruleVLSComment EOF ;
866 public final EObject entryRuleVLSComment() throws RecognitionException {
867 EObject current = null;
868
869 EObject iv_ruleVLSComment = null;
870
871
872 try {
873 // InternalVampireLanguage.g:359:51: (iv_ruleVLSComment= ruleVLSComment EOF )
874 // InternalVampireLanguage.g:360:2: iv_ruleVLSComment= ruleVLSComment EOF
875 {
876 newCompositeNode(grammarAccess.getVLSCommentRule());
877 pushFollow(FOLLOW_1);
878 iv_ruleVLSComment=ruleVLSComment();
879
880 state._fsp--;
881
882 current =iv_ruleVLSComment;
883 match(input,EOF,FOLLOW_2);
884
885 }
886
887 }
888
889 catch (RecognitionException re) {
890 recover(input,re);
891 appendSkippedTokens();
892 }
893 finally {
894 }
895 return current;
896 }
897 // $ANTLR end "entryRuleVLSComment"
898
899
900 // $ANTLR start "ruleVLSComment"
901 // InternalVampireLanguage.g:366:1: ruleVLSComment returns [EObject current=null] : (otherlv_0= '%' ( (lv_comment_1_0= RULE_SINGLE_COMMENT ) ) ) ;
902 public final EObject ruleVLSComment() throws RecognitionException {
903 EObject current = null;
904
905 Token otherlv_0=null;
906 Token lv_comment_1_0=null;
907
908
909 enterRule();
910
911 try {
912 // InternalVampireLanguage.g:372:2: ( (otherlv_0= '%' ( (lv_comment_1_0= RULE_SINGLE_COMMENT ) ) ) )
913 // InternalVampireLanguage.g:373:2: (otherlv_0= '%' ( (lv_comment_1_0= RULE_SINGLE_COMMENT ) ) )
914 {
915 // InternalVampireLanguage.g:373:2: (otherlv_0= '%' ( (lv_comment_1_0= RULE_SINGLE_COMMENT ) ) )
916 // InternalVampireLanguage.g:374:3: otherlv_0= '%' ( (lv_comment_1_0= RULE_SINGLE_COMMENT ) )
917 {
918 otherlv_0=(Token)match(input,31,FOLLOW_8);
919
920 newLeafNode(otherlv_0, grammarAccess.getVLSCommentAccess().getPercentSignKeyword_0());
921
922 // InternalVampireLanguage.g:378:3: ( (lv_comment_1_0= RULE_SINGLE_COMMENT ) )
923 // InternalVampireLanguage.g:379:4: (lv_comment_1_0= RULE_SINGLE_COMMENT )
924 {
925 // InternalVampireLanguage.g:379:4: (lv_comment_1_0= RULE_SINGLE_COMMENT )
926 // InternalVampireLanguage.g:380:5: lv_comment_1_0= RULE_SINGLE_COMMENT
927 {
928 lv_comment_1_0=(Token)match(input,RULE_SINGLE_COMMENT,FOLLOW_2);
929
930 newLeafNode(lv_comment_1_0, grammarAccess.getVLSCommentAccess().getCommentSINGLE_COMMENTTerminalRuleCall_1_0());
931
932
933 if (current==null) {
934 current = createModelElement(grammarAccess.getVLSCommentRule());
935 }
936 setWithLastConsumed(
937 current,
938 "comment",
939 lv_comment_1_0,
940 "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_COMMENT");
941
942
943 }
944
945
946 }
947
948
949 }
950
951
952 }
953
954
955 leaveRule();
956
957 }
958
959 catch (RecognitionException re) {
960 recover(input,re);
961 appendSkippedTokens();
962 }
963 finally {
964 }
965 return current;
966 }
967 // $ANTLR end "ruleVLSComment"
968
969
970 // $ANTLR start "entryRuleVLSConfirmations"
971 // InternalVampireLanguage.g:400:1: entryRuleVLSConfirmations returns [EObject current=null] : iv_ruleVLSConfirmations= ruleVLSConfirmations EOF ;
972 public final EObject entryRuleVLSConfirmations() throws RecognitionException {
973 EObject current = null;
974
975 EObject iv_ruleVLSConfirmations = null;
976
977
978 try {
979 // InternalVampireLanguage.g:400:57: (iv_ruleVLSConfirmations= ruleVLSConfirmations EOF )
980 // InternalVampireLanguage.g:401:2: iv_ruleVLSConfirmations= ruleVLSConfirmations EOF
981 {
982 newCompositeNode(grammarAccess.getVLSConfirmationsRule());
983 pushFollow(FOLLOW_1);
984 iv_ruleVLSConfirmations=ruleVLSConfirmations();
985
986 state._fsp--;
987
988 current =iv_ruleVLSConfirmations;
989 match(input,EOF,FOLLOW_2);
990
991 }
992
993 }
994
995 catch (RecognitionException re) {
996 recover(input,re);
997 appendSkippedTokens();
998 }
999 finally {
1000 }
1001 return current;
1002 }
1003 // $ANTLR end "entryRuleVLSConfirmations"
1004
1005
1006 // $ANTLR start "ruleVLSConfirmations"
1007 // InternalVampireLanguage.g:407:1: ruleVLSConfirmations returns [EObject current=null] : this_VLSSatisfiable_0= ruleVLSSatisfiable ;
1008 public final EObject ruleVLSConfirmations() throws RecognitionException {
1009 EObject current = null;
1010
1011 EObject this_VLSSatisfiable_0 = null;
1012
1013
1014
1015 enterRule();
1016
1017 try {
1018 // InternalVampireLanguage.g:413:2: (this_VLSSatisfiable_0= ruleVLSSatisfiable )
1019 // InternalVampireLanguage.g:414:2: this_VLSSatisfiable_0= ruleVLSSatisfiable
1020 {
1021
1022 newCompositeNode(grammarAccess.getVLSConfirmationsAccess().getVLSSatisfiableParserRuleCall());
1023
1024 pushFollow(FOLLOW_2);
1025 this_VLSSatisfiable_0=ruleVLSSatisfiable();
1026
1027 state._fsp--;
1028
1029
1030 current = this_VLSSatisfiable_0;
1031 afterParserOrEnumRuleCall();
1032
1033
1034 }
1035
1036
1037 leaveRule();
1038
1039 }
1040
1041 catch (RecognitionException re) {
1042 recover(input,re);
1043 appendSkippedTokens();
1044 }
1045 finally {
1046 }
1047 return current;
1048 }
1049 // $ANTLR end "ruleVLSConfirmations"
1050
1051
1052 // $ANTLR start "entryRuleVLSSatisfiable"
1053 // InternalVampireLanguage.g:425:1: entryRuleVLSSatisfiable returns [EObject current=null] : iv_ruleVLSSatisfiable= ruleVLSSatisfiable EOF ;
1054 public final EObject entryRuleVLSSatisfiable() throws RecognitionException {
1055 EObject current = null;
1056
1057 EObject iv_ruleVLSSatisfiable = null;
1058
1059
1060 try {
1061 // InternalVampireLanguage.g:425:55: (iv_ruleVLSSatisfiable= ruleVLSSatisfiable EOF )
1062 // InternalVampireLanguage.g:426:2: iv_ruleVLSSatisfiable= ruleVLSSatisfiable EOF
1063 {
1064 newCompositeNode(grammarAccess.getVLSSatisfiableRule());
1065 pushFollow(FOLLOW_1);
1066 iv_ruleVLSSatisfiable=ruleVLSSatisfiable();
1067
1068 state._fsp--;
1069
1070 current =iv_ruleVLSSatisfiable;
1071 match(input,EOF,FOLLOW_2);
1072
1073 }
1074
1075 }
1076
1077 catch (RecognitionException re) {
1078 recover(input,re);
1079 appendSkippedTokens();
1080 }
1081 finally {
1082 }
1083 return current;
1084 }
1085 // $ANTLR end "entryRuleVLSSatisfiable"
1086
1087
1088 // $ANTLR start "ruleVLSSatisfiable"
1089 // InternalVampireLanguage.g:432:1: ruleVLSSatisfiable returns [EObject current=null] : ( () otherlv_1= 'Satisfiable!' ) ;
1090 public final EObject ruleVLSSatisfiable() throws RecognitionException {
1091 EObject current = null;
1092
1093 Token otherlv_1=null;
1094
1095
1096 enterRule();
1097
1098 try {
1099 // InternalVampireLanguage.g:438:2: ( ( () otherlv_1= 'Satisfiable!' ) )
1100 // InternalVampireLanguage.g:439:2: ( () otherlv_1= 'Satisfiable!' )
1101 {
1102 // InternalVampireLanguage.g:439:2: ( () otherlv_1= 'Satisfiable!' )
1103 // InternalVampireLanguage.g:440:3: () otherlv_1= 'Satisfiable!'
1104 {
1105 // InternalVampireLanguage.g:440:3: ()
1106 // InternalVampireLanguage.g:441:4:
1107 {
1108
1109 current = forceCreateModelElement(
1110 grammarAccess.getVLSSatisfiableAccess().getVLSSatisfiableAction_0(),
1111 current);
1112
1113
1114 }
1115
1116 otherlv_1=(Token)match(input,32,FOLLOW_2);
1117
1118 newLeafNode(otherlv_1, grammarAccess.getVLSSatisfiableAccess().getSatisfiableKeyword_1());
1119
1120
1121 }
1122
1123
1124 }
1125
1126
1127 leaveRule();
1128
1129 }
1130
1131 catch (RecognitionException re) {
1132 recover(input,re);
1133 appendSkippedTokens();
1134 }
1135 finally {
1136 }
1137 return current;
1138 }
1139 // $ANTLR end "ruleVLSSatisfiable"
1140
1141
1142 // $ANTLR start "entryRuleVLSFofFormula"
1143 // InternalVampireLanguage.g:455:1: entryRuleVLSFofFormula returns [EObject current=null] : iv_ruleVLSFofFormula= ruleVLSFofFormula EOF ;
1144 public final EObject entryRuleVLSFofFormula() throws RecognitionException {
1145 EObject current = null;
1146
1147 EObject iv_ruleVLSFofFormula = null;
1148
1149
1150 try {
1151 // InternalVampireLanguage.g:455:54: (iv_ruleVLSFofFormula= ruleVLSFofFormula EOF )
1152 // InternalVampireLanguage.g:456:2: iv_ruleVLSFofFormula= ruleVLSFofFormula EOF
1153 {
1154 newCompositeNode(grammarAccess.getVLSFofFormulaRule());
1155 pushFollow(FOLLOW_1);
1156 iv_ruleVLSFofFormula=ruleVLSFofFormula();
1157
1158 state._fsp--;
1159
1160 current =iv_ruleVLSFofFormula;
1161 match(input,EOF,FOLLOW_2);
1162
1163 }
1164
1165 }
1166
1167 catch (RecognitionException re) {
1168 recover(input,re);
1169 appendSkippedTokens();
1170 }
1171 finally {
1172 }
1173 return current;
1174 }
1175 // $ANTLR end "entryRuleVLSFofFormula"
1176
1177
1178 // $ANTLR start "ruleVLSFofFormula"
1179 // InternalVampireLanguage.g:462:1: ruleVLSFofFormula returns [EObject current=null] : (otherlv_0= 'fof' otherlv_1= '(' ( ( (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) ) ) otherlv_3= ',' ( (lv_fofRole_4_0= ruleVLSRole ) ) otherlv_5= ',' ( (lv_fofFormula_6_0= ruleVLSTerm ) ) (otherlv_7= ',' ( (lv_annotations_8_0= ruleVLSAnnotation ) ) )? otherlv_9= ')' otherlv_10= '.' ) ;
1180 public final EObject ruleVLSFofFormula() throws RecognitionException {
1181 EObject current = null;
1182
1183 Token otherlv_0=null;
1184 Token otherlv_1=null;
1185 Token lv_name_2_1=null;
1186 Token lv_name_2_2=null;
1187 Token lv_name_2_3=null;
1188 Token otherlv_3=null;
1189 Token otherlv_5=null;
1190 Token otherlv_7=null;
1191 Token otherlv_9=null;
1192 Token otherlv_10=null;
1193 AntlrDatatypeRuleToken lv_fofRole_4_0 = null;
1194
1195 EObject lv_fofFormula_6_0 = null;
1196
1197 EObject lv_annotations_8_0 = null;
1198
1199
1200
1201 enterRule();
1202
1203 try {
1204 // InternalVampireLanguage.g:468:2: ( (otherlv_0= 'fof' otherlv_1= '(' ( ( (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) ) ) otherlv_3= ',' ( (lv_fofRole_4_0= ruleVLSRole ) ) otherlv_5= ',' ( (lv_fofFormula_6_0= ruleVLSTerm ) ) (otherlv_7= ',' ( (lv_annotations_8_0= ruleVLSAnnotation ) ) )? otherlv_9= ')' otherlv_10= '.' ) )
1205 // InternalVampireLanguage.g:469:2: (otherlv_0= 'fof' otherlv_1= '(' ( ( (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) ) ) otherlv_3= ',' ( (lv_fofRole_4_0= ruleVLSRole ) ) otherlv_5= ',' ( (lv_fofFormula_6_0= ruleVLSTerm ) ) (otherlv_7= ',' ( (lv_annotations_8_0= ruleVLSAnnotation ) ) )? otherlv_9= ')' otherlv_10= '.' )
1206 {
1207 // InternalVampireLanguage.g:469:2: (otherlv_0= 'fof' otherlv_1= '(' ( ( (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) ) ) otherlv_3= ',' ( (lv_fofRole_4_0= ruleVLSRole ) ) otherlv_5= ',' ( (lv_fofFormula_6_0= ruleVLSTerm ) ) (otherlv_7= ',' ( (lv_annotations_8_0= ruleVLSAnnotation ) ) )? otherlv_9= ')' otherlv_10= '.' )
1208 // InternalVampireLanguage.g:470:3: otherlv_0= 'fof' otherlv_1= '(' ( ( (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) ) ) otherlv_3= ',' ( (lv_fofRole_4_0= ruleVLSRole ) ) otherlv_5= ',' ( (lv_fofFormula_6_0= ruleVLSTerm ) ) (otherlv_7= ',' ( (lv_annotations_8_0= ruleVLSAnnotation ) ) )? otherlv_9= ')' otherlv_10= '.'
1209 {
1210 otherlv_0=(Token)match(input,33,FOLLOW_9);
1211
1212 newLeafNode(otherlv_0, grammarAccess.getVLSFofFormulaAccess().getFofKeyword_0());
1213
1214 otherlv_1=(Token)match(input,34,FOLLOW_10);
1215
1216 newLeafNode(otherlv_1, grammarAccess.getVLSFofFormulaAccess().getLeftParenthesisKeyword_1());
1217
1218 // InternalVampireLanguage.g:478:3: ( ( (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) ) )
1219 // InternalVampireLanguage.g:479:4: ( (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) )
1220 {
1221 // InternalVampireLanguage.g:479:4: ( (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) )
1222 // InternalVampireLanguage.g:480:5: (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE )
1223 {
1224 // InternalVampireLanguage.g:480:5: (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE )
1225 int alt5=3;
1226 switch ( input.LA(1) ) {
1227 case RULE_LOWER_WORD_ID:
1228 {
1229 alt5=1;
1230 }
1231 break;
1232 case RULE_SIGNED_LITERAL:
1233 {
1234 alt5=2;
1235 }
1236 break;
1237 case RULE_SINGLE_QUOTE:
1238 {
1239 alt5=3;
1240 }
1241 break;
1242 default:
1243 NoViableAltException nvae =
1244 new NoViableAltException("", 5, 0, input);
1245
1246 throw nvae;
1247 }
1248
1249 switch (alt5) {
1250 case 1 :
1251 // InternalVampireLanguage.g:481:6: lv_name_2_1= RULE_LOWER_WORD_ID
1252 {
1253 lv_name_2_1=(Token)match(input,RULE_LOWER_WORD_ID,FOLLOW_11);
1254
1255 newLeafNode(lv_name_2_1, grammarAccess.getVLSFofFormulaAccess().getNameLOWER_WORD_IDTerminalRuleCall_2_0_0());
1256
1257
1258 if (current==null) {
1259 current = createModelElement(grammarAccess.getVLSFofFormulaRule());
1260 }
1261 setWithLastConsumed(
1262 current,
1263 "name",
1264 lv_name_2_1,
1265 "ca.mcgill.ecse.dslreasoner.VampireLanguage.LOWER_WORD_ID");
1266
1267
1268 }
1269 break;
1270 case 2 :
1271 // InternalVampireLanguage.g:496:6: lv_name_2_2= RULE_SIGNED_LITERAL
1272 {
1273 lv_name_2_2=(Token)match(input,RULE_SIGNED_LITERAL,FOLLOW_11);
1274
1275 newLeafNode(lv_name_2_2, grammarAccess.getVLSFofFormulaAccess().getNameSIGNED_LITERALTerminalRuleCall_2_0_1());
1276
1277
1278 if (current==null) {
1279 current = createModelElement(grammarAccess.getVLSFofFormulaRule());
1280 }
1281 setWithLastConsumed(
1282 current,
1283 "name",
1284 lv_name_2_2,
1285 "ca.mcgill.ecse.dslreasoner.VampireLanguage.SIGNED_LITERAL");
1286
1287
1288 }
1289 break;
1290 case 3 :
1291 // InternalVampireLanguage.g:511:6: lv_name_2_3= RULE_SINGLE_QUOTE
1292 {
1293 lv_name_2_3=(Token)match(input,RULE_SINGLE_QUOTE,FOLLOW_11);
1294
1295 newLeafNode(lv_name_2_3, grammarAccess.getVLSFofFormulaAccess().getNameSINGLE_QUOTETerminalRuleCall_2_0_2());
1296
1297
1298 if (current==null) {
1299 current = createModelElement(grammarAccess.getVLSFofFormulaRule());
1300 }
1301 setWithLastConsumed(
1302 current,
1303 "name",
1304 lv_name_2_3,
1305 "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_QUOTE");
1306
1307
1308 }
1309 break;
1310
1311 }
1312
1313
1314 }
1315
1316
1317 }
1318
1319 otherlv_3=(Token)match(input,29,FOLLOW_12);
1320
1321 newLeafNode(otherlv_3, grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_3());
1322
1323 // InternalVampireLanguage.g:532:3: ( (lv_fofRole_4_0= ruleVLSRole ) )
1324 // InternalVampireLanguage.g:533:4: (lv_fofRole_4_0= ruleVLSRole )
1325 {
1326 // InternalVampireLanguage.g:533:4: (lv_fofRole_4_0= ruleVLSRole )
1327 // InternalVampireLanguage.g:534:5: lv_fofRole_4_0= ruleVLSRole
1328 {
1329
1330 newCompositeNode(grammarAccess.getVLSFofFormulaAccess().getFofRoleVLSRoleParserRuleCall_4_0());
1331
1332 pushFollow(FOLLOW_11);
1333 lv_fofRole_4_0=ruleVLSRole();
1334
1335 state._fsp--;
1336
1337
1338 if (current==null) {
1339 current = createModelElementForParent(grammarAccess.getVLSFofFormulaRule());
1340 }
1341 set(
1342 current,
1343 "fofRole",
1344 lv_fofRole_4_0,
1345 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSRole");
1346 afterParserOrEnumRuleCall();
1347
1348
1349 }
1350
1351
1352 }
1353
1354 otherlv_5=(Token)match(input,29,FOLLOW_13);
1355
1356 newLeafNode(otherlv_5, grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_5());
1357
1358 // InternalVampireLanguage.g:555:3: ( (lv_fofFormula_6_0= ruleVLSTerm ) )
1359 // InternalVampireLanguage.g:556:4: (lv_fofFormula_6_0= ruleVLSTerm )
1360 {
1361 // InternalVampireLanguage.g:556:4: (lv_fofFormula_6_0= ruleVLSTerm )
1362 // InternalVampireLanguage.g:557:5: lv_fofFormula_6_0= ruleVLSTerm
1363 {
1364
1365 newCompositeNode(grammarAccess.getVLSFofFormulaAccess().getFofFormulaVLSTermParserRuleCall_6_0());
1366
1367 pushFollow(FOLLOW_14);
1368 lv_fofFormula_6_0=ruleVLSTerm();
1369
1370 state._fsp--;
1371
1372
1373 if (current==null) {
1374 current = createModelElementForParent(grammarAccess.getVLSFofFormulaRule());
1375 }
1376 set(
1377 current,
1378 "fofFormula",
1379 lv_fofFormula_6_0,
1380 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSTerm");
1381 afterParserOrEnumRuleCall();
1382
1383
1384 }
1385
1386
1387 }
1388
1389 // InternalVampireLanguage.g:574:3: (otherlv_7= ',' ( (lv_annotations_8_0= ruleVLSAnnotation ) ) )?
1390 int alt6=2;
1391 int LA6_0 = input.LA(1);
1392
1393 if ( (LA6_0==29) ) {
1394 alt6=1;
1395 }
1396 switch (alt6) {
1397 case 1 :
1398 // InternalVampireLanguage.g:575:4: otherlv_7= ',' ( (lv_annotations_8_0= ruleVLSAnnotation ) )
1399 {
1400 otherlv_7=(Token)match(input,29,FOLLOW_15);
1401
1402 newLeafNode(otherlv_7, grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_7_0());
1403
1404 // InternalVampireLanguage.g:579:4: ( (lv_annotations_8_0= ruleVLSAnnotation ) )
1405 // InternalVampireLanguage.g:580:5: (lv_annotations_8_0= ruleVLSAnnotation )
1406 {
1407 // InternalVampireLanguage.g:580:5: (lv_annotations_8_0= ruleVLSAnnotation )
1408 // InternalVampireLanguage.g:581:6: lv_annotations_8_0= ruleVLSAnnotation
1409 {
1410
1411 newCompositeNode(grammarAccess.getVLSFofFormulaAccess().getAnnotationsVLSAnnotationParserRuleCall_7_1_0());
1412
1413 pushFollow(FOLLOW_16);
1414 lv_annotations_8_0=ruleVLSAnnotation();
1415
1416 state._fsp--;
1417
1418
1419 if (current==null) {
1420 current = createModelElementForParent(grammarAccess.getVLSFofFormulaRule());
1421 }
1422 set(
1423 current,
1424 "annotations",
1425 lv_annotations_8_0,
1426 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAnnotation");
1427 afterParserOrEnumRuleCall();
1428
1429
1430 }
1431
1432
1433 }
1434
1435
1436 }
1437 break;
1438
1439 }
1440
1441 otherlv_9=(Token)match(input,35,FOLLOW_17);
1442
1443 newLeafNode(otherlv_9, grammarAccess.getVLSFofFormulaAccess().getRightParenthesisKeyword_8());
1444
1445 otherlv_10=(Token)match(input,36,FOLLOW_2);
1446
1447 newLeafNode(otherlv_10, grammarAccess.getVLSFofFormulaAccess().getFullStopKeyword_9());
1448
1449
1450 }
1451
1452
1453 }
1454
1455
1456 leaveRule();
1457
1458 }
1459
1460 catch (RecognitionException re) {
1461 recover(input,re);
1462 appendSkippedTokens();
1463 }
1464 finally {
1465 }
1466 return current;
1467 }
1468 // $ANTLR end "ruleVLSFofFormula"
1469
1470
1471 // $ANTLR start "entryRuleVLSTffFormula"
1472 // InternalVampireLanguage.g:611:1: entryRuleVLSTffFormula returns [EObject current=null] : iv_ruleVLSTffFormula= ruleVLSTffFormula EOF ;
1473 public final EObject entryRuleVLSTffFormula() throws RecognitionException {
1474 EObject current = null;
1475
1476 EObject iv_ruleVLSTffFormula = null;
1477
1478
1479 try {
1480 // InternalVampireLanguage.g:611:54: (iv_ruleVLSTffFormula= ruleVLSTffFormula EOF )
1481 // InternalVampireLanguage.g:612:2: iv_ruleVLSTffFormula= ruleVLSTffFormula EOF
1482 {
1483 newCompositeNode(grammarAccess.getVLSTffFormulaRule());
1484 pushFollow(FOLLOW_1);
1485 iv_ruleVLSTffFormula=ruleVLSTffFormula();
1486
1487 state._fsp--;
1488
1489 current =iv_ruleVLSTffFormula;
1490 match(input,EOF,FOLLOW_2);
1491
1492 }
1493
1494 }
1495
1496 catch (RecognitionException re) {
1497 recover(input,re);
1498 appendSkippedTokens();
1499 }
1500 finally {
1501 }
1502 return current;
1503 }
1504 // $ANTLR end "entryRuleVLSTffFormula"
1505
1506
1507 // $ANTLR start "ruleVLSTffFormula"
1508 // InternalVampireLanguage.g:618:1: ruleVLSTffFormula returns [EObject current=null] : (otherlv_0= 'tff' otherlv_1= '(' ( ( (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) ) ) otherlv_3= ',' ( (lv_fofRole_4_0= ruleVLSRole ) ) otherlv_5= ',' ( (lv_fofFormula_6_0= ruleVLSTerm ) ) (otherlv_7= ',' ( (lv_annotations_8_0= ruleVLSAnnotation ) ) )? otherlv_9= ')' otherlv_10= '.' ) ;
1509 public final EObject ruleVLSTffFormula() throws RecognitionException {
1510 EObject current = null;
1511
1512 Token otherlv_0=null;
1513 Token otherlv_1=null;
1514 Token lv_name_2_1=null;
1515 Token lv_name_2_2=null;
1516 Token lv_name_2_3=null;
1517 Token otherlv_3=null;
1518 Token otherlv_5=null;
1519 Token otherlv_7=null;
1520 Token otherlv_9=null;
1521 Token otherlv_10=null;
1522 AntlrDatatypeRuleToken lv_fofRole_4_0 = null;
1523
1524 EObject lv_fofFormula_6_0 = null;
1525
1526 EObject lv_annotations_8_0 = null;
1527
1528
1529
1530 enterRule();
1531
1532 try {
1533 // InternalVampireLanguage.g:624:2: ( (otherlv_0= 'tff' otherlv_1= '(' ( ( (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) ) ) otherlv_3= ',' ( (lv_fofRole_4_0= ruleVLSRole ) ) otherlv_5= ',' ( (lv_fofFormula_6_0= ruleVLSTerm ) ) (otherlv_7= ',' ( (lv_annotations_8_0= ruleVLSAnnotation ) ) )? otherlv_9= ')' otherlv_10= '.' ) )
1534 // InternalVampireLanguage.g:625:2: (otherlv_0= 'tff' otherlv_1= '(' ( ( (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) ) ) otherlv_3= ',' ( (lv_fofRole_4_0= ruleVLSRole ) ) otherlv_5= ',' ( (lv_fofFormula_6_0= ruleVLSTerm ) ) (otherlv_7= ',' ( (lv_annotations_8_0= ruleVLSAnnotation ) ) )? otherlv_9= ')' otherlv_10= '.' )
1535 {
1536 // InternalVampireLanguage.g:625:2: (otherlv_0= 'tff' otherlv_1= '(' ( ( (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) ) ) otherlv_3= ',' ( (lv_fofRole_4_0= ruleVLSRole ) ) otherlv_5= ',' ( (lv_fofFormula_6_0= ruleVLSTerm ) ) (otherlv_7= ',' ( (lv_annotations_8_0= ruleVLSAnnotation ) ) )? otherlv_9= ')' otherlv_10= '.' )
1537 // InternalVampireLanguage.g:626:3: otherlv_0= 'tff' otherlv_1= '(' ( ( (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) ) ) otherlv_3= ',' ( (lv_fofRole_4_0= ruleVLSRole ) ) otherlv_5= ',' ( (lv_fofFormula_6_0= ruleVLSTerm ) ) (otherlv_7= ',' ( (lv_annotations_8_0= ruleVLSAnnotation ) ) )? otherlv_9= ')' otherlv_10= '.'
1538 {
1539 otherlv_0=(Token)match(input,37,FOLLOW_9);
1540
1541 newLeafNode(otherlv_0, grammarAccess.getVLSTffFormulaAccess().getTffKeyword_0());
1542
1543 otherlv_1=(Token)match(input,34,FOLLOW_10);
1544
1545 newLeafNode(otherlv_1, grammarAccess.getVLSTffFormulaAccess().getLeftParenthesisKeyword_1());
1546
1547 // InternalVampireLanguage.g:634:3: ( ( (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) ) )
1548 // InternalVampireLanguage.g:635:4: ( (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) )
1549 {
1550 // InternalVampireLanguage.g:635:4: ( (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) )
1551 // InternalVampireLanguage.g:636:5: (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE )
1552 {
1553 // InternalVampireLanguage.g:636:5: (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE )
1554 int alt7=3;
1555 switch ( input.LA(1) ) {
1556 case RULE_LOWER_WORD_ID:
1557 {
1558 alt7=1;
1559 }
1560 break;
1561 case RULE_SIGNED_LITERAL:
1562 {
1563 alt7=2;
1564 }
1565 break;
1566 case RULE_SINGLE_QUOTE:
1567 {
1568 alt7=3;
1569 }
1570 break;
1571 default:
1572 NoViableAltException nvae =
1573 new NoViableAltException("", 7, 0, input);
1574
1575 throw nvae;
1576 }
1577
1578 switch (alt7) {
1579 case 1 :
1580 // InternalVampireLanguage.g:637:6: lv_name_2_1= RULE_LOWER_WORD_ID
1581 {
1582 lv_name_2_1=(Token)match(input,RULE_LOWER_WORD_ID,FOLLOW_11);
1583
1584 newLeafNode(lv_name_2_1, grammarAccess.getVLSTffFormulaAccess().getNameLOWER_WORD_IDTerminalRuleCall_2_0_0());
1585
1586
1587 if (current==null) {
1588 current = createModelElement(grammarAccess.getVLSTffFormulaRule());
1589 }
1590 setWithLastConsumed(
1591 current,
1592 "name",
1593 lv_name_2_1,
1594 "ca.mcgill.ecse.dslreasoner.VampireLanguage.LOWER_WORD_ID");
1595
1596
1597 }
1598 break;
1599 case 2 :
1600 // InternalVampireLanguage.g:652:6: lv_name_2_2= RULE_SIGNED_LITERAL
1601 {
1602 lv_name_2_2=(Token)match(input,RULE_SIGNED_LITERAL,FOLLOW_11);
1603
1604 newLeafNode(lv_name_2_2, grammarAccess.getVLSTffFormulaAccess().getNameSIGNED_LITERALTerminalRuleCall_2_0_1());
1605
1606
1607 if (current==null) {
1608 current = createModelElement(grammarAccess.getVLSTffFormulaRule());
1609 }
1610 setWithLastConsumed(
1611 current,
1612 "name",
1613 lv_name_2_2,
1614 "ca.mcgill.ecse.dslreasoner.VampireLanguage.SIGNED_LITERAL");
1615
1616
1617 }
1618 break;
1619 case 3 :
1620 // InternalVampireLanguage.g:667:6: lv_name_2_3= RULE_SINGLE_QUOTE
1621 {
1622 lv_name_2_3=(Token)match(input,RULE_SINGLE_QUOTE,FOLLOW_11);
1623
1624 newLeafNode(lv_name_2_3, grammarAccess.getVLSTffFormulaAccess().getNameSINGLE_QUOTETerminalRuleCall_2_0_2());
1625
1626
1627 if (current==null) {
1628 current = createModelElement(grammarAccess.getVLSTffFormulaRule());
1629 }
1630 setWithLastConsumed(
1631 current,
1632 "name",
1633 lv_name_2_3,
1634 "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_QUOTE");
1635
1636
1637 }
1638 break;
1639
1640 }
1641
1642
1643 }
1644
1645
1646 }
1647
1648 otherlv_3=(Token)match(input,29,FOLLOW_12);
1649
1650 newLeafNode(otherlv_3, grammarAccess.getVLSTffFormulaAccess().getCommaKeyword_3());
1651
1652 // InternalVampireLanguage.g:688:3: ( (lv_fofRole_4_0= ruleVLSRole ) )
1653 // InternalVampireLanguage.g:689:4: (lv_fofRole_4_0= ruleVLSRole )
1654 {
1655 // InternalVampireLanguage.g:689:4: (lv_fofRole_4_0= ruleVLSRole )
1656 // InternalVampireLanguage.g:690:5: lv_fofRole_4_0= ruleVLSRole
1657 {
1658
1659 newCompositeNode(grammarAccess.getVLSTffFormulaAccess().getFofRoleVLSRoleParserRuleCall_4_0());
1660
1661 pushFollow(FOLLOW_11);
1662 lv_fofRole_4_0=ruleVLSRole();
1663
1664 state._fsp--;
1665
1666
1667 if (current==null) {
1668 current = createModelElementForParent(grammarAccess.getVLSTffFormulaRule());
1669 }
1670 set(
1671 current,
1672 "fofRole",
1673 lv_fofRole_4_0,
1674 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSRole");
1675 afterParserOrEnumRuleCall();
1676
1677
1678 }
1679
1680
1681 }
1682
1683 otherlv_5=(Token)match(input,29,FOLLOW_13);
1684
1685 newLeafNode(otherlv_5, grammarAccess.getVLSTffFormulaAccess().getCommaKeyword_5());
1686
1687 // InternalVampireLanguage.g:711:3: ( (lv_fofFormula_6_0= ruleVLSTerm ) )
1688 // InternalVampireLanguage.g:712:4: (lv_fofFormula_6_0= ruleVLSTerm )
1689 {
1690 // InternalVampireLanguage.g:712:4: (lv_fofFormula_6_0= ruleVLSTerm )
1691 // InternalVampireLanguage.g:713:5: lv_fofFormula_6_0= ruleVLSTerm
1692 {
1693
1694 newCompositeNode(grammarAccess.getVLSTffFormulaAccess().getFofFormulaVLSTermParserRuleCall_6_0());
1695
1696 pushFollow(FOLLOW_14);
1697 lv_fofFormula_6_0=ruleVLSTerm();
1698
1699 state._fsp--;
1700
1701
1702 if (current==null) {
1703 current = createModelElementForParent(grammarAccess.getVLSTffFormulaRule());
1704 }
1705 set(
1706 current,
1707 "fofFormula",
1708 lv_fofFormula_6_0,
1709 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSTerm");
1710 afterParserOrEnumRuleCall();
1711
1712
1713 }
1714
1715
1716 }
1717
1718 // InternalVampireLanguage.g:730:3: (otherlv_7= ',' ( (lv_annotations_8_0= ruleVLSAnnotation ) ) )?
1719 int alt8=2;
1720 int LA8_0 = input.LA(1);
1721
1722 if ( (LA8_0==29) ) {
1723 alt8=1;
1724 }
1725 switch (alt8) {
1726 case 1 :
1727 // InternalVampireLanguage.g:731:4: otherlv_7= ',' ( (lv_annotations_8_0= ruleVLSAnnotation ) )
1728 {
1729 otherlv_7=(Token)match(input,29,FOLLOW_15);
1730
1731 newLeafNode(otherlv_7, grammarAccess.getVLSTffFormulaAccess().getCommaKeyword_7_0());
1732
1733 // InternalVampireLanguage.g:735:4: ( (lv_annotations_8_0= ruleVLSAnnotation ) )
1734 // InternalVampireLanguage.g:736:5: (lv_annotations_8_0= ruleVLSAnnotation )
1735 {
1736 // InternalVampireLanguage.g:736:5: (lv_annotations_8_0= ruleVLSAnnotation )
1737 // InternalVampireLanguage.g:737:6: lv_annotations_8_0= ruleVLSAnnotation
1738 {
1739
1740 newCompositeNode(grammarAccess.getVLSTffFormulaAccess().getAnnotationsVLSAnnotationParserRuleCall_7_1_0());
1741
1742 pushFollow(FOLLOW_16);
1743 lv_annotations_8_0=ruleVLSAnnotation();
1744
1745 state._fsp--;
1746
1747
1748 if (current==null) {
1749 current = createModelElementForParent(grammarAccess.getVLSTffFormulaRule());
1750 }
1751 set(
1752 current,
1753 "annotations",
1754 lv_annotations_8_0,
1755 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAnnotation");
1756 afterParserOrEnumRuleCall();
1757
1758
1759 }
1760
1761
1762 }
1763
1764
1765 }
1766 break;
1767
1768 }
1769
1770 otherlv_9=(Token)match(input,35,FOLLOW_17);
1771
1772 newLeafNode(otherlv_9, grammarAccess.getVLSTffFormulaAccess().getRightParenthesisKeyword_8());
1773
1774 otherlv_10=(Token)match(input,36,FOLLOW_2);
1775
1776 newLeafNode(otherlv_10, grammarAccess.getVLSTffFormulaAccess().getFullStopKeyword_9());
1777
1778
1779 }
1780
1781
1782 }
1783
1784
1785 leaveRule();
1786
1787 }
1788
1789 catch (RecognitionException re) {
1790 recover(input,re);
1791 appendSkippedTokens();
1792 }
1793 finally {
1794 }
1795 return current;
1796 }
1797 // $ANTLR end "ruleVLSTffFormula"
1798
1799
1800 // $ANTLR start "entryRuleVLSRole"
1801 // InternalVampireLanguage.g:767:1: entryRuleVLSRole returns [String current=null] : iv_ruleVLSRole= ruleVLSRole EOF ;
1802 public final String entryRuleVLSRole() throws RecognitionException {
1803 String current = null;
1804
1805 AntlrDatatypeRuleToken iv_ruleVLSRole = null;
1806
1807
1808 try {
1809 // InternalVampireLanguage.g:767:47: (iv_ruleVLSRole= ruleVLSRole EOF )
1810 // InternalVampireLanguage.g:768:2: iv_ruleVLSRole= ruleVLSRole EOF
1811 {
1812 newCompositeNode(grammarAccess.getVLSRoleRule());
1813 pushFollow(FOLLOW_1);
1814 iv_ruleVLSRole=ruleVLSRole();
1815
1816 state._fsp--;
1817
1818 current =iv_ruleVLSRole.getText();
1819 match(input,EOF,FOLLOW_2);
1820
1821 }
1822
1823 }
1824
1825 catch (RecognitionException re) {
1826 recover(input,re);
1827 appendSkippedTokens();
1828 }
1829 finally {
1830 }
1831 return current;
1832 }
1833 // $ANTLR end "entryRuleVLSRole"
1834
1835
1836 // $ANTLR start "ruleVLSRole"
1837 // InternalVampireLanguage.g:774:1: ruleVLSRole returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= 'axiom' | kw= 'conjecture' | kw= 'hypothesis' | kw= 'definition' | kw= 'assumption' | kw= 'lemma' | kw= 'theorem' | kw= 'corollary' | kw= 'negated_conjecture' | kw= 'plain' | kw= 'type' | kw= 'fi_domain' | kw= 'fi_functors' | kw= 'fi_predicates' | kw= 'unknown' ) ;
1838 public final AntlrDatatypeRuleToken ruleVLSRole() throws RecognitionException {
1839 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
1840
1841 Token kw=null;
1842
1843
1844 enterRule();
1845
1846 try {
1847 // InternalVampireLanguage.g:780:2: ( (kw= 'axiom' | kw= 'conjecture' | kw= 'hypothesis' | kw= 'definition' | kw= 'assumption' | kw= 'lemma' | kw= 'theorem' | kw= 'corollary' | kw= 'negated_conjecture' | kw= 'plain' | kw= 'type' | kw= 'fi_domain' | kw= 'fi_functors' | kw= 'fi_predicates' | kw= 'unknown' ) )
1848 // InternalVampireLanguage.g:781:2: (kw= 'axiom' | kw= 'conjecture' | kw= 'hypothesis' | kw= 'definition' | kw= 'assumption' | kw= 'lemma' | kw= 'theorem' | kw= 'corollary' | kw= 'negated_conjecture' | kw= 'plain' | kw= 'type' | kw= 'fi_domain' | kw= 'fi_functors' | kw= 'fi_predicates' | kw= 'unknown' )
1849 {
1850 // InternalVampireLanguage.g:781:2: (kw= 'axiom' | kw= 'conjecture' | kw= 'hypothesis' | kw= 'definition' | kw= 'assumption' | kw= 'lemma' | kw= 'theorem' | kw= 'corollary' | kw= 'negated_conjecture' | kw= 'plain' | kw= 'type' | kw= 'fi_domain' | kw= 'fi_functors' | kw= 'fi_predicates' | kw= 'unknown' )
1851 int alt9=15;
1852 switch ( input.LA(1) ) {
1853 case 38:
1854 {
1855 alt9=1;
1856 }
1857 break;
1858 case 39:
1859 {
1860 alt9=2;
1861 }
1862 break;
1863 case 40:
1864 {
1865 alt9=3;
1866 }
1867 break;
1868 case 41:
1869 {
1870 alt9=4;
1871 }
1872 break;
1873 case 42:
1874 {
1875 alt9=5;
1876 }
1877 break;
1878 case 43:
1879 {
1880 alt9=6;
1881 }
1882 break;
1883 case 44:
1884 {
1885 alt9=7;
1886 }
1887 break;
1888 case 45:
1889 {
1890 alt9=8;
1891 }
1892 break;
1893 case 46:
1894 {
1895 alt9=9;
1896 }
1897 break;
1898 case 47:
1899 {
1900 alt9=10;
1901 }
1902 break;
1903 case 48:
1904 {
1905 alt9=11;
1906 }
1907 break;
1908 case 49:
1909 {
1910 alt9=12;
1911 }
1912 break;
1913 case 50:
1914 {
1915 alt9=13;
1916 }
1917 break;
1918 case 51:
1919 {
1920 alt9=14;
1921 }
1922 break;
1923 case 52:
1924 {
1925 alt9=15;
1926 }
1927 break;
1928 default:
1929 NoViableAltException nvae =
1930 new NoViableAltException("", 9, 0, input);
1931
1932 throw nvae;
1933 }
1934
1935 switch (alt9) {
1936 case 1 :
1937 // InternalVampireLanguage.g:782:3: kw= 'axiom'
1938 {
1939 kw=(Token)match(input,38,FOLLOW_2);
1940
1941 current.merge(kw);
1942 newLeafNode(kw, grammarAccess.getVLSRoleAccess().getAxiomKeyword_0());
1943
1944
1945 }
1946 break;
1947 case 2 :
1948 // InternalVampireLanguage.g:788:3: kw= 'conjecture'
1949 {
1950 kw=(Token)match(input,39,FOLLOW_2);
1951
1952 current.merge(kw);
1953 newLeafNode(kw, grammarAccess.getVLSRoleAccess().getConjectureKeyword_1());
1954
1955
1956 }
1957 break;
1958 case 3 :
1959 // InternalVampireLanguage.g:794:3: kw= 'hypothesis'
1960 {
1961 kw=(Token)match(input,40,FOLLOW_2);
1962
1963 current.merge(kw);
1964 newLeafNode(kw, grammarAccess.getVLSRoleAccess().getHypothesisKeyword_2());
1965
1966
1967 }
1968 break;
1969 case 4 :
1970 // InternalVampireLanguage.g:800:3: kw= 'definition'
1971 {
1972 kw=(Token)match(input,41,FOLLOW_2);
1973
1974 current.merge(kw);
1975 newLeafNode(kw, grammarAccess.getVLSRoleAccess().getDefinitionKeyword_3());
1976
1977
1978 }
1979 break;
1980 case 5 :
1981 // InternalVampireLanguage.g:806:3: kw= 'assumption'
1982 {
1983 kw=(Token)match(input,42,FOLLOW_2);
1984
1985 current.merge(kw);
1986 newLeafNode(kw, grammarAccess.getVLSRoleAccess().getAssumptionKeyword_4());
1987
1988
1989 }
1990 break;
1991 case 6 :
1992 // InternalVampireLanguage.g:812:3: kw= 'lemma'
1993 {
1994 kw=(Token)match(input,43,FOLLOW_2);
1995
1996 current.merge(kw);
1997 newLeafNode(kw, grammarAccess.getVLSRoleAccess().getLemmaKeyword_5());
1998
1999
2000 }
2001 break;
2002 case 7 :
2003 // InternalVampireLanguage.g:818:3: kw= 'theorem'
2004 {
2005 kw=(Token)match(input,44,FOLLOW_2);
2006
2007 current.merge(kw);
2008 newLeafNode(kw, grammarAccess.getVLSRoleAccess().getTheoremKeyword_6());
2009
2010
2011 }
2012 break;
2013 case 8 :
2014 // InternalVampireLanguage.g:824:3: kw= 'corollary'
2015 {
2016 kw=(Token)match(input,45,FOLLOW_2);
2017
2018 current.merge(kw);
2019 newLeafNode(kw, grammarAccess.getVLSRoleAccess().getCorollaryKeyword_7());
2020
2021
2022 }
2023 break;
2024 case 9 :
2025 // InternalVampireLanguage.g:830:3: kw= 'negated_conjecture'
2026 {
2027 kw=(Token)match(input,46,FOLLOW_2);
2028
2029 current.merge(kw);
2030 newLeafNode(kw, grammarAccess.getVLSRoleAccess().getNegated_conjectureKeyword_8());
2031
2032
2033 }
2034 break;
2035 case 10 :
2036 // InternalVampireLanguage.g:836:3: kw= 'plain'
2037 {
2038 kw=(Token)match(input,47,FOLLOW_2);
2039
2040 current.merge(kw);
2041 newLeafNode(kw, grammarAccess.getVLSRoleAccess().getPlainKeyword_9());
2042
2043
2044 }
2045 break;
2046 case 11 :
2047 // InternalVampireLanguage.g:842:3: kw= 'type'
2048 {
2049 kw=(Token)match(input,48,FOLLOW_2);
2050
2051 current.merge(kw);
2052 newLeafNode(kw, grammarAccess.getVLSRoleAccess().getTypeKeyword_10());
2053
2054
2055 }
2056 break;
2057 case 12 :
2058 // InternalVampireLanguage.g:848:3: kw= 'fi_domain'
2059 {
2060 kw=(Token)match(input,49,FOLLOW_2);
2061
2062 current.merge(kw);
2063 newLeafNode(kw, grammarAccess.getVLSRoleAccess().getFi_domainKeyword_11());
2064
2065
2066 }
2067 break;
2068 case 13 :
2069 // InternalVampireLanguage.g:854:3: kw= 'fi_functors'
2070 {
2071 kw=(Token)match(input,50,FOLLOW_2);
2072
2073 current.merge(kw);
2074 newLeafNode(kw, grammarAccess.getVLSRoleAccess().getFi_functorsKeyword_12());
2075
2076
2077 }
2078 break;
2079 case 14 :
2080 // InternalVampireLanguage.g:860:3: kw= 'fi_predicates'
2081 {
2082 kw=(Token)match(input,51,FOLLOW_2);
2083
2084 current.merge(kw);
2085 newLeafNode(kw, grammarAccess.getVLSRoleAccess().getFi_predicatesKeyword_13());
2086
2087
2088 }
2089 break;
2090 case 15 :
2091 // InternalVampireLanguage.g:866:3: kw= 'unknown'
2092 {
2093 kw=(Token)match(input,52,FOLLOW_2);
2094
2095 current.merge(kw);
2096 newLeafNode(kw, grammarAccess.getVLSRoleAccess().getUnknownKeyword_14());
2097
2098
2099 }
2100 break;
2101
2102 }
2103
2104
2105 }
2106
2107
2108 leaveRule();
2109
2110 }
2111
2112 catch (RecognitionException re) {
2113 recover(input,re);
2114 appendSkippedTokens();
2115 }
2116 finally {
2117 }
2118 return current;
2119 }
2120 // $ANTLR end "ruleVLSRole"
2121
2122
2123 // $ANTLR start "entryRuleVLSAnnotation"
2124 // InternalVampireLanguage.g:875:1: entryRuleVLSAnnotation returns [EObject current=null] : iv_ruleVLSAnnotation= ruleVLSAnnotation EOF ;
2125 public final EObject entryRuleVLSAnnotation() throws RecognitionException {
2126 EObject current = null;
2127
2128 EObject iv_ruleVLSAnnotation = null;
2129
2130
2131 try {
2132 // InternalVampireLanguage.g:875:54: (iv_ruleVLSAnnotation= ruleVLSAnnotation EOF )
2133 // InternalVampireLanguage.g:876:2: iv_ruleVLSAnnotation= ruleVLSAnnotation EOF
2134 {
2135 newCompositeNode(grammarAccess.getVLSAnnotationRule());
2136 pushFollow(FOLLOW_1);
2137 iv_ruleVLSAnnotation=ruleVLSAnnotation();
2138
2139 state._fsp--;
2140
2141 current =iv_ruleVLSAnnotation;
2142 match(input,EOF,FOLLOW_2);
2143
2144 }
2145
2146 }
2147
2148 catch (RecognitionException re) {
2149 recover(input,re);
2150 appendSkippedTokens();
2151 }
2152 finally {
2153 }
2154 return current;
2155 }
2156 // $ANTLR end "entryRuleVLSAnnotation"
2157
2158
2159 // $ANTLR start "ruleVLSAnnotation"
2160 // InternalVampireLanguage.g:882:1: ruleVLSAnnotation returns [EObject current=null] : ( (otherlv_0= '[' )? ( ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= ruleVLSRole ) ) )? (otherlv_2= '(' ( (lv_followup_3_0= ruleVLSAnnotationTerms ) ) otherlv_4= ')' )? (otherlv_5= ']' )? ) ;
2161 public final EObject ruleVLSAnnotation() throws RecognitionException {
2162 EObject current = null;
2163
2164 Token otherlv_0=null;
2165 Token lv_name_1_1=null;
2166 Token lv_name_1_2=null;
2167 Token otherlv_2=null;
2168 Token otherlv_4=null;
2169 Token otherlv_5=null;
2170 AntlrDatatypeRuleToken lv_name_1_3 = null;
2171
2172 EObject lv_followup_3_0 = null;
2173
2174
2175
2176 enterRule();
2177
2178 try {
2179 // InternalVampireLanguage.g:888:2: ( ( (otherlv_0= '[' )? ( ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= ruleVLSRole ) ) )? (otherlv_2= '(' ( (lv_followup_3_0= ruleVLSAnnotationTerms ) ) otherlv_4= ')' )? (otherlv_5= ']' )? ) )
2180 // InternalVampireLanguage.g:889:2: ( (otherlv_0= '[' )? ( ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= ruleVLSRole ) ) )? (otherlv_2= '(' ( (lv_followup_3_0= ruleVLSAnnotationTerms ) ) otherlv_4= ')' )? (otherlv_5= ']' )? )
2181 {
2182 // InternalVampireLanguage.g:889:2: ( (otherlv_0= '[' )? ( ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= ruleVLSRole ) ) )? (otherlv_2= '(' ( (lv_followup_3_0= ruleVLSAnnotationTerms ) ) otherlv_4= ')' )? (otherlv_5= ']' )? )
2183 // InternalVampireLanguage.g:890:3: (otherlv_0= '[' )? ( ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= ruleVLSRole ) ) )? (otherlv_2= '(' ( (lv_followup_3_0= ruleVLSAnnotationTerms ) ) otherlv_4= ')' )? (otherlv_5= ']' )?
2184 {
2185 // InternalVampireLanguage.g:890:3: (otherlv_0= '[' )?
2186 int alt10=2;
2187 int LA10_0 = input.LA(1);
2188
2189 if ( (LA10_0==53) ) {
2190 alt10=1;
2191 }
2192 switch (alt10) {
2193 case 1 :
2194 // InternalVampireLanguage.g:891:4: otherlv_0= '['
2195 {
2196 otherlv_0=(Token)match(input,53,FOLLOW_18);
2197
2198 newLeafNode(otherlv_0, grammarAccess.getVLSAnnotationAccess().getLeftSquareBracketKeyword_0());
2199
2200
2201 }
2202 break;
2203
2204 }
2205
2206 // InternalVampireLanguage.g:896:3: ( ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= ruleVLSRole ) ) )?
2207 int alt12=2;
2208 int LA12_0 = input.LA(1);
2209
2210 if ( ((LA12_0>=RULE_SINGLE_QUOTE && LA12_0<=RULE_LOWER_WORD_ID)||(LA12_0>=38 && LA12_0<=52)) ) {
2211 alt12=1;
2212 }
2213 switch (alt12) {
2214 case 1 :
2215 // InternalVampireLanguage.g:897:4: ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= ruleVLSRole ) )
2216 {
2217 // InternalVampireLanguage.g:897:4: ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= ruleVLSRole ) )
2218 // InternalVampireLanguage.g:898:5: (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= ruleVLSRole )
2219 {
2220 // InternalVampireLanguage.g:898:5: (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= ruleVLSRole )
2221 int alt11=3;
2222 switch ( input.LA(1) ) {
2223 case RULE_LOWER_WORD_ID:
2224 {
2225 alt11=1;
2226 }
2227 break;
2228 case RULE_SINGLE_QUOTE:
2229 {
2230 alt11=2;
2231 }
2232 break;
2233 case 38:
2234 case 39:
2235 case 40:
2236 case 41:
2237 case 42:
2238 case 43:
2239 case 44:
2240 case 45:
2241 case 46:
2242 case 47:
2243 case 48:
2244 case 49:
2245 case 50:
2246 case 51:
2247 case 52:
2248 {
2249 alt11=3;
2250 }
2251 break;
2252 default:
2253 NoViableAltException nvae =
2254 new NoViableAltException("", 11, 0, input);
2255
2256 throw nvae;
2257 }
2258
2259 switch (alt11) {
2260 case 1 :
2261 // InternalVampireLanguage.g:899:6: lv_name_1_1= RULE_LOWER_WORD_ID
2262 {
2263 lv_name_1_1=(Token)match(input,RULE_LOWER_WORD_ID,FOLLOW_19);
2264
2265 newLeafNode(lv_name_1_1, grammarAccess.getVLSAnnotationAccess().getNameLOWER_WORD_IDTerminalRuleCall_1_0_0());
2266
2267
2268 if (current==null) {
2269 current = createModelElement(grammarAccess.getVLSAnnotationRule());
2270 }
2271 setWithLastConsumed(
2272 current,
2273 "name",
2274 lv_name_1_1,
2275 "ca.mcgill.ecse.dslreasoner.VampireLanguage.LOWER_WORD_ID");
2276
2277
2278 }
2279 break;
2280 case 2 :
2281 // InternalVampireLanguage.g:914:6: lv_name_1_2= RULE_SINGLE_QUOTE
2282 {
2283 lv_name_1_2=(Token)match(input,RULE_SINGLE_QUOTE,FOLLOW_19);
2284
2285 newLeafNode(lv_name_1_2, grammarAccess.getVLSAnnotationAccess().getNameSINGLE_QUOTETerminalRuleCall_1_0_1());
2286
2287
2288 if (current==null) {
2289 current = createModelElement(grammarAccess.getVLSAnnotationRule());
2290 }
2291 setWithLastConsumed(
2292 current,
2293 "name",
2294 lv_name_1_2,
2295 "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_QUOTE");
2296
2297
2298 }
2299 break;
2300 case 3 :
2301 // InternalVampireLanguage.g:929:6: lv_name_1_3= ruleVLSRole
2302 {
2303
2304 newCompositeNode(grammarAccess.getVLSAnnotationAccess().getNameVLSRoleParserRuleCall_1_0_2());
2305
2306 pushFollow(FOLLOW_19);
2307 lv_name_1_3=ruleVLSRole();
2308
2309 state._fsp--;
2310
2311
2312 if (current==null) {
2313 current = createModelElementForParent(grammarAccess.getVLSAnnotationRule());
2314 }
2315 set(
2316 current,
2317 "name",
2318 lv_name_1_3,
2319 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSRole");
2320 afterParserOrEnumRuleCall();
2321
2322
2323 }
2324 break;
2325
2326 }
2327
2328
2329 }
2330
2331
2332 }
2333 break;
2334
2335 }
2336
2337 // InternalVampireLanguage.g:947:3: (otherlv_2= '(' ( (lv_followup_3_0= ruleVLSAnnotationTerms ) ) otherlv_4= ')' )?
2338 int alt13=2;
2339 int LA13_0 = input.LA(1);
2340
2341 if ( (LA13_0==34) ) {
2342 alt13=1;
2343 }
2344 switch (alt13) {
2345 case 1 :
2346 // InternalVampireLanguage.g:948:4: otherlv_2= '(' ( (lv_followup_3_0= ruleVLSAnnotationTerms ) ) otherlv_4= ')'
2347 {
2348 otherlv_2=(Token)match(input,34,FOLLOW_20);
2349
2350 newLeafNode(otherlv_2, grammarAccess.getVLSAnnotationAccess().getLeftParenthesisKeyword_2_0());
2351
2352 // InternalVampireLanguage.g:952:4: ( (lv_followup_3_0= ruleVLSAnnotationTerms ) )
2353 // InternalVampireLanguage.g:953:5: (lv_followup_3_0= ruleVLSAnnotationTerms )
2354 {
2355 // InternalVampireLanguage.g:953:5: (lv_followup_3_0= ruleVLSAnnotationTerms )
2356 // InternalVampireLanguage.g:954:6: lv_followup_3_0= ruleVLSAnnotationTerms
2357 {
2358
2359 newCompositeNode(grammarAccess.getVLSAnnotationAccess().getFollowupVLSAnnotationTermsParserRuleCall_2_1_0());
2360
2361 pushFollow(FOLLOW_16);
2362 lv_followup_3_0=ruleVLSAnnotationTerms();
2363
2364 state._fsp--;
2365
2366
2367 if (current==null) {
2368 current = createModelElementForParent(grammarAccess.getVLSAnnotationRule());
2369 }
2370 set(
2371 current,
2372 "followup",
2373 lv_followup_3_0,
2374 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAnnotationTerms");
2375 afterParserOrEnumRuleCall();
2376
2377
2378 }
2379
2380
2381 }
2382
2383 otherlv_4=(Token)match(input,35,FOLLOW_21);
2384
2385 newLeafNode(otherlv_4, grammarAccess.getVLSAnnotationAccess().getRightParenthesisKeyword_2_2());
2386
2387
2388 }
2389 break;
2390
2391 }
2392
2393 // InternalVampireLanguage.g:976:3: (otherlv_5= ']' )?
2394 int alt14=2;
2395 int LA14_0 = input.LA(1);
2396
2397 if ( (LA14_0==30) ) {
2398 alt14=1;
2399 }
2400 switch (alt14) {
2401 case 1 :
2402 // InternalVampireLanguage.g:977:4: otherlv_5= ']'
2403 {
2404 otherlv_5=(Token)match(input,30,FOLLOW_2);
2405
2406 newLeafNode(otherlv_5, grammarAccess.getVLSAnnotationAccess().getRightSquareBracketKeyword_3());
2407
2408
2409 }
2410 break;
2411
2412 }
2413
2414
2415 }
2416
2417
2418 }
2419
2420
2421 leaveRule();
2422
2423 }
2424
2425 catch (RecognitionException re) {
2426 recover(input,re);
2427 appendSkippedTokens();
2428 }
2429 finally {
2430 }
2431 return current;
2432 }
2433 // $ANTLR end "ruleVLSAnnotation"
2434
2435
2436 // $ANTLR start "entryRuleVLSAnnotationTerms"
2437 // InternalVampireLanguage.g:986:1: entryRuleVLSAnnotationTerms returns [EObject current=null] : iv_ruleVLSAnnotationTerms= ruleVLSAnnotationTerms EOF ;
2438 public final EObject entryRuleVLSAnnotationTerms() throws RecognitionException {
2439 EObject current = null;
2440
2441 EObject iv_ruleVLSAnnotationTerms = null;
2442
2443
2444 try {
2445 // InternalVampireLanguage.g:986:59: (iv_ruleVLSAnnotationTerms= ruleVLSAnnotationTerms EOF )
2446 // InternalVampireLanguage.g:987:2: iv_ruleVLSAnnotationTerms= ruleVLSAnnotationTerms EOF
2447 {
2448 newCompositeNode(grammarAccess.getVLSAnnotationTermsRule());
2449 pushFollow(FOLLOW_1);
2450 iv_ruleVLSAnnotationTerms=ruleVLSAnnotationTerms();
2451
2452 state._fsp--;
2453
2454 current =iv_ruleVLSAnnotationTerms;
2455 match(input,EOF,FOLLOW_2);
2456
2457 }
2458
2459 }
2460
2461 catch (RecognitionException re) {
2462 recover(input,re);
2463 appendSkippedTokens();
2464 }
2465 finally {
2466 }
2467 return current;
2468 }
2469 // $ANTLR end "entryRuleVLSAnnotationTerms"
2470
2471
2472 // $ANTLR start "ruleVLSAnnotationTerms"
2473 // InternalVampireLanguage.g:993:1: ruleVLSAnnotationTerms returns [EObject current=null] : ( ( (lv_terms_0_0= ruleVLSAnnotation ) ) (otherlv_1= ',' ( (lv_terms_2_0= ruleVLSAnnotation ) ) )* ) ;
2474 public final EObject ruleVLSAnnotationTerms() throws RecognitionException {
2475 EObject current = null;
2476
2477 Token otherlv_1=null;
2478 EObject lv_terms_0_0 = null;
2479
2480 EObject lv_terms_2_0 = null;
2481
2482
2483
2484 enterRule();
2485
2486 try {
2487 // InternalVampireLanguage.g:999:2: ( ( ( (lv_terms_0_0= ruleVLSAnnotation ) ) (otherlv_1= ',' ( (lv_terms_2_0= ruleVLSAnnotation ) ) )* ) )
2488 // InternalVampireLanguage.g:1000:2: ( ( (lv_terms_0_0= ruleVLSAnnotation ) ) (otherlv_1= ',' ( (lv_terms_2_0= ruleVLSAnnotation ) ) )* )
2489 {
2490 // InternalVampireLanguage.g:1000:2: ( ( (lv_terms_0_0= ruleVLSAnnotation ) ) (otherlv_1= ',' ( (lv_terms_2_0= ruleVLSAnnotation ) ) )* )
2491 // InternalVampireLanguage.g:1001:3: ( (lv_terms_0_0= ruleVLSAnnotation ) ) (otherlv_1= ',' ( (lv_terms_2_0= ruleVLSAnnotation ) ) )*
2492 {
2493 // InternalVampireLanguage.g:1001:3: ( (lv_terms_0_0= ruleVLSAnnotation ) )
2494 // InternalVampireLanguage.g:1002:4: (lv_terms_0_0= ruleVLSAnnotation )
2495 {
2496 // InternalVampireLanguage.g:1002:4: (lv_terms_0_0= ruleVLSAnnotation )
2497 // InternalVampireLanguage.g:1003:5: lv_terms_0_0= ruleVLSAnnotation
2498 {
2499
2500 newCompositeNode(grammarAccess.getVLSAnnotationTermsAccess().getTermsVLSAnnotationParserRuleCall_0_0());
2501
2502 pushFollow(FOLLOW_22);
2503 lv_terms_0_0=ruleVLSAnnotation();
2504
2505 state._fsp--;
2506
2507
2508 if (current==null) {
2509 current = createModelElementForParent(grammarAccess.getVLSAnnotationTermsRule());
2510 }
2511 add(
2512 current,
2513 "terms",
2514 lv_terms_0_0,
2515 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAnnotation");
2516 afterParserOrEnumRuleCall();
2517
2518
2519 }
2520
2521
2522 }
2523
2524 // InternalVampireLanguage.g:1020:3: (otherlv_1= ',' ( (lv_terms_2_0= ruleVLSAnnotation ) ) )*
2525 loop15:
2526 do {
2527 int alt15=2;
2528 int LA15_0 = input.LA(1);
2529
2530 if ( (LA15_0==29) ) {
2531 alt15=1;
2532 }
2533
2534
2535 switch (alt15) {
2536 case 1 :
2537 // InternalVampireLanguage.g:1021:4: otherlv_1= ',' ( (lv_terms_2_0= ruleVLSAnnotation ) )
2538 {
2539 otherlv_1=(Token)match(input,29,FOLLOW_20);
2540
2541 newLeafNode(otherlv_1, grammarAccess.getVLSAnnotationTermsAccess().getCommaKeyword_1_0());
2542
2543 // InternalVampireLanguage.g:1025:4: ( (lv_terms_2_0= ruleVLSAnnotation ) )
2544 // InternalVampireLanguage.g:1026:5: (lv_terms_2_0= ruleVLSAnnotation )
2545 {
2546 // InternalVampireLanguage.g:1026:5: (lv_terms_2_0= ruleVLSAnnotation )
2547 // InternalVampireLanguage.g:1027:6: lv_terms_2_0= ruleVLSAnnotation
2548 {
2549
2550 newCompositeNode(grammarAccess.getVLSAnnotationTermsAccess().getTermsVLSAnnotationParserRuleCall_1_1_0());
2551
2552 pushFollow(FOLLOW_22);
2553 lv_terms_2_0=ruleVLSAnnotation();
2554
2555 state._fsp--;
2556
2557
2558 if (current==null) {
2559 current = createModelElementForParent(grammarAccess.getVLSAnnotationTermsRule());
2560 }
2561 add(
2562 current,
2563 "terms",
2564 lv_terms_2_0,
2565 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAnnotation");
2566 afterParserOrEnumRuleCall();
2567
2568
2569 }
2570
2571
2572 }
2573
2574
2575 }
2576 break;
2577
2578 default :
2579 break loop15;
2580 }
2581 } while (true);
2582
2583
2584 }
2585
2586
2587 }
2588
2589
2590 leaveRule();
2591
2592 }
2593
2594 catch (RecognitionException re) {
2595 recover(input,re);
2596 appendSkippedTokens();
2597 }
2598 finally {
2599 }
2600 return current;
2601 }
2602 // $ANTLR end "ruleVLSAnnotationTerms"
2603
2604
2605 // $ANTLR start "entryRuleVLSTerm"
2606 // InternalVampireLanguage.g:1049:1: entryRuleVLSTerm returns [EObject current=null] : iv_ruleVLSTerm= ruleVLSTerm EOF ;
2607 public final EObject entryRuleVLSTerm() throws RecognitionException {
2608 EObject current = null;
2609
2610 EObject iv_ruleVLSTerm = null;
2611
2612
2613 try {
2614 // InternalVampireLanguage.g:1049:48: (iv_ruleVLSTerm= ruleVLSTerm EOF )
2615 // InternalVampireLanguage.g:1050:2: iv_ruleVLSTerm= ruleVLSTerm EOF
2616 {
2617 newCompositeNode(grammarAccess.getVLSTermRule());
2618 pushFollow(FOLLOW_1);
2619 iv_ruleVLSTerm=ruleVLSTerm();
2620
2621 state._fsp--;
2622
2623 current =iv_ruleVLSTerm;
2624 match(input,EOF,FOLLOW_2);
2625
2626 }
2627
2628 }
2629
2630 catch (RecognitionException re) {
2631 recover(input,re);
2632 appendSkippedTokens();
2633 }
2634 finally {
2635 }
2636 return current;
2637 }
2638 // $ANTLR end "entryRuleVLSTerm"
2639
2640
2641 // $ANTLR start "ruleVLSTerm"
2642 // InternalVampireLanguage.g:1056:1: ruleVLSTerm returns [EObject current=null] : this_VLSBinary_0= ruleVLSBinary ;
2643 public final EObject ruleVLSTerm() throws RecognitionException {
2644 EObject current = null;
2645
2646 EObject this_VLSBinary_0 = null;
2647
2648
2649
2650 enterRule();
2651
2652 try {
2653 // InternalVampireLanguage.g:1062:2: (this_VLSBinary_0= ruleVLSBinary )
2654 // InternalVampireLanguage.g:1063:2: this_VLSBinary_0= ruleVLSBinary
2655 {
2656
2657 newCompositeNode(grammarAccess.getVLSTermAccess().getVLSBinaryParserRuleCall());
2658
2659 pushFollow(FOLLOW_2);
2660 this_VLSBinary_0=ruleVLSBinary();
2661
2662 state._fsp--;
2663
2664
2665 current = this_VLSBinary_0;
2666 afterParserOrEnumRuleCall();
2667
2668
2669 }
2670
2671
2672 leaveRule();
2673
2674 }
2675
2676 catch (RecognitionException re) {
2677 recover(input,re);
2678 appendSkippedTokens();
2679 }
2680 finally {
2681 }
2682 return current;
2683 }
2684 // $ANTLR end "ruleVLSTerm"
2685
2686
2687 // $ANTLR start "entryRuleVLSBinary"
2688 // InternalVampireLanguage.g:1074:1: entryRuleVLSBinary returns [EObject current=null] : iv_ruleVLSBinary= ruleVLSBinary EOF ;
2689 public final EObject entryRuleVLSBinary() throws RecognitionException {
2690 EObject current = null;
2691
2692 EObject iv_ruleVLSBinary = null;
2693
2694
2695 try {
2696 // InternalVampireLanguage.g:1074:50: (iv_ruleVLSBinary= ruleVLSBinary EOF )
2697 // InternalVampireLanguage.g:1075:2: iv_ruleVLSBinary= ruleVLSBinary EOF
2698 {
2699 newCompositeNode(grammarAccess.getVLSBinaryRule());
2700 pushFollow(FOLLOW_1);
2701 iv_ruleVLSBinary=ruleVLSBinary();
2702
2703 state._fsp--;
2704
2705 current =iv_ruleVLSBinary;
2706 match(input,EOF,FOLLOW_2);
2707
2708 }
2709
2710 }
2711
2712 catch (RecognitionException re) {
2713 recover(input,re);
2714 appendSkippedTokens();
2715 }
2716 finally {
2717 }
2718 return current;
2719 }
2720 // $ANTLR end "entryRuleVLSBinary"
2721
2722
2723 // $ANTLR start "ruleVLSBinary"
2724 // InternalVampireLanguage.g:1081:1: ruleVLSBinary returns [EObject current=null] : (this_VLSUnitaryFormula_0= ruleVLSUnitaryFormula ( ( ( ( () otherlv_2= '<=>' ) | ( () otherlv_4= '=>' ) | ( () otherlv_6= '<=' ) | ( () otherlv_8= '<~>' ) | ( () otherlv_10= '~|' ) | ( () otherlv_12= '~&' ) ) ( (lv_right_13_0= ruleVLSUnitaryFormula ) ) ) | ( () otherlv_15= '&' ( (lv_right_16_0= ruleVLSUnitaryFormula ) ) )+ | ( () otherlv_18= '|' ( (lv_right_19_0= ruleVLSUnitaryFormula ) ) )+ )? ) ;
2725 public final EObject ruleVLSBinary() throws RecognitionException {
2726 EObject current = null;
2727
2728 Token otherlv_2=null;
2729 Token otherlv_4=null;
2730 Token otherlv_6=null;
2731 Token otherlv_8=null;
2732 Token otherlv_10=null;
2733 Token otherlv_12=null;
2734 Token otherlv_15=null;
2735 Token otherlv_18=null;
2736 EObject this_VLSUnitaryFormula_0 = null;
2737
2738 EObject lv_right_13_0 = null;
2739
2740 EObject lv_right_16_0 = null;
2741
2742 EObject lv_right_19_0 = null;
2743
2744
2745
2746 enterRule();
2747
2748 try {
2749 // InternalVampireLanguage.g:1087:2: ( (this_VLSUnitaryFormula_0= ruleVLSUnitaryFormula ( ( ( ( () otherlv_2= '<=>' ) | ( () otherlv_4= '=>' ) | ( () otherlv_6= '<=' ) | ( () otherlv_8= '<~>' ) | ( () otherlv_10= '~|' ) | ( () otherlv_12= '~&' ) ) ( (lv_right_13_0= ruleVLSUnitaryFormula ) ) ) | ( () otherlv_15= '&' ( (lv_right_16_0= ruleVLSUnitaryFormula ) ) )+ | ( () otherlv_18= '|' ( (lv_right_19_0= ruleVLSUnitaryFormula ) ) )+ )? ) )
2750 // InternalVampireLanguage.g:1088:2: (this_VLSUnitaryFormula_0= ruleVLSUnitaryFormula ( ( ( ( () otherlv_2= '<=>' ) | ( () otherlv_4= '=>' ) | ( () otherlv_6= '<=' ) | ( () otherlv_8= '<~>' ) | ( () otherlv_10= '~|' ) | ( () otherlv_12= '~&' ) ) ( (lv_right_13_0= ruleVLSUnitaryFormula ) ) ) | ( () otherlv_15= '&' ( (lv_right_16_0= ruleVLSUnitaryFormula ) ) )+ | ( () otherlv_18= '|' ( (lv_right_19_0= ruleVLSUnitaryFormula ) ) )+ )? )
2751 {
2752 // InternalVampireLanguage.g:1088:2: (this_VLSUnitaryFormula_0= ruleVLSUnitaryFormula ( ( ( ( () otherlv_2= '<=>' ) | ( () otherlv_4= '=>' ) | ( () otherlv_6= '<=' ) | ( () otherlv_8= '<~>' ) | ( () otherlv_10= '~|' ) | ( () otherlv_12= '~&' ) ) ( (lv_right_13_0= ruleVLSUnitaryFormula ) ) ) | ( () otherlv_15= '&' ( (lv_right_16_0= ruleVLSUnitaryFormula ) ) )+ | ( () otherlv_18= '|' ( (lv_right_19_0= ruleVLSUnitaryFormula ) ) )+ )? )
2753 // InternalVampireLanguage.g:1089:3: this_VLSUnitaryFormula_0= ruleVLSUnitaryFormula ( ( ( ( () otherlv_2= '<=>' ) | ( () otherlv_4= '=>' ) | ( () otherlv_6= '<=' ) | ( () otherlv_8= '<~>' ) | ( () otherlv_10= '~|' ) | ( () otherlv_12= '~&' ) ) ( (lv_right_13_0= ruleVLSUnitaryFormula ) ) ) | ( () otherlv_15= '&' ( (lv_right_16_0= ruleVLSUnitaryFormula ) ) )+ | ( () otherlv_18= '|' ( (lv_right_19_0= ruleVLSUnitaryFormula ) ) )+ )?
2754 {
2755
2756 newCompositeNode(grammarAccess.getVLSBinaryAccess().getVLSUnitaryFormulaParserRuleCall_0());
2757
2758 pushFollow(FOLLOW_23);
2759 this_VLSUnitaryFormula_0=ruleVLSUnitaryFormula();
2760
2761 state._fsp--;
2762
2763
2764 current = this_VLSUnitaryFormula_0;
2765 afterParserOrEnumRuleCall();
2766
2767 // InternalVampireLanguage.g:1097:3: ( ( ( ( () otherlv_2= '<=>' ) | ( () otherlv_4= '=>' ) | ( () otherlv_6= '<=' ) | ( () otherlv_8= '<~>' ) | ( () otherlv_10= '~|' ) | ( () otherlv_12= '~&' ) ) ( (lv_right_13_0= ruleVLSUnitaryFormula ) ) ) | ( () otherlv_15= '&' ( (lv_right_16_0= ruleVLSUnitaryFormula ) ) )+ | ( () otherlv_18= '|' ( (lv_right_19_0= ruleVLSUnitaryFormula ) ) )+ )?
2768 int alt19=4;
2769 switch ( input.LA(1) ) {
2770 case 54:
2771 case 55:
2772 case 56:
2773 case 57:
2774 case 58:
2775 case 59:
2776 {
2777 alt19=1;
2778 }
2779 break;
2780 case 60:
2781 {
2782 alt19=2;
2783 }
2784 break;
2785 case 61:
2786 {
2787 alt19=3;
2788 }
2789 break;
2790 }
2791
2792 switch (alt19) {
2793 case 1 :
2794 // InternalVampireLanguage.g:1098:4: ( ( ( () otherlv_2= '<=>' ) | ( () otherlv_4= '=>' ) | ( () otherlv_6= '<=' ) | ( () otherlv_8= '<~>' ) | ( () otherlv_10= '~|' ) | ( () otherlv_12= '~&' ) ) ( (lv_right_13_0= ruleVLSUnitaryFormula ) ) )
2795 {
2796 // InternalVampireLanguage.g:1098:4: ( ( ( () otherlv_2= '<=>' ) | ( () otherlv_4= '=>' ) | ( () otherlv_6= '<=' ) | ( () otherlv_8= '<~>' ) | ( () otherlv_10= '~|' ) | ( () otherlv_12= '~&' ) ) ( (lv_right_13_0= ruleVLSUnitaryFormula ) ) )
2797 // InternalVampireLanguage.g:1099:5: ( ( () otherlv_2= '<=>' ) | ( () otherlv_4= '=>' ) | ( () otherlv_6= '<=' ) | ( () otherlv_8= '<~>' ) | ( () otherlv_10= '~|' ) | ( () otherlv_12= '~&' ) ) ( (lv_right_13_0= ruleVLSUnitaryFormula ) )
2798 {
2799 // InternalVampireLanguage.g:1099:5: ( ( () otherlv_2= '<=>' ) | ( () otherlv_4= '=>' ) | ( () otherlv_6= '<=' ) | ( () otherlv_8= '<~>' ) | ( () otherlv_10= '~|' ) | ( () otherlv_12= '~&' ) )
2800 int alt16=6;
2801 switch ( input.LA(1) ) {
2802 case 54:
2803 {
2804 alt16=1;
2805 }
2806 break;
2807 case 55:
2808 {
2809 alt16=2;
2810 }
2811 break;
2812 case 56:
2813 {
2814 alt16=3;
2815 }
2816 break;
2817 case 57:
2818 {
2819 alt16=4;
2820 }
2821 break;
2822 case 58:
2823 {
2824 alt16=5;
2825 }
2826 break;
2827 case 59:
2828 {
2829 alt16=6;
2830 }
2831 break;
2832 default:
2833 NoViableAltException nvae =
2834 new NoViableAltException("", 16, 0, input);
2835
2836 throw nvae;
2837 }
2838
2839 switch (alt16) {
2840 case 1 :
2841 // InternalVampireLanguage.g:1100:6: ( () otherlv_2= '<=>' )
2842 {
2843 // InternalVampireLanguage.g:1100:6: ( () otherlv_2= '<=>' )
2844 // InternalVampireLanguage.g:1101:7: () otherlv_2= '<=>'
2845 {
2846 // InternalVampireLanguage.g:1101:7: ()
2847 // InternalVampireLanguage.g:1102:8:
2848 {
2849
2850 current = forceCreateModelElementAndSet(
2851 grammarAccess.getVLSBinaryAccess().getVLSEquivalentLeftAction_1_0_0_0_0(),
2852 current);
2853
2854
2855 }
2856
2857 otherlv_2=(Token)match(input,54,FOLLOW_13);
2858
2859 newLeafNode(otherlv_2, grammarAccess.getVLSBinaryAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_1_0_0_0_1());
2860
2861
2862 }
2863
2864
2865 }
2866 break;
2867 case 2 :
2868 // InternalVampireLanguage.g:1114:6: ( () otherlv_4= '=>' )
2869 {
2870 // InternalVampireLanguage.g:1114:6: ( () otherlv_4= '=>' )
2871 // InternalVampireLanguage.g:1115:7: () otherlv_4= '=>'
2872 {
2873 // InternalVampireLanguage.g:1115:7: ()
2874 // InternalVampireLanguage.g:1116:8:
2875 {
2876
2877 current = forceCreateModelElementAndSet(
2878 grammarAccess.getVLSBinaryAccess().getVLSImpliesLeftAction_1_0_0_1_0(),
2879 current);
2880
2881
2882 }
2883
2884 otherlv_4=(Token)match(input,55,FOLLOW_13);
2885
2886 newLeafNode(otherlv_4, grammarAccess.getVLSBinaryAccess().getEqualsSignGreaterThanSignKeyword_1_0_0_1_1());
2887
2888
2889 }
2890
2891
2892 }
2893 break;
2894 case 3 :
2895 // InternalVampireLanguage.g:1128:6: ( () otherlv_6= '<=' )
2896 {
2897 // InternalVampireLanguage.g:1128:6: ( () otherlv_6= '<=' )
2898 // InternalVampireLanguage.g:1129:7: () otherlv_6= '<='
2899 {
2900 // InternalVampireLanguage.g:1129:7: ()
2901 // InternalVampireLanguage.g:1130:8:
2902 {
2903
2904 current = forceCreateModelElementAndSet(
2905 grammarAccess.getVLSBinaryAccess().getVLSRevImpliesLeftAction_1_0_0_2_0(),
2906 current);
2907
2908
2909 }
2910
2911 otherlv_6=(Token)match(input,56,FOLLOW_13);
2912
2913 newLeafNode(otherlv_6, grammarAccess.getVLSBinaryAccess().getLessThanSignEqualsSignKeyword_1_0_0_2_1());
2914
2915
2916 }
2917
2918
2919 }
2920 break;
2921 case 4 :
2922 // InternalVampireLanguage.g:1142:6: ( () otherlv_8= '<~>' )
2923 {
2924 // InternalVampireLanguage.g:1142:6: ( () otherlv_8= '<~>' )
2925 // InternalVampireLanguage.g:1143:7: () otherlv_8= '<~>'
2926 {
2927 // InternalVampireLanguage.g:1143:7: ()
2928 // InternalVampireLanguage.g:1144:8:
2929 {
2930
2931 current = forceCreateModelElementAndSet(
2932 grammarAccess.getVLSBinaryAccess().getVLSXnorLeftAction_1_0_0_3_0(),
2933 current);
2934
2935
2936 }
2937
2938 otherlv_8=(Token)match(input,57,FOLLOW_13);
2939
2940 newLeafNode(otherlv_8, grammarAccess.getVLSBinaryAccess().getLessThanSignTildeGreaterThanSignKeyword_1_0_0_3_1());
2941
2942
2943 }
2944
2945
2946 }
2947 break;
2948 case 5 :
2949 // InternalVampireLanguage.g:1156:6: ( () otherlv_10= '~|' )
2950 {
2951 // InternalVampireLanguage.g:1156:6: ( () otherlv_10= '~|' )
2952 // InternalVampireLanguage.g:1157:7: () otherlv_10= '~|'
2953 {
2954 // InternalVampireLanguage.g:1157:7: ()
2955 // InternalVampireLanguage.g:1158:8:
2956 {
2957
2958 current = forceCreateModelElementAndSet(
2959 grammarAccess.getVLSBinaryAccess().getVLSNorLeftAction_1_0_0_4_0(),
2960 current);
2961
2962
2963 }
2964
2965 otherlv_10=(Token)match(input,58,FOLLOW_13);
2966
2967 newLeafNode(otherlv_10, grammarAccess.getVLSBinaryAccess().getTildeVerticalLineKeyword_1_0_0_4_1());
2968
2969
2970 }
2971
2972
2973 }
2974 break;
2975 case 6 :
2976 // InternalVampireLanguage.g:1170:6: ( () otherlv_12= '~&' )
2977 {
2978 // InternalVampireLanguage.g:1170:6: ( () otherlv_12= '~&' )
2979 // InternalVampireLanguage.g:1171:7: () otherlv_12= '~&'
2980 {
2981 // InternalVampireLanguage.g:1171:7: ()
2982 // InternalVampireLanguage.g:1172:8:
2983 {
2984
2985 current = forceCreateModelElementAndSet(
2986 grammarAccess.getVLSBinaryAccess().getVLSNandLeftAction_1_0_0_5_0(),
2987 current);
2988
2989
2990 }
2991
2992 otherlv_12=(Token)match(input,59,FOLLOW_13);
2993
2994 newLeafNode(otherlv_12, grammarAccess.getVLSBinaryAccess().getTildeAmpersandKeyword_1_0_0_5_1());
2995
2996
2997 }
2998
2999
3000 }
3001 break;
3002
3003 }
3004
3005 // InternalVampireLanguage.g:1184:5: ( (lv_right_13_0= ruleVLSUnitaryFormula ) )
3006 // InternalVampireLanguage.g:1185:6: (lv_right_13_0= ruleVLSUnitaryFormula )
3007 {
3008 // InternalVampireLanguage.g:1185:6: (lv_right_13_0= ruleVLSUnitaryFormula )
3009 // InternalVampireLanguage.g:1186:7: lv_right_13_0= ruleVLSUnitaryFormula
3010 {
3011
3012 newCompositeNode(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_0_1_0());
3013
3014 pushFollow(FOLLOW_2);
3015 lv_right_13_0=ruleVLSUnitaryFormula();
3016
3017 state._fsp--;
3018
3019
3020 if (current==null) {
3021 current = createModelElementForParent(grammarAccess.getVLSBinaryRule());
3022 }
3023 set(
3024 current,
3025 "right",
3026 lv_right_13_0,
3027 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnitaryFormula");
3028 afterParserOrEnumRuleCall();
3029
3030
3031 }
3032
3033
3034 }
3035
3036
3037 }
3038
3039
3040 }
3041 break;
3042 case 2 :
3043 // InternalVampireLanguage.g:1205:4: ( () otherlv_15= '&' ( (lv_right_16_0= ruleVLSUnitaryFormula ) ) )+
3044 {
3045 // InternalVampireLanguage.g:1205:4: ( () otherlv_15= '&' ( (lv_right_16_0= ruleVLSUnitaryFormula ) ) )+
3046 int cnt17=0;
3047 loop17:
3048 do {
3049 int alt17=2;
3050 int LA17_0 = input.LA(1);
3051
3052 if ( (LA17_0==60) ) {
3053 alt17=1;
3054 }
3055
3056
3057 switch (alt17) {
3058 case 1 :
3059 // InternalVampireLanguage.g:1206:5: () otherlv_15= '&' ( (lv_right_16_0= ruleVLSUnitaryFormula ) )
3060 {
3061 // InternalVampireLanguage.g:1206:5: ()
3062 // InternalVampireLanguage.g:1207:6:
3063 {
3064
3065 current = forceCreateModelElementAndSet(
3066 grammarAccess.getVLSBinaryAccess().getVLSAndLeftAction_1_1_0(),
3067 current);
3068
3069
3070 }
3071
3072 otherlv_15=(Token)match(input,60,FOLLOW_13);
3073
3074 newLeafNode(otherlv_15, grammarAccess.getVLSBinaryAccess().getAmpersandKeyword_1_1_1());
3075
3076 // InternalVampireLanguage.g:1217:5: ( (lv_right_16_0= ruleVLSUnitaryFormula ) )
3077 // InternalVampireLanguage.g:1218:6: (lv_right_16_0= ruleVLSUnitaryFormula )
3078 {
3079 // InternalVampireLanguage.g:1218:6: (lv_right_16_0= ruleVLSUnitaryFormula )
3080 // InternalVampireLanguage.g:1219:7: lv_right_16_0= ruleVLSUnitaryFormula
3081 {
3082
3083 newCompositeNode(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_1_2_0());
3084
3085 pushFollow(FOLLOW_24);
3086 lv_right_16_0=ruleVLSUnitaryFormula();
3087
3088 state._fsp--;
3089
3090
3091 if (current==null) {
3092 current = createModelElementForParent(grammarAccess.getVLSBinaryRule());
3093 }
3094 set(
3095 current,
3096 "right",
3097 lv_right_16_0,
3098 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnitaryFormula");
3099 afterParserOrEnumRuleCall();
3100
3101
3102 }
3103
3104
3105 }
3106
3107
3108 }
3109 break;
3110
3111 default :
3112 if ( cnt17 >= 1 ) break loop17;
3113 EarlyExitException eee =
3114 new EarlyExitException(17, input);
3115 throw eee;
3116 }
3117 cnt17++;
3118 } while (true);
3119
3120
3121 }
3122 break;
3123 case 3 :
3124 // InternalVampireLanguage.g:1238:4: ( () otherlv_18= '|' ( (lv_right_19_0= ruleVLSUnitaryFormula ) ) )+
3125 {
3126 // InternalVampireLanguage.g:1238:4: ( () otherlv_18= '|' ( (lv_right_19_0= ruleVLSUnitaryFormula ) ) )+
3127 int cnt18=0;
3128 loop18:
3129 do {
3130 int alt18=2;
3131 int LA18_0 = input.LA(1);
3132
3133 if ( (LA18_0==61) ) {
3134 alt18=1;
3135 }
3136
3137
3138 switch (alt18) {
3139 case 1 :
3140 // InternalVampireLanguage.g:1239:5: () otherlv_18= '|' ( (lv_right_19_0= ruleVLSUnitaryFormula ) )
3141 {
3142 // InternalVampireLanguage.g:1239:5: ()
3143 // InternalVampireLanguage.g:1240:6:
3144 {
3145
3146 current = forceCreateModelElementAndSet(
3147 grammarAccess.getVLSBinaryAccess().getVLSOrLeftAction_1_2_0(),
3148 current);
3149
3150
3151 }
3152
3153 otherlv_18=(Token)match(input,61,FOLLOW_13);
3154
3155 newLeafNode(otherlv_18, grammarAccess.getVLSBinaryAccess().getVerticalLineKeyword_1_2_1());
3156
3157 // InternalVampireLanguage.g:1250:5: ( (lv_right_19_0= ruleVLSUnitaryFormula ) )
3158 // InternalVampireLanguage.g:1251:6: (lv_right_19_0= ruleVLSUnitaryFormula )
3159 {
3160 // InternalVampireLanguage.g:1251:6: (lv_right_19_0= ruleVLSUnitaryFormula )
3161 // InternalVampireLanguage.g:1252:7: lv_right_19_0= ruleVLSUnitaryFormula
3162 {
3163
3164 newCompositeNode(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_2_2_0());
3165
3166 pushFollow(FOLLOW_25);
3167 lv_right_19_0=ruleVLSUnitaryFormula();
3168
3169 state._fsp--;
3170
3171
3172 if (current==null) {
3173 current = createModelElementForParent(grammarAccess.getVLSBinaryRule());
3174 }
3175 set(
3176 current,
3177 "right",
3178 lv_right_19_0,
3179 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnitaryFormula");
3180 afterParserOrEnumRuleCall();
3181
3182
3183 }
3184
3185
3186 }
3187
3188
3189 }
3190 break;
3191
3192 default :
3193 if ( cnt18 >= 1 ) break loop18;
3194 EarlyExitException eee =
3195 new EarlyExitException(18, input);
3196 throw eee;
3197 }
3198 cnt18++;
3199 } while (true);
3200
3201
3202 }
3203 break;
3204
3205 }
3206
3207
3208 }
3209
3210
3211 }
3212
3213
3214 leaveRule();
3215
3216 }
3217
3218 catch (RecognitionException re) {
3219 recover(input,re);
3220 appendSkippedTokens();
3221 }
3222 finally {
3223 }
3224 return current;
3225 }
3226 // $ANTLR end "ruleVLSBinary"
3227
3228
3229 // $ANTLR start "entryRuleVLSUnitaryFormula"
3230 // InternalVampireLanguage.g:1275:1: entryRuleVLSUnitaryFormula returns [EObject current=null] : iv_ruleVLSUnitaryFormula= ruleVLSUnitaryFormula EOF ;
3231 public final EObject entryRuleVLSUnitaryFormula() throws RecognitionException {
3232 EObject current = null;
3233
3234 EObject iv_ruleVLSUnitaryFormula = null;
3235
3236
3237 try {
3238 // InternalVampireLanguage.g:1275:58: (iv_ruleVLSUnitaryFormula= ruleVLSUnitaryFormula EOF )
3239 // InternalVampireLanguage.g:1276:2: iv_ruleVLSUnitaryFormula= ruleVLSUnitaryFormula EOF
3240 {
3241 newCompositeNode(grammarAccess.getVLSUnitaryFormulaRule());
3242 pushFollow(FOLLOW_1);
3243 iv_ruleVLSUnitaryFormula=ruleVLSUnitaryFormula();
3244
3245 state._fsp--;
3246
3247 current =iv_ruleVLSUnitaryFormula;
3248 match(input,EOF,FOLLOW_2);
3249
3250 }
3251
3252 }
3253
3254 catch (RecognitionException re) {
3255 recover(input,re);
3256 appendSkippedTokens();
3257 }
3258 finally {
3259 }
3260 return current;
3261 }
3262 // $ANTLR end "entryRuleVLSUnitaryFormula"
3263
3264
3265 // $ANTLR start "ruleVLSUnitaryFormula"
3266 // InternalVampireLanguage.g:1282:1: ruleVLSUnitaryFormula returns [EObject current=null] : (this_VLSUniversalQuantifier_0= ruleVLSUniversalQuantifier | this_VLSExistentialQuantifier_1= ruleVLSExistentialQuantifier | this_VLSUnaryNegation_2= ruleVLSUnaryNegation | this_VLSUnaryInfix_3= ruleVLSUnaryInfix | (otherlv_4= '(' this_VLSTerm_5= ruleVLSTerm otherlv_6= ')' ) ) ;
3267 public final EObject ruleVLSUnitaryFormula() throws RecognitionException {
3268 EObject current = null;
3269
3270 Token otherlv_4=null;
3271 Token otherlv_6=null;
3272 EObject this_VLSUniversalQuantifier_0 = null;
3273
3274 EObject this_VLSExistentialQuantifier_1 = null;
3275
3276 EObject this_VLSUnaryNegation_2 = null;
3277
3278 EObject this_VLSUnaryInfix_3 = null;
3279
3280 EObject this_VLSTerm_5 = null;
3281
3282
3283
3284 enterRule();
3285
3286 try {
3287 // InternalVampireLanguage.g:1288:2: ( (this_VLSUniversalQuantifier_0= ruleVLSUniversalQuantifier | this_VLSExistentialQuantifier_1= ruleVLSExistentialQuantifier | this_VLSUnaryNegation_2= ruleVLSUnaryNegation | this_VLSUnaryInfix_3= ruleVLSUnaryInfix | (otherlv_4= '(' this_VLSTerm_5= ruleVLSTerm otherlv_6= ')' ) ) )
3288 // InternalVampireLanguage.g:1289:2: (this_VLSUniversalQuantifier_0= ruleVLSUniversalQuantifier | this_VLSExistentialQuantifier_1= ruleVLSExistentialQuantifier | this_VLSUnaryNegation_2= ruleVLSUnaryNegation | this_VLSUnaryInfix_3= ruleVLSUnaryInfix | (otherlv_4= '(' this_VLSTerm_5= ruleVLSTerm otherlv_6= ')' ) )
3289 {
3290 // InternalVampireLanguage.g:1289:2: (this_VLSUniversalQuantifier_0= ruleVLSUniversalQuantifier | this_VLSExistentialQuantifier_1= ruleVLSExistentialQuantifier | this_VLSUnaryNegation_2= ruleVLSUnaryNegation | this_VLSUnaryInfix_3= ruleVLSUnaryInfix | (otherlv_4= '(' this_VLSTerm_5= ruleVLSTerm otherlv_6= ')' ) )
3291 int alt20=5;
3292 switch ( input.LA(1) ) {
3293 case 62:
3294 {
3295 alt20=1;
3296 }
3297 break;
3298 case 64:
3299 {
3300 alt20=2;
3301 }
3302 break;
3303 case 65:
3304 {
3305 alt20=3;
3306 }
3307 break;
3308 case RULE_SINGLE_QUOTE:
3309 case RULE_LOWER_WORD_ID:
3310 case RULE_SIGNED_LITERAL:
3311 case RULE_DOLLAR_ID:
3312 case RULE_DOUBLE_DOLLAR_ID:
3313 case RULE_UPPER_WORD_ID:
3314 case RULE_SIGNED_REAL_ID:
3315 case RULE_SIGNED_RAT_ID:
3316 case RULE_DOUBLE_QUOTE:
3317 case 38:
3318 case 39:
3319 case 40:
3320 case 41:
3321 case 42:
3322 case 43:
3323 case 44:
3324 case 45:
3325 case 46:
3326 case 47:
3327 case 48:
3328 case 49:
3329 case 50:
3330 case 51:
3331 case 52:
3332 case 69:
3333 case 70:
3334 case 71:
3335 {
3336 alt20=4;
3337 }
3338 break;
3339 case 34:
3340 {
3341 alt20=5;
3342 }
3343 break;
3344 default:
3345 NoViableAltException nvae =
3346 new NoViableAltException("", 20, 0, input);
3347
3348 throw nvae;
3349 }
3350
3351 switch (alt20) {
3352 case 1 :
3353 // InternalVampireLanguage.g:1290:3: this_VLSUniversalQuantifier_0= ruleVLSUniversalQuantifier
3354 {
3355
3356 newCompositeNode(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUniversalQuantifierParserRuleCall_0());
3357
3358 pushFollow(FOLLOW_2);
3359 this_VLSUniversalQuantifier_0=ruleVLSUniversalQuantifier();
3360
3361 state._fsp--;
3362
3363
3364 current = this_VLSUniversalQuantifier_0;
3365 afterParserOrEnumRuleCall();
3366
3367
3368 }
3369 break;
3370 case 2 :
3371 // InternalVampireLanguage.g:1299:3: this_VLSExistentialQuantifier_1= ruleVLSExistentialQuantifier
3372 {
3373
3374 newCompositeNode(grammarAccess.getVLSUnitaryFormulaAccess().getVLSExistentialQuantifierParserRuleCall_1());
3375
3376 pushFollow(FOLLOW_2);
3377 this_VLSExistentialQuantifier_1=ruleVLSExistentialQuantifier();
3378
3379 state._fsp--;
3380
3381
3382 current = this_VLSExistentialQuantifier_1;
3383 afterParserOrEnumRuleCall();
3384
3385
3386 }
3387 break;
3388 case 3 :
3389 // InternalVampireLanguage.g:1308:3: this_VLSUnaryNegation_2= ruleVLSUnaryNegation
3390 {
3391
3392 newCompositeNode(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUnaryNegationParserRuleCall_2());
3393
3394 pushFollow(FOLLOW_2);
3395 this_VLSUnaryNegation_2=ruleVLSUnaryNegation();
3396
3397 state._fsp--;
3398
3399
3400 current = this_VLSUnaryNegation_2;
3401 afterParserOrEnumRuleCall();
3402
3403
3404 }
3405 break;
3406 case 4 :
3407 // InternalVampireLanguage.g:1317:3: this_VLSUnaryInfix_3= ruleVLSUnaryInfix
3408 {
3409
3410 newCompositeNode(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUnaryInfixParserRuleCall_3());
3411
3412 pushFollow(FOLLOW_2);
3413 this_VLSUnaryInfix_3=ruleVLSUnaryInfix();
3414
3415 state._fsp--;
3416
3417
3418 current = this_VLSUnaryInfix_3;
3419 afterParserOrEnumRuleCall();
3420
3421
3422 }
3423 break;
3424 case 5 :
3425 // InternalVampireLanguage.g:1326:3: (otherlv_4= '(' this_VLSTerm_5= ruleVLSTerm otherlv_6= ')' )
3426 {
3427 // InternalVampireLanguage.g:1326:3: (otherlv_4= '(' this_VLSTerm_5= ruleVLSTerm otherlv_6= ')' )
3428 // InternalVampireLanguage.g:1327:4: otherlv_4= '(' this_VLSTerm_5= ruleVLSTerm otherlv_6= ')'
3429 {
3430 otherlv_4=(Token)match(input,34,FOLLOW_13);
3431
3432 newLeafNode(otherlv_4, grammarAccess.getVLSUnitaryFormulaAccess().getLeftParenthesisKeyword_4_0());
3433
3434
3435 newCompositeNode(grammarAccess.getVLSUnitaryFormulaAccess().getVLSTermParserRuleCall_4_1());
3436
3437 pushFollow(FOLLOW_16);
3438 this_VLSTerm_5=ruleVLSTerm();
3439
3440 state._fsp--;
3441
3442
3443 current = this_VLSTerm_5;
3444 afterParserOrEnumRuleCall();
3445
3446 otherlv_6=(Token)match(input,35,FOLLOW_2);
3447
3448 newLeafNode(otherlv_6, grammarAccess.getVLSUnitaryFormulaAccess().getRightParenthesisKeyword_4_2());
3449
3450
3451 }
3452
3453
3454 }
3455 break;
3456
3457 }
3458
3459
3460 }
3461
3462
3463 leaveRule();
3464
3465 }
3466
3467 catch (RecognitionException re) {
3468 recover(input,re);
3469 appendSkippedTokens();
3470 }
3471 finally {
3472 }
3473 return current;
3474 }
3475 // $ANTLR end "ruleVLSUnitaryFormula"
3476
3477
3478 // $ANTLR start "entryRuleVLSUniversalQuantifier"
3479 // InternalVampireLanguage.g:1348:1: entryRuleVLSUniversalQuantifier returns [EObject current=null] : iv_ruleVLSUniversalQuantifier= ruleVLSUniversalQuantifier EOF ;
3480 public final EObject entryRuleVLSUniversalQuantifier() throws RecognitionException {
3481 EObject current = null;
3482
3483 EObject iv_ruleVLSUniversalQuantifier = null;
3484
3485
3486 try {
3487 // InternalVampireLanguage.g:1348:63: (iv_ruleVLSUniversalQuantifier= ruleVLSUniversalQuantifier EOF )
3488 // InternalVampireLanguage.g:1349:2: iv_ruleVLSUniversalQuantifier= ruleVLSUniversalQuantifier EOF
3489 {
3490 newCompositeNode(grammarAccess.getVLSUniversalQuantifierRule());
3491 pushFollow(FOLLOW_1);
3492 iv_ruleVLSUniversalQuantifier=ruleVLSUniversalQuantifier();
3493
3494 state._fsp--;
3495
3496 current =iv_ruleVLSUniversalQuantifier;
3497 match(input,EOF,FOLLOW_2);
3498
3499 }
3500
3501 }
3502
3503 catch (RecognitionException re) {
3504 recover(input,re);
3505 appendSkippedTokens();
3506 }
3507 finally {
3508 }
3509 return current;
3510 }
3511 // $ANTLR end "entryRuleVLSUniversalQuantifier"
3512
3513
3514 // $ANTLR start "ruleVLSUniversalQuantifier"
3515 // InternalVampireLanguage.g:1355:1: ruleVLSUniversalQuantifier returns [EObject current=null] : ( () (otherlv_1= '!' otherlv_2= '[' ( (lv_variables_3_0= ruleVLSVariable ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )* otherlv_6= ']' otherlv_7= ':' ) ( (lv_operand_8_0= ruleVLSUnitaryFormula ) ) ) ;
3516 public final EObject ruleVLSUniversalQuantifier() throws RecognitionException {
3517 EObject current = null;
3518
3519 Token otherlv_1=null;
3520 Token otherlv_2=null;
3521 Token otherlv_4=null;
3522 Token otherlv_6=null;
3523 Token otherlv_7=null;
3524 EObject lv_variables_3_0 = null;
3525
3526 EObject lv_variables_5_0 = null;
3527
3528 EObject lv_operand_8_0 = null;
3529
3530
3531
3532 enterRule();
3533
3534 try {
3535 // InternalVampireLanguage.g:1361:2: ( ( () (otherlv_1= '!' otherlv_2= '[' ( (lv_variables_3_0= ruleVLSVariable ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )* otherlv_6= ']' otherlv_7= ':' ) ( (lv_operand_8_0= ruleVLSUnitaryFormula ) ) ) )
3536 // InternalVampireLanguage.g:1362:2: ( () (otherlv_1= '!' otherlv_2= '[' ( (lv_variables_3_0= ruleVLSVariable ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )* otherlv_6= ']' otherlv_7= ':' ) ( (lv_operand_8_0= ruleVLSUnitaryFormula ) ) )
3537 {
3538 // InternalVampireLanguage.g:1362:2: ( () (otherlv_1= '!' otherlv_2= '[' ( (lv_variables_3_0= ruleVLSVariable ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )* otherlv_6= ']' otherlv_7= ':' ) ( (lv_operand_8_0= ruleVLSUnitaryFormula ) ) )
3539 // InternalVampireLanguage.g:1363:3: () (otherlv_1= '!' otherlv_2= '[' ( (lv_variables_3_0= ruleVLSVariable ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )* otherlv_6= ']' otherlv_7= ':' ) ( (lv_operand_8_0= ruleVLSUnitaryFormula ) )
3540 {
3541 // InternalVampireLanguage.g:1363:3: ()
3542 // InternalVampireLanguage.g:1364:4:
3543 {
3544
3545 current = forceCreateModelElement(
3546 grammarAccess.getVLSUniversalQuantifierAccess().getVLSUniversalQuantifierAction_0(),
3547 current);
3548
3549
3550 }
3551
3552 // InternalVampireLanguage.g:1370:3: (otherlv_1= '!' otherlv_2= '[' ( (lv_variables_3_0= ruleVLSVariable ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )* otherlv_6= ']' otherlv_7= ':' )
3553 // InternalVampireLanguage.g:1371:4: otherlv_1= '!' otherlv_2= '[' ( (lv_variables_3_0= ruleVLSVariable ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )* otherlv_6= ']' otherlv_7= ':'
3554 {
3555 otherlv_1=(Token)match(input,62,FOLLOW_26);
3556
3557 newLeafNode(otherlv_1, grammarAccess.getVLSUniversalQuantifierAccess().getExclamationMarkKeyword_1_0());
3558
3559 otherlv_2=(Token)match(input,53,FOLLOW_27);
3560
3561 newLeafNode(otherlv_2, grammarAccess.getVLSUniversalQuantifierAccess().getLeftSquareBracketKeyword_1_1());
3562
3563 // InternalVampireLanguage.g:1379:4: ( (lv_variables_3_0= ruleVLSVariable ) )
3564 // InternalVampireLanguage.g:1380:5: (lv_variables_3_0= ruleVLSVariable )
3565 {
3566 // InternalVampireLanguage.g:1380:5: (lv_variables_3_0= ruleVLSVariable )
3567 // InternalVampireLanguage.g:1381:6: lv_variables_3_0= ruleVLSVariable
3568 {
3569
3570 newCompositeNode(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_2_0());
3571
3572 pushFollow(FOLLOW_7);
3573 lv_variables_3_0=ruleVLSVariable();
3574
3575 state._fsp--;
3576
3577
3578 if (current==null) {
3579 current = createModelElementForParent(grammarAccess.getVLSUniversalQuantifierRule());
3580 }
3581 add(
3582 current,
3583 "variables",
3584 lv_variables_3_0,
3585 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSVariable");
3586 afterParserOrEnumRuleCall();
3587
3588
3589 }
3590
3591
3592 }
3593
3594 // InternalVampireLanguage.g:1398:4: (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )*
3595 loop21:
3596 do {
3597 int alt21=2;
3598 int LA21_0 = input.LA(1);
3599
3600 if ( (LA21_0==29) ) {
3601 alt21=1;
3602 }
3603
3604
3605 switch (alt21) {
3606 case 1 :
3607 // InternalVampireLanguage.g:1399:5: otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) )
3608 {
3609 otherlv_4=(Token)match(input,29,FOLLOW_27);
3610
3611 newLeafNode(otherlv_4, grammarAccess.getVLSUniversalQuantifierAccess().getCommaKeyword_1_3_0());
3612
3613 // InternalVampireLanguage.g:1403:5: ( (lv_variables_5_0= ruleVLSVariable ) )
3614 // InternalVampireLanguage.g:1404:6: (lv_variables_5_0= ruleVLSVariable )
3615 {
3616 // InternalVampireLanguage.g:1404:6: (lv_variables_5_0= ruleVLSVariable )
3617 // InternalVampireLanguage.g:1405:7: lv_variables_5_0= ruleVLSVariable
3618 {
3619
3620 newCompositeNode(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_3_1_0());
3621
3622 pushFollow(FOLLOW_7);
3623 lv_variables_5_0=ruleVLSVariable();
3624
3625 state._fsp--;
3626
3627
3628 if (current==null) {
3629 current = createModelElementForParent(grammarAccess.getVLSUniversalQuantifierRule());
3630 }
3631 add(
3632 current,
3633 "variables",
3634 lv_variables_5_0,
3635 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSVariable");
3636 afterParserOrEnumRuleCall();
3637
3638
3639 }
3640
3641
3642 }
3643
3644
3645 }
3646 break;
3647
3648 default :
3649 break loop21;
3650 }
3651 } while (true);
3652
3653 otherlv_6=(Token)match(input,30,FOLLOW_28);
3654
3655 newLeafNode(otherlv_6, grammarAccess.getVLSUniversalQuantifierAccess().getRightSquareBracketKeyword_1_4());
3656
3657 otherlv_7=(Token)match(input,63,FOLLOW_13);
3658
3659 newLeafNode(otherlv_7, grammarAccess.getVLSUniversalQuantifierAccess().getColonKeyword_1_5());
3660
3661
3662 }
3663
3664 // InternalVampireLanguage.g:1432:3: ( (lv_operand_8_0= ruleVLSUnitaryFormula ) )
3665 // InternalVampireLanguage.g:1433:4: (lv_operand_8_0= ruleVLSUnitaryFormula )
3666 {
3667 // InternalVampireLanguage.g:1433:4: (lv_operand_8_0= ruleVLSUnitaryFormula )
3668 // InternalVampireLanguage.g:1434:5: lv_operand_8_0= ruleVLSUnitaryFormula
3669 {
3670
3671 newCompositeNode(grammarAccess.getVLSUniversalQuantifierAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0());
3672
3673 pushFollow(FOLLOW_2);
3674 lv_operand_8_0=ruleVLSUnitaryFormula();
3675
3676 state._fsp--;
3677
3678
3679 if (current==null) {
3680 current = createModelElementForParent(grammarAccess.getVLSUniversalQuantifierRule());
3681 }
3682 set(
3683 current,
3684 "operand",
3685 lv_operand_8_0,
3686 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnitaryFormula");
3687 afterParserOrEnumRuleCall();
3688
3689
3690 }
3691
3692
3693 }
3694
3695
3696 }
3697
3698
3699 }
3700
3701
3702 leaveRule();
3703
3704 }
3705
3706 catch (RecognitionException re) {
3707 recover(input,re);
3708 appendSkippedTokens();
3709 }
3710 finally {
3711 }
3712 return current;
3713 }
3714 // $ANTLR end "ruleVLSUniversalQuantifier"
3715
3716
3717 // $ANTLR start "entryRuleVLSExistentialQuantifier"
3718 // InternalVampireLanguage.g:1455:1: entryRuleVLSExistentialQuantifier returns [EObject current=null] : iv_ruleVLSExistentialQuantifier= ruleVLSExistentialQuantifier EOF ;
3719 public final EObject entryRuleVLSExistentialQuantifier() throws RecognitionException {
3720 EObject current = null;
3721
3722 EObject iv_ruleVLSExistentialQuantifier = null;
3723
3724
3725 try {
3726 // InternalVampireLanguage.g:1455:65: (iv_ruleVLSExistentialQuantifier= ruleVLSExistentialQuantifier EOF )
3727 // InternalVampireLanguage.g:1456:2: iv_ruleVLSExistentialQuantifier= ruleVLSExistentialQuantifier EOF
3728 {
3729 newCompositeNode(grammarAccess.getVLSExistentialQuantifierRule());
3730 pushFollow(FOLLOW_1);
3731 iv_ruleVLSExistentialQuantifier=ruleVLSExistentialQuantifier();
3732
3733 state._fsp--;
3734
3735 current =iv_ruleVLSExistentialQuantifier;
3736 match(input,EOF,FOLLOW_2);
3737
3738 }
3739
3740 }
3741
3742 catch (RecognitionException re) {
3743 recover(input,re);
3744 appendSkippedTokens();
3745 }
3746 finally {
3747 }
3748 return current;
3749 }
3750 // $ANTLR end "entryRuleVLSExistentialQuantifier"
3751
3752
3753 // $ANTLR start "ruleVLSExistentialQuantifier"
3754 // InternalVampireLanguage.g:1462:1: ruleVLSExistentialQuantifier returns [EObject current=null] : ( () (otherlv_1= '?' otherlv_2= '[' ( (lv_variables_3_0= ruleVLSVariable ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )* otherlv_6= ']' otherlv_7= ':' ) ( (lv_operand_8_0= ruleVLSUnitaryFormula ) ) ) ;
3755 public final EObject ruleVLSExistentialQuantifier() throws RecognitionException {
3756 EObject current = null;
3757
3758 Token otherlv_1=null;
3759 Token otherlv_2=null;
3760 Token otherlv_4=null;
3761 Token otherlv_6=null;
3762 Token otherlv_7=null;
3763 EObject lv_variables_3_0 = null;
3764
3765 EObject lv_variables_5_0 = null;
3766
3767 EObject lv_operand_8_0 = null;
3768
3769
3770
3771 enterRule();
3772
3773 try {
3774 // InternalVampireLanguage.g:1468:2: ( ( () (otherlv_1= '?' otherlv_2= '[' ( (lv_variables_3_0= ruleVLSVariable ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )* otherlv_6= ']' otherlv_7= ':' ) ( (lv_operand_8_0= ruleVLSUnitaryFormula ) ) ) )
3775 // InternalVampireLanguage.g:1469:2: ( () (otherlv_1= '?' otherlv_2= '[' ( (lv_variables_3_0= ruleVLSVariable ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )* otherlv_6= ']' otherlv_7= ':' ) ( (lv_operand_8_0= ruleVLSUnitaryFormula ) ) )
3776 {
3777 // InternalVampireLanguage.g:1469:2: ( () (otherlv_1= '?' otherlv_2= '[' ( (lv_variables_3_0= ruleVLSVariable ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )* otherlv_6= ']' otherlv_7= ':' ) ( (lv_operand_8_0= ruleVLSUnitaryFormula ) ) )
3778 // InternalVampireLanguage.g:1470:3: () (otherlv_1= '?' otherlv_2= '[' ( (lv_variables_3_0= ruleVLSVariable ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )* otherlv_6= ']' otherlv_7= ':' ) ( (lv_operand_8_0= ruleVLSUnitaryFormula ) )
3779 {
3780 // InternalVampireLanguage.g:1470:3: ()
3781 // InternalVampireLanguage.g:1471:4:
3782 {
3783
3784 current = forceCreateModelElement(
3785 grammarAccess.getVLSExistentialQuantifierAccess().getVLSExistentialQuantifierAction_0(),
3786 current);
3787
3788
3789 }
3790
3791 // InternalVampireLanguage.g:1477:3: (otherlv_1= '?' otherlv_2= '[' ( (lv_variables_3_0= ruleVLSVariable ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )* otherlv_6= ']' otherlv_7= ':' )
3792 // InternalVampireLanguage.g:1478:4: otherlv_1= '?' otherlv_2= '[' ( (lv_variables_3_0= ruleVLSVariable ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )* otherlv_6= ']' otherlv_7= ':'
3793 {
3794 otherlv_1=(Token)match(input,64,FOLLOW_26);
3795
3796 newLeafNode(otherlv_1, grammarAccess.getVLSExistentialQuantifierAccess().getQuestionMarkKeyword_1_0());
3797
3798 otherlv_2=(Token)match(input,53,FOLLOW_27);
3799
3800 newLeafNode(otherlv_2, grammarAccess.getVLSExistentialQuantifierAccess().getLeftSquareBracketKeyword_1_1());
3801
3802 // InternalVampireLanguage.g:1486:4: ( (lv_variables_3_0= ruleVLSVariable ) )
3803 // InternalVampireLanguage.g:1487:5: (lv_variables_3_0= ruleVLSVariable )
3804 {
3805 // InternalVampireLanguage.g:1487:5: (lv_variables_3_0= ruleVLSVariable )
3806 // InternalVampireLanguage.g:1488:6: lv_variables_3_0= ruleVLSVariable
3807 {
3808
3809 newCompositeNode(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_2_0());
3810
3811 pushFollow(FOLLOW_7);
3812 lv_variables_3_0=ruleVLSVariable();
3813
3814 state._fsp--;
3815
3816
3817 if (current==null) {
3818 current = createModelElementForParent(grammarAccess.getVLSExistentialQuantifierRule());
3819 }
3820 add(
3821 current,
3822 "variables",
3823 lv_variables_3_0,
3824 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSVariable");
3825 afterParserOrEnumRuleCall();
3826
3827
3828 }
3829
3830
3831 }
3832
3833 // InternalVampireLanguage.g:1505:4: (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )*
3834 loop22:
3835 do {
3836 int alt22=2;
3837 int LA22_0 = input.LA(1);
3838
3839 if ( (LA22_0==29) ) {
3840 alt22=1;
3841 }
3842
3843
3844 switch (alt22) {
3845 case 1 :
3846 // InternalVampireLanguage.g:1506:5: otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) )
3847 {
3848 otherlv_4=(Token)match(input,29,FOLLOW_27);
3849
3850 newLeafNode(otherlv_4, grammarAccess.getVLSExistentialQuantifierAccess().getCommaKeyword_1_3_0());
3851
3852 // InternalVampireLanguage.g:1510:5: ( (lv_variables_5_0= ruleVLSVariable ) )
3853 // InternalVampireLanguage.g:1511:6: (lv_variables_5_0= ruleVLSVariable )
3854 {
3855 // InternalVampireLanguage.g:1511:6: (lv_variables_5_0= ruleVLSVariable )
3856 // InternalVampireLanguage.g:1512:7: lv_variables_5_0= ruleVLSVariable
3857 {
3858
3859 newCompositeNode(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_3_1_0());
3860
3861 pushFollow(FOLLOW_7);
3862 lv_variables_5_0=ruleVLSVariable();
3863
3864 state._fsp--;
3865
3866
3867 if (current==null) {
3868 current = createModelElementForParent(grammarAccess.getVLSExistentialQuantifierRule());
3869 }
3870 add(
3871 current,
3872 "variables",
3873 lv_variables_5_0,
3874 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSVariable");
3875 afterParserOrEnumRuleCall();
3876
3877
3878 }
3879
3880
3881 }
3882
3883
3884 }
3885 break;
3886
3887 default :
3888 break loop22;
3889 }
3890 } while (true);
3891
3892 otherlv_6=(Token)match(input,30,FOLLOW_28);
3893
3894 newLeafNode(otherlv_6, grammarAccess.getVLSExistentialQuantifierAccess().getRightSquareBracketKeyword_1_4());
3895
3896 otherlv_7=(Token)match(input,63,FOLLOW_13);
3897
3898 newLeafNode(otherlv_7, grammarAccess.getVLSExistentialQuantifierAccess().getColonKeyword_1_5());
3899
3900
3901 }
3902
3903 // InternalVampireLanguage.g:1539:3: ( (lv_operand_8_0= ruleVLSUnitaryFormula ) )
3904 // InternalVampireLanguage.g:1540:4: (lv_operand_8_0= ruleVLSUnitaryFormula )
3905 {
3906 // InternalVampireLanguage.g:1540:4: (lv_operand_8_0= ruleVLSUnitaryFormula )
3907 // InternalVampireLanguage.g:1541:5: lv_operand_8_0= ruleVLSUnitaryFormula
3908 {
3909
3910 newCompositeNode(grammarAccess.getVLSExistentialQuantifierAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0());
3911
3912 pushFollow(FOLLOW_2);
3913 lv_operand_8_0=ruleVLSUnitaryFormula();
3914
3915 state._fsp--;
3916
3917
3918 if (current==null) {
3919 current = createModelElementForParent(grammarAccess.getVLSExistentialQuantifierRule());
3920 }
3921 set(
3922 current,
3923 "operand",
3924 lv_operand_8_0,
3925 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnitaryFormula");
3926 afterParserOrEnumRuleCall();
3927
3928
3929 }
3930
3931
3932 }
3933
3934
3935 }
3936
3937
3938 }
3939
3940
3941 leaveRule();
3942
3943 }
3944
3945 catch (RecognitionException re) {
3946 recover(input,re);
3947 appendSkippedTokens();
3948 }
3949 finally {
3950 }
3951 return current;
3952 }
3953 // $ANTLR end "ruleVLSExistentialQuantifier"
3954
3955
3956 // $ANTLR start "entryRuleVLSUnaryNegation"
3957 // InternalVampireLanguage.g:1562:1: entryRuleVLSUnaryNegation returns [EObject current=null] : iv_ruleVLSUnaryNegation= ruleVLSUnaryNegation EOF ;
3958 public final EObject entryRuleVLSUnaryNegation() throws RecognitionException {
3959 EObject current = null;
3960
3961 EObject iv_ruleVLSUnaryNegation = null;
3962
3963
3964 try {
3965 // InternalVampireLanguage.g:1562:57: (iv_ruleVLSUnaryNegation= ruleVLSUnaryNegation EOF )
3966 // InternalVampireLanguage.g:1563:2: iv_ruleVLSUnaryNegation= ruleVLSUnaryNegation EOF
3967 {
3968 newCompositeNode(grammarAccess.getVLSUnaryNegationRule());
3969 pushFollow(FOLLOW_1);
3970 iv_ruleVLSUnaryNegation=ruleVLSUnaryNegation();
3971
3972 state._fsp--;
3973
3974 current =iv_ruleVLSUnaryNegation;
3975 match(input,EOF,FOLLOW_2);
3976
3977 }
3978
3979 }
3980
3981 catch (RecognitionException re) {
3982 recover(input,re);
3983 appendSkippedTokens();
3984 }
3985 finally {
3986 }
3987 return current;
3988 }
3989 // $ANTLR end "entryRuleVLSUnaryNegation"
3990
3991
3992 // $ANTLR start "ruleVLSUnaryNegation"
3993 // InternalVampireLanguage.g:1569:1: ruleVLSUnaryNegation returns [EObject current=null] : ( () otherlv_1= '~' ( (lv_operand_2_0= ruleVLSUnitaryFormula ) ) ) ;
3994 public final EObject ruleVLSUnaryNegation() throws RecognitionException {
3995 EObject current = null;
3996
3997 Token otherlv_1=null;
3998 EObject lv_operand_2_0 = null;
3999
4000
4001
4002 enterRule();
4003
4004 try {
4005 // InternalVampireLanguage.g:1575:2: ( ( () otherlv_1= '~' ( (lv_operand_2_0= ruleVLSUnitaryFormula ) ) ) )
4006 // InternalVampireLanguage.g:1576:2: ( () otherlv_1= '~' ( (lv_operand_2_0= ruleVLSUnitaryFormula ) ) )
4007 {
4008 // InternalVampireLanguage.g:1576:2: ( () otherlv_1= '~' ( (lv_operand_2_0= ruleVLSUnitaryFormula ) ) )
4009 // InternalVampireLanguage.g:1577:3: () otherlv_1= '~' ( (lv_operand_2_0= ruleVLSUnitaryFormula ) )
4010 {
4011 // InternalVampireLanguage.g:1577:3: ()
4012 // InternalVampireLanguage.g:1578:4:
4013 {
4014
4015 current = forceCreateModelElement(
4016 grammarAccess.getVLSUnaryNegationAccess().getVLSUnaryNegationAction_0(),
4017 current);
4018
4019
4020 }
4021
4022 otherlv_1=(Token)match(input,65,FOLLOW_13);
4023
4024 newLeafNode(otherlv_1, grammarAccess.getVLSUnaryNegationAccess().getTildeKeyword_1());
4025
4026 // InternalVampireLanguage.g:1588:3: ( (lv_operand_2_0= ruleVLSUnitaryFormula ) )
4027 // InternalVampireLanguage.g:1589:4: (lv_operand_2_0= ruleVLSUnitaryFormula )
4028 {
4029 // InternalVampireLanguage.g:1589:4: (lv_operand_2_0= ruleVLSUnitaryFormula )
4030 // InternalVampireLanguage.g:1590:5: lv_operand_2_0= ruleVLSUnitaryFormula
4031 {
4032
4033 newCompositeNode(grammarAccess.getVLSUnaryNegationAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0());
4034
4035 pushFollow(FOLLOW_2);
4036 lv_operand_2_0=ruleVLSUnitaryFormula();
4037
4038 state._fsp--;
4039
4040
4041 if (current==null) {
4042 current = createModelElementForParent(grammarAccess.getVLSUnaryNegationRule());
4043 }
4044 set(
4045 current,
4046 "operand",
4047 lv_operand_2_0,
4048 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnitaryFormula");
4049 afterParserOrEnumRuleCall();
4050
4051
4052 }
4053
4054
4055 }
4056
4057
4058 }
4059
4060
4061 }
4062
4063
4064 leaveRule();
4065
4066 }
4067
4068 catch (RecognitionException re) {
4069 recover(input,re);
4070 appendSkippedTokens();
4071 }
4072 finally {
4073 }
4074 return current;
4075 }
4076 // $ANTLR end "ruleVLSUnaryNegation"
4077
4078
4079 // $ANTLR start "entryRuleVLSUnaryInfix"
4080 // InternalVampireLanguage.g:1611:1: entryRuleVLSUnaryInfix returns [EObject current=null] : iv_ruleVLSUnaryInfix= ruleVLSUnaryInfix EOF ;
4081 public final EObject entryRuleVLSUnaryInfix() throws RecognitionException {
4082 EObject current = null;
4083
4084 EObject iv_ruleVLSUnaryInfix = null;
4085
4086
4087 try {
4088 // InternalVampireLanguage.g:1611:54: (iv_ruleVLSUnaryInfix= ruleVLSUnaryInfix EOF )
4089 // InternalVampireLanguage.g:1612:2: iv_ruleVLSUnaryInfix= ruleVLSUnaryInfix EOF
4090 {
4091 newCompositeNode(grammarAccess.getVLSUnaryInfixRule());
4092 pushFollow(FOLLOW_1);
4093 iv_ruleVLSUnaryInfix=ruleVLSUnaryInfix();
4094
4095 state._fsp--;
4096
4097 current =iv_ruleVLSUnaryInfix;
4098 match(input,EOF,FOLLOW_2);
4099
4100 }
4101
4102 }
4103
4104 catch (RecognitionException re) {
4105 recover(input,re);
4106 appendSkippedTokens();
4107 }
4108 finally {
4109 }
4110 return current;
4111 }
4112 // $ANTLR end "entryRuleVLSUnaryInfix"
4113
4114
4115 // $ANTLR start "ruleVLSUnaryInfix"
4116 // InternalVampireLanguage.g:1618:1: ruleVLSUnaryInfix returns [EObject current=null] : (this_VLSAtomic_0= ruleVLSAtomic ( ( ( () otherlv_2= '!=' ) | ( () otherlv_4= '=' ) | ( () otherlv_6= ':=' ) ) ( (lv_right_7_0= ruleVLSAtomic ) ) )? ) ;
4117 public final EObject ruleVLSUnaryInfix() throws RecognitionException {
4118 EObject current = null;
4119
4120 Token otherlv_2=null;
4121 Token otherlv_4=null;
4122 Token otherlv_6=null;
4123 EObject this_VLSAtomic_0 = null;
4124
4125 EObject lv_right_7_0 = null;
4126
4127
4128
4129 enterRule();
4130
4131 try {
4132 // InternalVampireLanguage.g:1624:2: ( (this_VLSAtomic_0= ruleVLSAtomic ( ( ( () otherlv_2= '!=' ) | ( () otherlv_4= '=' ) | ( () otherlv_6= ':=' ) ) ( (lv_right_7_0= ruleVLSAtomic ) ) )? ) )
4133 // InternalVampireLanguage.g:1625:2: (this_VLSAtomic_0= ruleVLSAtomic ( ( ( () otherlv_2= '!=' ) | ( () otherlv_4= '=' ) | ( () otherlv_6= ':=' ) ) ( (lv_right_7_0= ruleVLSAtomic ) ) )? )
4134 {
4135 // InternalVampireLanguage.g:1625:2: (this_VLSAtomic_0= ruleVLSAtomic ( ( ( () otherlv_2= '!=' ) | ( () otherlv_4= '=' ) | ( () otherlv_6= ':=' ) ) ( (lv_right_7_0= ruleVLSAtomic ) ) )? )
4136 // InternalVampireLanguage.g:1626:3: this_VLSAtomic_0= ruleVLSAtomic ( ( ( () otherlv_2= '!=' ) | ( () otherlv_4= '=' ) | ( () otherlv_6= ':=' ) ) ( (lv_right_7_0= ruleVLSAtomic ) ) )?
4137 {
4138
4139 newCompositeNode(grammarAccess.getVLSUnaryInfixAccess().getVLSAtomicParserRuleCall_0());
4140
4141 pushFollow(FOLLOW_29);
4142 this_VLSAtomic_0=ruleVLSAtomic();
4143
4144 state._fsp--;
4145
4146
4147 current = this_VLSAtomic_0;
4148 afterParserOrEnumRuleCall();
4149
4150 // InternalVampireLanguage.g:1634:3: ( ( ( () otherlv_2= '!=' ) | ( () otherlv_4= '=' ) | ( () otherlv_6= ':=' ) ) ( (lv_right_7_0= ruleVLSAtomic ) ) )?
4151 int alt24=2;
4152 int LA24_0 = input.LA(1);
4153
4154 if ( ((LA24_0>=66 && LA24_0<=68)) ) {
4155 alt24=1;
4156 }
4157 switch (alt24) {
4158 case 1 :
4159 // InternalVampireLanguage.g:1635:4: ( ( () otherlv_2= '!=' ) | ( () otherlv_4= '=' ) | ( () otherlv_6= ':=' ) ) ( (lv_right_7_0= ruleVLSAtomic ) )
4160 {
4161 // InternalVampireLanguage.g:1635:4: ( ( () otherlv_2= '!=' ) | ( () otherlv_4= '=' ) | ( () otherlv_6= ':=' ) )
4162 int alt23=3;
4163 switch ( input.LA(1) ) {
4164 case 66:
4165 {
4166 alt23=1;
4167 }
4168 break;
4169 case 67:
4170 {
4171 alt23=2;
4172 }
4173 break;
4174 case 68:
4175 {
4176 alt23=3;
4177 }
4178 break;
4179 default:
4180 NoViableAltException nvae =
4181 new NoViableAltException("", 23, 0, input);
4182
4183 throw nvae;
4184 }
4185
4186 switch (alt23) {
4187 case 1 :
4188 // InternalVampireLanguage.g:1636:5: ( () otherlv_2= '!=' )
4189 {
4190 // InternalVampireLanguage.g:1636:5: ( () otherlv_2= '!=' )
4191 // InternalVampireLanguage.g:1637:6: () otherlv_2= '!='
4192 {
4193 // InternalVampireLanguage.g:1637:6: ()
4194 // InternalVampireLanguage.g:1638:7:
4195 {
4196
4197 current = forceCreateModelElementAndSet(
4198 grammarAccess.getVLSUnaryInfixAccess().getVLSInequalityLeftAction_1_0_0_0(),
4199 current);
4200
4201
4202 }
4203
4204 otherlv_2=(Token)match(input,66,FOLLOW_30);
4205
4206 newLeafNode(otherlv_2, grammarAccess.getVLSUnaryInfixAccess().getExclamationMarkEqualsSignKeyword_1_0_0_1());
4207
4208
4209 }
4210
4211
4212 }
4213 break;
4214 case 2 :
4215 // InternalVampireLanguage.g:1650:5: ( () otherlv_4= '=' )
4216 {
4217 // InternalVampireLanguage.g:1650:5: ( () otherlv_4= '=' )
4218 // InternalVampireLanguage.g:1651:6: () otherlv_4= '='
4219 {
4220 // InternalVampireLanguage.g:1651:6: ()
4221 // InternalVampireLanguage.g:1652:7:
4222 {
4223
4224 current = forceCreateModelElementAndSet(
4225 grammarAccess.getVLSUnaryInfixAccess().getVLSEqualityLeftAction_1_0_1_0(),
4226 current);
4227
4228
4229 }
4230
4231 otherlv_4=(Token)match(input,67,FOLLOW_30);
4232
4233 newLeafNode(otherlv_4, grammarAccess.getVLSUnaryInfixAccess().getEqualsSignKeyword_1_0_1_1());
4234
4235
4236 }
4237
4238
4239 }
4240 break;
4241 case 3 :
4242 // InternalVampireLanguage.g:1664:5: ( () otherlv_6= ':=' )
4243 {
4244 // InternalVampireLanguage.g:1664:5: ( () otherlv_6= ':=' )
4245 // InternalVampireLanguage.g:1665:6: () otherlv_6= ':='
4246 {
4247 // InternalVampireLanguage.g:1665:6: ()
4248 // InternalVampireLanguage.g:1666:7:
4249 {
4250
4251 current = forceCreateModelElementAndSet(
4252 grammarAccess.getVLSUnaryInfixAccess().getVLSAssignmentLeftAction_1_0_2_0(),
4253 current);
4254
4255
4256 }
4257
4258 otherlv_6=(Token)match(input,68,FOLLOW_30);
4259
4260 newLeafNode(otherlv_6, grammarAccess.getVLSUnaryInfixAccess().getColonEqualsSignKeyword_1_0_2_1());
4261
4262
4263 }
4264
4265
4266 }
4267 break;
4268
4269 }
4270
4271 // InternalVampireLanguage.g:1678:4: ( (lv_right_7_0= ruleVLSAtomic ) )
4272 // InternalVampireLanguage.g:1679:5: (lv_right_7_0= ruleVLSAtomic )
4273 {
4274 // InternalVampireLanguage.g:1679:5: (lv_right_7_0= ruleVLSAtomic )
4275 // InternalVampireLanguage.g:1680:6: lv_right_7_0= ruleVLSAtomic
4276 {
4277
4278 newCompositeNode(grammarAccess.getVLSUnaryInfixAccess().getRightVLSAtomicParserRuleCall_1_1_0());
4279
4280 pushFollow(FOLLOW_2);
4281 lv_right_7_0=ruleVLSAtomic();
4282
4283 state._fsp--;
4284
4285
4286 if (current==null) {
4287 current = createModelElementForParent(grammarAccess.getVLSUnaryInfixRule());
4288 }
4289 set(
4290 current,
4291 "right",
4292 lv_right_7_0,
4293 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAtomic");
4294 afterParserOrEnumRuleCall();
4295
4296
4297 }
4298
4299
4300 }
4301
4302
4303 }
4304 break;
4305
4306 }
4307
4308
4309 }
4310
4311
4312 }
4313
4314
4315 leaveRule();
4316
4317 }
4318
4319 catch (RecognitionException re) {
4320 recover(input,re);
4321 appendSkippedTokens();
4322 }
4323 finally {
4324 }
4325 return current;
4326 }
4327 // $ANTLR end "ruleVLSUnaryInfix"
4328
4329
4330 // $ANTLR start "entryRuleVLSAtomic"
4331 // InternalVampireLanguage.g:1702:1: entryRuleVLSAtomic returns [EObject current=null] : iv_ruleVLSAtomic= ruleVLSAtomic EOF ;
4332 public final EObject entryRuleVLSAtomic() throws RecognitionException {
4333 EObject current = null;
4334
4335 EObject iv_ruleVLSAtomic = null;
4336
4337
4338 try {
4339 // InternalVampireLanguage.g:1702:50: (iv_ruleVLSAtomic= ruleVLSAtomic EOF )
4340 // InternalVampireLanguage.g:1703:2: iv_ruleVLSAtomic= ruleVLSAtomic EOF
4341 {
4342 newCompositeNode(grammarAccess.getVLSAtomicRule());
4343 pushFollow(FOLLOW_1);
4344 iv_ruleVLSAtomic=ruleVLSAtomic();
4345
4346 state._fsp--;
4347
4348 current =iv_ruleVLSAtomic;
4349 match(input,EOF,FOLLOW_2);
4350
4351 }
4352
4353 }
4354
4355 catch (RecognitionException re) {
4356 recover(input,re);
4357 appendSkippedTokens();
4358 }
4359 finally {
4360 }
4361 return current;
4362 }
4363 // $ANTLR end "entryRuleVLSAtomic"
4364
4365
4366 // $ANTLR start "ruleVLSAtomic"
4367 // InternalVampireLanguage.g:1709:1: ruleVLSAtomic returns [EObject current=null] : (this_VLSAtomicConstant_0= ruleVLSAtomicConstant | this_VLSAtomicFunction_1= ruleVLSAtomicFunction | this_VLSVariable_2= ruleVLSVariable | this_VLSDefinedTerm_3= ruleVLSDefinedTerm ) ;
4368 public final EObject ruleVLSAtomic() throws RecognitionException {
4369 EObject current = null;
4370
4371 EObject this_VLSAtomicConstant_0 = null;
4372
4373 EObject this_VLSAtomicFunction_1 = null;
4374
4375 EObject this_VLSVariable_2 = null;
4376
4377 EObject this_VLSDefinedTerm_3 = null;
4378
4379
4380
4381 enterRule();
4382
4383 try {
4384 // InternalVampireLanguage.g:1715:2: ( (this_VLSAtomicConstant_0= ruleVLSAtomicConstant | this_VLSAtomicFunction_1= ruleVLSAtomicFunction | this_VLSVariable_2= ruleVLSVariable | this_VLSDefinedTerm_3= ruleVLSDefinedTerm ) )
4385 // InternalVampireLanguage.g:1716:2: (this_VLSAtomicConstant_0= ruleVLSAtomicConstant | this_VLSAtomicFunction_1= ruleVLSAtomicFunction | this_VLSVariable_2= ruleVLSVariable | this_VLSDefinedTerm_3= ruleVLSDefinedTerm )
4386 {
4387 // InternalVampireLanguage.g:1716:2: (this_VLSAtomicConstant_0= ruleVLSAtomicConstant | this_VLSAtomicFunction_1= ruleVLSAtomicFunction | this_VLSVariable_2= ruleVLSVariable | this_VLSDefinedTerm_3= ruleVLSDefinedTerm )
4388 int alt25=4;
4389 alt25 = dfa25.predict(input);
4390 switch (alt25) {
4391 case 1 :
4392 // InternalVampireLanguage.g:1717:3: this_VLSAtomicConstant_0= ruleVLSAtomicConstant
4393 {
4394
4395 newCompositeNode(grammarAccess.getVLSAtomicAccess().getVLSAtomicConstantParserRuleCall_0());
4396
4397 pushFollow(FOLLOW_2);
4398 this_VLSAtomicConstant_0=ruleVLSAtomicConstant();
4399
4400 state._fsp--;
4401
4402
4403 current = this_VLSAtomicConstant_0;
4404 afterParserOrEnumRuleCall();
4405
4406
4407 }
4408 break;
4409 case 2 :
4410 // InternalVampireLanguage.g:1726:3: this_VLSAtomicFunction_1= ruleVLSAtomicFunction
4411 {
4412
4413 newCompositeNode(grammarAccess.getVLSAtomicAccess().getVLSAtomicFunctionParserRuleCall_1());
4414
4415 pushFollow(FOLLOW_2);
4416 this_VLSAtomicFunction_1=ruleVLSAtomicFunction();
4417
4418 state._fsp--;
4419
4420
4421 current = this_VLSAtomicFunction_1;
4422 afterParserOrEnumRuleCall();
4423
4424
4425 }
4426 break;
4427 case 3 :
4428 // InternalVampireLanguage.g:1735:3: this_VLSVariable_2= ruleVLSVariable
4429 {
4430
4431 newCompositeNode(grammarAccess.getVLSAtomicAccess().getVLSVariableParserRuleCall_2());
4432
4433 pushFollow(FOLLOW_2);
4434 this_VLSVariable_2=ruleVLSVariable();
4435
4436 state._fsp--;
4437
4438
4439 current = this_VLSVariable_2;
4440 afterParserOrEnumRuleCall();
4441
4442
4443 }
4444 break;
4445 case 4 :
4446 // InternalVampireLanguage.g:1744:3: this_VLSDefinedTerm_3= ruleVLSDefinedTerm
4447 {
4448
4449 newCompositeNode(grammarAccess.getVLSAtomicAccess().getVLSDefinedTermParserRuleCall_3());
4450
4451 pushFollow(FOLLOW_2);
4452 this_VLSDefinedTerm_3=ruleVLSDefinedTerm();
4453
4454 state._fsp--;
4455
4456
4457 current = this_VLSDefinedTerm_3;
4458 afterParserOrEnumRuleCall();
4459
4460
4461 }
4462 break;
4463
4464 }
4465
4466
4467 }
4468
4469
4470 leaveRule();
4471
4472 }
4473
4474 catch (RecognitionException re) {
4475 recover(input,re);
4476 appendSkippedTokens();
4477 }
4478 finally {
4479 }
4480 return current;
4481 }
4482 // $ANTLR end "ruleVLSAtomic"
4483
4484
4485 // $ANTLR start "entryRuleVLSAtomicConstant"
4486 // InternalVampireLanguage.g:1756:1: entryRuleVLSAtomicConstant returns [EObject current=null] : iv_ruleVLSAtomicConstant= ruleVLSAtomicConstant EOF ;
4487 public final EObject entryRuleVLSAtomicConstant() throws RecognitionException {
4488 EObject current = null;
4489
4490 EObject iv_ruleVLSAtomicConstant = null;
4491
4492
4493 try {
4494 // InternalVampireLanguage.g:1756:58: (iv_ruleVLSAtomicConstant= ruleVLSAtomicConstant EOF )
4495 // InternalVampireLanguage.g:1757:2: iv_ruleVLSAtomicConstant= ruleVLSAtomicConstant EOF
4496 {
4497 newCompositeNode(grammarAccess.getVLSAtomicConstantRule());
4498 pushFollow(FOLLOW_1);
4499 iv_ruleVLSAtomicConstant=ruleVLSAtomicConstant();
4500
4501 state._fsp--;
4502
4503 current =iv_ruleVLSAtomicConstant;
4504 match(input,EOF,FOLLOW_2);
4505
4506 }
4507
4508 }
4509
4510 catch (RecognitionException re) {
4511 recover(input,re);
4512 appendSkippedTokens();
4513 }
4514 finally {
4515 }
4516 return current;
4517 }
4518 // $ANTLR end "entryRuleVLSAtomicConstant"
4519
4520
4521 // $ANTLR start "ruleVLSAtomicConstant"
4522 // InternalVampireLanguage.g:1763:1: ruleVLSAtomicConstant returns [EObject current=null] : ( ( () ( ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= RULE_DOLLAR_ID | lv_name_1_4= RULE_DOUBLE_DOLLAR_ID | lv_name_1_5= ruleVLSRole ) ) ) ) | ( () otherlv_3= '$true' ) | ( () otherlv_5= '$false' ) ) ;
4523 public final EObject ruleVLSAtomicConstant() throws RecognitionException {
4524 EObject current = null;
4525
4526 Token lv_name_1_1=null;
4527 Token lv_name_1_2=null;
4528 Token lv_name_1_3=null;
4529 Token lv_name_1_4=null;
4530 Token otherlv_3=null;
4531 Token otherlv_5=null;
4532 AntlrDatatypeRuleToken lv_name_1_5 = null;
4533
4534
4535
4536 enterRule();
4537
4538 try {
4539 // InternalVampireLanguage.g:1769:2: ( ( ( () ( ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= RULE_DOLLAR_ID | lv_name_1_4= RULE_DOUBLE_DOLLAR_ID | lv_name_1_5= ruleVLSRole ) ) ) ) | ( () otherlv_3= '$true' ) | ( () otherlv_5= '$false' ) ) )
4540 // InternalVampireLanguage.g:1770:2: ( ( () ( ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= RULE_DOLLAR_ID | lv_name_1_4= RULE_DOUBLE_DOLLAR_ID | lv_name_1_5= ruleVLSRole ) ) ) ) | ( () otherlv_3= '$true' ) | ( () otherlv_5= '$false' ) )
4541 {
4542 // InternalVampireLanguage.g:1770:2: ( ( () ( ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= RULE_DOLLAR_ID | lv_name_1_4= RULE_DOUBLE_DOLLAR_ID | lv_name_1_5= ruleVLSRole ) ) ) ) | ( () otherlv_3= '$true' ) | ( () otherlv_5= '$false' ) )
4543 int alt27=3;
4544 switch ( input.LA(1) ) {
4545 case RULE_SINGLE_QUOTE:
4546 case RULE_LOWER_WORD_ID:
4547 case RULE_DOLLAR_ID:
4548 case RULE_DOUBLE_DOLLAR_ID:
4549 case 38:
4550 case 39:
4551 case 40:
4552 case 41:
4553 case 42:
4554 case 43:
4555 case 44:
4556 case 45:
4557 case 46:
4558 case 47:
4559 case 48:
4560 case 49:
4561 case 50:
4562 case 51:
4563 case 52:
4564 {
4565 alt27=1;
4566 }
4567 break;
4568 case 69:
4569 {
4570 alt27=2;
4571 }
4572 break;
4573 case 70:
4574 {
4575 alt27=3;
4576 }
4577 break;
4578 default:
4579 NoViableAltException nvae =
4580 new NoViableAltException("", 27, 0, input);
4581
4582 throw nvae;
4583 }
4584
4585 switch (alt27) {
4586 case 1 :
4587 // InternalVampireLanguage.g:1771:3: ( () ( ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= RULE_DOLLAR_ID | lv_name_1_4= RULE_DOUBLE_DOLLAR_ID | lv_name_1_5= ruleVLSRole ) ) ) )
4588 {
4589 // InternalVampireLanguage.g:1771:3: ( () ( ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= RULE_DOLLAR_ID | lv_name_1_4= RULE_DOUBLE_DOLLAR_ID | lv_name_1_5= ruleVLSRole ) ) ) )
4590 // InternalVampireLanguage.g:1772:4: () ( ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= RULE_DOLLAR_ID | lv_name_1_4= RULE_DOUBLE_DOLLAR_ID | lv_name_1_5= ruleVLSRole ) ) )
4591 {
4592 // InternalVampireLanguage.g:1772:4: ()
4593 // InternalVampireLanguage.g:1773:5:
4594 {
4595
4596 current = forceCreateModelElement(
4597 grammarAccess.getVLSAtomicConstantAccess().getVLSConstantAction_0_0(),
4598 current);
4599
4600
4601 }
4602
4603 // InternalVampireLanguage.g:1779:4: ( ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= RULE_DOLLAR_ID | lv_name_1_4= RULE_DOUBLE_DOLLAR_ID | lv_name_1_5= ruleVLSRole ) ) )
4604 // InternalVampireLanguage.g:1780:5: ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= RULE_DOLLAR_ID | lv_name_1_4= RULE_DOUBLE_DOLLAR_ID | lv_name_1_5= ruleVLSRole ) )
4605 {
4606 // InternalVampireLanguage.g:1780:5: ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= RULE_DOLLAR_ID | lv_name_1_4= RULE_DOUBLE_DOLLAR_ID | lv_name_1_5= ruleVLSRole ) )
4607 // InternalVampireLanguage.g:1781:6: (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= RULE_DOLLAR_ID | lv_name_1_4= RULE_DOUBLE_DOLLAR_ID | lv_name_1_5= ruleVLSRole )
4608 {
4609 // InternalVampireLanguage.g:1781:6: (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= RULE_DOLLAR_ID | lv_name_1_4= RULE_DOUBLE_DOLLAR_ID | lv_name_1_5= ruleVLSRole )
4610 int alt26=5;
4611 switch ( input.LA(1) ) {
4612 case RULE_LOWER_WORD_ID:
4613 {
4614 alt26=1;
4615 }
4616 break;
4617 case RULE_SINGLE_QUOTE:
4618 {
4619 alt26=2;
4620 }
4621 break;
4622 case RULE_DOLLAR_ID:
4623 {
4624 alt26=3;
4625 }
4626 break;
4627 case RULE_DOUBLE_DOLLAR_ID:
4628 {
4629 alt26=4;
4630 }
4631 break;
4632 case 38:
4633 case 39:
4634 case 40:
4635 case 41:
4636 case 42:
4637 case 43:
4638 case 44:
4639 case 45:
4640 case 46:
4641 case 47:
4642 case 48:
4643 case 49:
4644 case 50:
4645 case 51:
4646 case 52:
4647 {
4648 alt26=5;
4649 }
4650 break;
4651 default:
4652 NoViableAltException nvae =
4653 new NoViableAltException("", 26, 0, input);
4654
4655 throw nvae;
4656 }
4657
4658 switch (alt26) {
4659 case 1 :
4660 // InternalVampireLanguage.g:1782:7: lv_name_1_1= RULE_LOWER_WORD_ID
4661 {
4662 lv_name_1_1=(Token)match(input,RULE_LOWER_WORD_ID,FOLLOW_2);
4663
4664 newLeafNode(lv_name_1_1, grammarAccess.getVLSAtomicConstantAccess().getNameLOWER_WORD_IDTerminalRuleCall_0_1_0_0());
4665
4666
4667 if (current==null) {
4668 current = createModelElement(grammarAccess.getVLSAtomicConstantRule());
4669 }
4670 setWithLastConsumed(
4671 current,
4672 "name",
4673 lv_name_1_1,
4674 "ca.mcgill.ecse.dslreasoner.VampireLanguage.LOWER_WORD_ID");
4675
4676
4677 }
4678 break;
4679 case 2 :
4680 // InternalVampireLanguage.g:1797:7: lv_name_1_2= RULE_SINGLE_QUOTE
4681 {
4682 lv_name_1_2=(Token)match(input,RULE_SINGLE_QUOTE,FOLLOW_2);
4683
4684 newLeafNode(lv_name_1_2, grammarAccess.getVLSAtomicConstantAccess().getNameSINGLE_QUOTETerminalRuleCall_0_1_0_1());
4685
4686
4687 if (current==null) {
4688 current = createModelElement(grammarAccess.getVLSAtomicConstantRule());
4689 }
4690 setWithLastConsumed(
4691 current,
4692 "name",
4693 lv_name_1_2,
4694 "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_QUOTE");
4695
4696
4697 }
4698 break;
4699 case 3 :
4700 // InternalVampireLanguage.g:1812:7: lv_name_1_3= RULE_DOLLAR_ID
4701 {
4702 lv_name_1_3=(Token)match(input,RULE_DOLLAR_ID,FOLLOW_2);
4703
4704 newLeafNode(lv_name_1_3, grammarAccess.getVLSAtomicConstantAccess().getNameDOLLAR_IDTerminalRuleCall_0_1_0_2());
4705
4706
4707 if (current==null) {
4708 current = createModelElement(grammarAccess.getVLSAtomicConstantRule());
4709 }
4710 setWithLastConsumed(
4711 current,
4712 "name",
4713 lv_name_1_3,
4714 "ca.mcgill.ecse.dslreasoner.VampireLanguage.DOLLAR_ID");
4715
4716
4717 }
4718 break;
4719 case 4 :
4720 // InternalVampireLanguage.g:1827:7: lv_name_1_4= RULE_DOUBLE_DOLLAR_ID
4721 {
4722 lv_name_1_4=(Token)match(input,RULE_DOUBLE_DOLLAR_ID,FOLLOW_2);
4723
4724 newLeafNode(lv_name_1_4, grammarAccess.getVLSAtomicConstantAccess().getNameDOUBLE_DOLLAR_IDTerminalRuleCall_0_1_0_3());
4725
4726
4727 if (current==null) {
4728 current = createModelElement(grammarAccess.getVLSAtomicConstantRule());
4729 }
4730 setWithLastConsumed(
4731 current,
4732 "name",
4733 lv_name_1_4,
4734 "ca.mcgill.ecse.dslreasoner.VampireLanguage.DOUBLE_DOLLAR_ID");
4735
4736
4737 }
4738 break;
4739 case 5 :
4740 // InternalVampireLanguage.g:1842:7: lv_name_1_5= ruleVLSRole
4741 {
4742
4743 newCompositeNode(grammarAccess.getVLSAtomicConstantAccess().getNameVLSRoleParserRuleCall_0_1_0_4());
4744
4745 pushFollow(FOLLOW_2);
4746 lv_name_1_5=ruleVLSRole();
4747
4748 state._fsp--;
4749
4750
4751 if (current==null) {
4752 current = createModelElementForParent(grammarAccess.getVLSAtomicConstantRule());
4753 }
4754 set(
4755 current,
4756 "name",
4757 lv_name_1_5,
4758 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSRole");
4759 afterParserOrEnumRuleCall();
4760
4761
4762 }
4763 break;
4764
4765 }
4766
4767
4768 }
4769
4770
4771 }
4772
4773
4774 }
4775
4776
4777 }
4778 break;
4779 case 2 :
4780 // InternalVampireLanguage.g:1862:3: ( () otherlv_3= '$true' )
4781 {
4782 // InternalVampireLanguage.g:1862:3: ( () otherlv_3= '$true' )
4783 // InternalVampireLanguage.g:1863:4: () otherlv_3= '$true'
4784 {
4785 // InternalVampireLanguage.g:1863:4: ()
4786 // InternalVampireLanguage.g:1864:5:
4787 {
4788
4789 current = forceCreateModelElement(
4790 grammarAccess.getVLSAtomicConstantAccess().getVLSTrueAction_1_0(),
4791 current);
4792
4793
4794 }
4795
4796 otherlv_3=(Token)match(input,69,FOLLOW_2);
4797
4798 newLeafNode(otherlv_3, grammarAccess.getVLSAtomicConstantAccess().getTrueKeyword_1_1());
4799
4800
4801 }
4802
4803
4804 }
4805 break;
4806 case 3 :
4807 // InternalVampireLanguage.g:1876:3: ( () otherlv_5= '$false' )
4808 {
4809 // InternalVampireLanguage.g:1876:3: ( () otherlv_5= '$false' )
4810 // InternalVampireLanguage.g:1877:4: () otherlv_5= '$false'
4811 {
4812 // InternalVampireLanguage.g:1877:4: ()
4813 // InternalVampireLanguage.g:1878:5:
4814 {
4815
4816 current = forceCreateModelElement(
4817 grammarAccess.getVLSAtomicConstantAccess().getVLSFalseAction_2_0(),
4818 current);
4819
4820
4821 }
4822
4823 otherlv_5=(Token)match(input,70,FOLLOW_2);
4824
4825 newLeafNode(otherlv_5, grammarAccess.getVLSAtomicConstantAccess().getFalseKeyword_2_1());
4826
4827
4828 }
4829
4830
4831 }
4832 break;
4833
4834 }
4835
4836
4837 }
4838
4839
4840 leaveRule();
4841
4842 }
4843
4844 catch (RecognitionException re) {
4845 recover(input,re);
4846 appendSkippedTokens();
4847 }
4848 finally {
4849 }
4850 return current;
4851 }
4852 // $ANTLR end "ruleVLSAtomicConstant"
4853
4854
4855 // $ANTLR start "entryRuleVLSAtomicFunction"
4856 // InternalVampireLanguage.g:1893:1: entryRuleVLSAtomicFunction returns [EObject current=null] : iv_ruleVLSAtomicFunction= ruleVLSAtomicFunction EOF ;
4857 public final EObject entryRuleVLSAtomicFunction() throws RecognitionException {
4858 EObject current = null;
4859
4860 EObject iv_ruleVLSAtomicFunction = null;
4861
4862
4863 try {
4864 // InternalVampireLanguage.g:1893:58: (iv_ruleVLSAtomicFunction= ruleVLSAtomicFunction EOF )
4865 // InternalVampireLanguage.g:1894:2: iv_ruleVLSAtomicFunction= ruleVLSAtomicFunction EOF
4866 {
4867 newCompositeNode(grammarAccess.getVLSAtomicFunctionRule());
4868 pushFollow(FOLLOW_1);
4869 iv_ruleVLSAtomicFunction=ruleVLSAtomicFunction();
4870
4871 state._fsp--;
4872
4873 current =iv_ruleVLSAtomicFunction;
4874 match(input,EOF,FOLLOW_2);
4875
4876 }
4877
4878 }
4879
4880 catch (RecognitionException re) {
4881 recover(input,re);
4882 appendSkippedTokens();
4883 }
4884 finally {
4885 }
4886 return current;
4887 }
4888 // $ANTLR end "entryRuleVLSAtomicFunction"
4889
4890
4891 // $ANTLR start "ruleVLSAtomicFunction"
4892 // InternalVampireLanguage.g:1900:1: ruleVLSAtomicFunction returns [EObject current=null] : ( ( () ( ( (lv_constant_1_1= RULE_LOWER_WORD_ID | lv_constant_1_2= RULE_SINGLE_QUOTE | lv_constant_1_3= RULE_DOLLAR_ID | lv_constant_1_4= RULE_DOUBLE_DOLLAR_ID | lv_constant_1_5= ruleVLSRole ) ) ) (otherlv_2= '(' ( (lv_terms_3_0= ruleVLSFofTerm ) ) (otherlv_4= ',' ( (lv_terms_5_0= ruleVLSFofTerm ) ) )* otherlv_6= ')' ) ) | ( () ( (lv_name_8_0= '$less' ) ) otherlv_9= '(' ( (lv_terms_10_0= ruleVLSFofTerm ) ) otherlv_11= ',' ( (lv_terms_12_0= ruleVLSFofTerm ) ) otherlv_13= ')' ) ) ;
4893 public final EObject ruleVLSAtomicFunction() throws RecognitionException {
4894 EObject current = null;
4895
4896 Token lv_constant_1_1=null;
4897 Token lv_constant_1_2=null;
4898 Token lv_constant_1_3=null;
4899 Token lv_constant_1_4=null;
4900 Token otherlv_2=null;
4901 Token otherlv_4=null;
4902 Token otherlv_6=null;
4903 Token lv_name_8_0=null;
4904 Token otherlv_9=null;
4905 Token otherlv_11=null;
4906 Token otherlv_13=null;
4907 AntlrDatatypeRuleToken lv_constant_1_5 = null;
4908
4909 EObject lv_terms_3_0 = null;
4910
4911 EObject lv_terms_5_0 = null;
4912
4913 EObject lv_terms_10_0 = null;
4914
4915 EObject lv_terms_12_0 = null;
4916
4917
4918
4919 enterRule();
4920
4921 try {
4922 // InternalVampireLanguage.g:1906:2: ( ( ( () ( ( (lv_constant_1_1= RULE_LOWER_WORD_ID | lv_constant_1_2= RULE_SINGLE_QUOTE | lv_constant_1_3= RULE_DOLLAR_ID | lv_constant_1_4= RULE_DOUBLE_DOLLAR_ID | lv_constant_1_5= ruleVLSRole ) ) ) (otherlv_2= '(' ( (lv_terms_3_0= ruleVLSFofTerm ) ) (otherlv_4= ',' ( (lv_terms_5_0= ruleVLSFofTerm ) ) )* otherlv_6= ')' ) ) | ( () ( (lv_name_8_0= '$less' ) ) otherlv_9= '(' ( (lv_terms_10_0= ruleVLSFofTerm ) ) otherlv_11= ',' ( (lv_terms_12_0= ruleVLSFofTerm ) ) otherlv_13= ')' ) ) )
4923 // InternalVampireLanguage.g:1907:2: ( ( () ( ( (lv_constant_1_1= RULE_LOWER_WORD_ID | lv_constant_1_2= RULE_SINGLE_QUOTE | lv_constant_1_3= RULE_DOLLAR_ID | lv_constant_1_4= RULE_DOUBLE_DOLLAR_ID | lv_constant_1_5= ruleVLSRole ) ) ) (otherlv_2= '(' ( (lv_terms_3_0= ruleVLSFofTerm ) ) (otherlv_4= ',' ( (lv_terms_5_0= ruleVLSFofTerm ) ) )* otherlv_6= ')' ) ) | ( () ( (lv_name_8_0= '$less' ) ) otherlv_9= '(' ( (lv_terms_10_0= ruleVLSFofTerm ) ) otherlv_11= ',' ( (lv_terms_12_0= ruleVLSFofTerm ) ) otherlv_13= ')' ) )
4924 {
4925 // InternalVampireLanguage.g:1907:2: ( ( () ( ( (lv_constant_1_1= RULE_LOWER_WORD_ID | lv_constant_1_2= RULE_SINGLE_QUOTE | lv_constant_1_3= RULE_DOLLAR_ID | lv_constant_1_4= RULE_DOUBLE_DOLLAR_ID | lv_constant_1_5= ruleVLSRole ) ) ) (otherlv_2= '(' ( (lv_terms_3_0= ruleVLSFofTerm ) ) (otherlv_4= ',' ( (lv_terms_5_0= ruleVLSFofTerm ) ) )* otherlv_6= ')' ) ) | ( () ( (lv_name_8_0= '$less' ) ) otherlv_9= '(' ( (lv_terms_10_0= ruleVLSFofTerm ) ) otherlv_11= ',' ( (lv_terms_12_0= ruleVLSFofTerm ) ) otherlv_13= ')' ) )
4926 int alt30=2;
4927 int LA30_0 = input.LA(1);
4928
4929 if ( ((LA30_0>=RULE_SINGLE_QUOTE && LA30_0<=RULE_LOWER_WORD_ID)||(LA30_0>=RULE_DOLLAR_ID && LA30_0<=RULE_DOUBLE_DOLLAR_ID)||(LA30_0>=38 && LA30_0<=52)) ) {
4930 alt30=1;
4931 }
4932 else if ( (LA30_0==71) ) {
4933 alt30=2;
4934 }
4935 else {
4936 NoViableAltException nvae =
4937 new NoViableAltException("", 30, 0, input);
4938
4939 throw nvae;
4940 }
4941 switch (alt30) {
4942 case 1 :
4943 // InternalVampireLanguage.g:1908:3: ( () ( ( (lv_constant_1_1= RULE_LOWER_WORD_ID | lv_constant_1_2= RULE_SINGLE_QUOTE | lv_constant_1_3= RULE_DOLLAR_ID | lv_constant_1_4= RULE_DOUBLE_DOLLAR_ID | lv_constant_1_5= ruleVLSRole ) ) ) (otherlv_2= '(' ( (lv_terms_3_0= ruleVLSFofTerm ) ) (otherlv_4= ',' ( (lv_terms_5_0= ruleVLSFofTerm ) ) )* otherlv_6= ')' ) )
4944 {
4945 // InternalVampireLanguage.g:1908:3: ( () ( ( (lv_constant_1_1= RULE_LOWER_WORD_ID | lv_constant_1_2= RULE_SINGLE_QUOTE | lv_constant_1_3= RULE_DOLLAR_ID | lv_constant_1_4= RULE_DOUBLE_DOLLAR_ID | lv_constant_1_5= ruleVLSRole ) ) ) (otherlv_2= '(' ( (lv_terms_3_0= ruleVLSFofTerm ) ) (otherlv_4= ',' ( (lv_terms_5_0= ruleVLSFofTerm ) ) )* otherlv_6= ')' ) )
4946 // InternalVampireLanguage.g:1909:4: () ( ( (lv_constant_1_1= RULE_LOWER_WORD_ID | lv_constant_1_2= RULE_SINGLE_QUOTE | lv_constant_1_3= RULE_DOLLAR_ID | lv_constant_1_4= RULE_DOUBLE_DOLLAR_ID | lv_constant_1_5= ruleVLSRole ) ) ) (otherlv_2= '(' ( (lv_terms_3_0= ruleVLSFofTerm ) ) (otherlv_4= ',' ( (lv_terms_5_0= ruleVLSFofTerm ) ) )* otherlv_6= ')' )
4947 {
4948 // InternalVampireLanguage.g:1909:4: ()
4949 // InternalVampireLanguage.g:1910:5:
4950 {
4951
4952 current = forceCreateModelElement(
4953 grammarAccess.getVLSAtomicFunctionAccess().getVLSFunctionAction_0_0(),
4954 current);
4955
4956
4957 }
4958
4959 // InternalVampireLanguage.g:1916:4: ( ( (lv_constant_1_1= RULE_LOWER_WORD_ID | lv_constant_1_2= RULE_SINGLE_QUOTE | lv_constant_1_3= RULE_DOLLAR_ID | lv_constant_1_4= RULE_DOUBLE_DOLLAR_ID | lv_constant_1_5= ruleVLSRole ) ) )
4960 // InternalVampireLanguage.g:1917:5: ( (lv_constant_1_1= RULE_LOWER_WORD_ID | lv_constant_1_2= RULE_SINGLE_QUOTE | lv_constant_1_3= RULE_DOLLAR_ID | lv_constant_1_4= RULE_DOUBLE_DOLLAR_ID | lv_constant_1_5= ruleVLSRole ) )
4961 {
4962 // InternalVampireLanguage.g:1917:5: ( (lv_constant_1_1= RULE_LOWER_WORD_ID | lv_constant_1_2= RULE_SINGLE_QUOTE | lv_constant_1_3= RULE_DOLLAR_ID | lv_constant_1_4= RULE_DOUBLE_DOLLAR_ID | lv_constant_1_5= ruleVLSRole ) )
4963 // InternalVampireLanguage.g:1918:6: (lv_constant_1_1= RULE_LOWER_WORD_ID | lv_constant_1_2= RULE_SINGLE_QUOTE | lv_constant_1_3= RULE_DOLLAR_ID | lv_constant_1_4= RULE_DOUBLE_DOLLAR_ID | lv_constant_1_5= ruleVLSRole )
4964 {
4965 // InternalVampireLanguage.g:1918:6: (lv_constant_1_1= RULE_LOWER_WORD_ID | lv_constant_1_2= RULE_SINGLE_QUOTE | lv_constant_1_3= RULE_DOLLAR_ID | lv_constant_1_4= RULE_DOUBLE_DOLLAR_ID | lv_constant_1_5= ruleVLSRole )
4966 int alt28=5;
4967 switch ( input.LA(1) ) {
4968 case RULE_LOWER_WORD_ID:
4969 {
4970 alt28=1;
4971 }
4972 break;
4973 case RULE_SINGLE_QUOTE:
4974 {
4975 alt28=2;
4976 }
4977 break;
4978 case RULE_DOLLAR_ID:
4979 {
4980 alt28=3;
4981 }
4982 break;
4983 case RULE_DOUBLE_DOLLAR_ID:
4984 {
4985 alt28=4;
4986 }
4987 break;
4988 case 38:
4989 case 39:
4990 case 40:
4991 case 41:
4992 case 42:
4993 case 43:
4994 case 44:
4995 case 45:
4996 case 46:
4997 case 47:
4998 case 48:
4999 case 49:
5000 case 50:
5001 case 51:
5002 case 52:
5003 {
5004 alt28=5;
5005 }
5006 break;
5007 default:
5008 NoViableAltException nvae =
5009 new NoViableAltException("", 28, 0, input);
5010
5011 throw nvae;
5012 }
5013
5014 switch (alt28) {
5015 case 1 :
5016 // InternalVampireLanguage.g:1919:7: lv_constant_1_1= RULE_LOWER_WORD_ID
5017 {
5018 lv_constant_1_1=(Token)match(input,RULE_LOWER_WORD_ID,FOLLOW_9);
5019
5020 newLeafNode(lv_constant_1_1, grammarAccess.getVLSAtomicFunctionAccess().getConstantLOWER_WORD_IDTerminalRuleCall_0_1_0_0());
5021
5022
5023 if (current==null) {
5024 current = createModelElement(grammarAccess.getVLSAtomicFunctionRule());
5025 }
5026 setWithLastConsumed(
5027 current,
5028 "constant",
5029 lv_constant_1_1,
5030 "ca.mcgill.ecse.dslreasoner.VampireLanguage.LOWER_WORD_ID");
5031
5032
5033 }
5034 break;
5035 case 2 :
5036 // InternalVampireLanguage.g:1934:7: lv_constant_1_2= RULE_SINGLE_QUOTE
5037 {
5038 lv_constant_1_2=(Token)match(input,RULE_SINGLE_QUOTE,FOLLOW_9);
5039
5040 newLeafNode(lv_constant_1_2, grammarAccess.getVLSAtomicFunctionAccess().getConstantSINGLE_QUOTETerminalRuleCall_0_1_0_1());
5041
5042
5043 if (current==null) {
5044 current = createModelElement(grammarAccess.getVLSAtomicFunctionRule());
5045 }
5046 setWithLastConsumed(
5047 current,
5048 "constant",
5049 lv_constant_1_2,
5050 "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_QUOTE");
5051
5052
5053 }
5054 break;
5055 case 3 :
5056 // InternalVampireLanguage.g:1949:7: lv_constant_1_3= RULE_DOLLAR_ID
5057 {
5058 lv_constant_1_3=(Token)match(input,RULE_DOLLAR_ID,FOLLOW_9);
5059
5060 newLeafNode(lv_constant_1_3, grammarAccess.getVLSAtomicFunctionAccess().getConstantDOLLAR_IDTerminalRuleCall_0_1_0_2());
5061
5062
5063 if (current==null) {
5064 current = createModelElement(grammarAccess.getVLSAtomicFunctionRule());
5065 }
5066 setWithLastConsumed(
5067 current,
5068 "constant",
5069 lv_constant_1_3,
5070 "ca.mcgill.ecse.dslreasoner.VampireLanguage.DOLLAR_ID");
5071
5072
5073 }
5074 break;
5075 case 4 :
5076 // InternalVampireLanguage.g:1964:7: lv_constant_1_4= RULE_DOUBLE_DOLLAR_ID
5077 {
5078 lv_constant_1_4=(Token)match(input,RULE_DOUBLE_DOLLAR_ID,FOLLOW_9);
5079
5080 newLeafNode(lv_constant_1_4, grammarAccess.getVLSAtomicFunctionAccess().getConstantDOUBLE_DOLLAR_IDTerminalRuleCall_0_1_0_3());
5081
5082
5083 if (current==null) {
5084 current = createModelElement(grammarAccess.getVLSAtomicFunctionRule());
5085 }
5086 setWithLastConsumed(
5087 current,
5088 "constant",
5089 lv_constant_1_4,
5090 "ca.mcgill.ecse.dslreasoner.VampireLanguage.DOUBLE_DOLLAR_ID");
5091
5092
5093 }
5094 break;
5095 case 5 :
5096 // InternalVampireLanguage.g:1979:7: lv_constant_1_5= ruleVLSRole
5097 {
5098
5099 newCompositeNode(grammarAccess.getVLSAtomicFunctionAccess().getConstantVLSRoleParserRuleCall_0_1_0_4());
5100
5101 pushFollow(FOLLOW_9);
5102 lv_constant_1_5=ruleVLSRole();
5103
5104 state._fsp--;
5105
5106
5107 if (current==null) {
5108 current = createModelElementForParent(grammarAccess.getVLSAtomicFunctionRule());
5109 }
5110 set(
5111 current,
5112 "constant",
5113 lv_constant_1_5,
5114 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSRole");
5115 afterParserOrEnumRuleCall();
5116
5117
5118 }
5119 break;
5120
5121 }
5122
5123
5124 }
5125
5126
5127 }
5128
5129 // InternalVampireLanguage.g:1997:4: (otherlv_2= '(' ( (lv_terms_3_0= ruleVLSFofTerm ) ) (otherlv_4= ',' ( (lv_terms_5_0= ruleVLSFofTerm ) ) )* otherlv_6= ')' )
5130 // InternalVampireLanguage.g:1998:5: otherlv_2= '(' ( (lv_terms_3_0= ruleVLSFofTerm ) ) (otherlv_4= ',' ( (lv_terms_5_0= ruleVLSFofTerm ) ) )* otherlv_6= ')'
5131 {
5132 otherlv_2=(Token)match(input,34,FOLLOW_30);
5133
5134 newLeafNode(otherlv_2, grammarAccess.getVLSAtomicFunctionAccess().getLeftParenthesisKeyword_0_2_0());
5135
5136 // InternalVampireLanguage.g:2002:5: ( (lv_terms_3_0= ruleVLSFofTerm ) )
5137 // InternalVampireLanguage.g:2003:6: (lv_terms_3_0= ruleVLSFofTerm )
5138 {
5139 // InternalVampireLanguage.g:2003:6: (lv_terms_3_0= ruleVLSFofTerm )
5140 // InternalVampireLanguage.g:2004:7: lv_terms_3_0= ruleVLSFofTerm
5141 {
5142
5143 newCompositeNode(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_0_2_1_0());
5144
5145 pushFollow(FOLLOW_14);
5146 lv_terms_3_0=ruleVLSFofTerm();
5147
5148 state._fsp--;
5149
5150
5151 if (current==null) {
5152 current = createModelElementForParent(grammarAccess.getVLSAtomicFunctionRule());
5153 }
5154 add(
5155 current,
5156 "terms",
5157 lv_terms_3_0,
5158 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm");
5159 afterParserOrEnumRuleCall();
5160
5161
5162 }
5163
5164
5165 }
5166
5167 // InternalVampireLanguage.g:2021:5: (otherlv_4= ',' ( (lv_terms_5_0= ruleVLSFofTerm ) ) )*
5168 loop29:
5169 do {
5170 int alt29=2;
5171 int LA29_0 = input.LA(1);
5172
5173 if ( (LA29_0==29) ) {
5174 alt29=1;
5175 }
5176
5177
5178 switch (alt29) {
5179 case 1 :
5180 // InternalVampireLanguage.g:2022:6: otherlv_4= ',' ( (lv_terms_5_0= ruleVLSFofTerm ) )
5181 {
5182 otherlv_4=(Token)match(input,29,FOLLOW_30);
5183
5184 newLeafNode(otherlv_4, grammarAccess.getVLSAtomicFunctionAccess().getCommaKeyword_0_2_2_0());
5185
5186 // InternalVampireLanguage.g:2026:6: ( (lv_terms_5_0= ruleVLSFofTerm ) )
5187 // InternalVampireLanguage.g:2027:7: (lv_terms_5_0= ruleVLSFofTerm )
5188 {
5189 // InternalVampireLanguage.g:2027:7: (lv_terms_5_0= ruleVLSFofTerm )
5190 // InternalVampireLanguage.g:2028:8: lv_terms_5_0= ruleVLSFofTerm
5191 {
5192
5193 newCompositeNode(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_0_2_2_1_0());
5194
5195 pushFollow(FOLLOW_14);
5196 lv_terms_5_0=ruleVLSFofTerm();
5197
5198 state._fsp--;
5199
5200
5201 if (current==null) {
5202 current = createModelElementForParent(grammarAccess.getVLSAtomicFunctionRule());
5203 }
5204 add(
5205 current,
5206 "terms",
5207 lv_terms_5_0,
5208 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm");
5209 afterParserOrEnumRuleCall();
5210
5211
5212 }
5213
5214
5215 }
5216
5217
5218 }
5219 break;
5220
5221 default :
5222 break loop29;
5223 }
5224 } while (true);
5225
5226 otherlv_6=(Token)match(input,35,FOLLOW_2);
5227
5228 newLeafNode(otherlv_6, grammarAccess.getVLSAtomicFunctionAccess().getRightParenthesisKeyword_0_2_3());
5229
5230
5231 }
5232
5233
5234 }
5235
5236
5237 }
5238 break;
5239 case 2 :
5240 // InternalVampireLanguage.g:2053:3: ( () ( (lv_name_8_0= '$less' ) ) otherlv_9= '(' ( (lv_terms_10_0= ruleVLSFofTerm ) ) otherlv_11= ',' ( (lv_terms_12_0= ruleVLSFofTerm ) ) otherlv_13= ')' )
5241 {
5242 // InternalVampireLanguage.g:2053:3: ( () ( (lv_name_8_0= '$less' ) ) otherlv_9= '(' ( (lv_terms_10_0= ruleVLSFofTerm ) ) otherlv_11= ',' ( (lv_terms_12_0= ruleVLSFofTerm ) ) otherlv_13= ')' )
5243 // InternalVampireLanguage.g:2054:4: () ( (lv_name_8_0= '$less' ) ) otherlv_9= '(' ( (lv_terms_10_0= ruleVLSFofTerm ) ) otherlv_11= ',' ( (lv_terms_12_0= ruleVLSFofTerm ) ) otherlv_13= ')'
5244 {
5245 // InternalVampireLanguage.g:2054:4: ()
5246 // InternalVampireLanguage.g:2055:5:
5247 {
5248
5249 current = forceCreateModelElement(
5250 grammarAccess.getVLSAtomicFunctionAccess().getVLSLessAction_1_0(),
5251 current);
5252
5253
5254 }
5255
5256 // InternalVampireLanguage.g:2061:4: ( (lv_name_8_0= '$less' ) )
5257 // InternalVampireLanguage.g:2062:5: (lv_name_8_0= '$less' )
5258 {
5259 // InternalVampireLanguage.g:2062:5: (lv_name_8_0= '$less' )
5260 // InternalVampireLanguage.g:2063:6: lv_name_8_0= '$less'
5261 {
5262 lv_name_8_0=(Token)match(input,71,FOLLOW_9);
5263
5264 newLeafNode(lv_name_8_0, grammarAccess.getVLSAtomicFunctionAccess().getNameLessKeyword_1_1_0());
5265
5266
5267 if (current==null) {
5268 current = createModelElement(grammarAccess.getVLSAtomicFunctionRule());
5269 }
5270 setWithLastConsumed(current, "name", lv_name_8_0, "$less");
5271
5272
5273 }
5274
5275
5276 }
5277
5278 otherlv_9=(Token)match(input,34,FOLLOW_30);
5279
5280 newLeafNode(otherlv_9, grammarAccess.getVLSAtomicFunctionAccess().getLeftParenthesisKeyword_1_2());
5281
5282 // InternalVampireLanguage.g:2079:4: ( (lv_terms_10_0= ruleVLSFofTerm ) )
5283 // InternalVampireLanguage.g:2080:5: (lv_terms_10_0= ruleVLSFofTerm )
5284 {
5285 // InternalVampireLanguage.g:2080:5: (lv_terms_10_0= ruleVLSFofTerm )
5286 // InternalVampireLanguage.g:2081:6: lv_terms_10_0= ruleVLSFofTerm
5287 {
5288
5289 newCompositeNode(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_1_3_0());
5290
5291 pushFollow(FOLLOW_11);
5292 lv_terms_10_0=ruleVLSFofTerm();
5293
5294 state._fsp--;
5295
5296
5297 if (current==null) {
5298 current = createModelElementForParent(grammarAccess.getVLSAtomicFunctionRule());
5299 }
5300 add(
5301 current,
5302 "terms",
5303 lv_terms_10_0,
5304 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm");
5305 afterParserOrEnumRuleCall();
5306
5307
5308 }
5309
5310
5311 }
5312
5313 otherlv_11=(Token)match(input,29,FOLLOW_30);
5314
5315 newLeafNode(otherlv_11, grammarAccess.getVLSAtomicFunctionAccess().getCommaKeyword_1_4());
5316
5317 // InternalVampireLanguage.g:2102:4: ( (lv_terms_12_0= ruleVLSFofTerm ) )
5318 // InternalVampireLanguage.g:2103:5: (lv_terms_12_0= ruleVLSFofTerm )
5319 {
5320 // InternalVampireLanguage.g:2103:5: (lv_terms_12_0= ruleVLSFofTerm )
5321 // InternalVampireLanguage.g:2104:6: lv_terms_12_0= ruleVLSFofTerm
5322 {
5323
5324 newCompositeNode(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_1_5_0());
5325
5326 pushFollow(FOLLOW_16);
5327 lv_terms_12_0=ruleVLSFofTerm();
5328
5329 state._fsp--;
5330
5331
5332 if (current==null) {
5333 current = createModelElementForParent(grammarAccess.getVLSAtomicFunctionRule());
5334 }
5335 add(
5336 current,
5337 "terms",
5338 lv_terms_12_0,
5339 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm");
5340 afterParserOrEnumRuleCall();
5341
5342
5343 }
5344
5345
5346 }
5347
5348 otherlv_13=(Token)match(input,35,FOLLOW_2);
5349
5350 newLeafNode(otherlv_13, grammarAccess.getVLSAtomicFunctionAccess().getRightParenthesisKeyword_1_6());
5351
5352
5353 }
5354
5355
5356 }
5357 break;
5358
5359 }
5360
5361
5362 }
5363
5364
5365 leaveRule();
5366
5367 }
5368
5369 catch (RecognitionException re) {
5370 recover(input,re);
5371 appendSkippedTokens();
5372 }
5373 finally {
5374 }
5375 return current;
5376 }
5377 // $ANTLR end "ruleVLSAtomicFunction"
5378
5379
5380 // $ANTLR start "entryRuleVLSVariable"
5381 // InternalVampireLanguage.g:2130:1: entryRuleVLSVariable returns [EObject current=null] : iv_ruleVLSVariable= ruleVLSVariable EOF ;
5382 public final EObject entryRuleVLSVariable() throws RecognitionException {
5383 EObject current = null;
5384
5385 EObject iv_ruleVLSVariable = null;
5386
5387
5388 try {
5389 // InternalVampireLanguage.g:2130:52: (iv_ruleVLSVariable= ruleVLSVariable EOF )
5390 // InternalVampireLanguage.g:2131:2: iv_ruleVLSVariable= ruleVLSVariable EOF
5391 {
5392 newCompositeNode(grammarAccess.getVLSVariableRule());
5393 pushFollow(FOLLOW_1);
5394 iv_ruleVLSVariable=ruleVLSVariable();
5395
5396 state._fsp--;
5397
5398 current =iv_ruleVLSVariable;
5399 match(input,EOF,FOLLOW_2);
5400
5401 }
5402
5403 }
5404
5405 catch (RecognitionException re) {
5406 recover(input,re);
5407 appendSkippedTokens();
5408 }
5409 finally {
5410 }
5411 return current;
5412 }
5413 // $ANTLR end "entryRuleVLSVariable"
5414
5415
5416 // $ANTLR start "ruleVLSVariable"
5417 // InternalVampireLanguage.g:2137:1: ruleVLSVariable returns [EObject current=null] : ( (lv_name_0_0= RULE_UPPER_WORD_ID ) ) ;
5418 public final EObject ruleVLSVariable() throws RecognitionException {
5419 EObject current = null;
5420
5421 Token lv_name_0_0=null;
5422
5423
5424 enterRule();
5425
5426 try {
5427 // InternalVampireLanguage.g:2143:2: ( ( (lv_name_0_0= RULE_UPPER_WORD_ID ) ) )
5428 // InternalVampireLanguage.g:2144:2: ( (lv_name_0_0= RULE_UPPER_WORD_ID ) )
5429 {
5430 // InternalVampireLanguage.g:2144:2: ( (lv_name_0_0= RULE_UPPER_WORD_ID ) )
5431 // InternalVampireLanguage.g:2145:3: (lv_name_0_0= RULE_UPPER_WORD_ID )
5432 {
5433 // InternalVampireLanguage.g:2145:3: (lv_name_0_0= RULE_UPPER_WORD_ID )
5434 // InternalVampireLanguage.g:2146:4: lv_name_0_0= RULE_UPPER_WORD_ID
5435 {
5436 lv_name_0_0=(Token)match(input,RULE_UPPER_WORD_ID,FOLLOW_2);
5437
5438 newLeafNode(lv_name_0_0, grammarAccess.getVLSVariableAccess().getNameUPPER_WORD_IDTerminalRuleCall_0());
5439
5440
5441 if (current==null) {
5442 current = createModelElement(grammarAccess.getVLSVariableRule());
5443 }
5444 setWithLastConsumed(
5445 current,
5446 "name",
5447 lv_name_0_0,
5448 "ca.mcgill.ecse.dslreasoner.VampireLanguage.UPPER_WORD_ID");
5449
5450
5451 }
5452
5453
5454 }
5455
5456
5457 }
5458
5459
5460 leaveRule();
5461
5462 }
5463
5464 catch (RecognitionException re) {
5465 recover(input,re);
5466 appendSkippedTokens();
5467 }
5468 finally {
5469 }
5470 return current;
5471 }
5472 // $ANTLR end "ruleVLSVariable"
5473
5474
5475 // $ANTLR start "entryRuleVLSFofTerm"
5476 // InternalVampireLanguage.g:2165:1: entryRuleVLSFofTerm returns [EObject current=null] : iv_ruleVLSFofTerm= ruleVLSFofTerm EOF ;
5477 public final EObject entryRuleVLSFofTerm() throws RecognitionException {
5478 EObject current = null;
5479
5480 EObject iv_ruleVLSFofTerm = null;
5481
5482
5483 try {
5484 // InternalVampireLanguage.g:2165:51: (iv_ruleVLSFofTerm= ruleVLSFofTerm EOF )
5485 // InternalVampireLanguage.g:2166:2: iv_ruleVLSFofTerm= ruleVLSFofTerm EOF
5486 {
5487 newCompositeNode(grammarAccess.getVLSFofTermRule());
5488 pushFollow(FOLLOW_1);
5489 iv_ruleVLSFofTerm=ruleVLSFofTerm();
5490
5491 state._fsp--;
5492
5493 current =iv_ruleVLSFofTerm;
5494 match(input,EOF,FOLLOW_2);
5495
5496 }
5497
5498 }
5499
5500 catch (RecognitionException re) {
5501 recover(input,re);
5502 appendSkippedTokens();
5503 }
5504 finally {
5505 }
5506 return current;
5507 }
5508 // $ANTLR end "entryRuleVLSFofTerm"
5509
5510
5511 // $ANTLR start "ruleVLSFofTerm"
5512 // InternalVampireLanguage.g:2172:1: ruleVLSFofTerm returns [EObject current=null] : (this_VLSVariable_0= ruleVLSVariable | this_VLSFunctionAsTerm_1= ruleVLSFunctionAsTerm | this_VLSDefinedTerm_2= ruleVLSDefinedTerm ) ;
5513 public final EObject ruleVLSFofTerm() throws RecognitionException {
5514 EObject current = null;
5515
5516 EObject this_VLSVariable_0 = null;
5517
5518 EObject this_VLSFunctionAsTerm_1 = null;
5519
5520 EObject this_VLSDefinedTerm_2 = null;
5521
5522
5523
5524 enterRule();
5525
5526 try {
5527 // InternalVampireLanguage.g:2178:2: ( (this_VLSVariable_0= ruleVLSVariable | this_VLSFunctionAsTerm_1= ruleVLSFunctionAsTerm | this_VLSDefinedTerm_2= ruleVLSDefinedTerm ) )
5528 // InternalVampireLanguage.g:2179:2: (this_VLSVariable_0= ruleVLSVariable | this_VLSFunctionAsTerm_1= ruleVLSFunctionAsTerm | this_VLSDefinedTerm_2= ruleVLSDefinedTerm )
5529 {
5530 // InternalVampireLanguage.g:2179:2: (this_VLSVariable_0= ruleVLSVariable | this_VLSFunctionAsTerm_1= ruleVLSFunctionAsTerm | this_VLSDefinedTerm_2= ruleVLSDefinedTerm )
5531 int alt31=3;
5532 switch ( input.LA(1) ) {
5533 case RULE_UPPER_WORD_ID:
5534 {
5535 alt31=1;
5536 }
5537 break;
5538 case RULE_SINGLE_QUOTE:
5539 case RULE_LOWER_WORD_ID:
5540 case RULE_DOLLAR_ID:
5541 case RULE_DOUBLE_DOLLAR_ID:
5542 {
5543 alt31=2;
5544 }
5545 break;
5546 case RULE_SIGNED_LITERAL:
5547 case RULE_SIGNED_REAL_ID:
5548 case RULE_SIGNED_RAT_ID:
5549 case RULE_DOUBLE_QUOTE:
5550 {
5551 alt31=3;
5552 }
5553 break;
5554 default:
5555 NoViableAltException nvae =
5556 new NoViableAltException("", 31, 0, input);
5557
5558 throw nvae;
5559 }
5560
5561 switch (alt31) {
5562 case 1 :
5563 // InternalVampireLanguage.g:2180:3: this_VLSVariable_0= ruleVLSVariable
5564 {
5565
5566 newCompositeNode(grammarAccess.getVLSFofTermAccess().getVLSVariableParserRuleCall_0());
5567
5568 pushFollow(FOLLOW_2);
5569 this_VLSVariable_0=ruleVLSVariable();
5570
5571 state._fsp--;
5572
5573
5574 current = this_VLSVariable_0;
5575 afterParserOrEnumRuleCall();
5576
5577
5578 }
5579 break;
5580 case 2 :
5581 // InternalVampireLanguage.g:2189:3: this_VLSFunctionAsTerm_1= ruleVLSFunctionAsTerm
5582 {
5583
5584 newCompositeNode(grammarAccess.getVLSFofTermAccess().getVLSFunctionAsTermParserRuleCall_1());
5585
5586 pushFollow(FOLLOW_2);
5587 this_VLSFunctionAsTerm_1=ruleVLSFunctionAsTerm();
5588
5589 state._fsp--;
5590
5591
5592 current = this_VLSFunctionAsTerm_1;
5593 afterParserOrEnumRuleCall();
5594
5595
5596 }
5597 break;
5598 case 3 :
5599 // InternalVampireLanguage.g:2198:3: this_VLSDefinedTerm_2= ruleVLSDefinedTerm
5600 {
5601
5602 newCompositeNode(grammarAccess.getVLSFofTermAccess().getVLSDefinedTermParserRuleCall_2());
5603
5604 pushFollow(FOLLOW_2);
5605 this_VLSDefinedTerm_2=ruleVLSDefinedTerm();
5606
5607 state._fsp--;
5608
5609
5610 current = this_VLSDefinedTerm_2;
5611 afterParserOrEnumRuleCall();
5612
5613
5614 }
5615 break;
5616
5617 }
5618
5619
5620 }
5621
5622
5623 leaveRule();
5624
5625 }
5626
5627 catch (RecognitionException re) {
5628 recover(input,re);
5629 appendSkippedTokens();
5630 }
5631 finally {
5632 }
5633 return current;
5634 }
5635 // $ANTLR end "ruleVLSFofTerm"
5636
5637
5638 // $ANTLR start "entryRuleVLSFunctionAsTerm"
5639 // InternalVampireLanguage.g:2210:1: entryRuleVLSFunctionAsTerm returns [EObject current=null] : iv_ruleVLSFunctionAsTerm= ruleVLSFunctionAsTerm EOF ;
5640 public final EObject entryRuleVLSFunctionAsTerm() throws RecognitionException {
5641 EObject current = null;
5642
5643 EObject iv_ruleVLSFunctionAsTerm = null;
5644
5645
5646 try {
5647 // InternalVampireLanguage.g:2210:58: (iv_ruleVLSFunctionAsTerm= ruleVLSFunctionAsTerm EOF )
5648 // InternalVampireLanguage.g:2211:2: iv_ruleVLSFunctionAsTerm= ruleVLSFunctionAsTerm EOF
5649 {
5650 newCompositeNode(grammarAccess.getVLSFunctionAsTermRule());
5651 pushFollow(FOLLOW_1);
5652 iv_ruleVLSFunctionAsTerm=ruleVLSFunctionAsTerm();
5653
5654 state._fsp--;
5655
5656 current =iv_ruleVLSFunctionAsTerm;
5657 match(input,EOF,FOLLOW_2);
5658
5659 }
5660
5661 }
5662
5663 catch (RecognitionException re) {
5664 recover(input,re);
5665 appendSkippedTokens();
5666 }
5667 finally {
5668 }
5669 return current;
5670 }
5671 // $ANTLR end "entryRuleVLSFunctionAsTerm"
5672
5673
5674 // $ANTLR start "ruleVLSFunctionAsTerm"
5675 // InternalVampireLanguage.g:2217:1: ruleVLSFunctionAsTerm returns [EObject current=null] : ( ( ( (lv_functor_0_1= RULE_LOWER_WORD_ID | lv_functor_0_2= RULE_SINGLE_QUOTE | lv_functor_0_3= RULE_DOLLAR_ID | lv_functor_0_4= RULE_DOUBLE_DOLLAR_ID ) ) ) (otherlv_1= '(' ( (lv_terms_2_0= ruleVLSFofTerm ) ) (otherlv_3= ',' ( (lv_terms_4_0= ruleVLSFofTerm ) ) )* otherlv_5= ')' )? ) ;
5676 public final EObject ruleVLSFunctionAsTerm() throws RecognitionException {
5677 EObject current = null;
5678
5679 Token lv_functor_0_1=null;
5680 Token lv_functor_0_2=null;
5681 Token lv_functor_0_3=null;
5682 Token lv_functor_0_4=null;
5683 Token otherlv_1=null;
5684 Token otherlv_3=null;
5685 Token otherlv_5=null;
5686 EObject lv_terms_2_0 = null;
5687
5688 EObject lv_terms_4_0 = null;
5689
5690
5691
5692 enterRule();
5693
5694 try {
5695 // InternalVampireLanguage.g:2223:2: ( ( ( ( (lv_functor_0_1= RULE_LOWER_WORD_ID | lv_functor_0_2= RULE_SINGLE_QUOTE | lv_functor_0_3= RULE_DOLLAR_ID | lv_functor_0_4= RULE_DOUBLE_DOLLAR_ID ) ) ) (otherlv_1= '(' ( (lv_terms_2_0= ruleVLSFofTerm ) ) (otherlv_3= ',' ( (lv_terms_4_0= ruleVLSFofTerm ) ) )* otherlv_5= ')' )? ) )
5696 // InternalVampireLanguage.g:2224:2: ( ( ( (lv_functor_0_1= RULE_LOWER_WORD_ID | lv_functor_0_2= RULE_SINGLE_QUOTE | lv_functor_0_3= RULE_DOLLAR_ID | lv_functor_0_4= RULE_DOUBLE_DOLLAR_ID ) ) ) (otherlv_1= '(' ( (lv_terms_2_0= ruleVLSFofTerm ) ) (otherlv_3= ',' ( (lv_terms_4_0= ruleVLSFofTerm ) ) )* otherlv_5= ')' )? )
5697 {
5698 // InternalVampireLanguage.g:2224:2: ( ( ( (lv_functor_0_1= RULE_LOWER_WORD_ID | lv_functor_0_2= RULE_SINGLE_QUOTE | lv_functor_0_3= RULE_DOLLAR_ID | lv_functor_0_4= RULE_DOUBLE_DOLLAR_ID ) ) ) (otherlv_1= '(' ( (lv_terms_2_0= ruleVLSFofTerm ) ) (otherlv_3= ',' ( (lv_terms_4_0= ruleVLSFofTerm ) ) )* otherlv_5= ')' )? )
5699 // InternalVampireLanguage.g:2225:3: ( ( (lv_functor_0_1= RULE_LOWER_WORD_ID | lv_functor_0_2= RULE_SINGLE_QUOTE | lv_functor_0_3= RULE_DOLLAR_ID | lv_functor_0_4= RULE_DOUBLE_DOLLAR_ID ) ) ) (otherlv_1= '(' ( (lv_terms_2_0= ruleVLSFofTerm ) ) (otherlv_3= ',' ( (lv_terms_4_0= ruleVLSFofTerm ) ) )* otherlv_5= ')' )?
5700 {
5701 // InternalVampireLanguage.g:2225:3: ( ( (lv_functor_0_1= RULE_LOWER_WORD_ID | lv_functor_0_2= RULE_SINGLE_QUOTE | lv_functor_0_3= RULE_DOLLAR_ID | lv_functor_0_4= RULE_DOUBLE_DOLLAR_ID ) ) )
5702 // InternalVampireLanguage.g:2226:4: ( (lv_functor_0_1= RULE_LOWER_WORD_ID | lv_functor_0_2= RULE_SINGLE_QUOTE | lv_functor_0_3= RULE_DOLLAR_ID | lv_functor_0_4= RULE_DOUBLE_DOLLAR_ID ) )
5703 {
5704 // InternalVampireLanguage.g:2226:4: ( (lv_functor_0_1= RULE_LOWER_WORD_ID | lv_functor_0_2= RULE_SINGLE_QUOTE | lv_functor_0_3= RULE_DOLLAR_ID | lv_functor_0_4= RULE_DOUBLE_DOLLAR_ID ) )
5705 // InternalVampireLanguage.g:2227:5: (lv_functor_0_1= RULE_LOWER_WORD_ID | lv_functor_0_2= RULE_SINGLE_QUOTE | lv_functor_0_3= RULE_DOLLAR_ID | lv_functor_0_4= RULE_DOUBLE_DOLLAR_ID )
5706 {
5707 // InternalVampireLanguage.g:2227:5: (lv_functor_0_1= RULE_LOWER_WORD_ID | lv_functor_0_2= RULE_SINGLE_QUOTE | lv_functor_0_3= RULE_DOLLAR_ID | lv_functor_0_4= RULE_DOUBLE_DOLLAR_ID )
5708 int alt32=4;
5709 switch ( input.LA(1) ) {
5710 case RULE_LOWER_WORD_ID:
5711 {
5712 alt32=1;
5713 }
5714 break;
5715 case RULE_SINGLE_QUOTE:
5716 {
5717 alt32=2;
5718 }
5719 break;
5720 case RULE_DOLLAR_ID:
5721 {
5722 alt32=3;
5723 }
5724 break;
5725 case RULE_DOUBLE_DOLLAR_ID:
5726 {
5727 alt32=4;
5728 }
5729 break;
5730 default:
5731 NoViableAltException nvae =
5732 new NoViableAltException("", 32, 0, input);
5733
5734 throw nvae;
5735 }
5736
5737 switch (alt32) {
5738 case 1 :
5739 // InternalVampireLanguage.g:2228:6: lv_functor_0_1= RULE_LOWER_WORD_ID
5740 {
5741 lv_functor_0_1=(Token)match(input,RULE_LOWER_WORD_ID,FOLLOW_31);
5742
5743 newLeafNode(lv_functor_0_1, grammarAccess.getVLSFunctionAsTermAccess().getFunctorLOWER_WORD_IDTerminalRuleCall_0_0_0());
5744
5745
5746 if (current==null) {
5747 current = createModelElement(grammarAccess.getVLSFunctionAsTermRule());
5748 }
5749 setWithLastConsumed(
5750 current,
5751 "functor",
5752 lv_functor_0_1,
5753 "ca.mcgill.ecse.dslreasoner.VampireLanguage.LOWER_WORD_ID");
5754
5755
5756 }
5757 break;
5758 case 2 :
5759 // InternalVampireLanguage.g:2243:6: lv_functor_0_2= RULE_SINGLE_QUOTE
5760 {
5761 lv_functor_0_2=(Token)match(input,RULE_SINGLE_QUOTE,FOLLOW_31);
5762
5763 newLeafNode(lv_functor_0_2, grammarAccess.getVLSFunctionAsTermAccess().getFunctorSINGLE_QUOTETerminalRuleCall_0_0_1());
5764
5765
5766 if (current==null) {
5767 current = createModelElement(grammarAccess.getVLSFunctionAsTermRule());
5768 }
5769 setWithLastConsumed(
5770 current,
5771 "functor",
5772 lv_functor_0_2,
5773 "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_QUOTE");
5774
5775
5776 }
5777 break;
5778 case 3 :
5779 // InternalVampireLanguage.g:2258:6: lv_functor_0_3= RULE_DOLLAR_ID
5780 {
5781 lv_functor_0_3=(Token)match(input,RULE_DOLLAR_ID,FOLLOW_31);
5782
5783 newLeafNode(lv_functor_0_3, grammarAccess.getVLSFunctionAsTermAccess().getFunctorDOLLAR_IDTerminalRuleCall_0_0_2());
5784
5785
5786 if (current==null) {
5787 current = createModelElement(grammarAccess.getVLSFunctionAsTermRule());
5788 }
5789 setWithLastConsumed(
5790 current,
5791 "functor",
5792 lv_functor_0_3,
5793 "ca.mcgill.ecse.dslreasoner.VampireLanguage.DOLLAR_ID");
5794
5795
5796 }
5797 break;
5798 case 4 :
5799 // InternalVampireLanguage.g:2273:6: lv_functor_0_4= RULE_DOUBLE_DOLLAR_ID
5800 {
5801 lv_functor_0_4=(Token)match(input,RULE_DOUBLE_DOLLAR_ID,FOLLOW_31);
5802
5803 newLeafNode(lv_functor_0_4, grammarAccess.getVLSFunctionAsTermAccess().getFunctorDOUBLE_DOLLAR_IDTerminalRuleCall_0_0_3());
5804
5805
5806 if (current==null) {
5807 current = createModelElement(grammarAccess.getVLSFunctionAsTermRule());
5808 }
5809 setWithLastConsumed(
5810 current,
5811 "functor",
5812 lv_functor_0_4,
5813 "ca.mcgill.ecse.dslreasoner.VampireLanguage.DOUBLE_DOLLAR_ID");
5814
5815
5816 }
5817 break;
5818
5819 }
5820
5821
5822 }
5823
5824
5825 }
5826
5827 // InternalVampireLanguage.g:2290:3: (otherlv_1= '(' ( (lv_terms_2_0= ruleVLSFofTerm ) ) (otherlv_3= ',' ( (lv_terms_4_0= ruleVLSFofTerm ) ) )* otherlv_5= ')' )?
5828 int alt34=2;
5829 int LA34_0 = input.LA(1);
5830
5831 if ( (LA34_0==34) ) {
5832 alt34=1;
5833 }
5834 switch (alt34) {
5835 case 1 :
5836 // InternalVampireLanguage.g:2291:4: otherlv_1= '(' ( (lv_terms_2_0= ruleVLSFofTerm ) ) (otherlv_3= ',' ( (lv_terms_4_0= ruleVLSFofTerm ) ) )* otherlv_5= ')'
5837 {
5838 otherlv_1=(Token)match(input,34,FOLLOW_30);
5839
5840 newLeafNode(otherlv_1, grammarAccess.getVLSFunctionAsTermAccess().getLeftParenthesisKeyword_1_0());
5841
5842 // InternalVampireLanguage.g:2295:4: ( (lv_terms_2_0= ruleVLSFofTerm ) )
5843 // InternalVampireLanguage.g:2296:5: (lv_terms_2_0= ruleVLSFofTerm )
5844 {
5845 // InternalVampireLanguage.g:2296:5: (lv_terms_2_0= ruleVLSFofTerm )
5846 // InternalVampireLanguage.g:2297:6: lv_terms_2_0= ruleVLSFofTerm
5847 {
5848
5849 newCompositeNode(grammarAccess.getVLSFunctionAsTermAccess().getTermsVLSFofTermParserRuleCall_1_1_0());
5850
5851 pushFollow(FOLLOW_14);
5852 lv_terms_2_0=ruleVLSFofTerm();
5853
5854 state._fsp--;
5855
5856
5857 if (current==null) {
5858 current = createModelElementForParent(grammarAccess.getVLSFunctionAsTermRule());
5859 }
5860 add(
5861 current,
5862 "terms",
5863 lv_terms_2_0,
5864 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm");
5865 afterParserOrEnumRuleCall();
5866
5867
5868 }
5869
5870
5871 }
5872
5873 // InternalVampireLanguage.g:2314:4: (otherlv_3= ',' ( (lv_terms_4_0= ruleVLSFofTerm ) ) )*
5874 loop33:
5875 do {
5876 int alt33=2;
5877 int LA33_0 = input.LA(1);
5878
5879 if ( (LA33_0==29) ) {
5880 alt33=1;
5881 }
5882
5883
5884 switch (alt33) {
5885 case 1 :
5886 // InternalVampireLanguage.g:2315:5: otherlv_3= ',' ( (lv_terms_4_0= ruleVLSFofTerm ) )
5887 {
5888 otherlv_3=(Token)match(input,29,FOLLOW_30);
5889
5890 newLeafNode(otherlv_3, grammarAccess.getVLSFunctionAsTermAccess().getCommaKeyword_1_2_0());
5891
5892 // InternalVampireLanguage.g:2319:5: ( (lv_terms_4_0= ruleVLSFofTerm ) )
5893 // InternalVampireLanguage.g:2320:6: (lv_terms_4_0= ruleVLSFofTerm )
5894 {
5895 // InternalVampireLanguage.g:2320:6: (lv_terms_4_0= ruleVLSFofTerm )
5896 // InternalVampireLanguage.g:2321:7: lv_terms_4_0= ruleVLSFofTerm
5897 {
5898
5899 newCompositeNode(grammarAccess.getVLSFunctionAsTermAccess().getTermsVLSFofTermParserRuleCall_1_2_1_0());
5900
5901 pushFollow(FOLLOW_14);
5902 lv_terms_4_0=ruleVLSFofTerm();
5903
5904 state._fsp--;
5905
5906
5907 if (current==null) {
5908 current = createModelElementForParent(grammarAccess.getVLSFunctionAsTermRule());
5909 }
5910 add(
5911 current,
5912 "terms",
5913 lv_terms_4_0,
5914 "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm");
5915 afterParserOrEnumRuleCall();
5916
5917
5918 }
5919
5920
5921 }
5922
5923
5924 }
5925 break;
5926
5927 default :
5928 break loop33;
5929 }
5930 } while (true);
5931
5932 otherlv_5=(Token)match(input,35,FOLLOW_2);
5933
5934 newLeafNode(otherlv_5, grammarAccess.getVLSFunctionAsTermAccess().getRightParenthesisKeyword_1_3());
5935
5936
5937 }
5938 break;
5939
5940 }
5941
5942
5943 }
5944
5945
5946 }
5947
5948
5949 leaveRule();
5950
5951 }
5952
5953 catch (RecognitionException re) {
5954 recover(input,re);
5955 appendSkippedTokens();
5956 }
5957 finally {
5958 }
5959 return current;
5960 }
5961 // $ANTLR end "ruleVLSFunctionAsTerm"
5962
5963
5964 // $ANTLR start "entryRuleVLSDefinedTerm"
5965 // InternalVampireLanguage.g:2348:1: entryRuleVLSDefinedTerm returns [EObject current=null] : iv_ruleVLSDefinedTerm= ruleVLSDefinedTerm EOF ;
5966 public final EObject entryRuleVLSDefinedTerm() throws RecognitionException {
5967 EObject current = null;
5968
5969 EObject iv_ruleVLSDefinedTerm = null;
5970
5971
5972 try {
5973 // InternalVampireLanguage.g:2348:55: (iv_ruleVLSDefinedTerm= ruleVLSDefinedTerm EOF )
5974 // InternalVampireLanguage.g:2349:2: iv_ruleVLSDefinedTerm= ruleVLSDefinedTerm EOF
5975 {
5976 newCompositeNode(grammarAccess.getVLSDefinedTermRule());
5977 pushFollow(FOLLOW_1);
5978 iv_ruleVLSDefinedTerm=ruleVLSDefinedTerm();
5979
5980 state._fsp--;
5981
5982 current =iv_ruleVLSDefinedTerm;
5983 match(input,EOF,FOLLOW_2);
5984
5985 }
5986
5987 }
5988
5989 catch (RecognitionException re) {
5990 recover(input,re);
5991 appendSkippedTokens();
5992 }
5993 finally {
5994 }
5995 return current;
5996 }
5997 // $ANTLR end "entryRuleVLSDefinedTerm"
5998
5999
6000 // $ANTLR start "ruleVLSDefinedTerm"
6001 // InternalVampireLanguage.g:2355:1: ruleVLSDefinedTerm returns [EObject current=null] : ( ( () ( (lv_value_1_0= RULE_SIGNED_LITERAL ) ) ) | ( () ( (lv_value_3_0= RULE_SIGNED_REAL_ID ) ) ) | ( () ( (lv_value_5_0= RULE_SIGNED_RAT_ID ) ) ) | ( () ( (lv_value_7_0= RULE_DOUBLE_QUOTE ) ) ) ) ;
6002 public final EObject ruleVLSDefinedTerm() throws RecognitionException {
6003 EObject current = null;
6004
6005 Token lv_value_1_0=null;
6006 Token lv_value_3_0=null;
6007 Token lv_value_5_0=null;
6008 Token lv_value_7_0=null;
6009
6010
6011 enterRule();
6012
6013 try {
6014 // InternalVampireLanguage.g:2361:2: ( ( ( () ( (lv_value_1_0= RULE_SIGNED_LITERAL ) ) ) | ( () ( (lv_value_3_0= RULE_SIGNED_REAL_ID ) ) ) | ( () ( (lv_value_5_0= RULE_SIGNED_RAT_ID ) ) ) | ( () ( (lv_value_7_0= RULE_DOUBLE_QUOTE ) ) ) ) )
6015 // InternalVampireLanguage.g:2362:2: ( ( () ( (lv_value_1_0= RULE_SIGNED_LITERAL ) ) ) | ( () ( (lv_value_3_0= RULE_SIGNED_REAL_ID ) ) ) | ( () ( (lv_value_5_0= RULE_SIGNED_RAT_ID ) ) ) | ( () ( (lv_value_7_0= RULE_DOUBLE_QUOTE ) ) ) )
6016 {
6017 // InternalVampireLanguage.g:2362:2: ( ( () ( (lv_value_1_0= RULE_SIGNED_LITERAL ) ) ) | ( () ( (lv_value_3_0= RULE_SIGNED_REAL_ID ) ) ) | ( () ( (lv_value_5_0= RULE_SIGNED_RAT_ID ) ) ) | ( () ( (lv_value_7_0= RULE_DOUBLE_QUOTE ) ) ) )
6018 int alt35=4;
6019 switch ( input.LA(1) ) {
6020 case RULE_SIGNED_LITERAL:
6021 {
6022 alt35=1;
6023 }
6024 break;
6025 case RULE_SIGNED_REAL_ID:
6026 {
6027 alt35=2;
6028 }
6029 break;
6030 case RULE_SIGNED_RAT_ID:
6031 {
6032 alt35=3;
6033 }
6034 break;
6035 case RULE_DOUBLE_QUOTE:
6036 {
6037 alt35=4;
6038 }
6039 break;
6040 default:
6041 NoViableAltException nvae =
6042 new NoViableAltException("", 35, 0, input);
6043
6044 throw nvae;
6045 }
6046
6047 switch (alt35) {
6048 case 1 :
6049 // InternalVampireLanguage.g:2363:3: ( () ( (lv_value_1_0= RULE_SIGNED_LITERAL ) ) )
6050 {
6051 // InternalVampireLanguage.g:2363:3: ( () ( (lv_value_1_0= RULE_SIGNED_LITERAL ) ) )
6052 // InternalVampireLanguage.g:2364:4: () ( (lv_value_1_0= RULE_SIGNED_LITERAL ) )
6053 {
6054 // InternalVampireLanguage.g:2364:4: ()
6055 // InternalVampireLanguage.g:2365:5:
6056 {
6057
6058 current = forceCreateModelElement(
6059 grammarAccess.getVLSDefinedTermAccess().getVLSIntAction_0_0(),
6060 current);
6061
6062
6063 }
6064
6065 // InternalVampireLanguage.g:2371:4: ( (lv_value_1_0= RULE_SIGNED_LITERAL ) )
6066 // InternalVampireLanguage.g:2372:5: (lv_value_1_0= RULE_SIGNED_LITERAL )
6067 {
6068 // InternalVampireLanguage.g:2372:5: (lv_value_1_0= RULE_SIGNED_LITERAL )
6069 // InternalVampireLanguage.g:2373:6: lv_value_1_0= RULE_SIGNED_LITERAL
6070 {
6071 lv_value_1_0=(Token)match(input,RULE_SIGNED_LITERAL,FOLLOW_2);
6072
6073 newLeafNode(lv_value_1_0, grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_LITERALTerminalRuleCall_0_1_0());
6074
6075
6076 if (current==null) {
6077 current = createModelElement(grammarAccess.getVLSDefinedTermRule());
6078 }
6079 setWithLastConsumed(
6080 current,
6081 "value",
6082 lv_value_1_0,
6083 "ca.mcgill.ecse.dslreasoner.VampireLanguage.SIGNED_LITERAL");
6084
6085
6086 }
6087
6088
6089 }
6090
6091
6092 }
6093
6094
6095 }
6096 break;
6097 case 2 :
6098 // InternalVampireLanguage.g:2391:3: ( () ( (lv_value_3_0= RULE_SIGNED_REAL_ID ) ) )
6099 {
6100 // InternalVampireLanguage.g:2391:3: ( () ( (lv_value_3_0= RULE_SIGNED_REAL_ID ) ) )
6101 // InternalVampireLanguage.g:2392:4: () ( (lv_value_3_0= RULE_SIGNED_REAL_ID ) )
6102 {
6103 // InternalVampireLanguage.g:2392:4: ()
6104 // InternalVampireLanguage.g:2393:5:
6105 {
6106
6107 current = forceCreateModelElement(
6108 grammarAccess.getVLSDefinedTermAccess().getVLSRealAction_1_0(),
6109 current);
6110
6111
6112 }
6113
6114 // InternalVampireLanguage.g:2399:4: ( (lv_value_3_0= RULE_SIGNED_REAL_ID ) )
6115 // InternalVampireLanguage.g:2400:5: (lv_value_3_0= RULE_SIGNED_REAL_ID )
6116 {
6117 // InternalVampireLanguage.g:2400:5: (lv_value_3_0= RULE_SIGNED_REAL_ID )
6118 // InternalVampireLanguage.g:2401:6: lv_value_3_0= RULE_SIGNED_REAL_ID
6119 {
6120 lv_value_3_0=(Token)match(input,RULE_SIGNED_REAL_ID,FOLLOW_2);
6121
6122 newLeafNode(lv_value_3_0, grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_REAL_IDTerminalRuleCall_1_1_0());
6123
6124
6125 if (current==null) {
6126 current = createModelElement(grammarAccess.getVLSDefinedTermRule());
6127 }
6128 setWithLastConsumed(
6129 current,
6130 "value",
6131 lv_value_3_0,
6132 "ca.mcgill.ecse.dslreasoner.VampireLanguage.SIGNED_REAL_ID");
6133
6134
6135 }
6136
6137
6138 }
6139
6140
6141 }
6142
6143
6144 }
6145 break;
6146 case 3 :
6147 // InternalVampireLanguage.g:2419:3: ( () ( (lv_value_5_0= RULE_SIGNED_RAT_ID ) ) )
6148 {
6149 // InternalVampireLanguage.g:2419:3: ( () ( (lv_value_5_0= RULE_SIGNED_RAT_ID ) ) )
6150 // InternalVampireLanguage.g:2420:4: () ( (lv_value_5_0= RULE_SIGNED_RAT_ID ) )
6151 {
6152 // InternalVampireLanguage.g:2420:4: ()
6153 // InternalVampireLanguage.g:2421:5:
6154 {
6155
6156 current = forceCreateModelElement(
6157 grammarAccess.getVLSDefinedTermAccess().getVLSRationalAction_2_0(),
6158 current);
6159
6160
6161 }
6162
6163 // InternalVampireLanguage.g:2427:4: ( (lv_value_5_0= RULE_SIGNED_RAT_ID ) )
6164 // InternalVampireLanguage.g:2428:5: (lv_value_5_0= RULE_SIGNED_RAT_ID )
6165 {
6166 // InternalVampireLanguage.g:2428:5: (lv_value_5_0= RULE_SIGNED_RAT_ID )
6167 // InternalVampireLanguage.g:2429:6: lv_value_5_0= RULE_SIGNED_RAT_ID
6168 {
6169 lv_value_5_0=(Token)match(input,RULE_SIGNED_RAT_ID,FOLLOW_2);
6170
6171 newLeafNode(lv_value_5_0, grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_RAT_IDTerminalRuleCall_2_1_0());
6172
6173
6174 if (current==null) {
6175 current = createModelElement(grammarAccess.getVLSDefinedTermRule());
6176 }
6177 setWithLastConsumed(
6178 current,
6179 "value",
6180 lv_value_5_0,
6181 "ca.mcgill.ecse.dslreasoner.VampireLanguage.SIGNED_RAT_ID");
6182
6183
6184 }
6185
6186
6187 }
6188
6189
6190 }
6191
6192
6193 }
6194 break;
6195 case 4 :
6196 // InternalVampireLanguage.g:2447:3: ( () ( (lv_value_7_0= RULE_DOUBLE_QUOTE ) ) )
6197 {
6198 // InternalVampireLanguage.g:2447:3: ( () ( (lv_value_7_0= RULE_DOUBLE_QUOTE ) ) )
6199 // InternalVampireLanguage.g:2448:4: () ( (lv_value_7_0= RULE_DOUBLE_QUOTE ) )
6200 {
6201 // InternalVampireLanguage.g:2448:4: ()
6202 // InternalVampireLanguage.g:2449:5:
6203 {
6204
6205 current = forceCreateModelElement(
6206 grammarAccess.getVLSDefinedTermAccess().getVLSDoubleQuoteAction_3_0(),
6207 current);
6208
6209
6210 }
6211
6212 // InternalVampireLanguage.g:2455:4: ( (lv_value_7_0= RULE_DOUBLE_QUOTE ) )
6213 // InternalVampireLanguage.g:2456:5: (lv_value_7_0= RULE_DOUBLE_QUOTE )
6214 {
6215 // InternalVampireLanguage.g:2456:5: (lv_value_7_0= RULE_DOUBLE_QUOTE )
6216 // InternalVampireLanguage.g:2457:6: lv_value_7_0= RULE_DOUBLE_QUOTE
6217 {
6218 lv_value_7_0=(Token)match(input,RULE_DOUBLE_QUOTE,FOLLOW_2);
6219
6220 newLeafNode(lv_value_7_0, grammarAccess.getVLSDefinedTermAccess().getValueDOUBLE_QUOTETerminalRuleCall_3_1_0());
6221
6222
6223 if (current==null) {
6224 current = createModelElement(grammarAccess.getVLSDefinedTermRule());
6225 }
6226 setWithLastConsumed(
6227 current,
6228 "value",
6229 lv_value_7_0,
6230 "ca.mcgill.ecse.dslreasoner.VampireLanguage.DOUBLE_QUOTE");
6231
6232
6233 }
6234
6235
6236 }
6237
6238
6239 }
6240
6241
6242 }
6243 break;
6244
6245 }
6246
6247
6248 }
6249
6250
6251 leaveRule();
6252
6253 }
6254
6255 catch (RecognitionException re) {
6256 recover(input,re);
6257 appendSkippedTokens();
6258 }
6259 finally {
6260 }
6261 return current;
6262 }
6263 // $ANTLR end "ruleVLSDefinedTerm"
6264
6265 // Delegated rules
6266
6267
6268 protected DFA25 dfa25 = new DFA25(this);
6269 static final String dfa_1s = "\30\uffff";
6270 static final String dfa_2s = "\1\uffff\23\24\4\uffff";
6271 static final String dfa_3s = "\1\4\23\35\4\uffff";
6272 static final String dfa_4s = "\1\107\23\104\4\uffff";
6273 static final String dfa_5s = "\24\uffff\1\1\1\2\1\3\1\4";
6274 static final String dfa_6s = "\30\uffff}>";
6275 static final String[] dfa_7s = {
6276 "\1\2\1\1\1\uffff\1\27\1\uffff\1\3\1\4\1\26\3\27\27\uffff\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\20\uffff\2\24\1\25",
6277 "\1\24\4\uffff\1\25\1\24\22\uffff\10\24\4\uffff\3\24",
6278 "\1\24\4\uffff\1\25\1\24\22\uffff\10\24\4\uffff\3\24",
6279 "\1\24\4\uffff\1\25\1\24\22\uffff\10\24\4\uffff\3\24",
6280 "\1\24\4\uffff\1\25\1\24\22\uffff\10\24\4\uffff\3\24",
6281 "\1\24\4\uffff\1\25\1\24\22\uffff\10\24\4\uffff\3\24",
6282 "\1\24\4\uffff\1\25\1\24\22\uffff\10\24\4\uffff\3\24",
6283 "\1\24\4\uffff\1\25\1\24\22\uffff\10\24\4\uffff\3\24",
6284 "\1\24\4\uffff\1\25\1\24\22\uffff\10\24\4\uffff\3\24",
6285 "\1\24\4\uffff\1\25\1\24\22\uffff\10\24\4\uffff\3\24",
6286 "\1\24\4\uffff\1\25\1\24\22\uffff\10\24\4\uffff\3\24",
6287 "\1\24\4\uffff\1\25\1\24\22\uffff\10\24\4\uffff\3\24",
6288 "\1\24\4\uffff\1\25\1\24\22\uffff\10\24\4\uffff\3\24",
6289 "\1\24\4\uffff\1\25\1\24\22\uffff\10\24\4\uffff\3\24",
6290 "\1\24\4\uffff\1\25\1\24\22\uffff\10\24\4\uffff\3\24",
6291 "\1\24\4\uffff\1\25\1\24\22\uffff\10\24\4\uffff\3\24",
6292 "\1\24\4\uffff\1\25\1\24\22\uffff\10\24\4\uffff\3\24",
6293 "\1\24\4\uffff\1\25\1\24\22\uffff\10\24\4\uffff\3\24",
6294 "\1\24\4\uffff\1\25\1\24\22\uffff\10\24\4\uffff\3\24",
6295 "\1\24\4\uffff\1\25\1\24\22\uffff\10\24\4\uffff\3\24",
6296 "",
6297 "",
6298 "",
6299 ""
6300 };
6301
6302 static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
6303 static final short[] dfa_2 = DFA.unpackEncodedString(dfa_2s);
6304 static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
6305 static final char[] dfa_4 = DFA.unpackEncodedStringToUnsignedChars(dfa_4s);
6306 static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
6307 static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
6308 static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
6309
6310 class DFA25 extends DFA {
6311
6312 public DFA25(BaseRecognizer recognizer) {
6313 this.recognizer = recognizer;
6314 this.decisionNumber = 25;
6315 this.eot = dfa_1;
6316 this.eof = dfa_2;
6317 this.min = dfa_3;
6318 this.max = dfa_4;
6319 this.accept = dfa_5;
6320 this.special = dfa_6;
6321 this.transition = dfa_7;
6322 }
6323 public String getDescription() {
6324 return "1716:2: (this_VLSAtomicConstant_0= ruleVLSAtomicConstant | this_VLSAtomicFunction_1= ruleVLSAtomicFunction | this_VLSVariable_2= ruleVLSVariable | this_VLSDefinedTerm_3= ruleVLSDefinedTerm )";
6325 }
6326 }
6327
6328
6329 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
6330 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
6331 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000002388000002L});
6332 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000010L});
6333 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000010000002L});
6334 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x00000000000000F0L});
6335 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000060000000L});
6336 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000000100L});
6337 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000400000000L});
6338 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x00000000000000B0L});
6339 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000020000000L});
6340 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x001FFFC000000000L});
6341 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x401FFFC400007EB0L,0x00000000000000E3L});
6342 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000820000000L});
6343 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x003FFFCC40000030L});
6344 public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000800000000L});
6345 public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000001000000000L});
6346 public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x001FFFC440000032L});
6347 public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000440000002L});
6348 public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x003FFFC460000030L});
6349 public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000040000002L});
6350 public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000020000002L});
6351 public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x3FC0000000000002L});
6352 public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x1000000000000002L});
6353 public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x2000000000000002L});
6354 public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0020000000000000L});
6355 public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000000800L});
6356 public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x8000000000000000L});
6357 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000000000002L,0x000000000000001CL});
6358 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x001FFFC000007EB0L,0x00000000000000E0L});
6359 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000400000002L});
6360
6361} \ No newline at end of file