/* * generated by Xtext 2.14.0 */ grammar InternalVampireLanguage; options { superClass=AbstractInternalAntlrParser; } @lexer::header { package ca.mcgill.ecse.dslreasoner.parser.antlr.internal; // Hack: Use our own Lexer superclass by means of import. // Currently there is no other way to specify the superclass for the lexer. import org.eclipse.xtext.parser.antlr.Lexer; } @parser::header { package ca.mcgill.ecse.dslreasoner.parser.antlr.internal; import org.eclipse.xtext.*; import org.eclipse.xtext.parser.*; import org.eclipse.xtext.parser.impl.*; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser; import org.eclipse.xtext.parser.antlr.XtextTokenStream; import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken; import ca.mcgill.ecse.dslreasoner.services.VampireLanguageGrammarAccess; } @parser::members { private VampireLanguageGrammarAccess grammarAccess; public InternalVampireLanguageParser(TokenStream input, VampireLanguageGrammarAccess grammarAccess) { this(input); this.grammarAccess = grammarAccess; registerRules(grammarAccess.getGrammar()); } @Override protected String getFirstRuleName() { return "VampireModel"; } @Override protected VampireLanguageGrammarAccess getGrammarAccess() { return grammarAccess; } } @rulecatch { catch (RecognitionException re) { recover(input,re); appendSkippedTokens(); } } // Entry rule entryRuleVampireModel entryRuleVampireModel returns [EObject current=null]: { newCompositeNode(grammarAccess.getVampireModelRule()); } iv_ruleVampireModel=ruleVampireModel { $current=$iv_ruleVampireModel.current; } EOF; // Rule VampireModel ruleVampireModel returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( ( ( { newCompositeNode(grammarAccess.getVampireModelAccess().getIncludesVLSIncludeParserRuleCall_0_0()); } lv_includes_0_0=ruleVLSInclude { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVampireModelRule()); } add( $current, "includes", lv_includes_0_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSInclude"); afterParserOrEnumRuleCall(); } ) ) | ( ( { newCompositeNode(grammarAccess.getVampireModelAccess().getCommentsVLSCommentParserRuleCall_1_0()); } lv_comments_1_0=ruleVLSComment { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVampireModelRule()); } add( $current, "comments", lv_comments_1_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSComment"); afterParserOrEnumRuleCall(); } ) ) | ( ( { newCompositeNode(grammarAccess.getVampireModelAccess().getConfirmationsVLSConfirmationsParserRuleCall_2_0()); } lv_confirmations_2_0=ruleVLSConfirmations { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVampireModelRule()); } add( $current, "confirmations", lv_confirmations_2_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSConfirmations"); afterParserOrEnumRuleCall(); } ) ) | ( ( { newCompositeNode(grammarAccess.getVampireModelAccess().getFormulasVLSFofFormulaParserRuleCall_3_0()); } lv_formulas_3_0=ruleVLSFofFormula { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVampireModelRule()); } add( $current, "formulas", lv_formulas_3_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofFormula"); afterParserOrEnumRuleCall(); } ) ) | ( ( { newCompositeNode(grammarAccess.getVampireModelAccess().getTfformulasVLSTffFormulaParserRuleCall_4_0()); } lv_tfformulas_4_0=ruleVLSTffFormula { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVampireModelRule()); } add( $current, "tfformulas", lv_tfformulas_4_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSTffFormula"); afterParserOrEnumRuleCall(); } ) ) )* ; // Entry rule entryRuleVLSInclude entryRuleVLSInclude returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSIncludeRule()); } iv_ruleVLSInclude=ruleVLSInclude { $current=$iv_ruleVLSInclude.current; } EOF; // Rule VLSInclude ruleVLSInclude returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( otherlv_0='include(' { newLeafNode(otherlv_0, grammarAccess.getVLSIncludeAccess().getIncludeKeyword_0()); } ( ( lv_fileName_1_0=RULE_SINGLE_QUOTE { newLeafNode(lv_fileName_1_0, grammarAccess.getVLSIncludeAccess().getFileNameSINGLE_QUOTETerminalRuleCall_1_0()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSIncludeRule()); } setWithLastConsumed( $current, "fileName", lv_fileName_1_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_QUOTE"); } ) ) ( otherlv_2=',[' { newLeafNode(otherlv_2, grammarAccess.getVLSIncludeAccess().getCommaLeftSquareBracketKeyword_2_0()); } ( ( { newCompositeNode(grammarAccess.getVLSIncludeAccess().getNamesVLSNameParserRuleCall_2_1_0()); } lv_names_3_0=ruleVLSName { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSIncludeRule()); } add( $current, "names", lv_names_3_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSName"); afterParserOrEnumRuleCall(); } ) ) ( otherlv_4=',' { newLeafNode(otherlv_4, grammarAccess.getVLSIncludeAccess().getCommaKeyword_2_2_0()); } ( ( { newCompositeNode(grammarAccess.getVLSIncludeAccess().getNamesVLSNameParserRuleCall_2_2_1_0()); } lv_names_5_0=ruleVLSName { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSIncludeRule()); } add( $current, "names", lv_names_5_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSName"); afterParserOrEnumRuleCall(); } ) ) )* otherlv_6=']' { newLeafNode(otherlv_6, grammarAccess.getVLSIncludeAccess().getRightSquareBracketKeyword_2_3()); } )? ) ; // Entry rule entryRuleVLSName entryRuleVLSName returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSNameRule()); } iv_ruleVLSName=ruleVLSName { $current=$iv_ruleVLSName.current; } EOF; // Rule VLSName ruleVLSName returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( ( ( lv_name_0_1=RULE_LOWER_WORD_ID { newLeafNode(lv_name_0_1, grammarAccess.getVLSNameAccess().getNameLOWER_WORD_IDTerminalRuleCall_0_0()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSNameRule()); } setWithLastConsumed( $current, "name", lv_name_0_1, "ca.mcgill.ecse.dslreasoner.VampireLanguage.LOWER_WORD_ID"); } | lv_name_0_2=RULE_SINGLE_QUOTE { newLeafNode(lv_name_0_2, grammarAccess.getVLSNameAccess().getNameSINGLE_QUOTETerminalRuleCall_0_1()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSNameRule()); } setWithLastConsumed( $current, "name", lv_name_0_2, "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_QUOTE"); } | lv_name_0_3=RULE_LITERAL { newLeafNode(lv_name_0_3, grammarAccess.getVLSNameAccess().getNameLITERALTerminalRuleCall_0_2()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSNameRule()); } setWithLastConsumed( $current, "name", lv_name_0_3, "ca.mcgill.ecse.dslreasoner.VampireLanguage.LITERAL"); } | lv_name_0_4=RULE_SIGNED_LITERAL { newLeafNode(lv_name_0_4, grammarAccess.getVLSNameAccess().getNameSIGNED_LITERALTerminalRuleCall_0_3()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSNameRule()); } setWithLastConsumed( $current, "name", lv_name_0_4, "ca.mcgill.ecse.dslreasoner.VampireLanguage.SIGNED_LITERAL"); } ) ) ) ; // Entry rule entryRuleVLSComment entryRuleVLSComment returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSCommentRule()); } iv_ruleVLSComment=ruleVLSComment { $current=$iv_ruleVLSComment.current; } EOF; // Rule VLSComment ruleVLSComment returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( otherlv_0='%' { newLeafNode(otherlv_0, grammarAccess.getVLSCommentAccess().getPercentSignKeyword_0()); } ( ( lv_comment_1_0=RULE_SINGLE_COMMENT { newLeafNode(lv_comment_1_0, grammarAccess.getVLSCommentAccess().getCommentSINGLE_COMMENTTerminalRuleCall_1_0()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSCommentRule()); } setWithLastConsumed( $current, "comment", lv_comment_1_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_COMMENT"); } ) ) ) ; // Entry rule entryRuleVLSConfirmations entryRuleVLSConfirmations returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSConfirmationsRule()); } iv_ruleVLSConfirmations=ruleVLSConfirmations { $current=$iv_ruleVLSConfirmations.current; } EOF; // Rule VLSConfirmations ruleVLSConfirmations returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: { newCompositeNode(grammarAccess.getVLSConfirmationsAccess().getVLSSatisfiableParserRuleCall()); } this_VLSSatisfiable_0=ruleVLSSatisfiable { $current = $this_VLSSatisfiable_0.current; afterParserOrEnumRuleCall(); } ; // Entry rule entryRuleVLSSatisfiable entryRuleVLSSatisfiable returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSSatisfiableRule()); } iv_ruleVLSSatisfiable=ruleVLSSatisfiable { $current=$iv_ruleVLSSatisfiable.current; } EOF; // Rule VLSSatisfiable ruleVLSSatisfiable returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( ( { $current = forceCreateModelElement( grammarAccess.getVLSSatisfiableAccess().getVLSSatisfiableAction_0(), $current); } ) otherlv_1='Satisfiable!' { newLeafNode(otherlv_1, grammarAccess.getVLSSatisfiableAccess().getSatisfiableKeyword_1()); } ) ; // Entry rule entryRuleVLSFofFormula entryRuleVLSFofFormula returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSFofFormulaRule()); } iv_ruleVLSFofFormula=ruleVLSFofFormula { $current=$iv_ruleVLSFofFormula.current; } EOF; // Rule VLSFofFormula ruleVLSFofFormula returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( otherlv_0='fof' { newLeafNode(otherlv_0, grammarAccess.getVLSFofFormulaAccess().getFofKeyword_0()); } otherlv_1='(' { newLeafNode(otherlv_1, grammarAccess.getVLSFofFormulaAccess().getLeftParenthesisKeyword_1()); } ( ( ( lv_name_2_1=RULE_LOWER_WORD_ID { newLeafNode(lv_name_2_1, grammarAccess.getVLSFofFormulaAccess().getNameLOWER_WORD_IDTerminalRuleCall_2_0_0()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSFofFormulaRule()); } setWithLastConsumed( $current, "name", lv_name_2_1, "ca.mcgill.ecse.dslreasoner.VampireLanguage.LOWER_WORD_ID"); } | lv_name_2_2=RULE_SIGNED_LITERAL { newLeafNode(lv_name_2_2, grammarAccess.getVLSFofFormulaAccess().getNameSIGNED_LITERALTerminalRuleCall_2_0_1()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSFofFormulaRule()); } setWithLastConsumed( $current, "name", lv_name_2_2, "ca.mcgill.ecse.dslreasoner.VampireLanguage.SIGNED_LITERAL"); } | lv_name_2_3=RULE_SINGLE_QUOTE { newLeafNode(lv_name_2_3, grammarAccess.getVLSFofFormulaAccess().getNameSINGLE_QUOTETerminalRuleCall_2_0_2()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSFofFormulaRule()); } setWithLastConsumed( $current, "name", lv_name_2_3, "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_QUOTE"); } ) ) ) otherlv_3=',' { newLeafNode(otherlv_3, grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_3()); } ( ( { newCompositeNode(grammarAccess.getVLSFofFormulaAccess().getFofRoleVLSRoleParserRuleCall_4_0()); } lv_fofRole_4_0=ruleVLSRole { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSFofFormulaRule()); } set( $current, "fofRole", lv_fofRole_4_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSRole"); afterParserOrEnumRuleCall(); } ) ) otherlv_5=',' { newLeafNode(otherlv_5, grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_5()); } ( ( { newCompositeNode(grammarAccess.getVLSFofFormulaAccess().getFofFormulaVLSTermParserRuleCall_6_0()); } lv_fofFormula_6_0=ruleVLSTerm { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSFofFormulaRule()); } set( $current, "fofFormula", lv_fofFormula_6_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSTerm"); afterParserOrEnumRuleCall(); } ) ) ( otherlv_7=',' { newLeafNode(otherlv_7, grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_7_0()); } ( ( { newCompositeNode(grammarAccess.getVLSFofFormulaAccess().getAnnotationsVLSAnnotationParserRuleCall_7_1_0()); } lv_annotations_8_0=ruleVLSAnnotation { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSFofFormulaRule()); } set( $current, "annotations", lv_annotations_8_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAnnotation"); afterParserOrEnumRuleCall(); } ) ) )? otherlv_9=')' { newLeafNode(otherlv_9, grammarAccess.getVLSFofFormulaAccess().getRightParenthesisKeyword_8()); } otherlv_10='.' { newLeafNode(otherlv_10, grammarAccess.getVLSFofFormulaAccess().getFullStopKeyword_9()); } ) ; // Entry rule entryRuleVLSTffFormula entryRuleVLSTffFormula returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSTffFormulaRule()); } iv_ruleVLSTffFormula=ruleVLSTffFormula { $current=$iv_ruleVLSTffFormula.current; } EOF; // Rule VLSTffFormula ruleVLSTffFormula returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( otherlv_0='tff' { newLeafNode(otherlv_0, grammarAccess.getVLSTffFormulaAccess().getTffKeyword_0()); } otherlv_1='(' { newLeafNode(otherlv_1, grammarAccess.getVLSTffFormulaAccess().getLeftParenthesisKeyword_1()); } ( ( ( lv_name_2_1=RULE_LOWER_WORD_ID { newLeafNode(lv_name_2_1, grammarAccess.getVLSTffFormulaAccess().getNameLOWER_WORD_IDTerminalRuleCall_2_0_0()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSTffFormulaRule()); } setWithLastConsumed( $current, "name", lv_name_2_1, "ca.mcgill.ecse.dslreasoner.VampireLanguage.LOWER_WORD_ID"); } | lv_name_2_2=RULE_SIGNED_LITERAL { newLeafNode(lv_name_2_2, grammarAccess.getVLSTffFormulaAccess().getNameSIGNED_LITERALTerminalRuleCall_2_0_1()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSTffFormulaRule()); } setWithLastConsumed( $current, "name", lv_name_2_2, "ca.mcgill.ecse.dslreasoner.VampireLanguage.SIGNED_LITERAL"); } | lv_name_2_3=RULE_SINGLE_QUOTE { newLeafNode(lv_name_2_3, grammarAccess.getVLSTffFormulaAccess().getNameSINGLE_QUOTETerminalRuleCall_2_0_2()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSTffFormulaRule()); } setWithLastConsumed( $current, "name", lv_name_2_3, "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_QUOTE"); } ) ) ) otherlv_3=',' { newLeafNode(otherlv_3, grammarAccess.getVLSTffFormulaAccess().getCommaKeyword_3()); } ( ( { newCompositeNode(grammarAccess.getVLSTffFormulaAccess().getFofRoleVLSRoleParserRuleCall_4_0()); } lv_fofRole_4_0=ruleVLSRole { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSTffFormulaRule()); } set( $current, "fofRole", lv_fofRole_4_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSRole"); afterParserOrEnumRuleCall(); } ) ) otherlv_5=',' { newLeafNode(otherlv_5, grammarAccess.getVLSTffFormulaAccess().getCommaKeyword_5()); } ( ( { newCompositeNode(grammarAccess.getVLSTffFormulaAccess().getFofFormulaVLSTermParserRuleCall_6_0()); } lv_fofFormula_6_0=ruleVLSTerm { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSTffFormulaRule()); } set( $current, "fofFormula", lv_fofFormula_6_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSTerm"); afterParserOrEnumRuleCall(); } ) ) ( otherlv_7=',' { newLeafNode(otherlv_7, grammarAccess.getVLSTffFormulaAccess().getCommaKeyword_7_0()); } ( ( { newCompositeNode(grammarAccess.getVLSTffFormulaAccess().getAnnotationsVLSAnnotationParserRuleCall_7_1_0()); } lv_annotations_8_0=ruleVLSAnnotation { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSTffFormulaRule()); } set( $current, "annotations", lv_annotations_8_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAnnotation"); afterParserOrEnumRuleCall(); } ) ) )? otherlv_9=')' { newLeafNode(otherlv_9, grammarAccess.getVLSTffFormulaAccess().getRightParenthesisKeyword_8()); } otherlv_10='.' { newLeafNode(otherlv_10, grammarAccess.getVLSTffFormulaAccess().getFullStopKeyword_9()); } ) ; // Entry rule entryRuleVLSRole entryRuleVLSRole returns [String current=null]: { newCompositeNode(grammarAccess.getVLSRoleRule()); } iv_ruleVLSRole=ruleVLSRole { $current=$iv_ruleVLSRole.current.getText(); } EOF; // Rule VLSRole ruleVLSRole returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] @init { enterRule(); } @after { leaveRule(); }: ( kw='axiom' { $current.merge(kw); newLeafNode(kw, grammarAccess.getVLSRoleAccess().getAxiomKeyword_0()); } | kw='conjecture' { $current.merge(kw); newLeafNode(kw, grammarAccess.getVLSRoleAccess().getConjectureKeyword_1()); } | kw='hypothesis' { $current.merge(kw); newLeafNode(kw, grammarAccess.getVLSRoleAccess().getHypothesisKeyword_2()); } | kw='definition' { $current.merge(kw); newLeafNode(kw, grammarAccess.getVLSRoleAccess().getDefinitionKeyword_3()); } | kw='assumption' { $current.merge(kw); newLeafNode(kw, grammarAccess.getVLSRoleAccess().getAssumptionKeyword_4()); } | kw='lemma' { $current.merge(kw); newLeafNode(kw, grammarAccess.getVLSRoleAccess().getLemmaKeyword_5()); } | kw='theorem' { $current.merge(kw); newLeafNode(kw, grammarAccess.getVLSRoleAccess().getTheoremKeyword_6()); } | kw='corollary' { $current.merge(kw); newLeafNode(kw, grammarAccess.getVLSRoleAccess().getCorollaryKeyword_7()); } | kw='negated_conjecture' { $current.merge(kw); newLeafNode(kw, grammarAccess.getVLSRoleAccess().getNegated_conjectureKeyword_8()); } | kw='plain' { $current.merge(kw); newLeafNode(kw, grammarAccess.getVLSRoleAccess().getPlainKeyword_9()); } | kw='type' { $current.merge(kw); newLeafNode(kw, grammarAccess.getVLSRoleAccess().getTypeKeyword_10()); } | kw='fi_domain' { $current.merge(kw); newLeafNode(kw, grammarAccess.getVLSRoleAccess().getFi_domainKeyword_11()); } | kw='fi_functors' { $current.merge(kw); newLeafNode(kw, grammarAccess.getVLSRoleAccess().getFi_functorsKeyword_12()); } | kw='fi_predicates' { $current.merge(kw); newLeafNode(kw, grammarAccess.getVLSRoleAccess().getFi_predicatesKeyword_13()); } | kw='unknown' { $current.merge(kw); newLeafNode(kw, grammarAccess.getVLSRoleAccess().getUnknownKeyword_14()); } ) ; // Entry rule entryRuleVLSAnnotation entryRuleVLSAnnotation returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSAnnotationRule()); } iv_ruleVLSAnnotation=ruleVLSAnnotation { $current=$iv_ruleVLSAnnotation.current; } EOF; // Rule VLSAnnotation ruleVLSAnnotation returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( ( otherlv_0='[' { newLeafNode(otherlv_0, grammarAccess.getVLSAnnotationAccess().getLeftSquareBracketKeyword_0()); } )? ( ( ( lv_name_1_1=RULE_LOWER_WORD_ID { newLeafNode(lv_name_1_1, grammarAccess.getVLSAnnotationAccess().getNameLOWER_WORD_IDTerminalRuleCall_1_0_0()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSAnnotationRule()); } setWithLastConsumed( $current, "name", lv_name_1_1, "ca.mcgill.ecse.dslreasoner.VampireLanguage.LOWER_WORD_ID"); } | lv_name_1_2=RULE_SINGLE_QUOTE { newLeafNode(lv_name_1_2, grammarAccess.getVLSAnnotationAccess().getNameSINGLE_QUOTETerminalRuleCall_1_0_1()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSAnnotationRule()); } setWithLastConsumed( $current, "name", lv_name_1_2, "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_QUOTE"); } | { newCompositeNode(grammarAccess.getVLSAnnotationAccess().getNameVLSRoleParserRuleCall_1_0_2()); } lv_name_1_3=ruleVLSRole { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSAnnotationRule()); } set( $current, "name", lv_name_1_3, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSRole"); afterParserOrEnumRuleCall(); } ) ) )? ( otherlv_2='(' { newLeafNode(otherlv_2, grammarAccess.getVLSAnnotationAccess().getLeftParenthesisKeyword_2_0()); } ( ( { newCompositeNode(grammarAccess.getVLSAnnotationAccess().getFollowupVLSAnnotationTermsParserRuleCall_2_1_0()); } lv_followup_3_0=ruleVLSAnnotationTerms { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSAnnotationRule()); } set( $current, "followup", lv_followup_3_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAnnotationTerms"); afterParserOrEnumRuleCall(); } ) ) otherlv_4=')' { newLeafNode(otherlv_4, grammarAccess.getVLSAnnotationAccess().getRightParenthesisKeyword_2_2()); } )? ( otherlv_5=']' { newLeafNode(otherlv_5, grammarAccess.getVLSAnnotationAccess().getRightSquareBracketKeyword_3()); } )? ) ; // Entry rule entryRuleVLSAnnotationTerms entryRuleVLSAnnotationTerms returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSAnnotationTermsRule()); } iv_ruleVLSAnnotationTerms=ruleVLSAnnotationTerms { $current=$iv_ruleVLSAnnotationTerms.current; } EOF; // Rule VLSAnnotationTerms ruleVLSAnnotationTerms returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( ( ( { newCompositeNode(grammarAccess.getVLSAnnotationTermsAccess().getTermsVLSAnnotationParserRuleCall_0_0()); } lv_terms_0_0=ruleVLSAnnotation { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSAnnotationTermsRule()); } add( $current, "terms", lv_terms_0_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAnnotation"); afterParserOrEnumRuleCall(); } ) ) ( otherlv_1=',' { newLeafNode(otherlv_1, grammarAccess.getVLSAnnotationTermsAccess().getCommaKeyword_1_0()); } ( ( { newCompositeNode(grammarAccess.getVLSAnnotationTermsAccess().getTermsVLSAnnotationParserRuleCall_1_1_0()); } lv_terms_2_0=ruleVLSAnnotation { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSAnnotationTermsRule()); } add( $current, "terms", lv_terms_2_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAnnotation"); afterParserOrEnumRuleCall(); } ) ) )* ) ; // Entry rule entryRuleVLSTerm entryRuleVLSTerm returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSTermRule()); } iv_ruleVLSTerm=ruleVLSTerm { $current=$iv_ruleVLSTerm.current; } EOF; // Rule VLSTerm ruleVLSTerm returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: { newCompositeNode(grammarAccess.getVLSTermAccess().getVLSBinaryParserRuleCall()); } this_VLSBinary_0=ruleVLSBinary { $current = $this_VLSBinary_0.current; afterParserOrEnumRuleCall(); } ; // Entry rule entryRuleVLSBinary entryRuleVLSBinary returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSBinaryRule()); } iv_ruleVLSBinary=ruleVLSBinary { $current=$iv_ruleVLSBinary.current; } EOF; // Rule VLSBinary ruleVLSBinary returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( { newCompositeNode(grammarAccess.getVLSBinaryAccess().getVLSUnitaryFormulaParserRuleCall_0()); } this_VLSUnitaryFormula_0=ruleVLSUnitaryFormula { $current = $this_VLSUnitaryFormula_0.current; afterParserOrEnumRuleCall(); } ( ( ( ( ( { $current = forceCreateModelElementAndSet( grammarAccess.getVLSBinaryAccess().getVLSEquivalentLeftAction_1_0_0_0_0(), $current); } ) otherlv_2='<=>' { newLeafNode(otherlv_2, grammarAccess.getVLSBinaryAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_1_0_0_0_1()); } ) | ( ( { $current = forceCreateModelElementAndSet( grammarAccess.getVLSBinaryAccess().getVLSImpliesLeftAction_1_0_0_1_0(), $current); } ) otherlv_4='=>' { newLeafNode(otherlv_4, grammarAccess.getVLSBinaryAccess().getEqualsSignGreaterThanSignKeyword_1_0_0_1_1()); } ) | ( ( { $current = forceCreateModelElementAndSet( grammarAccess.getVLSBinaryAccess().getVLSRevImpliesLeftAction_1_0_0_2_0(), $current); } ) otherlv_6='<=' { newLeafNode(otherlv_6, grammarAccess.getVLSBinaryAccess().getLessThanSignEqualsSignKeyword_1_0_0_2_1()); } ) | ( ( { $current = forceCreateModelElementAndSet( grammarAccess.getVLSBinaryAccess().getVLSXnorLeftAction_1_0_0_3_0(), $current); } ) otherlv_8='<~>' { newLeafNode(otherlv_8, grammarAccess.getVLSBinaryAccess().getLessThanSignTildeGreaterThanSignKeyword_1_0_0_3_1()); } ) | ( ( { $current = forceCreateModelElementAndSet( grammarAccess.getVLSBinaryAccess().getVLSNorLeftAction_1_0_0_4_0(), $current); } ) otherlv_10='~|' { newLeafNode(otherlv_10, grammarAccess.getVLSBinaryAccess().getTildeVerticalLineKeyword_1_0_0_4_1()); } ) | ( ( { $current = forceCreateModelElementAndSet( grammarAccess.getVLSBinaryAccess().getVLSNandLeftAction_1_0_0_5_0(), $current); } ) otherlv_12='~&' { newLeafNode(otherlv_12, grammarAccess.getVLSBinaryAccess().getTildeAmpersandKeyword_1_0_0_5_1()); } ) ) ( ( { newCompositeNode(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_0_1_0()); } lv_right_13_0=ruleVLSUnitaryFormula { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSBinaryRule()); } set( $current, "right", lv_right_13_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnitaryFormula"); afterParserOrEnumRuleCall(); } ) ) ) | ( ( { $current = forceCreateModelElementAndSet( grammarAccess.getVLSBinaryAccess().getVLSAndLeftAction_1_1_0(), $current); } ) otherlv_15='&' { newLeafNode(otherlv_15, grammarAccess.getVLSBinaryAccess().getAmpersandKeyword_1_1_1()); } ( ( { newCompositeNode(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_1_2_0()); } lv_right_16_0=ruleVLSUnitaryFormula { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSBinaryRule()); } set( $current, "right", lv_right_16_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnitaryFormula"); afterParserOrEnumRuleCall(); } ) ) )+ | ( ( { $current = forceCreateModelElementAndSet( grammarAccess.getVLSBinaryAccess().getVLSOrLeftAction_1_2_0(), $current); } ) otherlv_18='|' { newLeafNode(otherlv_18, grammarAccess.getVLSBinaryAccess().getVerticalLineKeyword_1_2_1()); } ( ( { newCompositeNode(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_2_2_0()); } lv_right_19_0=ruleVLSUnitaryFormula { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSBinaryRule()); } set( $current, "right", lv_right_19_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnitaryFormula"); afterParserOrEnumRuleCall(); } ) ) )+ )? ) ; // Entry rule entryRuleVLSUnitaryFormula entryRuleVLSUnitaryFormula returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSUnitaryFormulaRule()); } iv_ruleVLSUnitaryFormula=ruleVLSUnitaryFormula { $current=$iv_ruleVLSUnitaryFormula.current; } EOF; // Rule VLSUnitaryFormula ruleVLSUnitaryFormula returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( { newCompositeNode(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUniversalQuantifierParserRuleCall_0()); } this_VLSUniversalQuantifier_0=ruleVLSUniversalQuantifier { $current = $this_VLSUniversalQuantifier_0.current; afterParserOrEnumRuleCall(); } | { newCompositeNode(grammarAccess.getVLSUnitaryFormulaAccess().getVLSExistentialQuantifierParserRuleCall_1()); } this_VLSExistentialQuantifier_1=ruleVLSExistentialQuantifier { $current = $this_VLSExistentialQuantifier_1.current; afterParserOrEnumRuleCall(); } | { newCompositeNode(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUnaryNegationParserRuleCall_2()); } this_VLSUnaryNegation_2=ruleVLSUnaryNegation { $current = $this_VLSUnaryNegation_2.current; afterParserOrEnumRuleCall(); } | { newCompositeNode(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUnaryInfixParserRuleCall_3()); } this_VLSUnaryInfix_3=ruleVLSUnaryInfix { $current = $this_VLSUnaryInfix_3.current; afterParserOrEnumRuleCall(); } | ( otherlv_4='(' { newLeafNode(otherlv_4, grammarAccess.getVLSUnitaryFormulaAccess().getLeftParenthesisKeyword_4_0()); } { newCompositeNode(grammarAccess.getVLSUnitaryFormulaAccess().getVLSTermParserRuleCall_4_1()); } this_VLSTerm_5=ruleVLSTerm { $current = $this_VLSTerm_5.current; afterParserOrEnumRuleCall(); } otherlv_6=')' { newLeafNode(otherlv_6, grammarAccess.getVLSUnitaryFormulaAccess().getRightParenthesisKeyword_4_2()); } ) ) ; // Entry rule entryRuleVLSUniversalQuantifier entryRuleVLSUniversalQuantifier returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSUniversalQuantifierRule()); } iv_ruleVLSUniversalQuantifier=ruleVLSUniversalQuantifier { $current=$iv_ruleVLSUniversalQuantifier.current; } EOF; // Rule VLSUniversalQuantifier ruleVLSUniversalQuantifier returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( ( { $current = forceCreateModelElement( grammarAccess.getVLSUniversalQuantifierAccess().getVLSUniversalQuantifierAction_0(), $current); } ) ( otherlv_1='!' { newLeafNode(otherlv_1, grammarAccess.getVLSUniversalQuantifierAccess().getExclamationMarkKeyword_1_0()); } otherlv_2='[' { newLeafNode(otherlv_2, grammarAccess.getVLSUniversalQuantifierAccess().getLeftSquareBracketKeyword_1_1()); } ( ( { newCompositeNode(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_2_0()); } lv_variables_3_0=ruleVLSVariable { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSUniversalQuantifierRule()); } add( $current, "variables", lv_variables_3_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSVariable"); afterParserOrEnumRuleCall(); } ) ) ( otherlv_4=',' { newLeafNode(otherlv_4, grammarAccess.getVLSUniversalQuantifierAccess().getCommaKeyword_1_3_0()); } ( ( { newCompositeNode(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_3_1_0()); } lv_variables_5_0=ruleVLSVariable { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSUniversalQuantifierRule()); } add( $current, "variables", lv_variables_5_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSVariable"); afterParserOrEnumRuleCall(); } ) ) )* otherlv_6=']' { newLeafNode(otherlv_6, grammarAccess.getVLSUniversalQuantifierAccess().getRightSquareBracketKeyword_1_4()); } otherlv_7=':' { newLeafNode(otherlv_7, grammarAccess.getVLSUniversalQuantifierAccess().getColonKeyword_1_5()); } ) ( ( { newCompositeNode(grammarAccess.getVLSUniversalQuantifierAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0()); } lv_operand_8_0=ruleVLSUnitaryFormula { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSUniversalQuantifierRule()); } set( $current, "operand", lv_operand_8_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnitaryFormula"); afterParserOrEnumRuleCall(); } ) ) ) ; // Entry rule entryRuleVLSExistentialQuantifier entryRuleVLSExistentialQuantifier returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSExistentialQuantifierRule()); } iv_ruleVLSExistentialQuantifier=ruleVLSExistentialQuantifier { $current=$iv_ruleVLSExistentialQuantifier.current; } EOF; // Rule VLSExistentialQuantifier ruleVLSExistentialQuantifier returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( ( { $current = forceCreateModelElement( grammarAccess.getVLSExistentialQuantifierAccess().getVLSExistentialQuantifierAction_0(), $current); } ) ( otherlv_1='?' { newLeafNode(otherlv_1, grammarAccess.getVLSExistentialQuantifierAccess().getQuestionMarkKeyword_1_0()); } otherlv_2='[' { newLeafNode(otherlv_2, grammarAccess.getVLSExistentialQuantifierAccess().getLeftSquareBracketKeyword_1_1()); } ( ( { newCompositeNode(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_2_0()); } lv_variables_3_0=ruleVLSVariable { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSExistentialQuantifierRule()); } add( $current, "variables", lv_variables_3_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSVariable"); afterParserOrEnumRuleCall(); } ) ) ( otherlv_4=',' { newLeafNode(otherlv_4, grammarAccess.getVLSExistentialQuantifierAccess().getCommaKeyword_1_3_0()); } ( ( { newCompositeNode(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_3_1_0()); } lv_variables_5_0=ruleVLSVariable { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSExistentialQuantifierRule()); } add( $current, "variables", lv_variables_5_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSVariable"); afterParserOrEnumRuleCall(); } ) ) )* otherlv_6=']' { newLeafNode(otherlv_6, grammarAccess.getVLSExistentialQuantifierAccess().getRightSquareBracketKeyword_1_4()); } otherlv_7=':' { newLeafNode(otherlv_7, grammarAccess.getVLSExistentialQuantifierAccess().getColonKeyword_1_5()); } ) ( ( { newCompositeNode(grammarAccess.getVLSExistentialQuantifierAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0()); } lv_operand_8_0=ruleVLSUnitaryFormula { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSExistentialQuantifierRule()); } set( $current, "operand", lv_operand_8_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnitaryFormula"); afterParserOrEnumRuleCall(); } ) ) ) ; // Entry rule entryRuleVLSUnaryNegation entryRuleVLSUnaryNegation returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSUnaryNegationRule()); } iv_ruleVLSUnaryNegation=ruleVLSUnaryNegation { $current=$iv_ruleVLSUnaryNegation.current; } EOF; // Rule VLSUnaryNegation ruleVLSUnaryNegation returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( ( { $current = forceCreateModelElement( grammarAccess.getVLSUnaryNegationAccess().getVLSUnaryNegationAction_0(), $current); } ) otherlv_1='~' { newLeafNode(otherlv_1, grammarAccess.getVLSUnaryNegationAccess().getTildeKeyword_1()); } ( ( { newCompositeNode(grammarAccess.getVLSUnaryNegationAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0()); } lv_operand_2_0=ruleVLSUnitaryFormula { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSUnaryNegationRule()); } set( $current, "operand", lv_operand_2_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnitaryFormula"); afterParserOrEnumRuleCall(); } ) ) ) ; // Entry rule entryRuleVLSUnaryInfix entryRuleVLSUnaryInfix returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSUnaryInfixRule()); } iv_ruleVLSUnaryInfix=ruleVLSUnaryInfix { $current=$iv_ruleVLSUnaryInfix.current; } EOF; // Rule VLSUnaryInfix ruleVLSUnaryInfix returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( { newCompositeNode(grammarAccess.getVLSUnaryInfixAccess().getVLSAtomicParserRuleCall_0()); } this_VLSAtomic_0=ruleVLSAtomic { $current = $this_VLSAtomic_0.current; afterParserOrEnumRuleCall(); } ( ( ( ( { $current = forceCreateModelElementAndSet( grammarAccess.getVLSUnaryInfixAccess().getVLSInequalityLeftAction_1_0_0_0(), $current); } ) otherlv_2='!=' { newLeafNode(otherlv_2, grammarAccess.getVLSUnaryInfixAccess().getExclamationMarkEqualsSignKeyword_1_0_0_1()); } ) | ( ( { $current = forceCreateModelElementAndSet( grammarAccess.getVLSUnaryInfixAccess().getVLSEqualityLeftAction_1_0_1_0(), $current); } ) otherlv_4='=' { newLeafNode(otherlv_4, grammarAccess.getVLSUnaryInfixAccess().getEqualsSignKeyword_1_0_1_1()); } ) | ( ( { $current = forceCreateModelElementAndSet( grammarAccess.getVLSUnaryInfixAccess().getVLSAssignmentLeftAction_1_0_2_0(), $current); } ) otherlv_6=':=' { newLeafNode(otherlv_6, grammarAccess.getVLSUnaryInfixAccess().getColonEqualsSignKeyword_1_0_2_1()); } ) ) ( ( { newCompositeNode(grammarAccess.getVLSUnaryInfixAccess().getRightVLSAtomicParserRuleCall_1_1_0()); } lv_right_7_0=ruleVLSAtomic { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSUnaryInfixRule()); } set( $current, "right", lv_right_7_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAtomic"); afterParserOrEnumRuleCall(); } ) ) )? ) ; // Entry rule entryRuleVLSAtomic entryRuleVLSAtomic returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSAtomicRule()); } iv_ruleVLSAtomic=ruleVLSAtomic { $current=$iv_ruleVLSAtomic.current; } EOF; // Rule VLSAtomic ruleVLSAtomic returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( { newCompositeNode(grammarAccess.getVLSAtomicAccess().getVLSAtomicConstantParserRuleCall_0()); } this_VLSAtomicConstant_0=ruleVLSAtomicConstant { $current = $this_VLSAtomicConstant_0.current; afterParserOrEnumRuleCall(); } | { newCompositeNode(grammarAccess.getVLSAtomicAccess().getVLSAtomicFunctionParserRuleCall_1()); } this_VLSAtomicFunction_1=ruleVLSAtomicFunction { $current = $this_VLSAtomicFunction_1.current; afterParserOrEnumRuleCall(); } | { newCompositeNode(grammarAccess.getVLSAtomicAccess().getVLSVariableParserRuleCall_2()); } this_VLSVariable_2=ruleVLSVariable { $current = $this_VLSVariable_2.current; afterParserOrEnumRuleCall(); } | { newCompositeNode(grammarAccess.getVLSAtomicAccess().getVLSDefinedTermParserRuleCall_3()); } this_VLSDefinedTerm_3=ruleVLSDefinedTerm { $current = $this_VLSDefinedTerm_3.current; afterParserOrEnumRuleCall(); } ) ; // Entry rule entryRuleVLSAtomicConstant entryRuleVLSAtomicConstant returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSAtomicConstantRule()); } iv_ruleVLSAtomicConstant=ruleVLSAtomicConstant { $current=$iv_ruleVLSAtomicConstant.current; } EOF; // Rule VLSAtomicConstant ruleVLSAtomicConstant returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( ( ( { $current = forceCreateModelElement( grammarAccess.getVLSAtomicConstantAccess().getVLSConstantAction_0_0(), $current); } ) ( ( ( lv_name_1_1=RULE_LOWER_WORD_ID { newLeafNode(lv_name_1_1, grammarAccess.getVLSAtomicConstantAccess().getNameLOWER_WORD_IDTerminalRuleCall_0_1_0_0()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSAtomicConstantRule()); } setWithLastConsumed( $current, "name", lv_name_1_1, "ca.mcgill.ecse.dslreasoner.VampireLanguage.LOWER_WORD_ID"); } | lv_name_1_2=RULE_SINGLE_QUOTE { newLeafNode(lv_name_1_2, grammarAccess.getVLSAtomicConstantAccess().getNameSINGLE_QUOTETerminalRuleCall_0_1_0_1()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSAtomicConstantRule()); } setWithLastConsumed( $current, "name", lv_name_1_2, "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_QUOTE"); } | lv_name_1_3=RULE_DOLLAR_ID { newLeafNode(lv_name_1_3, grammarAccess.getVLSAtomicConstantAccess().getNameDOLLAR_IDTerminalRuleCall_0_1_0_2()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSAtomicConstantRule()); } setWithLastConsumed( $current, "name", lv_name_1_3, "ca.mcgill.ecse.dslreasoner.VampireLanguage.DOLLAR_ID"); } | lv_name_1_4=RULE_DOUBLE_DOLLAR_ID { newLeafNode(lv_name_1_4, grammarAccess.getVLSAtomicConstantAccess().getNameDOUBLE_DOLLAR_IDTerminalRuleCall_0_1_0_3()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSAtomicConstantRule()); } setWithLastConsumed( $current, "name", lv_name_1_4, "ca.mcgill.ecse.dslreasoner.VampireLanguage.DOUBLE_DOLLAR_ID"); } | { newCompositeNode(grammarAccess.getVLSAtomicConstantAccess().getNameVLSRoleParserRuleCall_0_1_0_4()); } lv_name_1_5=ruleVLSRole { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSAtomicConstantRule()); } set( $current, "name", lv_name_1_5, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSRole"); afterParserOrEnumRuleCall(); } ) ) ) ) | ( ( { $current = forceCreateModelElement( grammarAccess.getVLSAtomicConstantAccess().getVLSTrueAction_1_0(), $current); } ) otherlv_3='$true' { newLeafNode(otherlv_3, grammarAccess.getVLSAtomicConstantAccess().getTrueKeyword_1_1()); } ) | ( ( { $current = forceCreateModelElement( grammarAccess.getVLSAtomicConstantAccess().getVLSFalseAction_2_0(), $current); } ) otherlv_5='$false' { newLeafNode(otherlv_5, grammarAccess.getVLSAtomicConstantAccess().getFalseKeyword_2_1()); } ) ) ; // Entry rule entryRuleVLSAtomicFunction entryRuleVLSAtomicFunction returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSAtomicFunctionRule()); } iv_ruleVLSAtomicFunction=ruleVLSAtomicFunction { $current=$iv_ruleVLSAtomicFunction.current; } EOF; // Rule VLSAtomicFunction ruleVLSAtomicFunction returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( ( ( { $current = forceCreateModelElement( grammarAccess.getVLSAtomicFunctionAccess().getVLSFunctionAction_0_0(), $current); } ) ( ( ( lv_constant_1_1=RULE_LOWER_WORD_ID { newLeafNode(lv_constant_1_1, grammarAccess.getVLSAtomicFunctionAccess().getConstantLOWER_WORD_IDTerminalRuleCall_0_1_0_0()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSAtomicFunctionRule()); } setWithLastConsumed( $current, "constant", lv_constant_1_1, "ca.mcgill.ecse.dslreasoner.VampireLanguage.LOWER_WORD_ID"); } | lv_constant_1_2=RULE_SINGLE_QUOTE { newLeafNode(lv_constant_1_2, grammarAccess.getVLSAtomicFunctionAccess().getConstantSINGLE_QUOTETerminalRuleCall_0_1_0_1()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSAtomicFunctionRule()); } setWithLastConsumed( $current, "constant", lv_constant_1_2, "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_QUOTE"); } | lv_constant_1_3=RULE_DOLLAR_ID { newLeafNode(lv_constant_1_3, grammarAccess.getVLSAtomicFunctionAccess().getConstantDOLLAR_IDTerminalRuleCall_0_1_0_2()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSAtomicFunctionRule()); } setWithLastConsumed( $current, "constant", lv_constant_1_3, "ca.mcgill.ecse.dslreasoner.VampireLanguage.DOLLAR_ID"); } | lv_constant_1_4=RULE_DOUBLE_DOLLAR_ID { newLeafNode(lv_constant_1_4, grammarAccess.getVLSAtomicFunctionAccess().getConstantDOUBLE_DOLLAR_IDTerminalRuleCall_0_1_0_3()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSAtomicFunctionRule()); } setWithLastConsumed( $current, "constant", lv_constant_1_4, "ca.mcgill.ecse.dslreasoner.VampireLanguage.DOUBLE_DOLLAR_ID"); } | { newCompositeNode(grammarAccess.getVLSAtomicFunctionAccess().getConstantVLSRoleParserRuleCall_0_1_0_4()); } lv_constant_1_5=ruleVLSRole { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSAtomicFunctionRule()); } set( $current, "constant", lv_constant_1_5, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSRole"); afterParserOrEnumRuleCall(); } ) ) ) ( otherlv_2='(' { newLeafNode(otherlv_2, grammarAccess.getVLSAtomicFunctionAccess().getLeftParenthesisKeyword_0_2_0()); } ( ( { newCompositeNode(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_0_2_1_0()); } lv_terms_3_0=ruleVLSFofTerm { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSAtomicFunctionRule()); } add( $current, "terms", lv_terms_3_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm"); afterParserOrEnumRuleCall(); } ) ) ( otherlv_4=',' { newLeafNode(otherlv_4, grammarAccess.getVLSAtomicFunctionAccess().getCommaKeyword_0_2_2_0()); } ( ( { newCompositeNode(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_0_2_2_1_0()); } lv_terms_5_0=ruleVLSFofTerm { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSAtomicFunctionRule()); } add( $current, "terms", lv_terms_5_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm"); afterParserOrEnumRuleCall(); } ) ) )* otherlv_6=')' { newLeafNode(otherlv_6, grammarAccess.getVLSAtomicFunctionAccess().getRightParenthesisKeyword_0_2_3()); } ) ) | ( ( { $current = forceCreateModelElement( grammarAccess.getVLSAtomicFunctionAccess().getVLSLessAction_1_0(), $current); } ) ( ( lv_name_8_0='$less' { newLeafNode(lv_name_8_0, grammarAccess.getVLSAtomicFunctionAccess().getNameLessKeyword_1_1_0()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSAtomicFunctionRule()); } setWithLastConsumed($current, "name", lv_name_8_0, "\$less"); } ) ) otherlv_9='(' { newLeafNode(otherlv_9, grammarAccess.getVLSAtomicFunctionAccess().getLeftParenthesisKeyword_1_2()); } ( ( { newCompositeNode(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_1_3_0()); } lv_terms_10_0=ruleVLSFofTerm { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSAtomicFunctionRule()); } add( $current, "terms", lv_terms_10_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm"); afterParserOrEnumRuleCall(); } ) ) otherlv_11=',' { newLeafNode(otherlv_11, grammarAccess.getVLSAtomicFunctionAccess().getCommaKeyword_1_4()); } ( ( { newCompositeNode(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_1_5_0()); } lv_terms_12_0=ruleVLSFofTerm { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSAtomicFunctionRule()); } add( $current, "terms", lv_terms_12_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm"); afterParserOrEnumRuleCall(); } ) ) otherlv_13=')' { newLeafNode(otherlv_13, grammarAccess.getVLSAtomicFunctionAccess().getRightParenthesisKeyword_1_6()); } ) ) ; // Entry rule entryRuleVLSVariable entryRuleVLSVariable returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSVariableRule()); } iv_ruleVLSVariable=ruleVLSVariable { $current=$iv_ruleVLSVariable.current; } EOF; // Rule VLSVariable ruleVLSVariable returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( ( lv_name_0_0=RULE_UPPER_WORD_ID { newLeafNode(lv_name_0_0, grammarAccess.getVLSVariableAccess().getNameUPPER_WORD_IDTerminalRuleCall_0()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSVariableRule()); } setWithLastConsumed( $current, "name", lv_name_0_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.UPPER_WORD_ID"); } ) ) ; // Entry rule entryRuleVLSFofTerm entryRuleVLSFofTerm returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSFofTermRule()); } iv_ruleVLSFofTerm=ruleVLSFofTerm { $current=$iv_ruleVLSFofTerm.current; } EOF; // Rule VLSFofTerm ruleVLSFofTerm returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( { newCompositeNode(grammarAccess.getVLSFofTermAccess().getVLSVariableParserRuleCall_0()); } this_VLSVariable_0=ruleVLSVariable { $current = $this_VLSVariable_0.current; afterParserOrEnumRuleCall(); } | { newCompositeNode(grammarAccess.getVLSFofTermAccess().getVLSFunctionAsTermParserRuleCall_1()); } this_VLSFunctionAsTerm_1=ruleVLSFunctionAsTerm { $current = $this_VLSFunctionAsTerm_1.current; afterParserOrEnumRuleCall(); } | { newCompositeNode(grammarAccess.getVLSFofTermAccess().getVLSDefinedTermParserRuleCall_2()); } this_VLSDefinedTerm_2=ruleVLSDefinedTerm { $current = $this_VLSDefinedTerm_2.current; afterParserOrEnumRuleCall(); } ) ; // Entry rule entryRuleVLSFunctionAsTerm entryRuleVLSFunctionAsTerm returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSFunctionAsTermRule()); } iv_ruleVLSFunctionAsTerm=ruleVLSFunctionAsTerm { $current=$iv_ruleVLSFunctionAsTerm.current; } EOF; // Rule VLSFunctionAsTerm ruleVLSFunctionAsTerm returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( ( ( ( lv_functor_0_1=RULE_LOWER_WORD_ID { newLeafNode(lv_functor_0_1, grammarAccess.getVLSFunctionAsTermAccess().getFunctorLOWER_WORD_IDTerminalRuleCall_0_0_0()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSFunctionAsTermRule()); } setWithLastConsumed( $current, "functor", lv_functor_0_1, "ca.mcgill.ecse.dslreasoner.VampireLanguage.LOWER_WORD_ID"); } | lv_functor_0_2=RULE_SINGLE_QUOTE { newLeafNode(lv_functor_0_2, grammarAccess.getVLSFunctionAsTermAccess().getFunctorSINGLE_QUOTETerminalRuleCall_0_0_1()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSFunctionAsTermRule()); } setWithLastConsumed( $current, "functor", lv_functor_0_2, "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_QUOTE"); } | lv_functor_0_3=RULE_DOLLAR_ID { newLeafNode(lv_functor_0_3, grammarAccess.getVLSFunctionAsTermAccess().getFunctorDOLLAR_IDTerminalRuleCall_0_0_2()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSFunctionAsTermRule()); } setWithLastConsumed( $current, "functor", lv_functor_0_3, "ca.mcgill.ecse.dslreasoner.VampireLanguage.DOLLAR_ID"); } | lv_functor_0_4=RULE_DOUBLE_DOLLAR_ID { newLeafNode(lv_functor_0_4, grammarAccess.getVLSFunctionAsTermAccess().getFunctorDOUBLE_DOLLAR_IDTerminalRuleCall_0_0_3()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSFunctionAsTermRule()); } setWithLastConsumed( $current, "functor", lv_functor_0_4, "ca.mcgill.ecse.dslreasoner.VampireLanguage.DOUBLE_DOLLAR_ID"); } ) ) ) ( otherlv_1='(' { newLeafNode(otherlv_1, grammarAccess.getVLSFunctionAsTermAccess().getLeftParenthesisKeyword_1_0()); } ( ( { newCompositeNode(grammarAccess.getVLSFunctionAsTermAccess().getTermsVLSFofTermParserRuleCall_1_1_0()); } lv_terms_2_0=ruleVLSFofTerm { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSFunctionAsTermRule()); } add( $current, "terms", lv_terms_2_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm"); afterParserOrEnumRuleCall(); } ) ) ( otherlv_3=',' { newLeafNode(otherlv_3, grammarAccess.getVLSFunctionAsTermAccess().getCommaKeyword_1_2_0()); } ( ( { newCompositeNode(grammarAccess.getVLSFunctionAsTermAccess().getTermsVLSFofTermParserRuleCall_1_2_1_0()); } lv_terms_4_0=ruleVLSFofTerm { if ($current==null) { $current = createModelElementForParent(grammarAccess.getVLSFunctionAsTermRule()); } add( $current, "terms", lv_terms_4_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm"); afterParserOrEnumRuleCall(); } ) ) )* otherlv_5=')' { newLeafNode(otherlv_5, grammarAccess.getVLSFunctionAsTermAccess().getRightParenthesisKeyword_1_3()); } )? ) ; // Entry rule entryRuleVLSDefinedTerm entryRuleVLSDefinedTerm returns [EObject current=null]: { newCompositeNode(grammarAccess.getVLSDefinedTermRule()); } iv_ruleVLSDefinedTerm=ruleVLSDefinedTerm { $current=$iv_ruleVLSDefinedTerm.current; } EOF; // Rule VLSDefinedTerm ruleVLSDefinedTerm returns [EObject current=null] @init { enterRule(); } @after { leaveRule(); }: ( ( ( { $current = forceCreateModelElement( grammarAccess.getVLSDefinedTermAccess().getVLSIntAction_0_0(), $current); } ) ( ( lv_value_1_0=RULE_SIGNED_LITERAL { newLeafNode(lv_value_1_0, grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_LITERALTerminalRuleCall_0_1_0()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSDefinedTermRule()); } setWithLastConsumed( $current, "value", lv_value_1_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.SIGNED_LITERAL"); } ) ) ) | ( ( { $current = forceCreateModelElement( grammarAccess.getVLSDefinedTermAccess().getVLSRealAction_1_0(), $current); } ) ( ( lv_value_3_0=RULE_SIGNED_REAL_ID { newLeafNode(lv_value_3_0, grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_REAL_IDTerminalRuleCall_1_1_0()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSDefinedTermRule()); } setWithLastConsumed( $current, "value", lv_value_3_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.SIGNED_REAL_ID"); } ) ) ) | ( ( { $current = forceCreateModelElement( grammarAccess.getVLSDefinedTermAccess().getVLSRationalAction_2_0(), $current); } ) ( ( lv_value_5_0=RULE_SIGNED_RAT_ID { newLeafNode(lv_value_5_0, grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_RAT_IDTerminalRuleCall_2_1_0()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSDefinedTermRule()); } setWithLastConsumed( $current, "value", lv_value_5_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.SIGNED_RAT_ID"); } ) ) ) | ( ( { $current = forceCreateModelElement( grammarAccess.getVLSDefinedTermAccess().getVLSDoubleQuoteAction_3_0(), $current); } ) ( ( lv_value_7_0=RULE_DOUBLE_QUOTE { newLeafNode(lv_value_7_0, grammarAccess.getVLSDefinedTermAccess().getValueDOUBLE_QUOTETerminalRuleCall_3_1_0()); } { if ($current==null) { $current = createModelElement(grammarAccess.getVLSDefinedTermRule()); } setWithLastConsumed( $current, "value", lv_value_7_0, "ca.mcgill.ecse.dslreasoner.VampireLanguage.DOUBLE_QUOTE"); } ) ) ) ) ; fragment RULE_ALPHA_NUMERIC : ('a'..'z'|'A'..'Z'|'0'..'9'|'_'); RULE_UPPER_WORD_ID : 'A'..'Z' RULE_ALPHA_NUMERIC*; RULE_LOWER_WORD_ID : 'a'..'z' RULE_ALPHA_NUMERIC*; RULE_DOUBLE_QUOTE : '"' ('\\' ('"'|'\\')|~(('\\'|'"')))* '"'; RULE_SINGLE_QUOTE : '\'' ('\\' ('\''|'\\')|~(('\\'|'\'')))+ '\''; fragment RULE_SIGN : ('+'|'-'); RULE_DOLLAR_ID : '$' RULE_LOWER_WORD_ID; RULE_DOUBLE_DOLLAR_ID : '$$' RULE_LOWER_WORD_ID; RULE_LITERAL : ('0'|'1'..'9' RULE_INT?); RULE_SIGNED_LITERAL : RULE_SIGN* RULE_LITERAL; fragment RULE_UNSIGNED_REAL_FRAC_ID : RULE_LITERAL '.' RULE_INT; fragment RULE_UNSIGNED_REAL_EXP_ID : (RULE_LITERAL|RULE_UNSIGNED_REAL_FRAC_ID) 'Ee' RULE_SIGN* RULE_INT; RULE_SIGNED_REAL_ID : RULE_SIGN* (RULE_UNSIGNED_REAL_FRAC_ID|RULE_UNSIGNED_REAL_EXP_ID); fragment RULE_UNSIGNED_RAT_ID : RULE_LITERAL '/' '1'..'9' RULE_INT?; RULE_SIGNED_RAT_ID : RULE_SIGN* RULE_UNSIGNED_RAT_ID; fragment RULE_ID : ~(('\n'|'\r'))*; fragment RULE_ANY_OTHER : RULE_ID; RULE_SINGLE_COMMENT : RULE_ANY_OTHER; fragment RULE_INT : ('0'..'9')+; RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\''); RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/'; RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?; RULE_WS : (' '|'\t'|'\r'|'\n')+;