From 20f131a3f09edf8e1455f20b4f486629147e7eff Mon Sep 17 00:00:00 2001 From: ArenBabikian Date: Tue, 15 Jan 2019 12:44:33 -0500 Subject: Initial workspace setup --- .../.classpath | 7 + .../.project | 29 + .../META-INF/MANIFEST.MF | 7 + .../model/logic2vampire.aird | 30 + .../model/logic2vampire.ecore | 4 + .../model/logic2vampire.genmodel | 14 + .../.classpath | 9 + .../.gitignore | 1 + .../.project | 34 + .../.settings/org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 15 + .../build.properties | 6 + .../META-INF/services/org.eclipse.xtext.ISetup | 1 + .../ide/AbstractVampireLanguageIdeModule.java | 47 + .../PartialVampireLanguageContentAssistParser.java | 34 + .../contentassist/antlr/VampireLanguageParser.java | 157 + .../antlr/internal/InternalVampireLanguage.g | 5782 ++++++ .../antlr/internal/InternalVampireLanguage.tokens | 107 + .../internal/InternalVampireLanguageLexer.java | 3100 ++++ .../internal/InternalVampireLanguageParser.java | 17577 +++++++++++++++++++ .../dslreasoner/ide/VampireLanguageIdeModule.xtend | 11 + .../dslreasoner/ide/VampireLanguageIdeSetup.xtend | 20 + .../ide/.VampireLanguageIdeModule.xtendbin | Bin 0 -> 1683 bytes .../ide/.VampireLanguageIdeSetup.xtendbin | Bin 0 -> 2509 bytes .../ca/mcgill/ecse/dslreasoner/ide/.gitignore | 2 + .../dslreasoner/ide/VampireLanguageIdeModule.java | 13 + .../dslreasoner/ide/VampireLanguageIdeSetup.java | 24 + .../.classpath | 9 + .../.gitignore | 1 + .../.project | 34 + .../.settings/org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 21 + .../build.properties | 6 + .../tests/VampireLanguageInjectorProvider.java | 66 + .../tests/VampireLanguageParsingTest.xtend | 29 + .../tests/.VampireLanguageParsingTest.xtendbin | Bin 0 -> 3283 bytes .../ca/mcgill/ecse/dslreasoner/tests/.gitignore | 1 + .../tests/VampireLanguageParsingTest.java | 38 + .../.classpath | 9 + .../.gitignore | 1 + .../.project | 34 + .../.settings/org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 24 + .../build.properties | 6 + .../tests/VampireLanguageUiInjectorProvider.java | 17 + .../.classpath | 9 + .../.gitignore | 1 + .../.project | 34 + .../.settings/org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 25 + .../build.properties | 7 + .../plugin.xml | 410 + .../ui/AbstractVampireLanguageUiModule.java | 286 + .../VampireLanguageExecutableExtensionFactory.java | 27 + .../AbstractVampireLanguageProposalProvider.java | 289 + .../language/ui/internal/LanguageActivator.java | 93 + .../dslreasoner/ui/VampireLanguageUiModule.xtend | 13 + .../VampireLanguageProposalProvider.xtend | 12 + .../VampireLanguageDescriptionLabelProvider.xtend | 24 + .../ui/labeling/VampireLanguageLabelProvider.xtend | 31 + .../VampireLanguageOutlineTreeProvider.xtend | 15 + .../quickfix/VampireLanguageQuickfixProvider.xtend | 24 + .../ui/.VampireLanguageUiModule.xtendbin | Bin 0 -> 2349 bytes .../ca/mcgill/ecse/dslreasoner/ui/.gitignore | 1 + .../dslreasoner/ui/VampireLanguageUiModule.java | 19 + .../.VampireLanguageProposalProvider.xtendbin | Bin 0 -> 1787 bytes .../ecse/dslreasoner/ui/contentassist/.gitignore | 1 + .../VampireLanguageProposalProvider.java | 14 + ...ampireLanguageDescriptionLabelProvider.xtendbin | Bin 0 -> 1969 bytes .../.VampireLanguageLabelProvider.xtendbin | Bin 0 -> 2409 bytes .../mcgill/ecse/dslreasoner/ui/labeling/.gitignore | 2 + .../VampireLanguageDescriptionLabelProvider.java | 15 + .../ui/labeling/VampireLanguageLabelProvider.java | 21 + .../.VampireLanguageOutlineTreeProvider.xtendbin | Bin 0 -> 1821 bytes .../mcgill/ecse/dslreasoner/ui/outline/.gitignore | 1 + .../VampireLanguageOutlineTreeProvider.java | 15 + .../.VampireLanguageQuickfixProvider.xtendbin | Bin 0 -> 1783 bytes .../mcgill/ecse/dslreasoner/ui/quickfix/.gitignore | 1 + .../quickfix/VampireLanguageQuickfixProvider.java | 15 + .../.classpath | 9 + .../.gitignore | 1 + ...eLanguage (tptp) Language Infrastructure.launch | 18 + .../.launch/Launch Runtime Eclipse.launch | 34 + .../.project | 34 + .../.settings/org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 29 + .../build.properties | 20 + .../model/generated/VampireLanguage.ecore | 152 + .../model/generated/VampireLanguage.genmodel | 119 + .../plugin.xml | 10 + .../AbstractVampireLanguageRuntimeModule.java | 194 + .../ecse/dslreasoner/VampireLanguage.xtextbin | Bin 0 -> 7807 bytes .../VampireLanguageStandaloneSetupGenerated.java | 42 + .../VampireLanguageAntlrTokenFileProvider.java | 16 + .../parser/antlr/VampireLanguageParser.java | 40 + .../antlr/internal/InternalVampireLanguage.g | 2669 +++ .../antlr/internal/InternalVampireLanguage.tokens | 107 + .../internal/InternalVampireLanguageLexer.java | 3100 ++++ .../internal/InternalVampireLanguageParser.java | 7031 ++++++++ .../AbstractVampireLanguageScopeProvider.java | 9 + .../VampireLanguageSemanticSequencer.java | 1011 ++ .../VampireLanguageSyntacticSequencer.java | 151 + .../services/VampireLanguageGrammarAccess.java | 2220 +++ .../AbstractVampireLanguageValidator.java | 20 + .../ecse/dslreasoner/vampireLanguage/VLSAnd.java | 78 + .../dslreasoner/vampireLanguage/VLSAnnotation.java | 98 + .../dslreasoner/vampireLanguage/VLSAssignment.java | 78 + .../dslreasoner/vampireLanguage/VLSComment.java | 52 + .../dslreasoner/vampireLanguage/VLSConstant.java | 51 + .../vampireLanguage/VLSDefinedTerm.java | 51 + .../vampireLanguage/VLSDoubleQuote.java | 19 + .../dslreasoner/vampireLanguage/VLSEquality.java | 78 + .../dslreasoner/vampireLanguage/VLSEquivalent.java | 78 + .../vampireLanguage/VLSExistentialQuantifier.java | 69 + .../ecse/dslreasoner/vampireLanguage/VLSFalse.java | 19 + .../dslreasoner/vampireLanguage/VLSFofFormula.java | 133 + .../dslreasoner/vampireLanguage/VLSFunction.java | 69 + .../vampireLanguage/VLSFunctionFof.java | 69 + .../dslreasoner/vampireLanguage/VLSImplies.java | 78 + .../dslreasoner/vampireLanguage/VLSInclude.java | 71 + .../dslreasoner/vampireLanguage/VLSInequality.java | 78 + .../ecse/dslreasoner/vampireLanguage/VLSInt.java | 19 + .../ecse/dslreasoner/vampireLanguage/VLSLess.java | 69 + .../ecse/dslreasoner/vampireLanguage/VLSName.java | 52 + .../ecse/dslreasoner/vampireLanguage/VLSNand.java | 78 + .../ecse/dslreasoner/vampireLanguage/VLSNor.java | 78 + .../ecse/dslreasoner/vampireLanguage/VLSOr.java | 78 + .../dslreasoner/vampireLanguage/VLSRational.java | 19 + .../ecse/dslreasoner/vampireLanguage/VLSReal.java | 19 + .../dslreasoner/vampireLanguage/VLSRevImplies.java | 78 + .../ecse/dslreasoner/vampireLanguage/VLSTerm.java | 20 + .../ecse/dslreasoner/vampireLanguage/VLSTrue.java | 19 + .../vampireLanguage/VLSUnaryNegation.java | 51 + .../vampireLanguage/VLSUniversalQuantifier.java | 69 + .../dslreasoner/vampireLanguage/VLSVariable.java | 51 + .../ecse/dslreasoner/vampireLanguage/VLSXnor.java | 78 + .../vampireLanguage/VampireLanguageFactory.java | 332 + .../vampireLanguage/VampireLanguagePackage.java | 2809 +++ .../dslreasoner/vampireLanguage/VampireModel.java | 78 + .../vampireLanguage/impl/VLSAndImpl.java | 265 + .../vampireLanguage/impl/VLSAnnotationImpl.java | 311 + .../vampireLanguage/impl/VLSAssignmentImpl.java | 265 + .../vampireLanguage/impl/VLSCommentImpl.java | 178 + .../vampireLanguage/impl/VLSConstantImpl.java | 177 + .../vampireLanguage/impl/VLSDefinedTermImpl.java | 177 + .../vampireLanguage/impl/VLSDoubleQuoteImpl.java | 41 + .../vampireLanguage/impl/VLSEqualityImpl.java | 265 + .../vampireLanguage/impl/VLSEquivalentImpl.java | 265 + .../impl/VLSExistentialQuantifierImpl.java | 241 + .../vampireLanguage/impl/VLSFalseImpl.java | 41 + .../vampireLanguage/impl/VLSFofFormulaImpl.java | 394 + .../vampireLanguage/impl/VLSFunctionFofImpl.java | 240 + .../vampireLanguage/impl/VLSFunctionImpl.java | 240 + .../vampireLanguage/impl/VLSImpliesImpl.java | 265 + .../vampireLanguage/impl/VLSIncludeImpl.java | 241 + .../vampireLanguage/impl/VLSInequalityImpl.java | 265 + .../vampireLanguage/impl/VLSIntImpl.java | 41 + .../vampireLanguage/impl/VLSLessImpl.java | 240 + .../vampireLanguage/impl/VLSNameImpl.java | 178 + .../vampireLanguage/impl/VLSNandImpl.java | 265 + .../vampireLanguage/impl/VLSNorImpl.java | 265 + .../vampireLanguage/impl/VLSOrImpl.java | 265 + .../vampireLanguage/impl/VLSRationalImpl.java | 41 + .../vampireLanguage/impl/VLSRealImpl.java | 41 + .../vampireLanguage/impl/VLSRevImpliesImpl.java | 265 + .../vampireLanguage/impl/VLSTermImpl.java | 43 + .../vampireLanguage/impl/VLSTrueImpl.java | 41 + .../vampireLanguage/impl/VLSUnaryNegationImpl.java | 194 + .../impl/VLSUniversalQuantifierImpl.java | 241 + .../vampireLanguage/impl/VLSVariableImpl.java | 177 + .../vampireLanguage/impl/VLSXnorImpl.java | 265 + .../impl/VampireLanguageFactoryImpl.java | 491 + .../impl/VampireLanguagePackageImpl.java | 1505 ++ .../vampireLanguage/impl/VampireModelImpl.java | 246 + .../util/VampireLanguageAdapterFactory.java | 773 + .../util/VampireLanguageSwitch.java | 886 + .../ecse/dslreasoner/GenerateVampireLanguage.mwe2 | 44 + .../mcgill/ecse/dslreasoner/VampireLanguage.xtext | 278 + .../dslreasoner/VampireLanguageRuntimeModule.xtend | 11 + .../VampireLanguageStandaloneSetup.xtend | 15 + .../generator/VampireLanguageGenerator.xtend | 25 + .../scoping/VampireLanguageScopeProvider.xtend | 15 + .../validation/VampireLanguageValidator.xtend | 25 + .../.VampireLanguageRuntimeModule.xtendbin | Bin 0 -> 1712 bytes .../.VampireLanguageStandaloneSetup.xtendbin | Bin 0 -> 1986 bytes .../ca/mcgill/ecse/dslreasoner/.gitignore | 2 + .../dslreasoner/VampireLanguageRuntimeModule.java | 13 + .../VampireLanguageStandaloneSetup.java | 16 + .../generator/.VampireLanguageGenerator.xtendbin | Bin 0 -> 2342 bytes .../mcgill/ecse/dslreasoner/generator/.gitignore | 1 + .../generator/VampireLanguageGenerator.java | 21 + .../scoping/.VampireLanguageScopeProvider.xtendbin | Bin 0 -> 1755 bytes .../ca/mcgill/ecse/dslreasoner/scoping/.gitignore | 1 + .../scoping/VampireLanguageScopeProvider.java | 16 + .../validation/.VampireLanguageValidator.xtendbin | Bin 0 -> 1740 bytes .../mcgill/ecse/dslreasoner/validation/.gitignore | 1 + .../validation/VampireLanguageValidator.java | 15 + .../.classpath | 8 + .../.gitignore | 1 + .../.project | 40 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 15 + .../build.properties | 6 + .../plugin.xml | 18 + .../ecse/dslreasoner/vampire/queries/.gitignore | 13 + .../ecse/dslreasoner/vampire/queries/VLSAnd.java | 533 + .../dslreasoner/vampire/queries/VLSAnnotation.java | 533 + .../dslreasoner/vampire/queries/VLSComment.java | 533 + .../dslreasoner/vampire/queries/VLSEquivalent.java | 533 + .../vampire/queries/VLSExistentialQuantifier.java | 533 + .../dslreasoner/vampire/queries/VLSFofFormula.java | 533 + .../dslreasoner/vampire/queries/VLSFunction.java | 533 + .../vampire/queries/VLSFunctionFof.java | 533 + .../dslreasoner/vampire/queries/VLSInequality.java | 533 + .../ecse/dslreasoner/vampire/queries/VLSOr.java | 535 + .../vampire/queries/VLSUnaryNegation.java | 533 + .../vampire/queries/VLSUniversalQuantifier.java | 533 + .../vampire/queries/VampireQueries.java | 174 + .../dslreasoner/vampire/queries/vampireQueries.vql | 57 + .../.classpath | 9 + .../.gitignore | 1 + .../.project | 34 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 17 + .../build.properties | 4 + .../vampire/reasoner/queries/signatureQueries.vql | 1 + .../vampire/reasoner/queries/typeQueries.vql | 1 + .../reasoner/VampireAnalyzerConfiguration.xtend | 22 + .../vampire/reasoner/VampireSolver.xtend | 102 + .../builder/Logic2VampireLanguageMapper.xtend | 386 + .../builder/Logic2VampireLanguageMapperTrace.xtend | 39 + ...ogic2VampireLanguageMapper_ConstantMapper.xtend | 42 + ...ogic2VampireLanguageMapper_RelationMapper.xtend | 183 + .../Logic2VampireLanguageMapper_Support.xtend | 148 + .../Logic2VampireLanguageMapper_TypeMapper.xtend | 19 + ...guageMapper_TypeMapperTrace_FilteredTypes.xtend | 21 + ...reLanguageMapper_TypeMapper_FilteredTypes.xtend | 158 + ...ireModelInterpretation_TypeInterpretation.xtend | 5 + ...retation_TypeInterpretation_FilteredTypes.xtend | 5 + .../.VampireAnalyzerConfiguration.xtendbin | Bin 0 -> 2685 bytes .../vampire/reasoner/.VampireSolver.xtendbin | Bin 0 -> 5463 bytes .../ecse/dslreasoner/vampire/reasoner/.gitignore | 4 + .../vampire/reasoner/TypeMappingTechnique.java | 6 + .../vampire/reasoner/VampireBackendSolver.java | 5 + .../vampire/reasoner/VampireSolver.java | 80 + .../reasoner/VampireSolverConfiguration.java | 10 + .../builder/.Logic2VampireLanguageMapper.xtendbin | Bin 0 -> 17674 bytes .../.Logic2VampireLanguageMapperTrace.xtendbin | Bin 0 -> 3140 bytes ...c2VampireLanguageMapper_ConstantMapper.xtendbin | Bin 0 -> 3164 bytes ...c2VampireLanguageMapper_RelationMapper.xtendbin | Bin 0 -> 8247 bytes .../.Logic2VampireLanguageMapper_Support.xtendbin | Bin 0 -> 9398 bytes ...Logic2VampireLanguageMapper_TypeMapper.xtendbin | Bin 0 -> 3224 bytes ...geMapper_TypeMapperTrace_FilteredTypes.xtendbin | Bin 0 -> 2742 bytes ...anguageMapper_TypeMapper_FilteredTypes.xtendbin | Bin 0 -> 9278 bytes ...ModelInterpretation_TypeInterpretation.xtendbin | Bin 0 -> 1490 bytes ...ation_TypeInterpretation_FilteredTypes.xtendbin | Bin 0 -> 1691 bytes .../vampire/reasoner/builder/.gitignore | 11 + .../builder/Logic2VampireLanguageMapper.java | 442 + .../builder/Logic2VampireLanguageMapperTrace.java | 34 + ...Logic2VampireLanguageMapper_ConstantMapper.java | 34 + ...Logic2VampireLanguageMapper_RelationMapper.java | 296 + .../Logic2VampireLanguageMapper_Support.java | 242 + .../Logic2VampireLanguageMapper_TypeMapper.java | 25 + ...ogic2VampireLanguageMapper_TypeMapperTrace.java | 5 + ...nguageMapper_TypeMapperTrace_FilteredTypes.java | 21 + ...ireLanguageMapper_TypeMapper_FilteredTypes.java | 287 + ...pireModelInterpretation_TypeInterpretation.java | 5 + ...pretation_TypeInterpretation_FilteredTypes.java | 7 + .../.classpath | 8 + .../.gitignore | 1 + .../.project | 34 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 20 + .../build.properties | 4 + .../initialModels/FAM.xmi | 3 + .../initialModels/Yakindu.xmi | 4 + .../initialModels/ecore.xmi | 6 + .../initialModels/fs.xmi | 3 + .../output/files/logProb.logicproblem | 27 + .../output/files/vampireCode.tptp | 1 + .../ecse/dslreasoner/vampire/test/SimpleRun.xtend | 213 + .../dslreasoner/vampire/test/VampireTest.xtend | 153 + .../dslreasoner/vampire/test/.SimpleRun.xtendbin | Bin 0 -> 687 bytes .../dslreasoner/vampire/test/.VampireTest.xtendbin | Bin 0 -> 6302 bytes .../ecse/dslreasoner/vampire/test/.gitignore | 2 + .../ecse/dslreasoner/vampire/test/VampireTest.java | 140 + 291 files changed, 71893 insertions(+) create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/.classpath create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/.project create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/META-INF/MANIFEST.MF create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.aird create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.ecore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.genmodel create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/.classpath create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/.project create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/.settings/org.eclipse.core.resources.prefs create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/.settings/org.eclipse.jdt.core.prefs create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/META-INF/MANIFEST.MF create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/build.properties create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/AbstractVampireLanguageIdeModule.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/PartialVampireLanguageContentAssistParser.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/VampireLanguageParser.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/internal/InternalVampireLanguage.g create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/internal/InternalVampireLanguage.tokens create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/internal/InternalVampireLanguageLexer.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/internal/InternalVampireLanguageParser.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src/ca/mcgill/ecse/dslreasoner/ide/VampireLanguageIdeModule.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src/ca/mcgill/ecse/dslreasoner/ide/VampireLanguageIdeSetup.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/VampireLanguageIdeModule.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/VampireLanguageIdeSetup.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/.classpath create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/.project create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/.settings/org.eclipse.core.resources.prefs create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/.settings/org.eclipse.jdt.core.prefs create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/META-INF/MANIFEST.MF create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/build.properties create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/src-gen/ca/mcgill/ecse/dslreasoner/tests/VampireLanguageInjectorProvider.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/src/ca/mcgill/ecse/dslreasoner/tests/VampireLanguageParsingTest.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/xtend-gen/ca/mcgill/ecse/dslreasoner/tests/.VampireLanguageParsingTest.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/xtend-gen/ca/mcgill/ecse/dslreasoner/tests/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/xtend-gen/ca/mcgill/ecse/dslreasoner/tests/VampireLanguageParsingTest.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/.classpath create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/.project create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/.settings/org.eclipse.core.resources.prefs create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/.settings/org.eclipse.jdt.core.prefs create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/META-INF/MANIFEST.MF create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/build.properties create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/src-gen/ca/mcgill/ecse/dslreasoner/ui/tests/VampireLanguageUiInjectorProvider.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/.classpath create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/.project create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/.settings/org.eclipse.core.resources.prefs create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/.settings/org.eclipse.jdt.core.prefs create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/META-INF/MANIFEST.MF create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/build.properties create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/plugin.xml create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src-gen/ca/mcgill/ecse/dslreasoner/ui/AbstractVampireLanguageUiModule.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src-gen/ca/mcgill/ecse/dslreasoner/ui/VampireLanguageExecutableExtensionFactory.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/AbstractVampireLanguageProposalProvider.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src-gen/ca/mcgill/ecse/dslreasoner/vampire/language/ui/internal/LanguageActivator.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/VampireLanguageUiModule.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/contentassist/VampireLanguageProposalProvider.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/labeling/VampireLanguageDescriptionLabelProvider.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/labeling/VampireLanguageLabelProvider.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/outline/VampireLanguageOutlineTreeProvider.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/quickfix/VampireLanguageQuickfixProvider.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/VampireLanguageUiModule.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/VampireLanguageProposalProvider.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/VampireLanguageDescriptionLabelProvider.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/VampireLanguageLabelProvider.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/VampireLanguageOutlineTreeProvider.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/VampireLanguageQuickfixProvider.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.classpath create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.launch/Generate VampireLanguage (tptp) Language Infrastructure.launch create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.launch/Launch Runtime Eclipse.launch create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.project create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.settings/org.eclipse.core.resources.prefs create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.settings/org.eclipse.jdt.core.prefs create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/META-INF/MANIFEST.MF create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/build.properties create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/model/generated/VampireLanguage.ecore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/model/generated/VampireLanguage.genmodel create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/plugin.xml create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/AbstractVampireLanguageRuntimeModule.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/VampireLanguage.xtextbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/VampireLanguageStandaloneSetupGenerated.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/VampireLanguageAntlrTokenFileProvider.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/VampireLanguageParser.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/internal/InternalVampireLanguage.g create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/internal/InternalVampireLanguage.tokens create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/internal/InternalVampireLanguageLexer.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/internal/InternalVampireLanguageParser.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/scoping/AbstractVampireLanguageScopeProvider.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/serializer/VampireLanguageSemanticSequencer.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/serializer/VampireLanguageSyntacticSequencer.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/services/VampireLanguageGrammarAccess.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/validation/AbstractVampireLanguageValidator.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSAnd.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSAnnotation.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSAssignment.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSComment.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSConstant.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSDefinedTerm.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSDoubleQuote.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSEquality.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSEquivalent.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSExistentialQuantifier.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFalse.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFofFormula.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFunction.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFunctionFof.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSImplies.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSInclude.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSInequality.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSInt.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSLess.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSName.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSNand.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSNor.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSOr.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSRational.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSReal.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSRevImplies.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSTerm.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSTrue.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSUnaryNegation.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSUniversalQuantifier.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSVariable.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSXnor.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VampireLanguageFactory.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VampireLanguagePackage.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VampireModel.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSAndImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSAnnotationImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSAssignmentImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSCommentImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSConstantImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSDefinedTermImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSDoubleQuoteImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSEqualityImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSEquivalentImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSExistentialQuantifierImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFalseImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFofFormulaImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFunctionFofImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFunctionImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSImpliesImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSIncludeImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSInequalityImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSIntImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSLessImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSNameImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSNandImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSNorImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSOrImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSRationalImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSRealImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSRevImpliesImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSTermImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSTrueImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSUnaryNegationImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSUniversalQuantifierImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSVariableImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSXnorImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VampireLanguageFactoryImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VampireLanguagePackageImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VampireModelImpl.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/util/VampireLanguageAdapterFactory.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/util/VampireLanguageSwitch.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/GenerateVampireLanguage.mwe2 create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/VampireLanguage.xtext create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/VampireLanguageRuntimeModule.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/VampireLanguageStandaloneSetup.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/generator/VampireLanguageGenerator.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/scoping/VampireLanguageScopeProvider.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/validation/VampireLanguageValidator.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/VampireLanguageRuntimeModule.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/VampireLanguageStandaloneSetup.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/VampireLanguageGenerator.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/VampireLanguageScopeProvider.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/VampireLanguageValidator.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/.classpath create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/.project create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/.settings/org.eclipse.jdt.core.prefs create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/META-INF/MANIFEST.MF create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/build.properties create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/plugin.xml create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSAnd.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSAnnotation.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSComment.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSEquivalent.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSExistentialQuantifier.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFofFormula.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFunction.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFunctionFof.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSInequality.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSOr.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSUnaryNegation.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSUniversalQuantifier.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VampireQueries.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.classpath create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.project create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.settings/org.eclipse.jdt.core.prefs create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/META-INF/MANIFEST.MF create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/build.properties create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/queries/ca/mcgill/ecse/dslreasoner/vampire/reasoner/queries/signatureQueries.vql create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/queries/ca/mcgill/ecse/dslreasoner/vampire/reasoner/queries/typeQueries.vql create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireAnalyzerConfiguration.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapperTrace.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ConstantMapper.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireModelInterpretation_TypeInterpretation.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtend create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/TypeMappingTechnique.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireBackendSolver.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolverConfiguration.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.gitignore create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapperTrace.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ConstantMapper.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapperTrace.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireModelInterpretation_TypeInterpretation.java create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireModelInterpretation_TypeInterpretation_FilteredTypes.java create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.gitignore create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.project create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.settings/org.eclipse.jdt.core.prefs create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/build.properties create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM.xmi create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/Yakindu.xmi create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/ecore.xmi create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/fs.xmi create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/logProb.logicproblem create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/vampireCode.tptp create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/.classpath b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/.classpath new file mode 100644 index 00000000..a0c6dd9c --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/.project b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/.project new file mode 100644 index 00000000..85d1308e --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/.project @@ -0,0 +1,29 @@ + + + ca.mcgill.ecse.dslreasoner.trace.logic2vampire + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.sirius.nature.modelingproject + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/META-INF/MANIFEST.MF b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/META-INF/MANIFEST.MF new file mode 100644 index 00000000..f4f91de8 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/META-INF/MANIFEST.MF @@ -0,0 +1,7 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: ca.mcgill.ecse.dslreasoner.trace.logic2vampire +Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.trace.logic2vampire; singleton:=true +Bundle-Version: 0.1.0.qualifier +Require-Bundle: org.eclipse.emf.ecore;visibility:=reexport, + org.eclipse.core.runtime diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.aird b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.aird new file mode 100644 index 00000000..4fda4ff6 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.aird @@ -0,0 +1,30 @@ + + + + logic2vampire.ecore + logic2vampire.genmodel + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.ecore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.ecore new file mode 100644 index 00000000..0cdf6d7f --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.ecore @@ -0,0 +1,4 @@ + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.genmodel b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.genmodel new file mode 100644 index 00000000..32de743d --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.genmodel @@ -0,0 +1,14 @@ + + + logic2vampire.ecore + + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/.classpath b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/.classpath new file mode 100644 index 00000000..1287f96c --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/.gitignore new file mode 100644 index 00000000..ae3c1726 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/.project b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/.project new file mode 100644 index 00000000..69632663 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/.project @@ -0,0 +1,34 @@ + + + ca.mcgill.ecse.dslreasoner.vampire.language.ide + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.xtext.ui.shared.xtextNature + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/.settings/org.eclipse.core.resources.prefs b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..4824b802 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/.settings/org.eclipse.jdt.core.prefs b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..295926d9 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/META-INF/MANIFEST.MF b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/META-INF/MANIFEST.MF new file mode 100644 index 00000000..f833c983 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/META-INF/MANIFEST.MF @@ -0,0 +1,15 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: ca.mcgill.ecse.dslreasoner.vampire.language.ide +Bundle-Vendor: My Company +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.language.ide; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: ca.mcgill.ecse.dslreasoner.vampire.language, + org.eclipse.xtext.ide, + org.eclipse.xtext.xbase.ide, + org.antlr.runtime +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Export-Package: ca.mcgill.ecse.dslreasoner.ide.contentassist.antlr, + ca.mcgill.ecse.dslreasoner.ide.contentassist.antlr.internal + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/build.properties b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/build.properties new file mode 100644 index 00000000..4c654e9b --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/build.properties @@ -0,0 +1,6 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = .,\ + META-INF/ +bin.excludes = **/*.xtend diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup new file mode 100644 index 00000000..ada67901 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup @@ -0,0 +1 @@ +ca.mcgill.ecse.dslreasoner.ide.VampireLanguageIdeSetup diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/AbstractVampireLanguageIdeModule.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/AbstractVampireLanguageIdeModule.java new file mode 100644 index 00000000..323e4df4 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/AbstractVampireLanguageIdeModule.java @@ -0,0 +1,47 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ide; + +import ca.mcgill.ecse.dslreasoner.ide.contentassist.antlr.VampireLanguageParser; +import ca.mcgill.ecse.dslreasoner.ide.contentassist.antlr.internal.InternalVampireLanguageLexer; +import com.google.inject.Binder; +import com.google.inject.name.Names; +import org.eclipse.xtext.ide.DefaultIdeModule; +import org.eclipse.xtext.ide.LexerIdeBindings; +import org.eclipse.xtext.ide.editor.contentassist.FQNPrefixMatcher; +import org.eclipse.xtext.ide.editor.contentassist.IPrefixMatcher; +import org.eclipse.xtext.ide.editor.contentassist.IProposalConflictHelper; +import org.eclipse.xtext.ide.editor.contentassist.antlr.AntlrProposalConflictHelper; +import org.eclipse.xtext.ide.editor.contentassist.antlr.IContentAssistParser; +import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.Lexer; + +/** + * Manual modifications go to {@link VampireLanguageIdeModule}. + */ +@SuppressWarnings("all") +public abstract class AbstractVampireLanguageIdeModule extends DefaultIdeModule { + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public void configureContentAssistLexer(Binder binder) { + binder.bind(Lexer.class) + .annotatedWith(Names.named(LexerIdeBindings.CONTENT_ASSIST)) + .to(InternalVampireLanguageLexer.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindIContentAssistParser() { + return VampireLanguageParser.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindIProposalConflictHelper() { + return AntlrProposalConflictHelper.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2 + public Class bindIPrefixMatcher() { + return FQNPrefixMatcher.class; + } + +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/PartialVampireLanguageContentAssistParser.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/PartialVampireLanguageContentAssistParser.java new file mode 100644 index 00000000..67ea9dca --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/PartialVampireLanguageContentAssistParser.java @@ -0,0 +1,34 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ide.contentassist.antlr; + +import java.util.Collection; +import java.util.Collections; +import org.eclipse.xtext.AbstractRule; +import org.eclipse.xtext.ide.editor.contentassist.antlr.FollowElement; +import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser; +import org.eclipse.xtext.ide.editor.partialEditing.IPartialEditingContentAssistParser; +import org.eclipse.xtext.util.PolymorphicDispatcher; + +public class PartialVampireLanguageContentAssistParser extends VampireLanguageParser implements IPartialEditingContentAssistParser { + + private AbstractRule rule; + + @Override + public void initializeFor(AbstractRule rule) { + this.rule = rule; + } + + @Override + protected Collection getFollowElements(AbstractInternalContentAssistParser parser) { + if (rule == null || rule.eIsProxy()) + return Collections.emptyList(); + String methodName = "entryRule" + rule.getName(); + PolymorphicDispatcher> dispatcher = + new PolymorphicDispatcher>(methodName, 0, 0, Collections.singletonList(parser)); + dispatcher.invoke(); + return parser.getFollowElements(); + } + +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/VampireLanguageParser.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/VampireLanguageParser.java new file mode 100644 index 00000000..77d9c8ff --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/VampireLanguageParser.java @@ -0,0 +1,157 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ide.contentassist.antlr; + +import ca.mcgill.ecse.dslreasoner.ide.contentassist.antlr.internal.InternalVampireLanguageParser; +import ca.mcgill.ecse.dslreasoner.services.VampireLanguageGrammarAccess; +import com.google.inject.Inject; +import java.util.HashMap; +import java.util.Map; +import org.eclipse.xtext.AbstractElement; +import org.eclipse.xtext.ide.editor.contentassist.antlr.AbstractContentAssistParser; + +public class VampireLanguageParser extends AbstractContentAssistParser { + + @Inject + private VampireLanguageGrammarAccess grammarAccess; + + private Map nameMappings; + + @Override + protected InternalVampireLanguageParser createParser() { + InternalVampireLanguageParser result = new InternalVampireLanguageParser(null); + result.setGrammarAccess(grammarAccess); + return result; + } + + @Override + protected String getRuleName(AbstractElement element) { + if (nameMappings == null) { + nameMappings = new HashMap() { + private static final long serialVersionUID = 1L; + { + put(grammarAccess.getVampireModelAccess().getAlternatives(), "rule__VampireModel__Alternatives"); + put(grammarAccess.getVLSNameAccess().getNameAlternatives_0(), "rule__VLSName__NameAlternatives_0"); + put(grammarAccess.getVLSFofFormulaAccess().getNameAlternatives_2_0(), "rule__VLSFofFormula__NameAlternatives_2_0"); + put(grammarAccess.getVLSRoleAccess().getAlternatives(), "rule__VLSRole__Alternatives"); + put(grammarAccess.getVLSAnnotationAccess().getNameAlternatives_1_0(), "rule__VLSAnnotation__NameAlternatives_1_0"); + put(grammarAccess.getVLSBinaryAccess().getAlternatives_1(), "rule__VLSBinary__Alternatives_1"); + put(grammarAccess.getVLSBinaryAccess().getAlternatives_1_0_0(), "rule__VLSBinary__Alternatives_1_0_0"); + put(grammarAccess.getVLSUnitaryFormulaAccess().getAlternatives(), "rule__VLSUnitaryFormula__Alternatives"); + put(grammarAccess.getVLSUnaryInfixAccess().getAlternatives_1_0(), "rule__VLSUnaryInfix__Alternatives_1_0"); + put(grammarAccess.getVLSAtomicAccess().getAlternatives(), "rule__VLSAtomic__Alternatives"); + put(grammarAccess.getVLSAtomicConstantAccess().getAlternatives(), "rule__VLSAtomicConstant__Alternatives"); + put(grammarAccess.getVLSAtomicConstantAccess().getNameAlternatives_0_1_0(), "rule__VLSAtomicConstant__NameAlternatives_0_1_0"); + put(grammarAccess.getVLSAtomicFunctionAccess().getAlternatives(), "rule__VLSAtomicFunction__Alternatives"); + put(grammarAccess.getVLSAtomicFunctionAccess().getConstantAlternatives_0_1_0(), "rule__VLSAtomicFunction__ConstantAlternatives_0_1_0"); + put(grammarAccess.getVLSFofTermAccess().getAlternatives(), "rule__VLSFofTerm__Alternatives"); + put(grammarAccess.getVLSFunctionFofAccess().getFunctorAlternatives_0_0(), "rule__VLSFunctionFof__FunctorAlternatives_0_0"); + put(grammarAccess.getVLSDefinedTermAccess().getAlternatives(), "rule__VLSDefinedTerm__Alternatives"); + put(grammarAccess.getVLSIncludeAccess().getGroup(), "rule__VLSInclude__Group__0"); + put(grammarAccess.getVLSIncludeAccess().getGroup_2(), "rule__VLSInclude__Group_2__0"); + put(grammarAccess.getVLSIncludeAccess().getGroup_2_2(), "rule__VLSInclude__Group_2_2__0"); + put(grammarAccess.getVLSFofFormulaAccess().getGroup(), "rule__VLSFofFormula__Group__0"); + put(grammarAccess.getVLSFofFormulaAccess().getGroup_7(), "rule__VLSFofFormula__Group_7__0"); + put(grammarAccess.getVLSAnnotationAccess().getGroup(), "rule__VLSAnnotation__Group__0"); + put(grammarAccess.getVLSAnnotationAccess().getGroup_2(), "rule__VLSAnnotation__Group_2__0"); + put(grammarAccess.getVLSAnnotationTermsAccess().getGroup(), "rule__VLSAnnotationTerms__Group__0"); + put(grammarAccess.getVLSAnnotationTermsAccess().getGroup_1(), "rule__VLSAnnotationTerms__Group_1__0"); + put(grammarAccess.getVLSBinaryAccess().getGroup(), "rule__VLSBinary__Group__0"); + put(grammarAccess.getVLSBinaryAccess().getGroup_1_0(), "rule__VLSBinary__Group_1_0__0"); + put(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_0(), "rule__VLSBinary__Group_1_0_0_0__0"); + put(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_1(), "rule__VLSBinary__Group_1_0_0_1__0"); + put(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_2(), "rule__VLSBinary__Group_1_0_0_2__0"); + put(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_3(), "rule__VLSBinary__Group_1_0_0_3__0"); + put(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_4(), "rule__VLSBinary__Group_1_0_0_4__0"); + put(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_5(), "rule__VLSBinary__Group_1_0_0_5__0"); + put(grammarAccess.getVLSBinaryAccess().getGroup_1_1(), "rule__VLSBinary__Group_1_1__0"); + put(grammarAccess.getVLSBinaryAccess().getGroup_1_2(), "rule__VLSBinary__Group_1_2__0"); + put(grammarAccess.getVLSUnitaryFormulaAccess().getGroup_4(), "rule__VLSUnitaryFormula__Group_4__0"); + put(grammarAccess.getVLSUniversalQuantifierAccess().getGroup(), "rule__VLSUniversalQuantifier__Group__0"); + put(grammarAccess.getVLSUniversalQuantifierAccess().getGroup_1(), "rule__VLSUniversalQuantifier__Group_1__0"); + put(grammarAccess.getVLSUniversalQuantifierAccess().getGroup_1_3(), "rule__VLSUniversalQuantifier__Group_1_3__0"); + put(grammarAccess.getVLSExistentialQuantifierAccess().getGroup(), "rule__VLSExistentialQuantifier__Group__0"); + put(grammarAccess.getVLSExistentialQuantifierAccess().getGroup_1(), "rule__VLSExistentialQuantifier__Group_1__0"); + put(grammarAccess.getVLSExistentialQuantifierAccess().getGroup_1_3(), "rule__VLSExistentialQuantifier__Group_1_3__0"); + put(grammarAccess.getVLSUnaryNegationAccess().getGroup(), "rule__VLSUnaryNegation__Group__0"); + put(grammarAccess.getVLSUnaryInfixAccess().getGroup(), "rule__VLSUnaryInfix__Group__0"); + put(grammarAccess.getVLSUnaryInfixAccess().getGroup_1(), "rule__VLSUnaryInfix__Group_1__0"); + put(grammarAccess.getVLSUnaryInfixAccess().getGroup_1_0_0(), "rule__VLSUnaryInfix__Group_1_0_0__0"); + put(grammarAccess.getVLSUnaryInfixAccess().getGroup_1_0_1(), "rule__VLSUnaryInfix__Group_1_0_1__0"); + put(grammarAccess.getVLSUnaryInfixAccess().getGroup_1_0_2(), "rule__VLSUnaryInfix__Group_1_0_2__0"); + put(grammarAccess.getVLSAtomicConstantAccess().getGroup_0(), "rule__VLSAtomicConstant__Group_0__0"); + put(grammarAccess.getVLSAtomicConstantAccess().getGroup_1(), "rule__VLSAtomicConstant__Group_1__0"); + put(grammarAccess.getVLSAtomicConstantAccess().getGroup_2(), "rule__VLSAtomicConstant__Group_2__0"); + put(grammarAccess.getVLSAtomicFunctionAccess().getGroup_0(), "rule__VLSAtomicFunction__Group_0__0"); + put(grammarAccess.getVLSAtomicFunctionAccess().getGroup_0_2(), "rule__VLSAtomicFunction__Group_0_2__0"); + put(grammarAccess.getVLSAtomicFunctionAccess().getGroup_0_2_2(), "rule__VLSAtomicFunction__Group_0_2_2__0"); + put(grammarAccess.getVLSAtomicFunctionAccess().getGroup_1(), "rule__VLSAtomicFunction__Group_1__0"); + put(grammarAccess.getVLSFunctionFofAccess().getGroup(), "rule__VLSFunctionFof__Group__0"); + put(grammarAccess.getVLSFunctionFofAccess().getGroup_1(), "rule__VLSFunctionFof__Group_1__0"); + put(grammarAccess.getVLSFunctionFofAccess().getGroup_1_2(), "rule__VLSFunctionFof__Group_1_2__0"); + put(grammarAccess.getVLSDefinedTermAccess().getGroup_0(), "rule__VLSDefinedTerm__Group_0__0"); + put(grammarAccess.getVLSDefinedTermAccess().getGroup_1(), "rule__VLSDefinedTerm__Group_1__0"); + put(grammarAccess.getVLSDefinedTermAccess().getGroup_2(), "rule__VLSDefinedTerm__Group_2__0"); + put(grammarAccess.getVLSDefinedTermAccess().getGroup_3(), "rule__VLSDefinedTerm__Group_3__0"); + put(grammarAccess.getVampireModelAccess().getIncludesAssignment_0(), "rule__VampireModel__IncludesAssignment_0"); + put(grammarAccess.getVampireModelAccess().getCommentsAssignment_1(), "rule__VampireModel__CommentsAssignment_1"); + put(grammarAccess.getVampireModelAccess().getFormulasAssignment_2(), "rule__VampireModel__FormulasAssignment_2"); + put(grammarAccess.getVLSIncludeAccess().getFileNameAssignment_1(), "rule__VLSInclude__FileNameAssignment_1"); + put(grammarAccess.getVLSIncludeAccess().getNamesAssignment_2_1(), "rule__VLSInclude__NamesAssignment_2_1"); + put(grammarAccess.getVLSIncludeAccess().getNamesAssignment_2_2_1(), "rule__VLSInclude__NamesAssignment_2_2_1"); + put(grammarAccess.getVLSNameAccess().getNameAssignment(), "rule__VLSName__NameAssignment"); + put(grammarAccess.getVLSCommentAccess().getCommentAssignment(), "rule__VLSComment__CommentAssignment"); + put(grammarAccess.getVLSFofFormulaAccess().getNameAssignment_2(), "rule__VLSFofFormula__NameAssignment_2"); + put(grammarAccess.getVLSFofFormulaAccess().getFofRoleAssignment_4(), "rule__VLSFofFormula__FofRoleAssignment_4"); + put(grammarAccess.getVLSFofFormulaAccess().getFofFormulaAssignment_6(), "rule__VLSFofFormula__FofFormulaAssignment_6"); + put(grammarAccess.getVLSFofFormulaAccess().getAnnotationsAssignment_7_1(), "rule__VLSFofFormula__AnnotationsAssignment_7_1"); + put(grammarAccess.getVLSAnnotationAccess().getNameAssignment_1(), "rule__VLSAnnotation__NameAssignment_1"); + put(grammarAccess.getVLSAnnotationAccess().getFollowupAssignment_2_1(), "rule__VLSAnnotation__FollowupAssignment_2_1"); + put(grammarAccess.getVLSAnnotationTermsAccess().getTermsAssignment_0(), "rule__VLSAnnotationTerms__TermsAssignment_0"); + put(grammarAccess.getVLSAnnotationTermsAccess().getTermsAssignment_1_1(), "rule__VLSAnnotationTerms__TermsAssignment_1_1"); + put(grammarAccess.getVLSBinaryAccess().getRightAssignment_1_0_1(), "rule__VLSBinary__RightAssignment_1_0_1"); + put(grammarAccess.getVLSBinaryAccess().getRightAssignment_1_1_2(), "rule__VLSBinary__RightAssignment_1_1_2"); + put(grammarAccess.getVLSBinaryAccess().getRightAssignment_1_2_2(), "rule__VLSBinary__RightAssignment_1_2_2"); + put(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesAssignment_1_2(), "rule__VLSUniversalQuantifier__VariablesAssignment_1_2"); + put(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesAssignment_1_3_1(), "rule__VLSUniversalQuantifier__VariablesAssignment_1_3_1"); + put(grammarAccess.getVLSUniversalQuantifierAccess().getOperandAssignment_2(), "rule__VLSUniversalQuantifier__OperandAssignment_2"); + put(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesAssignment_1_2(), "rule__VLSExistentialQuantifier__VariablesAssignment_1_2"); + put(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesAssignment_1_3_1(), "rule__VLSExistentialQuantifier__VariablesAssignment_1_3_1"); + put(grammarAccess.getVLSExistentialQuantifierAccess().getOperandAssignment_2(), "rule__VLSExistentialQuantifier__OperandAssignment_2"); + put(grammarAccess.getVLSUnaryNegationAccess().getOperandAssignment_2(), "rule__VLSUnaryNegation__OperandAssignment_2"); + put(grammarAccess.getVLSUnaryInfixAccess().getRightAssignment_1_1(), "rule__VLSUnaryInfix__RightAssignment_1_1"); + put(grammarAccess.getVLSAtomicConstantAccess().getNameAssignment_0_1(), "rule__VLSAtomicConstant__NameAssignment_0_1"); + put(grammarAccess.getVLSAtomicFunctionAccess().getConstantAssignment_0_1(), "rule__VLSAtomicFunction__ConstantAssignment_0_1"); + put(grammarAccess.getVLSAtomicFunctionAccess().getTermsAssignment_0_2_1(), "rule__VLSAtomicFunction__TermsAssignment_0_2_1"); + put(grammarAccess.getVLSAtomicFunctionAccess().getTermsAssignment_0_2_2_1(), "rule__VLSAtomicFunction__TermsAssignment_0_2_2_1"); + put(grammarAccess.getVLSAtomicFunctionAccess().getNameAssignment_1_1(), "rule__VLSAtomicFunction__NameAssignment_1_1"); + put(grammarAccess.getVLSAtomicFunctionAccess().getTermsAssignment_1_3(), "rule__VLSAtomicFunction__TermsAssignment_1_3"); + put(grammarAccess.getVLSAtomicFunctionAccess().getTermsAssignment_1_5(), "rule__VLSAtomicFunction__TermsAssignment_1_5"); + put(grammarAccess.getVLSVariableAccess().getNameAssignment(), "rule__VLSVariable__NameAssignment"); + put(grammarAccess.getVLSFunctionFofAccess().getFunctorAssignment_0(), "rule__VLSFunctionFof__FunctorAssignment_0"); + put(grammarAccess.getVLSFunctionFofAccess().getTermsAssignment_1_1(), "rule__VLSFunctionFof__TermsAssignment_1_1"); + put(grammarAccess.getVLSFunctionFofAccess().getTermsAssignment_1_2_1(), "rule__VLSFunctionFof__TermsAssignment_1_2_1"); + put(grammarAccess.getVLSDefinedTermAccess().getValueAssignment_0_1(), "rule__VLSDefinedTerm__ValueAssignment_0_1"); + put(grammarAccess.getVLSDefinedTermAccess().getValueAssignment_1_1(), "rule__VLSDefinedTerm__ValueAssignment_1_1"); + put(grammarAccess.getVLSDefinedTermAccess().getValueAssignment_2_1(), "rule__VLSDefinedTerm__ValueAssignment_2_1"); + put(grammarAccess.getVLSDefinedTermAccess().getValueAssignment_3_1(), "rule__VLSDefinedTerm__ValueAssignment_3_1"); + } + }; + } + return nameMappings.get(element); + } + + @Override + protected String[] getInitialHiddenTokens() { + return new String[] { "RULE_WS" }; + } + + public VampireLanguageGrammarAccess getGrammarAccess() { + return this.grammarAccess; + } + + public void setGrammarAccess(VampireLanguageGrammarAccess grammarAccess) { + this.grammarAccess = grammarAccess; + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/internal/InternalVampireLanguage.g b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/internal/InternalVampireLanguage.g new file mode 100644 index 00000000..83aa541e --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/internal/InternalVampireLanguage.g @@ -0,0 +1,5782 @@ +/* + * generated by Xtext 2.12.0 + */ +grammar InternalVampireLanguage; + +options { + superClass=AbstractInternalContentAssistParser; +} + +@lexer::header { +package ca.mcgill.ecse.dslreasoner.ide.contentassist.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.ide.editor.contentassist.antlr.internal.Lexer; +} + +@parser::header { +package ca.mcgill.ecse.dslreasoner.ide.contentassist.antlr.internal; + +import java.io.InputStream; +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.XtextTokenStream; +import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; +import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser; +import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.DFA; +import ca.mcgill.ecse.dslreasoner.services.VampireLanguageGrammarAccess; + +} +@parser::members { + private VampireLanguageGrammarAccess grammarAccess; + + public void setGrammarAccess(VampireLanguageGrammarAccess grammarAccess) { + this.grammarAccess = grammarAccess; + } + + @Override + protected Grammar getGrammar() { + return grammarAccess.getGrammar(); + } + + @Override + protected String getValueForTokenName(String tokenName) { + return tokenName; + } +} + +// Entry rule entryRuleVampireModel +entryRuleVampireModel +: +{ before(grammarAccess.getVampireModelRule()); } + ruleVampireModel +{ after(grammarAccess.getVampireModelRule()); } + EOF +; + +// Rule VampireModel +ruleVampireModel + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVampireModelAccess().getAlternatives()); } + (rule__VampireModel__Alternatives)* + { after(grammarAccess.getVampireModelAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSInclude +entryRuleVLSInclude +: +{ before(grammarAccess.getVLSIncludeRule()); } + ruleVLSInclude +{ after(grammarAccess.getVLSIncludeRule()); } + EOF +; + +// Rule VLSInclude +ruleVLSInclude + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSIncludeAccess().getGroup()); } + (rule__VLSInclude__Group__0) + { after(grammarAccess.getVLSIncludeAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSName +entryRuleVLSName +: +{ before(grammarAccess.getVLSNameRule()); } + ruleVLSName +{ after(grammarAccess.getVLSNameRule()); } + EOF +; + +// Rule VLSName +ruleVLSName + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSNameAccess().getNameAssignment()); } + (rule__VLSName__NameAssignment) + { after(grammarAccess.getVLSNameAccess().getNameAssignment()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSComment +entryRuleVLSComment +: +{ before(grammarAccess.getVLSCommentRule()); } + ruleVLSComment +{ after(grammarAccess.getVLSCommentRule()); } + EOF +; + +// Rule VLSComment +ruleVLSComment + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSCommentAccess().getCommentAssignment()); } + (rule__VLSComment__CommentAssignment) + { after(grammarAccess.getVLSCommentAccess().getCommentAssignment()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSFofFormula +entryRuleVLSFofFormula +: +{ before(grammarAccess.getVLSFofFormulaRule()); } + ruleVLSFofFormula +{ after(grammarAccess.getVLSFofFormulaRule()); } + EOF +; + +// Rule VLSFofFormula +ruleVLSFofFormula + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSFofFormulaAccess().getGroup()); } + (rule__VLSFofFormula__Group__0) + { after(grammarAccess.getVLSFofFormulaAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSRole +entryRuleVLSRole +: +{ before(grammarAccess.getVLSRoleRule()); } + ruleVLSRole +{ after(grammarAccess.getVLSRoleRule()); } + EOF +; + +// Rule VLSRole +ruleVLSRole + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSRoleAccess().getAlternatives()); } + (rule__VLSRole__Alternatives) + { after(grammarAccess.getVLSRoleAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSAxiom +entryRuleVLSAxiom +: +{ before(grammarAccess.getVLSAxiomRule()); } + ruleVLSAxiom +{ after(grammarAccess.getVLSAxiomRule()); } + EOF +; + +// Rule VLSAxiom +ruleVLSAxiom + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSAxiomAccess().getAxiomKeyword()); } + 'axiom' + { after(grammarAccess.getVLSAxiomAccess().getAxiomKeyword()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSConjecture +entryRuleVLSConjecture +: +{ before(grammarAccess.getVLSConjectureRule()); } + ruleVLSConjecture +{ after(grammarAccess.getVLSConjectureRule()); } + EOF +; + +// Rule VLSConjecture +ruleVLSConjecture + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSConjectureAccess().getConjectureKeyword()); } + 'conjecture' + { after(grammarAccess.getVLSConjectureAccess().getConjectureKeyword()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSHypothesis +entryRuleVLSHypothesis +: +{ before(grammarAccess.getVLSHypothesisRule()); } + ruleVLSHypothesis +{ after(grammarAccess.getVLSHypothesisRule()); } + EOF +; + +// Rule VLSHypothesis +ruleVLSHypothesis + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSHypothesisAccess().getHypothesisKeyword()); } + 'hypothesis' + { after(grammarAccess.getVLSHypothesisAccess().getHypothesisKeyword()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSDefinition +entryRuleVLSDefinition +: +{ before(grammarAccess.getVLSDefinitionRule()); } + ruleVLSDefinition +{ after(grammarAccess.getVLSDefinitionRule()); } + EOF +; + +// Rule VLSDefinition +ruleVLSDefinition + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSDefinitionAccess().getDefinitionKeyword()); } + 'definition' + { after(grammarAccess.getVLSDefinitionAccess().getDefinitionKeyword()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSAssumption +entryRuleVLSAssumption +: +{ before(grammarAccess.getVLSAssumptionRule()); } + ruleVLSAssumption +{ after(grammarAccess.getVLSAssumptionRule()); } + EOF +; + +// Rule VLSAssumption +ruleVLSAssumption + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSAssumptionAccess().getAssumptionKeyword()); } + 'assumption' + { after(grammarAccess.getVLSAssumptionAccess().getAssumptionKeyword()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSLemma +entryRuleVLSLemma +: +{ before(grammarAccess.getVLSLemmaRule()); } + ruleVLSLemma +{ after(grammarAccess.getVLSLemmaRule()); } + EOF +; + +// Rule VLSLemma +ruleVLSLemma + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSLemmaAccess().getLemmaKeyword()); } + 'lemma' + { after(grammarAccess.getVLSLemmaAccess().getLemmaKeyword()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSTheorem +entryRuleVLSTheorem +: +{ before(grammarAccess.getVLSTheoremRule()); } + ruleVLSTheorem +{ after(grammarAccess.getVLSTheoremRule()); } + EOF +; + +// Rule VLSTheorem +ruleVLSTheorem + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSTheoremAccess().getTheoremKeyword()); } + 'theorem' + { after(grammarAccess.getVLSTheoremAccess().getTheoremKeyword()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSCorollary +entryRuleVLSCorollary +: +{ before(grammarAccess.getVLSCorollaryRule()); } + ruleVLSCorollary +{ after(grammarAccess.getVLSCorollaryRule()); } + EOF +; + +// Rule VLSCorollary +ruleVLSCorollary + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSCorollaryAccess().getCorollaryKeyword()); } + 'corollary' + { after(grammarAccess.getVLSCorollaryAccess().getCorollaryKeyword()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSNegated_Conjecture +entryRuleVLSNegated_Conjecture +: +{ before(grammarAccess.getVLSNegated_ConjectureRule()); } + ruleVLSNegated_Conjecture +{ after(grammarAccess.getVLSNegated_ConjectureRule()); } + EOF +; + +// Rule VLSNegated_Conjecture +ruleVLSNegated_Conjecture + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSNegated_ConjectureAccess().getNegated_conjectureKeyword()); } + 'negated_conjecture' + { after(grammarAccess.getVLSNegated_ConjectureAccess().getNegated_conjectureKeyword()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSPlain +entryRuleVLSPlain +: +{ before(grammarAccess.getVLSPlainRule()); } + ruleVLSPlain +{ after(grammarAccess.getVLSPlainRule()); } + EOF +; + +// Rule VLSPlain +ruleVLSPlain + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSPlainAccess().getPlainKeyword()); } + 'plain' + { after(grammarAccess.getVLSPlainAccess().getPlainKeyword()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSType +entryRuleVLSType +: +{ before(grammarAccess.getVLSTypeRule()); } + ruleVLSType +{ after(grammarAccess.getVLSTypeRule()); } + EOF +; + +// Rule VLSType +ruleVLSType + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSTypeAccess().getTypeKeyword()); } + 'type' + { after(grammarAccess.getVLSTypeAccess().getTypeKeyword()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSFi_Domain +entryRuleVLSFi_Domain +: +{ before(grammarAccess.getVLSFi_DomainRule()); } + ruleVLSFi_Domain +{ after(grammarAccess.getVLSFi_DomainRule()); } + EOF +; + +// Rule VLSFi_Domain +ruleVLSFi_Domain + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSFi_DomainAccess().getFi_domainKeyword()); } + 'fi_domain' + { after(grammarAccess.getVLSFi_DomainAccess().getFi_domainKeyword()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSFi_Functors +entryRuleVLSFi_Functors +: +{ before(grammarAccess.getVLSFi_FunctorsRule()); } + ruleVLSFi_Functors +{ after(grammarAccess.getVLSFi_FunctorsRule()); } + EOF +; + +// Rule VLSFi_Functors +ruleVLSFi_Functors + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSFi_FunctorsAccess().getFi_functorsKeyword()); } + 'fi_functors' + { after(grammarAccess.getVLSFi_FunctorsAccess().getFi_functorsKeyword()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSFi_Predicates +entryRuleVLSFi_Predicates +: +{ before(grammarAccess.getVLSFi_PredicatesRule()); } + ruleVLSFi_Predicates +{ after(grammarAccess.getVLSFi_PredicatesRule()); } + EOF +; + +// Rule VLSFi_Predicates +ruleVLSFi_Predicates + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSFi_PredicatesAccess().getFi_predicatesKeyword()); } + 'fi_predicates' + { after(grammarAccess.getVLSFi_PredicatesAccess().getFi_predicatesKeyword()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSUnknown +entryRuleVLSUnknown +: +{ before(grammarAccess.getVLSUnknownRule()); } + ruleVLSUnknown +{ after(grammarAccess.getVLSUnknownRule()); } + EOF +; + +// Rule VLSUnknown +ruleVLSUnknown + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSUnknownAccess().getUnknownKeyword()); } + 'unknown' + { after(grammarAccess.getVLSUnknownAccess().getUnknownKeyword()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSAnnotation +entryRuleVLSAnnotation +: +{ before(grammarAccess.getVLSAnnotationRule()); } + ruleVLSAnnotation +{ after(grammarAccess.getVLSAnnotationRule()); } + EOF +; + +// Rule VLSAnnotation +ruleVLSAnnotation + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSAnnotationAccess().getGroup()); } + (rule__VLSAnnotation__Group__0) + { after(grammarAccess.getVLSAnnotationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSAnnotationTerms +entryRuleVLSAnnotationTerms +: +{ before(grammarAccess.getVLSAnnotationTermsRule()); } + ruleVLSAnnotationTerms +{ after(grammarAccess.getVLSAnnotationTermsRule()); } + EOF +; + +// Rule VLSAnnotationTerms +ruleVLSAnnotationTerms + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSAnnotationTermsAccess().getGroup()); } + (rule__VLSAnnotationTerms__Group__0) + { after(grammarAccess.getVLSAnnotationTermsAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSTerm +entryRuleVLSTerm +: +{ before(grammarAccess.getVLSTermRule()); } + ruleVLSTerm +{ after(grammarAccess.getVLSTermRule()); } + EOF +; + +// Rule VLSTerm +ruleVLSTerm + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSTermAccess().getVLSBinaryParserRuleCall()); } + ruleVLSBinary + { after(grammarAccess.getVLSTermAccess().getVLSBinaryParserRuleCall()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSBinary +entryRuleVLSBinary +: +{ before(grammarAccess.getVLSBinaryRule()); } + ruleVLSBinary +{ after(grammarAccess.getVLSBinaryRule()); } + EOF +; + +// Rule VLSBinary +ruleVLSBinary + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSBinaryAccess().getGroup()); } + (rule__VLSBinary__Group__0) + { after(grammarAccess.getVLSBinaryAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSUnitaryFormula +entryRuleVLSUnitaryFormula +: +{ before(grammarAccess.getVLSUnitaryFormulaRule()); } + ruleVLSUnitaryFormula +{ after(grammarAccess.getVLSUnitaryFormulaRule()); } + EOF +; + +// Rule VLSUnitaryFormula +ruleVLSUnitaryFormula + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSUnitaryFormulaAccess().getAlternatives()); } + (rule__VLSUnitaryFormula__Alternatives) + { after(grammarAccess.getVLSUnitaryFormulaAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSUniversalQuantifier +entryRuleVLSUniversalQuantifier +: +{ before(grammarAccess.getVLSUniversalQuantifierRule()); } + ruleVLSUniversalQuantifier +{ after(grammarAccess.getVLSUniversalQuantifierRule()); } + EOF +; + +// Rule VLSUniversalQuantifier +ruleVLSUniversalQuantifier + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSUniversalQuantifierAccess().getGroup()); } + (rule__VLSUniversalQuantifier__Group__0) + { after(grammarAccess.getVLSUniversalQuantifierAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSExistentialQuantifier +entryRuleVLSExistentialQuantifier +: +{ before(grammarAccess.getVLSExistentialQuantifierRule()); } + ruleVLSExistentialQuantifier +{ after(grammarAccess.getVLSExistentialQuantifierRule()); } + EOF +; + +// Rule VLSExistentialQuantifier +ruleVLSExistentialQuantifier + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSExistentialQuantifierAccess().getGroup()); } + (rule__VLSExistentialQuantifier__Group__0) + { after(grammarAccess.getVLSExistentialQuantifierAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSUnaryNegation +entryRuleVLSUnaryNegation +: +{ before(grammarAccess.getVLSUnaryNegationRule()); } + ruleVLSUnaryNegation +{ after(grammarAccess.getVLSUnaryNegationRule()); } + EOF +; + +// Rule VLSUnaryNegation +ruleVLSUnaryNegation + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSUnaryNegationAccess().getGroup()); } + (rule__VLSUnaryNegation__Group__0) + { after(grammarAccess.getVLSUnaryNegationAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSUnaryInfix +entryRuleVLSUnaryInfix +: +{ before(grammarAccess.getVLSUnaryInfixRule()); } + ruleVLSUnaryInfix +{ after(grammarAccess.getVLSUnaryInfixRule()); } + EOF +; + +// Rule VLSUnaryInfix +ruleVLSUnaryInfix + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSUnaryInfixAccess().getGroup()); } + (rule__VLSUnaryInfix__Group__0) + { after(grammarAccess.getVLSUnaryInfixAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSAtomic +entryRuleVLSAtomic +: +{ before(grammarAccess.getVLSAtomicRule()); } + ruleVLSAtomic +{ after(grammarAccess.getVLSAtomicRule()); } + EOF +; + +// Rule VLSAtomic +ruleVLSAtomic + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSAtomicAccess().getAlternatives()); } + (rule__VLSAtomic__Alternatives) + { after(grammarAccess.getVLSAtomicAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSAtomicConstant +entryRuleVLSAtomicConstant +: +{ before(grammarAccess.getVLSAtomicConstantRule()); } + ruleVLSAtomicConstant +{ after(grammarAccess.getVLSAtomicConstantRule()); } + EOF +; + +// Rule VLSAtomicConstant +ruleVLSAtomicConstant + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSAtomicConstantAccess().getAlternatives()); } + (rule__VLSAtomicConstant__Alternatives) + { after(grammarAccess.getVLSAtomicConstantAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSAtomicFunction +entryRuleVLSAtomicFunction +: +{ before(grammarAccess.getVLSAtomicFunctionRule()); } + ruleVLSAtomicFunction +{ after(grammarAccess.getVLSAtomicFunctionRule()); } + EOF +; + +// Rule VLSAtomicFunction +ruleVLSAtomicFunction + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSAtomicFunctionAccess().getAlternatives()); } + (rule__VLSAtomicFunction__Alternatives) + { after(grammarAccess.getVLSAtomicFunctionAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSVariable +entryRuleVLSVariable +: +{ before(grammarAccess.getVLSVariableRule()); } + ruleVLSVariable +{ after(grammarAccess.getVLSVariableRule()); } + EOF +; + +// Rule VLSVariable +ruleVLSVariable + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSVariableAccess().getNameAssignment()); } + (rule__VLSVariable__NameAssignment) + { after(grammarAccess.getVLSVariableAccess().getNameAssignment()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSFofTerm +entryRuleVLSFofTerm +: +{ before(grammarAccess.getVLSFofTermRule()); } + ruleVLSFofTerm +{ after(grammarAccess.getVLSFofTermRule()); } + EOF +; + +// Rule VLSFofTerm +ruleVLSFofTerm + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSFofTermAccess().getAlternatives()); } + (rule__VLSFofTerm__Alternatives) + { after(grammarAccess.getVLSFofTermAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSFunctionFof +entryRuleVLSFunctionFof +: +{ before(grammarAccess.getVLSFunctionFofRule()); } + ruleVLSFunctionFof +{ after(grammarAccess.getVLSFunctionFofRule()); } + EOF +; + +// Rule VLSFunctionFof +ruleVLSFunctionFof + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSFunctionFofAccess().getGroup()); } + (rule__VLSFunctionFof__Group__0) + { after(grammarAccess.getVLSFunctionFofAccess().getGroup()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +// Entry rule entryRuleVLSDefinedTerm +entryRuleVLSDefinedTerm +: +{ before(grammarAccess.getVLSDefinedTermRule()); } + ruleVLSDefinedTerm +{ after(grammarAccess.getVLSDefinedTermRule()); } + EOF +; + +// Rule VLSDefinedTerm +ruleVLSDefinedTerm + @init { + int stackSize = keepStackSize(); + } + : + ( + { before(grammarAccess.getVLSDefinedTermAccess().getAlternatives()); } + (rule__VLSDefinedTerm__Alternatives) + { after(grammarAccess.getVLSDefinedTermAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VampireModel__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVampireModelAccess().getIncludesAssignment_0()); } + (rule__VampireModel__IncludesAssignment_0) + { after(grammarAccess.getVampireModelAccess().getIncludesAssignment_0()); } + ) + | + ( + { before(grammarAccess.getVampireModelAccess().getCommentsAssignment_1()); } + (rule__VampireModel__CommentsAssignment_1) + { after(grammarAccess.getVampireModelAccess().getCommentsAssignment_1()); } + ) + | + ( + { before(grammarAccess.getVampireModelAccess().getFormulasAssignment_2()); } + (rule__VampireModel__FormulasAssignment_2) + { after(grammarAccess.getVampireModelAccess().getFormulasAssignment_2()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSName__NameAlternatives_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSNameAccess().getNameLOWER_WORD_IDTerminalRuleCall_0_0()); } + RULE_LOWER_WORD_ID + { after(grammarAccess.getVLSNameAccess().getNameLOWER_WORD_IDTerminalRuleCall_0_0()); } + ) + | + ( + { before(grammarAccess.getVLSNameAccess().getNameSINGLE_QUOTETerminalRuleCall_0_1()); } + RULE_SINGLE_QUOTE + { after(grammarAccess.getVLSNameAccess().getNameSINGLE_QUOTETerminalRuleCall_0_1()); } + ) + | + ( + { before(grammarAccess.getVLSNameAccess().getNameLITERALTerminalRuleCall_0_2()); } + RULE_LITERAL + { after(grammarAccess.getVLSNameAccess().getNameLITERALTerminalRuleCall_0_2()); } + ) + | + ( + { before(grammarAccess.getVLSNameAccess().getNameSIGNED_LITERALTerminalRuleCall_0_3()); } + RULE_SIGNED_LITERAL + { after(grammarAccess.getVLSNameAccess().getNameSIGNED_LITERALTerminalRuleCall_0_3()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__NameAlternatives_2_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSFofFormulaAccess().getNameLOWER_WORD_IDTerminalRuleCall_2_0_0()); } + RULE_LOWER_WORD_ID + { after(grammarAccess.getVLSFofFormulaAccess().getNameLOWER_WORD_IDTerminalRuleCall_2_0_0()); } + ) + | + ( + { before(grammarAccess.getVLSFofFormulaAccess().getNameSIGNED_LITERALTerminalRuleCall_2_0_1()); } + RULE_SIGNED_LITERAL + { after(grammarAccess.getVLSFofFormulaAccess().getNameSIGNED_LITERALTerminalRuleCall_2_0_1()); } + ) + | + ( + { before(grammarAccess.getVLSFofFormulaAccess().getNameSINGLE_QUOTETerminalRuleCall_2_0_2()); } + RULE_SINGLE_QUOTE + { after(grammarAccess.getVLSFofFormulaAccess().getNameSINGLE_QUOTETerminalRuleCall_2_0_2()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSRole__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSRoleAccess().getVLSAxiomParserRuleCall_0()); } + ruleVLSAxiom + { after(grammarAccess.getVLSRoleAccess().getVLSAxiomParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getVLSRoleAccess().getVLSConjectureParserRuleCall_1()); } + ruleVLSConjecture + { after(grammarAccess.getVLSRoleAccess().getVLSConjectureParserRuleCall_1()); } + ) + | + ( + { before(grammarAccess.getVLSRoleAccess().getVLSHypothesisParserRuleCall_2()); } + ruleVLSHypothesis + { after(grammarAccess.getVLSRoleAccess().getVLSHypothesisParserRuleCall_2()); } + ) + | + ( + { before(grammarAccess.getVLSRoleAccess().getVLSDefinitionParserRuleCall_3()); } + ruleVLSDefinition + { after(grammarAccess.getVLSRoleAccess().getVLSDefinitionParserRuleCall_3()); } + ) + | + ( + { before(grammarAccess.getVLSRoleAccess().getVLSAssumptionParserRuleCall_4()); } + ruleVLSAssumption + { after(grammarAccess.getVLSRoleAccess().getVLSAssumptionParserRuleCall_4()); } + ) + | + ( + { before(grammarAccess.getVLSRoleAccess().getVLSLemmaParserRuleCall_5()); } + ruleVLSLemma + { after(grammarAccess.getVLSRoleAccess().getVLSLemmaParserRuleCall_5()); } + ) + | + ( + { before(grammarAccess.getVLSRoleAccess().getVLSTheoremParserRuleCall_6()); } + ruleVLSTheorem + { after(grammarAccess.getVLSRoleAccess().getVLSTheoremParserRuleCall_6()); } + ) + | + ( + { before(grammarAccess.getVLSRoleAccess().getVLSCorollaryParserRuleCall_7()); } + ruleVLSCorollary + { after(grammarAccess.getVLSRoleAccess().getVLSCorollaryParserRuleCall_7()); } + ) + | + ( + { before(grammarAccess.getVLSRoleAccess().getVLSNegated_ConjectureParserRuleCall_8()); } + ruleVLSNegated_Conjecture + { after(grammarAccess.getVLSRoleAccess().getVLSNegated_ConjectureParserRuleCall_8()); } + ) + | + ( + { before(grammarAccess.getVLSRoleAccess().getVLSPlainParserRuleCall_9()); } + ruleVLSPlain + { after(grammarAccess.getVLSRoleAccess().getVLSPlainParserRuleCall_9()); } + ) + | + ( + { before(grammarAccess.getVLSRoleAccess().getVLSTypeParserRuleCall_10()); } + ruleVLSType + { after(grammarAccess.getVLSRoleAccess().getVLSTypeParserRuleCall_10()); } + ) + | + ( + { before(grammarAccess.getVLSRoleAccess().getVLSFi_DomainParserRuleCall_11()); } + ruleVLSFi_Domain + { after(grammarAccess.getVLSRoleAccess().getVLSFi_DomainParserRuleCall_11()); } + ) + | + ( + { before(grammarAccess.getVLSRoleAccess().getVLSFi_FunctorsParserRuleCall_12()); } + ruleVLSFi_Functors + { after(grammarAccess.getVLSRoleAccess().getVLSFi_FunctorsParserRuleCall_12()); } + ) + | + ( + { before(grammarAccess.getVLSRoleAccess().getVLSFi_PredicatesParserRuleCall_13()); } + ruleVLSFi_Predicates + { after(grammarAccess.getVLSRoleAccess().getVLSFi_PredicatesParserRuleCall_13()); } + ) + | + ( + { before(grammarAccess.getVLSRoleAccess().getVLSUnknownParserRuleCall_14()); } + ruleVLSUnknown + { after(grammarAccess.getVLSRoleAccess().getVLSUnknownParserRuleCall_14()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotation__NameAlternatives_1_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSAnnotationAccess().getNameLOWER_WORD_IDTerminalRuleCall_1_0_0()); } + RULE_LOWER_WORD_ID + { after(grammarAccess.getVLSAnnotationAccess().getNameLOWER_WORD_IDTerminalRuleCall_1_0_0()); } + ) + | + ( + { before(grammarAccess.getVLSAnnotationAccess().getNameSINGLE_QUOTETerminalRuleCall_1_0_1()); } + RULE_SINGLE_QUOTE + { after(grammarAccess.getVLSAnnotationAccess().getNameSINGLE_QUOTETerminalRuleCall_1_0_1()); } + ) + | + ( + { before(grammarAccess.getVLSAnnotationAccess().getNameVLSRoleParserRuleCall_1_0_2()); } + ruleVLSRole + { after(grammarAccess.getVLSAnnotationAccess().getNameVLSRoleParserRuleCall_1_0_2()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Alternatives_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSBinaryAccess().getGroup_1_0()); } + (rule__VLSBinary__Group_1_0__0) + { after(grammarAccess.getVLSBinaryAccess().getGroup_1_0()); } + ) + | + ( + ( + { before(grammarAccess.getVLSBinaryAccess().getGroup_1_1()); } + (rule__VLSBinary__Group_1_1__0) + { after(grammarAccess.getVLSBinaryAccess().getGroup_1_1()); } + ) + ( + { before(grammarAccess.getVLSBinaryAccess().getGroup_1_1()); } + (rule__VLSBinary__Group_1_1__0)* + { after(grammarAccess.getVLSBinaryAccess().getGroup_1_1()); } + ) + ) + | + ( + ( + { before(grammarAccess.getVLSBinaryAccess().getGroup_1_2()); } + (rule__VLSBinary__Group_1_2__0) + { after(grammarAccess.getVLSBinaryAccess().getGroup_1_2()); } + ) + ( + { before(grammarAccess.getVLSBinaryAccess().getGroup_1_2()); } + (rule__VLSBinary__Group_1_2__0)* + { after(grammarAccess.getVLSBinaryAccess().getGroup_1_2()); } + ) + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Alternatives_1_0_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_0()); } + (rule__VLSBinary__Group_1_0_0_0__0) + { after(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_0()); } + ) + | + ( + { before(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_1()); } + (rule__VLSBinary__Group_1_0_0_1__0) + { after(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_1()); } + ) + | + ( + { before(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_2()); } + (rule__VLSBinary__Group_1_0_0_2__0) + { after(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_2()); } + ) + | + ( + { before(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_3()); } + (rule__VLSBinary__Group_1_0_0_3__0) + { after(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_3()); } + ) + | + ( + { before(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_4()); } + (rule__VLSBinary__Group_1_0_0_4__0) + { after(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_4()); } + ) + | + ( + { before(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_5()); } + (rule__VLSBinary__Group_1_0_0_5__0) + { after(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_5()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnitaryFormula__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUniversalQuantifierParserRuleCall_0()); } + ruleVLSUniversalQuantifier + { after(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUniversalQuantifierParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getVLSUnitaryFormulaAccess().getVLSExistentialQuantifierParserRuleCall_1()); } + ruleVLSExistentialQuantifier + { after(grammarAccess.getVLSUnitaryFormulaAccess().getVLSExistentialQuantifierParserRuleCall_1()); } + ) + | + ( + { before(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUnaryNegationParserRuleCall_2()); } + ruleVLSUnaryNegation + { after(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUnaryNegationParserRuleCall_2()); } + ) + | + ( + { before(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUnaryInfixParserRuleCall_3()); } + ruleVLSUnaryInfix + { after(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUnaryInfixParserRuleCall_3()); } + ) + | + ( + { before(grammarAccess.getVLSUnitaryFormulaAccess().getGroup_4()); } + (rule__VLSUnitaryFormula__Group_4__0) + { after(grammarAccess.getVLSUnitaryFormulaAccess().getGroup_4()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryInfix__Alternatives_1_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSUnaryInfixAccess().getGroup_1_0_0()); } + (rule__VLSUnaryInfix__Group_1_0_0__0) + { after(grammarAccess.getVLSUnaryInfixAccess().getGroup_1_0_0()); } + ) + | + ( + { before(grammarAccess.getVLSUnaryInfixAccess().getGroup_1_0_1()); } + (rule__VLSUnaryInfix__Group_1_0_1__0) + { after(grammarAccess.getVLSUnaryInfixAccess().getGroup_1_0_1()); } + ) + | + ( + { before(grammarAccess.getVLSUnaryInfixAccess().getGroup_1_0_2()); } + (rule__VLSUnaryInfix__Group_1_0_2__0) + { after(grammarAccess.getVLSUnaryInfixAccess().getGroup_1_0_2()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomic__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSAtomicAccess().getVLSAtomicConstantParserRuleCall_0()); } + ruleVLSAtomicConstant + { after(grammarAccess.getVLSAtomicAccess().getVLSAtomicConstantParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getVLSAtomicAccess().getVLSAtomicFunctionParserRuleCall_1()); } + ruleVLSAtomicFunction + { after(grammarAccess.getVLSAtomicAccess().getVLSAtomicFunctionParserRuleCall_1()); } + ) + | + ( + { before(grammarAccess.getVLSAtomicAccess().getVLSVariableParserRuleCall_2()); } + ruleVLSVariable + { after(grammarAccess.getVLSAtomicAccess().getVLSVariableParserRuleCall_2()); } + ) + | + ( + { before(grammarAccess.getVLSAtomicAccess().getVLSDefinedTermParserRuleCall_3()); } + ruleVLSDefinedTerm + { after(grammarAccess.getVLSAtomicAccess().getVLSDefinedTermParserRuleCall_3()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicConstant__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSAtomicConstantAccess().getGroup_0()); } + (rule__VLSAtomicConstant__Group_0__0) + { after(grammarAccess.getVLSAtomicConstantAccess().getGroup_0()); } + ) + | + ( + { before(grammarAccess.getVLSAtomicConstantAccess().getGroup_1()); } + (rule__VLSAtomicConstant__Group_1__0) + { after(grammarAccess.getVLSAtomicConstantAccess().getGroup_1()); } + ) + | + ( + { before(grammarAccess.getVLSAtomicConstantAccess().getGroup_2()); } + (rule__VLSAtomicConstant__Group_2__0) + { after(grammarAccess.getVLSAtomicConstantAccess().getGroup_2()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicConstant__NameAlternatives_0_1_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSAtomicConstantAccess().getNameLOWER_WORD_IDTerminalRuleCall_0_1_0_0()); } + RULE_LOWER_WORD_ID + { after(grammarAccess.getVLSAtomicConstantAccess().getNameLOWER_WORD_IDTerminalRuleCall_0_1_0_0()); } + ) + | + ( + { before(grammarAccess.getVLSAtomicConstantAccess().getNameSINGLE_QUOTETerminalRuleCall_0_1_0_1()); } + RULE_SINGLE_QUOTE + { after(grammarAccess.getVLSAtomicConstantAccess().getNameSINGLE_QUOTETerminalRuleCall_0_1_0_1()); } + ) + | + ( + { before(grammarAccess.getVLSAtomicConstantAccess().getNameDOLLAR_IDTerminalRuleCall_0_1_0_2()); } + RULE_DOLLAR_ID + { after(grammarAccess.getVLSAtomicConstantAccess().getNameDOLLAR_IDTerminalRuleCall_0_1_0_2()); } + ) + | + ( + { before(grammarAccess.getVLSAtomicConstantAccess().getNameDOUBLE_DOLLAR_IDTerminalRuleCall_0_1_0_3()); } + RULE_DOUBLE_DOLLAR_ID + { after(grammarAccess.getVLSAtomicConstantAccess().getNameDOUBLE_DOLLAR_IDTerminalRuleCall_0_1_0_3()); } + ) + | + ( + { before(grammarAccess.getVLSAtomicConstantAccess().getNameVLSRoleParserRuleCall_0_1_0_4()); } + ruleVLSRole + { after(grammarAccess.getVLSAtomicConstantAccess().getNameVLSRoleParserRuleCall_0_1_0_4()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSAtomicFunctionAccess().getGroup_0()); } + (rule__VLSAtomicFunction__Group_0__0) + { after(grammarAccess.getVLSAtomicFunctionAccess().getGroup_0()); } + ) + | + ( + { before(grammarAccess.getVLSAtomicFunctionAccess().getGroup_1()); } + (rule__VLSAtomicFunction__Group_1__0) + { after(grammarAccess.getVLSAtomicFunctionAccess().getGroup_1()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__ConstantAlternatives_0_1_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSAtomicFunctionAccess().getConstantLOWER_WORD_IDTerminalRuleCall_0_1_0_0()); } + RULE_LOWER_WORD_ID + { after(grammarAccess.getVLSAtomicFunctionAccess().getConstantLOWER_WORD_IDTerminalRuleCall_0_1_0_0()); } + ) + | + ( + { before(grammarAccess.getVLSAtomicFunctionAccess().getConstantSINGLE_QUOTETerminalRuleCall_0_1_0_1()); } + RULE_SINGLE_QUOTE + { after(grammarAccess.getVLSAtomicFunctionAccess().getConstantSINGLE_QUOTETerminalRuleCall_0_1_0_1()); } + ) + | + ( + { before(grammarAccess.getVLSAtomicFunctionAccess().getConstantDOLLAR_IDTerminalRuleCall_0_1_0_2()); } + RULE_DOLLAR_ID + { after(grammarAccess.getVLSAtomicFunctionAccess().getConstantDOLLAR_IDTerminalRuleCall_0_1_0_2()); } + ) + | + ( + { before(grammarAccess.getVLSAtomicFunctionAccess().getConstantDOUBLE_DOLLAR_IDTerminalRuleCall_0_1_0_3()); } + RULE_DOUBLE_DOLLAR_ID + { after(grammarAccess.getVLSAtomicFunctionAccess().getConstantDOUBLE_DOLLAR_IDTerminalRuleCall_0_1_0_3()); } + ) + | + ( + { before(grammarAccess.getVLSAtomicFunctionAccess().getConstantVLSRoleParserRuleCall_0_1_0_4()); } + ruleVLSRole + { after(grammarAccess.getVLSAtomicFunctionAccess().getConstantVLSRoleParserRuleCall_0_1_0_4()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofTerm__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSFofTermAccess().getVLSVariableParserRuleCall_0()); } + ruleVLSVariable + { after(grammarAccess.getVLSFofTermAccess().getVLSVariableParserRuleCall_0()); } + ) + | + ( + { before(grammarAccess.getVLSFofTermAccess().getVLSFunctionFofParserRuleCall_1()); } + ruleVLSFunctionFof + { after(grammarAccess.getVLSFofTermAccess().getVLSFunctionFofParserRuleCall_1()); } + ) + | + ( + { before(grammarAccess.getVLSFofTermAccess().getVLSDefinedTermParserRuleCall_2()); } + ruleVLSDefinedTerm + { after(grammarAccess.getVLSFofTermAccess().getVLSDefinedTermParserRuleCall_2()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFunctionFof__FunctorAlternatives_0_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSFunctionFofAccess().getFunctorLOWER_WORD_IDTerminalRuleCall_0_0_0()); } + RULE_LOWER_WORD_ID + { after(grammarAccess.getVLSFunctionFofAccess().getFunctorLOWER_WORD_IDTerminalRuleCall_0_0_0()); } + ) + | + ( + { before(grammarAccess.getVLSFunctionFofAccess().getFunctorSINGLE_QUOTETerminalRuleCall_0_0_1()); } + RULE_SINGLE_QUOTE + { after(grammarAccess.getVLSFunctionFofAccess().getFunctorSINGLE_QUOTETerminalRuleCall_0_0_1()); } + ) + | + ( + { before(grammarAccess.getVLSFunctionFofAccess().getFunctorDOLLAR_IDTerminalRuleCall_0_0_2()); } + RULE_DOLLAR_ID + { after(grammarAccess.getVLSFunctionFofAccess().getFunctorDOLLAR_IDTerminalRuleCall_0_0_2()); } + ) + | + ( + { before(grammarAccess.getVLSFunctionFofAccess().getFunctorDOUBLE_DOLLAR_IDTerminalRuleCall_0_0_3()); } + RULE_DOUBLE_DOLLAR_ID + { after(grammarAccess.getVLSFunctionFofAccess().getFunctorDOUBLE_DOLLAR_IDTerminalRuleCall_0_0_3()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSDefinedTerm__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSDefinedTermAccess().getGroup_0()); } + (rule__VLSDefinedTerm__Group_0__0) + { after(grammarAccess.getVLSDefinedTermAccess().getGroup_0()); } + ) + | + ( + { before(grammarAccess.getVLSDefinedTermAccess().getGroup_1()); } + (rule__VLSDefinedTerm__Group_1__0) + { after(grammarAccess.getVLSDefinedTermAccess().getGroup_1()); } + ) + | + ( + { before(grammarAccess.getVLSDefinedTermAccess().getGroup_2()); } + (rule__VLSDefinedTerm__Group_2__0) + { after(grammarAccess.getVLSDefinedTermAccess().getGroup_2()); } + ) + | + ( + { before(grammarAccess.getVLSDefinedTermAccess().getGroup_3()); } + (rule__VLSDefinedTerm__Group_3__0) + { after(grammarAccess.getVLSDefinedTermAccess().getGroup_3()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSInclude__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSInclude__Group__0__Impl + rule__VLSInclude__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSInclude__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSIncludeAccess().getIncludeKeyword_0()); } + 'include(' + { after(grammarAccess.getVLSIncludeAccess().getIncludeKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSInclude__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSInclude__Group__1__Impl + rule__VLSInclude__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSInclude__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSIncludeAccess().getFileNameAssignment_1()); } + (rule__VLSInclude__FileNameAssignment_1) + { after(grammarAccess.getVLSIncludeAccess().getFileNameAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSInclude__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSInclude__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSInclude__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSIncludeAccess().getGroup_2()); } + (rule__VLSInclude__Group_2__0)? + { after(grammarAccess.getVLSIncludeAccess().getGroup_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSInclude__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSInclude__Group_2__0__Impl + rule__VLSInclude__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSInclude__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSIncludeAccess().getCommaLeftSquareBracketKeyword_2_0()); } + ',[' + { after(grammarAccess.getVLSIncludeAccess().getCommaLeftSquareBracketKeyword_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSInclude__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSInclude__Group_2__1__Impl + rule__VLSInclude__Group_2__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSInclude__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSIncludeAccess().getNamesAssignment_2_1()); } + (rule__VLSInclude__NamesAssignment_2_1) + { after(grammarAccess.getVLSIncludeAccess().getNamesAssignment_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSInclude__Group_2__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSInclude__Group_2__2__Impl + rule__VLSInclude__Group_2__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSInclude__Group_2__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSIncludeAccess().getGroup_2_2()); } + (rule__VLSInclude__Group_2_2__0)* + { after(grammarAccess.getVLSIncludeAccess().getGroup_2_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSInclude__Group_2__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSInclude__Group_2__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSInclude__Group_2__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSIncludeAccess().getRightSquareBracketKeyword_2_3()); } + ']' + { after(grammarAccess.getVLSIncludeAccess().getRightSquareBracketKeyword_2_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSInclude__Group_2_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSInclude__Group_2_2__0__Impl + rule__VLSInclude__Group_2_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSInclude__Group_2_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSIncludeAccess().getCommaKeyword_2_2_0()); } + ',' + { after(grammarAccess.getVLSIncludeAccess().getCommaKeyword_2_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSInclude__Group_2_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSInclude__Group_2_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSInclude__Group_2_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSIncludeAccess().getNamesAssignment_2_2_1()); } + (rule__VLSInclude__NamesAssignment_2_2_1) + { after(grammarAccess.getVLSIncludeAccess().getNamesAssignment_2_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSFofFormula__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSFofFormula__Group__0__Impl + rule__VLSFofFormula__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSFofFormulaAccess().getFofKeyword_0()); } + 'fof' + { after(grammarAccess.getVLSFofFormulaAccess().getFofKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSFofFormula__Group__1__Impl + rule__VLSFofFormula__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSFofFormulaAccess().getLeftParenthesisKeyword_1()); } + '(' + { after(grammarAccess.getVLSFofFormulaAccess().getLeftParenthesisKeyword_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSFofFormula__Group__2__Impl + rule__VLSFofFormula__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSFofFormulaAccess().getNameAssignment_2()); } + (rule__VLSFofFormula__NameAssignment_2) + { after(grammarAccess.getVLSFofFormulaAccess().getNameAssignment_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSFofFormula__Group__3__Impl + rule__VLSFofFormula__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_3()); } + ',' + { after(grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSFofFormula__Group__4__Impl + rule__VLSFofFormula__Group__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSFofFormulaAccess().getFofRoleAssignment_4()); } + (rule__VLSFofFormula__FofRoleAssignment_4) + { after(grammarAccess.getVLSFofFormulaAccess().getFofRoleAssignment_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSFofFormula__Group__5__Impl + rule__VLSFofFormula__Group__6 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_5()); } + ',' + { after(grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group__6 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSFofFormula__Group__6__Impl + rule__VLSFofFormula__Group__7 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group__6__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSFofFormulaAccess().getFofFormulaAssignment_6()); } + (rule__VLSFofFormula__FofFormulaAssignment_6) + { after(grammarAccess.getVLSFofFormulaAccess().getFofFormulaAssignment_6()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group__7 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSFofFormula__Group__7__Impl + rule__VLSFofFormula__Group__8 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group__7__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSFofFormulaAccess().getGroup_7()); } + (rule__VLSFofFormula__Group_7__0)? + { after(grammarAccess.getVLSFofFormulaAccess().getGroup_7()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group__8 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSFofFormula__Group__8__Impl + rule__VLSFofFormula__Group__9 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group__8__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSFofFormulaAccess().getRightParenthesisKeyword_8()); } + ')' + { after(grammarAccess.getVLSFofFormulaAccess().getRightParenthesisKeyword_8()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group__9 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSFofFormula__Group__9__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group__9__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSFofFormulaAccess().getFullStopKeyword_9()); } + '.' + { after(grammarAccess.getVLSFofFormulaAccess().getFullStopKeyword_9()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSFofFormula__Group_7__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSFofFormula__Group_7__0__Impl + rule__VLSFofFormula__Group_7__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group_7__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_7_0()); } + ',' + { after(grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_7_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group_7__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSFofFormula__Group_7__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__Group_7__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSFofFormulaAccess().getAnnotationsAssignment_7_1()); } + (rule__VLSFofFormula__AnnotationsAssignment_7_1) + { after(grammarAccess.getVLSFofFormulaAccess().getAnnotationsAssignment_7_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSAnnotation__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAnnotation__Group__0__Impl + rule__VLSAnnotation__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotation__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAnnotationAccess().getLeftSquareBracketKeyword_0()); } + ('[')? + { after(grammarAccess.getVLSAnnotationAccess().getLeftSquareBracketKeyword_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotation__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAnnotation__Group__1__Impl + rule__VLSAnnotation__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotation__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAnnotationAccess().getNameAssignment_1()); } + (rule__VLSAnnotation__NameAssignment_1)? + { after(grammarAccess.getVLSAnnotationAccess().getNameAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotation__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAnnotation__Group__2__Impl + rule__VLSAnnotation__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotation__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAnnotationAccess().getGroup_2()); } + (rule__VLSAnnotation__Group_2__0)? + { after(grammarAccess.getVLSAnnotationAccess().getGroup_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotation__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAnnotation__Group__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotation__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAnnotationAccess().getRightSquareBracketKeyword_3()); } + (']')? + { after(grammarAccess.getVLSAnnotationAccess().getRightSquareBracketKeyword_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSAnnotation__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAnnotation__Group_2__0__Impl + rule__VLSAnnotation__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotation__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAnnotationAccess().getLeftParenthesisKeyword_2_0()); } + '(' + { after(grammarAccess.getVLSAnnotationAccess().getLeftParenthesisKeyword_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotation__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAnnotation__Group_2__1__Impl + rule__VLSAnnotation__Group_2__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotation__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAnnotationAccess().getFollowupAssignment_2_1()); } + (rule__VLSAnnotation__FollowupAssignment_2_1) + { after(grammarAccess.getVLSAnnotationAccess().getFollowupAssignment_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotation__Group_2__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAnnotation__Group_2__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotation__Group_2__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAnnotationAccess().getRightParenthesisKeyword_2_2()); } + ')' + { after(grammarAccess.getVLSAnnotationAccess().getRightParenthesisKeyword_2_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSAnnotationTerms__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAnnotationTerms__Group__0__Impl + rule__VLSAnnotationTerms__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotationTerms__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAnnotationTermsAccess().getTermsAssignment_0()); } + (rule__VLSAnnotationTerms__TermsAssignment_0) + { after(grammarAccess.getVLSAnnotationTermsAccess().getTermsAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotationTerms__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAnnotationTerms__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotationTerms__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAnnotationTermsAccess().getGroup_1()); } + (rule__VLSAnnotationTerms__Group_1__0)* + { after(grammarAccess.getVLSAnnotationTermsAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSAnnotationTerms__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAnnotationTerms__Group_1__0__Impl + rule__VLSAnnotationTerms__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotationTerms__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAnnotationTermsAccess().getCommaKeyword_1_0()); } + ',' + { after(grammarAccess.getVLSAnnotationTermsAccess().getCommaKeyword_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotationTerms__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAnnotationTerms__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotationTerms__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAnnotationTermsAccess().getTermsAssignment_1_1()); } + (rule__VLSAnnotationTerms__TermsAssignment_1_1) + { after(grammarAccess.getVLSAnnotationTermsAccess().getTermsAssignment_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSBinary__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group__0__Impl + rule__VLSBinary__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getVLSUnitaryFormulaParserRuleCall_0()); } + ruleVLSUnitaryFormula + { after(grammarAccess.getVLSBinaryAccess().getVLSUnitaryFormulaParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getAlternatives_1()); } + (rule__VLSBinary__Alternatives_1)? + { after(grammarAccess.getVLSBinaryAccess().getAlternatives_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSBinary__Group_1_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group_1_0__0__Impl + rule__VLSBinary__Group_1_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getAlternatives_1_0_0()); } + (rule__VLSBinary__Alternatives_1_0_0) + { after(grammarAccess.getVLSBinaryAccess().getAlternatives_1_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group_1_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getRightAssignment_1_0_1()); } + (rule__VLSBinary__RightAssignment_1_0_1) + { after(grammarAccess.getVLSBinaryAccess().getRightAssignment_1_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSBinary__Group_1_0_0_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group_1_0_0_0__0__Impl + rule__VLSBinary__Group_1_0_0_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0_0_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getVLSEquivalentLeftAction_1_0_0_0_0()); } + () + { after(grammarAccess.getVLSBinaryAccess().getVLSEquivalentLeftAction_1_0_0_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0_0_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group_1_0_0_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0_0_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_1_0_0_0_1()); } + '<=>' + { after(grammarAccess.getVLSBinaryAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_1_0_0_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSBinary__Group_1_0_0_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group_1_0_0_1__0__Impl + rule__VLSBinary__Group_1_0_0_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0_0_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getVLSImpliesLeftAction_1_0_0_1_0()); } + () + { after(grammarAccess.getVLSBinaryAccess().getVLSImpliesLeftAction_1_0_0_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0_0_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group_1_0_0_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0_0_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getEqualsSignGreaterThanSignKeyword_1_0_0_1_1()); } + '=>' + { after(grammarAccess.getVLSBinaryAccess().getEqualsSignGreaterThanSignKeyword_1_0_0_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSBinary__Group_1_0_0_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group_1_0_0_2__0__Impl + rule__VLSBinary__Group_1_0_0_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0_0_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getVLSRevImpliesLeftAction_1_0_0_2_0()); } + () + { after(grammarAccess.getVLSBinaryAccess().getVLSRevImpliesLeftAction_1_0_0_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0_0_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group_1_0_0_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0_0_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getLessThanSignEqualsSignKeyword_1_0_0_2_1()); } + '<=' + { after(grammarAccess.getVLSBinaryAccess().getLessThanSignEqualsSignKeyword_1_0_0_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSBinary__Group_1_0_0_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group_1_0_0_3__0__Impl + rule__VLSBinary__Group_1_0_0_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0_0_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getVLSXnorLeftAction_1_0_0_3_0()); } + () + { after(grammarAccess.getVLSBinaryAccess().getVLSXnorLeftAction_1_0_0_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0_0_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group_1_0_0_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0_0_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getLessThanSignTildeGreaterThanSignKeyword_1_0_0_3_1()); } + '<~>' + { after(grammarAccess.getVLSBinaryAccess().getLessThanSignTildeGreaterThanSignKeyword_1_0_0_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSBinary__Group_1_0_0_4__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group_1_0_0_4__0__Impl + rule__VLSBinary__Group_1_0_0_4__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0_0_4__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getVLSNorLeftAction_1_0_0_4_0()); } + () + { after(grammarAccess.getVLSBinaryAccess().getVLSNorLeftAction_1_0_0_4_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0_0_4__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group_1_0_0_4__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0_0_4__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getTildeVerticalLineKeyword_1_0_0_4_1()); } + '~|' + { after(grammarAccess.getVLSBinaryAccess().getTildeVerticalLineKeyword_1_0_0_4_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSBinary__Group_1_0_0_5__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group_1_0_0_5__0__Impl + rule__VLSBinary__Group_1_0_0_5__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0_0_5__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getVLSNandLeftAction_1_0_0_5_0()); } + () + { after(grammarAccess.getVLSBinaryAccess().getVLSNandLeftAction_1_0_0_5_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0_0_5__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group_1_0_0_5__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_0_0_5__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getTildeAmpersandKeyword_1_0_0_5_1()); } + '~&' + { after(grammarAccess.getVLSBinaryAccess().getTildeAmpersandKeyword_1_0_0_5_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSBinary__Group_1_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group_1_1__0__Impl + rule__VLSBinary__Group_1_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getVLSAndLeftAction_1_1_0()); } + () + { after(grammarAccess.getVLSBinaryAccess().getVLSAndLeftAction_1_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group_1_1__1__Impl + rule__VLSBinary__Group_1_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getAmpersandKeyword_1_1_1()); } + '&' + { after(grammarAccess.getVLSBinaryAccess().getAmpersandKeyword_1_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group_1_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getRightAssignment_1_1_2()); } + (rule__VLSBinary__RightAssignment_1_1_2) + { after(grammarAccess.getVLSBinaryAccess().getRightAssignment_1_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSBinary__Group_1_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group_1_2__0__Impl + rule__VLSBinary__Group_1_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getVLSOrLeftAction_1_2_0()); } + () + { after(grammarAccess.getVLSBinaryAccess().getVLSOrLeftAction_1_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group_1_2__1__Impl + rule__VLSBinary__Group_1_2__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getVerticalLineKeyword_1_2_1()); } + '|' + { after(grammarAccess.getVLSBinaryAccess().getVerticalLineKeyword_1_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_2__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSBinary__Group_1_2__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__Group_1_2__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSBinaryAccess().getRightAssignment_1_2_2()); } + (rule__VLSBinary__RightAssignment_1_2_2) + { after(grammarAccess.getVLSBinaryAccess().getRightAssignment_1_2_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSUnitaryFormula__Group_4__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUnitaryFormula__Group_4__0__Impl + rule__VLSUnitaryFormula__Group_4__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnitaryFormula__Group_4__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUnitaryFormulaAccess().getLeftParenthesisKeyword_4_0()); } + '(' + { after(grammarAccess.getVLSUnitaryFormulaAccess().getLeftParenthesisKeyword_4_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnitaryFormula__Group_4__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUnitaryFormula__Group_4__1__Impl + rule__VLSUnitaryFormula__Group_4__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnitaryFormula__Group_4__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUnitaryFormulaAccess().getVLSTermParserRuleCall_4_1()); } + ruleVLSTerm + { after(grammarAccess.getVLSUnitaryFormulaAccess().getVLSTermParserRuleCall_4_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnitaryFormula__Group_4__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUnitaryFormula__Group_4__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnitaryFormula__Group_4__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUnitaryFormulaAccess().getRightParenthesisKeyword_4_2()); } + ')' + { after(grammarAccess.getVLSUnitaryFormulaAccess().getRightParenthesisKeyword_4_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSUniversalQuantifier__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUniversalQuantifier__Group__0__Impl + rule__VLSUniversalQuantifier__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUniversalQuantifierAccess().getVLSUniversalQuantifierAction_0()); } + () + { after(grammarAccess.getVLSUniversalQuantifierAccess().getVLSUniversalQuantifierAction_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUniversalQuantifier__Group__1__Impl + rule__VLSUniversalQuantifier__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUniversalQuantifierAccess().getGroup_1()); } + (rule__VLSUniversalQuantifier__Group_1__0) + { after(grammarAccess.getVLSUniversalQuantifierAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUniversalQuantifier__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUniversalQuantifierAccess().getOperandAssignment_2()); } + (rule__VLSUniversalQuantifier__OperandAssignment_2) + { after(grammarAccess.getVLSUniversalQuantifierAccess().getOperandAssignment_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSUniversalQuantifier__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUniversalQuantifier__Group_1__0__Impl + rule__VLSUniversalQuantifier__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUniversalQuantifierAccess().getExclamationMarkKeyword_1_0()); } + '!' + { after(grammarAccess.getVLSUniversalQuantifierAccess().getExclamationMarkKeyword_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUniversalQuantifier__Group_1__1__Impl + rule__VLSUniversalQuantifier__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUniversalQuantifierAccess().getLeftSquareBracketKeyword_1_1()); } + '[' + { after(grammarAccess.getVLSUniversalQuantifierAccess().getLeftSquareBracketKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUniversalQuantifier__Group_1__2__Impl + rule__VLSUniversalQuantifier__Group_1__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesAssignment_1_2()); } + (rule__VLSUniversalQuantifier__VariablesAssignment_1_2) + { after(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__Group_1__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUniversalQuantifier__Group_1__3__Impl + rule__VLSUniversalQuantifier__Group_1__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__Group_1__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUniversalQuantifierAccess().getGroup_1_3()); } + (rule__VLSUniversalQuantifier__Group_1_3__0)* + { after(grammarAccess.getVLSUniversalQuantifierAccess().getGroup_1_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__Group_1__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUniversalQuantifier__Group_1__4__Impl + rule__VLSUniversalQuantifier__Group_1__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__Group_1__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUniversalQuantifierAccess().getRightSquareBracketKeyword_1_4()); } + ']' + { after(grammarAccess.getVLSUniversalQuantifierAccess().getRightSquareBracketKeyword_1_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__Group_1__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUniversalQuantifier__Group_1__5__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__Group_1__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUniversalQuantifierAccess().getColonKeyword_1_5()); } + ':' + { after(grammarAccess.getVLSUniversalQuantifierAccess().getColonKeyword_1_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSUniversalQuantifier__Group_1_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUniversalQuantifier__Group_1_3__0__Impl + rule__VLSUniversalQuantifier__Group_1_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__Group_1_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUniversalQuantifierAccess().getCommaKeyword_1_3_0()); } + ',' + { after(grammarAccess.getVLSUniversalQuantifierAccess().getCommaKeyword_1_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__Group_1_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUniversalQuantifier__Group_1_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__Group_1_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesAssignment_1_3_1()); } + (rule__VLSUniversalQuantifier__VariablesAssignment_1_3_1) + { after(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesAssignment_1_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSExistentialQuantifier__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSExistentialQuantifier__Group__0__Impl + rule__VLSExistentialQuantifier__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSExistentialQuantifierAccess().getVLSExistentialQuantifierAction_0()); } + () + { after(grammarAccess.getVLSExistentialQuantifierAccess().getVLSExistentialQuantifierAction_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSExistentialQuantifier__Group__1__Impl + rule__VLSExistentialQuantifier__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSExistentialQuantifierAccess().getGroup_1()); } + (rule__VLSExistentialQuantifier__Group_1__0) + { after(grammarAccess.getVLSExistentialQuantifierAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSExistentialQuantifier__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSExistentialQuantifierAccess().getOperandAssignment_2()); } + (rule__VLSExistentialQuantifier__OperandAssignment_2) + { after(grammarAccess.getVLSExistentialQuantifierAccess().getOperandAssignment_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSExistentialQuantifier__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSExistentialQuantifier__Group_1__0__Impl + rule__VLSExistentialQuantifier__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSExistentialQuantifierAccess().getQuestionMarkKeyword_1_0()); } + '?' + { after(grammarAccess.getVLSExistentialQuantifierAccess().getQuestionMarkKeyword_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSExistentialQuantifier__Group_1__1__Impl + rule__VLSExistentialQuantifier__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSExistentialQuantifierAccess().getLeftSquareBracketKeyword_1_1()); } + '[' + { after(grammarAccess.getVLSExistentialQuantifierAccess().getLeftSquareBracketKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSExistentialQuantifier__Group_1__2__Impl + rule__VLSExistentialQuantifier__Group_1__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesAssignment_1_2()); } + (rule__VLSExistentialQuantifier__VariablesAssignment_1_2) + { after(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesAssignment_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__Group_1__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSExistentialQuantifier__Group_1__3__Impl + rule__VLSExistentialQuantifier__Group_1__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__Group_1__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSExistentialQuantifierAccess().getGroup_1_3()); } + (rule__VLSExistentialQuantifier__Group_1_3__0)* + { after(grammarAccess.getVLSExistentialQuantifierAccess().getGroup_1_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__Group_1__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSExistentialQuantifier__Group_1__4__Impl + rule__VLSExistentialQuantifier__Group_1__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__Group_1__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSExistentialQuantifierAccess().getRightSquareBracketKeyword_1_4()); } + ']' + { after(grammarAccess.getVLSExistentialQuantifierAccess().getRightSquareBracketKeyword_1_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__Group_1__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSExistentialQuantifier__Group_1__5__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__Group_1__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSExistentialQuantifierAccess().getColonKeyword_1_5()); } + ':' + { after(grammarAccess.getVLSExistentialQuantifierAccess().getColonKeyword_1_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSExistentialQuantifier__Group_1_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSExistentialQuantifier__Group_1_3__0__Impl + rule__VLSExistentialQuantifier__Group_1_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__Group_1_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSExistentialQuantifierAccess().getCommaKeyword_1_3_0()); } + ',' + { after(grammarAccess.getVLSExistentialQuantifierAccess().getCommaKeyword_1_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__Group_1_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSExistentialQuantifier__Group_1_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__Group_1_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesAssignment_1_3_1()); } + (rule__VLSExistentialQuantifier__VariablesAssignment_1_3_1) + { after(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesAssignment_1_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSUnaryNegation__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUnaryNegation__Group__0__Impl + rule__VLSUnaryNegation__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryNegation__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUnaryNegationAccess().getVLSUnaryNegationAction_0()); } + () + { after(grammarAccess.getVLSUnaryNegationAccess().getVLSUnaryNegationAction_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryNegation__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUnaryNegation__Group__1__Impl + rule__VLSUnaryNegation__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryNegation__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUnaryNegationAccess().getTildeKeyword_1()); } + '~' + { after(grammarAccess.getVLSUnaryNegationAccess().getTildeKeyword_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryNegation__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUnaryNegation__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryNegation__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUnaryNegationAccess().getOperandAssignment_2()); } + (rule__VLSUnaryNegation__OperandAssignment_2) + { after(grammarAccess.getVLSUnaryNegationAccess().getOperandAssignment_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSUnaryInfix__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUnaryInfix__Group__0__Impl + rule__VLSUnaryInfix__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryInfix__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUnaryInfixAccess().getVLSAtomicParserRuleCall_0()); } + ruleVLSAtomic + { after(grammarAccess.getVLSUnaryInfixAccess().getVLSAtomicParserRuleCall_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryInfix__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUnaryInfix__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryInfix__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUnaryInfixAccess().getGroup_1()); } + (rule__VLSUnaryInfix__Group_1__0)? + { after(grammarAccess.getVLSUnaryInfixAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSUnaryInfix__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUnaryInfix__Group_1__0__Impl + rule__VLSUnaryInfix__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryInfix__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUnaryInfixAccess().getAlternatives_1_0()); } + (rule__VLSUnaryInfix__Alternatives_1_0) + { after(grammarAccess.getVLSUnaryInfixAccess().getAlternatives_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryInfix__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUnaryInfix__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryInfix__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUnaryInfixAccess().getRightAssignment_1_1()); } + (rule__VLSUnaryInfix__RightAssignment_1_1) + { after(grammarAccess.getVLSUnaryInfixAccess().getRightAssignment_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSUnaryInfix__Group_1_0_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUnaryInfix__Group_1_0_0__0__Impl + rule__VLSUnaryInfix__Group_1_0_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryInfix__Group_1_0_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUnaryInfixAccess().getVLSInequalityLeftAction_1_0_0_0()); } + () + { after(grammarAccess.getVLSUnaryInfixAccess().getVLSInequalityLeftAction_1_0_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryInfix__Group_1_0_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUnaryInfix__Group_1_0_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryInfix__Group_1_0_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUnaryInfixAccess().getExclamationMarkEqualsSignKeyword_1_0_0_1()); } + '!=' + { after(grammarAccess.getVLSUnaryInfixAccess().getExclamationMarkEqualsSignKeyword_1_0_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSUnaryInfix__Group_1_0_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUnaryInfix__Group_1_0_1__0__Impl + rule__VLSUnaryInfix__Group_1_0_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryInfix__Group_1_0_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUnaryInfixAccess().getVLSEqualityLeftAction_1_0_1_0()); } + () + { after(grammarAccess.getVLSUnaryInfixAccess().getVLSEqualityLeftAction_1_0_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryInfix__Group_1_0_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUnaryInfix__Group_1_0_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryInfix__Group_1_0_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUnaryInfixAccess().getEqualsSignKeyword_1_0_1_1()); } + '=' + { after(grammarAccess.getVLSUnaryInfixAccess().getEqualsSignKeyword_1_0_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSUnaryInfix__Group_1_0_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUnaryInfix__Group_1_0_2__0__Impl + rule__VLSUnaryInfix__Group_1_0_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryInfix__Group_1_0_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUnaryInfixAccess().getVLSAssignmentLeftAction_1_0_2_0()); } + () + { after(grammarAccess.getVLSUnaryInfixAccess().getVLSAssignmentLeftAction_1_0_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryInfix__Group_1_0_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSUnaryInfix__Group_1_0_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryInfix__Group_1_0_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSUnaryInfixAccess().getColonEqualsSignKeyword_1_0_2_1()); } + ':=' + { after(grammarAccess.getVLSUnaryInfixAccess().getColonEqualsSignKeyword_1_0_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSAtomicConstant__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicConstant__Group_0__0__Impl + rule__VLSAtomicConstant__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicConstant__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicConstantAccess().getVLSConstantAction_0_0()); } + () + { after(grammarAccess.getVLSAtomicConstantAccess().getVLSConstantAction_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicConstant__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicConstant__Group_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicConstant__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicConstantAccess().getNameAssignment_0_1()); } + (rule__VLSAtomicConstant__NameAssignment_0_1) + { after(grammarAccess.getVLSAtomicConstantAccess().getNameAssignment_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSAtomicConstant__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicConstant__Group_1__0__Impl + rule__VLSAtomicConstant__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicConstant__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicConstantAccess().getVLSTrueAction_1_0()); } + () + { after(grammarAccess.getVLSAtomicConstantAccess().getVLSTrueAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicConstant__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicConstant__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicConstant__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicConstantAccess().getTrueKeyword_1_1()); } + '$true' + { after(grammarAccess.getVLSAtomicConstantAccess().getTrueKeyword_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSAtomicConstant__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicConstant__Group_2__0__Impl + rule__VLSAtomicConstant__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicConstant__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicConstantAccess().getVLSFalseAction_2_0()); } + () + { after(grammarAccess.getVLSAtomicConstantAccess().getVLSFalseAction_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicConstant__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicConstant__Group_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicConstant__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicConstantAccess().getFalseKeyword_2_1()); } + '$false' + { after(grammarAccess.getVLSAtomicConstantAccess().getFalseKeyword_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSAtomicFunction__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicFunction__Group_0__0__Impl + rule__VLSAtomicFunction__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicFunctionAccess().getVLSFunctionAction_0_0()); } + () + { after(grammarAccess.getVLSAtomicFunctionAccess().getVLSFunctionAction_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicFunction__Group_0__1__Impl + rule__VLSAtomicFunction__Group_0__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicFunctionAccess().getConstantAssignment_0_1()); } + (rule__VLSAtomicFunction__ConstantAssignment_0_1) + { after(grammarAccess.getVLSAtomicFunctionAccess().getConstantAssignment_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_0__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicFunction__Group_0__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_0__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicFunctionAccess().getGroup_0_2()); } + (rule__VLSAtomicFunction__Group_0_2__0) + { after(grammarAccess.getVLSAtomicFunctionAccess().getGroup_0_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSAtomicFunction__Group_0_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicFunction__Group_0_2__0__Impl + rule__VLSAtomicFunction__Group_0_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_0_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicFunctionAccess().getLeftParenthesisKeyword_0_2_0()); } + '(' + { after(grammarAccess.getVLSAtomicFunctionAccess().getLeftParenthesisKeyword_0_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_0_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicFunction__Group_0_2__1__Impl + rule__VLSAtomicFunction__Group_0_2__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_0_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicFunctionAccess().getTermsAssignment_0_2_1()); } + (rule__VLSAtomicFunction__TermsAssignment_0_2_1) + { after(grammarAccess.getVLSAtomicFunctionAccess().getTermsAssignment_0_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_0_2__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicFunction__Group_0_2__2__Impl + rule__VLSAtomicFunction__Group_0_2__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_0_2__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicFunctionAccess().getGroup_0_2_2()); } + (rule__VLSAtomicFunction__Group_0_2_2__0)* + { after(grammarAccess.getVLSAtomicFunctionAccess().getGroup_0_2_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_0_2__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicFunction__Group_0_2__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_0_2__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicFunctionAccess().getRightParenthesisKeyword_0_2_3()); } + ')' + { after(grammarAccess.getVLSAtomicFunctionAccess().getRightParenthesisKeyword_0_2_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSAtomicFunction__Group_0_2_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicFunction__Group_0_2_2__0__Impl + rule__VLSAtomicFunction__Group_0_2_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_0_2_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicFunctionAccess().getCommaKeyword_0_2_2_0()); } + ',' + { after(grammarAccess.getVLSAtomicFunctionAccess().getCommaKeyword_0_2_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_0_2_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicFunction__Group_0_2_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_0_2_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicFunctionAccess().getTermsAssignment_0_2_2_1()); } + (rule__VLSAtomicFunction__TermsAssignment_0_2_2_1) + { after(grammarAccess.getVLSAtomicFunctionAccess().getTermsAssignment_0_2_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSAtomicFunction__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicFunction__Group_1__0__Impl + rule__VLSAtomicFunction__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicFunctionAccess().getVLSLessAction_1_0()); } + () + { after(grammarAccess.getVLSAtomicFunctionAccess().getVLSLessAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicFunction__Group_1__1__Impl + rule__VLSAtomicFunction__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicFunctionAccess().getNameAssignment_1_1()); } + (rule__VLSAtomicFunction__NameAssignment_1_1) + { after(grammarAccess.getVLSAtomicFunctionAccess().getNameAssignment_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicFunction__Group_1__2__Impl + rule__VLSAtomicFunction__Group_1__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicFunctionAccess().getLeftParenthesisKeyword_1_2()); } + '(' + { after(grammarAccess.getVLSAtomicFunctionAccess().getLeftParenthesisKeyword_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_1__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicFunction__Group_1__3__Impl + rule__VLSAtomicFunction__Group_1__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_1__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicFunctionAccess().getTermsAssignment_1_3()); } + (rule__VLSAtomicFunction__TermsAssignment_1_3) + { after(grammarAccess.getVLSAtomicFunctionAccess().getTermsAssignment_1_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_1__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicFunction__Group_1__4__Impl + rule__VLSAtomicFunction__Group_1__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_1__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicFunctionAccess().getCommaKeyword_1_4()); } + ',' + { after(grammarAccess.getVLSAtomicFunctionAccess().getCommaKeyword_1_4()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_1__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicFunction__Group_1__5__Impl + rule__VLSAtomicFunction__Group_1__6 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_1__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicFunctionAccess().getTermsAssignment_1_5()); } + (rule__VLSAtomicFunction__TermsAssignment_1_5) + { after(grammarAccess.getVLSAtomicFunctionAccess().getTermsAssignment_1_5()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_1__6 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSAtomicFunction__Group_1__6__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__Group_1__6__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSAtomicFunctionAccess().getRightParenthesisKeyword_1_6()); } + ')' + { after(grammarAccess.getVLSAtomicFunctionAccess().getRightParenthesisKeyword_1_6()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSFunctionFof__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSFunctionFof__Group__0__Impl + rule__VLSFunctionFof__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFunctionFof__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSFunctionFofAccess().getFunctorAssignment_0()); } + (rule__VLSFunctionFof__FunctorAssignment_0) + { after(grammarAccess.getVLSFunctionFofAccess().getFunctorAssignment_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFunctionFof__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSFunctionFof__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFunctionFof__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSFunctionFofAccess().getGroup_1()); } + (rule__VLSFunctionFof__Group_1__0)? + { after(grammarAccess.getVLSFunctionFofAccess().getGroup_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSFunctionFof__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSFunctionFof__Group_1__0__Impl + rule__VLSFunctionFof__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFunctionFof__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSFunctionFofAccess().getLeftParenthesisKeyword_1_0()); } + '(' + { after(grammarAccess.getVLSFunctionFofAccess().getLeftParenthesisKeyword_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFunctionFof__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSFunctionFof__Group_1__1__Impl + rule__VLSFunctionFof__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFunctionFof__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSFunctionFofAccess().getTermsAssignment_1_1()); } + (rule__VLSFunctionFof__TermsAssignment_1_1) + { after(grammarAccess.getVLSFunctionFofAccess().getTermsAssignment_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFunctionFof__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSFunctionFof__Group_1__2__Impl + rule__VLSFunctionFof__Group_1__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFunctionFof__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSFunctionFofAccess().getGroup_1_2()); } + (rule__VLSFunctionFof__Group_1_2__0)* + { after(grammarAccess.getVLSFunctionFofAccess().getGroup_1_2()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFunctionFof__Group_1__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSFunctionFof__Group_1__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFunctionFof__Group_1__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSFunctionFofAccess().getRightParenthesisKeyword_1_3()); } + ')' + { after(grammarAccess.getVLSFunctionFofAccess().getRightParenthesisKeyword_1_3()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSFunctionFof__Group_1_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSFunctionFof__Group_1_2__0__Impl + rule__VLSFunctionFof__Group_1_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFunctionFof__Group_1_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSFunctionFofAccess().getCommaKeyword_1_2_0()); } + ',' + { after(grammarAccess.getVLSFunctionFofAccess().getCommaKeyword_1_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFunctionFof__Group_1_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSFunctionFof__Group_1_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFunctionFof__Group_1_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSFunctionFofAccess().getTermsAssignment_1_2_1()); } + (rule__VLSFunctionFof__TermsAssignment_1_2_1) + { after(grammarAccess.getVLSFunctionFofAccess().getTermsAssignment_1_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSDefinedTerm__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSDefinedTerm__Group_0__0__Impl + rule__VLSDefinedTerm__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSDefinedTerm__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSDefinedTermAccess().getVLSIntAction_0_0()); } + () + { after(grammarAccess.getVLSDefinedTermAccess().getVLSIntAction_0_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSDefinedTerm__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSDefinedTerm__Group_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSDefinedTerm__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSDefinedTermAccess().getValueAssignment_0_1()); } + (rule__VLSDefinedTerm__ValueAssignment_0_1) + { after(grammarAccess.getVLSDefinedTermAccess().getValueAssignment_0_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSDefinedTerm__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSDefinedTerm__Group_1__0__Impl + rule__VLSDefinedTerm__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSDefinedTerm__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSDefinedTermAccess().getVLSRealAction_1_0()); } + () + { after(grammarAccess.getVLSDefinedTermAccess().getVLSRealAction_1_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSDefinedTerm__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSDefinedTerm__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSDefinedTerm__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSDefinedTermAccess().getValueAssignment_1_1()); } + (rule__VLSDefinedTerm__ValueAssignment_1_1) + { after(grammarAccess.getVLSDefinedTermAccess().getValueAssignment_1_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSDefinedTerm__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSDefinedTerm__Group_2__0__Impl + rule__VLSDefinedTerm__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSDefinedTerm__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSDefinedTermAccess().getVLSRationalAction_2_0()); } + () + { after(grammarAccess.getVLSDefinedTermAccess().getVLSRationalAction_2_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSDefinedTerm__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSDefinedTerm__Group_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSDefinedTerm__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSDefinedTermAccess().getValueAssignment_2_1()); } + (rule__VLSDefinedTerm__ValueAssignment_2_1) + { after(grammarAccess.getVLSDefinedTermAccess().getValueAssignment_2_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VLSDefinedTerm__Group_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSDefinedTerm__Group_3__0__Impl + rule__VLSDefinedTerm__Group_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSDefinedTerm__Group_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSDefinedTermAccess().getVLSDoubleQuoteAction_3_0()); } + () + { after(grammarAccess.getVLSDefinedTermAccess().getVLSDoubleQuoteAction_3_0()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSDefinedTerm__Group_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__VLSDefinedTerm__Group_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSDefinedTerm__Group_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getVLSDefinedTermAccess().getValueAssignment_3_1()); } + (rule__VLSDefinedTerm__ValueAssignment_3_1) + { after(grammarAccess.getVLSDefinedTermAccess().getValueAssignment_3_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + + +rule__VampireModel__IncludesAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVampireModelAccess().getIncludesVLSIncludeParserRuleCall_0_0()); } + ruleVLSInclude + { after(grammarAccess.getVampireModelAccess().getIncludesVLSIncludeParserRuleCall_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VampireModel__CommentsAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVampireModelAccess().getCommentsVLSCommentParserRuleCall_1_0()); } + ruleVLSComment + { after(grammarAccess.getVampireModelAccess().getCommentsVLSCommentParserRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VampireModel__FormulasAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVampireModelAccess().getFormulasVLSFofFormulaParserRuleCall_2_0()); } + ruleVLSFofFormula + { after(grammarAccess.getVampireModelAccess().getFormulasVLSFofFormulaParserRuleCall_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSInclude__FileNameAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSIncludeAccess().getFileNameSINGLE_QUOTETerminalRuleCall_1_0()); } + RULE_SINGLE_QUOTE + { after(grammarAccess.getVLSIncludeAccess().getFileNameSINGLE_QUOTETerminalRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSInclude__NamesAssignment_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSIncludeAccess().getNamesVLSNameParserRuleCall_2_1_0()); } + ruleVLSName + { after(grammarAccess.getVLSIncludeAccess().getNamesVLSNameParserRuleCall_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSInclude__NamesAssignment_2_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSIncludeAccess().getNamesVLSNameParserRuleCall_2_2_1_0()); } + ruleVLSName + { after(grammarAccess.getVLSIncludeAccess().getNamesVLSNameParserRuleCall_2_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSName__NameAssignment + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSNameAccess().getNameAlternatives_0()); } + (rule__VLSName__NameAlternatives_0) + { after(grammarAccess.getVLSNameAccess().getNameAlternatives_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSComment__CommentAssignment + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSCommentAccess().getCommentSINGLE_COMMENTTerminalRuleCall_0()); } + RULE_SINGLE_COMMENT + { after(grammarAccess.getVLSCommentAccess().getCommentSINGLE_COMMENTTerminalRuleCall_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__NameAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSFofFormulaAccess().getNameAlternatives_2_0()); } + (rule__VLSFofFormula__NameAlternatives_2_0) + { after(grammarAccess.getVLSFofFormulaAccess().getNameAlternatives_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__FofRoleAssignment_4 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSFofFormulaAccess().getFofRoleVLSRoleParserRuleCall_4_0()); } + ruleVLSRole + { after(grammarAccess.getVLSFofFormulaAccess().getFofRoleVLSRoleParserRuleCall_4_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__FofFormulaAssignment_6 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSFofFormulaAccess().getFofFormulaVLSTermParserRuleCall_6_0()); } + ruleVLSTerm + { after(grammarAccess.getVLSFofFormulaAccess().getFofFormulaVLSTermParserRuleCall_6_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFofFormula__AnnotationsAssignment_7_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSFofFormulaAccess().getAnnotationsVLSAnnotationParserRuleCall_7_1_0()); } + ruleVLSAnnotation + { after(grammarAccess.getVLSFofFormulaAccess().getAnnotationsVLSAnnotationParserRuleCall_7_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotation__NameAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSAnnotationAccess().getNameAlternatives_1_0()); } + (rule__VLSAnnotation__NameAlternatives_1_0) + { after(grammarAccess.getVLSAnnotationAccess().getNameAlternatives_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotation__FollowupAssignment_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSAnnotationAccess().getFollowupVLSAnnotationTermsParserRuleCall_2_1_0()); } + ruleVLSAnnotationTerms + { after(grammarAccess.getVLSAnnotationAccess().getFollowupVLSAnnotationTermsParserRuleCall_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotationTerms__TermsAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSAnnotationTermsAccess().getTermsVLSAnnotationParserRuleCall_0_0()); } + ruleVLSAnnotation + { after(grammarAccess.getVLSAnnotationTermsAccess().getTermsVLSAnnotationParserRuleCall_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAnnotationTerms__TermsAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSAnnotationTermsAccess().getTermsVLSAnnotationParserRuleCall_1_1_0()); } + ruleVLSAnnotation + { after(grammarAccess.getVLSAnnotationTermsAccess().getTermsVLSAnnotationParserRuleCall_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__RightAssignment_1_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_0_1_0()); } + ruleVLSUnitaryFormula + { after(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__RightAssignment_1_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_1_2_0()); } + ruleVLSUnitaryFormula + { after(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSBinary__RightAssignment_1_2_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_2_2_0()); } + ruleVLSUnitaryFormula + { after(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_2_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__VariablesAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_2_0()); } + ruleVLSVariable + { after(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__VariablesAssignment_1_3_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_3_1_0()); } + ruleVLSVariable + { after(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_3_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUniversalQuantifier__OperandAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSUniversalQuantifierAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0()); } + ruleVLSUnitaryFormula + { after(grammarAccess.getVLSUniversalQuantifierAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__VariablesAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_2_0()); } + ruleVLSVariable + { after(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__VariablesAssignment_1_3_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_3_1_0()); } + ruleVLSVariable + { after(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_3_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSExistentialQuantifier__OperandAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSExistentialQuantifierAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0()); } + ruleVLSUnitaryFormula + { after(grammarAccess.getVLSExistentialQuantifierAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryNegation__OperandAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSUnaryNegationAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0()); } + ruleVLSUnitaryFormula + { after(grammarAccess.getVLSUnaryNegationAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSUnaryInfix__RightAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSUnaryInfixAccess().getRightVLSAtomicParserRuleCall_1_1_0()); } + ruleVLSAtomic + { after(grammarAccess.getVLSUnaryInfixAccess().getRightVLSAtomicParserRuleCall_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicConstant__NameAssignment_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSAtomicConstantAccess().getNameAlternatives_0_1_0()); } + (rule__VLSAtomicConstant__NameAlternatives_0_1_0) + { after(grammarAccess.getVLSAtomicConstantAccess().getNameAlternatives_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__ConstantAssignment_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSAtomicFunctionAccess().getConstantAlternatives_0_1_0()); } + (rule__VLSAtomicFunction__ConstantAlternatives_0_1_0) + { after(grammarAccess.getVLSAtomicFunctionAccess().getConstantAlternatives_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__TermsAssignment_0_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_0_2_1_0()); } + ruleVLSFofTerm + { after(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_0_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__TermsAssignment_0_2_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_0_2_2_1_0()); } + ruleVLSFofTerm + { after(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_0_2_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__NameAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSAtomicFunctionAccess().getNameLessKeyword_1_1_0()); } + ( + { before(grammarAccess.getVLSAtomicFunctionAccess().getNameLessKeyword_1_1_0()); } + '$less' + { after(grammarAccess.getVLSAtomicFunctionAccess().getNameLessKeyword_1_1_0()); } + ) + { after(grammarAccess.getVLSAtomicFunctionAccess().getNameLessKeyword_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__TermsAssignment_1_3 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_1_3_0()); } + ruleVLSFofTerm + { after(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_1_3_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSAtomicFunction__TermsAssignment_1_5 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_1_5_0()); } + ruleVLSFofTerm + { after(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_1_5_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSVariable__NameAssignment + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSVariableAccess().getNameUPPER_WORD_IDTerminalRuleCall_0()); } + RULE_UPPER_WORD_ID + { after(grammarAccess.getVLSVariableAccess().getNameUPPER_WORD_IDTerminalRuleCall_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFunctionFof__FunctorAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSFunctionFofAccess().getFunctorAlternatives_0_0()); } + (rule__VLSFunctionFof__FunctorAlternatives_0_0) + { after(grammarAccess.getVLSFunctionFofAccess().getFunctorAlternatives_0_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFunctionFof__TermsAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSFunctionFofAccess().getTermsVLSFofTermParserRuleCall_1_1_0()); } + ruleVLSFofTerm + { after(grammarAccess.getVLSFunctionFofAccess().getTermsVLSFofTermParserRuleCall_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSFunctionFof__TermsAssignment_1_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSFunctionFofAccess().getTermsVLSFofTermParserRuleCall_1_2_1_0()); } + ruleVLSFofTerm + { after(grammarAccess.getVLSFunctionFofAccess().getTermsVLSFofTermParserRuleCall_1_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSDefinedTerm__ValueAssignment_0_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_LITERALTerminalRuleCall_0_1_0()); } + RULE_SIGNED_LITERAL + { after(grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_LITERALTerminalRuleCall_0_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSDefinedTerm__ValueAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_REAL_IDTerminalRuleCall_1_1_0()); } + RULE_SIGNED_REAL_ID + { after(grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_REAL_IDTerminalRuleCall_1_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSDefinedTerm__ValueAssignment_2_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_RAT_IDTerminalRuleCall_2_1_0()); } + RULE_SIGNED_RAT_ID + { after(grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_RAT_IDTerminalRuleCall_2_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__VLSDefinedTerm__ValueAssignment_3_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getVLSDefinedTermAccess().getValueDOUBLE_QUOTETerminalRuleCall_3_1_0()); } + RULE_DOUBLE_QUOTE + { after(grammarAccess.getVLSDefinedTermAccess().getValueDOUBLE_QUOTETerminalRuleCall_3_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +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_ANY_OTHER : '%' ~(('\n'|'\r'))* '\r'; + +RULE_SINGLE_COMMENT : RULE_ANY_OTHER; + +RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*; + +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')+; diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/internal/InternalVampireLanguage.tokens b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/internal/InternalVampireLanguage.tokens new file mode 100644 index 00000000..72d5159d --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/internal/InternalVampireLanguage.tokens @@ -0,0 +1,107 @@ +'!'=59 +'!='=63 +'$false'=67 +'$less'=68 +'$true'=66 +'&'=57 +'('=47 +')'=48 +','=45 +',['=43 +'.'=49 +':'=60 +':='=65 +'<='=53 +'<=>'=51 +'<~>'=54 +'='=64 +'=>'=52 +'?'=61 +'['=50 +']'=44 +'assumption'=31 +'axiom'=27 +'conjecture'=28 +'corollary'=34 +'definition'=30 +'fi_domain'=38 +'fi_functors'=39 +'fi_predicates'=40 +'fof'=46 +'hypothesis'=29 +'include('=42 +'lemma'=32 +'negated_conjecture'=35 +'plain'=36 +'theorem'=33 +'type'=37 +'unknown'=41 +'|'=58 +'~&'=56 +'~'=62 +'~|'=55 +RULE_ALPHA_NUMERIC=15 +RULE_ANY_OTHER=21 +RULE_DOLLAR_ID=8 +RULE_DOUBLE_DOLLAR_ID=9 +RULE_DOUBLE_QUOTE=14 +RULE_ID=22 +RULE_INT=17 +RULE_LITERAL=6 +RULE_LOWER_WORD_ID=4 +RULE_ML_COMMENT=24 +RULE_SIGN=16 +RULE_SIGNED_LITERAL=7 +RULE_SIGNED_RAT_ID=13 +RULE_SIGNED_REAL_ID=12 +RULE_SINGLE_COMMENT=10 +RULE_SINGLE_QUOTE=5 +RULE_SL_COMMENT=25 +RULE_STRING=23 +RULE_UNSIGNED_RAT_ID=20 +RULE_UNSIGNED_REAL_EXP_ID=19 +RULE_UNSIGNED_REAL_FRAC_ID=18 +RULE_UPPER_WORD_ID=11 +RULE_WS=26 +T__27=27 +T__28=28 +T__29=29 +T__30=30 +T__31=31 +T__32=32 +T__33=33 +T__34=34 +T__35=35 +T__36=36 +T__37=37 +T__38=38 +T__39=39 +T__40=40 +T__41=41 +T__42=42 +T__43=43 +T__44=44 +T__45=45 +T__46=46 +T__47=47 +T__48=48 +T__49=49 +T__50=50 +T__51=51 +T__52=52 +T__53=53 +T__54=54 +T__55=55 +T__56=56 +T__57=57 +T__58=58 +T__59=59 +T__60=60 +T__61=61 +T__62=62 +T__63=63 +T__64=64 +T__65=65 +T__66=66 +T__67=67 +T__68=68 diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/internal/InternalVampireLanguageLexer.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/internal/InternalVampireLanguageLexer.java new file mode 100644 index 00000000..dd053b21 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/internal/InternalVampireLanguageLexer.java @@ -0,0 +1,3100 @@ +package ca.mcgill.ecse.dslreasoner.ide.contentassist.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.ide.editor.contentassist.antlr.internal.Lexer; + + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; + +@SuppressWarnings("all") +public class InternalVampireLanguageLexer extends Lexer { + public static final int RULE_UNSIGNED_RAT_ID=20; + public static final int T__50=50; + public static final int RULE_SIGN=16; + public static final int T__59=59; + public static final int RULE_SIGNED_LITERAL=7; + public static final int T__55=55; + public static final int T__56=56; + public static final int T__57=57; + public static final int T__58=58; + public static final int T__51=51; + public static final int RULE_DOUBLE_QUOTE=14; + public static final int T__52=52; + public static final int RULE_LITERAL=6; + public static final int T__53=53; + public static final int RULE_UNSIGNED_REAL_FRAC_ID=18; + public static final int T__54=54; + public static final int T__60=60; + public static final int T__61=61; + public static final int RULE_ID=22; + public static final int RULE_SINGLE_QUOTE=5; + public static final int RULE_SINGLE_COMMENT=10; + public static final int T__27=27; + public static final int T__28=28; + public static final int RULE_INT=17; + public static final int T__29=29; + public static final int T__66=66; + public static final int RULE_ML_COMMENT=24; + public static final int T__67=67; + public static final int RULE_SIGNED_RAT_ID=13; + public static final int T__68=68; + public static final int T__62=62; + public static final int T__63=63; + public static final int T__64=64; + public static final int T__65=65; + public static final int RULE_LOWER_WORD_ID=4; + public static final int RULE_STRING=23; + public static final int RULE_SL_COMMENT=25; + public static final int T__37=37; + public static final int T__38=38; + public static final int T__39=39; + public static final int T__33=33; + public static final int T__34=34; + public static final int T__35=35; + public static final int T__36=36; + public static final int EOF=-1; + public static final int T__30=30; + public static final int RULE_UNSIGNED_REAL_EXP_ID=19; + public static final int T__31=31; + public static final int T__32=32; + public static final int RULE_UPPER_WORD_ID=11; + public static final int RULE_WS=26; + public static final int RULE_DOLLAR_ID=8; + public static final int RULE_ALPHA_NUMERIC=15; + public static final int RULE_ANY_OTHER=21; + public static final int RULE_DOUBLE_DOLLAR_ID=9; + public static final int T__48=48; + public static final int T__49=49; + public static final int T__44=44; + public static final int T__45=45; + public static final int RULE_SIGNED_REAL_ID=12; + public static final int T__46=46; + public static final int T__47=47; + public static final int T__40=40; + public static final int T__41=41; + public static final int T__42=42; + public static final int T__43=43; + + // delegates + // delegators + + public InternalVampireLanguageLexer() {;} + public InternalVampireLanguageLexer(CharStream input) { + this(input, new RecognizerSharedState()); + } + public InternalVampireLanguageLexer(CharStream input, RecognizerSharedState state) { + super(input,state); + + } + public String getGrammarFileName() { return "InternalVampireLanguage.g"; } + + // $ANTLR start "T__27" + public final void mT__27() throws RecognitionException { + try { + int _type = T__27; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:11:7: ( 'axiom' ) + // InternalVampireLanguage.g:11:9: 'axiom' + { + match("axiom"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__27" + + // $ANTLR start "T__28" + public final void mT__28() throws RecognitionException { + try { + int _type = T__28; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:12:7: ( 'conjecture' ) + // InternalVampireLanguage.g:12:9: 'conjecture' + { + match("conjecture"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__28" + + // $ANTLR start "T__29" + public final void mT__29() throws RecognitionException { + try { + int _type = T__29; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:13:7: ( 'hypothesis' ) + // InternalVampireLanguage.g:13:9: 'hypothesis' + { + match("hypothesis"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__29" + + // $ANTLR start "T__30" + public final void mT__30() throws RecognitionException { + try { + int _type = T__30; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:14:7: ( 'definition' ) + // InternalVampireLanguage.g:14:9: 'definition' + { + match("definition"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__30" + + // $ANTLR start "T__31" + public final void mT__31() throws RecognitionException { + try { + int _type = T__31; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:15:7: ( 'assumption' ) + // InternalVampireLanguage.g:15:9: 'assumption' + { + match("assumption"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__31" + + // $ANTLR start "T__32" + public final void mT__32() throws RecognitionException { + try { + int _type = T__32; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:16:7: ( 'lemma' ) + // InternalVampireLanguage.g:16:9: 'lemma' + { + match("lemma"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__32" + + // $ANTLR start "T__33" + public final void mT__33() throws RecognitionException { + try { + int _type = T__33; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:17:7: ( 'theorem' ) + // InternalVampireLanguage.g:17:9: 'theorem' + { + match("theorem"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__33" + + // $ANTLR start "T__34" + public final void mT__34() throws RecognitionException { + try { + int _type = T__34; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:18:7: ( 'corollary' ) + // InternalVampireLanguage.g:18:9: 'corollary' + { + match("corollary"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__34" + + // $ANTLR start "T__35" + public final void mT__35() throws RecognitionException { + try { + int _type = T__35; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:19:7: ( 'negated_conjecture' ) + // InternalVampireLanguage.g:19:9: 'negated_conjecture' + { + match("negated_conjecture"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__35" + + // $ANTLR start "T__36" + public final void mT__36() throws RecognitionException { + try { + int _type = T__36; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:20:7: ( 'plain' ) + // InternalVampireLanguage.g:20:9: 'plain' + { + match("plain"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__36" + + // $ANTLR start "T__37" + public final void mT__37() throws RecognitionException { + try { + int _type = T__37; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:21:7: ( 'type' ) + // InternalVampireLanguage.g:21:9: 'type' + { + match("type"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__37" + + // $ANTLR start "T__38" + public final void mT__38() throws RecognitionException { + try { + int _type = T__38; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:22:7: ( 'fi_domain' ) + // InternalVampireLanguage.g:22:9: 'fi_domain' + { + match("fi_domain"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__38" + + // $ANTLR start "T__39" + public final void mT__39() throws RecognitionException { + try { + int _type = T__39; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:23:7: ( 'fi_functors' ) + // InternalVampireLanguage.g:23:9: 'fi_functors' + { + match("fi_functors"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__39" + + // $ANTLR start "T__40" + public final void mT__40() throws RecognitionException { + try { + int _type = T__40; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:24:7: ( 'fi_predicates' ) + // InternalVampireLanguage.g:24:9: 'fi_predicates' + { + match("fi_predicates"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__40" + + // $ANTLR start "T__41" + public final void mT__41() throws RecognitionException { + try { + int _type = T__41; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:25:7: ( 'unknown' ) + // InternalVampireLanguage.g:25:9: 'unknown' + { + match("unknown"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__41" + + // $ANTLR start "T__42" + public final void mT__42() throws RecognitionException { + try { + int _type = T__42; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:26:7: ( 'include(' ) + // InternalVampireLanguage.g:26:9: 'include(' + { + match("include("); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__42" + + // $ANTLR start "T__43" + public final void mT__43() throws RecognitionException { + try { + int _type = T__43; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:27:7: ( ',[' ) + // InternalVampireLanguage.g:27:9: ',[' + { + match(",["); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__43" + + // $ANTLR start "T__44" + public final void mT__44() throws RecognitionException { + try { + int _type = T__44; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:28:7: ( ']' ) + // InternalVampireLanguage.g:28:9: ']' + { + match(']'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__44" + + // $ANTLR start "T__45" + public final void mT__45() throws RecognitionException { + try { + int _type = T__45; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:29:7: ( ',' ) + // InternalVampireLanguage.g:29:9: ',' + { + match(','); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__45" + + // $ANTLR start "T__46" + public final void mT__46() throws RecognitionException { + try { + int _type = T__46; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:30:7: ( 'fof' ) + // InternalVampireLanguage.g:30:9: 'fof' + { + match("fof"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__46" + + // $ANTLR start "T__47" + public final void mT__47() throws RecognitionException { + try { + int _type = T__47; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:31:7: ( '(' ) + // InternalVampireLanguage.g:31:9: '(' + { + match('('); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__47" + + // $ANTLR start "T__48" + public final void mT__48() throws RecognitionException { + try { + int _type = T__48; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:32:7: ( ')' ) + // InternalVampireLanguage.g:32:9: ')' + { + match(')'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__48" + + // $ANTLR start "T__49" + public final void mT__49() throws RecognitionException { + try { + int _type = T__49; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:33:7: ( '.' ) + // InternalVampireLanguage.g:33:9: '.' + { + match('.'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__49" + + // $ANTLR start "T__50" + public final void mT__50() throws RecognitionException { + try { + int _type = T__50; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:34:7: ( '[' ) + // InternalVampireLanguage.g:34:9: '[' + { + match('['); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__50" + + // $ANTLR start "T__51" + public final void mT__51() throws RecognitionException { + try { + int _type = T__51; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:35:7: ( '<=>' ) + // InternalVampireLanguage.g:35:9: '<=>' + { + match("<=>"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__51" + + // $ANTLR start "T__52" + public final void mT__52() throws RecognitionException { + try { + int _type = T__52; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:36:7: ( '=>' ) + // InternalVampireLanguage.g:36:9: '=>' + { + match("=>"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__52" + + // $ANTLR start "T__53" + public final void mT__53() throws RecognitionException { + try { + int _type = T__53; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:37:7: ( '<=' ) + // InternalVampireLanguage.g:37:9: '<=' + { + match("<="); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__53" + + // $ANTLR start "T__54" + public final void mT__54() throws RecognitionException { + try { + int _type = T__54; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:38:7: ( '<~>' ) + // InternalVampireLanguage.g:38:9: '<~>' + { + match("<~>"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__54" + + // $ANTLR start "T__55" + public final void mT__55() throws RecognitionException { + try { + int _type = T__55; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:39:7: ( '~|' ) + // InternalVampireLanguage.g:39:9: '~|' + { + match("~|"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__55" + + // $ANTLR start "T__56" + public final void mT__56() throws RecognitionException { + try { + int _type = T__56; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:40:7: ( '~&' ) + // InternalVampireLanguage.g:40:9: '~&' + { + match("~&"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__56" + + // $ANTLR start "T__57" + public final void mT__57() throws RecognitionException { + try { + int _type = T__57; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:41:7: ( '&' ) + // InternalVampireLanguage.g:41:9: '&' + { + match('&'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__57" + + // $ANTLR start "T__58" + public final void mT__58() throws RecognitionException { + try { + int _type = T__58; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:42:7: ( '|' ) + // InternalVampireLanguage.g:42:9: '|' + { + match('|'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__58" + + // $ANTLR start "T__59" + public final void mT__59() throws RecognitionException { + try { + int _type = T__59; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:43:7: ( '!' ) + // InternalVampireLanguage.g:43:9: '!' + { + match('!'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__59" + + // $ANTLR start "T__60" + public final void mT__60() throws RecognitionException { + try { + int _type = T__60; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:44:7: ( ':' ) + // InternalVampireLanguage.g:44:9: ':' + { + match(':'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__60" + + // $ANTLR start "T__61" + public final void mT__61() throws RecognitionException { + try { + int _type = T__61; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:45:7: ( '?' ) + // InternalVampireLanguage.g:45:9: '?' + { + match('?'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__61" + + // $ANTLR start "T__62" + public final void mT__62() throws RecognitionException { + try { + int _type = T__62; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:46:7: ( '~' ) + // InternalVampireLanguage.g:46:9: '~' + { + match('~'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__62" + + // $ANTLR start "T__63" + public final void mT__63() throws RecognitionException { + try { + int _type = T__63; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:47:7: ( '!=' ) + // InternalVampireLanguage.g:47:9: '!=' + { + match("!="); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__63" + + // $ANTLR start "T__64" + public final void mT__64() throws RecognitionException { + try { + int _type = T__64; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:48:7: ( '=' ) + // InternalVampireLanguage.g:48:9: '=' + { + match('='); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__64" + + // $ANTLR start "T__65" + public final void mT__65() throws RecognitionException { + try { + int _type = T__65; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:49:7: ( ':=' ) + // InternalVampireLanguage.g:49:9: ':=' + { + match(":="); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__65" + + // $ANTLR start "T__66" + public final void mT__66() throws RecognitionException { + try { + int _type = T__66; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:50:7: ( '$true' ) + // InternalVampireLanguage.g:50:9: '$true' + { + match("$true"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__66" + + // $ANTLR start "T__67" + public final void mT__67() throws RecognitionException { + try { + int _type = T__67; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:51:7: ( '$false' ) + // InternalVampireLanguage.g:51:9: '$false' + { + match("$false"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__67" + + // $ANTLR start "T__68" + public final void mT__68() throws RecognitionException { + try { + int _type = T__68; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:52:7: ( '$less' ) + // InternalVampireLanguage.g:52:9: '$less' + { + match("$less"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__68" + + // $ANTLR start "RULE_ALPHA_NUMERIC" + public final void mRULE_ALPHA_NUMERIC() throws RecognitionException { + try { + // InternalVampireLanguage.g:5738:29: ( ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' ) ) + // InternalVampireLanguage.g:5738:31: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' ) + { + if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + } + finally { + } + } + // $ANTLR end "RULE_ALPHA_NUMERIC" + + // $ANTLR start "RULE_UPPER_WORD_ID" + public final void mRULE_UPPER_WORD_ID() throws RecognitionException { + try { + int _type = RULE_UPPER_WORD_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:5740:20: ( 'A' .. 'Z' ( RULE_ALPHA_NUMERIC )* ) + // InternalVampireLanguage.g:5740:22: 'A' .. 'Z' ( RULE_ALPHA_NUMERIC )* + { + matchRange('A','Z'); + // InternalVampireLanguage.g:5740:31: ( RULE_ALPHA_NUMERIC )* + loop1: + do { + int alt1=2; + int LA1_0 = input.LA(1); + + if ( ((LA1_0>='0' && LA1_0<='9')||(LA1_0>='A' && LA1_0<='Z')||LA1_0=='_'||(LA1_0>='a' && LA1_0<='z')) ) { + alt1=1; + } + + + switch (alt1) { + case 1 : + // InternalVampireLanguage.g:5740:31: RULE_ALPHA_NUMERIC + { + mRULE_ALPHA_NUMERIC(); + + } + break; + + default : + break loop1; + } + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_UPPER_WORD_ID" + + // $ANTLR start "RULE_LOWER_WORD_ID" + public final void mRULE_LOWER_WORD_ID() throws RecognitionException { + try { + int _type = RULE_LOWER_WORD_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:5742:20: ( 'a' .. 'z' ( RULE_ALPHA_NUMERIC )* ) + // InternalVampireLanguage.g:5742:22: 'a' .. 'z' ( RULE_ALPHA_NUMERIC )* + { + matchRange('a','z'); + // InternalVampireLanguage.g:5742:31: ( RULE_ALPHA_NUMERIC )* + loop2: + do { + int alt2=2; + int LA2_0 = input.LA(1); + + if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // InternalVampireLanguage.g:5742:31: RULE_ALPHA_NUMERIC + { + mRULE_ALPHA_NUMERIC(); + + } + break; + + default : + break loop2; + } + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_LOWER_WORD_ID" + + // $ANTLR start "RULE_DOUBLE_QUOTE" + public final void mRULE_DOUBLE_QUOTE() throws RecognitionException { + try { + int _type = RULE_DOUBLE_QUOTE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:5744:19: ( '\"' ( '\\\\' ( '\"' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' ) + // InternalVampireLanguage.g:5744:21: '\"' ( '\\\\' ( '\"' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' + { + match('\"'); + // InternalVampireLanguage.g:5744:25: ( '\\\\' ( '\"' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* + loop3: + do { + int alt3=3; + int LA3_0 = input.LA(1); + + if ( (LA3_0=='\\') ) { + alt3=1; + } + else if ( ((LA3_0>='\u0000' && LA3_0<='!')||(LA3_0>='#' && LA3_0<='[')||(LA3_0>=']' && LA3_0<='\uFFFF')) ) { + alt3=2; + } + + + switch (alt3) { + case 1 : + // InternalVampireLanguage.g:5744:26: '\\\\' ( '\"' | '\\\\' ) + { + match('\\'); + if ( input.LA(1)=='\"'||input.LA(1)=='\\' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + case 2 : + // InternalVampireLanguage.g:5744:42: ~ ( ( '\\\\' | '\"' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop3; + } + } while (true); + + match('\"'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_DOUBLE_QUOTE" + + // $ANTLR start "RULE_SINGLE_QUOTE" + public final void mRULE_SINGLE_QUOTE() throws RecognitionException { + try { + int _type = RULE_SINGLE_QUOTE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:5746:19: ( '\\'' ( '\\\\' ( '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )+ '\\'' ) + // InternalVampireLanguage.g:5746:21: '\\'' ( '\\\\' ( '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )+ '\\'' + { + match('\''); + // InternalVampireLanguage.g:5746:26: ( '\\\\' ( '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )+ + int cnt4=0; + loop4: + do { + int alt4=3; + int LA4_0 = input.LA(1); + + if ( (LA4_0=='\\') ) { + alt4=1; + } + else if ( ((LA4_0>='\u0000' && LA4_0<='&')||(LA4_0>='(' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) { + alt4=2; + } + + + switch (alt4) { + case 1 : + // InternalVampireLanguage.g:5746:27: '\\\\' ( '\\'' | '\\\\' ) + { + match('\\'); + if ( input.LA(1)=='\''||input.LA(1)=='\\' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + case 2 : + // InternalVampireLanguage.g:5746:44: ~ ( ( '\\\\' | '\\'' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + if ( cnt4 >= 1 ) break loop4; + EarlyExitException eee = + new EarlyExitException(4, input); + throw eee; + } + cnt4++; + } while (true); + + match('\''); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_SINGLE_QUOTE" + + // $ANTLR start "RULE_SIGN" + public final void mRULE_SIGN() throws RecognitionException { + try { + // InternalVampireLanguage.g:5748:20: ( ( '+' | '-' ) ) + // InternalVampireLanguage.g:5748:22: ( '+' | '-' ) + { + if ( input.LA(1)=='+'||input.LA(1)=='-' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + } + finally { + } + } + // $ANTLR end "RULE_SIGN" + + // $ANTLR start "RULE_DOLLAR_ID" + public final void mRULE_DOLLAR_ID() throws RecognitionException { + try { + int _type = RULE_DOLLAR_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:5750:16: ( '$' RULE_LOWER_WORD_ID ) + // InternalVampireLanguage.g:5750:18: '$' RULE_LOWER_WORD_ID + { + match('$'); + mRULE_LOWER_WORD_ID(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_DOLLAR_ID" + + // $ANTLR start "RULE_DOUBLE_DOLLAR_ID" + public final void mRULE_DOUBLE_DOLLAR_ID() throws RecognitionException { + try { + int _type = RULE_DOUBLE_DOLLAR_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:5752:23: ( '$$' RULE_LOWER_WORD_ID ) + // InternalVampireLanguage.g:5752:25: '$$' RULE_LOWER_WORD_ID + { + match("$$"); + + mRULE_LOWER_WORD_ID(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_DOUBLE_DOLLAR_ID" + + // $ANTLR start "RULE_LITERAL" + public final void mRULE_LITERAL() throws RecognitionException { + try { + int _type = RULE_LITERAL; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:5754:14: ( ( '0' | '1' .. '9' ( RULE_INT )? ) ) + // InternalVampireLanguage.g:5754:16: ( '0' | '1' .. '9' ( RULE_INT )? ) + { + // InternalVampireLanguage.g:5754:16: ( '0' | '1' .. '9' ( RULE_INT )? ) + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0=='0') ) { + alt6=1; + } + else if ( ((LA6_0>='1' && LA6_0<='9')) ) { + alt6=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 6, 0, input); + + throw nvae; + } + switch (alt6) { + case 1 : + // InternalVampireLanguage.g:5754:17: '0' + { + match('0'); + + } + break; + case 2 : + // InternalVampireLanguage.g:5754:21: '1' .. '9' ( RULE_INT )? + { + matchRange('1','9'); + // InternalVampireLanguage.g:5754:30: ( RULE_INT )? + int alt5=2; + int LA5_0 = input.LA(1); + + if ( ((LA5_0>='0' && LA5_0<='9')) ) { + alt5=1; + } + switch (alt5) { + case 1 : + // InternalVampireLanguage.g:5754:30: RULE_INT + { + mRULE_INT(); + + } + break; + + } + + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_LITERAL" + + // $ANTLR start "RULE_SIGNED_LITERAL" + public final void mRULE_SIGNED_LITERAL() throws RecognitionException { + try { + int _type = RULE_SIGNED_LITERAL; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:5756:21: ( ( RULE_SIGN )* RULE_LITERAL ) + // InternalVampireLanguage.g:5756:23: ( RULE_SIGN )* RULE_LITERAL + { + // InternalVampireLanguage.g:5756:23: ( RULE_SIGN )* + loop7: + do { + int alt7=2; + int LA7_0 = input.LA(1); + + if ( (LA7_0=='+'||LA7_0=='-') ) { + alt7=1; + } + + + switch (alt7) { + case 1 : + // InternalVampireLanguage.g:5756:23: RULE_SIGN + { + mRULE_SIGN(); + + } + break; + + default : + break loop7; + } + } while (true); + + mRULE_LITERAL(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_SIGNED_LITERAL" + + // $ANTLR start "RULE_UNSIGNED_REAL_FRAC_ID" + public final void mRULE_UNSIGNED_REAL_FRAC_ID() throws RecognitionException { + try { + // InternalVampireLanguage.g:5758:37: ( RULE_LITERAL '.' RULE_INT ) + // InternalVampireLanguage.g:5758:39: RULE_LITERAL '.' RULE_INT + { + mRULE_LITERAL(); + match('.'); + mRULE_INT(); + + } + + } + finally { + } + } + // $ANTLR end "RULE_UNSIGNED_REAL_FRAC_ID" + + // $ANTLR start "RULE_UNSIGNED_REAL_EXP_ID" + public final void mRULE_UNSIGNED_REAL_EXP_ID() throws RecognitionException { + try { + // InternalVampireLanguage.g:5760:36: ( ( RULE_LITERAL | RULE_UNSIGNED_REAL_FRAC_ID ) 'Ee' ( RULE_SIGN )* RULE_INT ) + // InternalVampireLanguage.g:5760:38: ( RULE_LITERAL | RULE_UNSIGNED_REAL_FRAC_ID ) 'Ee' ( RULE_SIGN )* RULE_INT + { + // InternalVampireLanguage.g:5760:38: ( RULE_LITERAL | RULE_UNSIGNED_REAL_FRAC_ID ) + int alt8=2; + alt8 = dfa8.predict(input); + switch (alt8) { + case 1 : + // InternalVampireLanguage.g:5760:39: RULE_LITERAL + { + mRULE_LITERAL(); + + } + break; + case 2 : + // InternalVampireLanguage.g:5760:52: RULE_UNSIGNED_REAL_FRAC_ID + { + mRULE_UNSIGNED_REAL_FRAC_ID(); + + } + break; + + } + + match("Ee"); + + // InternalVampireLanguage.g:5760:85: ( RULE_SIGN )* + loop9: + do { + int alt9=2; + int LA9_0 = input.LA(1); + + if ( (LA9_0=='+'||LA9_0=='-') ) { + alt9=1; + } + + + switch (alt9) { + case 1 : + // InternalVampireLanguage.g:5760:85: RULE_SIGN + { + mRULE_SIGN(); + + } + break; + + default : + break loop9; + } + } while (true); + + mRULE_INT(); + + } + + } + finally { + } + } + // $ANTLR end "RULE_UNSIGNED_REAL_EXP_ID" + + // $ANTLR start "RULE_SIGNED_REAL_ID" + public final void mRULE_SIGNED_REAL_ID() throws RecognitionException { + try { + int _type = RULE_SIGNED_REAL_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:5762:21: ( ( RULE_SIGN )* ( RULE_UNSIGNED_REAL_FRAC_ID | RULE_UNSIGNED_REAL_EXP_ID ) ) + // InternalVampireLanguage.g:5762:23: ( RULE_SIGN )* ( RULE_UNSIGNED_REAL_FRAC_ID | RULE_UNSIGNED_REAL_EXP_ID ) + { + // InternalVampireLanguage.g:5762:23: ( RULE_SIGN )* + loop10: + do { + int alt10=2; + int LA10_0 = input.LA(1); + + if ( (LA10_0=='+'||LA10_0=='-') ) { + alt10=1; + } + + + switch (alt10) { + case 1 : + // InternalVampireLanguage.g:5762:23: RULE_SIGN + { + mRULE_SIGN(); + + } + break; + + default : + break loop10; + } + } while (true); + + // InternalVampireLanguage.g:5762:34: ( RULE_UNSIGNED_REAL_FRAC_ID | RULE_UNSIGNED_REAL_EXP_ID ) + int alt11=2; + alt11 = dfa11.predict(input); + switch (alt11) { + case 1 : + // InternalVampireLanguage.g:5762:35: RULE_UNSIGNED_REAL_FRAC_ID + { + mRULE_UNSIGNED_REAL_FRAC_ID(); + + } + break; + case 2 : + // InternalVampireLanguage.g:5762:62: RULE_UNSIGNED_REAL_EXP_ID + { + mRULE_UNSIGNED_REAL_EXP_ID(); + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_SIGNED_REAL_ID" + + // $ANTLR start "RULE_UNSIGNED_RAT_ID" + public final void mRULE_UNSIGNED_RAT_ID() throws RecognitionException { + try { + // InternalVampireLanguage.g:5764:31: ( RULE_LITERAL '/' '1' .. '9' ( RULE_INT )? ) + // InternalVampireLanguage.g:5764:33: RULE_LITERAL '/' '1' .. '9' ( RULE_INT )? + { + mRULE_LITERAL(); + match('/'); + matchRange('1','9'); + // InternalVampireLanguage.g:5764:59: ( RULE_INT )? + int alt12=2; + int LA12_0 = input.LA(1); + + if ( ((LA12_0>='0' && LA12_0<='9')) ) { + alt12=1; + } + switch (alt12) { + case 1 : + // InternalVampireLanguage.g:5764:59: RULE_INT + { + mRULE_INT(); + + } + break; + + } + + + } + + } + finally { + } + } + // $ANTLR end "RULE_UNSIGNED_RAT_ID" + + // $ANTLR start "RULE_SIGNED_RAT_ID" + public final void mRULE_SIGNED_RAT_ID() throws RecognitionException { + try { + int _type = RULE_SIGNED_RAT_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:5766:20: ( ( RULE_SIGN )* RULE_UNSIGNED_RAT_ID ) + // InternalVampireLanguage.g:5766:22: ( RULE_SIGN )* RULE_UNSIGNED_RAT_ID + { + // InternalVampireLanguage.g:5766:22: ( RULE_SIGN )* + loop13: + do { + int alt13=2; + int LA13_0 = input.LA(1); + + if ( (LA13_0=='+'||LA13_0=='-') ) { + alt13=1; + } + + + switch (alt13) { + case 1 : + // InternalVampireLanguage.g:5766:22: RULE_SIGN + { + mRULE_SIGN(); + + } + break; + + default : + break loop13; + } + } while (true); + + mRULE_UNSIGNED_RAT_ID(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_SIGNED_RAT_ID" + + // $ANTLR start "RULE_ANY_OTHER" + public final void mRULE_ANY_OTHER() throws RecognitionException { + try { + // InternalVampireLanguage.g:5768:25: ( '%' (~ ( ( '\\n' | '\\r' ) ) )* '\\r' ) + // InternalVampireLanguage.g:5768:27: '%' (~ ( ( '\\n' | '\\r' ) ) )* '\\r' + { + match('%'); + // InternalVampireLanguage.g:5768:31: (~ ( ( '\\n' | '\\r' ) ) )* + loop14: + do { + int alt14=2; + int LA14_0 = input.LA(1); + + if ( ((LA14_0>='\u0000' && LA14_0<='\t')||(LA14_0>='\u000B' && LA14_0<='\f')||(LA14_0>='\u000E' && LA14_0<='\uFFFF')) ) { + alt14=1; + } + + + switch (alt14) { + case 1 : + // InternalVampireLanguage.g:5768:31: ~ ( ( '\\n' | '\\r' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop14; + } + } while (true); + + match('\r'); + + } + + } + finally { + } + } + // $ANTLR end "RULE_ANY_OTHER" + + // $ANTLR start "RULE_SINGLE_COMMENT" + public final void mRULE_SINGLE_COMMENT() throws RecognitionException { + try { + int _type = RULE_SINGLE_COMMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:5770:21: ( RULE_ANY_OTHER ) + // InternalVampireLanguage.g:5770:23: RULE_ANY_OTHER + { + mRULE_ANY_OTHER(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_SINGLE_COMMENT" + + // $ANTLR start "RULE_ID" + public final void mRULE_ID() throws RecognitionException { + try { + int _type = RULE_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:5772:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) + // InternalVampireLanguage.g:5772:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + { + // InternalVampireLanguage.g:5772:11: ( '^' )? + int alt15=2; + int LA15_0 = input.LA(1); + + if ( (LA15_0=='^') ) { + alt15=1; + } + switch (alt15) { + case 1 : + // InternalVampireLanguage.g:5772:11: '^' + { + match('^'); + + } + break; + + } + + if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + // InternalVampireLanguage.g:5772:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + loop16: + do { + int alt16=2; + int LA16_0 = input.LA(1); + + if ( ((LA16_0>='0' && LA16_0<='9')||(LA16_0>='A' && LA16_0<='Z')||LA16_0=='_'||(LA16_0>='a' && LA16_0<='z')) ) { + alt16=1; + } + + + switch (alt16) { + case 1 : + // InternalVampireLanguage.g: + { + if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop16; + } + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_ID" + + // $ANTLR start "RULE_INT" + public final void mRULE_INT() throws RecognitionException { + try { + // InternalVampireLanguage.g:5774:19: ( ( '0' .. '9' )+ ) + // InternalVampireLanguage.g:5774:21: ( '0' .. '9' )+ + { + // InternalVampireLanguage.g:5774:21: ( '0' .. '9' )+ + int cnt17=0; + loop17: + do { + int alt17=2; + int LA17_0 = input.LA(1); + + if ( ((LA17_0>='0' && LA17_0<='9')) ) { + alt17=1; + } + + + switch (alt17) { + case 1 : + // InternalVampireLanguage.g:5774:22: '0' .. '9' + { + matchRange('0','9'); + + } + break; + + default : + if ( cnt17 >= 1 ) break loop17; + EarlyExitException eee = + new EarlyExitException(17, input); + throw eee; + } + cnt17++; + } while (true); + + + } + + } + finally { + } + } + // $ANTLR end "RULE_INT" + + // $ANTLR start "RULE_STRING" + public final void mRULE_STRING() throws RecognitionException { + try { + int _type = RULE_STRING; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:5776:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) + // InternalVampireLanguage.g:5776:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + { + // InternalVampireLanguage.g:5776:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + int alt20=2; + int LA20_0 = input.LA(1); + + if ( (LA20_0=='\"') ) { + alt20=1; + } + else if ( (LA20_0=='\'') ) { + alt20=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 20, 0, input); + + throw nvae; + } + switch (alt20) { + case 1 : + // InternalVampireLanguage.g:5776:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' + { + match('\"'); + // InternalVampireLanguage.g:5776:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* + loop18: + do { + int alt18=3; + int LA18_0 = input.LA(1); + + if ( (LA18_0=='\\') ) { + alt18=1; + } + else if ( ((LA18_0>='\u0000' && LA18_0<='!')||(LA18_0>='#' && LA18_0<='[')||(LA18_0>=']' && LA18_0<='\uFFFF')) ) { + alt18=2; + } + + + switch (alt18) { + case 1 : + // InternalVampireLanguage.g:5776:21: '\\\\' . + { + match('\\'); + matchAny(); + + } + break; + case 2 : + // InternalVampireLanguage.g:5776:28: ~ ( ( '\\\\' | '\"' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop18; + } + } while (true); + + match('\"'); + + } + break; + case 2 : + // InternalVampireLanguage.g:5776:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' + { + match('\''); + // InternalVampireLanguage.g:5776:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* + loop19: + do { + int alt19=3; + int LA19_0 = input.LA(1); + + if ( (LA19_0=='\\') ) { + alt19=1; + } + else if ( ((LA19_0>='\u0000' && LA19_0<='&')||(LA19_0>='(' && LA19_0<='[')||(LA19_0>=']' && LA19_0<='\uFFFF')) ) { + alt19=2; + } + + + switch (alt19) { + case 1 : + // InternalVampireLanguage.g:5776:54: '\\\\' . + { + match('\\'); + matchAny(); + + } + break; + case 2 : + // InternalVampireLanguage.g:5776:61: ~ ( ( '\\\\' | '\\'' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop19; + } + } while (true); + + match('\''); + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_STRING" + + // $ANTLR start "RULE_ML_COMMENT" + public final void mRULE_ML_COMMENT() throws RecognitionException { + try { + int _type = RULE_ML_COMMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:5778:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // InternalVampireLanguage.g:5778:19: '/*' ( options {greedy=false; } : . )* '*/' + { + match("/*"); + + // InternalVampireLanguage.g:5778:24: ( options {greedy=false; } : . )* + loop21: + do { + int alt21=2; + int LA21_0 = input.LA(1); + + if ( (LA21_0=='*') ) { + int LA21_1 = input.LA(2); + + if ( (LA21_1=='/') ) { + alt21=2; + } + else if ( ((LA21_1>='\u0000' && LA21_1<='.')||(LA21_1>='0' && LA21_1<='\uFFFF')) ) { + alt21=1; + } + + + } + else if ( ((LA21_0>='\u0000' && LA21_0<=')')||(LA21_0>='+' && LA21_0<='\uFFFF')) ) { + alt21=1; + } + + + switch (alt21) { + case 1 : + // InternalVampireLanguage.g:5778:52: . + { + matchAny(); + + } + break; + + default : + break loop21; + } + } while (true); + + match("*/"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_ML_COMMENT" + + // $ANTLR start "RULE_SL_COMMENT" + public final void mRULE_SL_COMMENT() throws RecognitionException { + try { + int _type = RULE_SL_COMMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:5780:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) + // InternalVampireLanguage.g:5780:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? + { + match("//"); + + // InternalVampireLanguage.g:5780:24: (~ ( ( '\\n' | '\\r' ) ) )* + loop22: + do { + int alt22=2; + int LA22_0 = input.LA(1); + + if ( ((LA22_0>='\u0000' && LA22_0<='\t')||(LA22_0>='\u000B' && LA22_0<='\f')||(LA22_0>='\u000E' && LA22_0<='\uFFFF')) ) { + alt22=1; + } + + + switch (alt22) { + case 1 : + // InternalVampireLanguage.g:5780:24: ~ ( ( '\\n' | '\\r' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop22; + } + } while (true); + + // InternalVampireLanguage.g:5780:40: ( ( '\\r' )? '\\n' )? + int alt24=2; + int LA24_0 = input.LA(1); + + if ( (LA24_0=='\n'||LA24_0=='\r') ) { + alt24=1; + } + switch (alt24) { + case 1 : + // InternalVampireLanguage.g:5780:41: ( '\\r' )? '\\n' + { + // InternalVampireLanguage.g:5780:41: ( '\\r' )? + int alt23=2; + int LA23_0 = input.LA(1); + + if ( (LA23_0=='\r') ) { + alt23=1; + } + switch (alt23) { + case 1 : + // InternalVampireLanguage.g:5780:41: '\\r' + { + match('\r'); + + } + break; + + } + + match('\n'); + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_SL_COMMENT" + + // $ANTLR start "RULE_WS" + public final void mRULE_WS() throws RecognitionException { + try { + int _type = RULE_WS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:5782:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // InternalVampireLanguage.g:5782:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + { + // InternalVampireLanguage.g:5782:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + int cnt25=0; + loop25: + do { + int alt25=2; + int LA25_0 = input.LA(1); + + if ( ((LA25_0>='\t' && LA25_0<='\n')||LA25_0=='\r'||LA25_0==' ') ) { + alt25=1; + } + + + switch (alt25) { + case 1 : + // InternalVampireLanguage.g: + { + if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + if ( cnt25 >= 1 ) break loop25; + EarlyExitException eee = + new EarlyExitException(25, input); + throw eee; + } + cnt25++; + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_WS" + + public void mTokens() throws RecognitionException { + // InternalVampireLanguage.g:1:8: ( T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | RULE_UPPER_WORD_ID | RULE_LOWER_WORD_ID | RULE_DOUBLE_QUOTE | RULE_SINGLE_QUOTE | RULE_DOLLAR_ID | RULE_DOUBLE_DOLLAR_ID | RULE_LITERAL | RULE_SIGNED_LITERAL | RULE_SIGNED_REAL_ID | RULE_SIGNED_RAT_ID | RULE_SINGLE_COMMENT | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS ) + int alt26=58; + alt26 = dfa26.predict(input); + switch (alt26) { + case 1 : + // InternalVampireLanguage.g:1:10: T__27 + { + mT__27(); + + } + break; + case 2 : + // InternalVampireLanguage.g:1:16: T__28 + { + mT__28(); + + } + break; + case 3 : + // InternalVampireLanguage.g:1:22: T__29 + { + mT__29(); + + } + break; + case 4 : + // InternalVampireLanguage.g:1:28: T__30 + { + mT__30(); + + } + break; + case 5 : + // InternalVampireLanguage.g:1:34: T__31 + { + mT__31(); + + } + break; + case 6 : + // InternalVampireLanguage.g:1:40: T__32 + { + mT__32(); + + } + break; + case 7 : + // InternalVampireLanguage.g:1:46: T__33 + { + mT__33(); + + } + break; + case 8 : + // InternalVampireLanguage.g:1:52: T__34 + { + mT__34(); + + } + break; + case 9 : + // InternalVampireLanguage.g:1:58: T__35 + { + mT__35(); + + } + break; + case 10 : + // InternalVampireLanguage.g:1:64: T__36 + { + mT__36(); + + } + break; + case 11 : + // InternalVampireLanguage.g:1:70: T__37 + { + mT__37(); + + } + break; + case 12 : + // InternalVampireLanguage.g:1:76: T__38 + { + mT__38(); + + } + break; + case 13 : + // InternalVampireLanguage.g:1:82: T__39 + { + mT__39(); + + } + break; + case 14 : + // InternalVampireLanguage.g:1:88: T__40 + { + mT__40(); + + } + break; + case 15 : + // InternalVampireLanguage.g:1:94: T__41 + { + mT__41(); + + } + break; + case 16 : + // InternalVampireLanguage.g:1:100: T__42 + { + mT__42(); + + } + break; + case 17 : + // InternalVampireLanguage.g:1:106: T__43 + { + mT__43(); + + } + break; + case 18 : + // InternalVampireLanguage.g:1:112: T__44 + { + mT__44(); + + } + break; + case 19 : + // InternalVampireLanguage.g:1:118: T__45 + { + mT__45(); + + } + break; + case 20 : + // InternalVampireLanguage.g:1:124: T__46 + { + mT__46(); + + } + break; + case 21 : + // InternalVampireLanguage.g:1:130: T__47 + { + mT__47(); + + } + break; + case 22 : + // InternalVampireLanguage.g:1:136: T__48 + { + mT__48(); + + } + break; + case 23 : + // InternalVampireLanguage.g:1:142: T__49 + { + mT__49(); + + } + break; + case 24 : + // InternalVampireLanguage.g:1:148: T__50 + { + mT__50(); + + } + break; + case 25 : + // InternalVampireLanguage.g:1:154: T__51 + { + mT__51(); + + } + break; + case 26 : + // InternalVampireLanguage.g:1:160: T__52 + { + mT__52(); + + } + break; + case 27 : + // InternalVampireLanguage.g:1:166: T__53 + { + mT__53(); + + } + break; + case 28 : + // InternalVampireLanguage.g:1:172: T__54 + { + mT__54(); + + } + break; + case 29 : + // InternalVampireLanguage.g:1:178: T__55 + { + mT__55(); + + } + break; + case 30 : + // InternalVampireLanguage.g:1:184: T__56 + { + mT__56(); + + } + break; + case 31 : + // InternalVampireLanguage.g:1:190: T__57 + { + mT__57(); + + } + break; + case 32 : + // InternalVampireLanguage.g:1:196: T__58 + { + mT__58(); + + } + break; + case 33 : + // InternalVampireLanguage.g:1:202: T__59 + { + mT__59(); + + } + break; + case 34 : + // InternalVampireLanguage.g:1:208: T__60 + { + mT__60(); + + } + break; + case 35 : + // InternalVampireLanguage.g:1:214: T__61 + { + mT__61(); + + } + break; + case 36 : + // InternalVampireLanguage.g:1:220: T__62 + { + mT__62(); + + } + break; + case 37 : + // InternalVampireLanguage.g:1:226: T__63 + { + mT__63(); + + } + break; + case 38 : + // InternalVampireLanguage.g:1:232: T__64 + { + mT__64(); + + } + break; + case 39 : + // InternalVampireLanguage.g:1:238: T__65 + { + mT__65(); + + } + break; + case 40 : + // InternalVampireLanguage.g:1:244: T__66 + { + mT__66(); + + } + break; + case 41 : + // InternalVampireLanguage.g:1:250: T__67 + { + mT__67(); + + } + break; + case 42 : + // InternalVampireLanguage.g:1:256: T__68 + { + mT__68(); + + } + break; + case 43 : + // InternalVampireLanguage.g:1:262: RULE_UPPER_WORD_ID + { + mRULE_UPPER_WORD_ID(); + + } + break; + case 44 : + // InternalVampireLanguage.g:1:281: RULE_LOWER_WORD_ID + { + mRULE_LOWER_WORD_ID(); + + } + break; + case 45 : + // InternalVampireLanguage.g:1:300: RULE_DOUBLE_QUOTE + { + mRULE_DOUBLE_QUOTE(); + + } + break; + case 46 : + // InternalVampireLanguage.g:1:318: RULE_SINGLE_QUOTE + { + mRULE_SINGLE_QUOTE(); + + } + break; + case 47 : + // InternalVampireLanguage.g:1:336: RULE_DOLLAR_ID + { + mRULE_DOLLAR_ID(); + + } + break; + case 48 : + // InternalVampireLanguage.g:1:351: RULE_DOUBLE_DOLLAR_ID + { + mRULE_DOUBLE_DOLLAR_ID(); + + } + break; + case 49 : + // InternalVampireLanguage.g:1:373: RULE_LITERAL + { + mRULE_LITERAL(); + + } + break; + case 50 : + // InternalVampireLanguage.g:1:386: RULE_SIGNED_LITERAL + { + mRULE_SIGNED_LITERAL(); + + } + break; + case 51 : + // InternalVampireLanguage.g:1:406: RULE_SIGNED_REAL_ID + { + mRULE_SIGNED_REAL_ID(); + + } + break; + case 52 : + // InternalVampireLanguage.g:1:426: RULE_SIGNED_RAT_ID + { + mRULE_SIGNED_RAT_ID(); + + } + break; + case 53 : + // InternalVampireLanguage.g:1:445: RULE_SINGLE_COMMENT + { + mRULE_SINGLE_COMMENT(); + + } + break; + case 54 : + // InternalVampireLanguage.g:1:465: RULE_ID + { + mRULE_ID(); + + } + break; + case 55 : + // InternalVampireLanguage.g:1:473: RULE_STRING + { + mRULE_STRING(); + + } + break; + case 56 : + // InternalVampireLanguage.g:1:485: RULE_ML_COMMENT + { + mRULE_ML_COMMENT(); + + } + break; + case 57 : + // InternalVampireLanguage.g:1:501: RULE_SL_COMMENT + { + mRULE_SL_COMMENT(); + + } + break; + case 58 : + // InternalVampireLanguage.g:1:517: RULE_WS + { + mRULE_WS(); + + } + break; + + } + + } + + + protected DFA8 dfa8 = new DFA8(this); + protected DFA11 dfa11 = new DFA11(this); + protected DFA26 dfa26 = new DFA26(this); + static final String DFA8_eotS = + "\6\uffff"; + static final String DFA8_eofS = + "\6\uffff"; + static final String DFA8_minS = + "\1\60\2\56\2\uffff\1\56"; + static final String DFA8_maxS = + "\1\71\2\105\2\uffff\1\105"; + static final String DFA8_acceptS = + "\3\uffff\1\2\1\1\1\uffff"; + static final String DFA8_specialS = + "\6\uffff}>"; + static final String[] DFA8_transitionS = { + "\1\1\11\2", + "\1\3\26\uffff\1\4", + "\1\3\1\uffff\12\5\13\uffff\1\4", + "", + "", + "\1\3\1\uffff\12\5\13\uffff\1\4" + }; + + static final short[] DFA8_eot = DFA.unpackEncodedString(DFA8_eotS); + static final short[] DFA8_eof = DFA.unpackEncodedString(DFA8_eofS); + static final char[] DFA8_min = DFA.unpackEncodedStringToUnsignedChars(DFA8_minS); + static final char[] DFA8_max = DFA.unpackEncodedStringToUnsignedChars(DFA8_maxS); + static final short[] DFA8_accept = DFA.unpackEncodedString(DFA8_acceptS); + static final short[] DFA8_special = DFA.unpackEncodedString(DFA8_specialS); + static final short[][] DFA8_transition; + + static { + int numStates = DFA8_transitionS.length; + DFA8_transition = new short[numStates][]; + for (int i=0; i"; + static final String[] DFA11_transitionS = { + "\1\1\11\2", + "\1\3\26\uffff\1\4", + "\1\3\1\uffff\12\5\13\uffff\1\4", + "\12\6", + "", + "\1\3\1\uffff\12\5\13\uffff\1\4", + "\12\6\13\uffff\1\4", + "" + }; + + static final short[] DFA11_eot = DFA.unpackEncodedString(DFA11_eotS); + static final short[] DFA11_eof = DFA.unpackEncodedString(DFA11_eofS); + static final char[] DFA11_min = DFA.unpackEncodedStringToUnsignedChars(DFA11_minS); + static final char[] DFA11_max = DFA.unpackEncodedStringToUnsignedChars(DFA11_maxS); + static final short[] DFA11_accept = DFA.unpackEncodedString(DFA11_acceptS); + static final short[] DFA11_special = DFA.unpackEncodedString(DFA11_specialS); + static final short[][] DFA11_transition; + + static { + int numStates = DFA11_transitionS.length; + DFA11_transition = new short[numStates][]; + for (int i=0; i"; + static final String[] DFA26_transitionS = { + "\2\45\2\uffff\1\45\22\uffff\1\45\1\27\1\35\1\uffff\1\32\1\42\1\25\1\36\1\16\1\17\1\uffff\1\41\1\14\1\41\1\20\1\44\1\37\11\40\1\30\1\uffff\1\22\1\23\1\uffff\1\31\1\uffff\32\33\1\21\1\uffff\1\15\2\43\1\uffff\1\1\1\34\1\2\1\4\1\34\1\11\1\34\1\3\1\13\2\34\1\5\1\34\1\7\1\34\1\10\3\34\1\6\1\12\5\34\1\uffff\1\26\1\uffff\1\24", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\22\50\1\47\4\50\1\46\2\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\16\50\1\52\13\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\30\50\1\53\1\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\4\50\1\54\25\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\4\50\1\55\25\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\7\50\1\56\20\50\1\57\1\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\4\50\1\60\25\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\13\50\1\61\16\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\10\50\1\62\5\50\1\63\13\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\15\50\1\64\14\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\15\50\1\65\14\50", + "\1\66", + "", + "", + "", + "", + "", + "\1\70\100\uffff\1\71", + "\1\72", + "\1\75\125\uffff\1\74", + "", + "", + "\1\77", + "\1\101", + "", + "\1\106\74\uffff\5\107\1\104\5\107\1\105\7\107\1\103\6\107", + "\12\110\7\uffff\32\110\4\uffff\1\110\1\uffff\32\110", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50", + "\42\113\1\114\71\113\1\112\uffa3\113", + "\47\116\1\117\64\116\1\115\uffa3\116", + "\1\121\1\122\25\uffff\1\121", + "\1\121\1\122\12\123\13\uffff\1\121", + "\1\41\1\uffff\1\41\2\uffff\1\124\11\125", + "", + "", + "\1\126\4\uffff\1\127", + "", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\10\50\1\130\21\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\22\50\1\131\7\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50", + "", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\15\50\1\132\3\50\1\133\10\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\17\50\1\134\12\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\5\50\1\135\24\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\14\50\1\136\15\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\4\50\1\137\25\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\17\50\1\140\12\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\6\50\1\141\23\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\1\142\31\50", + "\12\50\7\uffff\32\50\4\uffff\1\143\1\uffff\32\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\5\50\1\144\24\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\12\50\1\145\17\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\2\50\1\146\27\50", + "", + "", + "\1\147", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\151", + "\1\152", + "\1\153", + "", + "", + "\12\110\7\uffff\32\110\4\uffff\1\110\1\uffff\32\110", + "", + "\42\117\1\154\71\117\1\154\uffa3\117", + "\42\113\1\114\71\113\1\112\uffa3\113", + "", + "\47\117\1\156\64\117\1\156\uffa3\117", + "\47\116\1\157\64\116\1\115\uffa3\116", + "", + "", + "", + "", + "\1\121\1\122\12\123\13\uffff\1\121", + "\1\121\1\122\25\uffff\1\121", + "\1\121\1\122\12\161\13\uffff\1\121", + "", + "", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\16\50\1\162\13\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\24\50\1\163\5\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\11\50\1\164\20\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\16\50\1\165\13\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\16\50\1\166\13\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\10\50\1\167\21\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\14\50\1\170\15\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\16\50\1\171\13\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\4\50\1\172\25\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\1\173\31\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\10\50\1\174\21\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\3\50\1\175\1\50\1\176\11\50\1\177\12\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\15\50\1\u0081\14\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\13\50\1\u0082\16\50", + "", + "", + "\1\u0083", + "\1\u0084", + "\1\u0085", + "\42\113\1\114\71\113\1\112\uffa3\113", + "", + "\47\116\1\157\64\116\1\115\uffa3\116", + "", + "", + "\1\121\1\122\12\161\13\uffff\1\121", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\14\50\1\u0087\15\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\14\50\1\u0088\15\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\4\50\1\u0089\25\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\13\50\1\u008a\16\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\23\50\1\u008b\6\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\15\50\1\u008c\14\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\1\u008d\31\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\21\50\1\u008e\10\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\23\50\1\u0090\6\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\15\50\1\u0091\14\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\16\50\1\u0092\13\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\24\50\1\u0093\5\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\21\50\1\u0094\10\50", + "", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\16\50\1\u0095\13\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\24\50\1\u0096\5\50", + "\1\u0097", + "\1\u0098", + "\1\u0099", + "", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\17\50\1\u009b\12\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\2\50\1\u009c\27\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\13\50\1\u009d\16\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\7\50\1\u009e\22\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\10\50\1\u009f\21\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\4\50\1\u00a1\25\50", + "", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\4\50\1\u00a2\25\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\14\50\1\u00a4\15\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\15\50\1\u00a5\14\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\4\50\1\u00a6\25\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\26\50\1\u00a7\3\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\3\50\1\u00a8\26\50", + "\12\107\7\uffff\32\107\4\uffff\1\107\1\uffff\32\107", + "\1\u00aa", + "\12\107\7\uffff\32\107\4\uffff\1\107\1\uffff\32\107", + "", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\23\50\1\u00ac\6\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\23\50\1\u00ad\6\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\1\u00ae\31\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\4\50\1\u00af\25\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\23\50\1\u00b0\6\50", + "", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\14\50\1\u00b1\15\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\3\50\1\u00b2\26\50", + "", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\1\u00b3\31\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\2\50\1\u00b4\27\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\3\50\1\u00b5\26\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\15\50\1\u00b6\14\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\4\50\1\u00b7\25\50", + "", + "\12\107\7\uffff\32\107\4\uffff\1\107\1\uffff\32\107", + "", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\10\50\1\u00b9\21\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\24\50\1\u00ba\5\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\21\50\1\u00bb\10\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\22\50\1\u00bc\7\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\10\50\1\u00bd\21\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50", + "\12\50\7\uffff\32\50\4\uffff\1\u00bf\1\uffff\32\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\10\50\1\u00c0\21\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\23\50\1\u00c1\6\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\10\50\1\u00c2\21\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50", + "\1\u00c4\7\uffff\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50", + "", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\16\50\1\u00c5\13\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\21\50\1\u00c6\10\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\30\50\1\u00c7\1\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\10\50\1\u00c8\21\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\16\50\1\u00c9\13\50", + "", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\2\50\1\u00ca\27\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\15\50\1\u00cb\14\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\16\50\1\u00cc\13\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\2\50\1\u00cd\27\50", + "", + "", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\15\50\1\u00ce\14\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\4\50\1\u00cf\25\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\22\50\1\u00d1\7\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\15\50\1\u00d2\14\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\16\50\1\u00d3\13\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\21\50\1\u00d5\10\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\1\u00d6\31\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50", + "", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\15\50\1\u00db\14\50", + "", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\22\50\1\u00dc\7\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\23\50\1\u00dd\6\50", + "", + "", + "", + "", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\11\50\1\u00de\20\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\4\50\1\u00e0\25\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\4\50\1\u00e1\25\50", + "", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\22\50\1\u00e2\7\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\2\50\1\u00e3\27\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\23\50\1\u00e5\6\50", + "", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\24\50\1\u00e6\5\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\21\50\1\u00e7\10\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\4\50\1\u00e8\25\50", + "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50", + "" + }; + + static final short[] DFA26_eot = DFA.unpackEncodedString(DFA26_eotS); + static final short[] DFA26_eof = DFA.unpackEncodedString(DFA26_eofS); + static final char[] DFA26_min = DFA.unpackEncodedStringToUnsignedChars(DFA26_minS); + static final char[] DFA26_max = DFA.unpackEncodedStringToUnsignedChars(DFA26_maxS); + static final short[] DFA26_accept = DFA.unpackEncodedString(DFA26_acceptS); + static final short[] DFA26_special = DFA.unpackEncodedString(DFA26_specialS); + static final short[][] DFA26_transition; + + static { + int numStates = DFA26_transitionS.length; + DFA26_transition = new short[numStates][]; + for (int i=0; i='\u0000' && LA26_29<='!')||(LA26_29>='#' && LA26_29<='[')||(LA26_29>=']' && LA26_29<='\uFFFF')) ) {s = 75;} + + else if ( (LA26_29=='\"') ) {s = 76;} + + if ( s>=0 ) return s; + break; + case 1 : + int LA26_74 = input.LA(1); + + s = -1; + if ( (LA26_74=='\"'||LA26_74=='\\') ) {s = 108;} + + else if ( ((LA26_74>='\u0000' && LA26_74<='!')||(LA26_74>='#' && LA26_74<='[')||(LA26_74>=']' && LA26_74<='\uFFFF')) ) {s = 79;} + + if ( s>=0 ) return s; + break; + case 2 : + int LA26_77 = input.LA(1); + + s = -1; + if ( (LA26_77=='\''||LA26_77=='\\') ) {s = 110;} + + else if ( ((LA26_77>='\u0000' && LA26_77<='&')||(LA26_77>='(' && LA26_77<='[')||(LA26_77>=']' && LA26_77<='\uFFFF')) ) {s = 79;} + + if ( s>=0 ) return s; + break; + case 3 : + int LA26_110 = input.LA(1); + + s = -1; + if ( (LA26_110=='\'') ) {s = 111;} + + else if ( (LA26_110=='\\') ) {s = 77;} + + else if ( ((LA26_110>='\u0000' && LA26_110<='&')||(LA26_110>='(' && LA26_110<='[')||(LA26_110>=']' && LA26_110<='\uFFFF')) ) {s = 78;} + + if ( s>=0 ) return s; + break; + case 4 : + int LA26_78 = input.LA(1); + + s = -1; + if ( (LA26_78=='\'') ) {s = 111;} + + else if ( (LA26_78=='\\') ) {s = 77;} + + else if ( ((LA26_78>='\u0000' && LA26_78<='&')||(LA26_78>='(' && LA26_78<='[')||(LA26_78>=']' && LA26_78<='\uFFFF')) ) {s = 78;} + + if ( s>=0 ) return s; + break; + case 5 : + int LA26_30 = input.LA(1); + + s = -1; + if ( (LA26_30=='\\') ) {s = 77;} + + else if ( ((LA26_30>='\u0000' && LA26_30<='&')||(LA26_30>='(' && LA26_30<='[')||(LA26_30>=']' && LA26_30<='\uFFFF')) ) {s = 78;} + + else if ( (LA26_30=='\'') ) {s = 79;} + + if ( s>=0 ) return s; + break; + case 6 : + int LA26_108 = input.LA(1); + + s = -1; + if ( (LA26_108=='\"') ) {s = 76;} + + else if ( (LA26_108=='\\') ) {s = 74;} + + else if ( ((LA26_108>='\u0000' && LA26_108<='!')||(LA26_108>='#' && LA26_108<='[')||(LA26_108>=']' && LA26_108<='\uFFFF')) ) {s = 75;} + + if ( s>=0 ) return s; + break; + case 7 : + int LA26_75 = input.LA(1); + + s = -1; + if ( (LA26_75=='\"') ) {s = 76;} + + else if ( (LA26_75=='\\') ) {s = 74;} + + else if ( ((LA26_75>='\u0000' && LA26_75<='!')||(LA26_75>='#' && LA26_75<='[')||(LA26_75>=']' && LA26_75<='\uFFFF')) ) {s = 75;} + + if ( s>=0 ) return s; + break; + } + NoViableAltException nvae = + new NoViableAltException(getDescription(), 26, _s, input); + error(nvae); + throw nvae; + } + } + + +} \ No newline at end of file diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/internal/InternalVampireLanguageParser.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/internal/InternalVampireLanguageParser.java new file mode 100644 index 00000000..8d39bf4b --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src-gen/ca/mcgill/ecse/dslreasoner/ide/contentassist/antlr/internal/InternalVampireLanguageParser.java @@ -0,0 +1,17577 @@ +package ca.mcgill.ecse.dslreasoner.ide.contentassist.antlr.internal; + +import java.io.InputStream; +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.XtextTokenStream; +import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; +import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser; +import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.DFA; +import ca.mcgill.ecse.dslreasoner.services.VampireLanguageGrammarAccess; + + + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; + +@SuppressWarnings("all") +public class InternalVampireLanguageParser extends AbstractInternalContentAssistParser { + public static final String[] tokenNames = new String[] { + "", "", "", "", "RULE_LOWER_WORD_ID", "RULE_SINGLE_QUOTE", "RULE_LITERAL", "RULE_SIGNED_LITERAL", "RULE_DOLLAR_ID", "RULE_DOUBLE_DOLLAR_ID", "RULE_SINGLE_COMMENT", "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_ANY_OTHER", "RULE_ID", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "'axiom'", "'conjecture'", "'hypothesis'", "'definition'", "'assumption'", "'lemma'", "'theorem'", "'corollary'", "'negated_conjecture'", "'plain'", "'type'", "'fi_domain'", "'fi_functors'", "'fi_predicates'", "'unknown'", "'include('", "',['", "']'", "','", "'fof'", "'('", "')'", "'.'", "'['", "'<=>'", "'=>'", "'<='", "'<~>'", "'~|'", "'~&'", "'&'", "'|'", "'!'", "':'", "'?'", "'~'", "'!='", "'='", "':='", "'$true'", "'$false'", "'$less'" + }; + public static final int RULE_UNSIGNED_RAT_ID=20; + public static final int T__50=50; + public static final int RULE_SIGN=16; + public static final int T__59=59; + public static final int RULE_SIGNED_LITERAL=7; + public static final int T__55=55; + public static final int T__56=56; + public static final int T__57=57; + public static final int T__58=58; + public static final int T__51=51; + public static final int RULE_DOUBLE_QUOTE=14; + public static final int T__52=52; + public static final int RULE_LITERAL=6; + public static final int T__53=53; + public static final int RULE_UNSIGNED_REAL_FRAC_ID=18; + public static final int T__54=54; + public static final int T__60=60; + public static final int T__61=61; + public static final int RULE_ID=22; + public static final int RULE_SINGLE_QUOTE=5; + public static final int RULE_SINGLE_COMMENT=10; + public static final int T__27=27; + public static final int T__28=28; + public static final int RULE_INT=17; + public static final int T__29=29; + public static final int T__66=66; + public static final int RULE_ML_COMMENT=24; + public static final int T__67=67; + public static final int RULE_SIGNED_RAT_ID=13; + public static final int T__68=68; + public static final int T__62=62; + public static final int T__63=63; + public static final int T__64=64; + public static final int T__65=65; + public static final int RULE_LOWER_WORD_ID=4; + public static final int RULE_STRING=23; + public static final int RULE_SL_COMMENT=25; + public static final int T__37=37; + public static final int T__38=38; + public static final int T__39=39; + public static final int T__33=33; + public static final int T__34=34; + public static final int T__35=35; + public static final int T__36=36; + public static final int EOF=-1; + public static final int T__30=30; + public static final int RULE_UNSIGNED_REAL_EXP_ID=19; + public static final int T__31=31; + public static final int T__32=32; + public static final int RULE_UPPER_WORD_ID=11; + public static final int RULE_WS=26; + public static final int RULE_DOLLAR_ID=8; + public static final int RULE_ALPHA_NUMERIC=15; + public static final int RULE_ANY_OTHER=21; + public static final int RULE_DOUBLE_DOLLAR_ID=9; + public static final int T__48=48; + public static final int T__49=49; + public static final int T__44=44; + public static final int T__45=45; + public static final int RULE_SIGNED_REAL_ID=12; + public static final int T__46=46; + public static final int T__47=47; + public static final int T__40=40; + public static final int T__41=41; + public static final int T__42=42; + public static final int T__43=43; + + // delegates + // delegators + + + public InternalVampireLanguageParser(TokenStream input) { + this(input, new RecognizerSharedState()); + } + public InternalVampireLanguageParser(TokenStream input, RecognizerSharedState state) { + super(input, state); + + } + + + public String[] getTokenNames() { return InternalVampireLanguageParser.tokenNames; } + public String getGrammarFileName() { return "InternalVampireLanguage.g"; } + + + private VampireLanguageGrammarAccess grammarAccess; + + public void setGrammarAccess(VampireLanguageGrammarAccess grammarAccess) { + this.grammarAccess = grammarAccess; + } + + @Override + protected Grammar getGrammar() { + return grammarAccess.getGrammar(); + } + + @Override + protected String getValueForTokenName(String tokenName) { + return tokenName; + } + + + + // $ANTLR start "entryRuleVampireModel" + // InternalVampireLanguage.g:53:1: entryRuleVampireModel : ruleVampireModel EOF ; + public final void entryRuleVampireModel() throws RecognitionException { + try { + // InternalVampireLanguage.g:54:1: ( ruleVampireModel EOF ) + // InternalVampireLanguage.g:55:1: ruleVampireModel EOF + { + before(grammarAccess.getVampireModelRule()); + pushFollow(FOLLOW_1); + ruleVampireModel(); + + state._fsp--; + + after(grammarAccess.getVampireModelRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVampireModel" + + + // $ANTLR start "ruleVampireModel" + // InternalVampireLanguage.g:62:1: ruleVampireModel : ( ( rule__VampireModel__Alternatives )* ) ; + public final void ruleVampireModel() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:66:2: ( ( ( rule__VampireModel__Alternatives )* ) ) + // InternalVampireLanguage.g:67:2: ( ( rule__VampireModel__Alternatives )* ) + { + // InternalVampireLanguage.g:67:2: ( ( rule__VampireModel__Alternatives )* ) + // InternalVampireLanguage.g:68:3: ( rule__VampireModel__Alternatives )* + { + before(grammarAccess.getVampireModelAccess().getAlternatives()); + // InternalVampireLanguage.g:69:3: ( rule__VampireModel__Alternatives )* + loop1: + do { + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0==RULE_SINGLE_COMMENT||LA1_0==42||LA1_0==46) ) { + alt1=1; + } + + + switch (alt1) { + case 1 : + // InternalVampireLanguage.g:69:4: rule__VampireModel__Alternatives + { + pushFollow(FOLLOW_3); + rule__VampireModel__Alternatives(); + + state._fsp--; + + + } + break; + + default : + break loop1; + } + } while (true); + + after(grammarAccess.getVampireModelAccess().getAlternatives()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVampireModel" + + + // $ANTLR start "entryRuleVLSInclude" + // InternalVampireLanguage.g:78:1: entryRuleVLSInclude : ruleVLSInclude EOF ; + public final void entryRuleVLSInclude() throws RecognitionException { + try { + // InternalVampireLanguage.g:79:1: ( ruleVLSInclude EOF ) + // InternalVampireLanguage.g:80:1: ruleVLSInclude EOF + { + before(grammarAccess.getVLSIncludeRule()); + pushFollow(FOLLOW_1); + ruleVLSInclude(); + + state._fsp--; + + after(grammarAccess.getVLSIncludeRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSInclude" + + + // $ANTLR start "ruleVLSInclude" + // InternalVampireLanguage.g:87:1: ruleVLSInclude : ( ( rule__VLSInclude__Group__0 ) ) ; + public final void ruleVLSInclude() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:91:2: ( ( ( rule__VLSInclude__Group__0 ) ) ) + // InternalVampireLanguage.g:92:2: ( ( rule__VLSInclude__Group__0 ) ) + { + // InternalVampireLanguage.g:92:2: ( ( rule__VLSInclude__Group__0 ) ) + // InternalVampireLanguage.g:93:3: ( rule__VLSInclude__Group__0 ) + { + before(grammarAccess.getVLSIncludeAccess().getGroup()); + // InternalVampireLanguage.g:94:3: ( rule__VLSInclude__Group__0 ) + // InternalVampireLanguage.g:94:4: rule__VLSInclude__Group__0 + { + pushFollow(FOLLOW_2); + rule__VLSInclude__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSIncludeAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSInclude" + + + // $ANTLR start "entryRuleVLSName" + // InternalVampireLanguage.g:103:1: entryRuleVLSName : ruleVLSName EOF ; + public final void entryRuleVLSName() throws RecognitionException { + try { + // InternalVampireLanguage.g:104:1: ( ruleVLSName EOF ) + // InternalVampireLanguage.g:105:1: ruleVLSName EOF + { + before(grammarAccess.getVLSNameRule()); + pushFollow(FOLLOW_1); + ruleVLSName(); + + state._fsp--; + + after(grammarAccess.getVLSNameRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSName" + + + // $ANTLR start "ruleVLSName" + // InternalVampireLanguage.g:112:1: ruleVLSName : ( ( rule__VLSName__NameAssignment ) ) ; + public final void ruleVLSName() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:116:2: ( ( ( rule__VLSName__NameAssignment ) ) ) + // InternalVampireLanguage.g:117:2: ( ( rule__VLSName__NameAssignment ) ) + { + // InternalVampireLanguage.g:117:2: ( ( rule__VLSName__NameAssignment ) ) + // InternalVampireLanguage.g:118:3: ( rule__VLSName__NameAssignment ) + { + before(grammarAccess.getVLSNameAccess().getNameAssignment()); + // InternalVampireLanguage.g:119:3: ( rule__VLSName__NameAssignment ) + // InternalVampireLanguage.g:119:4: rule__VLSName__NameAssignment + { + pushFollow(FOLLOW_2); + rule__VLSName__NameAssignment(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSNameAccess().getNameAssignment()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSName" + + + // $ANTLR start "entryRuleVLSComment" + // InternalVampireLanguage.g:128:1: entryRuleVLSComment : ruleVLSComment EOF ; + public final void entryRuleVLSComment() throws RecognitionException { + try { + // InternalVampireLanguage.g:129:1: ( ruleVLSComment EOF ) + // InternalVampireLanguage.g:130:1: ruleVLSComment EOF + { + before(grammarAccess.getVLSCommentRule()); + pushFollow(FOLLOW_1); + ruleVLSComment(); + + state._fsp--; + + after(grammarAccess.getVLSCommentRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSComment" + + + // $ANTLR start "ruleVLSComment" + // InternalVampireLanguage.g:137:1: ruleVLSComment : ( ( rule__VLSComment__CommentAssignment ) ) ; + public final void ruleVLSComment() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:141:2: ( ( ( rule__VLSComment__CommentAssignment ) ) ) + // InternalVampireLanguage.g:142:2: ( ( rule__VLSComment__CommentAssignment ) ) + { + // InternalVampireLanguage.g:142:2: ( ( rule__VLSComment__CommentAssignment ) ) + // InternalVampireLanguage.g:143:3: ( rule__VLSComment__CommentAssignment ) + { + before(grammarAccess.getVLSCommentAccess().getCommentAssignment()); + // InternalVampireLanguage.g:144:3: ( rule__VLSComment__CommentAssignment ) + // InternalVampireLanguage.g:144:4: rule__VLSComment__CommentAssignment + { + pushFollow(FOLLOW_2); + rule__VLSComment__CommentAssignment(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSCommentAccess().getCommentAssignment()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSComment" + + + // $ANTLR start "entryRuleVLSFofFormula" + // InternalVampireLanguage.g:153:1: entryRuleVLSFofFormula : ruleVLSFofFormula EOF ; + public final void entryRuleVLSFofFormula() throws RecognitionException { + try { + // InternalVampireLanguage.g:154:1: ( ruleVLSFofFormula EOF ) + // InternalVampireLanguage.g:155:1: ruleVLSFofFormula EOF + { + before(grammarAccess.getVLSFofFormulaRule()); + pushFollow(FOLLOW_1); + ruleVLSFofFormula(); + + state._fsp--; + + after(grammarAccess.getVLSFofFormulaRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSFofFormula" + + + // $ANTLR start "ruleVLSFofFormula" + // InternalVampireLanguage.g:162:1: ruleVLSFofFormula : ( ( rule__VLSFofFormula__Group__0 ) ) ; + public final void ruleVLSFofFormula() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:166:2: ( ( ( rule__VLSFofFormula__Group__0 ) ) ) + // InternalVampireLanguage.g:167:2: ( ( rule__VLSFofFormula__Group__0 ) ) + { + // InternalVampireLanguage.g:167:2: ( ( rule__VLSFofFormula__Group__0 ) ) + // InternalVampireLanguage.g:168:3: ( rule__VLSFofFormula__Group__0 ) + { + before(grammarAccess.getVLSFofFormulaAccess().getGroup()); + // InternalVampireLanguage.g:169:3: ( rule__VLSFofFormula__Group__0 ) + // InternalVampireLanguage.g:169:4: rule__VLSFofFormula__Group__0 + { + pushFollow(FOLLOW_2); + rule__VLSFofFormula__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSFofFormulaAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSFofFormula" + + + // $ANTLR start "entryRuleVLSRole" + // InternalVampireLanguage.g:178:1: entryRuleVLSRole : ruleVLSRole EOF ; + public final void entryRuleVLSRole() throws RecognitionException { + try { + // InternalVampireLanguage.g:179:1: ( ruleVLSRole EOF ) + // InternalVampireLanguage.g:180:1: ruleVLSRole EOF + { + before(grammarAccess.getVLSRoleRule()); + pushFollow(FOLLOW_1); + ruleVLSRole(); + + state._fsp--; + + after(grammarAccess.getVLSRoleRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSRole" + + + // $ANTLR start "ruleVLSRole" + // InternalVampireLanguage.g:187:1: ruleVLSRole : ( ( rule__VLSRole__Alternatives ) ) ; + public final void ruleVLSRole() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:191:2: ( ( ( rule__VLSRole__Alternatives ) ) ) + // InternalVampireLanguage.g:192:2: ( ( rule__VLSRole__Alternatives ) ) + { + // InternalVampireLanguage.g:192:2: ( ( rule__VLSRole__Alternatives ) ) + // InternalVampireLanguage.g:193:3: ( rule__VLSRole__Alternatives ) + { + before(grammarAccess.getVLSRoleAccess().getAlternatives()); + // InternalVampireLanguage.g:194:3: ( rule__VLSRole__Alternatives ) + // InternalVampireLanguage.g:194:4: rule__VLSRole__Alternatives + { + pushFollow(FOLLOW_2); + rule__VLSRole__Alternatives(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSRoleAccess().getAlternatives()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSRole" + + + // $ANTLR start "entryRuleVLSAxiom" + // InternalVampireLanguage.g:203:1: entryRuleVLSAxiom : ruleVLSAxiom EOF ; + public final void entryRuleVLSAxiom() throws RecognitionException { + try { + // InternalVampireLanguage.g:204:1: ( ruleVLSAxiom EOF ) + // InternalVampireLanguage.g:205:1: ruleVLSAxiom EOF + { + before(grammarAccess.getVLSAxiomRule()); + pushFollow(FOLLOW_1); + ruleVLSAxiom(); + + state._fsp--; + + after(grammarAccess.getVLSAxiomRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSAxiom" + + + // $ANTLR start "ruleVLSAxiom" + // InternalVampireLanguage.g:212:1: ruleVLSAxiom : ( 'axiom' ) ; + public final void ruleVLSAxiom() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:216:2: ( ( 'axiom' ) ) + // InternalVampireLanguage.g:217:2: ( 'axiom' ) + { + // InternalVampireLanguage.g:217:2: ( 'axiom' ) + // InternalVampireLanguage.g:218:3: 'axiom' + { + before(grammarAccess.getVLSAxiomAccess().getAxiomKeyword()); + match(input,27,FOLLOW_2); + after(grammarAccess.getVLSAxiomAccess().getAxiomKeyword()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSAxiom" + + + // $ANTLR start "entryRuleVLSConjecture" + // InternalVampireLanguage.g:228:1: entryRuleVLSConjecture : ruleVLSConjecture EOF ; + public final void entryRuleVLSConjecture() throws RecognitionException { + try { + // InternalVampireLanguage.g:229:1: ( ruleVLSConjecture EOF ) + // InternalVampireLanguage.g:230:1: ruleVLSConjecture EOF + { + before(grammarAccess.getVLSConjectureRule()); + pushFollow(FOLLOW_1); + ruleVLSConjecture(); + + state._fsp--; + + after(grammarAccess.getVLSConjectureRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSConjecture" + + + // $ANTLR start "ruleVLSConjecture" + // InternalVampireLanguage.g:237:1: ruleVLSConjecture : ( 'conjecture' ) ; + public final void ruleVLSConjecture() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:241:2: ( ( 'conjecture' ) ) + // InternalVampireLanguage.g:242:2: ( 'conjecture' ) + { + // InternalVampireLanguage.g:242:2: ( 'conjecture' ) + // InternalVampireLanguage.g:243:3: 'conjecture' + { + before(grammarAccess.getVLSConjectureAccess().getConjectureKeyword()); + match(input,28,FOLLOW_2); + after(grammarAccess.getVLSConjectureAccess().getConjectureKeyword()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSConjecture" + + + // $ANTLR start "entryRuleVLSHypothesis" + // InternalVampireLanguage.g:253:1: entryRuleVLSHypothesis : ruleVLSHypothesis EOF ; + public final void entryRuleVLSHypothesis() throws RecognitionException { + try { + // InternalVampireLanguage.g:254:1: ( ruleVLSHypothesis EOF ) + // InternalVampireLanguage.g:255:1: ruleVLSHypothesis EOF + { + before(grammarAccess.getVLSHypothesisRule()); + pushFollow(FOLLOW_1); + ruleVLSHypothesis(); + + state._fsp--; + + after(grammarAccess.getVLSHypothesisRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSHypothesis" + + + // $ANTLR start "ruleVLSHypothesis" + // InternalVampireLanguage.g:262:1: ruleVLSHypothesis : ( 'hypothesis' ) ; + public final void ruleVLSHypothesis() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:266:2: ( ( 'hypothesis' ) ) + // InternalVampireLanguage.g:267:2: ( 'hypothesis' ) + { + // InternalVampireLanguage.g:267:2: ( 'hypothesis' ) + // InternalVampireLanguage.g:268:3: 'hypothesis' + { + before(grammarAccess.getVLSHypothesisAccess().getHypothesisKeyword()); + match(input,29,FOLLOW_2); + after(grammarAccess.getVLSHypothesisAccess().getHypothesisKeyword()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSHypothesis" + + + // $ANTLR start "entryRuleVLSDefinition" + // InternalVampireLanguage.g:278:1: entryRuleVLSDefinition : ruleVLSDefinition EOF ; + public final void entryRuleVLSDefinition() throws RecognitionException { + try { + // InternalVampireLanguage.g:279:1: ( ruleVLSDefinition EOF ) + // InternalVampireLanguage.g:280:1: ruleVLSDefinition EOF + { + before(grammarAccess.getVLSDefinitionRule()); + pushFollow(FOLLOW_1); + ruleVLSDefinition(); + + state._fsp--; + + after(grammarAccess.getVLSDefinitionRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSDefinition" + + + // $ANTLR start "ruleVLSDefinition" + // InternalVampireLanguage.g:287:1: ruleVLSDefinition : ( 'definition' ) ; + public final void ruleVLSDefinition() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:291:2: ( ( 'definition' ) ) + // InternalVampireLanguage.g:292:2: ( 'definition' ) + { + // InternalVampireLanguage.g:292:2: ( 'definition' ) + // InternalVampireLanguage.g:293:3: 'definition' + { + before(grammarAccess.getVLSDefinitionAccess().getDefinitionKeyword()); + match(input,30,FOLLOW_2); + after(grammarAccess.getVLSDefinitionAccess().getDefinitionKeyword()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSDefinition" + + + // $ANTLR start "entryRuleVLSAssumption" + // InternalVampireLanguage.g:303:1: entryRuleVLSAssumption : ruleVLSAssumption EOF ; + public final void entryRuleVLSAssumption() throws RecognitionException { + try { + // InternalVampireLanguage.g:304:1: ( ruleVLSAssumption EOF ) + // InternalVampireLanguage.g:305:1: ruleVLSAssumption EOF + { + before(grammarAccess.getVLSAssumptionRule()); + pushFollow(FOLLOW_1); + ruleVLSAssumption(); + + state._fsp--; + + after(grammarAccess.getVLSAssumptionRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSAssumption" + + + // $ANTLR start "ruleVLSAssumption" + // InternalVampireLanguage.g:312:1: ruleVLSAssumption : ( 'assumption' ) ; + public final void ruleVLSAssumption() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:316:2: ( ( 'assumption' ) ) + // InternalVampireLanguage.g:317:2: ( 'assumption' ) + { + // InternalVampireLanguage.g:317:2: ( 'assumption' ) + // InternalVampireLanguage.g:318:3: 'assumption' + { + before(grammarAccess.getVLSAssumptionAccess().getAssumptionKeyword()); + match(input,31,FOLLOW_2); + after(grammarAccess.getVLSAssumptionAccess().getAssumptionKeyword()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSAssumption" + + + // $ANTLR start "entryRuleVLSLemma" + // InternalVampireLanguage.g:328:1: entryRuleVLSLemma : ruleVLSLemma EOF ; + public final void entryRuleVLSLemma() throws RecognitionException { + try { + // InternalVampireLanguage.g:329:1: ( ruleVLSLemma EOF ) + // InternalVampireLanguage.g:330:1: ruleVLSLemma EOF + { + before(grammarAccess.getVLSLemmaRule()); + pushFollow(FOLLOW_1); + ruleVLSLemma(); + + state._fsp--; + + after(grammarAccess.getVLSLemmaRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSLemma" + + + // $ANTLR start "ruleVLSLemma" + // InternalVampireLanguage.g:337:1: ruleVLSLemma : ( 'lemma' ) ; + public final void ruleVLSLemma() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:341:2: ( ( 'lemma' ) ) + // InternalVampireLanguage.g:342:2: ( 'lemma' ) + { + // InternalVampireLanguage.g:342:2: ( 'lemma' ) + // InternalVampireLanguage.g:343:3: 'lemma' + { + before(grammarAccess.getVLSLemmaAccess().getLemmaKeyword()); + match(input,32,FOLLOW_2); + after(grammarAccess.getVLSLemmaAccess().getLemmaKeyword()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSLemma" + + + // $ANTLR start "entryRuleVLSTheorem" + // InternalVampireLanguage.g:353:1: entryRuleVLSTheorem : ruleVLSTheorem EOF ; + public final void entryRuleVLSTheorem() throws RecognitionException { + try { + // InternalVampireLanguage.g:354:1: ( ruleVLSTheorem EOF ) + // InternalVampireLanguage.g:355:1: ruleVLSTheorem EOF + { + before(grammarAccess.getVLSTheoremRule()); + pushFollow(FOLLOW_1); + ruleVLSTheorem(); + + state._fsp--; + + after(grammarAccess.getVLSTheoremRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSTheorem" + + + // $ANTLR start "ruleVLSTheorem" + // InternalVampireLanguage.g:362:1: ruleVLSTheorem : ( 'theorem' ) ; + public final void ruleVLSTheorem() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:366:2: ( ( 'theorem' ) ) + // InternalVampireLanguage.g:367:2: ( 'theorem' ) + { + // InternalVampireLanguage.g:367:2: ( 'theorem' ) + // InternalVampireLanguage.g:368:3: 'theorem' + { + before(grammarAccess.getVLSTheoremAccess().getTheoremKeyword()); + match(input,33,FOLLOW_2); + after(grammarAccess.getVLSTheoremAccess().getTheoremKeyword()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSTheorem" + + + // $ANTLR start "entryRuleVLSCorollary" + // InternalVampireLanguage.g:378:1: entryRuleVLSCorollary : ruleVLSCorollary EOF ; + public final void entryRuleVLSCorollary() throws RecognitionException { + try { + // InternalVampireLanguage.g:379:1: ( ruleVLSCorollary EOF ) + // InternalVampireLanguage.g:380:1: ruleVLSCorollary EOF + { + before(grammarAccess.getVLSCorollaryRule()); + pushFollow(FOLLOW_1); + ruleVLSCorollary(); + + state._fsp--; + + after(grammarAccess.getVLSCorollaryRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSCorollary" + + + // $ANTLR start "ruleVLSCorollary" + // InternalVampireLanguage.g:387:1: ruleVLSCorollary : ( 'corollary' ) ; + public final void ruleVLSCorollary() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:391:2: ( ( 'corollary' ) ) + // InternalVampireLanguage.g:392:2: ( 'corollary' ) + { + // InternalVampireLanguage.g:392:2: ( 'corollary' ) + // InternalVampireLanguage.g:393:3: 'corollary' + { + before(grammarAccess.getVLSCorollaryAccess().getCorollaryKeyword()); + match(input,34,FOLLOW_2); + after(grammarAccess.getVLSCorollaryAccess().getCorollaryKeyword()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSCorollary" + + + // $ANTLR start "entryRuleVLSNegated_Conjecture" + // InternalVampireLanguage.g:403:1: entryRuleVLSNegated_Conjecture : ruleVLSNegated_Conjecture EOF ; + public final void entryRuleVLSNegated_Conjecture() throws RecognitionException { + try { + // InternalVampireLanguage.g:404:1: ( ruleVLSNegated_Conjecture EOF ) + // InternalVampireLanguage.g:405:1: ruleVLSNegated_Conjecture EOF + { + before(grammarAccess.getVLSNegated_ConjectureRule()); + pushFollow(FOLLOW_1); + ruleVLSNegated_Conjecture(); + + state._fsp--; + + after(grammarAccess.getVLSNegated_ConjectureRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSNegated_Conjecture" + + + // $ANTLR start "ruleVLSNegated_Conjecture" + // InternalVampireLanguage.g:412:1: ruleVLSNegated_Conjecture : ( 'negated_conjecture' ) ; + public final void ruleVLSNegated_Conjecture() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:416:2: ( ( 'negated_conjecture' ) ) + // InternalVampireLanguage.g:417:2: ( 'negated_conjecture' ) + { + // InternalVampireLanguage.g:417:2: ( 'negated_conjecture' ) + // InternalVampireLanguage.g:418:3: 'negated_conjecture' + { + before(grammarAccess.getVLSNegated_ConjectureAccess().getNegated_conjectureKeyword()); + match(input,35,FOLLOW_2); + after(grammarAccess.getVLSNegated_ConjectureAccess().getNegated_conjectureKeyword()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSNegated_Conjecture" + + + // $ANTLR start "entryRuleVLSPlain" + // InternalVampireLanguage.g:428:1: entryRuleVLSPlain : ruleVLSPlain EOF ; + public final void entryRuleVLSPlain() throws RecognitionException { + try { + // InternalVampireLanguage.g:429:1: ( ruleVLSPlain EOF ) + // InternalVampireLanguage.g:430:1: ruleVLSPlain EOF + { + before(grammarAccess.getVLSPlainRule()); + pushFollow(FOLLOW_1); + ruleVLSPlain(); + + state._fsp--; + + after(grammarAccess.getVLSPlainRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSPlain" + + + // $ANTLR start "ruleVLSPlain" + // InternalVampireLanguage.g:437:1: ruleVLSPlain : ( 'plain' ) ; + public final void ruleVLSPlain() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:441:2: ( ( 'plain' ) ) + // InternalVampireLanguage.g:442:2: ( 'plain' ) + { + // InternalVampireLanguage.g:442:2: ( 'plain' ) + // InternalVampireLanguage.g:443:3: 'plain' + { + before(grammarAccess.getVLSPlainAccess().getPlainKeyword()); + match(input,36,FOLLOW_2); + after(grammarAccess.getVLSPlainAccess().getPlainKeyword()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSPlain" + + + // $ANTLR start "entryRuleVLSType" + // InternalVampireLanguage.g:453:1: entryRuleVLSType : ruleVLSType EOF ; + public final void entryRuleVLSType() throws RecognitionException { + try { + // InternalVampireLanguage.g:454:1: ( ruleVLSType EOF ) + // InternalVampireLanguage.g:455:1: ruleVLSType EOF + { + before(grammarAccess.getVLSTypeRule()); + pushFollow(FOLLOW_1); + ruleVLSType(); + + state._fsp--; + + after(grammarAccess.getVLSTypeRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSType" + + + // $ANTLR start "ruleVLSType" + // InternalVampireLanguage.g:462:1: ruleVLSType : ( 'type' ) ; + public final void ruleVLSType() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:466:2: ( ( 'type' ) ) + // InternalVampireLanguage.g:467:2: ( 'type' ) + { + // InternalVampireLanguage.g:467:2: ( 'type' ) + // InternalVampireLanguage.g:468:3: 'type' + { + before(grammarAccess.getVLSTypeAccess().getTypeKeyword()); + match(input,37,FOLLOW_2); + after(grammarAccess.getVLSTypeAccess().getTypeKeyword()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSType" + + + // $ANTLR start "entryRuleVLSFi_Domain" + // InternalVampireLanguage.g:478:1: entryRuleVLSFi_Domain : ruleVLSFi_Domain EOF ; + public final void entryRuleVLSFi_Domain() throws RecognitionException { + try { + // InternalVampireLanguage.g:479:1: ( ruleVLSFi_Domain EOF ) + // InternalVampireLanguage.g:480:1: ruleVLSFi_Domain EOF + { + before(grammarAccess.getVLSFi_DomainRule()); + pushFollow(FOLLOW_1); + ruleVLSFi_Domain(); + + state._fsp--; + + after(grammarAccess.getVLSFi_DomainRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSFi_Domain" + + + // $ANTLR start "ruleVLSFi_Domain" + // InternalVampireLanguage.g:487:1: ruleVLSFi_Domain : ( 'fi_domain' ) ; + public final void ruleVLSFi_Domain() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:491:2: ( ( 'fi_domain' ) ) + // InternalVampireLanguage.g:492:2: ( 'fi_domain' ) + { + // InternalVampireLanguage.g:492:2: ( 'fi_domain' ) + // InternalVampireLanguage.g:493:3: 'fi_domain' + { + before(grammarAccess.getVLSFi_DomainAccess().getFi_domainKeyword()); + match(input,38,FOLLOW_2); + after(grammarAccess.getVLSFi_DomainAccess().getFi_domainKeyword()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSFi_Domain" + + + // $ANTLR start "entryRuleVLSFi_Functors" + // InternalVampireLanguage.g:503:1: entryRuleVLSFi_Functors : ruleVLSFi_Functors EOF ; + public final void entryRuleVLSFi_Functors() throws RecognitionException { + try { + // InternalVampireLanguage.g:504:1: ( ruleVLSFi_Functors EOF ) + // InternalVampireLanguage.g:505:1: ruleVLSFi_Functors EOF + { + before(grammarAccess.getVLSFi_FunctorsRule()); + pushFollow(FOLLOW_1); + ruleVLSFi_Functors(); + + state._fsp--; + + after(grammarAccess.getVLSFi_FunctorsRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSFi_Functors" + + + // $ANTLR start "ruleVLSFi_Functors" + // InternalVampireLanguage.g:512:1: ruleVLSFi_Functors : ( 'fi_functors' ) ; + public final void ruleVLSFi_Functors() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:516:2: ( ( 'fi_functors' ) ) + // InternalVampireLanguage.g:517:2: ( 'fi_functors' ) + { + // InternalVampireLanguage.g:517:2: ( 'fi_functors' ) + // InternalVampireLanguage.g:518:3: 'fi_functors' + { + before(grammarAccess.getVLSFi_FunctorsAccess().getFi_functorsKeyword()); + match(input,39,FOLLOW_2); + after(grammarAccess.getVLSFi_FunctorsAccess().getFi_functorsKeyword()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSFi_Functors" + + + // $ANTLR start "entryRuleVLSFi_Predicates" + // InternalVampireLanguage.g:528:1: entryRuleVLSFi_Predicates : ruleVLSFi_Predicates EOF ; + public final void entryRuleVLSFi_Predicates() throws RecognitionException { + try { + // InternalVampireLanguage.g:529:1: ( ruleVLSFi_Predicates EOF ) + // InternalVampireLanguage.g:530:1: ruleVLSFi_Predicates EOF + { + before(grammarAccess.getVLSFi_PredicatesRule()); + pushFollow(FOLLOW_1); + ruleVLSFi_Predicates(); + + state._fsp--; + + after(grammarAccess.getVLSFi_PredicatesRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSFi_Predicates" + + + // $ANTLR start "ruleVLSFi_Predicates" + // InternalVampireLanguage.g:537:1: ruleVLSFi_Predicates : ( 'fi_predicates' ) ; + public final void ruleVLSFi_Predicates() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:541:2: ( ( 'fi_predicates' ) ) + // InternalVampireLanguage.g:542:2: ( 'fi_predicates' ) + { + // InternalVampireLanguage.g:542:2: ( 'fi_predicates' ) + // InternalVampireLanguage.g:543:3: 'fi_predicates' + { + before(grammarAccess.getVLSFi_PredicatesAccess().getFi_predicatesKeyword()); + match(input,40,FOLLOW_2); + after(grammarAccess.getVLSFi_PredicatesAccess().getFi_predicatesKeyword()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSFi_Predicates" + + + // $ANTLR start "entryRuleVLSUnknown" + // InternalVampireLanguage.g:553:1: entryRuleVLSUnknown : ruleVLSUnknown EOF ; + public final void entryRuleVLSUnknown() throws RecognitionException { + try { + // InternalVampireLanguage.g:554:1: ( ruleVLSUnknown EOF ) + // InternalVampireLanguage.g:555:1: ruleVLSUnknown EOF + { + before(grammarAccess.getVLSUnknownRule()); + pushFollow(FOLLOW_1); + ruleVLSUnknown(); + + state._fsp--; + + after(grammarAccess.getVLSUnknownRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSUnknown" + + + // $ANTLR start "ruleVLSUnknown" + // InternalVampireLanguage.g:562:1: ruleVLSUnknown : ( 'unknown' ) ; + public final void ruleVLSUnknown() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:566:2: ( ( 'unknown' ) ) + // InternalVampireLanguage.g:567:2: ( 'unknown' ) + { + // InternalVampireLanguage.g:567:2: ( 'unknown' ) + // InternalVampireLanguage.g:568:3: 'unknown' + { + before(grammarAccess.getVLSUnknownAccess().getUnknownKeyword()); + match(input,41,FOLLOW_2); + after(grammarAccess.getVLSUnknownAccess().getUnknownKeyword()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSUnknown" + + + // $ANTLR start "entryRuleVLSAnnotation" + // InternalVampireLanguage.g:578:1: entryRuleVLSAnnotation : ruleVLSAnnotation EOF ; + public final void entryRuleVLSAnnotation() throws RecognitionException { + try { + // InternalVampireLanguage.g:579:1: ( ruleVLSAnnotation EOF ) + // InternalVampireLanguage.g:580:1: ruleVLSAnnotation EOF + { + before(grammarAccess.getVLSAnnotationRule()); + pushFollow(FOLLOW_1); + ruleVLSAnnotation(); + + state._fsp--; + + after(grammarAccess.getVLSAnnotationRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSAnnotation" + + + // $ANTLR start "ruleVLSAnnotation" + // InternalVampireLanguage.g:587:1: ruleVLSAnnotation : ( ( rule__VLSAnnotation__Group__0 ) ) ; + public final void ruleVLSAnnotation() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:591:2: ( ( ( rule__VLSAnnotation__Group__0 ) ) ) + // InternalVampireLanguage.g:592:2: ( ( rule__VLSAnnotation__Group__0 ) ) + { + // InternalVampireLanguage.g:592:2: ( ( rule__VLSAnnotation__Group__0 ) ) + // InternalVampireLanguage.g:593:3: ( rule__VLSAnnotation__Group__0 ) + { + before(grammarAccess.getVLSAnnotationAccess().getGroup()); + // InternalVampireLanguage.g:594:3: ( rule__VLSAnnotation__Group__0 ) + // InternalVampireLanguage.g:594:4: rule__VLSAnnotation__Group__0 + { + pushFollow(FOLLOW_2); + rule__VLSAnnotation__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAnnotationAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSAnnotation" + + + // $ANTLR start "entryRuleVLSAnnotationTerms" + // InternalVampireLanguage.g:603:1: entryRuleVLSAnnotationTerms : ruleVLSAnnotationTerms EOF ; + public final void entryRuleVLSAnnotationTerms() throws RecognitionException { + try { + // InternalVampireLanguage.g:604:1: ( ruleVLSAnnotationTerms EOF ) + // InternalVampireLanguage.g:605:1: ruleVLSAnnotationTerms EOF + { + before(grammarAccess.getVLSAnnotationTermsRule()); + pushFollow(FOLLOW_1); + ruleVLSAnnotationTerms(); + + state._fsp--; + + after(grammarAccess.getVLSAnnotationTermsRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSAnnotationTerms" + + + // $ANTLR start "ruleVLSAnnotationTerms" + // InternalVampireLanguage.g:612:1: ruleVLSAnnotationTerms : ( ( rule__VLSAnnotationTerms__Group__0 ) ) ; + public final void ruleVLSAnnotationTerms() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:616:2: ( ( ( rule__VLSAnnotationTerms__Group__0 ) ) ) + // InternalVampireLanguage.g:617:2: ( ( rule__VLSAnnotationTerms__Group__0 ) ) + { + // InternalVampireLanguage.g:617:2: ( ( rule__VLSAnnotationTerms__Group__0 ) ) + // InternalVampireLanguage.g:618:3: ( rule__VLSAnnotationTerms__Group__0 ) + { + before(grammarAccess.getVLSAnnotationTermsAccess().getGroup()); + // InternalVampireLanguage.g:619:3: ( rule__VLSAnnotationTerms__Group__0 ) + // InternalVampireLanguage.g:619:4: rule__VLSAnnotationTerms__Group__0 + { + pushFollow(FOLLOW_2); + rule__VLSAnnotationTerms__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAnnotationTermsAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSAnnotationTerms" + + + // $ANTLR start "entryRuleVLSTerm" + // InternalVampireLanguage.g:628:1: entryRuleVLSTerm : ruleVLSTerm EOF ; + public final void entryRuleVLSTerm() throws RecognitionException { + try { + // InternalVampireLanguage.g:629:1: ( ruleVLSTerm EOF ) + // InternalVampireLanguage.g:630:1: ruleVLSTerm EOF + { + before(grammarAccess.getVLSTermRule()); + pushFollow(FOLLOW_1); + ruleVLSTerm(); + + state._fsp--; + + after(grammarAccess.getVLSTermRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSTerm" + + + // $ANTLR start "ruleVLSTerm" + // InternalVampireLanguage.g:637:1: ruleVLSTerm : ( ruleVLSBinary ) ; + public final void ruleVLSTerm() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:641:2: ( ( ruleVLSBinary ) ) + // InternalVampireLanguage.g:642:2: ( ruleVLSBinary ) + { + // InternalVampireLanguage.g:642:2: ( ruleVLSBinary ) + // InternalVampireLanguage.g:643:3: ruleVLSBinary + { + before(grammarAccess.getVLSTermAccess().getVLSBinaryParserRuleCall()); + pushFollow(FOLLOW_2); + ruleVLSBinary(); + + state._fsp--; + + after(grammarAccess.getVLSTermAccess().getVLSBinaryParserRuleCall()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSTerm" + + + // $ANTLR start "entryRuleVLSBinary" + // InternalVampireLanguage.g:653:1: entryRuleVLSBinary : ruleVLSBinary EOF ; + public final void entryRuleVLSBinary() throws RecognitionException { + try { + // InternalVampireLanguage.g:654:1: ( ruleVLSBinary EOF ) + // InternalVampireLanguage.g:655:1: ruleVLSBinary EOF + { + before(grammarAccess.getVLSBinaryRule()); + pushFollow(FOLLOW_1); + ruleVLSBinary(); + + state._fsp--; + + after(grammarAccess.getVLSBinaryRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSBinary" + + + // $ANTLR start "ruleVLSBinary" + // InternalVampireLanguage.g:662:1: ruleVLSBinary : ( ( rule__VLSBinary__Group__0 ) ) ; + public final void ruleVLSBinary() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:666:2: ( ( ( rule__VLSBinary__Group__0 ) ) ) + // InternalVampireLanguage.g:667:2: ( ( rule__VLSBinary__Group__0 ) ) + { + // InternalVampireLanguage.g:667:2: ( ( rule__VLSBinary__Group__0 ) ) + // InternalVampireLanguage.g:668:3: ( rule__VLSBinary__Group__0 ) + { + before(grammarAccess.getVLSBinaryAccess().getGroup()); + // InternalVampireLanguage.g:669:3: ( rule__VLSBinary__Group__0 ) + // InternalVampireLanguage.g:669:4: rule__VLSBinary__Group__0 + { + pushFollow(FOLLOW_2); + rule__VLSBinary__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSBinaryAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSBinary" + + + // $ANTLR start "entryRuleVLSUnitaryFormula" + // InternalVampireLanguage.g:678:1: entryRuleVLSUnitaryFormula : ruleVLSUnitaryFormula EOF ; + public final void entryRuleVLSUnitaryFormula() throws RecognitionException { + try { + // InternalVampireLanguage.g:679:1: ( ruleVLSUnitaryFormula EOF ) + // InternalVampireLanguage.g:680:1: ruleVLSUnitaryFormula EOF + { + before(grammarAccess.getVLSUnitaryFormulaRule()); + pushFollow(FOLLOW_1); + ruleVLSUnitaryFormula(); + + state._fsp--; + + after(grammarAccess.getVLSUnitaryFormulaRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSUnitaryFormula" + + + // $ANTLR start "ruleVLSUnitaryFormula" + // InternalVampireLanguage.g:687:1: ruleVLSUnitaryFormula : ( ( rule__VLSUnitaryFormula__Alternatives ) ) ; + public final void ruleVLSUnitaryFormula() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:691:2: ( ( ( rule__VLSUnitaryFormula__Alternatives ) ) ) + // InternalVampireLanguage.g:692:2: ( ( rule__VLSUnitaryFormula__Alternatives ) ) + { + // InternalVampireLanguage.g:692:2: ( ( rule__VLSUnitaryFormula__Alternatives ) ) + // InternalVampireLanguage.g:693:3: ( rule__VLSUnitaryFormula__Alternatives ) + { + before(grammarAccess.getVLSUnitaryFormulaAccess().getAlternatives()); + // InternalVampireLanguage.g:694:3: ( rule__VLSUnitaryFormula__Alternatives ) + // InternalVampireLanguage.g:694:4: rule__VLSUnitaryFormula__Alternatives + { + pushFollow(FOLLOW_2); + rule__VLSUnitaryFormula__Alternatives(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSUnitaryFormulaAccess().getAlternatives()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSUnitaryFormula" + + + // $ANTLR start "entryRuleVLSUniversalQuantifier" + // InternalVampireLanguage.g:703:1: entryRuleVLSUniversalQuantifier : ruleVLSUniversalQuantifier EOF ; + public final void entryRuleVLSUniversalQuantifier() throws RecognitionException { + try { + // InternalVampireLanguage.g:704:1: ( ruleVLSUniversalQuantifier EOF ) + // InternalVampireLanguage.g:705:1: ruleVLSUniversalQuantifier EOF + { + before(grammarAccess.getVLSUniversalQuantifierRule()); + pushFollow(FOLLOW_1); + ruleVLSUniversalQuantifier(); + + state._fsp--; + + after(grammarAccess.getVLSUniversalQuantifierRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSUniversalQuantifier" + + + // $ANTLR start "ruleVLSUniversalQuantifier" + // InternalVampireLanguage.g:712:1: ruleVLSUniversalQuantifier : ( ( rule__VLSUniversalQuantifier__Group__0 ) ) ; + public final void ruleVLSUniversalQuantifier() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:716:2: ( ( ( rule__VLSUniversalQuantifier__Group__0 ) ) ) + // InternalVampireLanguage.g:717:2: ( ( rule__VLSUniversalQuantifier__Group__0 ) ) + { + // InternalVampireLanguage.g:717:2: ( ( rule__VLSUniversalQuantifier__Group__0 ) ) + // InternalVampireLanguage.g:718:3: ( rule__VLSUniversalQuantifier__Group__0 ) + { + before(grammarAccess.getVLSUniversalQuantifierAccess().getGroup()); + // InternalVampireLanguage.g:719:3: ( rule__VLSUniversalQuantifier__Group__0 ) + // InternalVampireLanguage.g:719:4: rule__VLSUniversalQuantifier__Group__0 + { + pushFollow(FOLLOW_2); + rule__VLSUniversalQuantifier__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSUniversalQuantifierAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSUniversalQuantifier" + + + // $ANTLR start "entryRuleVLSExistentialQuantifier" + // InternalVampireLanguage.g:728:1: entryRuleVLSExistentialQuantifier : ruleVLSExistentialQuantifier EOF ; + public final void entryRuleVLSExistentialQuantifier() throws RecognitionException { + try { + // InternalVampireLanguage.g:729:1: ( ruleVLSExistentialQuantifier EOF ) + // InternalVampireLanguage.g:730:1: ruleVLSExistentialQuantifier EOF + { + before(grammarAccess.getVLSExistentialQuantifierRule()); + pushFollow(FOLLOW_1); + ruleVLSExistentialQuantifier(); + + state._fsp--; + + after(grammarAccess.getVLSExistentialQuantifierRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSExistentialQuantifier" + + + // $ANTLR start "ruleVLSExistentialQuantifier" + // InternalVampireLanguage.g:737:1: ruleVLSExistentialQuantifier : ( ( rule__VLSExistentialQuantifier__Group__0 ) ) ; + public final void ruleVLSExistentialQuantifier() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:741:2: ( ( ( rule__VLSExistentialQuantifier__Group__0 ) ) ) + // InternalVampireLanguage.g:742:2: ( ( rule__VLSExistentialQuantifier__Group__0 ) ) + { + // InternalVampireLanguage.g:742:2: ( ( rule__VLSExistentialQuantifier__Group__0 ) ) + // InternalVampireLanguage.g:743:3: ( rule__VLSExistentialQuantifier__Group__0 ) + { + before(grammarAccess.getVLSExistentialQuantifierAccess().getGroup()); + // InternalVampireLanguage.g:744:3: ( rule__VLSExistentialQuantifier__Group__0 ) + // InternalVampireLanguage.g:744:4: rule__VLSExistentialQuantifier__Group__0 + { + pushFollow(FOLLOW_2); + rule__VLSExistentialQuantifier__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSExistentialQuantifierAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSExistentialQuantifier" + + + // $ANTLR start "entryRuleVLSUnaryNegation" + // InternalVampireLanguage.g:753:1: entryRuleVLSUnaryNegation : ruleVLSUnaryNegation EOF ; + public final void entryRuleVLSUnaryNegation() throws RecognitionException { + try { + // InternalVampireLanguage.g:754:1: ( ruleVLSUnaryNegation EOF ) + // InternalVampireLanguage.g:755:1: ruleVLSUnaryNegation EOF + { + before(grammarAccess.getVLSUnaryNegationRule()); + pushFollow(FOLLOW_1); + ruleVLSUnaryNegation(); + + state._fsp--; + + after(grammarAccess.getVLSUnaryNegationRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSUnaryNegation" + + + // $ANTLR start "ruleVLSUnaryNegation" + // InternalVampireLanguage.g:762:1: ruleVLSUnaryNegation : ( ( rule__VLSUnaryNegation__Group__0 ) ) ; + public final void ruleVLSUnaryNegation() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:766:2: ( ( ( rule__VLSUnaryNegation__Group__0 ) ) ) + // InternalVampireLanguage.g:767:2: ( ( rule__VLSUnaryNegation__Group__0 ) ) + { + // InternalVampireLanguage.g:767:2: ( ( rule__VLSUnaryNegation__Group__0 ) ) + // InternalVampireLanguage.g:768:3: ( rule__VLSUnaryNegation__Group__0 ) + { + before(grammarAccess.getVLSUnaryNegationAccess().getGroup()); + // InternalVampireLanguage.g:769:3: ( rule__VLSUnaryNegation__Group__0 ) + // InternalVampireLanguage.g:769:4: rule__VLSUnaryNegation__Group__0 + { + pushFollow(FOLLOW_2); + rule__VLSUnaryNegation__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSUnaryNegationAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSUnaryNegation" + + + // $ANTLR start "entryRuleVLSUnaryInfix" + // InternalVampireLanguage.g:778:1: entryRuleVLSUnaryInfix : ruleVLSUnaryInfix EOF ; + public final void entryRuleVLSUnaryInfix() throws RecognitionException { + try { + // InternalVampireLanguage.g:779:1: ( ruleVLSUnaryInfix EOF ) + // InternalVampireLanguage.g:780:1: ruleVLSUnaryInfix EOF + { + before(grammarAccess.getVLSUnaryInfixRule()); + pushFollow(FOLLOW_1); + ruleVLSUnaryInfix(); + + state._fsp--; + + after(grammarAccess.getVLSUnaryInfixRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSUnaryInfix" + + + // $ANTLR start "ruleVLSUnaryInfix" + // InternalVampireLanguage.g:787:1: ruleVLSUnaryInfix : ( ( rule__VLSUnaryInfix__Group__0 ) ) ; + public final void ruleVLSUnaryInfix() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:791:2: ( ( ( rule__VLSUnaryInfix__Group__0 ) ) ) + // InternalVampireLanguage.g:792:2: ( ( rule__VLSUnaryInfix__Group__0 ) ) + { + // InternalVampireLanguage.g:792:2: ( ( rule__VLSUnaryInfix__Group__0 ) ) + // InternalVampireLanguage.g:793:3: ( rule__VLSUnaryInfix__Group__0 ) + { + before(grammarAccess.getVLSUnaryInfixAccess().getGroup()); + // InternalVampireLanguage.g:794:3: ( rule__VLSUnaryInfix__Group__0 ) + // InternalVampireLanguage.g:794:4: rule__VLSUnaryInfix__Group__0 + { + pushFollow(FOLLOW_2); + rule__VLSUnaryInfix__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSUnaryInfixAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSUnaryInfix" + + + // $ANTLR start "entryRuleVLSAtomic" + // InternalVampireLanguage.g:803:1: entryRuleVLSAtomic : ruleVLSAtomic EOF ; + public final void entryRuleVLSAtomic() throws RecognitionException { + try { + // InternalVampireLanguage.g:804:1: ( ruleVLSAtomic EOF ) + // InternalVampireLanguage.g:805:1: ruleVLSAtomic EOF + { + before(grammarAccess.getVLSAtomicRule()); + pushFollow(FOLLOW_1); + ruleVLSAtomic(); + + state._fsp--; + + after(grammarAccess.getVLSAtomicRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSAtomic" + + + // $ANTLR start "ruleVLSAtomic" + // InternalVampireLanguage.g:812:1: ruleVLSAtomic : ( ( rule__VLSAtomic__Alternatives ) ) ; + public final void ruleVLSAtomic() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:816:2: ( ( ( rule__VLSAtomic__Alternatives ) ) ) + // InternalVampireLanguage.g:817:2: ( ( rule__VLSAtomic__Alternatives ) ) + { + // InternalVampireLanguage.g:817:2: ( ( rule__VLSAtomic__Alternatives ) ) + // InternalVampireLanguage.g:818:3: ( rule__VLSAtomic__Alternatives ) + { + before(grammarAccess.getVLSAtomicAccess().getAlternatives()); + // InternalVampireLanguage.g:819:3: ( rule__VLSAtomic__Alternatives ) + // InternalVampireLanguage.g:819:4: rule__VLSAtomic__Alternatives + { + pushFollow(FOLLOW_2); + rule__VLSAtomic__Alternatives(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAtomicAccess().getAlternatives()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSAtomic" + + + // $ANTLR start "entryRuleVLSAtomicConstant" + // InternalVampireLanguage.g:828:1: entryRuleVLSAtomicConstant : ruleVLSAtomicConstant EOF ; + public final void entryRuleVLSAtomicConstant() throws RecognitionException { + try { + // InternalVampireLanguage.g:829:1: ( ruleVLSAtomicConstant EOF ) + // InternalVampireLanguage.g:830:1: ruleVLSAtomicConstant EOF + { + before(grammarAccess.getVLSAtomicConstantRule()); + pushFollow(FOLLOW_1); + ruleVLSAtomicConstant(); + + state._fsp--; + + after(grammarAccess.getVLSAtomicConstantRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSAtomicConstant" + + + // $ANTLR start "ruleVLSAtomicConstant" + // InternalVampireLanguage.g:837:1: ruleVLSAtomicConstant : ( ( rule__VLSAtomicConstant__Alternatives ) ) ; + public final void ruleVLSAtomicConstant() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:841:2: ( ( ( rule__VLSAtomicConstant__Alternatives ) ) ) + // InternalVampireLanguage.g:842:2: ( ( rule__VLSAtomicConstant__Alternatives ) ) + { + // InternalVampireLanguage.g:842:2: ( ( rule__VLSAtomicConstant__Alternatives ) ) + // InternalVampireLanguage.g:843:3: ( rule__VLSAtomicConstant__Alternatives ) + { + before(grammarAccess.getVLSAtomicConstantAccess().getAlternatives()); + // InternalVampireLanguage.g:844:3: ( rule__VLSAtomicConstant__Alternatives ) + // InternalVampireLanguage.g:844:4: rule__VLSAtomicConstant__Alternatives + { + pushFollow(FOLLOW_2); + rule__VLSAtomicConstant__Alternatives(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAtomicConstantAccess().getAlternatives()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSAtomicConstant" + + + // $ANTLR start "entryRuleVLSAtomicFunction" + // InternalVampireLanguage.g:853:1: entryRuleVLSAtomicFunction : ruleVLSAtomicFunction EOF ; + public final void entryRuleVLSAtomicFunction() throws RecognitionException { + try { + // InternalVampireLanguage.g:854:1: ( ruleVLSAtomicFunction EOF ) + // InternalVampireLanguage.g:855:1: ruleVLSAtomicFunction EOF + { + before(grammarAccess.getVLSAtomicFunctionRule()); + pushFollow(FOLLOW_1); + ruleVLSAtomicFunction(); + + state._fsp--; + + after(grammarAccess.getVLSAtomicFunctionRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSAtomicFunction" + + + // $ANTLR start "ruleVLSAtomicFunction" + // InternalVampireLanguage.g:862:1: ruleVLSAtomicFunction : ( ( rule__VLSAtomicFunction__Alternatives ) ) ; + public final void ruleVLSAtomicFunction() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:866:2: ( ( ( rule__VLSAtomicFunction__Alternatives ) ) ) + // InternalVampireLanguage.g:867:2: ( ( rule__VLSAtomicFunction__Alternatives ) ) + { + // InternalVampireLanguage.g:867:2: ( ( rule__VLSAtomicFunction__Alternatives ) ) + // InternalVampireLanguage.g:868:3: ( rule__VLSAtomicFunction__Alternatives ) + { + before(grammarAccess.getVLSAtomicFunctionAccess().getAlternatives()); + // InternalVampireLanguage.g:869:3: ( rule__VLSAtomicFunction__Alternatives ) + // InternalVampireLanguage.g:869:4: rule__VLSAtomicFunction__Alternatives + { + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__Alternatives(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAtomicFunctionAccess().getAlternatives()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSAtomicFunction" + + + // $ANTLR start "entryRuleVLSVariable" + // InternalVampireLanguage.g:878:1: entryRuleVLSVariable : ruleVLSVariable EOF ; + public final void entryRuleVLSVariable() throws RecognitionException { + try { + // InternalVampireLanguage.g:879:1: ( ruleVLSVariable EOF ) + // InternalVampireLanguage.g:880:1: ruleVLSVariable EOF + { + before(grammarAccess.getVLSVariableRule()); + pushFollow(FOLLOW_1); + ruleVLSVariable(); + + state._fsp--; + + after(grammarAccess.getVLSVariableRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSVariable" + + + // $ANTLR start "ruleVLSVariable" + // InternalVampireLanguage.g:887:1: ruleVLSVariable : ( ( rule__VLSVariable__NameAssignment ) ) ; + public final void ruleVLSVariable() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:891:2: ( ( ( rule__VLSVariable__NameAssignment ) ) ) + // InternalVampireLanguage.g:892:2: ( ( rule__VLSVariable__NameAssignment ) ) + { + // InternalVampireLanguage.g:892:2: ( ( rule__VLSVariable__NameAssignment ) ) + // InternalVampireLanguage.g:893:3: ( rule__VLSVariable__NameAssignment ) + { + before(grammarAccess.getVLSVariableAccess().getNameAssignment()); + // InternalVampireLanguage.g:894:3: ( rule__VLSVariable__NameAssignment ) + // InternalVampireLanguage.g:894:4: rule__VLSVariable__NameAssignment + { + pushFollow(FOLLOW_2); + rule__VLSVariable__NameAssignment(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSVariableAccess().getNameAssignment()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSVariable" + + + // $ANTLR start "entryRuleVLSFofTerm" + // InternalVampireLanguage.g:903:1: entryRuleVLSFofTerm : ruleVLSFofTerm EOF ; + public final void entryRuleVLSFofTerm() throws RecognitionException { + try { + // InternalVampireLanguage.g:904:1: ( ruleVLSFofTerm EOF ) + // InternalVampireLanguage.g:905:1: ruleVLSFofTerm EOF + { + before(grammarAccess.getVLSFofTermRule()); + pushFollow(FOLLOW_1); + ruleVLSFofTerm(); + + state._fsp--; + + after(grammarAccess.getVLSFofTermRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSFofTerm" + + + // $ANTLR start "ruleVLSFofTerm" + // InternalVampireLanguage.g:912:1: ruleVLSFofTerm : ( ( rule__VLSFofTerm__Alternatives ) ) ; + public final void ruleVLSFofTerm() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:916:2: ( ( ( rule__VLSFofTerm__Alternatives ) ) ) + // InternalVampireLanguage.g:917:2: ( ( rule__VLSFofTerm__Alternatives ) ) + { + // InternalVampireLanguage.g:917:2: ( ( rule__VLSFofTerm__Alternatives ) ) + // InternalVampireLanguage.g:918:3: ( rule__VLSFofTerm__Alternatives ) + { + before(grammarAccess.getVLSFofTermAccess().getAlternatives()); + // InternalVampireLanguage.g:919:3: ( rule__VLSFofTerm__Alternatives ) + // InternalVampireLanguage.g:919:4: rule__VLSFofTerm__Alternatives + { + pushFollow(FOLLOW_2); + rule__VLSFofTerm__Alternatives(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSFofTermAccess().getAlternatives()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSFofTerm" + + + // $ANTLR start "entryRuleVLSFunctionFof" + // InternalVampireLanguage.g:928:1: entryRuleVLSFunctionFof : ruleVLSFunctionFof EOF ; + public final void entryRuleVLSFunctionFof() throws RecognitionException { + try { + // InternalVampireLanguage.g:929:1: ( ruleVLSFunctionFof EOF ) + // InternalVampireLanguage.g:930:1: ruleVLSFunctionFof EOF + { + before(grammarAccess.getVLSFunctionFofRule()); + pushFollow(FOLLOW_1); + ruleVLSFunctionFof(); + + state._fsp--; + + after(grammarAccess.getVLSFunctionFofRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSFunctionFof" + + + // $ANTLR start "ruleVLSFunctionFof" + // InternalVampireLanguage.g:937:1: ruleVLSFunctionFof : ( ( rule__VLSFunctionFof__Group__0 ) ) ; + public final void ruleVLSFunctionFof() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:941:2: ( ( ( rule__VLSFunctionFof__Group__0 ) ) ) + // InternalVampireLanguage.g:942:2: ( ( rule__VLSFunctionFof__Group__0 ) ) + { + // InternalVampireLanguage.g:942:2: ( ( rule__VLSFunctionFof__Group__0 ) ) + // InternalVampireLanguage.g:943:3: ( rule__VLSFunctionFof__Group__0 ) + { + before(grammarAccess.getVLSFunctionFofAccess().getGroup()); + // InternalVampireLanguage.g:944:3: ( rule__VLSFunctionFof__Group__0 ) + // InternalVampireLanguage.g:944:4: rule__VLSFunctionFof__Group__0 + { + pushFollow(FOLLOW_2); + rule__VLSFunctionFof__Group__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSFunctionFofAccess().getGroup()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSFunctionFof" + + + // $ANTLR start "entryRuleVLSDefinedTerm" + // InternalVampireLanguage.g:953:1: entryRuleVLSDefinedTerm : ruleVLSDefinedTerm EOF ; + public final void entryRuleVLSDefinedTerm() throws RecognitionException { + try { + // InternalVampireLanguage.g:954:1: ( ruleVLSDefinedTerm EOF ) + // InternalVampireLanguage.g:955:1: ruleVLSDefinedTerm EOF + { + before(grammarAccess.getVLSDefinedTermRule()); + pushFollow(FOLLOW_1); + ruleVLSDefinedTerm(); + + state._fsp--; + + after(grammarAccess.getVLSDefinedTermRule()); + match(input,EOF,FOLLOW_2); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleVLSDefinedTerm" + + + // $ANTLR start "ruleVLSDefinedTerm" + // InternalVampireLanguage.g:962:1: ruleVLSDefinedTerm : ( ( rule__VLSDefinedTerm__Alternatives ) ) ; + public final void ruleVLSDefinedTerm() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:966:2: ( ( ( rule__VLSDefinedTerm__Alternatives ) ) ) + // InternalVampireLanguage.g:967:2: ( ( rule__VLSDefinedTerm__Alternatives ) ) + { + // InternalVampireLanguage.g:967:2: ( ( rule__VLSDefinedTerm__Alternatives ) ) + // InternalVampireLanguage.g:968:3: ( rule__VLSDefinedTerm__Alternatives ) + { + before(grammarAccess.getVLSDefinedTermAccess().getAlternatives()); + // InternalVampireLanguage.g:969:3: ( rule__VLSDefinedTerm__Alternatives ) + // InternalVampireLanguage.g:969:4: rule__VLSDefinedTerm__Alternatives + { + pushFollow(FOLLOW_2); + rule__VLSDefinedTerm__Alternatives(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSDefinedTermAccess().getAlternatives()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleVLSDefinedTerm" + + + // $ANTLR start "rule__VampireModel__Alternatives" + // InternalVampireLanguage.g:977:1: rule__VampireModel__Alternatives : ( ( ( rule__VampireModel__IncludesAssignment_0 ) ) | ( ( rule__VampireModel__CommentsAssignment_1 ) ) | ( ( rule__VampireModel__FormulasAssignment_2 ) ) ); + public final void rule__VampireModel__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:981:1: ( ( ( rule__VampireModel__IncludesAssignment_0 ) ) | ( ( rule__VampireModel__CommentsAssignment_1 ) ) | ( ( rule__VampireModel__FormulasAssignment_2 ) ) ) + int alt2=3; + switch ( input.LA(1) ) { + case 42: + { + alt2=1; + } + break; + case RULE_SINGLE_COMMENT: + { + alt2=2; + } + break; + case 46: + { + alt2=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 2, 0, input); + + throw nvae; + } + + switch (alt2) { + case 1 : + // InternalVampireLanguage.g:982:2: ( ( rule__VampireModel__IncludesAssignment_0 ) ) + { + // InternalVampireLanguage.g:982:2: ( ( rule__VampireModel__IncludesAssignment_0 ) ) + // InternalVampireLanguage.g:983:3: ( rule__VampireModel__IncludesAssignment_0 ) + { + before(grammarAccess.getVampireModelAccess().getIncludesAssignment_0()); + // InternalVampireLanguage.g:984:3: ( rule__VampireModel__IncludesAssignment_0 ) + // InternalVampireLanguage.g:984:4: rule__VampireModel__IncludesAssignment_0 + { + pushFollow(FOLLOW_2); + rule__VampireModel__IncludesAssignment_0(); + + state._fsp--; + + + } + + after(grammarAccess.getVampireModelAccess().getIncludesAssignment_0()); + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:988:2: ( ( rule__VampireModel__CommentsAssignment_1 ) ) + { + // InternalVampireLanguage.g:988:2: ( ( rule__VampireModel__CommentsAssignment_1 ) ) + // InternalVampireLanguage.g:989:3: ( rule__VampireModel__CommentsAssignment_1 ) + { + before(grammarAccess.getVampireModelAccess().getCommentsAssignment_1()); + // InternalVampireLanguage.g:990:3: ( rule__VampireModel__CommentsAssignment_1 ) + // InternalVampireLanguage.g:990:4: rule__VampireModel__CommentsAssignment_1 + { + pushFollow(FOLLOW_2); + rule__VampireModel__CommentsAssignment_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVampireModelAccess().getCommentsAssignment_1()); + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:994:2: ( ( rule__VampireModel__FormulasAssignment_2 ) ) + { + // InternalVampireLanguage.g:994:2: ( ( rule__VampireModel__FormulasAssignment_2 ) ) + // InternalVampireLanguage.g:995:3: ( rule__VampireModel__FormulasAssignment_2 ) + { + before(grammarAccess.getVampireModelAccess().getFormulasAssignment_2()); + // InternalVampireLanguage.g:996:3: ( rule__VampireModel__FormulasAssignment_2 ) + // InternalVampireLanguage.g:996:4: rule__VampireModel__FormulasAssignment_2 + { + pushFollow(FOLLOW_2); + rule__VampireModel__FormulasAssignment_2(); + + state._fsp--; + + + } + + after(grammarAccess.getVampireModelAccess().getFormulasAssignment_2()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VampireModel__Alternatives" + + + // $ANTLR start "rule__VLSName__NameAlternatives_0" + // InternalVampireLanguage.g:1004:1: rule__VLSName__NameAlternatives_0 : ( ( RULE_LOWER_WORD_ID ) | ( RULE_SINGLE_QUOTE ) | ( RULE_LITERAL ) | ( RULE_SIGNED_LITERAL ) ); + public final void rule__VLSName__NameAlternatives_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1008:1: ( ( RULE_LOWER_WORD_ID ) | ( RULE_SINGLE_QUOTE ) | ( RULE_LITERAL ) | ( RULE_SIGNED_LITERAL ) ) + int alt3=4; + switch ( input.LA(1) ) { + case RULE_LOWER_WORD_ID: + { + alt3=1; + } + break; + case RULE_SINGLE_QUOTE: + { + alt3=2; + } + break; + case RULE_LITERAL: + { + alt3=3; + } + break; + case RULE_SIGNED_LITERAL: + { + alt3=4; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 3, 0, input); + + throw nvae; + } + + switch (alt3) { + case 1 : + // InternalVampireLanguage.g:1009:2: ( RULE_LOWER_WORD_ID ) + { + // InternalVampireLanguage.g:1009:2: ( RULE_LOWER_WORD_ID ) + // InternalVampireLanguage.g:1010:3: RULE_LOWER_WORD_ID + { + before(grammarAccess.getVLSNameAccess().getNameLOWER_WORD_IDTerminalRuleCall_0_0()); + match(input,RULE_LOWER_WORD_ID,FOLLOW_2); + after(grammarAccess.getVLSNameAccess().getNameLOWER_WORD_IDTerminalRuleCall_0_0()); + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:1015:2: ( RULE_SINGLE_QUOTE ) + { + // InternalVampireLanguage.g:1015:2: ( RULE_SINGLE_QUOTE ) + // InternalVampireLanguage.g:1016:3: RULE_SINGLE_QUOTE + { + before(grammarAccess.getVLSNameAccess().getNameSINGLE_QUOTETerminalRuleCall_0_1()); + match(input,RULE_SINGLE_QUOTE,FOLLOW_2); + after(grammarAccess.getVLSNameAccess().getNameSINGLE_QUOTETerminalRuleCall_0_1()); + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:1021:2: ( RULE_LITERAL ) + { + // InternalVampireLanguage.g:1021:2: ( RULE_LITERAL ) + // InternalVampireLanguage.g:1022:3: RULE_LITERAL + { + before(grammarAccess.getVLSNameAccess().getNameLITERALTerminalRuleCall_0_2()); + match(input,RULE_LITERAL,FOLLOW_2); + after(grammarAccess.getVLSNameAccess().getNameLITERALTerminalRuleCall_0_2()); + + } + + + } + break; + case 4 : + // InternalVampireLanguage.g:1027:2: ( RULE_SIGNED_LITERAL ) + { + // InternalVampireLanguage.g:1027:2: ( RULE_SIGNED_LITERAL ) + // InternalVampireLanguage.g:1028:3: RULE_SIGNED_LITERAL + { + before(grammarAccess.getVLSNameAccess().getNameSIGNED_LITERALTerminalRuleCall_0_3()); + match(input,RULE_SIGNED_LITERAL,FOLLOW_2); + after(grammarAccess.getVLSNameAccess().getNameSIGNED_LITERALTerminalRuleCall_0_3()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSName__NameAlternatives_0" + + + // $ANTLR start "rule__VLSFofFormula__NameAlternatives_2_0" + // InternalVampireLanguage.g:1037:1: rule__VLSFofFormula__NameAlternatives_2_0 : ( ( RULE_LOWER_WORD_ID ) | ( RULE_SIGNED_LITERAL ) | ( RULE_SINGLE_QUOTE ) ); + public final void rule__VLSFofFormula__NameAlternatives_2_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1041:1: ( ( RULE_LOWER_WORD_ID ) | ( RULE_SIGNED_LITERAL ) | ( RULE_SINGLE_QUOTE ) ) + int alt4=3; + switch ( input.LA(1) ) { + case RULE_LOWER_WORD_ID: + { + alt4=1; + } + break; + case RULE_SIGNED_LITERAL: + { + alt4=2; + } + break; + case RULE_SINGLE_QUOTE: + { + alt4=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 4, 0, input); + + throw nvae; + } + + switch (alt4) { + case 1 : + // InternalVampireLanguage.g:1042:2: ( RULE_LOWER_WORD_ID ) + { + // InternalVampireLanguage.g:1042:2: ( RULE_LOWER_WORD_ID ) + // InternalVampireLanguage.g:1043:3: RULE_LOWER_WORD_ID + { + before(grammarAccess.getVLSFofFormulaAccess().getNameLOWER_WORD_IDTerminalRuleCall_2_0_0()); + match(input,RULE_LOWER_WORD_ID,FOLLOW_2); + after(grammarAccess.getVLSFofFormulaAccess().getNameLOWER_WORD_IDTerminalRuleCall_2_0_0()); + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:1048:2: ( RULE_SIGNED_LITERAL ) + { + // InternalVampireLanguage.g:1048:2: ( RULE_SIGNED_LITERAL ) + // InternalVampireLanguage.g:1049:3: RULE_SIGNED_LITERAL + { + before(grammarAccess.getVLSFofFormulaAccess().getNameSIGNED_LITERALTerminalRuleCall_2_0_1()); + match(input,RULE_SIGNED_LITERAL,FOLLOW_2); + after(grammarAccess.getVLSFofFormulaAccess().getNameSIGNED_LITERALTerminalRuleCall_2_0_1()); + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:1054:2: ( RULE_SINGLE_QUOTE ) + { + // InternalVampireLanguage.g:1054:2: ( RULE_SINGLE_QUOTE ) + // InternalVampireLanguage.g:1055:3: RULE_SINGLE_QUOTE + { + before(grammarAccess.getVLSFofFormulaAccess().getNameSINGLE_QUOTETerminalRuleCall_2_0_2()); + match(input,RULE_SINGLE_QUOTE,FOLLOW_2); + after(grammarAccess.getVLSFofFormulaAccess().getNameSINGLE_QUOTETerminalRuleCall_2_0_2()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__NameAlternatives_2_0" + + + // $ANTLR start "rule__VLSRole__Alternatives" + // InternalVampireLanguage.g:1064:1: rule__VLSRole__Alternatives : ( ( ruleVLSAxiom ) | ( ruleVLSConjecture ) | ( ruleVLSHypothesis ) | ( ruleVLSDefinition ) | ( ruleVLSAssumption ) | ( ruleVLSLemma ) | ( ruleVLSTheorem ) | ( ruleVLSCorollary ) | ( ruleVLSNegated_Conjecture ) | ( ruleVLSPlain ) | ( ruleVLSType ) | ( ruleVLSFi_Domain ) | ( ruleVLSFi_Functors ) | ( ruleVLSFi_Predicates ) | ( ruleVLSUnknown ) ); + public final void rule__VLSRole__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1068:1: ( ( ruleVLSAxiom ) | ( ruleVLSConjecture ) | ( ruleVLSHypothesis ) | ( ruleVLSDefinition ) | ( ruleVLSAssumption ) | ( ruleVLSLemma ) | ( ruleVLSTheorem ) | ( ruleVLSCorollary ) | ( ruleVLSNegated_Conjecture ) | ( ruleVLSPlain ) | ( ruleVLSType ) | ( ruleVLSFi_Domain ) | ( ruleVLSFi_Functors ) | ( ruleVLSFi_Predicates ) | ( ruleVLSUnknown ) ) + int alt5=15; + switch ( input.LA(1) ) { + case 27: + { + alt5=1; + } + break; + case 28: + { + alt5=2; + } + break; + case 29: + { + alt5=3; + } + break; + case 30: + { + alt5=4; + } + break; + case 31: + { + alt5=5; + } + break; + case 32: + { + alt5=6; + } + break; + case 33: + { + alt5=7; + } + break; + case 34: + { + alt5=8; + } + break; + case 35: + { + alt5=9; + } + break; + case 36: + { + alt5=10; + } + break; + case 37: + { + alt5=11; + } + break; + case 38: + { + alt5=12; + } + break; + case 39: + { + alt5=13; + } + break; + case 40: + { + alt5=14; + } + break; + case 41: + { + alt5=15; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 5, 0, input); + + throw nvae; + } + + switch (alt5) { + case 1 : + // InternalVampireLanguage.g:1069:2: ( ruleVLSAxiom ) + { + // InternalVampireLanguage.g:1069:2: ( ruleVLSAxiom ) + // InternalVampireLanguage.g:1070:3: ruleVLSAxiom + { + before(grammarAccess.getVLSRoleAccess().getVLSAxiomParserRuleCall_0()); + pushFollow(FOLLOW_2); + ruleVLSAxiom(); + + state._fsp--; + + after(grammarAccess.getVLSRoleAccess().getVLSAxiomParserRuleCall_0()); + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:1075:2: ( ruleVLSConjecture ) + { + // InternalVampireLanguage.g:1075:2: ( ruleVLSConjecture ) + // InternalVampireLanguage.g:1076:3: ruleVLSConjecture + { + before(grammarAccess.getVLSRoleAccess().getVLSConjectureParserRuleCall_1()); + pushFollow(FOLLOW_2); + ruleVLSConjecture(); + + state._fsp--; + + after(grammarAccess.getVLSRoleAccess().getVLSConjectureParserRuleCall_1()); + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:1081:2: ( ruleVLSHypothesis ) + { + // InternalVampireLanguage.g:1081:2: ( ruleVLSHypothesis ) + // InternalVampireLanguage.g:1082:3: ruleVLSHypothesis + { + before(grammarAccess.getVLSRoleAccess().getVLSHypothesisParserRuleCall_2()); + pushFollow(FOLLOW_2); + ruleVLSHypothesis(); + + state._fsp--; + + after(grammarAccess.getVLSRoleAccess().getVLSHypothesisParserRuleCall_2()); + + } + + + } + break; + case 4 : + // InternalVampireLanguage.g:1087:2: ( ruleVLSDefinition ) + { + // InternalVampireLanguage.g:1087:2: ( ruleVLSDefinition ) + // InternalVampireLanguage.g:1088:3: ruleVLSDefinition + { + before(grammarAccess.getVLSRoleAccess().getVLSDefinitionParserRuleCall_3()); + pushFollow(FOLLOW_2); + ruleVLSDefinition(); + + state._fsp--; + + after(grammarAccess.getVLSRoleAccess().getVLSDefinitionParserRuleCall_3()); + + } + + + } + break; + case 5 : + // InternalVampireLanguage.g:1093:2: ( ruleVLSAssumption ) + { + // InternalVampireLanguage.g:1093:2: ( ruleVLSAssumption ) + // InternalVampireLanguage.g:1094:3: ruleVLSAssumption + { + before(grammarAccess.getVLSRoleAccess().getVLSAssumptionParserRuleCall_4()); + pushFollow(FOLLOW_2); + ruleVLSAssumption(); + + state._fsp--; + + after(grammarAccess.getVLSRoleAccess().getVLSAssumptionParserRuleCall_4()); + + } + + + } + break; + case 6 : + // InternalVampireLanguage.g:1099:2: ( ruleVLSLemma ) + { + // InternalVampireLanguage.g:1099:2: ( ruleVLSLemma ) + // InternalVampireLanguage.g:1100:3: ruleVLSLemma + { + before(grammarAccess.getVLSRoleAccess().getVLSLemmaParserRuleCall_5()); + pushFollow(FOLLOW_2); + ruleVLSLemma(); + + state._fsp--; + + after(grammarAccess.getVLSRoleAccess().getVLSLemmaParserRuleCall_5()); + + } + + + } + break; + case 7 : + // InternalVampireLanguage.g:1105:2: ( ruleVLSTheorem ) + { + // InternalVampireLanguage.g:1105:2: ( ruleVLSTheorem ) + // InternalVampireLanguage.g:1106:3: ruleVLSTheorem + { + before(grammarAccess.getVLSRoleAccess().getVLSTheoremParserRuleCall_6()); + pushFollow(FOLLOW_2); + ruleVLSTheorem(); + + state._fsp--; + + after(grammarAccess.getVLSRoleAccess().getVLSTheoremParserRuleCall_6()); + + } + + + } + break; + case 8 : + // InternalVampireLanguage.g:1111:2: ( ruleVLSCorollary ) + { + // InternalVampireLanguage.g:1111:2: ( ruleVLSCorollary ) + // InternalVampireLanguage.g:1112:3: ruleVLSCorollary + { + before(grammarAccess.getVLSRoleAccess().getVLSCorollaryParserRuleCall_7()); + pushFollow(FOLLOW_2); + ruleVLSCorollary(); + + state._fsp--; + + after(grammarAccess.getVLSRoleAccess().getVLSCorollaryParserRuleCall_7()); + + } + + + } + break; + case 9 : + // InternalVampireLanguage.g:1117:2: ( ruleVLSNegated_Conjecture ) + { + // InternalVampireLanguage.g:1117:2: ( ruleVLSNegated_Conjecture ) + // InternalVampireLanguage.g:1118:3: ruleVLSNegated_Conjecture + { + before(grammarAccess.getVLSRoleAccess().getVLSNegated_ConjectureParserRuleCall_8()); + pushFollow(FOLLOW_2); + ruleVLSNegated_Conjecture(); + + state._fsp--; + + after(grammarAccess.getVLSRoleAccess().getVLSNegated_ConjectureParserRuleCall_8()); + + } + + + } + break; + case 10 : + // InternalVampireLanguage.g:1123:2: ( ruleVLSPlain ) + { + // InternalVampireLanguage.g:1123:2: ( ruleVLSPlain ) + // InternalVampireLanguage.g:1124:3: ruleVLSPlain + { + before(grammarAccess.getVLSRoleAccess().getVLSPlainParserRuleCall_9()); + pushFollow(FOLLOW_2); + ruleVLSPlain(); + + state._fsp--; + + after(grammarAccess.getVLSRoleAccess().getVLSPlainParserRuleCall_9()); + + } + + + } + break; + case 11 : + // InternalVampireLanguage.g:1129:2: ( ruleVLSType ) + { + // InternalVampireLanguage.g:1129:2: ( ruleVLSType ) + // InternalVampireLanguage.g:1130:3: ruleVLSType + { + before(grammarAccess.getVLSRoleAccess().getVLSTypeParserRuleCall_10()); + pushFollow(FOLLOW_2); + ruleVLSType(); + + state._fsp--; + + after(grammarAccess.getVLSRoleAccess().getVLSTypeParserRuleCall_10()); + + } + + + } + break; + case 12 : + // InternalVampireLanguage.g:1135:2: ( ruleVLSFi_Domain ) + { + // InternalVampireLanguage.g:1135:2: ( ruleVLSFi_Domain ) + // InternalVampireLanguage.g:1136:3: ruleVLSFi_Domain + { + before(grammarAccess.getVLSRoleAccess().getVLSFi_DomainParserRuleCall_11()); + pushFollow(FOLLOW_2); + ruleVLSFi_Domain(); + + state._fsp--; + + after(grammarAccess.getVLSRoleAccess().getVLSFi_DomainParserRuleCall_11()); + + } + + + } + break; + case 13 : + // InternalVampireLanguage.g:1141:2: ( ruleVLSFi_Functors ) + { + // InternalVampireLanguage.g:1141:2: ( ruleVLSFi_Functors ) + // InternalVampireLanguage.g:1142:3: ruleVLSFi_Functors + { + before(grammarAccess.getVLSRoleAccess().getVLSFi_FunctorsParserRuleCall_12()); + pushFollow(FOLLOW_2); + ruleVLSFi_Functors(); + + state._fsp--; + + after(grammarAccess.getVLSRoleAccess().getVLSFi_FunctorsParserRuleCall_12()); + + } + + + } + break; + case 14 : + // InternalVampireLanguage.g:1147:2: ( ruleVLSFi_Predicates ) + { + // InternalVampireLanguage.g:1147:2: ( ruleVLSFi_Predicates ) + // InternalVampireLanguage.g:1148:3: ruleVLSFi_Predicates + { + before(grammarAccess.getVLSRoleAccess().getVLSFi_PredicatesParserRuleCall_13()); + pushFollow(FOLLOW_2); + ruleVLSFi_Predicates(); + + state._fsp--; + + after(grammarAccess.getVLSRoleAccess().getVLSFi_PredicatesParserRuleCall_13()); + + } + + + } + break; + case 15 : + // InternalVampireLanguage.g:1153:2: ( ruleVLSUnknown ) + { + // InternalVampireLanguage.g:1153:2: ( ruleVLSUnknown ) + // InternalVampireLanguage.g:1154:3: ruleVLSUnknown + { + before(grammarAccess.getVLSRoleAccess().getVLSUnknownParserRuleCall_14()); + pushFollow(FOLLOW_2); + ruleVLSUnknown(); + + state._fsp--; + + after(grammarAccess.getVLSRoleAccess().getVLSUnknownParserRuleCall_14()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSRole__Alternatives" + + + // $ANTLR start "rule__VLSAnnotation__NameAlternatives_1_0" + // InternalVampireLanguage.g:1163:1: rule__VLSAnnotation__NameAlternatives_1_0 : ( ( RULE_LOWER_WORD_ID ) | ( RULE_SINGLE_QUOTE ) | ( ruleVLSRole ) ); + public final void rule__VLSAnnotation__NameAlternatives_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1167:1: ( ( RULE_LOWER_WORD_ID ) | ( RULE_SINGLE_QUOTE ) | ( ruleVLSRole ) ) + int alt6=3; + switch ( input.LA(1) ) { + case RULE_LOWER_WORD_ID: + { + alt6=1; + } + break; + case RULE_SINGLE_QUOTE: + { + alt6=2; + } + break; + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + { + alt6=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 6, 0, input); + + throw nvae; + } + + switch (alt6) { + case 1 : + // InternalVampireLanguage.g:1168:2: ( RULE_LOWER_WORD_ID ) + { + // InternalVampireLanguage.g:1168:2: ( RULE_LOWER_WORD_ID ) + // InternalVampireLanguage.g:1169:3: RULE_LOWER_WORD_ID + { + before(grammarAccess.getVLSAnnotationAccess().getNameLOWER_WORD_IDTerminalRuleCall_1_0_0()); + match(input,RULE_LOWER_WORD_ID,FOLLOW_2); + after(grammarAccess.getVLSAnnotationAccess().getNameLOWER_WORD_IDTerminalRuleCall_1_0_0()); + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:1174:2: ( RULE_SINGLE_QUOTE ) + { + // InternalVampireLanguage.g:1174:2: ( RULE_SINGLE_QUOTE ) + // InternalVampireLanguage.g:1175:3: RULE_SINGLE_QUOTE + { + before(grammarAccess.getVLSAnnotationAccess().getNameSINGLE_QUOTETerminalRuleCall_1_0_1()); + match(input,RULE_SINGLE_QUOTE,FOLLOW_2); + after(grammarAccess.getVLSAnnotationAccess().getNameSINGLE_QUOTETerminalRuleCall_1_0_1()); + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:1180:2: ( ruleVLSRole ) + { + // InternalVampireLanguage.g:1180:2: ( ruleVLSRole ) + // InternalVampireLanguage.g:1181:3: ruleVLSRole + { + before(grammarAccess.getVLSAnnotationAccess().getNameVLSRoleParserRuleCall_1_0_2()); + pushFollow(FOLLOW_2); + ruleVLSRole(); + + state._fsp--; + + after(grammarAccess.getVLSAnnotationAccess().getNameVLSRoleParserRuleCall_1_0_2()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotation__NameAlternatives_1_0" + + + // $ANTLR start "rule__VLSBinary__Alternatives_1" + // InternalVampireLanguage.g:1190:1: rule__VLSBinary__Alternatives_1 : ( ( ( rule__VLSBinary__Group_1_0__0 ) ) | ( ( ( rule__VLSBinary__Group_1_1__0 ) ) ( ( rule__VLSBinary__Group_1_1__0 )* ) ) | ( ( ( rule__VLSBinary__Group_1_2__0 ) ) ( ( rule__VLSBinary__Group_1_2__0 )* ) ) ); + public final void rule__VLSBinary__Alternatives_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1194:1: ( ( ( rule__VLSBinary__Group_1_0__0 ) ) | ( ( ( rule__VLSBinary__Group_1_1__0 ) ) ( ( rule__VLSBinary__Group_1_1__0 )* ) ) | ( ( ( rule__VLSBinary__Group_1_2__0 ) ) ( ( rule__VLSBinary__Group_1_2__0 )* ) ) ) + int alt9=3; + switch ( input.LA(1) ) { + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + { + alt9=1; + } + break; + case 57: + { + alt9=2; + } + break; + case 58: + { + alt9=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 9, 0, input); + + throw nvae; + } + + switch (alt9) { + case 1 : + // InternalVampireLanguage.g:1195:2: ( ( rule__VLSBinary__Group_1_0__0 ) ) + { + // InternalVampireLanguage.g:1195:2: ( ( rule__VLSBinary__Group_1_0__0 ) ) + // InternalVampireLanguage.g:1196:3: ( rule__VLSBinary__Group_1_0__0 ) + { + before(grammarAccess.getVLSBinaryAccess().getGroup_1_0()); + // InternalVampireLanguage.g:1197:3: ( rule__VLSBinary__Group_1_0__0 ) + // InternalVampireLanguage.g:1197:4: rule__VLSBinary__Group_1_0__0 + { + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSBinaryAccess().getGroup_1_0()); + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:1201:2: ( ( ( rule__VLSBinary__Group_1_1__0 ) ) ( ( rule__VLSBinary__Group_1_1__0 )* ) ) + { + // InternalVampireLanguage.g:1201:2: ( ( ( rule__VLSBinary__Group_1_1__0 ) ) ( ( rule__VLSBinary__Group_1_1__0 )* ) ) + // InternalVampireLanguage.g:1202:3: ( ( rule__VLSBinary__Group_1_1__0 ) ) ( ( rule__VLSBinary__Group_1_1__0 )* ) + { + // InternalVampireLanguage.g:1202:3: ( ( rule__VLSBinary__Group_1_1__0 ) ) + // InternalVampireLanguage.g:1203:4: ( rule__VLSBinary__Group_1_1__0 ) + { + before(grammarAccess.getVLSBinaryAccess().getGroup_1_1()); + // InternalVampireLanguage.g:1204:4: ( rule__VLSBinary__Group_1_1__0 ) + // InternalVampireLanguage.g:1204:5: rule__VLSBinary__Group_1_1__0 + { + pushFollow(FOLLOW_4); + rule__VLSBinary__Group_1_1__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSBinaryAccess().getGroup_1_1()); + + } + + // InternalVampireLanguage.g:1207:3: ( ( rule__VLSBinary__Group_1_1__0 )* ) + // InternalVampireLanguage.g:1208:4: ( rule__VLSBinary__Group_1_1__0 )* + { + before(grammarAccess.getVLSBinaryAccess().getGroup_1_1()); + // InternalVampireLanguage.g:1209:4: ( rule__VLSBinary__Group_1_1__0 )* + loop7: + do { + int alt7=2; + int LA7_0 = input.LA(1); + + if ( (LA7_0==57) ) { + alt7=1; + } + + + switch (alt7) { + case 1 : + // InternalVampireLanguage.g:1209:5: rule__VLSBinary__Group_1_1__0 + { + pushFollow(FOLLOW_4); + rule__VLSBinary__Group_1_1__0(); + + state._fsp--; + + + } + break; + + default : + break loop7; + } + } while (true); + + after(grammarAccess.getVLSBinaryAccess().getGroup_1_1()); + + } + + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:1214:2: ( ( ( rule__VLSBinary__Group_1_2__0 ) ) ( ( rule__VLSBinary__Group_1_2__0 )* ) ) + { + // InternalVampireLanguage.g:1214:2: ( ( ( rule__VLSBinary__Group_1_2__0 ) ) ( ( rule__VLSBinary__Group_1_2__0 )* ) ) + // InternalVampireLanguage.g:1215:3: ( ( rule__VLSBinary__Group_1_2__0 ) ) ( ( rule__VLSBinary__Group_1_2__0 )* ) + { + // InternalVampireLanguage.g:1215:3: ( ( rule__VLSBinary__Group_1_2__0 ) ) + // InternalVampireLanguage.g:1216:4: ( rule__VLSBinary__Group_1_2__0 ) + { + before(grammarAccess.getVLSBinaryAccess().getGroup_1_2()); + // InternalVampireLanguage.g:1217:4: ( rule__VLSBinary__Group_1_2__0 ) + // InternalVampireLanguage.g:1217:5: rule__VLSBinary__Group_1_2__0 + { + pushFollow(FOLLOW_5); + rule__VLSBinary__Group_1_2__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSBinaryAccess().getGroup_1_2()); + + } + + // InternalVampireLanguage.g:1220:3: ( ( rule__VLSBinary__Group_1_2__0 )* ) + // InternalVampireLanguage.g:1221:4: ( rule__VLSBinary__Group_1_2__0 )* + { + before(grammarAccess.getVLSBinaryAccess().getGroup_1_2()); + // InternalVampireLanguage.g:1222:4: ( rule__VLSBinary__Group_1_2__0 )* + loop8: + do { + int alt8=2; + int LA8_0 = input.LA(1); + + if ( (LA8_0==58) ) { + alt8=1; + } + + + switch (alt8) { + case 1 : + // InternalVampireLanguage.g:1222:5: rule__VLSBinary__Group_1_2__0 + { + pushFollow(FOLLOW_5); + rule__VLSBinary__Group_1_2__0(); + + state._fsp--; + + + } + break; + + default : + break loop8; + } + } while (true); + + after(grammarAccess.getVLSBinaryAccess().getGroup_1_2()); + + } + + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Alternatives_1" + + + // $ANTLR start "rule__VLSBinary__Alternatives_1_0_0" + // InternalVampireLanguage.g:1231:1: rule__VLSBinary__Alternatives_1_0_0 : ( ( ( rule__VLSBinary__Group_1_0_0_0__0 ) ) | ( ( rule__VLSBinary__Group_1_0_0_1__0 ) ) | ( ( rule__VLSBinary__Group_1_0_0_2__0 ) ) | ( ( rule__VLSBinary__Group_1_0_0_3__0 ) ) | ( ( rule__VLSBinary__Group_1_0_0_4__0 ) ) | ( ( rule__VLSBinary__Group_1_0_0_5__0 ) ) ); + public final void rule__VLSBinary__Alternatives_1_0_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1235:1: ( ( ( rule__VLSBinary__Group_1_0_0_0__0 ) ) | ( ( rule__VLSBinary__Group_1_0_0_1__0 ) ) | ( ( rule__VLSBinary__Group_1_0_0_2__0 ) ) | ( ( rule__VLSBinary__Group_1_0_0_3__0 ) ) | ( ( rule__VLSBinary__Group_1_0_0_4__0 ) ) | ( ( rule__VLSBinary__Group_1_0_0_5__0 ) ) ) + int alt10=6; + switch ( input.LA(1) ) { + case 51: + { + alt10=1; + } + break; + case 52: + { + alt10=2; + } + break; + case 53: + { + alt10=3; + } + break; + case 54: + { + alt10=4; + } + break; + case 55: + { + alt10=5; + } + break; + case 56: + { + alt10=6; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 10, 0, input); + + throw nvae; + } + + switch (alt10) { + case 1 : + // InternalVampireLanguage.g:1236:2: ( ( rule__VLSBinary__Group_1_0_0_0__0 ) ) + { + // InternalVampireLanguage.g:1236:2: ( ( rule__VLSBinary__Group_1_0_0_0__0 ) ) + // InternalVampireLanguage.g:1237:3: ( rule__VLSBinary__Group_1_0_0_0__0 ) + { + before(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_0()); + // InternalVampireLanguage.g:1238:3: ( rule__VLSBinary__Group_1_0_0_0__0 ) + // InternalVampireLanguage.g:1238:4: rule__VLSBinary__Group_1_0_0_0__0 + { + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0_0_0__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_0()); + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:1242:2: ( ( rule__VLSBinary__Group_1_0_0_1__0 ) ) + { + // InternalVampireLanguage.g:1242:2: ( ( rule__VLSBinary__Group_1_0_0_1__0 ) ) + // InternalVampireLanguage.g:1243:3: ( rule__VLSBinary__Group_1_0_0_1__0 ) + { + before(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_1()); + // InternalVampireLanguage.g:1244:3: ( rule__VLSBinary__Group_1_0_0_1__0 ) + // InternalVampireLanguage.g:1244:4: rule__VLSBinary__Group_1_0_0_1__0 + { + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0_0_1__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_1()); + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:1248:2: ( ( rule__VLSBinary__Group_1_0_0_2__0 ) ) + { + // InternalVampireLanguage.g:1248:2: ( ( rule__VLSBinary__Group_1_0_0_2__0 ) ) + // InternalVampireLanguage.g:1249:3: ( rule__VLSBinary__Group_1_0_0_2__0 ) + { + before(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_2()); + // InternalVampireLanguage.g:1250:3: ( rule__VLSBinary__Group_1_0_0_2__0 ) + // InternalVampireLanguage.g:1250:4: rule__VLSBinary__Group_1_0_0_2__0 + { + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0_0_2__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_2()); + + } + + + } + break; + case 4 : + // InternalVampireLanguage.g:1254:2: ( ( rule__VLSBinary__Group_1_0_0_3__0 ) ) + { + // InternalVampireLanguage.g:1254:2: ( ( rule__VLSBinary__Group_1_0_0_3__0 ) ) + // InternalVampireLanguage.g:1255:3: ( rule__VLSBinary__Group_1_0_0_3__0 ) + { + before(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_3()); + // InternalVampireLanguage.g:1256:3: ( rule__VLSBinary__Group_1_0_0_3__0 ) + // InternalVampireLanguage.g:1256:4: rule__VLSBinary__Group_1_0_0_3__0 + { + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0_0_3__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_3()); + + } + + + } + break; + case 5 : + // InternalVampireLanguage.g:1260:2: ( ( rule__VLSBinary__Group_1_0_0_4__0 ) ) + { + // InternalVampireLanguage.g:1260:2: ( ( rule__VLSBinary__Group_1_0_0_4__0 ) ) + // InternalVampireLanguage.g:1261:3: ( rule__VLSBinary__Group_1_0_0_4__0 ) + { + before(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_4()); + // InternalVampireLanguage.g:1262:3: ( rule__VLSBinary__Group_1_0_0_4__0 ) + // InternalVampireLanguage.g:1262:4: rule__VLSBinary__Group_1_0_0_4__0 + { + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0_0_4__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_4()); + + } + + + } + break; + case 6 : + // InternalVampireLanguage.g:1266:2: ( ( rule__VLSBinary__Group_1_0_0_5__0 ) ) + { + // InternalVampireLanguage.g:1266:2: ( ( rule__VLSBinary__Group_1_0_0_5__0 ) ) + // InternalVampireLanguage.g:1267:3: ( rule__VLSBinary__Group_1_0_0_5__0 ) + { + before(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_5()); + // InternalVampireLanguage.g:1268:3: ( rule__VLSBinary__Group_1_0_0_5__0 ) + // InternalVampireLanguage.g:1268:4: rule__VLSBinary__Group_1_0_0_5__0 + { + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0_0_5__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSBinaryAccess().getGroup_1_0_0_5()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Alternatives_1_0_0" + + + // $ANTLR start "rule__VLSUnitaryFormula__Alternatives" + // InternalVampireLanguage.g:1276:1: rule__VLSUnitaryFormula__Alternatives : ( ( ruleVLSUniversalQuantifier ) | ( ruleVLSExistentialQuantifier ) | ( ruleVLSUnaryNegation ) | ( ruleVLSUnaryInfix ) | ( ( rule__VLSUnitaryFormula__Group_4__0 ) ) ); + public final void rule__VLSUnitaryFormula__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1280:1: ( ( ruleVLSUniversalQuantifier ) | ( ruleVLSExistentialQuantifier ) | ( ruleVLSUnaryNegation ) | ( ruleVLSUnaryInfix ) | ( ( rule__VLSUnitaryFormula__Group_4__0 ) ) ) + int alt11=5; + switch ( input.LA(1) ) { + case 59: + { + alt11=1; + } + break; + case 61: + { + alt11=2; + } + break; + case 62: + { + alt11=3; + } + break; + case RULE_LOWER_WORD_ID: + case RULE_SINGLE_QUOTE: + case RULE_SIGNED_LITERAL: + case RULE_DOLLAR_ID: + case RULE_DOUBLE_DOLLAR_ID: + case RULE_UPPER_WORD_ID: + case RULE_SIGNED_REAL_ID: + case RULE_SIGNED_RAT_ID: + case RULE_DOUBLE_QUOTE: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 66: + case 67: + case 68: + { + alt11=4; + } + break; + case 47: + { + alt11=5; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 11, 0, input); + + throw nvae; + } + + switch (alt11) { + case 1 : + // InternalVampireLanguage.g:1281:2: ( ruleVLSUniversalQuantifier ) + { + // InternalVampireLanguage.g:1281:2: ( ruleVLSUniversalQuantifier ) + // InternalVampireLanguage.g:1282:3: ruleVLSUniversalQuantifier + { + before(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUniversalQuantifierParserRuleCall_0()); + pushFollow(FOLLOW_2); + ruleVLSUniversalQuantifier(); + + state._fsp--; + + after(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUniversalQuantifierParserRuleCall_0()); + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:1287:2: ( ruleVLSExistentialQuantifier ) + { + // InternalVampireLanguage.g:1287:2: ( ruleVLSExistentialQuantifier ) + // InternalVampireLanguage.g:1288:3: ruleVLSExistentialQuantifier + { + before(grammarAccess.getVLSUnitaryFormulaAccess().getVLSExistentialQuantifierParserRuleCall_1()); + pushFollow(FOLLOW_2); + ruleVLSExistentialQuantifier(); + + state._fsp--; + + after(grammarAccess.getVLSUnitaryFormulaAccess().getVLSExistentialQuantifierParserRuleCall_1()); + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:1293:2: ( ruleVLSUnaryNegation ) + { + // InternalVampireLanguage.g:1293:2: ( ruleVLSUnaryNegation ) + // InternalVampireLanguage.g:1294:3: ruleVLSUnaryNegation + { + before(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUnaryNegationParserRuleCall_2()); + pushFollow(FOLLOW_2); + ruleVLSUnaryNegation(); + + state._fsp--; + + after(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUnaryNegationParserRuleCall_2()); + + } + + + } + break; + case 4 : + // InternalVampireLanguage.g:1299:2: ( ruleVLSUnaryInfix ) + { + // InternalVampireLanguage.g:1299:2: ( ruleVLSUnaryInfix ) + // InternalVampireLanguage.g:1300:3: ruleVLSUnaryInfix + { + before(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUnaryInfixParserRuleCall_3()); + pushFollow(FOLLOW_2); + ruleVLSUnaryInfix(); + + state._fsp--; + + after(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUnaryInfixParserRuleCall_3()); + + } + + + } + break; + case 5 : + // InternalVampireLanguage.g:1305:2: ( ( rule__VLSUnitaryFormula__Group_4__0 ) ) + { + // InternalVampireLanguage.g:1305:2: ( ( rule__VLSUnitaryFormula__Group_4__0 ) ) + // InternalVampireLanguage.g:1306:3: ( rule__VLSUnitaryFormula__Group_4__0 ) + { + before(grammarAccess.getVLSUnitaryFormulaAccess().getGroup_4()); + // InternalVampireLanguage.g:1307:3: ( rule__VLSUnitaryFormula__Group_4__0 ) + // InternalVampireLanguage.g:1307:4: rule__VLSUnitaryFormula__Group_4__0 + { + pushFollow(FOLLOW_2); + rule__VLSUnitaryFormula__Group_4__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSUnitaryFormulaAccess().getGroup_4()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnitaryFormula__Alternatives" + + + // $ANTLR start "rule__VLSUnaryInfix__Alternatives_1_0" + // InternalVampireLanguage.g:1315:1: rule__VLSUnaryInfix__Alternatives_1_0 : ( ( ( rule__VLSUnaryInfix__Group_1_0_0__0 ) ) | ( ( rule__VLSUnaryInfix__Group_1_0_1__0 ) ) | ( ( rule__VLSUnaryInfix__Group_1_0_2__0 ) ) ); + public final void rule__VLSUnaryInfix__Alternatives_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1319:1: ( ( ( rule__VLSUnaryInfix__Group_1_0_0__0 ) ) | ( ( rule__VLSUnaryInfix__Group_1_0_1__0 ) ) | ( ( rule__VLSUnaryInfix__Group_1_0_2__0 ) ) ) + int alt12=3; + switch ( input.LA(1) ) { + case 63: + { + alt12=1; + } + break; + case 64: + { + alt12=2; + } + break; + case 65: + { + alt12=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 12, 0, input); + + throw nvae; + } + + switch (alt12) { + case 1 : + // InternalVampireLanguage.g:1320:2: ( ( rule__VLSUnaryInfix__Group_1_0_0__0 ) ) + { + // InternalVampireLanguage.g:1320:2: ( ( rule__VLSUnaryInfix__Group_1_0_0__0 ) ) + // InternalVampireLanguage.g:1321:3: ( rule__VLSUnaryInfix__Group_1_0_0__0 ) + { + before(grammarAccess.getVLSUnaryInfixAccess().getGroup_1_0_0()); + // InternalVampireLanguage.g:1322:3: ( rule__VLSUnaryInfix__Group_1_0_0__0 ) + // InternalVampireLanguage.g:1322:4: rule__VLSUnaryInfix__Group_1_0_0__0 + { + pushFollow(FOLLOW_2); + rule__VLSUnaryInfix__Group_1_0_0__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSUnaryInfixAccess().getGroup_1_0_0()); + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:1326:2: ( ( rule__VLSUnaryInfix__Group_1_0_1__0 ) ) + { + // InternalVampireLanguage.g:1326:2: ( ( rule__VLSUnaryInfix__Group_1_0_1__0 ) ) + // InternalVampireLanguage.g:1327:3: ( rule__VLSUnaryInfix__Group_1_0_1__0 ) + { + before(grammarAccess.getVLSUnaryInfixAccess().getGroup_1_0_1()); + // InternalVampireLanguage.g:1328:3: ( rule__VLSUnaryInfix__Group_1_0_1__0 ) + // InternalVampireLanguage.g:1328:4: rule__VLSUnaryInfix__Group_1_0_1__0 + { + pushFollow(FOLLOW_2); + rule__VLSUnaryInfix__Group_1_0_1__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSUnaryInfixAccess().getGroup_1_0_1()); + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:1332:2: ( ( rule__VLSUnaryInfix__Group_1_0_2__0 ) ) + { + // InternalVampireLanguage.g:1332:2: ( ( rule__VLSUnaryInfix__Group_1_0_2__0 ) ) + // InternalVampireLanguage.g:1333:3: ( rule__VLSUnaryInfix__Group_1_0_2__0 ) + { + before(grammarAccess.getVLSUnaryInfixAccess().getGroup_1_0_2()); + // InternalVampireLanguage.g:1334:3: ( rule__VLSUnaryInfix__Group_1_0_2__0 ) + // InternalVampireLanguage.g:1334:4: rule__VLSUnaryInfix__Group_1_0_2__0 + { + pushFollow(FOLLOW_2); + rule__VLSUnaryInfix__Group_1_0_2__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSUnaryInfixAccess().getGroup_1_0_2()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Alternatives_1_0" + + + // $ANTLR start "rule__VLSAtomic__Alternatives" + // InternalVampireLanguage.g:1342:1: rule__VLSAtomic__Alternatives : ( ( ruleVLSAtomicConstant ) | ( ruleVLSAtomicFunction ) | ( ruleVLSVariable ) | ( ruleVLSDefinedTerm ) ); + public final void rule__VLSAtomic__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1346:1: ( ( ruleVLSAtomicConstant ) | ( ruleVLSAtomicFunction ) | ( ruleVLSVariable ) | ( ruleVLSDefinedTerm ) ) + int alt13=4; + alt13 = dfa13.predict(input); + switch (alt13) { + case 1 : + // InternalVampireLanguage.g:1347:2: ( ruleVLSAtomicConstant ) + { + // InternalVampireLanguage.g:1347:2: ( ruleVLSAtomicConstant ) + // InternalVampireLanguage.g:1348:3: ruleVLSAtomicConstant + { + before(grammarAccess.getVLSAtomicAccess().getVLSAtomicConstantParserRuleCall_0()); + pushFollow(FOLLOW_2); + ruleVLSAtomicConstant(); + + state._fsp--; + + after(grammarAccess.getVLSAtomicAccess().getVLSAtomicConstantParserRuleCall_0()); + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:1353:2: ( ruleVLSAtomicFunction ) + { + // InternalVampireLanguage.g:1353:2: ( ruleVLSAtomicFunction ) + // InternalVampireLanguage.g:1354:3: ruleVLSAtomicFunction + { + before(grammarAccess.getVLSAtomicAccess().getVLSAtomicFunctionParserRuleCall_1()); + pushFollow(FOLLOW_2); + ruleVLSAtomicFunction(); + + state._fsp--; + + after(grammarAccess.getVLSAtomicAccess().getVLSAtomicFunctionParserRuleCall_1()); + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:1359:2: ( ruleVLSVariable ) + { + // InternalVampireLanguage.g:1359:2: ( ruleVLSVariable ) + // InternalVampireLanguage.g:1360:3: ruleVLSVariable + { + before(grammarAccess.getVLSAtomicAccess().getVLSVariableParserRuleCall_2()); + pushFollow(FOLLOW_2); + ruleVLSVariable(); + + state._fsp--; + + after(grammarAccess.getVLSAtomicAccess().getVLSVariableParserRuleCall_2()); + + } + + + } + break; + case 4 : + // InternalVampireLanguage.g:1365:2: ( ruleVLSDefinedTerm ) + { + // InternalVampireLanguage.g:1365:2: ( ruleVLSDefinedTerm ) + // InternalVampireLanguage.g:1366:3: ruleVLSDefinedTerm + { + before(grammarAccess.getVLSAtomicAccess().getVLSDefinedTermParserRuleCall_3()); + pushFollow(FOLLOW_2); + ruleVLSDefinedTerm(); + + state._fsp--; + + after(grammarAccess.getVLSAtomicAccess().getVLSDefinedTermParserRuleCall_3()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomic__Alternatives" + + + // $ANTLR start "rule__VLSAtomicConstant__Alternatives" + // InternalVampireLanguage.g:1375:1: rule__VLSAtomicConstant__Alternatives : ( ( ( rule__VLSAtomicConstant__Group_0__0 ) ) | ( ( rule__VLSAtomicConstant__Group_1__0 ) ) | ( ( rule__VLSAtomicConstant__Group_2__0 ) ) ); + public final void rule__VLSAtomicConstant__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1379:1: ( ( ( rule__VLSAtomicConstant__Group_0__0 ) ) | ( ( rule__VLSAtomicConstant__Group_1__0 ) ) | ( ( rule__VLSAtomicConstant__Group_2__0 ) ) ) + int alt14=3; + switch ( input.LA(1) ) { + case RULE_LOWER_WORD_ID: + case RULE_SINGLE_QUOTE: + case RULE_DOLLAR_ID: + case RULE_DOUBLE_DOLLAR_ID: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + { + alt14=1; + } + break; + case 66: + { + alt14=2; + } + break; + case 67: + { + alt14=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 14, 0, input); + + throw nvae; + } + + switch (alt14) { + case 1 : + // InternalVampireLanguage.g:1380:2: ( ( rule__VLSAtomicConstant__Group_0__0 ) ) + { + // InternalVampireLanguage.g:1380:2: ( ( rule__VLSAtomicConstant__Group_0__0 ) ) + // InternalVampireLanguage.g:1381:3: ( rule__VLSAtomicConstant__Group_0__0 ) + { + before(grammarAccess.getVLSAtomicConstantAccess().getGroup_0()); + // InternalVampireLanguage.g:1382:3: ( rule__VLSAtomicConstant__Group_0__0 ) + // InternalVampireLanguage.g:1382:4: rule__VLSAtomicConstant__Group_0__0 + { + pushFollow(FOLLOW_2); + rule__VLSAtomicConstant__Group_0__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAtomicConstantAccess().getGroup_0()); + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:1386:2: ( ( rule__VLSAtomicConstant__Group_1__0 ) ) + { + // InternalVampireLanguage.g:1386:2: ( ( rule__VLSAtomicConstant__Group_1__0 ) ) + // InternalVampireLanguage.g:1387:3: ( rule__VLSAtomicConstant__Group_1__0 ) + { + before(grammarAccess.getVLSAtomicConstantAccess().getGroup_1()); + // InternalVampireLanguage.g:1388:3: ( rule__VLSAtomicConstant__Group_1__0 ) + // InternalVampireLanguage.g:1388:4: rule__VLSAtomicConstant__Group_1__0 + { + pushFollow(FOLLOW_2); + rule__VLSAtomicConstant__Group_1__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAtomicConstantAccess().getGroup_1()); + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:1392:2: ( ( rule__VLSAtomicConstant__Group_2__0 ) ) + { + // InternalVampireLanguage.g:1392:2: ( ( rule__VLSAtomicConstant__Group_2__0 ) ) + // InternalVampireLanguage.g:1393:3: ( rule__VLSAtomicConstant__Group_2__0 ) + { + before(grammarAccess.getVLSAtomicConstantAccess().getGroup_2()); + // InternalVampireLanguage.g:1394:3: ( rule__VLSAtomicConstant__Group_2__0 ) + // InternalVampireLanguage.g:1394:4: rule__VLSAtomicConstant__Group_2__0 + { + pushFollow(FOLLOW_2); + rule__VLSAtomicConstant__Group_2__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAtomicConstantAccess().getGroup_2()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicConstant__Alternatives" + + + // $ANTLR start "rule__VLSAtomicConstant__NameAlternatives_0_1_0" + // InternalVampireLanguage.g:1402:1: rule__VLSAtomicConstant__NameAlternatives_0_1_0 : ( ( RULE_LOWER_WORD_ID ) | ( RULE_SINGLE_QUOTE ) | ( RULE_DOLLAR_ID ) | ( RULE_DOUBLE_DOLLAR_ID ) | ( ruleVLSRole ) ); + public final void rule__VLSAtomicConstant__NameAlternatives_0_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1406:1: ( ( RULE_LOWER_WORD_ID ) | ( RULE_SINGLE_QUOTE ) | ( RULE_DOLLAR_ID ) | ( RULE_DOUBLE_DOLLAR_ID ) | ( ruleVLSRole ) ) + int alt15=5; + switch ( input.LA(1) ) { + case RULE_LOWER_WORD_ID: + { + alt15=1; + } + break; + case RULE_SINGLE_QUOTE: + { + alt15=2; + } + break; + case RULE_DOLLAR_ID: + { + alt15=3; + } + break; + case RULE_DOUBLE_DOLLAR_ID: + { + alt15=4; + } + break; + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + { + alt15=5; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 15, 0, input); + + throw nvae; + } + + switch (alt15) { + case 1 : + // InternalVampireLanguage.g:1407:2: ( RULE_LOWER_WORD_ID ) + { + // InternalVampireLanguage.g:1407:2: ( RULE_LOWER_WORD_ID ) + // InternalVampireLanguage.g:1408:3: RULE_LOWER_WORD_ID + { + before(grammarAccess.getVLSAtomicConstantAccess().getNameLOWER_WORD_IDTerminalRuleCall_0_1_0_0()); + match(input,RULE_LOWER_WORD_ID,FOLLOW_2); + after(grammarAccess.getVLSAtomicConstantAccess().getNameLOWER_WORD_IDTerminalRuleCall_0_1_0_0()); + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:1413:2: ( RULE_SINGLE_QUOTE ) + { + // InternalVampireLanguage.g:1413:2: ( RULE_SINGLE_QUOTE ) + // InternalVampireLanguage.g:1414:3: RULE_SINGLE_QUOTE + { + before(grammarAccess.getVLSAtomicConstantAccess().getNameSINGLE_QUOTETerminalRuleCall_0_1_0_1()); + match(input,RULE_SINGLE_QUOTE,FOLLOW_2); + after(grammarAccess.getVLSAtomicConstantAccess().getNameSINGLE_QUOTETerminalRuleCall_0_1_0_1()); + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:1419:2: ( RULE_DOLLAR_ID ) + { + // InternalVampireLanguage.g:1419:2: ( RULE_DOLLAR_ID ) + // InternalVampireLanguage.g:1420:3: RULE_DOLLAR_ID + { + before(grammarAccess.getVLSAtomicConstantAccess().getNameDOLLAR_IDTerminalRuleCall_0_1_0_2()); + match(input,RULE_DOLLAR_ID,FOLLOW_2); + after(grammarAccess.getVLSAtomicConstantAccess().getNameDOLLAR_IDTerminalRuleCall_0_1_0_2()); + + } + + + } + break; + case 4 : + // InternalVampireLanguage.g:1425:2: ( RULE_DOUBLE_DOLLAR_ID ) + { + // InternalVampireLanguage.g:1425:2: ( RULE_DOUBLE_DOLLAR_ID ) + // InternalVampireLanguage.g:1426:3: RULE_DOUBLE_DOLLAR_ID + { + before(grammarAccess.getVLSAtomicConstantAccess().getNameDOUBLE_DOLLAR_IDTerminalRuleCall_0_1_0_3()); + match(input,RULE_DOUBLE_DOLLAR_ID,FOLLOW_2); + after(grammarAccess.getVLSAtomicConstantAccess().getNameDOUBLE_DOLLAR_IDTerminalRuleCall_0_1_0_3()); + + } + + + } + break; + case 5 : + // InternalVampireLanguage.g:1431:2: ( ruleVLSRole ) + { + // InternalVampireLanguage.g:1431:2: ( ruleVLSRole ) + // InternalVampireLanguage.g:1432:3: ruleVLSRole + { + before(grammarAccess.getVLSAtomicConstantAccess().getNameVLSRoleParserRuleCall_0_1_0_4()); + pushFollow(FOLLOW_2); + ruleVLSRole(); + + state._fsp--; + + after(grammarAccess.getVLSAtomicConstantAccess().getNameVLSRoleParserRuleCall_0_1_0_4()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicConstant__NameAlternatives_0_1_0" + + + // $ANTLR start "rule__VLSAtomicFunction__Alternatives" + // InternalVampireLanguage.g:1441:1: rule__VLSAtomicFunction__Alternatives : ( ( ( rule__VLSAtomicFunction__Group_0__0 ) ) | ( ( rule__VLSAtomicFunction__Group_1__0 ) ) ); + public final void rule__VLSAtomicFunction__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1445:1: ( ( ( rule__VLSAtomicFunction__Group_0__0 ) ) | ( ( rule__VLSAtomicFunction__Group_1__0 ) ) ) + int alt16=2; + int LA16_0 = input.LA(1); + + if ( ((LA16_0>=RULE_LOWER_WORD_ID && LA16_0<=RULE_SINGLE_QUOTE)||(LA16_0>=RULE_DOLLAR_ID && LA16_0<=RULE_DOUBLE_DOLLAR_ID)||(LA16_0>=27 && LA16_0<=41)) ) { + alt16=1; + } + else if ( (LA16_0==68) ) { + alt16=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 16, 0, input); + + throw nvae; + } + switch (alt16) { + case 1 : + // InternalVampireLanguage.g:1446:2: ( ( rule__VLSAtomicFunction__Group_0__0 ) ) + { + // InternalVampireLanguage.g:1446:2: ( ( rule__VLSAtomicFunction__Group_0__0 ) ) + // InternalVampireLanguage.g:1447:3: ( rule__VLSAtomicFunction__Group_0__0 ) + { + before(grammarAccess.getVLSAtomicFunctionAccess().getGroup_0()); + // InternalVampireLanguage.g:1448:3: ( rule__VLSAtomicFunction__Group_0__0 ) + // InternalVampireLanguage.g:1448:4: rule__VLSAtomicFunction__Group_0__0 + { + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__Group_0__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAtomicFunctionAccess().getGroup_0()); + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:1452:2: ( ( rule__VLSAtomicFunction__Group_1__0 ) ) + { + // InternalVampireLanguage.g:1452:2: ( ( rule__VLSAtomicFunction__Group_1__0 ) ) + // InternalVampireLanguage.g:1453:3: ( rule__VLSAtomicFunction__Group_1__0 ) + { + before(grammarAccess.getVLSAtomicFunctionAccess().getGroup_1()); + // InternalVampireLanguage.g:1454:3: ( rule__VLSAtomicFunction__Group_1__0 ) + // InternalVampireLanguage.g:1454:4: rule__VLSAtomicFunction__Group_1__0 + { + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__Group_1__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAtomicFunctionAccess().getGroup_1()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Alternatives" + + + // $ANTLR start "rule__VLSAtomicFunction__ConstantAlternatives_0_1_0" + // InternalVampireLanguage.g:1462:1: rule__VLSAtomicFunction__ConstantAlternatives_0_1_0 : ( ( RULE_LOWER_WORD_ID ) | ( RULE_SINGLE_QUOTE ) | ( RULE_DOLLAR_ID ) | ( RULE_DOUBLE_DOLLAR_ID ) | ( ruleVLSRole ) ); + public final void rule__VLSAtomicFunction__ConstantAlternatives_0_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1466:1: ( ( RULE_LOWER_WORD_ID ) | ( RULE_SINGLE_QUOTE ) | ( RULE_DOLLAR_ID ) | ( RULE_DOUBLE_DOLLAR_ID ) | ( ruleVLSRole ) ) + int alt17=5; + switch ( input.LA(1) ) { + case RULE_LOWER_WORD_ID: + { + alt17=1; + } + break; + case RULE_SINGLE_QUOTE: + { + alt17=2; + } + break; + case RULE_DOLLAR_ID: + { + alt17=3; + } + break; + case RULE_DOUBLE_DOLLAR_ID: + { + alt17=4; + } + break; + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + { + alt17=5; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 17, 0, input); + + throw nvae; + } + + switch (alt17) { + case 1 : + // InternalVampireLanguage.g:1467:2: ( RULE_LOWER_WORD_ID ) + { + // InternalVampireLanguage.g:1467:2: ( RULE_LOWER_WORD_ID ) + // InternalVampireLanguage.g:1468:3: RULE_LOWER_WORD_ID + { + before(grammarAccess.getVLSAtomicFunctionAccess().getConstantLOWER_WORD_IDTerminalRuleCall_0_1_0_0()); + match(input,RULE_LOWER_WORD_ID,FOLLOW_2); + after(grammarAccess.getVLSAtomicFunctionAccess().getConstantLOWER_WORD_IDTerminalRuleCall_0_1_0_0()); + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:1473:2: ( RULE_SINGLE_QUOTE ) + { + // InternalVampireLanguage.g:1473:2: ( RULE_SINGLE_QUOTE ) + // InternalVampireLanguage.g:1474:3: RULE_SINGLE_QUOTE + { + before(grammarAccess.getVLSAtomicFunctionAccess().getConstantSINGLE_QUOTETerminalRuleCall_0_1_0_1()); + match(input,RULE_SINGLE_QUOTE,FOLLOW_2); + after(grammarAccess.getVLSAtomicFunctionAccess().getConstantSINGLE_QUOTETerminalRuleCall_0_1_0_1()); + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:1479:2: ( RULE_DOLLAR_ID ) + { + // InternalVampireLanguage.g:1479:2: ( RULE_DOLLAR_ID ) + // InternalVampireLanguage.g:1480:3: RULE_DOLLAR_ID + { + before(grammarAccess.getVLSAtomicFunctionAccess().getConstantDOLLAR_IDTerminalRuleCall_0_1_0_2()); + match(input,RULE_DOLLAR_ID,FOLLOW_2); + after(grammarAccess.getVLSAtomicFunctionAccess().getConstantDOLLAR_IDTerminalRuleCall_0_1_0_2()); + + } + + + } + break; + case 4 : + // InternalVampireLanguage.g:1485:2: ( RULE_DOUBLE_DOLLAR_ID ) + { + // InternalVampireLanguage.g:1485:2: ( RULE_DOUBLE_DOLLAR_ID ) + // InternalVampireLanguage.g:1486:3: RULE_DOUBLE_DOLLAR_ID + { + before(grammarAccess.getVLSAtomicFunctionAccess().getConstantDOUBLE_DOLLAR_IDTerminalRuleCall_0_1_0_3()); + match(input,RULE_DOUBLE_DOLLAR_ID,FOLLOW_2); + after(grammarAccess.getVLSAtomicFunctionAccess().getConstantDOUBLE_DOLLAR_IDTerminalRuleCall_0_1_0_3()); + + } + + + } + break; + case 5 : + // InternalVampireLanguage.g:1491:2: ( ruleVLSRole ) + { + // InternalVampireLanguage.g:1491:2: ( ruleVLSRole ) + // InternalVampireLanguage.g:1492:3: ruleVLSRole + { + before(grammarAccess.getVLSAtomicFunctionAccess().getConstantVLSRoleParserRuleCall_0_1_0_4()); + pushFollow(FOLLOW_2); + ruleVLSRole(); + + state._fsp--; + + after(grammarAccess.getVLSAtomicFunctionAccess().getConstantVLSRoleParserRuleCall_0_1_0_4()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__ConstantAlternatives_0_1_0" + + + // $ANTLR start "rule__VLSFofTerm__Alternatives" + // InternalVampireLanguage.g:1501:1: rule__VLSFofTerm__Alternatives : ( ( ruleVLSVariable ) | ( ruleVLSFunctionFof ) | ( ruleVLSDefinedTerm ) ); + public final void rule__VLSFofTerm__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1505:1: ( ( ruleVLSVariable ) | ( ruleVLSFunctionFof ) | ( ruleVLSDefinedTerm ) ) + int alt18=3; + switch ( input.LA(1) ) { + case RULE_UPPER_WORD_ID: + { + alt18=1; + } + break; + case RULE_LOWER_WORD_ID: + case RULE_SINGLE_QUOTE: + case RULE_DOLLAR_ID: + case RULE_DOUBLE_DOLLAR_ID: + { + alt18=2; + } + break; + case RULE_SIGNED_LITERAL: + case RULE_SIGNED_REAL_ID: + case RULE_SIGNED_RAT_ID: + case RULE_DOUBLE_QUOTE: + { + alt18=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 18, 0, input); + + throw nvae; + } + + switch (alt18) { + case 1 : + // InternalVampireLanguage.g:1506:2: ( ruleVLSVariable ) + { + // InternalVampireLanguage.g:1506:2: ( ruleVLSVariable ) + // InternalVampireLanguage.g:1507:3: ruleVLSVariable + { + before(grammarAccess.getVLSFofTermAccess().getVLSVariableParserRuleCall_0()); + pushFollow(FOLLOW_2); + ruleVLSVariable(); + + state._fsp--; + + after(grammarAccess.getVLSFofTermAccess().getVLSVariableParserRuleCall_0()); + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:1512:2: ( ruleVLSFunctionFof ) + { + // InternalVampireLanguage.g:1512:2: ( ruleVLSFunctionFof ) + // InternalVampireLanguage.g:1513:3: ruleVLSFunctionFof + { + before(grammarAccess.getVLSFofTermAccess().getVLSFunctionFofParserRuleCall_1()); + pushFollow(FOLLOW_2); + ruleVLSFunctionFof(); + + state._fsp--; + + after(grammarAccess.getVLSFofTermAccess().getVLSFunctionFofParserRuleCall_1()); + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:1518:2: ( ruleVLSDefinedTerm ) + { + // InternalVampireLanguage.g:1518:2: ( ruleVLSDefinedTerm ) + // InternalVampireLanguage.g:1519:3: ruleVLSDefinedTerm + { + before(grammarAccess.getVLSFofTermAccess().getVLSDefinedTermParserRuleCall_2()); + pushFollow(FOLLOW_2); + ruleVLSDefinedTerm(); + + state._fsp--; + + after(grammarAccess.getVLSFofTermAccess().getVLSDefinedTermParserRuleCall_2()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofTerm__Alternatives" + + + // $ANTLR start "rule__VLSFunctionFof__FunctorAlternatives_0_0" + // InternalVampireLanguage.g:1528:1: rule__VLSFunctionFof__FunctorAlternatives_0_0 : ( ( RULE_LOWER_WORD_ID ) | ( RULE_SINGLE_QUOTE ) | ( RULE_DOLLAR_ID ) | ( RULE_DOUBLE_DOLLAR_ID ) ); + public final void rule__VLSFunctionFof__FunctorAlternatives_0_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1532:1: ( ( RULE_LOWER_WORD_ID ) | ( RULE_SINGLE_QUOTE ) | ( RULE_DOLLAR_ID ) | ( RULE_DOUBLE_DOLLAR_ID ) ) + int alt19=4; + switch ( input.LA(1) ) { + case RULE_LOWER_WORD_ID: + { + alt19=1; + } + break; + case RULE_SINGLE_QUOTE: + { + alt19=2; + } + break; + case RULE_DOLLAR_ID: + { + alt19=3; + } + break; + case RULE_DOUBLE_DOLLAR_ID: + { + alt19=4; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 19, 0, input); + + throw nvae; + } + + switch (alt19) { + case 1 : + // InternalVampireLanguage.g:1533:2: ( RULE_LOWER_WORD_ID ) + { + // InternalVampireLanguage.g:1533:2: ( RULE_LOWER_WORD_ID ) + // InternalVampireLanguage.g:1534:3: RULE_LOWER_WORD_ID + { + before(grammarAccess.getVLSFunctionFofAccess().getFunctorLOWER_WORD_IDTerminalRuleCall_0_0_0()); + match(input,RULE_LOWER_WORD_ID,FOLLOW_2); + after(grammarAccess.getVLSFunctionFofAccess().getFunctorLOWER_WORD_IDTerminalRuleCall_0_0_0()); + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:1539:2: ( RULE_SINGLE_QUOTE ) + { + // InternalVampireLanguage.g:1539:2: ( RULE_SINGLE_QUOTE ) + // InternalVampireLanguage.g:1540:3: RULE_SINGLE_QUOTE + { + before(grammarAccess.getVLSFunctionFofAccess().getFunctorSINGLE_QUOTETerminalRuleCall_0_0_1()); + match(input,RULE_SINGLE_QUOTE,FOLLOW_2); + after(grammarAccess.getVLSFunctionFofAccess().getFunctorSINGLE_QUOTETerminalRuleCall_0_0_1()); + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:1545:2: ( RULE_DOLLAR_ID ) + { + // InternalVampireLanguage.g:1545:2: ( RULE_DOLLAR_ID ) + // InternalVampireLanguage.g:1546:3: RULE_DOLLAR_ID + { + before(grammarAccess.getVLSFunctionFofAccess().getFunctorDOLLAR_IDTerminalRuleCall_0_0_2()); + match(input,RULE_DOLLAR_ID,FOLLOW_2); + after(grammarAccess.getVLSFunctionFofAccess().getFunctorDOLLAR_IDTerminalRuleCall_0_0_2()); + + } + + + } + break; + case 4 : + // InternalVampireLanguage.g:1551:2: ( RULE_DOUBLE_DOLLAR_ID ) + { + // InternalVampireLanguage.g:1551:2: ( RULE_DOUBLE_DOLLAR_ID ) + // InternalVampireLanguage.g:1552:3: RULE_DOUBLE_DOLLAR_ID + { + before(grammarAccess.getVLSFunctionFofAccess().getFunctorDOUBLE_DOLLAR_IDTerminalRuleCall_0_0_3()); + match(input,RULE_DOUBLE_DOLLAR_ID,FOLLOW_2); + after(grammarAccess.getVLSFunctionFofAccess().getFunctorDOUBLE_DOLLAR_IDTerminalRuleCall_0_0_3()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFunctionFof__FunctorAlternatives_0_0" + + + // $ANTLR start "rule__VLSDefinedTerm__Alternatives" + // InternalVampireLanguage.g:1561:1: rule__VLSDefinedTerm__Alternatives : ( ( ( rule__VLSDefinedTerm__Group_0__0 ) ) | ( ( rule__VLSDefinedTerm__Group_1__0 ) ) | ( ( rule__VLSDefinedTerm__Group_2__0 ) ) | ( ( rule__VLSDefinedTerm__Group_3__0 ) ) ); + public final void rule__VLSDefinedTerm__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1565:1: ( ( ( rule__VLSDefinedTerm__Group_0__0 ) ) | ( ( rule__VLSDefinedTerm__Group_1__0 ) ) | ( ( rule__VLSDefinedTerm__Group_2__0 ) ) | ( ( rule__VLSDefinedTerm__Group_3__0 ) ) ) + int alt20=4; + switch ( input.LA(1) ) { + case RULE_SIGNED_LITERAL: + { + alt20=1; + } + break; + case RULE_SIGNED_REAL_ID: + { + alt20=2; + } + break; + case RULE_SIGNED_RAT_ID: + { + alt20=3; + } + break; + case RULE_DOUBLE_QUOTE: + { + alt20=4; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 20, 0, input); + + throw nvae; + } + + switch (alt20) { + case 1 : + // InternalVampireLanguage.g:1566:2: ( ( rule__VLSDefinedTerm__Group_0__0 ) ) + { + // InternalVampireLanguage.g:1566:2: ( ( rule__VLSDefinedTerm__Group_0__0 ) ) + // InternalVampireLanguage.g:1567:3: ( rule__VLSDefinedTerm__Group_0__0 ) + { + before(grammarAccess.getVLSDefinedTermAccess().getGroup_0()); + // InternalVampireLanguage.g:1568:3: ( rule__VLSDefinedTerm__Group_0__0 ) + // InternalVampireLanguage.g:1568:4: rule__VLSDefinedTerm__Group_0__0 + { + pushFollow(FOLLOW_2); + rule__VLSDefinedTerm__Group_0__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSDefinedTermAccess().getGroup_0()); + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:1572:2: ( ( rule__VLSDefinedTerm__Group_1__0 ) ) + { + // InternalVampireLanguage.g:1572:2: ( ( rule__VLSDefinedTerm__Group_1__0 ) ) + // InternalVampireLanguage.g:1573:3: ( rule__VLSDefinedTerm__Group_1__0 ) + { + before(grammarAccess.getVLSDefinedTermAccess().getGroup_1()); + // InternalVampireLanguage.g:1574:3: ( rule__VLSDefinedTerm__Group_1__0 ) + // InternalVampireLanguage.g:1574:4: rule__VLSDefinedTerm__Group_1__0 + { + pushFollow(FOLLOW_2); + rule__VLSDefinedTerm__Group_1__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSDefinedTermAccess().getGroup_1()); + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:1578:2: ( ( rule__VLSDefinedTerm__Group_2__0 ) ) + { + // InternalVampireLanguage.g:1578:2: ( ( rule__VLSDefinedTerm__Group_2__0 ) ) + // InternalVampireLanguage.g:1579:3: ( rule__VLSDefinedTerm__Group_2__0 ) + { + before(grammarAccess.getVLSDefinedTermAccess().getGroup_2()); + // InternalVampireLanguage.g:1580:3: ( rule__VLSDefinedTerm__Group_2__0 ) + // InternalVampireLanguage.g:1580:4: rule__VLSDefinedTerm__Group_2__0 + { + pushFollow(FOLLOW_2); + rule__VLSDefinedTerm__Group_2__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSDefinedTermAccess().getGroup_2()); + + } + + + } + break; + case 4 : + // InternalVampireLanguage.g:1584:2: ( ( rule__VLSDefinedTerm__Group_3__0 ) ) + { + // InternalVampireLanguage.g:1584:2: ( ( rule__VLSDefinedTerm__Group_3__0 ) ) + // InternalVampireLanguage.g:1585:3: ( rule__VLSDefinedTerm__Group_3__0 ) + { + before(grammarAccess.getVLSDefinedTermAccess().getGroup_3()); + // InternalVampireLanguage.g:1586:3: ( rule__VLSDefinedTerm__Group_3__0 ) + // InternalVampireLanguage.g:1586:4: rule__VLSDefinedTerm__Group_3__0 + { + pushFollow(FOLLOW_2); + rule__VLSDefinedTerm__Group_3__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSDefinedTermAccess().getGroup_3()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__Alternatives" + + + // $ANTLR start "rule__VLSInclude__Group__0" + // InternalVampireLanguage.g:1594:1: rule__VLSInclude__Group__0 : rule__VLSInclude__Group__0__Impl rule__VLSInclude__Group__1 ; + public final void rule__VLSInclude__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1598:1: ( rule__VLSInclude__Group__0__Impl rule__VLSInclude__Group__1 ) + // InternalVampireLanguage.g:1599:2: rule__VLSInclude__Group__0__Impl rule__VLSInclude__Group__1 + { + pushFollow(FOLLOW_6); + rule__VLSInclude__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSInclude__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__Group__0" + + + // $ANTLR start "rule__VLSInclude__Group__0__Impl" + // InternalVampireLanguage.g:1606:1: rule__VLSInclude__Group__0__Impl : ( 'include(' ) ; + public final void rule__VLSInclude__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1610:1: ( ( 'include(' ) ) + // InternalVampireLanguage.g:1611:1: ( 'include(' ) + { + // InternalVampireLanguage.g:1611:1: ( 'include(' ) + // InternalVampireLanguage.g:1612:2: 'include(' + { + before(grammarAccess.getVLSIncludeAccess().getIncludeKeyword_0()); + match(input,42,FOLLOW_2); + after(grammarAccess.getVLSIncludeAccess().getIncludeKeyword_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__Group__0__Impl" + + + // $ANTLR start "rule__VLSInclude__Group__1" + // InternalVampireLanguage.g:1621:1: rule__VLSInclude__Group__1 : rule__VLSInclude__Group__1__Impl rule__VLSInclude__Group__2 ; + public final void rule__VLSInclude__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1625:1: ( rule__VLSInclude__Group__1__Impl rule__VLSInclude__Group__2 ) + // InternalVampireLanguage.g:1626:2: rule__VLSInclude__Group__1__Impl rule__VLSInclude__Group__2 + { + pushFollow(FOLLOW_7); + rule__VLSInclude__Group__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSInclude__Group__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__Group__1" + + + // $ANTLR start "rule__VLSInclude__Group__1__Impl" + // InternalVampireLanguage.g:1633:1: rule__VLSInclude__Group__1__Impl : ( ( rule__VLSInclude__FileNameAssignment_1 ) ) ; + public final void rule__VLSInclude__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1637:1: ( ( ( rule__VLSInclude__FileNameAssignment_1 ) ) ) + // InternalVampireLanguage.g:1638:1: ( ( rule__VLSInclude__FileNameAssignment_1 ) ) + { + // InternalVampireLanguage.g:1638:1: ( ( rule__VLSInclude__FileNameAssignment_1 ) ) + // InternalVampireLanguage.g:1639:2: ( rule__VLSInclude__FileNameAssignment_1 ) + { + before(grammarAccess.getVLSIncludeAccess().getFileNameAssignment_1()); + // InternalVampireLanguage.g:1640:2: ( rule__VLSInclude__FileNameAssignment_1 ) + // InternalVampireLanguage.g:1640:3: rule__VLSInclude__FileNameAssignment_1 + { + pushFollow(FOLLOW_2); + rule__VLSInclude__FileNameAssignment_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSIncludeAccess().getFileNameAssignment_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__Group__1__Impl" + + + // $ANTLR start "rule__VLSInclude__Group__2" + // InternalVampireLanguage.g:1648:1: rule__VLSInclude__Group__2 : rule__VLSInclude__Group__2__Impl ; + public final void rule__VLSInclude__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1652:1: ( rule__VLSInclude__Group__2__Impl ) + // InternalVampireLanguage.g:1653:2: rule__VLSInclude__Group__2__Impl + { + pushFollow(FOLLOW_2); + rule__VLSInclude__Group__2__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__Group__2" + + + // $ANTLR start "rule__VLSInclude__Group__2__Impl" + // InternalVampireLanguage.g:1659:1: rule__VLSInclude__Group__2__Impl : ( ( rule__VLSInclude__Group_2__0 )? ) ; + public final void rule__VLSInclude__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1663:1: ( ( ( rule__VLSInclude__Group_2__0 )? ) ) + // InternalVampireLanguage.g:1664:1: ( ( rule__VLSInclude__Group_2__0 )? ) + { + // InternalVampireLanguage.g:1664:1: ( ( rule__VLSInclude__Group_2__0 )? ) + // InternalVampireLanguage.g:1665:2: ( rule__VLSInclude__Group_2__0 )? + { + before(grammarAccess.getVLSIncludeAccess().getGroup_2()); + // InternalVampireLanguage.g:1666:2: ( rule__VLSInclude__Group_2__0 )? + int alt21=2; + int LA21_0 = input.LA(1); + + if ( (LA21_0==43) ) { + alt21=1; + } + switch (alt21) { + case 1 : + // InternalVampireLanguage.g:1666:3: rule__VLSInclude__Group_2__0 + { + pushFollow(FOLLOW_2); + rule__VLSInclude__Group_2__0(); + + state._fsp--; + + + } + break; + + } + + after(grammarAccess.getVLSIncludeAccess().getGroup_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__Group__2__Impl" + + + // $ANTLR start "rule__VLSInclude__Group_2__0" + // InternalVampireLanguage.g:1675:1: rule__VLSInclude__Group_2__0 : rule__VLSInclude__Group_2__0__Impl rule__VLSInclude__Group_2__1 ; + public final void rule__VLSInclude__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1679:1: ( rule__VLSInclude__Group_2__0__Impl rule__VLSInclude__Group_2__1 ) + // InternalVampireLanguage.g:1680:2: rule__VLSInclude__Group_2__0__Impl rule__VLSInclude__Group_2__1 + { + pushFollow(FOLLOW_8); + rule__VLSInclude__Group_2__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSInclude__Group_2__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__Group_2__0" + + + // $ANTLR start "rule__VLSInclude__Group_2__0__Impl" + // InternalVampireLanguage.g:1687:1: rule__VLSInclude__Group_2__0__Impl : ( ',[' ) ; + public final void rule__VLSInclude__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1691:1: ( ( ',[' ) ) + // InternalVampireLanguage.g:1692:1: ( ',[' ) + { + // InternalVampireLanguage.g:1692:1: ( ',[' ) + // InternalVampireLanguage.g:1693:2: ',[' + { + before(grammarAccess.getVLSIncludeAccess().getCommaLeftSquareBracketKeyword_2_0()); + match(input,43,FOLLOW_2); + after(grammarAccess.getVLSIncludeAccess().getCommaLeftSquareBracketKeyword_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__Group_2__0__Impl" + + + // $ANTLR start "rule__VLSInclude__Group_2__1" + // InternalVampireLanguage.g:1702:1: rule__VLSInclude__Group_2__1 : rule__VLSInclude__Group_2__1__Impl rule__VLSInclude__Group_2__2 ; + public final void rule__VLSInclude__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1706:1: ( rule__VLSInclude__Group_2__1__Impl rule__VLSInclude__Group_2__2 ) + // InternalVampireLanguage.g:1707:2: rule__VLSInclude__Group_2__1__Impl rule__VLSInclude__Group_2__2 + { + pushFollow(FOLLOW_9); + rule__VLSInclude__Group_2__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSInclude__Group_2__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__Group_2__1" + + + // $ANTLR start "rule__VLSInclude__Group_2__1__Impl" + // InternalVampireLanguage.g:1714:1: rule__VLSInclude__Group_2__1__Impl : ( ( rule__VLSInclude__NamesAssignment_2_1 ) ) ; + public final void rule__VLSInclude__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1718:1: ( ( ( rule__VLSInclude__NamesAssignment_2_1 ) ) ) + // InternalVampireLanguage.g:1719:1: ( ( rule__VLSInclude__NamesAssignment_2_1 ) ) + { + // InternalVampireLanguage.g:1719:1: ( ( rule__VLSInclude__NamesAssignment_2_1 ) ) + // InternalVampireLanguage.g:1720:2: ( rule__VLSInclude__NamesAssignment_2_1 ) + { + before(grammarAccess.getVLSIncludeAccess().getNamesAssignment_2_1()); + // InternalVampireLanguage.g:1721:2: ( rule__VLSInclude__NamesAssignment_2_1 ) + // InternalVampireLanguage.g:1721:3: rule__VLSInclude__NamesAssignment_2_1 + { + pushFollow(FOLLOW_2); + rule__VLSInclude__NamesAssignment_2_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSIncludeAccess().getNamesAssignment_2_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__Group_2__1__Impl" + + + // $ANTLR start "rule__VLSInclude__Group_2__2" + // InternalVampireLanguage.g:1729:1: rule__VLSInclude__Group_2__2 : rule__VLSInclude__Group_2__2__Impl rule__VLSInclude__Group_2__3 ; + public final void rule__VLSInclude__Group_2__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1733:1: ( rule__VLSInclude__Group_2__2__Impl rule__VLSInclude__Group_2__3 ) + // InternalVampireLanguage.g:1734:2: rule__VLSInclude__Group_2__2__Impl rule__VLSInclude__Group_2__3 + { + pushFollow(FOLLOW_9); + rule__VLSInclude__Group_2__2__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSInclude__Group_2__3(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__Group_2__2" + + + // $ANTLR start "rule__VLSInclude__Group_2__2__Impl" + // InternalVampireLanguage.g:1741:1: rule__VLSInclude__Group_2__2__Impl : ( ( rule__VLSInclude__Group_2_2__0 )* ) ; + public final void rule__VLSInclude__Group_2__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1745:1: ( ( ( rule__VLSInclude__Group_2_2__0 )* ) ) + // InternalVampireLanguage.g:1746:1: ( ( rule__VLSInclude__Group_2_2__0 )* ) + { + // InternalVampireLanguage.g:1746:1: ( ( rule__VLSInclude__Group_2_2__0 )* ) + // InternalVampireLanguage.g:1747:2: ( rule__VLSInclude__Group_2_2__0 )* + { + before(grammarAccess.getVLSIncludeAccess().getGroup_2_2()); + // InternalVampireLanguage.g:1748:2: ( rule__VLSInclude__Group_2_2__0 )* + loop22: + do { + int alt22=2; + int LA22_0 = input.LA(1); + + if ( (LA22_0==45) ) { + alt22=1; + } + + + switch (alt22) { + case 1 : + // InternalVampireLanguage.g:1748:3: rule__VLSInclude__Group_2_2__0 + { + pushFollow(FOLLOW_10); + rule__VLSInclude__Group_2_2__0(); + + state._fsp--; + + + } + break; + + default : + break loop22; + } + } while (true); + + after(grammarAccess.getVLSIncludeAccess().getGroup_2_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__Group_2__2__Impl" + + + // $ANTLR start "rule__VLSInclude__Group_2__3" + // InternalVampireLanguage.g:1756:1: rule__VLSInclude__Group_2__3 : rule__VLSInclude__Group_2__3__Impl ; + public final void rule__VLSInclude__Group_2__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1760:1: ( rule__VLSInclude__Group_2__3__Impl ) + // InternalVampireLanguage.g:1761:2: rule__VLSInclude__Group_2__3__Impl + { + pushFollow(FOLLOW_2); + rule__VLSInclude__Group_2__3__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__Group_2__3" + + + // $ANTLR start "rule__VLSInclude__Group_2__3__Impl" + // InternalVampireLanguage.g:1767:1: rule__VLSInclude__Group_2__3__Impl : ( ']' ) ; + public final void rule__VLSInclude__Group_2__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1771:1: ( ( ']' ) ) + // InternalVampireLanguage.g:1772:1: ( ']' ) + { + // InternalVampireLanguage.g:1772:1: ( ']' ) + // InternalVampireLanguage.g:1773:2: ']' + { + before(grammarAccess.getVLSIncludeAccess().getRightSquareBracketKeyword_2_3()); + match(input,44,FOLLOW_2); + after(grammarAccess.getVLSIncludeAccess().getRightSquareBracketKeyword_2_3()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__Group_2__3__Impl" + + + // $ANTLR start "rule__VLSInclude__Group_2_2__0" + // InternalVampireLanguage.g:1783:1: rule__VLSInclude__Group_2_2__0 : rule__VLSInclude__Group_2_2__0__Impl rule__VLSInclude__Group_2_2__1 ; + public final void rule__VLSInclude__Group_2_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1787:1: ( rule__VLSInclude__Group_2_2__0__Impl rule__VLSInclude__Group_2_2__1 ) + // InternalVampireLanguage.g:1788:2: rule__VLSInclude__Group_2_2__0__Impl rule__VLSInclude__Group_2_2__1 + { + pushFollow(FOLLOW_8); + rule__VLSInclude__Group_2_2__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSInclude__Group_2_2__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__Group_2_2__0" + + + // $ANTLR start "rule__VLSInclude__Group_2_2__0__Impl" + // InternalVampireLanguage.g:1795:1: rule__VLSInclude__Group_2_2__0__Impl : ( ',' ) ; + public final void rule__VLSInclude__Group_2_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1799:1: ( ( ',' ) ) + // InternalVampireLanguage.g:1800:1: ( ',' ) + { + // InternalVampireLanguage.g:1800:1: ( ',' ) + // InternalVampireLanguage.g:1801:2: ',' + { + before(grammarAccess.getVLSIncludeAccess().getCommaKeyword_2_2_0()); + match(input,45,FOLLOW_2); + after(grammarAccess.getVLSIncludeAccess().getCommaKeyword_2_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__Group_2_2__0__Impl" + + + // $ANTLR start "rule__VLSInclude__Group_2_2__1" + // InternalVampireLanguage.g:1810:1: rule__VLSInclude__Group_2_2__1 : rule__VLSInclude__Group_2_2__1__Impl ; + public final void rule__VLSInclude__Group_2_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1814:1: ( rule__VLSInclude__Group_2_2__1__Impl ) + // InternalVampireLanguage.g:1815:2: rule__VLSInclude__Group_2_2__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSInclude__Group_2_2__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__Group_2_2__1" + + + // $ANTLR start "rule__VLSInclude__Group_2_2__1__Impl" + // InternalVampireLanguage.g:1821:1: rule__VLSInclude__Group_2_2__1__Impl : ( ( rule__VLSInclude__NamesAssignment_2_2_1 ) ) ; + public final void rule__VLSInclude__Group_2_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1825:1: ( ( ( rule__VLSInclude__NamesAssignment_2_2_1 ) ) ) + // InternalVampireLanguage.g:1826:1: ( ( rule__VLSInclude__NamesAssignment_2_2_1 ) ) + { + // InternalVampireLanguage.g:1826:1: ( ( rule__VLSInclude__NamesAssignment_2_2_1 ) ) + // InternalVampireLanguage.g:1827:2: ( rule__VLSInclude__NamesAssignment_2_2_1 ) + { + before(grammarAccess.getVLSIncludeAccess().getNamesAssignment_2_2_1()); + // InternalVampireLanguage.g:1828:2: ( rule__VLSInclude__NamesAssignment_2_2_1 ) + // InternalVampireLanguage.g:1828:3: rule__VLSInclude__NamesAssignment_2_2_1 + { + pushFollow(FOLLOW_2); + rule__VLSInclude__NamesAssignment_2_2_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSIncludeAccess().getNamesAssignment_2_2_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__Group_2_2__1__Impl" + + + // $ANTLR start "rule__VLSFofFormula__Group__0" + // InternalVampireLanguage.g:1837:1: rule__VLSFofFormula__Group__0 : rule__VLSFofFormula__Group__0__Impl rule__VLSFofFormula__Group__1 ; + public final void rule__VLSFofFormula__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1841:1: ( rule__VLSFofFormula__Group__0__Impl rule__VLSFofFormula__Group__1 ) + // InternalVampireLanguage.g:1842:2: rule__VLSFofFormula__Group__0__Impl rule__VLSFofFormula__Group__1 + { + pushFollow(FOLLOW_11); + rule__VLSFofFormula__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSFofFormula__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group__0" + + + // $ANTLR start "rule__VLSFofFormula__Group__0__Impl" + // InternalVampireLanguage.g:1849:1: rule__VLSFofFormula__Group__0__Impl : ( 'fof' ) ; + public final void rule__VLSFofFormula__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1853:1: ( ( 'fof' ) ) + // InternalVampireLanguage.g:1854:1: ( 'fof' ) + { + // InternalVampireLanguage.g:1854:1: ( 'fof' ) + // InternalVampireLanguage.g:1855:2: 'fof' + { + before(grammarAccess.getVLSFofFormulaAccess().getFofKeyword_0()); + match(input,46,FOLLOW_2); + after(grammarAccess.getVLSFofFormulaAccess().getFofKeyword_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group__0__Impl" + + + // $ANTLR start "rule__VLSFofFormula__Group__1" + // InternalVampireLanguage.g:1864:1: rule__VLSFofFormula__Group__1 : rule__VLSFofFormula__Group__1__Impl rule__VLSFofFormula__Group__2 ; + public final void rule__VLSFofFormula__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1868:1: ( rule__VLSFofFormula__Group__1__Impl rule__VLSFofFormula__Group__2 ) + // InternalVampireLanguage.g:1869:2: rule__VLSFofFormula__Group__1__Impl rule__VLSFofFormula__Group__2 + { + pushFollow(FOLLOW_12); + rule__VLSFofFormula__Group__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSFofFormula__Group__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group__1" + + + // $ANTLR start "rule__VLSFofFormula__Group__1__Impl" + // InternalVampireLanguage.g:1876:1: rule__VLSFofFormula__Group__1__Impl : ( '(' ) ; + public final void rule__VLSFofFormula__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1880:1: ( ( '(' ) ) + // InternalVampireLanguage.g:1881:1: ( '(' ) + { + // InternalVampireLanguage.g:1881:1: ( '(' ) + // InternalVampireLanguage.g:1882:2: '(' + { + before(grammarAccess.getVLSFofFormulaAccess().getLeftParenthesisKeyword_1()); + match(input,47,FOLLOW_2); + after(grammarAccess.getVLSFofFormulaAccess().getLeftParenthesisKeyword_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group__1__Impl" + + + // $ANTLR start "rule__VLSFofFormula__Group__2" + // InternalVampireLanguage.g:1891:1: rule__VLSFofFormula__Group__2 : rule__VLSFofFormula__Group__2__Impl rule__VLSFofFormula__Group__3 ; + public final void rule__VLSFofFormula__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1895:1: ( rule__VLSFofFormula__Group__2__Impl rule__VLSFofFormula__Group__3 ) + // InternalVampireLanguage.g:1896:2: rule__VLSFofFormula__Group__2__Impl rule__VLSFofFormula__Group__3 + { + pushFollow(FOLLOW_13); + rule__VLSFofFormula__Group__2__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSFofFormula__Group__3(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group__2" + + + // $ANTLR start "rule__VLSFofFormula__Group__2__Impl" + // InternalVampireLanguage.g:1903:1: rule__VLSFofFormula__Group__2__Impl : ( ( rule__VLSFofFormula__NameAssignment_2 ) ) ; + public final void rule__VLSFofFormula__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1907:1: ( ( ( rule__VLSFofFormula__NameAssignment_2 ) ) ) + // InternalVampireLanguage.g:1908:1: ( ( rule__VLSFofFormula__NameAssignment_2 ) ) + { + // InternalVampireLanguage.g:1908:1: ( ( rule__VLSFofFormula__NameAssignment_2 ) ) + // InternalVampireLanguage.g:1909:2: ( rule__VLSFofFormula__NameAssignment_2 ) + { + before(grammarAccess.getVLSFofFormulaAccess().getNameAssignment_2()); + // InternalVampireLanguage.g:1910:2: ( rule__VLSFofFormula__NameAssignment_2 ) + // InternalVampireLanguage.g:1910:3: rule__VLSFofFormula__NameAssignment_2 + { + pushFollow(FOLLOW_2); + rule__VLSFofFormula__NameAssignment_2(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSFofFormulaAccess().getNameAssignment_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group__2__Impl" + + + // $ANTLR start "rule__VLSFofFormula__Group__3" + // InternalVampireLanguage.g:1918:1: rule__VLSFofFormula__Group__3 : rule__VLSFofFormula__Group__3__Impl rule__VLSFofFormula__Group__4 ; + public final void rule__VLSFofFormula__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1922:1: ( rule__VLSFofFormula__Group__3__Impl rule__VLSFofFormula__Group__4 ) + // InternalVampireLanguage.g:1923:2: rule__VLSFofFormula__Group__3__Impl rule__VLSFofFormula__Group__4 + { + pushFollow(FOLLOW_14); + rule__VLSFofFormula__Group__3__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSFofFormula__Group__4(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group__3" + + + // $ANTLR start "rule__VLSFofFormula__Group__3__Impl" + // InternalVampireLanguage.g:1930:1: rule__VLSFofFormula__Group__3__Impl : ( ',' ) ; + public final void rule__VLSFofFormula__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1934:1: ( ( ',' ) ) + // InternalVampireLanguage.g:1935:1: ( ',' ) + { + // InternalVampireLanguage.g:1935:1: ( ',' ) + // InternalVampireLanguage.g:1936:2: ',' + { + before(grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_3()); + match(input,45,FOLLOW_2); + after(grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_3()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group__3__Impl" + + + // $ANTLR start "rule__VLSFofFormula__Group__4" + // InternalVampireLanguage.g:1945:1: rule__VLSFofFormula__Group__4 : rule__VLSFofFormula__Group__4__Impl rule__VLSFofFormula__Group__5 ; + public final void rule__VLSFofFormula__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1949:1: ( rule__VLSFofFormula__Group__4__Impl rule__VLSFofFormula__Group__5 ) + // InternalVampireLanguage.g:1950:2: rule__VLSFofFormula__Group__4__Impl rule__VLSFofFormula__Group__5 + { + pushFollow(FOLLOW_13); + rule__VLSFofFormula__Group__4__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSFofFormula__Group__5(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group__4" + + + // $ANTLR start "rule__VLSFofFormula__Group__4__Impl" + // InternalVampireLanguage.g:1957:1: rule__VLSFofFormula__Group__4__Impl : ( ( rule__VLSFofFormula__FofRoleAssignment_4 ) ) ; + public final void rule__VLSFofFormula__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1961:1: ( ( ( rule__VLSFofFormula__FofRoleAssignment_4 ) ) ) + // InternalVampireLanguage.g:1962:1: ( ( rule__VLSFofFormula__FofRoleAssignment_4 ) ) + { + // InternalVampireLanguage.g:1962:1: ( ( rule__VLSFofFormula__FofRoleAssignment_4 ) ) + // InternalVampireLanguage.g:1963:2: ( rule__VLSFofFormula__FofRoleAssignment_4 ) + { + before(grammarAccess.getVLSFofFormulaAccess().getFofRoleAssignment_4()); + // InternalVampireLanguage.g:1964:2: ( rule__VLSFofFormula__FofRoleAssignment_4 ) + // InternalVampireLanguage.g:1964:3: rule__VLSFofFormula__FofRoleAssignment_4 + { + pushFollow(FOLLOW_2); + rule__VLSFofFormula__FofRoleAssignment_4(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSFofFormulaAccess().getFofRoleAssignment_4()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group__4__Impl" + + + // $ANTLR start "rule__VLSFofFormula__Group__5" + // InternalVampireLanguage.g:1972:1: rule__VLSFofFormula__Group__5 : rule__VLSFofFormula__Group__5__Impl rule__VLSFofFormula__Group__6 ; + public final void rule__VLSFofFormula__Group__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1976:1: ( rule__VLSFofFormula__Group__5__Impl rule__VLSFofFormula__Group__6 ) + // InternalVampireLanguage.g:1977:2: rule__VLSFofFormula__Group__5__Impl rule__VLSFofFormula__Group__6 + { + pushFollow(FOLLOW_15); + rule__VLSFofFormula__Group__5__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSFofFormula__Group__6(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group__5" + + + // $ANTLR start "rule__VLSFofFormula__Group__5__Impl" + // InternalVampireLanguage.g:1984:1: rule__VLSFofFormula__Group__5__Impl : ( ',' ) ; + public final void rule__VLSFofFormula__Group__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:1988:1: ( ( ',' ) ) + // InternalVampireLanguage.g:1989:1: ( ',' ) + { + // InternalVampireLanguage.g:1989:1: ( ',' ) + // InternalVampireLanguage.g:1990:2: ',' + { + before(grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_5()); + match(input,45,FOLLOW_2); + after(grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_5()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group__5__Impl" + + + // $ANTLR start "rule__VLSFofFormula__Group__6" + // InternalVampireLanguage.g:1999:1: rule__VLSFofFormula__Group__6 : rule__VLSFofFormula__Group__6__Impl rule__VLSFofFormula__Group__7 ; + public final void rule__VLSFofFormula__Group__6() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2003:1: ( rule__VLSFofFormula__Group__6__Impl rule__VLSFofFormula__Group__7 ) + // InternalVampireLanguage.g:2004:2: rule__VLSFofFormula__Group__6__Impl rule__VLSFofFormula__Group__7 + { + pushFollow(FOLLOW_16); + rule__VLSFofFormula__Group__6__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSFofFormula__Group__7(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group__6" + + + // $ANTLR start "rule__VLSFofFormula__Group__6__Impl" + // InternalVampireLanguage.g:2011:1: rule__VLSFofFormula__Group__6__Impl : ( ( rule__VLSFofFormula__FofFormulaAssignment_6 ) ) ; + public final void rule__VLSFofFormula__Group__6__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2015:1: ( ( ( rule__VLSFofFormula__FofFormulaAssignment_6 ) ) ) + // InternalVampireLanguage.g:2016:1: ( ( rule__VLSFofFormula__FofFormulaAssignment_6 ) ) + { + // InternalVampireLanguage.g:2016:1: ( ( rule__VLSFofFormula__FofFormulaAssignment_6 ) ) + // InternalVampireLanguage.g:2017:2: ( rule__VLSFofFormula__FofFormulaAssignment_6 ) + { + before(grammarAccess.getVLSFofFormulaAccess().getFofFormulaAssignment_6()); + // InternalVampireLanguage.g:2018:2: ( rule__VLSFofFormula__FofFormulaAssignment_6 ) + // InternalVampireLanguage.g:2018:3: rule__VLSFofFormula__FofFormulaAssignment_6 + { + pushFollow(FOLLOW_2); + rule__VLSFofFormula__FofFormulaAssignment_6(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSFofFormulaAccess().getFofFormulaAssignment_6()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group__6__Impl" + + + // $ANTLR start "rule__VLSFofFormula__Group__7" + // InternalVampireLanguage.g:2026:1: rule__VLSFofFormula__Group__7 : rule__VLSFofFormula__Group__7__Impl rule__VLSFofFormula__Group__8 ; + public final void rule__VLSFofFormula__Group__7() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2030:1: ( rule__VLSFofFormula__Group__7__Impl rule__VLSFofFormula__Group__8 ) + // InternalVampireLanguage.g:2031:2: rule__VLSFofFormula__Group__7__Impl rule__VLSFofFormula__Group__8 + { + pushFollow(FOLLOW_16); + rule__VLSFofFormula__Group__7__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSFofFormula__Group__8(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group__7" + + + // $ANTLR start "rule__VLSFofFormula__Group__7__Impl" + // InternalVampireLanguage.g:2038:1: rule__VLSFofFormula__Group__7__Impl : ( ( rule__VLSFofFormula__Group_7__0 )? ) ; + public final void rule__VLSFofFormula__Group__7__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2042:1: ( ( ( rule__VLSFofFormula__Group_7__0 )? ) ) + // InternalVampireLanguage.g:2043:1: ( ( rule__VLSFofFormula__Group_7__0 )? ) + { + // InternalVampireLanguage.g:2043:1: ( ( rule__VLSFofFormula__Group_7__0 )? ) + // InternalVampireLanguage.g:2044:2: ( rule__VLSFofFormula__Group_7__0 )? + { + before(grammarAccess.getVLSFofFormulaAccess().getGroup_7()); + // InternalVampireLanguage.g:2045:2: ( rule__VLSFofFormula__Group_7__0 )? + int alt23=2; + int LA23_0 = input.LA(1); + + if ( (LA23_0==45) ) { + alt23=1; + } + switch (alt23) { + case 1 : + // InternalVampireLanguage.g:2045:3: rule__VLSFofFormula__Group_7__0 + { + pushFollow(FOLLOW_2); + rule__VLSFofFormula__Group_7__0(); + + state._fsp--; + + + } + break; + + } + + after(grammarAccess.getVLSFofFormulaAccess().getGroup_7()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group__7__Impl" + + + // $ANTLR start "rule__VLSFofFormula__Group__8" + // InternalVampireLanguage.g:2053:1: rule__VLSFofFormula__Group__8 : rule__VLSFofFormula__Group__8__Impl rule__VLSFofFormula__Group__9 ; + public final void rule__VLSFofFormula__Group__8() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2057:1: ( rule__VLSFofFormula__Group__8__Impl rule__VLSFofFormula__Group__9 ) + // InternalVampireLanguage.g:2058:2: rule__VLSFofFormula__Group__8__Impl rule__VLSFofFormula__Group__9 + { + pushFollow(FOLLOW_17); + rule__VLSFofFormula__Group__8__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSFofFormula__Group__9(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group__8" + + + // $ANTLR start "rule__VLSFofFormula__Group__8__Impl" + // InternalVampireLanguage.g:2065:1: rule__VLSFofFormula__Group__8__Impl : ( ')' ) ; + public final void rule__VLSFofFormula__Group__8__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2069:1: ( ( ')' ) ) + // InternalVampireLanguage.g:2070:1: ( ')' ) + { + // InternalVampireLanguage.g:2070:1: ( ')' ) + // InternalVampireLanguage.g:2071:2: ')' + { + before(grammarAccess.getVLSFofFormulaAccess().getRightParenthesisKeyword_8()); + match(input,48,FOLLOW_2); + after(grammarAccess.getVLSFofFormulaAccess().getRightParenthesisKeyword_8()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group__8__Impl" + + + // $ANTLR start "rule__VLSFofFormula__Group__9" + // InternalVampireLanguage.g:2080:1: rule__VLSFofFormula__Group__9 : rule__VLSFofFormula__Group__9__Impl ; + public final void rule__VLSFofFormula__Group__9() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2084:1: ( rule__VLSFofFormula__Group__9__Impl ) + // InternalVampireLanguage.g:2085:2: rule__VLSFofFormula__Group__9__Impl + { + pushFollow(FOLLOW_2); + rule__VLSFofFormula__Group__9__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group__9" + + + // $ANTLR start "rule__VLSFofFormula__Group__9__Impl" + // InternalVampireLanguage.g:2091:1: rule__VLSFofFormula__Group__9__Impl : ( '.' ) ; + public final void rule__VLSFofFormula__Group__9__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2095:1: ( ( '.' ) ) + // InternalVampireLanguage.g:2096:1: ( '.' ) + { + // InternalVampireLanguage.g:2096:1: ( '.' ) + // InternalVampireLanguage.g:2097:2: '.' + { + before(grammarAccess.getVLSFofFormulaAccess().getFullStopKeyword_9()); + match(input,49,FOLLOW_2); + after(grammarAccess.getVLSFofFormulaAccess().getFullStopKeyword_9()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group__9__Impl" + + + // $ANTLR start "rule__VLSFofFormula__Group_7__0" + // InternalVampireLanguage.g:2107:1: rule__VLSFofFormula__Group_7__0 : rule__VLSFofFormula__Group_7__0__Impl rule__VLSFofFormula__Group_7__1 ; + public final void rule__VLSFofFormula__Group_7__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2111:1: ( rule__VLSFofFormula__Group_7__0__Impl rule__VLSFofFormula__Group_7__1 ) + // InternalVampireLanguage.g:2112:2: rule__VLSFofFormula__Group_7__0__Impl rule__VLSFofFormula__Group_7__1 + { + pushFollow(FOLLOW_18); + rule__VLSFofFormula__Group_7__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSFofFormula__Group_7__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group_7__0" + + + // $ANTLR start "rule__VLSFofFormula__Group_7__0__Impl" + // InternalVampireLanguage.g:2119:1: rule__VLSFofFormula__Group_7__0__Impl : ( ',' ) ; + public final void rule__VLSFofFormula__Group_7__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2123:1: ( ( ',' ) ) + // InternalVampireLanguage.g:2124:1: ( ',' ) + { + // InternalVampireLanguage.g:2124:1: ( ',' ) + // InternalVampireLanguage.g:2125:2: ',' + { + before(grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_7_0()); + match(input,45,FOLLOW_2); + after(grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_7_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group_7__0__Impl" + + + // $ANTLR start "rule__VLSFofFormula__Group_7__1" + // InternalVampireLanguage.g:2134:1: rule__VLSFofFormula__Group_7__1 : rule__VLSFofFormula__Group_7__1__Impl ; + public final void rule__VLSFofFormula__Group_7__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2138:1: ( rule__VLSFofFormula__Group_7__1__Impl ) + // InternalVampireLanguage.g:2139:2: rule__VLSFofFormula__Group_7__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSFofFormula__Group_7__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group_7__1" + + + // $ANTLR start "rule__VLSFofFormula__Group_7__1__Impl" + // InternalVampireLanguage.g:2145:1: rule__VLSFofFormula__Group_7__1__Impl : ( ( rule__VLSFofFormula__AnnotationsAssignment_7_1 ) ) ; + public final void rule__VLSFofFormula__Group_7__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2149:1: ( ( ( rule__VLSFofFormula__AnnotationsAssignment_7_1 ) ) ) + // InternalVampireLanguage.g:2150:1: ( ( rule__VLSFofFormula__AnnotationsAssignment_7_1 ) ) + { + // InternalVampireLanguage.g:2150:1: ( ( rule__VLSFofFormula__AnnotationsAssignment_7_1 ) ) + // InternalVampireLanguage.g:2151:2: ( rule__VLSFofFormula__AnnotationsAssignment_7_1 ) + { + before(grammarAccess.getVLSFofFormulaAccess().getAnnotationsAssignment_7_1()); + // InternalVampireLanguage.g:2152:2: ( rule__VLSFofFormula__AnnotationsAssignment_7_1 ) + // InternalVampireLanguage.g:2152:3: rule__VLSFofFormula__AnnotationsAssignment_7_1 + { + pushFollow(FOLLOW_2); + rule__VLSFofFormula__AnnotationsAssignment_7_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSFofFormulaAccess().getAnnotationsAssignment_7_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__Group_7__1__Impl" + + + // $ANTLR start "rule__VLSAnnotation__Group__0" + // InternalVampireLanguage.g:2161:1: rule__VLSAnnotation__Group__0 : rule__VLSAnnotation__Group__0__Impl rule__VLSAnnotation__Group__1 ; + public final void rule__VLSAnnotation__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2165:1: ( rule__VLSAnnotation__Group__0__Impl rule__VLSAnnotation__Group__1 ) + // InternalVampireLanguage.g:2166:2: rule__VLSAnnotation__Group__0__Impl rule__VLSAnnotation__Group__1 + { + pushFollow(FOLLOW_18); + rule__VLSAnnotation__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAnnotation__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotation__Group__0" + + + // $ANTLR start "rule__VLSAnnotation__Group__0__Impl" + // InternalVampireLanguage.g:2173:1: rule__VLSAnnotation__Group__0__Impl : ( ( '[' )? ) ; + public final void rule__VLSAnnotation__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2177:1: ( ( ( '[' )? ) ) + // InternalVampireLanguage.g:2178:1: ( ( '[' )? ) + { + // InternalVampireLanguage.g:2178:1: ( ( '[' )? ) + // InternalVampireLanguage.g:2179:2: ( '[' )? + { + before(grammarAccess.getVLSAnnotationAccess().getLeftSquareBracketKeyword_0()); + // InternalVampireLanguage.g:2180:2: ( '[' )? + int alt24=2; + int LA24_0 = input.LA(1); + + if ( (LA24_0==50) ) { + alt24=1; + } + switch (alt24) { + case 1 : + // InternalVampireLanguage.g:2180:3: '[' + { + match(input,50,FOLLOW_2); + + } + break; + + } + + after(grammarAccess.getVLSAnnotationAccess().getLeftSquareBracketKeyword_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotation__Group__0__Impl" + + + // $ANTLR start "rule__VLSAnnotation__Group__1" + // InternalVampireLanguage.g:2188:1: rule__VLSAnnotation__Group__1 : rule__VLSAnnotation__Group__1__Impl rule__VLSAnnotation__Group__2 ; + public final void rule__VLSAnnotation__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2192:1: ( rule__VLSAnnotation__Group__1__Impl rule__VLSAnnotation__Group__2 ) + // InternalVampireLanguage.g:2193:2: rule__VLSAnnotation__Group__1__Impl rule__VLSAnnotation__Group__2 + { + pushFollow(FOLLOW_18); + rule__VLSAnnotation__Group__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAnnotation__Group__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotation__Group__1" + + + // $ANTLR start "rule__VLSAnnotation__Group__1__Impl" + // InternalVampireLanguage.g:2200:1: rule__VLSAnnotation__Group__1__Impl : ( ( rule__VLSAnnotation__NameAssignment_1 )? ) ; + public final void rule__VLSAnnotation__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2204:1: ( ( ( rule__VLSAnnotation__NameAssignment_1 )? ) ) + // InternalVampireLanguage.g:2205:1: ( ( rule__VLSAnnotation__NameAssignment_1 )? ) + { + // InternalVampireLanguage.g:2205:1: ( ( rule__VLSAnnotation__NameAssignment_1 )? ) + // InternalVampireLanguage.g:2206:2: ( rule__VLSAnnotation__NameAssignment_1 )? + { + before(grammarAccess.getVLSAnnotationAccess().getNameAssignment_1()); + // InternalVampireLanguage.g:2207:2: ( rule__VLSAnnotation__NameAssignment_1 )? + int alt25=2; + int LA25_0 = input.LA(1); + + if ( ((LA25_0>=RULE_LOWER_WORD_ID && LA25_0<=RULE_SINGLE_QUOTE)||(LA25_0>=27 && LA25_0<=41)) ) { + alt25=1; + } + switch (alt25) { + case 1 : + // InternalVampireLanguage.g:2207:3: rule__VLSAnnotation__NameAssignment_1 + { + pushFollow(FOLLOW_2); + rule__VLSAnnotation__NameAssignment_1(); + + state._fsp--; + + + } + break; + + } + + after(grammarAccess.getVLSAnnotationAccess().getNameAssignment_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotation__Group__1__Impl" + + + // $ANTLR start "rule__VLSAnnotation__Group__2" + // InternalVampireLanguage.g:2215:1: rule__VLSAnnotation__Group__2 : rule__VLSAnnotation__Group__2__Impl rule__VLSAnnotation__Group__3 ; + public final void rule__VLSAnnotation__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2219:1: ( rule__VLSAnnotation__Group__2__Impl rule__VLSAnnotation__Group__3 ) + // InternalVampireLanguage.g:2220:2: rule__VLSAnnotation__Group__2__Impl rule__VLSAnnotation__Group__3 + { + pushFollow(FOLLOW_18); + rule__VLSAnnotation__Group__2__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAnnotation__Group__3(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotation__Group__2" + + + // $ANTLR start "rule__VLSAnnotation__Group__2__Impl" + // InternalVampireLanguage.g:2227:1: rule__VLSAnnotation__Group__2__Impl : ( ( rule__VLSAnnotation__Group_2__0 )? ) ; + public final void rule__VLSAnnotation__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2231:1: ( ( ( rule__VLSAnnotation__Group_2__0 )? ) ) + // InternalVampireLanguage.g:2232:1: ( ( rule__VLSAnnotation__Group_2__0 )? ) + { + // InternalVampireLanguage.g:2232:1: ( ( rule__VLSAnnotation__Group_2__0 )? ) + // InternalVampireLanguage.g:2233:2: ( rule__VLSAnnotation__Group_2__0 )? + { + before(grammarAccess.getVLSAnnotationAccess().getGroup_2()); + // InternalVampireLanguage.g:2234:2: ( rule__VLSAnnotation__Group_2__0 )? + int alt26=2; + int LA26_0 = input.LA(1); + + if ( (LA26_0==47) ) { + alt26=1; + } + switch (alt26) { + case 1 : + // InternalVampireLanguage.g:2234:3: rule__VLSAnnotation__Group_2__0 + { + pushFollow(FOLLOW_2); + rule__VLSAnnotation__Group_2__0(); + + state._fsp--; + + + } + break; + + } + + after(grammarAccess.getVLSAnnotationAccess().getGroup_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotation__Group__2__Impl" + + + // $ANTLR start "rule__VLSAnnotation__Group__3" + // InternalVampireLanguage.g:2242:1: rule__VLSAnnotation__Group__3 : rule__VLSAnnotation__Group__3__Impl ; + public final void rule__VLSAnnotation__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2246:1: ( rule__VLSAnnotation__Group__3__Impl ) + // InternalVampireLanguage.g:2247:2: rule__VLSAnnotation__Group__3__Impl + { + pushFollow(FOLLOW_2); + rule__VLSAnnotation__Group__3__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotation__Group__3" + + + // $ANTLR start "rule__VLSAnnotation__Group__3__Impl" + // InternalVampireLanguage.g:2253:1: rule__VLSAnnotation__Group__3__Impl : ( ( ']' )? ) ; + public final void rule__VLSAnnotation__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2257:1: ( ( ( ']' )? ) ) + // InternalVampireLanguage.g:2258:1: ( ( ']' )? ) + { + // InternalVampireLanguage.g:2258:1: ( ( ']' )? ) + // InternalVampireLanguage.g:2259:2: ( ']' )? + { + before(grammarAccess.getVLSAnnotationAccess().getRightSquareBracketKeyword_3()); + // InternalVampireLanguage.g:2260:2: ( ']' )? + int alt27=2; + int LA27_0 = input.LA(1); + + if ( (LA27_0==44) ) { + alt27=1; + } + switch (alt27) { + case 1 : + // InternalVampireLanguage.g:2260:3: ']' + { + match(input,44,FOLLOW_2); + + } + break; + + } + + after(grammarAccess.getVLSAnnotationAccess().getRightSquareBracketKeyword_3()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotation__Group__3__Impl" + + + // $ANTLR start "rule__VLSAnnotation__Group_2__0" + // InternalVampireLanguage.g:2269:1: rule__VLSAnnotation__Group_2__0 : rule__VLSAnnotation__Group_2__0__Impl rule__VLSAnnotation__Group_2__1 ; + public final void rule__VLSAnnotation__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2273:1: ( rule__VLSAnnotation__Group_2__0__Impl rule__VLSAnnotation__Group_2__1 ) + // InternalVampireLanguage.g:2274:2: rule__VLSAnnotation__Group_2__0__Impl rule__VLSAnnotation__Group_2__1 + { + pushFollow(FOLLOW_18); + rule__VLSAnnotation__Group_2__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAnnotation__Group_2__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotation__Group_2__0" + + + // $ANTLR start "rule__VLSAnnotation__Group_2__0__Impl" + // InternalVampireLanguage.g:2281:1: rule__VLSAnnotation__Group_2__0__Impl : ( '(' ) ; + public final void rule__VLSAnnotation__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2285:1: ( ( '(' ) ) + // InternalVampireLanguage.g:2286:1: ( '(' ) + { + // InternalVampireLanguage.g:2286:1: ( '(' ) + // InternalVampireLanguage.g:2287:2: '(' + { + before(grammarAccess.getVLSAnnotationAccess().getLeftParenthesisKeyword_2_0()); + match(input,47,FOLLOW_2); + after(grammarAccess.getVLSAnnotationAccess().getLeftParenthesisKeyword_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotation__Group_2__0__Impl" + + + // $ANTLR start "rule__VLSAnnotation__Group_2__1" + // InternalVampireLanguage.g:2296:1: rule__VLSAnnotation__Group_2__1 : rule__VLSAnnotation__Group_2__1__Impl rule__VLSAnnotation__Group_2__2 ; + public final void rule__VLSAnnotation__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2300:1: ( rule__VLSAnnotation__Group_2__1__Impl rule__VLSAnnotation__Group_2__2 ) + // InternalVampireLanguage.g:2301:2: rule__VLSAnnotation__Group_2__1__Impl rule__VLSAnnotation__Group_2__2 + { + pushFollow(FOLLOW_19); + rule__VLSAnnotation__Group_2__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAnnotation__Group_2__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotation__Group_2__1" + + + // $ANTLR start "rule__VLSAnnotation__Group_2__1__Impl" + // InternalVampireLanguage.g:2308:1: rule__VLSAnnotation__Group_2__1__Impl : ( ( rule__VLSAnnotation__FollowupAssignment_2_1 ) ) ; + public final void rule__VLSAnnotation__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2312:1: ( ( ( rule__VLSAnnotation__FollowupAssignment_2_1 ) ) ) + // InternalVampireLanguage.g:2313:1: ( ( rule__VLSAnnotation__FollowupAssignment_2_1 ) ) + { + // InternalVampireLanguage.g:2313:1: ( ( rule__VLSAnnotation__FollowupAssignment_2_1 ) ) + // InternalVampireLanguage.g:2314:2: ( rule__VLSAnnotation__FollowupAssignment_2_1 ) + { + before(grammarAccess.getVLSAnnotationAccess().getFollowupAssignment_2_1()); + // InternalVampireLanguage.g:2315:2: ( rule__VLSAnnotation__FollowupAssignment_2_1 ) + // InternalVampireLanguage.g:2315:3: rule__VLSAnnotation__FollowupAssignment_2_1 + { + pushFollow(FOLLOW_2); + rule__VLSAnnotation__FollowupAssignment_2_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAnnotationAccess().getFollowupAssignment_2_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotation__Group_2__1__Impl" + + + // $ANTLR start "rule__VLSAnnotation__Group_2__2" + // InternalVampireLanguage.g:2323:1: rule__VLSAnnotation__Group_2__2 : rule__VLSAnnotation__Group_2__2__Impl ; + public final void rule__VLSAnnotation__Group_2__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2327:1: ( rule__VLSAnnotation__Group_2__2__Impl ) + // InternalVampireLanguage.g:2328:2: rule__VLSAnnotation__Group_2__2__Impl + { + pushFollow(FOLLOW_2); + rule__VLSAnnotation__Group_2__2__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotation__Group_2__2" + + + // $ANTLR start "rule__VLSAnnotation__Group_2__2__Impl" + // InternalVampireLanguage.g:2334:1: rule__VLSAnnotation__Group_2__2__Impl : ( ')' ) ; + public final void rule__VLSAnnotation__Group_2__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2338:1: ( ( ')' ) ) + // InternalVampireLanguage.g:2339:1: ( ')' ) + { + // InternalVampireLanguage.g:2339:1: ( ')' ) + // InternalVampireLanguage.g:2340:2: ')' + { + before(grammarAccess.getVLSAnnotationAccess().getRightParenthesisKeyword_2_2()); + match(input,48,FOLLOW_2); + after(grammarAccess.getVLSAnnotationAccess().getRightParenthesisKeyword_2_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotation__Group_2__2__Impl" + + + // $ANTLR start "rule__VLSAnnotationTerms__Group__0" + // InternalVampireLanguage.g:2350:1: rule__VLSAnnotationTerms__Group__0 : rule__VLSAnnotationTerms__Group__0__Impl rule__VLSAnnotationTerms__Group__1 ; + public final void rule__VLSAnnotationTerms__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2354:1: ( rule__VLSAnnotationTerms__Group__0__Impl rule__VLSAnnotationTerms__Group__1 ) + // InternalVampireLanguage.g:2355:2: rule__VLSAnnotationTerms__Group__0__Impl rule__VLSAnnotationTerms__Group__1 + { + pushFollow(FOLLOW_13); + rule__VLSAnnotationTerms__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAnnotationTerms__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotationTerms__Group__0" + + + // $ANTLR start "rule__VLSAnnotationTerms__Group__0__Impl" + // InternalVampireLanguage.g:2362:1: rule__VLSAnnotationTerms__Group__0__Impl : ( ( rule__VLSAnnotationTerms__TermsAssignment_0 ) ) ; + public final void rule__VLSAnnotationTerms__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2366:1: ( ( ( rule__VLSAnnotationTerms__TermsAssignment_0 ) ) ) + // InternalVampireLanguage.g:2367:1: ( ( rule__VLSAnnotationTerms__TermsAssignment_0 ) ) + { + // InternalVampireLanguage.g:2367:1: ( ( rule__VLSAnnotationTerms__TermsAssignment_0 ) ) + // InternalVampireLanguage.g:2368:2: ( rule__VLSAnnotationTerms__TermsAssignment_0 ) + { + before(grammarAccess.getVLSAnnotationTermsAccess().getTermsAssignment_0()); + // InternalVampireLanguage.g:2369:2: ( rule__VLSAnnotationTerms__TermsAssignment_0 ) + // InternalVampireLanguage.g:2369:3: rule__VLSAnnotationTerms__TermsAssignment_0 + { + pushFollow(FOLLOW_2); + rule__VLSAnnotationTerms__TermsAssignment_0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAnnotationTermsAccess().getTermsAssignment_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotationTerms__Group__0__Impl" + + + // $ANTLR start "rule__VLSAnnotationTerms__Group__1" + // InternalVampireLanguage.g:2377:1: rule__VLSAnnotationTerms__Group__1 : rule__VLSAnnotationTerms__Group__1__Impl ; + public final void rule__VLSAnnotationTerms__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2381:1: ( rule__VLSAnnotationTerms__Group__1__Impl ) + // InternalVampireLanguage.g:2382:2: rule__VLSAnnotationTerms__Group__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSAnnotationTerms__Group__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotationTerms__Group__1" + + + // $ANTLR start "rule__VLSAnnotationTerms__Group__1__Impl" + // InternalVampireLanguage.g:2388:1: rule__VLSAnnotationTerms__Group__1__Impl : ( ( rule__VLSAnnotationTerms__Group_1__0 )* ) ; + public final void rule__VLSAnnotationTerms__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2392:1: ( ( ( rule__VLSAnnotationTerms__Group_1__0 )* ) ) + // InternalVampireLanguage.g:2393:1: ( ( rule__VLSAnnotationTerms__Group_1__0 )* ) + { + // InternalVampireLanguage.g:2393:1: ( ( rule__VLSAnnotationTerms__Group_1__0 )* ) + // InternalVampireLanguage.g:2394:2: ( rule__VLSAnnotationTerms__Group_1__0 )* + { + before(grammarAccess.getVLSAnnotationTermsAccess().getGroup_1()); + // InternalVampireLanguage.g:2395:2: ( rule__VLSAnnotationTerms__Group_1__0 )* + loop28: + do { + int alt28=2; + int LA28_0 = input.LA(1); + + if ( (LA28_0==45) ) { + alt28=1; + } + + + switch (alt28) { + case 1 : + // InternalVampireLanguage.g:2395:3: rule__VLSAnnotationTerms__Group_1__0 + { + pushFollow(FOLLOW_10); + rule__VLSAnnotationTerms__Group_1__0(); + + state._fsp--; + + + } + break; + + default : + break loop28; + } + } while (true); + + after(grammarAccess.getVLSAnnotationTermsAccess().getGroup_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotationTerms__Group__1__Impl" + + + // $ANTLR start "rule__VLSAnnotationTerms__Group_1__0" + // InternalVampireLanguage.g:2404:1: rule__VLSAnnotationTerms__Group_1__0 : rule__VLSAnnotationTerms__Group_1__0__Impl rule__VLSAnnotationTerms__Group_1__1 ; + public final void rule__VLSAnnotationTerms__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2408:1: ( rule__VLSAnnotationTerms__Group_1__0__Impl rule__VLSAnnotationTerms__Group_1__1 ) + // InternalVampireLanguage.g:2409:2: rule__VLSAnnotationTerms__Group_1__0__Impl rule__VLSAnnotationTerms__Group_1__1 + { + pushFollow(FOLLOW_18); + rule__VLSAnnotationTerms__Group_1__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAnnotationTerms__Group_1__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotationTerms__Group_1__0" + + + // $ANTLR start "rule__VLSAnnotationTerms__Group_1__0__Impl" + // InternalVampireLanguage.g:2416:1: rule__VLSAnnotationTerms__Group_1__0__Impl : ( ',' ) ; + public final void rule__VLSAnnotationTerms__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2420:1: ( ( ',' ) ) + // InternalVampireLanguage.g:2421:1: ( ',' ) + { + // InternalVampireLanguage.g:2421:1: ( ',' ) + // InternalVampireLanguage.g:2422:2: ',' + { + before(grammarAccess.getVLSAnnotationTermsAccess().getCommaKeyword_1_0()); + match(input,45,FOLLOW_2); + after(grammarAccess.getVLSAnnotationTermsAccess().getCommaKeyword_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotationTerms__Group_1__0__Impl" + + + // $ANTLR start "rule__VLSAnnotationTerms__Group_1__1" + // InternalVampireLanguage.g:2431:1: rule__VLSAnnotationTerms__Group_1__1 : rule__VLSAnnotationTerms__Group_1__1__Impl ; + public final void rule__VLSAnnotationTerms__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2435:1: ( rule__VLSAnnotationTerms__Group_1__1__Impl ) + // InternalVampireLanguage.g:2436:2: rule__VLSAnnotationTerms__Group_1__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSAnnotationTerms__Group_1__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotationTerms__Group_1__1" + + + // $ANTLR start "rule__VLSAnnotationTerms__Group_1__1__Impl" + // InternalVampireLanguage.g:2442:1: rule__VLSAnnotationTerms__Group_1__1__Impl : ( ( rule__VLSAnnotationTerms__TermsAssignment_1_1 ) ) ; + public final void rule__VLSAnnotationTerms__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2446:1: ( ( ( rule__VLSAnnotationTerms__TermsAssignment_1_1 ) ) ) + // InternalVampireLanguage.g:2447:1: ( ( rule__VLSAnnotationTerms__TermsAssignment_1_1 ) ) + { + // InternalVampireLanguage.g:2447:1: ( ( rule__VLSAnnotationTerms__TermsAssignment_1_1 ) ) + // InternalVampireLanguage.g:2448:2: ( rule__VLSAnnotationTerms__TermsAssignment_1_1 ) + { + before(grammarAccess.getVLSAnnotationTermsAccess().getTermsAssignment_1_1()); + // InternalVampireLanguage.g:2449:2: ( rule__VLSAnnotationTerms__TermsAssignment_1_1 ) + // InternalVampireLanguage.g:2449:3: rule__VLSAnnotationTerms__TermsAssignment_1_1 + { + pushFollow(FOLLOW_2); + rule__VLSAnnotationTerms__TermsAssignment_1_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAnnotationTermsAccess().getTermsAssignment_1_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotationTerms__Group_1__1__Impl" + + + // $ANTLR start "rule__VLSBinary__Group__0" + // InternalVampireLanguage.g:2458:1: rule__VLSBinary__Group__0 : rule__VLSBinary__Group__0__Impl rule__VLSBinary__Group__1 ; + public final void rule__VLSBinary__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2462:1: ( rule__VLSBinary__Group__0__Impl rule__VLSBinary__Group__1 ) + // InternalVampireLanguage.g:2463:2: rule__VLSBinary__Group__0__Impl rule__VLSBinary__Group__1 + { + pushFollow(FOLLOW_20); + rule__VLSBinary__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSBinary__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group__0" + + + // $ANTLR start "rule__VLSBinary__Group__0__Impl" + // InternalVampireLanguage.g:2470:1: rule__VLSBinary__Group__0__Impl : ( ruleVLSUnitaryFormula ) ; + public final void rule__VLSBinary__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2474:1: ( ( ruleVLSUnitaryFormula ) ) + // InternalVampireLanguage.g:2475:1: ( ruleVLSUnitaryFormula ) + { + // InternalVampireLanguage.g:2475:1: ( ruleVLSUnitaryFormula ) + // InternalVampireLanguage.g:2476:2: ruleVLSUnitaryFormula + { + before(grammarAccess.getVLSBinaryAccess().getVLSUnitaryFormulaParserRuleCall_0()); + pushFollow(FOLLOW_2); + ruleVLSUnitaryFormula(); + + state._fsp--; + + after(grammarAccess.getVLSBinaryAccess().getVLSUnitaryFormulaParserRuleCall_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group__0__Impl" + + + // $ANTLR start "rule__VLSBinary__Group__1" + // InternalVampireLanguage.g:2485:1: rule__VLSBinary__Group__1 : rule__VLSBinary__Group__1__Impl ; + public final void rule__VLSBinary__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2489:1: ( rule__VLSBinary__Group__1__Impl ) + // InternalVampireLanguage.g:2490:2: rule__VLSBinary__Group__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSBinary__Group__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group__1" + + + // $ANTLR start "rule__VLSBinary__Group__1__Impl" + // InternalVampireLanguage.g:2496:1: rule__VLSBinary__Group__1__Impl : ( ( rule__VLSBinary__Alternatives_1 )? ) ; + public final void rule__VLSBinary__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2500:1: ( ( ( rule__VLSBinary__Alternatives_1 )? ) ) + // InternalVampireLanguage.g:2501:1: ( ( rule__VLSBinary__Alternatives_1 )? ) + { + // InternalVampireLanguage.g:2501:1: ( ( rule__VLSBinary__Alternatives_1 )? ) + // InternalVampireLanguage.g:2502:2: ( rule__VLSBinary__Alternatives_1 )? + { + before(grammarAccess.getVLSBinaryAccess().getAlternatives_1()); + // InternalVampireLanguage.g:2503:2: ( rule__VLSBinary__Alternatives_1 )? + int alt29=2; + int LA29_0 = input.LA(1); + + if ( ((LA29_0>=51 && LA29_0<=58)) ) { + alt29=1; + } + switch (alt29) { + case 1 : + // InternalVampireLanguage.g:2503:3: rule__VLSBinary__Alternatives_1 + { + pushFollow(FOLLOW_2); + rule__VLSBinary__Alternatives_1(); + + state._fsp--; + + + } + break; + + } + + after(grammarAccess.getVLSBinaryAccess().getAlternatives_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group__1__Impl" + + + // $ANTLR start "rule__VLSBinary__Group_1_0__0" + // InternalVampireLanguage.g:2512:1: rule__VLSBinary__Group_1_0__0 : rule__VLSBinary__Group_1_0__0__Impl rule__VLSBinary__Group_1_0__1 ; + public final void rule__VLSBinary__Group_1_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2516:1: ( rule__VLSBinary__Group_1_0__0__Impl rule__VLSBinary__Group_1_0__1 ) + // InternalVampireLanguage.g:2517:2: rule__VLSBinary__Group_1_0__0__Impl rule__VLSBinary__Group_1_0__1 + { + pushFollow(FOLLOW_15); + rule__VLSBinary__Group_1_0__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0__0" + + + // $ANTLR start "rule__VLSBinary__Group_1_0__0__Impl" + // InternalVampireLanguage.g:2524:1: rule__VLSBinary__Group_1_0__0__Impl : ( ( rule__VLSBinary__Alternatives_1_0_0 ) ) ; + public final void rule__VLSBinary__Group_1_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2528:1: ( ( ( rule__VLSBinary__Alternatives_1_0_0 ) ) ) + // InternalVampireLanguage.g:2529:1: ( ( rule__VLSBinary__Alternatives_1_0_0 ) ) + { + // InternalVampireLanguage.g:2529:1: ( ( rule__VLSBinary__Alternatives_1_0_0 ) ) + // InternalVampireLanguage.g:2530:2: ( rule__VLSBinary__Alternatives_1_0_0 ) + { + before(grammarAccess.getVLSBinaryAccess().getAlternatives_1_0_0()); + // InternalVampireLanguage.g:2531:2: ( rule__VLSBinary__Alternatives_1_0_0 ) + // InternalVampireLanguage.g:2531:3: rule__VLSBinary__Alternatives_1_0_0 + { + pushFollow(FOLLOW_2); + rule__VLSBinary__Alternatives_1_0_0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSBinaryAccess().getAlternatives_1_0_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0__0__Impl" + + + // $ANTLR start "rule__VLSBinary__Group_1_0__1" + // InternalVampireLanguage.g:2539:1: rule__VLSBinary__Group_1_0__1 : rule__VLSBinary__Group_1_0__1__Impl ; + public final void rule__VLSBinary__Group_1_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2543:1: ( rule__VLSBinary__Group_1_0__1__Impl ) + // InternalVampireLanguage.g:2544:2: rule__VLSBinary__Group_1_0__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0__1" + + + // $ANTLR start "rule__VLSBinary__Group_1_0__1__Impl" + // InternalVampireLanguage.g:2550:1: rule__VLSBinary__Group_1_0__1__Impl : ( ( rule__VLSBinary__RightAssignment_1_0_1 ) ) ; + public final void rule__VLSBinary__Group_1_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2554:1: ( ( ( rule__VLSBinary__RightAssignment_1_0_1 ) ) ) + // InternalVampireLanguage.g:2555:1: ( ( rule__VLSBinary__RightAssignment_1_0_1 ) ) + { + // InternalVampireLanguage.g:2555:1: ( ( rule__VLSBinary__RightAssignment_1_0_1 ) ) + // InternalVampireLanguage.g:2556:2: ( rule__VLSBinary__RightAssignment_1_0_1 ) + { + before(grammarAccess.getVLSBinaryAccess().getRightAssignment_1_0_1()); + // InternalVampireLanguage.g:2557:2: ( rule__VLSBinary__RightAssignment_1_0_1 ) + // InternalVampireLanguage.g:2557:3: rule__VLSBinary__RightAssignment_1_0_1 + { + pushFollow(FOLLOW_2); + rule__VLSBinary__RightAssignment_1_0_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSBinaryAccess().getRightAssignment_1_0_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0__1__Impl" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_0__0" + // InternalVampireLanguage.g:2566:1: rule__VLSBinary__Group_1_0_0_0__0 : rule__VLSBinary__Group_1_0_0_0__0__Impl rule__VLSBinary__Group_1_0_0_0__1 ; + public final void rule__VLSBinary__Group_1_0_0_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2570:1: ( rule__VLSBinary__Group_1_0_0_0__0__Impl rule__VLSBinary__Group_1_0_0_0__1 ) + // InternalVampireLanguage.g:2571:2: rule__VLSBinary__Group_1_0_0_0__0__Impl rule__VLSBinary__Group_1_0_0_0__1 + { + pushFollow(FOLLOW_21); + rule__VLSBinary__Group_1_0_0_0__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0_0_0__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_0__0" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_0__0__Impl" + // InternalVampireLanguage.g:2578:1: rule__VLSBinary__Group_1_0_0_0__0__Impl : ( () ) ; + public final void rule__VLSBinary__Group_1_0_0_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2582:1: ( ( () ) ) + // InternalVampireLanguage.g:2583:1: ( () ) + { + // InternalVampireLanguage.g:2583:1: ( () ) + // InternalVampireLanguage.g:2584:2: () + { + before(grammarAccess.getVLSBinaryAccess().getVLSEquivalentLeftAction_1_0_0_0_0()); + // InternalVampireLanguage.g:2585:2: () + // InternalVampireLanguage.g:2585:3: + { + } + + after(grammarAccess.getVLSBinaryAccess().getVLSEquivalentLeftAction_1_0_0_0_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_0__0__Impl" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_0__1" + // InternalVampireLanguage.g:2593:1: rule__VLSBinary__Group_1_0_0_0__1 : rule__VLSBinary__Group_1_0_0_0__1__Impl ; + public final void rule__VLSBinary__Group_1_0_0_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2597:1: ( rule__VLSBinary__Group_1_0_0_0__1__Impl ) + // InternalVampireLanguage.g:2598:2: rule__VLSBinary__Group_1_0_0_0__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0_0_0__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_0__1" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_0__1__Impl" + // InternalVampireLanguage.g:2604:1: rule__VLSBinary__Group_1_0_0_0__1__Impl : ( '<=>' ) ; + public final void rule__VLSBinary__Group_1_0_0_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2608:1: ( ( '<=>' ) ) + // InternalVampireLanguage.g:2609:1: ( '<=>' ) + { + // InternalVampireLanguage.g:2609:1: ( '<=>' ) + // InternalVampireLanguage.g:2610:2: '<=>' + { + before(grammarAccess.getVLSBinaryAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_1_0_0_0_1()); + match(input,51,FOLLOW_2); + after(grammarAccess.getVLSBinaryAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_1_0_0_0_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_0__1__Impl" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_1__0" + // InternalVampireLanguage.g:2620:1: rule__VLSBinary__Group_1_0_0_1__0 : rule__VLSBinary__Group_1_0_0_1__0__Impl rule__VLSBinary__Group_1_0_0_1__1 ; + public final void rule__VLSBinary__Group_1_0_0_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2624:1: ( rule__VLSBinary__Group_1_0_0_1__0__Impl rule__VLSBinary__Group_1_0_0_1__1 ) + // InternalVampireLanguage.g:2625:2: rule__VLSBinary__Group_1_0_0_1__0__Impl rule__VLSBinary__Group_1_0_0_1__1 + { + pushFollow(FOLLOW_22); + rule__VLSBinary__Group_1_0_0_1__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0_0_1__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_1__0" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_1__0__Impl" + // InternalVampireLanguage.g:2632:1: rule__VLSBinary__Group_1_0_0_1__0__Impl : ( () ) ; + public final void rule__VLSBinary__Group_1_0_0_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2636:1: ( ( () ) ) + // InternalVampireLanguage.g:2637:1: ( () ) + { + // InternalVampireLanguage.g:2637:1: ( () ) + // InternalVampireLanguage.g:2638:2: () + { + before(grammarAccess.getVLSBinaryAccess().getVLSImpliesLeftAction_1_0_0_1_0()); + // InternalVampireLanguage.g:2639:2: () + // InternalVampireLanguage.g:2639:3: + { + } + + after(grammarAccess.getVLSBinaryAccess().getVLSImpliesLeftAction_1_0_0_1_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_1__0__Impl" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_1__1" + // InternalVampireLanguage.g:2647:1: rule__VLSBinary__Group_1_0_0_1__1 : rule__VLSBinary__Group_1_0_0_1__1__Impl ; + public final void rule__VLSBinary__Group_1_0_0_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2651:1: ( rule__VLSBinary__Group_1_0_0_1__1__Impl ) + // InternalVampireLanguage.g:2652:2: rule__VLSBinary__Group_1_0_0_1__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0_0_1__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_1__1" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_1__1__Impl" + // InternalVampireLanguage.g:2658:1: rule__VLSBinary__Group_1_0_0_1__1__Impl : ( '=>' ) ; + public final void rule__VLSBinary__Group_1_0_0_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2662:1: ( ( '=>' ) ) + // InternalVampireLanguage.g:2663:1: ( '=>' ) + { + // InternalVampireLanguage.g:2663:1: ( '=>' ) + // InternalVampireLanguage.g:2664:2: '=>' + { + before(grammarAccess.getVLSBinaryAccess().getEqualsSignGreaterThanSignKeyword_1_0_0_1_1()); + match(input,52,FOLLOW_2); + after(grammarAccess.getVLSBinaryAccess().getEqualsSignGreaterThanSignKeyword_1_0_0_1_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_1__1__Impl" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_2__0" + // InternalVampireLanguage.g:2674:1: rule__VLSBinary__Group_1_0_0_2__0 : rule__VLSBinary__Group_1_0_0_2__0__Impl rule__VLSBinary__Group_1_0_0_2__1 ; + public final void rule__VLSBinary__Group_1_0_0_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2678:1: ( rule__VLSBinary__Group_1_0_0_2__0__Impl rule__VLSBinary__Group_1_0_0_2__1 ) + // InternalVampireLanguage.g:2679:2: rule__VLSBinary__Group_1_0_0_2__0__Impl rule__VLSBinary__Group_1_0_0_2__1 + { + pushFollow(FOLLOW_23); + rule__VLSBinary__Group_1_0_0_2__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0_0_2__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_2__0" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_2__0__Impl" + // InternalVampireLanguage.g:2686:1: rule__VLSBinary__Group_1_0_0_2__0__Impl : ( () ) ; + public final void rule__VLSBinary__Group_1_0_0_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2690:1: ( ( () ) ) + // InternalVampireLanguage.g:2691:1: ( () ) + { + // InternalVampireLanguage.g:2691:1: ( () ) + // InternalVampireLanguage.g:2692:2: () + { + before(grammarAccess.getVLSBinaryAccess().getVLSRevImpliesLeftAction_1_0_0_2_0()); + // InternalVampireLanguage.g:2693:2: () + // InternalVampireLanguage.g:2693:3: + { + } + + after(grammarAccess.getVLSBinaryAccess().getVLSRevImpliesLeftAction_1_0_0_2_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_2__0__Impl" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_2__1" + // InternalVampireLanguage.g:2701:1: rule__VLSBinary__Group_1_0_0_2__1 : rule__VLSBinary__Group_1_0_0_2__1__Impl ; + public final void rule__VLSBinary__Group_1_0_0_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2705:1: ( rule__VLSBinary__Group_1_0_0_2__1__Impl ) + // InternalVampireLanguage.g:2706:2: rule__VLSBinary__Group_1_0_0_2__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0_0_2__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_2__1" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_2__1__Impl" + // InternalVampireLanguage.g:2712:1: rule__VLSBinary__Group_1_0_0_2__1__Impl : ( '<=' ) ; + public final void rule__VLSBinary__Group_1_0_0_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2716:1: ( ( '<=' ) ) + // InternalVampireLanguage.g:2717:1: ( '<=' ) + { + // InternalVampireLanguage.g:2717:1: ( '<=' ) + // InternalVampireLanguage.g:2718:2: '<=' + { + before(grammarAccess.getVLSBinaryAccess().getLessThanSignEqualsSignKeyword_1_0_0_2_1()); + match(input,53,FOLLOW_2); + after(grammarAccess.getVLSBinaryAccess().getLessThanSignEqualsSignKeyword_1_0_0_2_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_2__1__Impl" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_3__0" + // InternalVampireLanguage.g:2728:1: rule__VLSBinary__Group_1_0_0_3__0 : rule__VLSBinary__Group_1_0_0_3__0__Impl rule__VLSBinary__Group_1_0_0_3__1 ; + public final void rule__VLSBinary__Group_1_0_0_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2732:1: ( rule__VLSBinary__Group_1_0_0_3__0__Impl rule__VLSBinary__Group_1_0_0_3__1 ) + // InternalVampireLanguage.g:2733:2: rule__VLSBinary__Group_1_0_0_3__0__Impl rule__VLSBinary__Group_1_0_0_3__1 + { + pushFollow(FOLLOW_24); + rule__VLSBinary__Group_1_0_0_3__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0_0_3__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_3__0" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_3__0__Impl" + // InternalVampireLanguage.g:2740:1: rule__VLSBinary__Group_1_0_0_3__0__Impl : ( () ) ; + public final void rule__VLSBinary__Group_1_0_0_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2744:1: ( ( () ) ) + // InternalVampireLanguage.g:2745:1: ( () ) + { + // InternalVampireLanguage.g:2745:1: ( () ) + // InternalVampireLanguage.g:2746:2: () + { + before(grammarAccess.getVLSBinaryAccess().getVLSXnorLeftAction_1_0_0_3_0()); + // InternalVampireLanguage.g:2747:2: () + // InternalVampireLanguage.g:2747:3: + { + } + + after(grammarAccess.getVLSBinaryAccess().getVLSXnorLeftAction_1_0_0_3_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_3__0__Impl" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_3__1" + // InternalVampireLanguage.g:2755:1: rule__VLSBinary__Group_1_0_0_3__1 : rule__VLSBinary__Group_1_0_0_3__1__Impl ; + public final void rule__VLSBinary__Group_1_0_0_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2759:1: ( rule__VLSBinary__Group_1_0_0_3__1__Impl ) + // InternalVampireLanguage.g:2760:2: rule__VLSBinary__Group_1_0_0_3__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0_0_3__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_3__1" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_3__1__Impl" + // InternalVampireLanguage.g:2766:1: rule__VLSBinary__Group_1_0_0_3__1__Impl : ( '<~>' ) ; + public final void rule__VLSBinary__Group_1_0_0_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2770:1: ( ( '<~>' ) ) + // InternalVampireLanguage.g:2771:1: ( '<~>' ) + { + // InternalVampireLanguage.g:2771:1: ( '<~>' ) + // InternalVampireLanguage.g:2772:2: '<~>' + { + before(grammarAccess.getVLSBinaryAccess().getLessThanSignTildeGreaterThanSignKeyword_1_0_0_3_1()); + match(input,54,FOLLOW_2); + after(grammarAccess.getVLSBinaryAccess().getLessThanSignTildeGreaterThanSignKeyword_1_0_0_3_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_3__1__Impl" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_4__0" + // InternalVampireLanguage.g:2782:1: rule__VLSBinary__Group_1_0_0_4__0 : rule__VLSBinary__Group_1_0_0_4__0__Impl rule__VLSBinary__Group_1_0_0_4__1 ; + public final void rule__VLSBinary__Group_1_0_0_4__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2786:1: ( rule__VLSBinary__Group_1_0_0_4__0__Impl rule__VLSBinary__Group_1_0_0_4__1 ) + // InternalVampireLanguage.g:2787:2: rule__VLSBinary__Group_1_0_0_4__0__Impl rule__VLSBinary__Group_1_0_0_4__1 + { + pushFollow(FOLLOW_25); + rule__VLSBinary__Group_1_0_0_4__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0_0_4__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_4__0" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_4__0__Impl" + // InternalVampireLanguage.g:2794:1: rule__VLSBinary__Group_1_0_0_4__0__Impl : ( () ) ; + public final void rule__VLSBinary__Group_1_0_0_4__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2798:1: ( ( () ) ) + // InternalVampireLanguage.g:2799:1: ( () ) + { + // InternalVampireLanguage.g:2799:1: ( () ) + // InternalVampireLanguage.g:2800:2: () + { + before(grammarAccess.getVLSBinaryAccess().getVLSNorLeftAction_1_0_0_4_0()); + // InternalVampireLanguage.g:2801:2: () + // InternalVampireLanguage.g:2801:3: + { + } + + after(grammarAccess.getVLSBinaryAccess().getVLSNorLeftAction_1_0_0_4_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_4__0__Impl" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_4__1" + // InternalVampireLanguage.g:2809:1: rule__VLSBinary__Group_1_0_0_4__1 : rule__VLSBinary__Group_1_0_0_4__1__Impl ; + public final void rule__VLSBinary__Group_1_0_0_4__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2813:1: ( rule__VLSBinary__Group_1_0_0_4__1__Impl ) + // InternalVampireLanguage.g:2814:2: rule__VLSBinary__Group_1_0_0_4__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0_0_4__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_4__1" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_4__1__Impl" + // InternalVampireLanguage.g:2820:1: rule__VLSBinary__Group_1_0_0_4__1__Impl : ( '~|' ) ; + public final void rule__VLSBinary__Group_1_0_0_4__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2824:1: ( ( '~|' ) ) + // InternalVampireLanguage.g:2825:1: ( '~|' ) + { + // InternalVampireLanguage.g:2825:1: ( '~|' ) + // InternalVampireLanguage.g:2826:2: '~|' + { + before(grammarAccess.getVLSBinaryAccess().getTildeVerticalLineKeyword_1_0_0_4_1()); + match(input,55,FOLLOW_2); + after(grammarAccess.getVLSBinaryAccess().getTildeVerticalLineKeyword_1_0_0_4_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_4__1__Impl" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_5__0" + // InternalVampireLanguage.g:2836:1: rule__VLSBinary__Group_1_0_0_5__0 : rule__VLSBinary__Group_1_0_0_5__0__Impl rule__VLSBinary__Group_1_0_0_5__1 ; + public final void rule__VLSBinary__Group_1_0_0_5__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2840:1: ( rule__VLSBinary__Group_1_0_0_5__0__Impl rule__VLSBinary__Group_1_0_0_5__1 ) + // InternalVampireLanguage.g:2841:2: rule__VLSBinary__Group_1_0_0_5__0__Impl rule__VLSBinary__Group_1_0_0_5__1 + { + pushFollow(FOLLOW_26); + rule__VLSBinary__Group_1_0_0_5__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0_0_5__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_5__0" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_5__0__Impl" + // InternalVampireLanguage.g:2848:1: rule__VLSBinary__Group_1_0_0_5__0__Impl : ( () ) ; + public final void rule__VLSBinary__Group_1_0_0_5__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2852:1: ( ( () ) ) + // InternalVampireLanguage.g:2853:1: ( () ) + { + // InternalVampireLanguage.g:2853:1: ( () ) + // InternalVampireLanguage.g:2854:2: () + { + before(grammarAccess.getVLSBinaryAccess().getVLSNandLeftAction_1_0_0_5_0()); + // InternalVampireLanguage.g:2855:2: () + // InternalVampireLanguage.g:2855:3: + { + } + + after(grammarAccess.getVLSBinaryAccess().getVLSNandLeftAction_1_0_0_5_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_5__0__Impl" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_5__1" + // InternalVampireLanguage.g:2863:1: rule__VLSBinary__Group_1_0_0_5__1 : rule__VLSBinary__Group_1_0_0_5__1__Impl ; + public final void rule__VLSBinary__Group_1_0_0_5__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2867:1: ( rule__VLSBinary__Group_1_0_0_5__1__Impl ) + // InternalVampireLanguage.g:2868:2: rule__VLSBinary__Group_1_0_0_5__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_0_0_5__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_5__1" + + + // $ANTLR start "rule__VLSBinary__Group_1_0_0_5__1__Impl" + // InternalVampireLanguage.g:2874:1: rule__VLSBinary__Group_1_0_0_5__1__Impl : ( '~&' ) ; + public final void rule__VLSBinary__Group_1_0_0_5__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2878:1: ( ( '~&' ) ) + // InternalVampireLanguage.g:2879:1: ( '~&' ) + { + // InternalVampireLanguage.g:2879:1: ( '~&' ) + // InternalVampireLanguage.g:2880:2: '~&' + { + before(grammarAccess.getVLSBinaryAccess().getTildeAmpersandKeyword_1_0_0_5_1()); + match(input,56,FOLLOW_2); + after(grammarAccess.getVLSBinaryAccess().getTildeAmpersandKeyword_1_0_0_5_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_0_0_5__1__Impl" + + + // $ANTLR start "rule__VLSBinary__Group_1_1__0" + // InternalVampireLanguage.g:2890:1: rule__VLSBinary__Group_1_1__0 : rule__VLSBinary__Group_1_1__0__Impl rule__VLSBinary__Group_1_1__1 ; + public final void rule__VLSBinary__Group_1_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2894:1: ( rule__VLSBinary__Group_1_1__0__Impl rule__VLSBinary__Group_1_1__1 ) + // InternalVampireLanguage.g:2895:2: rule__VLSBinary__Group_1_1__0__Impl rule__VLSBinary__Group_1_1__1 + { + pushFollow(FOLLOW_27); + rule__VLSBinary__Group_1_1__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_1__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_1__0" + + + // $ANTLR start "rule__VLSBinary__Group_1_1__0__Impl" + // InternalVampireLanguage.g:2902:1: rule__VLSBinary__Group_1_1__0__Impl : ( () ) ; + public final void rule__VLSBinary__Group_1_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2906:1: ( ( () ) ) + // InternalVampireLanguage.g:2907:1: ( () ) + { + // InternalVampireLanguage.g:2907:1: ( () ) + // InternalVampireLanguage.g:2908:2: () + { + before(grammarAccess.getVLSBinaryAccess().getVLSAndLeftAction_1_1_0()); + // InternalVampireLanguage.g:2909:2: () + // InternalVampireLanguage.g:2909:3: + { + } + + after(grammarAccess.getVLSBinaryAccess().getVLSAndLeftAction_1_1_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_1__0__Impl" + + + // $ANTLR start "rule__VLSBinary__Group_1_1__1" + // InternalVampireLanguage.g:2917:1: rule__VLSBinary__Group_1_1__1 : rule__VLSBinary__Group_1_1__1__Impl rule__VLSBinary__Group_1_1__2 ; + public final void rule__VLSBinary__Group_1_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2921:1: ( rule__VLSBinary__Group_1_1__1__Impl rule__VLSBinary__Group_1_1__2 ) + // InternalVampireLanguage.g:2922:2: rule__VLSBinary__Group_1_1__1__Impl rule__VLSBinary__Group_1_1__2 + { + pushFollow(FOLLOW_15); + rule__VLSBinary__Group_1_1__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_1__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_1__1" + + + // $ANTLR start "rule__VLSBinary__Group_1_1__1__Impl" + // InternalVampireLanguage.g:2929:1: rule__VLSBinary__Group_1_1__1__Impl : ( '&' ) ; + public final void rule__VLSBinary__Group_1_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2933:1: ( ( '&' ) ) + // InternalVampireLanguage.g:2934:1: ( '&' ) + { + // InternalVampireLanguage.g:2934:1: ( '&' ) + // InternalVampireLanguage.g:2935:2: '&' + { + before(grammarAccess.getVLSBinaryAccess().getAmpersandKeyword_1_1_1()); + match(input,57,FOLLOW_2); + after(grammarAccess.getVLSBinaryAccess().getAmpersandKeyword_1_1_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_1__1__Impl" + + + // $ANTLR start "rule__VLSBinary__Group_1_1__2" + // InternalVampireLanguage.g:2944:1: rule__VLSBinary__Group_1_1__2 : rule__VLSBinary__Group_1_1__2__Impl ; + public final void rule__VLSBinary__Group_1_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2948:1: ( rule__VLSBinary__Group_1_1__2__Impl ) + // InternalVampireLanguage.g:2949:2: rule__VLSBinary__Group_1_1__2__Impl + { + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_1__2__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_1__2" + + + // $ANTLR start "rule__VLSBinary__Group_1_1__2__Impl" + // InternalVampireLanguage.g:2955:1: rule__VLSBinary__Group_1_1__2__Impl : ( ( rule__VLSBinary__RightAssignment_1_1_2 ) ) ; + public final void rule__VLSBinary__Group_1_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2959:1: ( ( ( rule__VLSBinary__RightAssignment_1_1_2 ) ) ) + // InternalVampireLanguage.g:2960:1: ( ( rule__VLSBinary__RightAssignment_1_1_2 ) ) + { + // InternalVampireLanguage.g:2960:1: ( ( rule__VLSBinary__RightAssignment_1_1_2 ) ) + // InternalVampireLanguage.g:2961:2: ( rule__VLSBinary__RightAssignment_1_1_2 ) + { + before(grammarAccess.getVLSBinaryAccess().getRightAssignment_1_1_2()); + // InternalVampireLanguage.g:2962:2: ( rule__VLSBinary__RightAssignment_1_1_2 ) + // InternalVampireLanguage.g:2962:3: rule__VLSBinary__RightAssignment_1_1_2 + { + pushFollow(FOLLOW_2); + rule__VLSBinary__RightAssignment_1_1_2(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSBinaryAccess().getRightAssignment_1_1_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_1__2__Impl" + + + // $ANTLR start "rule__VLSBinary__Group_1_2__0" + // InternalVampireLanguage.g:2971:1: rule__VLSBinary__Group_1_2__0 : rule__VLSBinary__Group_1_2__0__Impl rule__VLSBinary__Group_1_2__1 ; + public final void rule__VLSBinary__Group_1_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2975:1: ( rule__VLSBinary__Group_1_2__0__Impl rule__VLSBinary__Group_1_2__1 ) + // InternalVampireLanguage.g:2976:2: rule__VLSBinary__Group_1_2__0__Impl rule__VLSBinary__Group_1_2__1 + { + pushFollow(FOLLOW_28); + rule__VLSBinary__Group_1_2__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_2__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_2__0" + + + // $ANTLR start "rule__VLSBinary__Group_1_2__0__Impl" + // InternalVampireLanguage.g:2983:1: rule__VLSBinary__Group_1_2__0__Impl : ( () ) ; + public final void rule__VLSBinary__Group_1_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:2987:1: ( ( () ) ) + // InternalVampireLanguage.g:2988:1: ( () ) + { + // InternalVampireLanguage.g:2988:1: ( () ) + // InternalVampireLanguage.g:2989:2: () + { + before(grammarAccess.getVLSBinaryAccess().getVLSOrLeftAction_1_2_0()); + // InternalVampireLanguage.g:2990:2: () + // InternalVampireLanguage.g:2990:3: + { + } + + after(grammarAccess.getVLSBinaryAccess().getVLSOrLeftAction_1_2_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_2__0__Impl" + + + // $ANTLR start "rule__VLSBinary__Group_1_2__1" + // InternalVampireLanguage.g:2998:1: rule__VLSBinary__Group_1_2__1 : rule__VLSBinary__Group_1_2__1__Impl rule__VLSBinary__Group_1_2__2 ; + public final void rule__VLSBinary__Group_1_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3002:1: ( rule__VLSBinary__Group_1_2__1__Impl rule__VLSBinary__Group_1_2__2 ) + // InternalVampireLanguage.g:3003:2: rule__VLSBinary__Group_1_2__1__Impl rule__VLSBinary__Group_1_2__2 + { + pushFollow(FOLLOW_15); + rule__VLSBinary__Group_1_2__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_2__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_2__1" + + + // $ANTLR start "rule__VLSBinary__Group_1_2__1__Impl" + // InternalVampireLanguage.g:3010:1: rule__VLSBinary__Group_1_2__1__Impl : ( '|' ) ; + public final void rule__VLSBinary__Group_1_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3014:1: ( ( '|' ) ) + // InternalVampireLanguage.g:3015:1: ( '|' ) + { + // InternalVampireLanguage.g:3015:1: ( '|' ) + // InternalVampireLanguage.g:3016:2: '|' + { + before(grammarAccess.getVLSBinaryAccess().getVerticalLineKeyword_1_2_1()); + match(input,58,FOLLOW_2); + after(grammarAccess.getVLSBinaryAccess().getVerticalLineKeyword_1_2_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_2__1__Impl" + + + // $ANTLR start "rule__VLSBinary__Group_1_2__2" + // InternalVampireLanguage.g:3025:1: rule__VLSBinary__Group_1_2__2 : rule__VLSBinary__Group_1_2__2__Impl ; + public final void rule__VLSBinary__Group_1_2__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3029:1: ( rule__VLSBinary__Group_1_2__2__Impl ) + // InternalVampireLanguage.g:3030:2: rule__VLSBinary__Group_1_2__2__Impl + { + pushFollow(FOLLOW_2); + rule__VLSBinary__Group_1_2__2__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_2__2" + + + // $ANTLR start "rule__VLSBinary__Group_1_2__2__Impl" + // InternalVampireLanguage.g:3036:1: rule__VLSBinary__Group_1_2__2__Impl : ( ( rule__VLSBinary__RightAssignment_1_2_2 ) ) ; + public final void rule__VLSBinary__Group_1_2__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3040:1: ( ( ( rule__VLSBinary__RightAssignment_1_2_2 ) ) ) + // InternalVampireLanguage.g:3041:1: ( ( rule__VLSBinary__RightAssignment_1_2_2 ) ) + { + // InternalVampireLanguage.g:3041:1: ( ( rule__VLSBinary__RightAssignment_1_2_2 ) ) + // InternalVampireLanguage.g:3042:2: ( rule__VLSBinary__RightAssignment_1_2_2 ) + { + before(grammarAccess.getVLSBinaryAccess().getRightAssignment_1_2_2()); + // InternalVampireLanguage.g:3043:2: ( rule__VLSBinary__RightAssignment_1_2_2 ) + // InternalVampireLanguage.g:3043:3: rule__VLSBinary__RightAssignment_1_2_2 + { + pushFollow(FOLLOW_2); + rule__VLSBinary__RightAssignment_1_2_2(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSBinaryAccess().getRightAssignment_1_2_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__Group_1_2__2__Impl" + + + // $ANTLR start "rule__VLSUnitaryFormula__Group_4__0" + // InternalVampireLanguage.g:3052:1: rule__VLSUnitaryFormula__Group_4__0 : rule__VLSUnitaryFormula__Group_4__0__Impl rule__VLSUnitaryFormula__Group_4__1 ; + public final void rule__VLSUnitaryFormula__Group_4__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3056:1: ( rule__VLSUnitaryFormula__Group_4__0__Impl rule__VLSUnitaryFormula__Group_4__1 ) + // InternalVampireLanguage.g:3057:2: rule__VLSUnitaryFormula__Group_4__0__Impl rule__VLSUnitaryFormula__Group_4__1 + { + pushFollow(FOLLOW_15); + rule__VLSUnitaryFormula__Group_4__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSUnitaryFormula__Group_4__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnitaryFormula__Group_4__0" + + + // $ANTLR start "rule__VLSUnitaryFormula__Group_4__0__Impl" + // InternalVampireLanguage.g:3064:1: rule__VLSUnitaryFormula__Group_4__0__Impl : ( '(' ) ; + public final void rule__VLSUnitaryFormula__Group_4__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3068:1: ( ( '(' ) ) + // InternalVampireLanguage.g:3069:1: ( '(' ) + { + // InternalVampireLanguage.g:3069:1: ( '(' ) + // InternalVampireLanguage.g:3070:2: '(' + { + before(grammarAccess.getVLSUnitaryFormulaAccess().getLeftParenthesisKeyword_4_0()); + match(input,47,FOLLOW_2); + after(grammarAccess.getVLSUnitaryFormulaAccess().getLeftParenthesisKeyword_4_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnitaryFormula__Group_4__0__Impl" + + + // $ANTLR start "rule__VLSUnitaryFormula__Group_4__1" + // InternalVampireLanguage.g:3079:1: rule__VLSUnitaryFormula__Group_4__1 : rule__VLSUnitaryFormula__Group_4__1__Impl rule__VLSUnitaryFormula__Group_4__2 ; + public final void rule__VLSUnitaryFormula__Group_4__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3083:1: ( rule__VLSUnitaryFormula__Group_4__1__Impl rule__VLSUnitaryFormula__Group_4__2 ) + // InternalVampireLanguage.g:3084:2: rule__VLSUnitaryFormula__Group_4__1__Impl rule__VLSUnitaryFormula__Group_4__2 + { + pushFollow(FOLLOW_19); + rule__VLSUnitaryFormula__Group_4__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSUnitaryFormula__Group_4__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnitaryFormula__Group_4__1" + + + // $ANTLR start "rule__VLSUnitaryFormula__Group_4__1__Impl" + // InternalVampireLanguage.g:3091:1: rule__VLSUnitaryFormula__Group_4__1__Impl : ( ruleVLSTerm ) ; + public final void rule__VLSUnitaryFormula__Group_4__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3095:1: ( ( ruleVLSTerm ) ) + // InternalVampireLanguage.g:3096:1: ( ruleVLSTerm ) + { + // InternalVampireLanguage.g:3096:1: ( ruleVLSTerm ) + // InternalVampireLanguage.g:3097:2: ruleVLSTerm + { + before(grammarAccess.getVLSUnitaryFormulaAccess().getVLSTermParserRuleCall_4_1()); + pushFollow(FOLLOW_2); + ruleVLSTerm(); + + state._fsp--; + + after(grammarAccess.getVLSUnitaryFormulaAccess().getVLSTermParserRuleCall_4_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnitaryFormula__Group_4__1__Impl" + + + // $ANTLR start "rule__VLSUnitaryFormula__Group_4__2" + // InternalVampireLanguage.g:3106:1: rule__VLSUnitaryFormula__Group_4__2 : rule__VLSUnitaryFormula__Group_4__2__Impl ; + public final void rule__VLSUnitaryFormula__Group_4__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3110:1: ( rule__VLSUnitaryFormula__Group_4__2__Impl ) + // InternalVampireLanguage.g:3111:2: rule__VLSUnitaryFormula__Group_4__2__Impl + { + pushFollow(FOLLOW_2); + rule__VLSUnitaryFormula__Group_4__2__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnitaryFormula__Group_4__2" + + + // $ANTLR start "rule__VLSUnitaryFormula__Group_4__2__Impl" + // InternalVampireLanguage.g:3117:1: rule__VLSUnitaryFormula__Group_4__2__Impl : ( ')' ) ; + public final void rule__VLSUnitaryFormula__Group_4__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3121:1: ( ( ')' ) ) + // InternalVampireLanguage.g:3122:1: ( ')' ) + { + // InternalVampireLanguage.g:3122:1: ( ')' ) + // InternalVampireLanguage.g:3123:2: ')' + { + before(grammarAccess.getVLSUnitaryFormulaAccess().getRightParenthesisKeyword_4_2()); + match(input,48,FOLLOW_2); + after(grammarAccess.getVLSUnitaryFormulaAccess().getRightParenthesisKeyword_4_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnitaryFormula__Group_4__2__Impl" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group__0" + // InternalVampireLanguage.g:3133:1: rule__VLSUniversalQuantifier__Group__0 : rule__VLSUniversalQuantifier__Group__0__Impl rule__VLSUniversalQuantifier__Group__1 ; + public final void rule__VLSUniversalQuantifier__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3137:1: ( rule__VLSUniversalQuantifier__Group__0__Impl rule__VLSUniversalQuantifier__Group__1 ) + // InternalVampireLanguage.g:3138:2: rule__VLSUniversalQuantifier__Group__0__Impl rule__VLSUniversalQuantifier__Group__1 + { + pushFollow(FOLLOW_29); + rule__VLSUniversalQuantifier__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSUniversalQuantifier__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group__0" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group__0__Impl" + // InternalVampireLanguage.g:3145:1: rule__VLSUniversalQuantifier__Group__0__Impl : ( () ) ; + public final void rule__VLSUniversalQuantifier__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3149:1: ( ( () ) ) + // InternalVampireLanguage.g:3150:1: ( () ) + { + // InternalVampireLanguage.g:3150:1: ( () ) + // InternalVampireLanguage.g:3151:2: () + { + before(grammarAccess.getVLSUniversalQuantifierAccess().getVLSUniversalQuantifierAction_0()); + // InternalVampireLanguage.g:3152:2: () + // InternalVampireLanguage.g:3152:3: + { + } + + after(grammarAccess.getVLSUniversalQuantifierAccess().getVLSUniversalQuantifierAction_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group__0__Impl" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group__1" + // InternalVampireLanguage.g:3160:1: rule__VLSUniversalQuantifier__Group__1 : rule__VLSUniversalQuantifier__Group__1__Impl rule__VLSUniversalQuantifier__Group__2 ; + public final void rule__VLSUniversalQuantifier__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3164:1: ( rule__VLSUniversalQuantifier__Group__1__Impl rule__VLSUniversalQuantifier__Group__2 ) + // InternalVampireLanguage.g:3165:2: rule__VLSUniversalQuantifier__Group__1__Impl rule__VLSUniversalQuantifier__Group__2 + { + pushFollow(FOLLOW_15); + rule__VLSUniversalQuantifier__Group__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSUniversalQuantifier__Group__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group__1" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group__1__Impl" + // InternalVampireLanguage.g:3172:1: rule__VLSUniversalQuantifier__Group__1__Impl : ( ( rule__VLSUniversalQuantifier__Group_1__0 ) ) ; + public final void rule__VLSUniversalQuantifier__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3176:1: ( ( ( rule__VLSUniversalQuantifier__Group_1__0 ) ) ) + // InternalVampireLanguage.g:3177:1: ( ( rule__VLSUniversalQuantifier__Group_1__0 ) ) + { + // InternalVampireLanguage.g:3177:1: ( ( rule__VLSUniversalQuantifier__Group_1__0 ) ) + // InternalVampireLanguage.g:3178:2: ( rule__VLSUniversalQuantifier__Group_1__0 ) + { + before(grammarAccess.getVLSUniversalQuantifierAccess().getGroup_1()); + // InternalVampireLanguage.g:3179:2: ( rule__VLSUniversalQuantifier__Group_1__0 ) + // InternalVampireLanguage.g:3179:3: rule__VLSUniversalQuantifier__Group_1__0 + { + pushFollow(FOLLOW_2); + rule__VLSUniversalQuantifier__Group_1__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSUniversalQuantifierAccess().getGroup_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group__1__Impl" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group__2" + // InternalVampireLanguage.g:3187:1: rule__VLSUniversalQuantifier__Group__2 : rule__VLSUniversalQuantifier__Group__2__Impl ; + public final void rule__VLSUniversalQuantifier__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3191:1: ( rule__VLSUniversalQuantifier__Group__2__Impl ) + // InternalVampireLanguage.g:3192:2: rule__VLSUniversalQuantifier__Group__2__Impl + { + pushFollow(FOLLOW_2); + rule__VLSUniversalQuantifier__Group__2__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group__2" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group__2__Impl" + // InternalVampireLanguage.g:3198:1: rule__VLSUniversalQuantifier__Group__2__Impl : ( ( rule__VLSUniversalQuantifier__OperandAssignment_2 ) ) ; + public final void rule__VLSUniversalQuantifier__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3202:1: ( ( ( rule__VLSUniversalQuantifier__OperandAssignment_2 ) ) ) + // InternalVampireLanguage.g:3203:1: ( ( rule__VLSUniversalQuantifier__OperandAssignment_2 ) ) + { + // InternalVampireLanguage.g:3203:1: ( ( rule__VLSUniversalQuantifier__OperandAssignment_2 ) ) + // InternalVampireLanguage.g:3204:2: ( rule__VLSUniversalQuantifier__OperandAssignment_2 ) + { + before(grammarAccess.getVLSUniversalQuantifierAccess().getOperandAssignment_2()); + // InternalVampireLanguage.g:3205:2: ( rule__VLSUniversalQuantifier__OperandAssignment_2 ) + // InternalVampireLanguage.g:3205:3: rule__VLSUniversalQuantifier__OperandAssignment_2 + { + pushFollow(FOLLOW_2); + rule__VLSUniversalQuantifier__OperandAssignment_2(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSUniversalQuantifierAccess().getOperandAssignment_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group__2__Impl" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group_1__0" + // InternalVampireLanguage.g:3214:1: rule__VLSUniversalQuantifier__Group_1__0 : rule__VLSUniversalQuantifier__Group_1__0__Impl rule__VLSUniversalQuantifier__Group_1__1 ; + public final void rule__VLSUniversalQuantifier__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3218:1: ( rule__VLSUniversalQuantifier__Group_1__0__Impl rule__VLSUniversalQuantifier__Group_1__1 ) + // InternalVampireLanguage.g:3219:2: rule__VLSUniversalQuantifier__Group_1__0__Impl rule__VLSUniversalQuantifier__Group_1__1 + { + pushFollow(FOLLOW_30); + rule__VLSUniversalQuantifier__Group_1__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSUniversalQuantifier__Group_1__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group_1__0" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group_1__0__Impl" + // InternalVampireLanguage.g:3226:1: rule__VLSUniversalQuantifier__Group_1__0__Impl : ( '!' ) ; + public final void rule__VLSUniversalQuantifier__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3230:1: ( ( '!' ) ) + // InternalVampireLanguage.g:3231:1: ( '!' ) + { + // InternalVampireLanguage.g:3231:1: ( '!' ) + // InternalVampireLanguage.g:3232:2: '!' + { + before(grammarAccess.getVLSUniversalQuantifierAccess().getExclamationMarkKeyword_1_0()); + match(input,59,FOLLOW_2); + after(grammarAccess.getVLSUniversalQuantifierAccess().getExclamationMarkKeyword_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group_1__0__Impl" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group_1__1" + // InternalVampireLanguage.g:3241:1: rule__VLSUniversalQuantifier__Group_1__1 : rule__VLSUniversalQuantifier__Group_1__1__Impl rule__VLSUniversalQuantifier__Group_1__2 ; + public final void rule__VLSUniversalQuantifier__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3245:1: ( rule__VLSUniversalQuantifier__Group_1__1__Impl rule__VLSUniversalQuantifier__Group_1__2 ) + // InternalVampireLanguage.g:3246:2: rule__VLSUniversalQuantifier__Group_1__1__Impl rule__VLSUniversalQuantifier__Group_1__2 + { + pushFollow(FOLLOW_31); + rule__VLSUniversalQuantifier__Group_1__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSUniversalQuantifier__Group_1__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group_1__1" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group_1__1__Impl" + // InternalVampireLanguage.g:3253:1: rule__VLSUniversalQuantifier__Group_1__1__Impl : ( '[' ) ; + public final void rule__VLSUniversalQuantifier__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3257:1: ( ( '[' ) ) + // InternalVampireLanguage.g:3258:1: ( '[' ) + { + // InternalVampireLanguage.g:3258:1: ( '[' ) + // InternalVampireLanguage.g:3259:2: '[' + { + before(grammarAccess.getVLSUniversalQuantifierAccess().getLeftSquareBracketKeyword_1_1()); + match(input,50,FOLLOW_2); + after(grammarAccess.getVLSUniversalQuantifierAccess().getLeftSquareBracketKeyword_1_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group_1__1__Impl" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group_1__2" + // InternalVampireLanguage.g:3268:1: rule__VLSUniversalQuantifier__Group_1__2 : rule__VLSUniversalQuantifier__Group_1__2__Impl rule__VLSUniversalQuantifier__Group_1__3 ; + public final void rule__VLSUniversalQuantifier__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3272:1: ( rule__VLSUniversalQuantifier__Group_1__2__Impl rule__VLSUniversalQuantifier__Group_1__3 ) + // InternalVampireLanguage.g:3273:2: rule__VLSUniversalQuantifier__Group_1__2__Impl rule__VLSUniversalQuantifier__Group_1__3 + { + pushFollow(FOLLOW_9); + rule__VLSUniversalQuantifier__Group_1__2__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSUniversalQuantifier__Group_1__3(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group_1__2" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group_1__2__Impl" + // InternalVampireLanguage.g:3280:1: rule__VLSUniversalQuantifier__Group_1__2__Impl : ( ( rule__VLSUniversalQuantifier__VariablesAssignment_1_2 ) ) ; + public final void rule__VLSUniversalQuantifier__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3284:1: ( ( ( rule__VLSUniversalQuantifier__VariablesAssignment_1_2 ) ) ) + // InternalVampireLanguage.g:3285:1: ( ( rule__VLSUniversalQuantifier__VariablesAssignment_1_2 ) ) + { + // InternalVampireLanguage.g:3285:1: ( ( rule__VLSUniversalQuantifier__VariablesAssignment_1_2 ) ) + // InternalVampireLanguage.g:3286:2: ( rule__VLSUniversalQuantifier__VariablesAssignment_1_2 ) + { + before(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesAssignment_1_2()); + // InternalVampireLanguage.g:3287:2: ( rule__VLSUniversalQuantifier__VariablesAssignment_1_2 ) + // InternalVampireLanguage.g:3287:3: rule__VLSUniversalQuantifier__VariablesAssignment_1_2 + { + pushFollow(FOLLOW_2); + rule__VLSUniversalQuantifier__VariablesAssignment_1_2(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesAssignment_1_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group_1__2__Impl" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group_1__3" + // InternalVampireLanguage.g:3295:1: rule__VLSUniversalQuantifier__Group_1__3 : rule__VLSUniversalQuantifier__Group_1__3__Impl rule__VLSUniversalQuantifier__Group_1__4 ; + public final void rule__VLSUniversalQuantifier__Group_1__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3299:1: ( rule__VLSUniversalQuantifier__Group_1__3__Impl rule__VLSUniversalQuantifier__Group_1__4 ) + // InternalVampireLanguage.g:3300:2: rule__VLSUniversalQuantifier__Group_1__3__Impl rule__VLSUniversalQuantifier__Group_1__4 + { + pushFollow(FOLLOW_9); + rule__VLSUniversalQuantifier__Group_1__3__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSUniversalQuantifier__Group_1__4(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group_1__3" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group_1__3__Impl" + // InternalVampireLanguage.g:3307:1: rule__VLSUniversalQuantifier__Group_1__3__Impl : ( ( rule__VLSUniversalQuantifier__Group_1_3__0 )* ) ; + public final void rule__VLSUniversalQuantifier__Group_1__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3311:1: ( ( ( rule__VLSUniversalQuantifier__Group_1_3__0 )* ) ) + // InternalVampireLanguage.g:3312:1: ( ( rule__VLSUniversalQuantifier__Group_1_3__0 )* ) + { + // InternalVampireLanguage.g:3312:1: ( ( rule__VLSUniversalQuantifier__Group_1_3__0 )* ) + // InternalVampireLanguage.g:3313:2: ( rule__VLSUniversalQuantifier__Group_1_3__0 )* + { + before(grammarAccess.getVLSUniversalQuantifierAccess().getGroup_1_3()); + // InternalVampireLanguage.g:3314:2: ( rule__VLSUniversalQuantifier__Group_1_3__0 )* + loop30: + do { + int alt30=2; + int LA30_0 = input.LA(1); + + if ( (LA30_0==45) ) { + alt30=1; + } + + + switch (alt30) { + case 1 : + // InternalVampireLanguage.g:3314:3: rule__VLSUniversalQuantifier__Group_1_3__0 + { + pushFollow(FOLLOW_10); + rule__VLSUniversalQuantifier__Group_1_3__0(); + + state._fsp--; + + + } + break; + + default : + break loop30; + } + } while (true); + + after(grammarAccess.getVLSUniversalQuantifierAccess().getGroup_1_3()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group_1__3__Impl" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group_1__4" + // InternalVampireLanguage.g:3322:1: rule__VLSUniversalQuantifier__Group_1__4 : rule__VLSUniversalQuantifier__Group_1__4__Impl rule__VLSUniversalQuantifier__Group_1__5 ; + public final void rule__VLSUniversalQuantifier__Group_1__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3326:1: ( rule__VLSUniversalQuantifier__Group_1__4__Impl rule__VLSUniversalQuantifier__Group_1__5 ) + // InternalVampireLanguage.g:3327:2: rule__VLSUniversalQuantifier__Group_1__4__Impl rule__VLSUniversalQuantifier__Group_1__5 + { + pushFollow(FOLLOW_32); + rule__VLSUniversalQuantifier__Group_1__4__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSUniversalQuantifier__Group_1__5(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group_1__4" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group_1__4__Impl" + // InternalVampireLanguage.g:3334:1: rule__VLSUniversalQuantifier__Group_1__4__Impl : ( ']' ) ; + public final void rule__VLSUniversalQuantifier__Group_1__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3338:1: ( ( ']' ) ) + // InternalVampireLanguage.g:3339:1: ( ']' ) + { + // InternalVampireLanguage.g:3339:1: ( ']' ) + // InternalVampireLanguage.g:3340:2: ']' + { + before(grammarAccess.getVLSUniversalQuantifierAccess().getRightSquareBracketKeyword_1_4()); + match(input,44,FOLLOW_2); + after(grammarAccess.getVLSUniversalQuantifierAccess().getRightSquareBracketKeyword_1_4()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group_1__4__Impl" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group_1__5" + // InternalVampireLanguage.g:3349:1: rule__VLSUniversalQuantifier__Group_1__5 : rule__VLSUniversalQuantifier__Group_1__5__Impl ; + public final void rule__VLSUniversalQuantifier__Group_1__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3353:1: ( rule__VLSUniversalQuantifier__Group_1__5__Impl ) + // InternalVampireLanguage.g:3354:2: rule__VLSUniversalQuantifier__Group_1__5__Impl + { + pushFollow(FOLLOW_2); + rule__VLSUniversalQuantifier__Group_1__5__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group_1__5" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group_1__5__Impl" + // InternalVampireLanguage.g:3360:1: rule__VLSUniversalQuantifier__Group_1__5__Impl : ( ':' ) ; + public final void rule__VLSUniversalQuantifier__Group_1__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3364:1: ( ( ':' ) ) + // InternalVampireLanguage.g:3365:1: ( ':' ) + { + // InternalVampireLanguage.g:3365:1: ( ':' ) + // InternalVampireLanguage.g:3366:2: ':' + { + before(grammarAccess.getVLSUniversalQuantifierAccess().getColonKeyword_1_5()); + match(input,60,FOLLOW_2); + after(grammarAccess.getVLSUniversalQuantifierAccess().getColonKeyword_1_5()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group_1__5__Impl" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group_1_3__0" + // InternalVampireLanguage.g:3376:1: rule__VLSUniversalQuantifier__Group_1_3__0 : rule__VLSUniversalQuantifier__Group_1_3__0__Impl rule__VLSUniversalQuantifier__Group_1_3__1 ; + public final void rule__VLSUniversalQuantifier__Group_1_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3380:1: ( rule__VLSUniversalQuantifier__Group_1_3__0__Impl rule__VLSUniversalQuantifier__Group_1_3__1 ) + // InternalVampireLanguage.g:3381:2: rule__VLSUniversalQuantifier__Group_1_3__0__Impl rule__VLSUniversalQuantifier__Group_1_3__1 + { + pushFollow(FOLLOW_31); + rule__VLSUniversalQuantifier__Group_1_3__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSUniversalQuantifier__Group_1_3__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group_1_3__0" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group_1_3__0__Impl" + // InternalVampireLanguage.g:3388:1: rule__VLSUniversalQuantifier__Group_1_3__0__Impl : ( ',' ) ; + public final void rule__VLSUniversalQuantifier__Group_1_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3392:1: ( ( ',' ) ) + // InternalVampireLanguage.g:3393:1: ( ',' ) + { + // InternalVampireLanguage.g:3393:1: ( ',' ) + // InternalVampireLanguage.g:3394:2: ',' + { + before(grammarAccess.getVLSUniversalQuantifierAccess().getCommaKeyword_1_3_0()); + match(input,45,FOLLOW_2); + after(grammarAccess.getVLSUniversalQuantifierAccess().getCommaKeyword_1_3_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group_1_3__0__Impl" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group_1_3__1" + // InternalVampireLanguage.g:3403:1: rule__VLSUniversalQuantifier__Group_1_3__1 : rule__VLSUniversalQuantifier__Group_1_3__1__Impl ; + public final void rule__VLSUniversalQuantifier__Group_1_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3407:1: ( rule__VLSUniversalQuantifier__Group_1_3__1__Impl ) + // InternalVampireLanguage.g:3408:2: rule__VLSUniversalQuantifier__Group_1_3__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSUniversalQuantifier__Group_1_3__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group_1_3__1" + + + // $ANTLR start "rule__VLSUniversalQuantifier__Group_1_3__1__Impl" + // InternalVampireLanguage.g:3414:1: rule__VLSUniversalQuantifier__Group_1_3__1__Impl : ( ( rule__VLSUniversalQuantifier__VariablesAssignment_1_3_1 ) ) ; + public final void rule__VLSUniversalQuantifier__Group_1_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3418:1: ( ( ( rule__VLSUniversalQuantifier__VariablesAssignment_1_3_1 ) ) ) + // InternalVampireLanguage.g:3419:1: ( ( rule__VLSUniversalQuantifier__VariablesAssignment_1_3_1 ) ) + { + // InternalVampireLanguage.g:3419:1: ( ( rule__VLSUniversalQuantifier__VariablesAssignment_1_3_1 ) ) + // InternalVampireLanguage.g:3420:2: ( rule__VLSUniversalQuantifier__VariablesAssignment_1_3_1 ) + { + before(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesAssignment_1_3_1()); + // InternalVampireLanguage.g:3421:2: ( rule__VLSUniversalQuantifier__VariablesAssignment_1_3_1 ) + // InternalVampireLanguage.g:3421:3: rule__VLSUniversalQuantifier__VariablesAssignment_1_3_1 + { + pushFollow(FOLLOW_2); + rule__VLSUniversalQuantifier__VariablesAssignment_1_3_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesAssignment_1_3_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__Group_1_3__1__Impl" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group__0" + // InternalVampireLanguage.g:3430:1: rule__VLSExistentialQuantifier__Group__0 : rule__VLSExistentialQuantifier__Group__0__Impl rule__VLSExistentialQuantifier__Group__1 ; + public final void rule__VLSExistentialQuantifier__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3434:1: ( rule__VLSExistentialQuantifier__Group__0__Impl rule__VLSExistentialQuantifier__Group__1 ) + // InternalVampireLanguage.g:3435:2: rule__VLSExistentialQuantifier__Group__0__Impl rule__VLSExistentialQuantifier__Group__1 + { + pushFollow(FOLLOW_33); + rule__VLSExistentialQuantifier__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSExistentialQuantifier__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group__0" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group__0__Impl" + // InternalVampireLanguage.g:3442:1: rule__VLSExistentialQuantifier__Group__0__Impl : ( () ) ; + public final void rule__VLSExistentialQuantifier__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3446:1: ( ( () ) ) + // InternalVampireLanguage.g:3447:1: ( () ) + { + // InternalVampireLanguage.g:3447:1: ( () ) + // InternalVampireLanguage.g:3448:2: () + { + before(grammarAccess.getVLSExistentialQuantifierAccess().getVLSExistentialQuantifierAction_0()); + // InternalVampireLanguage.g:3449:2: () + // InternalVampireLanguage.g:3449:3: + { + } + + after(grammarAccess.getVLSExistentialQuantifierAccess().getVLSExistentialQuantifierAction_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group__0__Impl" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group__1" + // InternalVampireLanguage.g:3457:1: rule__VLSExistentialQuantifier__Group__1 : rule__VLSExistentialQuantifier__Group__1__Impl rule__VLSExistentialQuantifier__Group__2 ; + public final void rule__VLSExistentialQuantifier__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3461:1: ( rule__VLSExistentialQuantifier__Group__1__Impl rule__VLSExistentialQuantifier__Group__2 ) + // InternalVampireLanguage.g:3462:2: rule__VLSExistentialQuantifier__Group__1__Impl rule__VLSExistentialQuantifier__Group__2 + { + pushFollow(FOLLOW_15); + rule__VLSExistentialQuantifier__Group__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSExistentialQuantifier__Group__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group__1" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group__1__Impl" + // InternalVampireLanguage.g:3469:1: rule__VLSExistentialQuantifier__Group__1__Impl : ( ( rule__VLSExistentialQuantifier__Group_1__0 ) ) ; + public final void rule__VLSExistentialQuantifier__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3473:1: ( ( ( rule__VLSExistentialQuantifier__Group_1__0 ) ) ) + // InternalVampireLanguage.g:3474:1: ( ( rule__VLSExistentialQuantifier__Group_1__0 ) ) + { + // InternalVampireLanguage.g:3474:1: ( ( rule__VLSExistentialQuantifier__Group_1__0 ) ) + // InternalVampireLanguage.g:3475:2: ( rule__VLSExistentialQuantifier__Group_1__0 ) + { + before(grammarAccess.getVLSExistentialQuantifierAccess().getGroup_1()); + // InternalVampireLanguage.g:3476:2: ( rule__VLSExistentialQuantifier__Group_1__0 ) + // InternalVampireLanguage.g:3476:3: rule__VLSExistentialQuantifier__Group_1__0 + { + pushFollow(FOLLOW_2); + rule__VLSExistentialQuantifier__Group_1__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSExistentialQuantifierAccess().getGroup_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group__1__Impl" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group__2" + // InternalVampireLanguage.g:3484:1: rule__VLSExistentialQuantifier__Group__2 : rule__VLSExistentialQuantifier__Group__2__Impl ; + public final void rule__VLSExistentialQuantifier__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3488:1: ( rule__VLSExistentialQuantifier__Group__2__Impl ) + // InternalVampireLanguage.g:3489:2: rule__VLSExistentialQuantifier__Group__2__Impl + { + pushFollow(FOLLOW_2); + rule__VLSExistentialQuantifier__Group__2__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group__2" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group__2__Impl" + // InternalVampireLanguage.g:3495:1: rule__VLSExistentialQuantifier__Group__2__Impl : ( ( rule__VLSExistentialQuantifier__OperandAssignment_2 ) ) ; + public final void rule__VLSExistentialQuantifier__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3499:1: ( ( ( rule__VLSExistentialQuantifier__OperandAssignment_2 ) ) ) + // InternalVampireLanguage.g:3500:1: ( ( rule__VLSExistentialQuantifier__OperandAssignment_2 ) ) + { + // InternalVampireLanguage.g:3500:1: ( ( rule__VLSExistentialQuantifier__OperandAssignment_2 ) ) + // InternalVampireLanguage.g:3501:2: ( rule__VLSExistentialQuantifier__OperandAssignment_2 ) + { + before(grammarAccess.getVLSExistentialQuantifierAccess().getOperandAssignment_2()); + // InternalVampireLanguage.g:3502:2: ( rule__VLSExistentialQuantifier__OperandAssignment_2 ) + // InternalVampireLanguage.g:3502:3: rule__VLSExistentialQuantifier__OperandAssignment_2 + { + pushFollow(FOLLOW_2); + rule__VLSExistentialQuantifier__OperandAssignment_2(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSExistentialQuantifierAccess().getOperandAssignment_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group__2__Impl" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group_1__0" + // InternalVampireLanguage.g:3511:1: rule__VLSExistentialQuantifier__Group_1__0 : rule__VLSExistentialQuantifier__Group_1__0__Impl rule__VLSExistentialQuantifier__Group_1__1 ; + public final void rule__VLSExistentialQuantifier__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3515:1: ( rule__VLSExistentialQuantifier__Group_1__0__Impl rule__VLSExistentialQuantifier__Group_1__1 ) + // InternalVampireLanguage.g:3516:2: rule__VLSExistentialQuantifier__Group_1__0__Impl rule__VLSExistentialQuantifier__Group_1__1 + { + pushFollow(FOLLOW_30); + rule__VLSExistentialQuantifier__Group_1__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSExistentialQuantifier__Group_1__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group_1__0" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group_1__0__Impl" + // InternalVampireLanguage.g:3523:1: rule__VLSExistentialQuantifier__Group_1__0__Impl : ( '?' ) ; + public final void rule__VLSExistentialQuantifier__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3527:1: ( ( '?' ) ) + // InternalVampireLanguage.g:3528:1: ( '?' ) + { + // InternalVampireLanguage.g:3528:1: ( '?' ) + // InternalVampireLanguage.g:3529:2: '?' + { + before(grammarAccess.getVLSExistentialQuantifierAccess().getQuestionMarkKeyword_1_0()); + match(input,61,FOLLOW_2); + after(grammarAccess.getVLSExistentialQuantifierAccess().getQuestionMarkKeyword_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group_1__0__Impl" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group_1__1" + // InternalVampireLanguage.g:3538:1: rule__VLSExistentialQuantifier__Group_1__1 : rule__VLSExistentialQuantifier__Group_1__1__Impl rule__VLSExistentialQuantifier__Group_1__2 ; + public final void rule__VLSExistentialQuantifier__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3542:1: ( rule__VLSExistentialQuantifier__Group_1__1__Impl rule__VLSExistentialQuantifier__Group_1__2 ) + // InternalVampireLanguage.g:3543:2: rule__VLSExistentialQuantifier__Group_1__1__Impl rule__VLSExistentialQuantifier__Group_1__2 + { + pushFollow(FOLLOW_31); + rule__VLSExistentialQuantifier__Group_1__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSExistentialQuantifier__Group_1__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group_1__1" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group_1__1__Impl" + // InternalVampireLanguage.g:3550:1: rule__VLSExistentialQuantifier__Group_1__1__Impl : ( '[' ) ; + public final void rule__VLSExistentialQuantifier__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3554:1: ( ( '[' ) ) + // InternalVampireLanguage.g:3555:1: ( '[' ) + { + // InternalVampireLanguage.g:3555:1: ( '[' ) + // InternalVampireLanguage.g:3556:2: '[' + { + before(grammarAccess.getVLSExistentialQuantifierAccess().getLeftSquareBracketKeyword_1_1()); + match(input,50,FOLLOW_2); + after(grammarAccess.getVLSExistentialQuantifierAccess().getLeftSquareBracketKeyword_1_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group_1__1__Impl" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group_1__2" + // InternalVampireLanguage.g:3565:1: rule__VLSExistentialQuantifier__Group_1__2 : rule__VLSExistentialQuantifier__Group_1__2__Impl rule__VLSExistentialQuantifier__Group_1__3 ; + public final void rule__VLSExistentialQuantifier__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3569:1: ( rule__VLSExistentialQuantifier__Group_1__2__Impl rule__VLSExistentialQuantifier__Group_1__3 ) + // InternalVampireLanguage.g:3570:2: rule__VLSExistentialQuantifier__Group_1__2__Impl rule__VLSExistentialQuantifier__Group_1__3 + { + pushFollow(FOLLOW_9); + rule__VLSExistentialQuantifier__Group_1__2__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSExistentialQuantifier__Group_1__3(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group_1__2" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group_1__2__Impl" + // InternalVampireLanguage.g:3577:1: rule__VLSExistentialQuantifier__Group_1__2__Impl : ( ( rule__VLSExistentialQuantifier__VariablesAssignment_1_2 ) ) ; + public final void rule__VLSExistentialQuantifier__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3581:1: ( ( ( rule__VLSExistentialQuantifier__VariablesAssignment_1_2 ) ) ) + // InternalVampireLanguage.g:3582:1: ( ( rule__VLSExistentialQuantifier__VariablesAssignment_1_2 ) ) + { + // InternalVampireLanguage.g:3582:1: ( ( rule__VLSExistentialQuantifier__VariablesAssignment_1_2 ) ) + // InternalVampireLanguage.g:3583:2: ( rule__VLSExistentialQuantifier__VariablesAssignment_1_2 ) + { + before(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesAssignment_1_2()); + // InternalVampireLanguage.g:3584:2: ( rule__VLSExistentialQuantifier__VariablesAssignment_1_2 ) + // InternalVampireLanguage.g:3584:3: rule__VLSExistentialQuantifier__VariablesAssignment_1_2 + { + pushFollow(FOLLOW_2); + rule__VLSExistentialQuantifier__VariablesAssignment_1_2(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesAssignment_1_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group_1__2__Impl" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group_1__3" + // InternalVampireLanguage.g:3592:1: rule__VLSExistentialQuantifier__Group_1__3 : rule__VLSExistentialQuantifier__Group_1__3__Impl rule__VLSExistentialQuantifier__Group_1__4 ; + public final void rule__VLSExistentialQuantifier__Group_1__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3596:1: ( rule__VLSExistentialQuantifier__Group_1__3__Impl rule__VLSExistentialQuantifier__Group_1__4 ) + // InternalVampireLanguage.g:3597:2: rule__VLSExistentialQuantifier__Group_1__3__Impl rule__VLSExistentialQuantifier__Group_1__4 + { + pushFollow(FOLLOW_9); + rule__VLSExistentialQuantifier__Group_1__3__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSExistentialQuantifier__Group_1__4(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group_1__3" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group_1__3__Impl" + // InternalVampireLanguage.g:3604:1: rule__VLSExistentialQuantifier__Group_1__3__Impl : ( ( rule__VLSExistentialQuantifier__Group_1_3__0 )* ) ; + public final void rule__VLSExistentialQuantifier__Group_1__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3608:1: ( ( ( rule__VLSExistentialQuantifier__Group_1_3__0 )* ) ) + // InternalVampireLanguage.g:3609:1: ( ( rule__VLSExistentialQuantifier__Group_1_3__0 )* ) + { + // InternalVampireLanguage.g:3609:1: ( ( rule__VLSExistentialQuantifier__Group_1_3__0 )* ) + // InternalVampireLanguage.g:3610:2: ( rule__VLSExistentialQuantifier__Group_1_3__0 )* + { + before(grammarAccess.getVLSExistentialQuantifierAccess().getGroup_1_3()); + // InternalVampireLanguage.g:3611:2: ( rule__VLSExistentialQuantifier__Group_1_3__0 )* + loop31: + do { + int alt31=2; + int LA31_0 = input.LA(1); + + if ( (LA31_0==45) ) { + alt31=1; + } + + + switch (alt31) { + case 1 : + // InternalVampireLanguage.g:3611:3: rule__VLSExistentialQuantifier__Group_1_3__0 + { + pushFollow(FOLLOW_10); + rule__VLSExistentialQuantifier__Group_1_3__0(); + + state._fsp--; + + + } + break; + + default : + break loop31; + } + } while (true); + + after(grammarAccess.getVLSExistentialQuantifierAccess().getGroup_1_3()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group_1__3__Impl" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group_1__4" + // InternalVampireLanguage.g:3619:1: rule__VLSExistentialQuantifier__Group_1__4 : rule__VLSExistentialQuantifier__Group_1__4__Impl rule__VLSExistentialQuantifier__Group_1__5 ; + public final void rule__VLSExistentialQuantifier__Group_1__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3623:1: ( rule__VLSExistentialQuantifier__Group_1__4__Impl rule__VLSExistentialQuantifier__Group_1__5 ) + // InternalVampireLanguage.g:3624:2: rule__VLSExistentialQuantifier__Group_1__4__Impl rule__VLSExistentialQuantifier__Group_1__5 + { + pushFollow(FOLLOW_32); + rule__VLSExistentialQuantifier__Group_1__4__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSExistentialQuantifier__Group_1__5(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group_1__4" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group_1__4__Impl" + // InternalVampireLanguage.g:3631:1: rule__VLSExistentialQuantifier__Group_1__4__Impl : ( ']' ) ; + public final void rule__VLSExistentialQuantifier__Group_1__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3635:1: ( ( ']' ) ) + // InternalVampireLanguage.g:3636:1: ( ']' ) + { + // InternalVampireLanguage.g:3636:1: ( ']' ) + // InternalVampireLanguage.g:3637:2: ']' + { + before(grammarAccess.getVLSExistentialQuantifierAccess().getRightSquareBracketKeyword_1_4()); + match(input,44,FOLLOW_2); + after(grammarAccess.getVLSExistentialQuantifierAccess().getRightSquareBracketKeyword_1_4()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group_1__4__Impl" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group_1__5" + // InternalVampireLanguage.g:3646:1: rule__VLSExistentialQuantifier__Group_1__5 : rule__VLSExistentialQuantifier__Group_1__5__Impl ; + public final void rule__VLSExistentialQuantifier__Group_1__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3650:1: ( rule__VLSExistentialQuantifier__Group_1__5__Impl ) + // InternalVampireLanguage.g:3651:2: rule__VLSExistentialQuantifier__Group_1__5__Impl + { + pushFollow(FOLLOW_2); + rule__VLSExistentialQuantifier__Group_1__5__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group_1__5" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group_1__5__Impl" + // InternalVampireLanguage.g:3657:1: rule__VLSExistentialQuantifier__Group_1__5__Impl : ( ':' ) ; + public final void rule__VLSExistentialQuantifier__Group_1__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3661:1: ( ( ':' ) ) + // InternalVampireLanguage.g:3662:1: ( ':' ) + { + // InternalVampireLanguage.g:3662:1: ( ':' ) + // InternalVampireLanguage.g:3663:2: ':' + { + before(grammarAccess.getVLSExistentialQuantifierAccess().getColonKeyword_1_5()); + match(input,60,FOLLOW_2); + after(grammarAccess.getVLSExistentialQuantifierAccess().getColonKeyword_1_5()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group_1__5__Impl" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group_1_3__0" + // InternalVampireLanguage.g:3673:1: rule__VLSExistentialQuantifier__Group_1_3__0 : rule__VLSExistentialQuantifier__Group_1_3__0__Impl rule__VLSExistentialQuantifier__Group_1_3__1 ; + public final void rule__VLSExistentialQuantifier__Group_1_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3677:1: ( rule__VLSExistentialQuantifier__Group_1_3__0__Impl rule__VLSExistentialQuantifier__Group_1_3__1 ) + // InternalVampireLanguage.g:3678:2: rule__VLSExistentialQuantifier__Group_1_3__0__Impl rule__VLSExistentialQuantifier__Group_1_3__1 + { + pushFollow(FOLLOW_31); + rule__VLSExistentialQuantifier__Group_1_3__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSExistentialQuantifier__Group_1_3__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group_1_3__0" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group_1_3__0__Impl" + // InternalVampireLanguage.g:3685:1: rule__VLSExistentialQuantifier__Group_1_3__0__Impl : ( ',' ) ; + public final void rule__VLSExistentialQuantifier__Group_1_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3689:1: ( ( ',' ) ) + // InternalVampireLanguage.g:3690:1: ( ',' ) + { + // InternalVampireLanguage.g:3690:1: ( ',' ) + // InternalVampireLanguage.g:3691:2: ',' + { + before(grammarAccess.getVLSExistentialQuantifierAccess().getCommaKeyword_1_3_0()); + match(input,45,FOLLOW_2); + after(grammarAccess.getVLSExistentialQuantifierAccess().getCommaKeyword_1_3_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group_1_3__0__Impl" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group_1_3__1" + // InternalVampireLanguage.g:3700:1: rule__VLSExistentialQuantifier__Group_1_3__1 : rule__VLSExistentialQuantifier__Group_1_3__1__Impl ; + public final void rule__VLSExistentialQuantifier__Group_1_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3704:1: ( rule__VLSExistentialQuantifier__Group_1_3__1__Impl ) + // InternalVampireLanguage.g:3705:2: rule__VLSExistentialQuantifier__Group_1_3__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSExistentialQuantifier__Group_1_3__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group_1_3__1" + + + // $ANTLR start "rule__VLSExistentialQuantifier__Group_1_3__1__Impl" + // InternalVampireLanguage.g:3711:1: rule__VLSExistentialQuantifier__Group_1_3__1__Impl : ( ( rule__VLSExistentialQuantifier__VariablesAssignment_1_3_1 ) ) ; + public final void rule__VLSExistentialQuantifier__Group_1_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3715:1: ( ( ( rule__VLSExistentialQuantifier__VariablesAssignment_1_3_1 ) ) ) + // InternalVampireLanguage.g:3716:1: ( ( rule__VLSExistentialQuantifier__VariablesAssignment_1_3_1 ) ) + { + // InternalVampireLanguage.g:3716:1: ( ( rule__VLSExistentialQuantifier__VariablesAssignment_1_3_1 ) ) + // InternalVampireLanguage.g:3717:2: ( rule__VLSExistentialQuantifier__VariablesAssignment_1_3_1 ) + { + before(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesAssignment_1_3_1()); + // InternalVampireLanguage.g:3718:2: ( rule__VLSExistentialQuantifier__VariablesAssignment_1_3_1 ) + // InternalVampireLanguage.g:3718:3: rule__VLSExistentialQuantifier__VariablesAssignment_1_3_1 + { + pushFollow(FOLLOW_2); + rule__VLSExistentialQuantifier__VariablesAssignment_1_3_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesAssignment_1_3_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__Group_1_3__1__Impl" + + + // $ANTLR start "rule__VLSUnaryNegation__Group__0" + // InternalVampireLanguage.g:3727:1: rule__VLSUnaryNegation__Group__0 : rule__VLSUnaryNegation__Group__0__Impl rule__VLSUnaryNegation__Group__1 ; + public final void rule__VLSUnaryNegation__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3731:1: ( rule__VLSUnaryNegation__Group__0__Impl rule__VLSUnaryNegation__Group__1 ) + // InternalVampireLanguage.g:3732:2: rule__VLSUnaryNegation__Group__0__Impl rule__VLSUnaryNegation__Group__1 + { + pushFollow(FOLLOW_34); + rule__VLSUnaryNegation__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSUnaryNegation__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryNegation__Group__0" + + + // $ANTLR start "rule__VLSUnaryNegation__Group__0__Impl" + // InternalVampireLanguage.g:3739:1: rule__VLSUnaryNegation__Group__0__Impl : ( () ) ; + public final void rule__VLSUnaryNegation__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3743:1: ( ( () ) ) + // InternalVampireLanguage.g:3744:1: ( () ) + { + // InternalVampireLanguage.g:3744:1: ( () ) + // InternalVampireLanguage.g:3745:2: () + { + before(grammarAccess.getVLSUnaryNegationAccess().getVLSUnaryNegationAction_0()); + // InternalVampireLanguage.g:3746:2: () + // InternalVampireLanguage.g:3746:3: + { + } + + after(grammarAccess.getVLSUnaryNegationAccess().getVLSUnaryNegationAction_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryNegation__Group__0__Impl" + + + // $ANTLR start "rule__VLSUnaryNegation__Group__1" + // InternalVampireLanguage.g:3754:1: rule__VLSUnaryNegation__Group__1 : rule__VLSUnaryNegation__Group__1__Impl rule__VLSUnaryNegation__Group__2 ; + public final void rule__VLSUnaryNegation__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3758:1: ( rule__VLSUnaryNegation__Group__1__Impl rule__VLSUnaryNegation__Group__2 ) + // InternalVampireLanguage.g:3759:2: rule__VLSUnaryNegation__Group__1__Impl rule__VLSUnaryNegation__Group__2 + { + pushFollow(FOLLOW_15); + rule__VLSUnaryNegation__Group__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSUnaryNegation__Group__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryNegation__Group__1" + + + // $ANTLR start "rule__VLSUnaryNegation__Group__1__Impl" + // InternalVampireLanguage.g:3766:1: rule__VLSUnaryNegation__Group__1__Impl : ( '~' ) ; + public final void rule__VLSUnaryNegation__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3770:1: ( ( '~' ) ) + // InternalVampireLanguage.g:3771:1: ( '~' ) + { + // InternalVampireLanguage.g:3771:1: ( '~' ) + // InternalVampireLanguage.g:3772:2: '~' + { + before(grammarAccess.getVLSUnaryNegationAccess().getTildeKeyword_1()); + match(input,62,FOLLOW_2); + after(grammarAccess.getVLSUnaryNegationAccess().getTildeKeyword_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryNegation__Group__1__Impl" + + + // $ANTLR start "rule__VLSUnaryNegation__Group__2" + // InternalVampireLanguage.g:3781:1: rule__VLSUnaryNegation__Group__2 : rule__VLSUnaryNegation__Group__2__Impl ; + public final void rule__VLSUnaryNegation__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3785:1: ( rule__VLSUnaryNegation__Group__2__Impl ) + // InternalVampireLanguage.g:3786:2: rule__VLSUnaryNegation__Group__2__Impl + { + pushFollow(FOLLOW_2); + rule__VLSUnaryNegation__Group__2__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryNegation__Group__2" + + + // $ANTLR start "rule__VLSUnaryNegation__Group__2__Impl" + // InternalVampireLanguage.g:3792:1: rule__VLSUnaryNegation__Group__2__Impl : ( ( rule__VLSUnaryNegation__OperandAssignment_2 ) ) ; + public final void rule__VLSUnaryNegation__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3796:1: ( ( ( rule__VLSUnaryNegation__OperandAssignment_2 ) ) ) + // InternalVampireLanguage.g:3797:1: ( ( rule__VLSUnaryNegation__OperandAssignment_2 ) ) + { + // InternalVampireLanguage.g:3797:1: ( ( rule__VLSUnaryNegation__OperandAssignment_2 ) ) + // InternalVampireLanguage.g:3798:2: ( rule__VLSUnaryNegation__OperandAssignment_2 ) + { + before(grammarAccess.getVLSUnaryNegationAccess().getOperandAssignment_2()); + // InternalVampireLanguage.g:3799:2: ( rule__VLSUnaryNegation__OperandAssignment_2 ) + // InternalVampireLanguage.g:3799:3: rule__VLSUnaryNegation__OperandAssignment_2 + { + pushFollow(FOLLOW_2); + rule__VLSUnaryNegation__OperandAssignment_2(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSUnaryNegationAccess().getOperandAssignment_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryNegation__Group__2__Impl" + + + // $ANTLR start "rule__VLSUnaryInfix__Group__0" + // InternalVampireLanguage.g:3808:1: rule__VLSUnaryInfix__Group__0 : rule__VLSUnaryInfix__Group__0__Impl rule__VLSUnaryInfix__Group__1 ; + public final void rule__VLSUnaryInfix__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3812:1: ( rule__VLSUnaryInfix__Group__0__Impl rule__VLSUnaryInfix__Group__1 ) + // InternalVampireLanguage.g:3813:2: rule__VLSUnaryInfix__Group__0__Impl rule__VLSUnaryInfix__Group__1 + { + pushFollow(FOLLOW_35); + rule__VLSUnaryInfix__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSUnaryInfix__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Group__0" + + + // $ANTLR start "rule__VLSUnaryInfix__Group__0__Impl" + // InternalVampireLanguage.g:3820:1: rule__VLSUnaryInfix__Group__0__Impl : ( ruleVLSAtomic ) ; + public final void rule__VLSUnaryInfix__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3824:1: ( ( ruleVLSAtomic ) ) + // InternalVampireLanguage.g:3825:1: ( ruleVLSAtomic ) + { + // InternalVampireLanguage.g:3825:1: ( ruleVLSAtomic ) + // InternalVampireLanguage.g:3826:2: ruleVLSAtomic + { + before(grammarAccess.getVLSUnaryInfixAccess().getVLSAtomicParserRuleCall_0()); + pushFollow(FOLLOW_2); + ruleVLSAtomic(); + + state._fsp--; + + after(grammarAccess.getVLSUnaryInfixAccess().getVLSAtomicParserRuleCall_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Group__0__Impl" + + + // $ANTLR start "rule__VLSUnaryInfix__Group__1" + // InternalVampireLanguage.g:3835:1: rule__VLSUnaryInfix__Group__1 : rule__VLSUnaryInfix__Group__1__Impl ; + public final void rule__VLSUnaryInfix__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3839:1: ( rule__VLSUnaryInfix__Group__1__Impl ) + // InternalVampireLanguage.g:3840:2: rule__VLSUnaryInfix__Group__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSUnaryInfix__Group__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Group__1" + + + // $ANTLR start "rule__VLSUnaryInfix__Group__1__Impl" + // InternalVampireLanguage.g:3846:1: rule__VLSUnaryInfix__Group__1__Impl : ( ( rule__VLSUnaryInfix__Group_1__0 )? ) ; + public final void rule__VLSUnaryInfix__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3850:1: ( ( ( rule__VLSUnaryInfix__Group_1__0 )? ) ) + // InternalVampireLanguage.g:3851:1: ( ( rule__VLSUnaryInfix__Group_1__0 )? ) + { + // InternalVampireLanguage.g:3851:1: ( ( rule__VLSUnaryInfix__Group_1__0 )? ) + // InternalVampireLanguage.g:3852:2: ( rule__VLSUnaryInfix__Group_1__0 )? + { + before(grammarAccess.getVLSUnaryInfixAccess().getGroup_1()); + // InternalVampireLanguage.g:3853:2: ( rule__VLSUnaryInfix__Group_1__0 )? + int alt32=2; + int LA32_0 = input.LA(1); + + if ( ((LA32_0>=63 && LA32_0<=65)) ) { + alt32=1; + } + switch (alt32) { + case 1 : + // InternalVampireLanguage.g:3853:3: rule__VLSUnaryInfix__Group_1__0 + { + pushFollow(FOLLOW_2); + rule__VLSUnaryInfix__Group_1__0(); + + state._fsp--; + + + } + break; + + } + + after(grammarAccess.getVLSUnaryInfixAccess().getGroup_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Group__1__Impl" + + + // $ANTLR start "rule__VLSUnaryInfix__Group_1__0" + // InternalVampireLanguage.g:3862:1: rule__VLSUnaryInfix__Group_1__0 : rule__VLSUnaryInfix__Group_1__0__Impl rule__VLSUnaryInfix__Group_1__1 ; + public final void rule__VLSUnaryInfix__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3866:1: ( rule__VLSUnaryInfix__Group_1__0__Impl rule__VLSUnaryInfix__Group_1__1 ) + // InternalVampireLanguage.g:3867:2: rule__VLSUnaryInfix__Group_1__0__Impl rule__VLSUnaryInfix__Group_1__1 + { + pushFollow(FOLLOW_36); + rule__VLSUnaryInfix__Group_1__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSUnaryInfix__Group_1__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Group_1__0" + + + // $ANTLR start "rule__VLSUnaryInfix__Group_1__0__Impl" + // InternalVampireLanguage.g:3874:1: rule__VLSUnaryInfix__Group_1__0__Impl : ( ( rule__VLSUnaryInfix__Alternatives_1_0 ) ) ; + public final void rule__VLSUnaryInfix__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3878:1: ( ( ( rule__VLSUnaryInfix__Alternatives_1_0 ) ) ) + // InternalVampireLanguage.g:3879:1: ( ( rule__VLSUnaryInfix__Alternatives_1_0 ) ) + { + // InternalVampireLanguage.g:3879:1: ( ( rule__VLSUnaryInfix__Alternatives_1_0 ) ) + // InternalVampireLanguage.g:3880:2: ( rule__VLSUnaryInfix__Alternatives_1_0 ) + { + before(grammarAccess.getVLSUnaryInfixAccess().getAlternatives_1_0()); + // InternalVampireLanguage.g:3881:2: ( rule__VLSUnaryInfix__Alternatives_1_0 ) + // InternalVampireLanguage.g:3881:3: rule__VLSUnaryInfix__Alternatives_1_0 + { + pushFollow(FOLLOW_2); + rule__VLSUnaryInfix__Alternatives_1_0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSUnaryInfixAccess().getAlternatives_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Group_1__0__Impl" + + + // $ANTLR start "rule__VLSUnaryInfix__Group_1__1" + // InternalVampireLanguage.g:3889:1: rule__VLSUnaryInfix__Group_1__1 : rule__VLSUnaryInfix__Group_1__1__Impl ; + public final void rule__VLSUnaryInfix__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3893:1: ( rule__VLSUnaryInfix__Group_1__1__Impl ) + // InternalVampireLanguage.g:3894:2: rule__VLSUnaryInfix__Group_1__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSUnaryInfix__Group_1__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Group_1__1" + + + // $ANTLR start "rule__VLSUnaryInfix__Group_1__1__Impl" + // InternalVampireLanguage.g:3900:1: rule__VLSUnaryInfix__Group_1__1__Impl : ( ( rule__VLSUnaryInfix__RightAssignment_1_1 ) ) ; + public final void rule__VLSUnaryInfix__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3904:1: ( ( ( rule__VLSUnaryInfix__RightAssignment_1_1 ) ) ) + // InternalVampireLanguage.g:3905:1: ( ( rule__VLSUnaryInfix__RightAssignment_1_1 ) ) + { + // InternalVampireLanguage.g:3905:1: ( ( rule__VLSUnaryInfix__RightAssignment_1_1 ) ) + // InternalVampireLanguage.g:3906:2: ( rule__VLSUnaryInfix__RightAssignment_1_1 ) + { + before(grammarAccess.getVLSUnaryInfixAccess().getRightAssignment_1_1()); + // InternalVampireLanguage.g:3907:2: ( rule__VLSUnaryInfix__RightAssignment_1_1 ) + // InternalVampireLanguage.g:3907:3: rule__VLSUnaryInfix__RightAssignment_1_1 + { + pushFollow(FOLLOW_2); + rule__VLSUnaryInfix__RightAssignment_1_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSUnaryInfixAccess().getRightAssignment_1_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Group_1__1__Impl" + + + // $ANTLR start "rule__VLSUnaryInfix__Group_1_0_0__0" + // InternalVampireLanguage.g:3916:1: rule__VLSUnaryInfix__Group_1_0_0__0 : rule__VLSUnaryInfix__Group_1_0_0__0__Impl rule__VLSUnaryInfix__Group_1_0_0__1 ; + public final void rule__VLSUnaryInfix__Group_1_0_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3920:1: ( rule__VLSUnaryInfix__Group_1_0_0__0__Impl rule__VLSUnaryInfix__Group_1_0_0__1 ) + // InternalVampireLanguage.g:3921:2: rule__VLSUnaryInfix__Group_1_0_0__0__Impl rule__VLSUnaryInfix__Group_1_0_0__1 + { + pushFollow(FOLLOW_37); + rule__VLSUnaryInfix__Group_1_0_0__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSUnaryInfix__Group_1_0_0__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Group_1_0_0__0" + + + // $ANTLR start "rule__VLSUnaryInfix__Group_1_0_0__0__Impl" + // InternalVampireLanguage.g:3928:1: rule__VLSUnaryInfix__Group_1_0_0__0__Impl : ( () ) ; + public final void rule__VLSUnaryInfix__Group_1_0_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3932:1: ( ( () ) ) + // InternalVampireLanguage.g:3933:1: ( () ) + { + // InternalVampireLanguage.g:3933:1: ( () ) + // InternalVampireLanguage.g:3934:2: () + { + before(grammarAccess.getVLSUnaryInfixAccess().getVLSInequalityLeftAction_1_0_0_0()); + // InternalVampireLanguage.g:3935:2: () + // InternalVampireLanguage.g:3935:3: + { + } + + after(grammarAccess.getVLSUnaryInfixAccess().getVLSInequalityLeftAction_1_0_0_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Group_1_0_0__0__Impl" + + + // $ANTLR start "rule__VLSUnaryInfix__Group_1_0_0__1" + // InternalVampireLanguage.g:3943:1: rule__VLSUnaryInfix__Group_1_0_0__1 : rule__VLSUnaryInfix__Group_1_0_0__1__Impl ; + public final void rule__VLSUnaryInfix__Group_1_0_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3947:1: ( rule__VLSUnaryInfix__Group_1_0_0__1__Impl ) + // InternalVampireLanguage.g:3948:2: rule__VLSUnaryInfix__Group_1_0_0__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSUnaryInfix__Group_1_0_0__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Group_1_0_0__1" + + + // $ANTLR start "rule__VLSUnaryInfix__Group_1_0_0__1__Impl" + // InternalVampireLanguage.g:3954:1: rule__VLSUnaryInfix__Group_1_0_0__1__Impl : ( '!=' ) ; + public final void rule__VLSUnaryInfix__Group_1_0_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3958:1: ( ( '!=' ) ) + // InternalVampireLanguage.g:3959:1: ( '!=' ) + { + // InternalVampireLanguage.g:3959:1: ( '!=' ) + // InternalVampireLanguage.g:3960:2: '!=' + { + before(grammarAccess.getVLSUnaryInfixAccess().getExclamationMarkEqualsSignKeyword_1_0_0_1()); + match(input,63,FOLLOW_2); + after(grammarAccess.getVLSUnaryInfixAccess().getExclamationMarkEqualsSignKeyword_1_0_0_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Group_1_0_0__1__Impl" + + + // $ANTLR start "rule__VLSUnaryInfix__Group_1_0_1__0" + // InternalVampireLanguage.g:3970:1: rule__VLSUnaryInfix__Group_1_0_1__0 : rule__VLSUnaryInfix__Group_1_0_1__0__Impl rule__VLSUnaryInfix__Group_1_0_1__1 ; + public final void rule__VLSUnaryInfix__Group_1_0_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3974:1: ( rule__VLSUnaryInfix__Group_1_0_1__0__Impl rule__VLSUnaryInfix__Group_1_0_1__1 ) + // InternalVampireLanguage.g:3975:2: rule__VLSUnaryInfix__Group_1_0_1__0__Impl rule__VLSUnaryInfix__Group_1_0_1__1 + { + pushFollow(FOLLOW_38); + rule__VLSUnaryInfix__Group_1_0_1__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSUnaryInfix__Group_1_0_1__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Group_1_0_1__0" + + + // $ANTLR start "rule__VLSUnaryInfix__Group_1_0_1__0__Impl" + // InternalVampireLanguage.g:3982:1: rule__VLSUnaryInfix__Group_1_0_1__0__Impl : ( () ) ; + public final void rule__VLSUnaryInfix__Group_1_0_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:3986:1: ( ( () ) ) + // InternalVampireLanguage.g:3987:1: ( () ) + { + // InternalVampireLanguage.g:3987:1: ( () ) + // InternalVampireLanguage.g:3988:2: () + { + before(grammarAccess.getVLSUnaryInfixAccess().getVLSEqualityLeftAction_1_0_1_0()); + // InternalVampireLanguage.g:3989:2: () + // InternalVampireLanguage.g:3989:3: + { + } + + after(grammarAccess.getVLSUnaryInfixAccess().getVLSEqualityLeftAction_1_0_1_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Group_1_0_1__0__Impl" + + + // $ANTLR start "rule__VLSUnaryInfix__Group_1_0_1__1" + // InternalVampireLanguage.g:3997:1: rule__VLSUnaryInfix__Group_1_0_1__1 : rule__VLSUnaryInfix__Group_1_0_1__1__Impl ; + public final void rule__VLSUnaryInfix__Group_1_0_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4001:1: ( rule__VLSUnaryInfix__Group_1_0_1__1__Impl ) + // InternalVampireLanguage.g:4002:2: rule__VLSUnaryInfix__Group_1_0_1__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSUnaryInfix__Group_1_0_1__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Group_1_0_1__1" + + + // $ANTLR start "rule__VLSUnaryInfix__Group_1_0_1__1__Impl" + // InternalVampireLanguage.g:4008:1: rule__VLSUnaryInfix__Group_1_0_1__1__Impl : ( '=' ) ; + public final void rule__VLSUnaryInfix__Group_1_0_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4012:1: ( ( '=' ) ) + // InternalVampireLanguage.g:4013:1: ( '=' ) + { + // InternalVampireLanguage.g:4013:1: ( '=' ) + // InternalVampireLanguage.g:4014:2: '=' + { + before(grammarAccess.getVLSUnaryInfixAccess().getEqualsSignKeyword_1_0_1_1()); + match(input,64,FOLLOW_2); + after(grammarAccess.getVLSUnaryInfixAccess().getEqualsSignKeyword_1_0_1_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Group_1_0_1__1__Impl" + + + // $ANTLR start "rule__VLSUnaryInfix__Group_1_0_2__0" + // InternalVampireLanguage.g:4024:1: rule__VLSUnaryInfix__Group_1_0_2__0 : rule__VLSUnaryInfix__Group_1_0_2__0__Impl rule__VLSUnaryInfix__Group_1_0_2__1 ; + public final void rule__VLSUnaryInfix__Group_1_0_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4028:1: ( rule__VLSUnaryInfix__Group_1_0_2__0__Impl rule__VLSUnaryInfix__Group_1_0_2__1 ) + // InternalVampireLanguage.g:4029:2: rule__VLSUnaryInfix__Group_1_0_2__0__Impl rule__VLSUnaryInfix__Group_1_0_2__1 + { + pushFollow(FOLLOW_35); + rule__VLSUnaryInfix__Group_1_0_2__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSUnaryInfix__Group_1_0_2__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Group_1_0_2__0" + + + // $ANTLR start "rule__VLSUnaryInfix__Group_1_0_2__0__Impl" + // InternalVampireLanguage.g:4036:1: rule__VLSUnaryInfix__Group_1_0_2__0__Impl : ( () ) ; + public final void rule__VLSUnaryInfix__Group_1_0_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4040:1: ( ( () ) ) + // InternalVampireLanguage.g:4041:1: ( () ) + { + // InternalVampireLanguage.g:4041:1: ( () ) + // InternalVampireLanguage.g:4042:2: () + { + before(grammarAccess.getVLSUnaryInfixAccess().getVLSAssignmentLeftAction_1_0_2_0()); + // InternalVampireLanguage.g:4043:2: () + // InternalVampireLanguage.g:4043:3: + { + } + + after(grammarAccess.getVLSUnaryInfixAccess().getVLSAssignmentLeftAction_1_0_2_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Group_1_0_2__0__Impl" + + + // $ANTLR start "rule__VLSUnaryInfix__Group_1_0_2__1" + // InternalVampireLanguage.g:4051:1: rule__VLSUnaryInfix__Group_1_0_2__1 : rule__VLSUnaryInfix__Group_1_0_2__1__Impl ; + public final void rule__VLSUnaryInfix__Group_1_0_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4055:1: ( rule__VLSUnaryInfix__Group_1_0_2__1__Impl ) + // InternalVampireLanguage.g:4056:2: rule__VLSUnaryInfix__Group_1_0_2__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSUnaryInfix__Group_1_0_2__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Group_1_0_2__1" + + + // $ANTLR start "rule__VLSUnaryInfix__Group_1_0_2__1__Impl" + // InternalVampireLanguage.g:4062:1: rule__VLSUnaryInfix__Group_1_0_2__1__Impl : ( ':=' ) ; + public final void rule__VLSUnaryInfix__Group_1_0_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4066:1: ( ( ':=' ) ) + // InternalVampireLanguage.g:4067:1: ( ':=' ) + { + // InternalVampireLanguage.g:4067:1: ( ':=' ) + // InternalVampireLanguage.g:4068:2: ':=' + { + before(grammarAccess.getVLSUnaryInfixAccess().getColonEqualsSignKeyword_1_0_2_1()); + match(input,65,FOLLOW_2); + after(grammarAccess.getVLSUnaryInfixAccess().getColonEqualsSignKeyword_1_0_2_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__Group_1_0_2__1__Impl" + + + // $ANTLR start "rule__VLSAtomicConstant__Group_0__0" + // InternalVampireLanguage.g:4078:1: rule__VLSAtomicConstant__Group_0__0 : rule__VLSAtomicConstant__Group_0__0__Impl rule__VLSAtomicConstant__Group_0__1 ; + public final void rule__VLSAtomicConstant__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4082:1: ( rule__VLSAtomicConstant__Group_0__0__Impl rule__VLSAtomicConstant__Group_0__1 ) + // InternalVampireLanguage.g:4083:2: rule__VLSAtomicConstant__Group_0__0__Impl rule__VLSAtomicConstant__Group_0__1 + { + pushFollow(FOLLOW_39); + rule__VLSAtomicConstant__Group_0__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAtomicConstant__Group_0__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicConstant__Group_0__0" + + + // $ANTLR start "rule__VLSAtomicConstant__Group_0__0__Impl" + // InternalVampireLanguage.g:4090:1: rule__VLSAtomicConstant__Group_0__0__Impl : ( () ) ; + public final void rule__VLSAtomicConstant__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4094:1: ( ( () ) ) + // InternalVampireLanguage.g:4095:1: ( () ) + { + // InternalVampireLanguage.g:4095:1: ( () ) + // InternalVampireLanguage.g:4096:2: () + { + before(grammarAccess.getVLSAtomicConstantAccess().getVLSConstantAction_0_0()); + // InternalVampireLanguage.g:4097:2: () + // InternalVampireLanguage.g:4097:3: + { + } + + after(grammarAccess.getVLSAtomicConstantAccess().getVLSConstantAction_0_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicConstant__Group_0__0__Impl" + + + // $ANTLR start "rule__VLSAtomicConstant__Group_0__1" + // InternalVampireLanguage.g:4105:1: rule__VLSAtomicConstant__Group_0__1 : rule__VLSAtomicConstant__Group_0__1__Impl ; + public final void rule__VLSAtomicConstant__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4109:1: ( rule__VLSAtomicConstant__Group_0__1__Impl ) + // InternalVampireLanguage.g:4110:2: rule__VLSAtomicConstant__Group_0__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSAtomicConstant__Group_0__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicConstant__Group_0__1" + + + // $ANTLR start "rule__VLSAtomicConstant__Group_0__1__Impl" + // InternalVampireLanguage.g:4116:1: rule__VLSAtomicConstant__Group_0__1__Impl : ( ( rule__VLSAtomicConstant__NameAssignment_0_1 ) ) ; + public final void rule__VLSAtomicConstant__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4120:1: ( ( ( rule__VLSAtomicConstant__NameAssignment_0_1 ) ) ) + // InternalVampireLanguage.g:4121:1: ( ( rule__VLSAtomicConstant__NameAssignment_0_1 ) ) + { + // InternalVampireLanguage.g:4121:1: ( ( rule__VLSAtomicConstant__NameAssignment_0_1 ) ) + // InternalVampireLanguage.g:4122:2: ( rule__VLSAtomicConstant__NameAssignment_0_1 ) + { + before(grammarAccess.getVLSAtomicConstantAccess().getNameAssignment_0_1()); + // InternalVampireLanguage.g:4123:2: ( rule__VLSAtomicConstant__NameAssignment_0_1 ) + // InternalVampireLanguage.g:4123:3: rule__VLSAtomicConstant__NameAssignment_0_1 + { + pushFollow(FOLLOW_2); + rule__VLSAtomicConstant__NameAssignment_0_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAtomicConstantAccess().getNameAssignment_0_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicConstant__Group_0__1__Impl" + + + // $ANTLR start "rule__VLSAtomicConstant__Group_1__0" + // InternalVampireLanguage.g:4132:1: rule__VLSAtomicConstant__Group_1__0 : rule__VLSAtomicConstant__Group_1__0__Impl rule__VLSAtomicConstant__Group_1__1 ; + public final void rule__VLSAtomicConstant__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4136:1: ( rule__VLSAtomicConstant__Group_1__0__Impl rule__VLSAtomicConstant__Group_1__1 ) + // InternalVampireLanguage.g:4137:2: rule__VLSAtomicConstant__Group_1__0__Impl rule__VLSAtomicConstant__Group_1__1 + { + pushFollow(FOLLOW_40); + rule__VLSAtomicConstant__Group_1__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAtomicConstant__Group_1__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicConstant__Group_1__0" + + + // $ANTLR start "rule__VLSAtomicConstant__Group_1__0__Impl" + // InternalVampireLanguage.g:4144:1: rule__VLSAtomicConstant__Group_1__0__Impl : ( () ) ; + public final void rule__VLSAtomicConstant__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4148:1: ( ( () ) ) + // InternalVampireLanguage.g:4149:1: ( () ) + { + // InternalVampireLanguage.g:4149:1: ( () ) + // InternalVampireLanguage.g:4150:2: () + { + before(grammarAccess.getVLSAtomicConstantAccess().getVLSTrueAction_1_0()); + // InternalVampireLanguage.g:4151:2: () + // InternalVampireLanguage.g:4151:3: + { + } + + after(grammarAccess.getVLSAtomicConstantAccess().getVLSTrueAction_1_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicConstant__Group_1__0__Impl" + + + // $ANTLR start "rule__VLSAtomicConstant__Group_1__1" + // InternalVampireLanguage.g:4159:1: rule__VLSAtomicConstant__Group_1__1 : rule__VLSAtomicConstant__Group_1__1__Impl ; + public final void rule__VLSAtomicConstant__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4163:1: ( rule__VLSAtomicConstant__Group_1__1__Impl ) + // InternalVampireLanguage.g:4164:2: rule__VLSAtomicConstant__Group_1__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSAtomicConstant__Group_1__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicConstant__Group_1__1" + + + // $ANTLR start "rule__VLSAtomicConstant__Group_1__1__Impl" + // InternalVampireLanguage.g:4170:1: rule__VLSAtomicConstant__Group_1__1__Impl : ( '$true' ) ; + public final void rule__VLSAtomicConstant__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4174:1: ( ( '$true' ) ) + // InternalVampireLanguage.g:4175:1: ( '$true' ) + { + // InternalVampireLanguage.g:4175:1: ( '$true' ) + // InternalVampireLanguage.g:4176:2: '$true' + { + before(grammarAccess.getVLSAtomicConstantAccess().getTrueKeyword_1_1()); + match(input,66,FOLLOW_2); + after(grammarAccess.getVLSAtomicConstantAccess().getTrueKeyword_1_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicConstant__Group_1__1__Impl" + + + // $ANTLR start "rule__VLSAtomicConstant__Group_2__0" + // InternalVampireLanguage.g:4186:1: rule__VLSAtomicConstant__Group_2__0 : rule__VLSAtomicConstant__Group_2__0__Impl rule__VLSAtomicConstant__Group_2__1 ; + public final void rule__VLSAtomicConstant__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4190:1: ( rule__VLSAtomicConstant__Group_2__0__Impl rule__VLSAtomicConstant__Group_2__1 ) + // InternalVampireLanguage.g:4191:2: rule__VLSAtomicConstant__Group_2__0__Impl rule__VLSAtomicConstant__Group_2__1 + { + pushFollow(FOLLOW_41); + rule__VLSAtomicConstant__Group_2__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAtomicConstant__Group_2__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicConstant__Group_2__0" + + + // $ANTLR start "rule__VLSAtomicConstant__Group_2__0__Impl" + // InternalVampireLanguage.g:4198:1: rule__VLSAtomicConstant__Group_2__0__Impl : ( () ) ; + public final void rule__VLSAtomicConstant__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4202:1: ( ( () ) ) + // InternalVampireLanguage.g:4203:1: ( () ) + { + // InternalVampireLanguage.g:4203:1: ( () ) + // InternalVampireLanguage.g:4204:2: () + { + before(grammarAccess.getVLSAtomicConstantAccess().getVLSFalseAction_2_0()); + // InternalVampireLanguage.g:4205:2: () + // InternalVampireLanguage.g:4205:3: + { + } + + after(grammarAccess.getVLSAtomicConstantAccess().getVLSFalseAction_2_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicConstant__Group_2__0__Impl" + + + // $ANTLR start "rule__VLSAtomicConstant__Group_2__1" + // InternalVampireLanguage.g:4213:1: rule__VLSAtomicConstant__Group_2__1 : rule__VLSAtomicConstant__Group_2__1__Impl ; + public final void rule__VLSAtomicConstant__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4217:1: ( rule__VLSAtomicConstant__Group_2__1__Impl ) + // InternalVampireLanguage.g:4218:2: rule__VLSAtomicConstant__Group_2__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSAtomicConstant__Group_2__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicConstant__Group_2__1" + + + // $ANTLR start "rule__VLSAtomicConstant__Group_2__1__Impl" + // InternalVampireLanguage.g:4224:1: rule__VLSAtomicConstant__Group_2__1__Impl : ( '$false' ) ; + public final void rule__VLSAtomicConstant__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4228:1: ( ( '$false' ) ) + // InternalVampireLanguage.g:4229:1: ( '$false' ) + { + // InternalVampireLanguage.g:4229:1: ( '$false' ) + // InternalVampireLanguage.g:4230:2: '$false' + { + before(grammarAccess.getVLSAtomicConstantAccess().getFalseKeyword_2_1()); + match(input,67,FOLLOW_2); + after(grammarAccess.getVLSAtomicConstantAccess().getFalseKeyword_2_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicConstant__Group_2__1__Impl" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_0__0" + // InternalVampireLanguage.g:4240:1: rule__VLSAtomicFunction__Group_0__0 : rule__VLSAtomicFunction__Group_0__0__Impl rule__VLSAtomicFunction__Group_0__1 ; + public final void rule__VLSAtomicFunction__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4244:1: ( rule__VLSAtomicFunction__Group_0__0__Impl rule__VLSAtomicFunction__Group_0__1 ) + // InternalVampireLanguage.g:4245:2: rule__VLSAtomicFunction__Group_0__0__Impl rule__VLSAtomicFunction__Group_0__1 + { + pushFollow(FOLLOW_39); + rule__VLSAtomicFunction__Group_0__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__Group_0__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_0__0" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_0__0__Impl" + // InternalVampireLanguage.g:4252:1: rule__VLSAtomicFunction__Group_0__0__Impl : ( () ) ; + public final void rule__VLSAtomicFunction__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4256:1: ( ( () ) ) + // InternalVampireLanguage.g:4257:1: ( () ) + { + // InternalVampireLanguage.g:4257:1: ( () ) + // InternalVampireLanguage.g:4258:2: () + { + before(grammarAccess.getVLSAtomicFunctionAccess().getVLSFunctionAction_0_0()); + // InternalVampireLanguage.g:4259:2: () + // InternalVampireLanguage.g:4259:3: + { + } + + after(grammarAccess.getVLSAtomicFunctionAccess().getVLSFunctionAction_0_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_0__0__Impl" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_0__1" + // InternalVampireLanguage.g:4267:1: rule__VLSAtomicFunction__Group_0__1 : rule__VLSAtomicFunction__Group_0__1__Impl rule__VLSAtomicFunction__Group_0__2 ; + public final void rule__VLSAtomicFunction__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4271:1: ( rule__VLSAtomicFunction__Group_0__1__Impl rule__VLSAtomicFunction__Group_0__2 ) + // InternalVampireLanguage.g:4272:2: rule__VLSAtomicFunction__Group_0__1__Impl rule__VLSAtomicFunction__Group_0__2 + { + pushFollow(FOLLOW_11); + rule__VLSAtomicFunction__Group_0__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__Group_0__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_0__1" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_0__1__Impl" + // InternalVampireLanguage.g:4279:1: rule__VLSAtomicFunction__Group_0__1__Impl : ( ( rule__VLSAtomicFunction__ConstantAssignment_0_1 ) ) ; + public final void rule__VLSAtomicFunction__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4283:1: ( ( ( rule__VLSAtomicFunction__ConstantAssignment_0_1 ) ) ) + // InternalVampireLanguage.g:4284:1: ( ( rule__VLSAtomicFunction__ConstantAssignment_0_1 ) ) + { + // InternalVampireLanguage.g:4284:1: ( ( rule__VLSAtomicFunction__ConstantAssignment_0_1 ) ) + // InternalVampireLanguage.g:4285:2: ( rule__VLSAtomicFunction__ConstantAssignment_0_1 ) + { + before(grammarAccess.getVLSAtomicFunctionAccess().getConstantAssignment_0_1()); + // InternalVampireLanguage.g:4286:2: ( rule__VLSAtomicFunction__ConstantAssignment_0_1 ) + // InternalVampireLanguage.g:4286:3: rule__VLSAtomicFunction__ConstantAssignment_0_1 + { + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__ConstantAssignment_0_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAtomicFunctionAccess().getConstantAssignment_0_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_0__1__Impl" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_0__2" + // InternalVampireLanguage.g:4294:1: rule__VLSAtomicFunction__Group_0__2 : rule__VLSAtomicFunction__Group_0__2__Impl ; + public final void rule__VLSAtomicFunction__Group_0__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4298:1: ( rule__VLSAtomicFunction__Group_0__2__Impl ) + // InternalVampireLanguage.g:4299:2: rule__VLSAtomicFunction__Group_0__2__Impl + { + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__Group_0__2__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_0__2" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_0__2__Impl" + // InternalVampireLanguage.g:4305:1: rule__VLSAtomicFunction__Group_0__2__Impl : ( ( rule__VLSAtomicFunction__Group_0_2__0 ) ) ; + public final void rule__VLSAtomicFunction__Group_0__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4309:1: ( ( ( rule__VLSAtomicFunction__Group_0_2__0 ) ) ) + // InternalVampireLanguage.g:4310:1: ( ( rule__VLSAtomicFunction__Group_0_2__0 ) ) + { + // InternalVampireLanguage.g:4310:1: ( ( rule__VLSAtomicFunction__Group_0_2__0 ) ) + // InternalVampireLanguage.g:4311:2: ( rule__VLSAtomicFunction__Group_0_2__0 ) + { + before(grammarAccess.getVLSAtomicFunctionAccess().getGroup_0_2()); + // InternalVampireLanguage.g:4312:2: ( rule__VLSAtomicFunction__Group_0_2__0 ) + // InternalVampireLanguage.g:4312:3: rule__VLSAtomicFunction__Group_0_2__0 + { + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__Group_0_2__0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAtomicFunctionAccess().getGroup_0_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_0__2__Impl" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_0_2__0" + // InternalVampireLanguage.g:4321:1: rule__VLSAtomicFunction__Group_0_2__0 : rule__VLSAtomicFunction__Group_0_2__0__Impl rule__VLSAtomicFunction__Group_0_2__1 ; + public final void rule__VLSAtomicFunction__Group_0_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4325:1: ( rule__VLSAtomicFunction__Group_0_2__0__Impl rule__VLSAtomicFunction__Group_0_2__1 ) + // InternalVampireLanguage.g:4326:2: rule__VLSAtomicFunction__Group_0_2__0__Impl rule__VLSAtomicFunction__Group_0_2__1 + { + pushFollow(FOLLOW_36); + rule__VLSAtomicFunction__Group_0_2__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__Group_0_2__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_0_2__0" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_0_2__0__Impl" + // InternalVampireLanguage.g:4333:1: rule__VLSAtomicFunction__Group_0_2__0__Impl : ( '(' ) ; + public final void rule__VLSAtomicFunction__Group_0_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4337:1: ( ( '(' ) ) + // InternalVampireLanguage.g:4338:1: ( '(' ) + { + // InternalVampireLanguage.g:4338:1: ( '(' ) + // InternalVampireLanguage.g:4339:2: '(' + { + before(grammarAccess.getVLSAtomicFunctionAccess().getLeftParenthesisKeyword_0_2_0()); + match(input,47,FOLLOW_2); + after(grammarAccess.getVLSAtomicFunctionAccess().getLeftParenthesisKeyword_0_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_0_2__0__Impl" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_0_2__1" + // InternalVampireLanguage.g:4348:1: rule__VLSAtomicFunction__Group_0_2__1 : rule__VLSAtomicFunction__Group_0_2__1__Impl rule__VLSAtomicFunction__Group_0_2__2 ; + public final void rule__VLSAtomicFunction__Group_0_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4352:1: ( rule__VLSAtomicFunction__Group_0_2__1__Impl rule__VLSAtomicFunction__Group_0_2__2 ) + // InternalVampireLanguage.g:4353:2: rule__VLSAtomicFunction__Group_0_2__1__Impl rule__VLSAtomicFunction__Group_0_2__2 + { + pushFollow(FOLLOW_16); + rule__VLSAtomicFunction__Group_0_2__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__Group_0_2__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_0_2__1" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_0_2__1__Impl" + // InternalVampireLanguage.g:4360:1: rule__VLSAtomicFunction__Group_0_2__1__Impl : ( ( rule__VLSAtomicFunction__TermsAssignment_0_2_1 ) ) ; + public final void rule__VLSAtomicFunction__Group_0_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4364:1: ( ( ( rule__VLSAtomicFunction__TermsAssignment_0_2_1 ) ) ) + // InternalVampireLanguage.g:4365:1: ( ( rule__VLSAtomicFunction__TermsAssignment_0_2_1 ) ) + { + // InternalVampireLanguage.g:4365:1: ( ( rule__VLSAtomicFunction__TermsAssignment_0_2_1 ) ) + // InternalVampireLanguage.g:4366:2: ( rule__VLSAtomicFunction__TermsAssignment_0_2_1 ) + { + before(grammarAccess.getVLSAtomicFunctionAccess().getTermsAssignment_0_2_1()); + // InternalVampireLanguage.g:4367:2: ( rule__VLSAtomicFunction__TermsAssignment_0_2_1 ) + // InternalVampireLanguage.g:4367:3: rule__VLSAtomicFunction__TermsAssignment_0_2_1 + { + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__TermsAssignment_0_2_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAtomicFunctionAccess().getTermsAssignment_0_2_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_0_2__1__Impl" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_0_2__2" + // InternalVampireLanguage.g:4375:1: rule__VLSAtomicFunction__Group_0_2__2 : rule__VLSAtomicFunction__Group_0_2__2__Impl rule__VLSAtomicFunction__Group_0_2__3 ; + public final void rule__VLSAtomicFunction__Group_0_2__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4379:1: ( rule__VLSAtomicFunction__Group_0_2__2__Impl rule__VLSAtomicFunction__Group_0_2__3 ) + // InternalVampireLanguage.g:4380:2: rule__VLSAtomicFunction__Group_0_2__2__Impl rule__VLSAtomicFunction__Group_0_2__3 + { + pushFollow(FOLLOW_16); + rule__VLSAtomicFunction__Group_0_2__2__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__Group_0_2__3(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_0_2__2" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_0_2__2__Impl" + // InternalVampireLanguage.g:4387:1: rule__VLSAtomicFunction__Group_0_2__2__Impl : ( ( rule__VLSAtomicFunction__Group_0_2_2__0 )* ) ; + public final void rule__VLSAtomicFunction__Group_0_2__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4391:1: ( ( ( rule__VLSAtomicFunction__Group_0_2_2__0 )* ) ) + // InternalVampireLanguage.g:4392:1: ( ( rule__VLSAtomicFunction__Group_0_2_2__0 )* ) + { + // InternalVampireLanguage.g:4392:1: ( ( rule__VLSAtomicFunction__Group_0_2_2__0 )* ) + // InternalVampireLanguage.g:4393:2: ( rule__VLSAtomicFunction__Group_0_2_2__0 )* + { + before(grammarAccess.getVLSAtomicFunctionAccess().getGroup_0_2_2()); + // InternalVampireLanguage.g:4394:2: ( rule__VLSAtomicFunction__Group_0_2_2__0 )* + loop33: + do { + int alt33=2; + int LA33_0 = input.LA(1); + + if ( (LA33_0==45) ) { + alt33=1; + } + + + switch (alt33) { + case 1 : + // InternalVampireLanguage.g:4394:3: rule__VLSAtomicFunction__Group_0_2_2__0 + { + pushFollow(FOLLOW_10); + rule__VLSAtomicFunction__Group_0_2_2__0(); + + state._fsp--; + + + } + break; + + default : + break loop33; + } + } while (true); + + after(grammarAccess.getVLSAtomicFunctionAccess().getGroup_0_2_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_0_2__2__Impl" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_0_2__3" + // InternalVampireLanguage.g:4402:1: rule__VLSAtomicFunction__Group_0_2__3 : rule__VLSAtomicFunction__Group_0_2__3__Impl ; + public final void rule__VLSAtomicFunction__Group_0_2__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4406:1: ( rule__VLSAtomicFunction__Group_0_2__3__Impl ) + // InternalVampireLanguage.g:4407:2: rule__VLSAtomicFunction__Group_0_2__3__Impl + { + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__Group_0_2__3__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_0_2__3" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_0_2__3__Impl" + // InternalVampireLanguage.g:4413:1: rule__VLSAtomicFunction__Group_0_2__3__Impl : ( ')' ) ; + public final void rule__VLSAtomicFunction__Group_0_2__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4417:1: ( ( ')' ) ) + // InternalVampireLanguage.g:4418:1: ( ')' ) + { + // InternalVampireLanguage.g:4418:1: ( ')' ) + // InternalVampireLanguage.g:4419:2: ')' + { + before(grammarAccess.getVLSAtomicFunctionAccess().getRightParenthesisKeyword_0_2_3()); + match(input,48,FOLLOW_2); + after(grammarAccess.getVLSAtomicFunctionAccess().getRightParenthesisKeyword_0_2_3()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_0_2__3__Impl" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_0_2_2__0" + // InternalVampireLanguage.g:4429:1: rule__VLSAtomicFunction__Group_0_2_2__0 : rule__VLSAtomicFunction__Group_0_2_2__0__Impl rule__VLSAtomicFunction__Group_0_2_2__1 ; + public final void rule__VLSAtomicFunction__Group_0_2_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4433:1: ( rule__VLSAtomicFunction__Group_0_2_2__0__Impl rule__VLSAtomicFunction__Group_0_2_2__1 ) + // InternalVampireLanguage.g:4434:2: rule__VLSAtomicFunction__Group_0_2_2__0__Impl rule__VLSAtomicFunction__Group_0_2_2__1 + { + pushFollow(FOLLOW_36); + rule__VLSAtomicFunction__Group_0_2_2__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__Group_0_2_2__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_0_2_2__0" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_0_2_2__0__Impl" + // InternalVampireLanguage.g:4441:1: rule__VLSAtomicFunction__Group_0_2_2__0__Impl : ( ',' ) ; + public final void rule__VLSAtomicFunction__Group_0_2_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4445:1: ( ( ',' ) ) + // InternalVampireLanguage.g:4446:1: ( ',' ) + { + // InternalVampireLanguage.g:4446:1: ( ',' ) + // InternalVampireLanguage.g:4447:2: ',' + { + before(grammarAccess.getVLSAtomicFunctionAccess().getCommaKeyword_0_2_2_0()); + match(input,45,FOLLOW_2); + after(grammarAccess.getVLSAtomicFunctionAccess().getCommaKeyword_0_2_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_0_2_2__0__Impl" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_0_2_2__1" + // InternalVampireLanguage.g:4456:1: rule__VLSAtomicFunction__Group_0_2_2__1 : rule__VLSAtomicFunction__Group_0_2_2__1__Impl ; + public final void rule__VLSAtomicFunction__Group_0_2_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4460:1: ( rule__VLSAtomicFunction__Group_0_2_2__1__Impl ) + // InternalVampireLanguage.g:4461:2: rule__VLSAtomicFunction__Group_0_2_2__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__Group_0_2_2__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_0_2_2__1" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_0_2_2__1__Impl" + // InternalVampireLanguage.g:4467:1: rule__VLSAtomicFunction__Group_0_2_2__1__Impl : ( ( rule__VLSAtomicFunction__TermsAssignment_0_2_2_1 ) ) ; + public final void rule__VLSAtomicFunction__Group_0_2_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4471:1: ( ( ( rule__VLSAtomicFunction__TermsAssignment_0_2_2_1 ) ) ) + // InternalVampireLanguage.g:4472:1: ( ( rule__VLSAtomicFunction__TermsAssignment_0_2_2_1 ) ) + { + // InternalVampireLanguage.g:4472:1: ( ( rule__VLSAtomicFunction__TermsAssignment_0_2_2_1 ) ) + // InternalVampireLanguage.g:4473:2: ( rule__VLSAtomicFunction__TermsAssignment_0_2_2_1 ) + { + before(grammarAccess.getVLSAtomicFunctionAccess().getTermsAssignment_0_2_2_1()); + // InternalVampireLanguage.g:4474:2: ( rule__VLSAtomicFunction__TermsAssignment_0_2_2_1 ) + // InternalVampireLanguage.g:4474:3: rule__VLSAtomicFunction__TermsAssignment_0_2_2_1 + { + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__TermsAssignment_0_2_2_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAtomicFunctionAccess().getTermsAssignment_0_2_2_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_0_2_2__1__Impl" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_1__0" + // InternalVampireLanguage.g:4483:1: rule__VLSAtomicFunction__Group_1__0 : rule__VLSAtomicFunction__Group_1__0__Impl rule__VLSAtomicFunction__Group_1__1 ; + public final void rule__VLSAtomicFunction__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4487:1: ( rule__VLSAtomicFunction__Group_1__0__Impl rule__VLSAtomicFunction__Group_1__1 ) + // InternalVampireLanguage.g:4488:2: rule__VLSAtomicFunction__Group_1__0__Impl rule__VLSAtomicFunction__Group_1__1 + { + pushFollow(FOLLOW_42); + rule__VLSAtomicFunction__Group_1__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__Group_1__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_1__0" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_1__0__Impl" + // InternalVampireLanguage.g:4495:1: rule__VLSAtomicFunction__Group_1__0__Impl : ( () ) ; + public final void rule__VLSAtomicFunction__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4499:1: ( ( () ) ) + // InternalVampireLanguage.g:4500:1: ( () ) + { + // InternalVampireLanguage.g:4500:1: ( () ) + // InternalVampireLanguage.g:4501:2: () + { + before(grammarAccess.getVLSAtomicFunctionAccess().getVLSLessAction_1_0()); + // InternalVampireLanguage.g:4502:2: () + // InternalVampireLanguage.g:4502:3: + { + } + + after(grammarAccess.getVLSAtomicFunctionAccess().getVLSLessAction_1_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_1__0__Impl" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_1__1" + // InternalVampireLanguage.g:4510:1: rule__VLSAtomicFunction__Group_1__1 : rule__VLSAtomicFunction__Group_1__1__Impl rule__VLSAtomicFunction__Group_1__2 ; + public final void rule__VLSAtomicFunction__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4514:1: ( rule__VLSAtomicFunction__Group_1__1__Impl rule__VLSAtomicFunction__Group_1__2 ) + // InternalVampireLanguage.g:4515:2: rule__VLSAtomicFunction__Group_1__1__Impl rule__VLSAtomicFunction__Group_1__2 + { + pushFollow(FOLLOW_11); + rule__VLSAtomicFunction__Group_1__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__Group_1__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_1__1" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_1__1__Impl" + // InternalVampireLanguage.g:4522:1: rule__VLSAtomicFunction__Group_1__1__Impl : ( ( rule__VLSAtomicFunction__NameAssignment_1_1 ) ) ; + public final void rule__VLSAtomicFunction__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4526:1: ( ( ( rule__VLSAtomicFunction__NameAssignment_1_1 ) ) ) + // InternalVampireLanguage.g:4527:1: ( ( rule__VLSAtomicFunction__NameAssignment_1_1 ) ) + { + // InternalVampireLanguage.g:4527:1: ( ( rule__VLSAtomicFunction__NameAssignment_1_1 ) ) + // InternalVampireLanguage.g:4528:2: ( rule__VLSAtomicFunction__NameAssignment_1_1 ) + { + before(grammarAccess.getVLSAtomicFunctionAccess().getNameAssignment_1_1()); + // InternalVampireLanguage.g:4529:2: ( rule__VLSAtomicFunction__NameAssignment_1_1 ) + // InternalVampireLanguage.g:4529:3: rule__VLSAtomicFunction__NameAssignment_1_1 + { + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__NameAssignment_1_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAtomicFunctionAccess().getNameAssignment_1_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_1__1__Impl" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_1__2" + // InternalVampireLanguage.g:4537:1: rule__VLSAtomicFunction__Group_1__2 : rule__VLSAtomicFunction__Group_1__2__Impl rule__VLSAtomicFunction__Group_1__3 ; + public final void rule__VLSAtomicFunction__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4541:1: ( rule__VLSAtomicFunction__Group_1__2__Impl rule__VLSAtomicFunction__Group_1__3 ) + // InternalVampireLanguage.g:4542:2: rule__VLSAtomicFunction__Group_1__2__Impl rule__VLSAtomicFunction__Group_1__3 + { + pushFollow(FOLLOW_36); + rule__VLSAtomicFunction__Group_1__2__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__Group_1__3(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_1__2" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_1__2__Impl" + // InternalVampireLanguage.g:4549:1: rule__VLSAtomicFunction__Group_1__2__Impl : ( '(' ) ; + public final void rule__VLSAtomicFunction__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4553:1: ( ( '(' ) ) + // InternalVampireLanguage.g:4554:1: ( '(' ) + { + // InternalVampireLanguage.g:4554:1: ( '(' ) + // InternalVampireLanguage.g:4555:2: '(' + { + before(grammarAccess.getVLSAtomicFunctionAccess().getLeftParenthesisKeyword_1_2()); + match(input,47,FOLLOW_2); + after(grammarAccess.getVLSAtomicFunctionAccess().getLeftParenthesisKeyword_1_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_1__2__Impl" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_1__3" + // InternalVampireLanguage.g:4564:1: rule__VLSAtomicFunction__Group_1__3 : rule__VLSAtomicFunction__Group_1__3__Impl rule__VLSAtomicFunction__Group_1__4 ; + public final void rule__VLSAtomicFunction__Group_1__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4568:1: ( rule__VLSAtomicFunction__Group_1__3__Impl rule__VLSAtomicFunction__Group_1__4 ) + // InternalVampireLanguage.g:4569:2: rule__VLSAtomicFunction__Group_1__3__Impl rule__VLSAtomicFunction__Group_1__4 + { + pushFollow(FOLLOW_13); + rule__VLSAtomicFunction__Group_1__3__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__Group_1__4(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_1__3" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_1__3__Impl" + // InternalVampireLanguage.g:4576:1: rule__VLSAtomicFunction__Group_1__3__Impl : ( ( rule__VLSAtomicFunction__TermsAssignment_1_3 ) ) ; + public final void rule__VLSAtomicFunction__Group_1__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4580:1: ( ( ( rule__VLSAtomicFunction__TermsAssignment_1_3 ) ) ) + // InternalVampireLanguage.g:4581:1: ( ( rule__VLSAtomicFunction__TermsAssignment_1_3 ) ) + { + // InternalVampireLanguage.g:4581:1: ( ( rule__VLSAtomicFunction__TermsAssignment_1_3 ) ) + // InternalVampireLanguage.g:4582:2: ( rule__VLSAtomicFunction__TermsAssignment_1_3 ) + { + before(grammarAccess.getVLSAtomicFunctionAccess().getTermsAssignment_1_3()); + // InternalVampireLanguage.g:4583:2: ( rule__VLSAtomicFunction__TermsAssignment_1_3 ) + // InternalVampireLanguage.g:4583:3: rule__VLSAtomicFunction__TermsAssignment_1_3 + { + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__TermsAssignment_1_3(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAtomicFunctionAccess().getTermsAssignment_1_3()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_1__3__Impl" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_1__4" + // InternalVampireLanguage.g:4591:1: rule__VLSAtomicFunction__Group_1__4 : rule__VLSAtomicFunction__Group_1__4__Impl rule__VLSAtomicFunction__Group_1__5 ; + public final void rule__VLSAtomicFunction__Group_1__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4595:1: ( rule__VLSAtomicFunction__Group_1__4__Impl rule__VLSAtomicFunction__Group_1__5 ) + // InternalVampireLanguage.g:4596:2: rule__VLSAtomicFunction__Group_1__4__Impl rule__VLSAtomicFunction__Group_1__5 + { + pushFollow(FOLLOW_36); + rule__VLSAtomicFunction__Group_1__4__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__Group_1__5(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_1__4" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_1__4__Impl" + // InternalVampireLanguage.g:4603:1: rule__VLSAtomicFunction__Group_1__4__Impl : ( ',' ) ; + public final void rule__VLSAtomicFunction__Group_1__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4607:1: ( ( ',' ) ) + // InternalVampireLanguage.g:4608:1: ( ',' ) + { + // InternalVampireLanguage.g:4608:1: ( ',' ) + // InternalVampireLanguage.g:4609:2: ',' + { + before(grammarAccess.getVLSAtomicFunctionAccess().getCommaKeyword_1_4()); + match(input,45,FOLLOW_2); + after(grammarAccess.getVLSAtomicFunctionAccess().getCommaKeyword_1_4()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_1__4__Impl" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_1__5" + // InternalVampireLanguage.g:4618:1: rule__VLSAtomicFunction__Group_1__5 : rule__VLSAtomicFunction__Group_1__5__Impl rule__VLSAtomicFunction__Group_1__6 ; + public final void rule__VLSAtomicFunction__Group_1__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4622:1: ( rule__VLSAtomicFunction__Group_1__5__Impl rule__VLSAtomicFunction__Group_1__6 ) + // InternalVampireLanguage.g:4623:2: rule__VLSAtomicFunction__Group_1__5__Impl rule__VLSAtomicFunction__Group_1__6 + { + pushFollow(FOLLOW_19); + rule__VLSAtomicFunction__Group_1__5__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__Group_1__6(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_1__5" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_1__5__Impl" + // InternalVampireLanguage.g:4630:1: rule__VLSAtomicFunction__Group_1__5__Impl : ( ( rule__VLSAtomicFunction__TermsAssignment_1_5 ) ) ; + public final void rule__VLSAtomicFunction__Group_1__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4634:1: ( ( ( rule__VLSAtomicFunction__TermsAssignment_1_5 ) ) ) + // InternalVampireLanguage.g:4635:1: ( ( rule__VLSAtomicFunction__TermsAssignment_1_5 ) ) + { + // InternalVampireLanguage.g:4635:1: ( ( rule__VLSAtomicFunction__TermsAssignment_1_5 ) ) + // InternalVampireLanguage.g:4636:2: ( rule__VLSAtomicFunction__TermsAssignment_1_5 ) + { + before(grammarAccess.getVLSAtomicFunctionAccess().getTermsAssignment_1_5()); + // InternalVampireLanguage.g:4637:2: ( rule__VLSAtomicFunction__TermsAssignment_1_5 ) + // InternalVampireLanguage.g:4637:3: rule__VLSAtomicFunction__TermsAssignment_1_5 + { + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__TermsAssignment_1_5(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAtomicFunctionAccess().getTermsAssignment_1_5()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_1__5__Impl" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_1__6" + // InternalVampireLanguage.g:4645:1: rule__VLSAtomicFunction__Group_1__6 : rule__VLSAtomicFunction__Group_1__6__Impl ; + public final void rule__VLSAtomicFunction__Group_1__6() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4649:1: ( rule__VLSAtomicFunction__Group_1__6__Impl ) + // InternalVampireLanguage.g:4650:2: rule__VLSAtomicFunction__Group_1__6__Impl + { + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__Group_1__6__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_1__6" + + + // $ANTLR start "rule__VLSAtomicFunction__Group_1__6__Impl" + // InternalVampireLanguage.g:4656:1: rule__VLSAtomicFunction__Group_1__6__Impl : ( ')' ) ; + public final void rule__VLSAtomicFunction__Group_1__6__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4660:1: ( ( ')' ) ) + // InternalVampireLanguage.g:4661:1: ( ')' ) + { + // InternalVampireLanguage.g:4661:1: ( ')' ) + // InternalVampireLanguage.g:4662:2: ')' + { + before(grammarAccess.getVLSAtomicFunctionAccess().getRightParenthesisKeyword_1_6()); + match(input,48,FOLLOW_2); + after(grammarAccess.getVLSAtomicFunctionAccess().getRightParenthesisKeyword_1_6()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__Group_1__6__Impl" + + + // $ANTLR start "rule__VLSFunctionFof__Group__0" + // InternalVampireLanguage.g:4672:1: rule__VLSFunctionFof__Group__0 : rule__VLSFunctionFof__Group__0__Impl rule__VLSFunctionFof__Group__1 ; + public final void rule__VLSFunctionFof__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4676:1: ( rule__VLSFunctionFof__Group__0__Impl rule__VLSFunctionFof__Group__1 ) + // InternalVampireLanguage.g:4677:2: rule__VLSFunctionFof__Group__0__Impl rule__VLSFunctionFof__Group__1 + { + pushFollow(FOLLOW_11); + rule__VLSFunctionFof__Group__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSFunctionFof__Group__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFunctionFof__Group__0" + + + // $ANTLR start "rule__VLSFunctionFof__Group__0__Impl" + // InternalVampireLanguage.g:4684:1: rule__VLSFunctionFof__Group__0__Impl : ( ( rule__VLSFunctionFof__FunctorAssignment_0 ) ) ; + public final void rule__VLSFunctionFof__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4688:1: ( ( ( rule__VLSFunctionFof__FunctorAssignment_0 ) ) ) + // InternalVampireLanguage.g:4689:1: ( ( rule__VLSFunctionFof__FunctorAssignment_0 ) ) + { + // InternalVampireLanguage.g:4689:1: ( ( rule__VLSFunctionFof__FunctorAssignment_0 ) ) + // InternalVampireLanguage.g:4690:2: ( rule__VLSFunctionFof__FunctorAssignment_0 ) + { + before(grammarAccess.getVLSFunctionFofAccess().getFunctorAssignment_0()); + // InternalVampireLanguage.g:4691:2: ( rule__VLSFunctionFof__FunctorAssignment_0 ) + // InternalVampireLanguage.g:4691:3: rule__VLSFunctionFof__FunctorAssignment_0 + { + pushFollow(FOLLOW_2); + rule__VLSFunctionFof__FunctorAssignment_0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSFunctionFofAccess().getFunctorAssignment_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFunctionFof__Group__0__Impl" + + + // $ANTLR start "rule__VLSFunctionFof__Group__1" + // InternalVampireLanguage.g:4699:1: rule__VLSFunctionFof__Group__1 : rule__VLSFunctionFof__Group__1__Impl ; + public final void rule__VLSFunctionFof__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4703:1: ( rule__VLSFunctionFof__Group__1__Impl ) + // InternalVampireLanguage.g:4704:2: rule__VLSFunctionFof__Group__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSFunctionFof__Group__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFunctionFof__Group__1" + + + // $ANTLR start "rule__VLSFunctionFof__Group__1__Impl" + // InternalVampireLanguage.g:4710:1: rule__VLSFunctionFof__Group__1__Impl : ( ( rule__VLSFunctionFof__Group_1__0 )? ) ; + public final void rule__VLSFunctionFof__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4714:1: ( ( ( rule__VLSFunctionFof__Group_1__0 )? ) ) + // InternalVampireLanguage.g:4715:1: ( ( rule__VLSFunctionFof__Group_1__0 )? ) + { + // InternalVampireLanguage.g:4715:1: ( ( rule__VLSFunctionFof__Group_1__0 )? ) + // InternalVampireLanguage.g:4716:2: ( rule__VLSFunctionFof__Group_1__0 )? + { + before(grammarAccess.getVLSFunctionFofAccess().getGroup_1()); + // InternalVampireLanguage.g:4717:2: ( rule__VLSFunctionFof__Group_1__0 )? + int alt34=2; + int LA34_0 = input.LA(1); + + if ( (LA34_0==47) ) { + alt34=1; + } + switch (alt34) { + case 1 : + // InternalVampireLanguage.g:4717:3: rule__VLSFunctionFof__Group_1__0 + { + pushFollow(FOLLOW_2); + rule__VLSFunctionFof__Group_1__0(); + + state._fsp--; + + + } + break; + + } + + after(grammarAccess.getVLSFunctionFofAccess().getGroup_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFunctionFof__Group__1__Impl" + + + // $ANTLR start "rule__VLSFunctionFof__Group_1__0" + // InternalVampireLanguage.g:4726:1: rule__VLSFunctionFof__Group_1__0 : rule__VLSFunctionFof__Group_1__0__Impl rule__VLSFunctionFof__Group_1__1 ; + public final void rule__VLSFunctionFof__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4730:1: ( rule__VLSFunctionFof__Group_1__0__Impl rule__VLSFunctionFof__Group_1__1 ) + // InternalVampireLanguage.g:4731:2: rule__VLSFunctionFof__Group_1__0__Impl rule__VLSFunctionFof__Group_1__1 + { + pushFollow(FOLLOW_36); + rule__VLSFunctionFof__Group_1__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSFunctionFof__Group_1__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFunctionFof__Group_1__0" + + + // $ANTLR start "rule__VLSFunctionFof__Group_1__0__Impl" + // InternalVampireLanguage.g:4738:1: rule__VLSFunctionFof__Group_1__0__Impl : ( '(' ) ; + public final void rule__VLSFunctionFof__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4742:1: ( ( '(' ) ) + // InternalVampireLanguage.g:4743:1: ( '(' ) + { + // InternalVampireLanguage.g:4743:1: ( '(' ) + // InternalVampireLanguage.g:4744:2: '(' + { + before(grammarAccess.getVLSFunctionFofAccess().getLeftParenthesisKeyword_1_0()); + match(input,47,FOLLOW_2); + after(grammarAccess.getVLSFunctionFofAccess().getLeftParenthesisKeyword_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFunctionFof__Group_1__0__Impl" + + + // $ANTLR start "rule__VLSFunctionFof__Group_1__1" + // InternalVampireLanguage.g:4753:1: rule__VLSFunctionFof__Group_1__1 : rule__VLSFunctionFof__Group_1__1__Impl rule__VLSFunctionFof__Group_1__2 ; + public final void rule__VLSFunctionFof__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4757:1: ( rule__VLSFunctionFof__Group_1__1__Impl rule__VLSFunctionFof__Group_1__2 ) + // InternalVampireLanguage.g:4758:2: rule__VLSFunctionFof__Group_1__1__Impl rule__VLSFunctionFof__Group_1__2 + { + pushFollow(FOLLOW_16); + rule__VLSFunctionFof__Group_1__1__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSFunctionFof__Group_1__2(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFunctionFof__Group_1__1" + + + // $ANTLR start "rule__VLSFunctionFof__Group_1__1__Impl" + // InternalVampireLanguage.g:4765:1: rule__VLSFunctionFof__Group_1__1__Impl : ( ( rule__VLSFunctionFof__TermsAssignment_1_1 ) ) ; + public final void rule__VLSFunctionFof__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4769:1: ( ( ( rule__VLSFunctionFof__TermsAssignment_1_1 ) ) ) + // InternalVampireLanguage.g:4770:1: ( ( rule__VLSFunctionFof__TermsAssignment_1_1 ) ) + { + // InternalVampireLanguage.g:4770:1: ( ( rule__VLSFunctionFof__TermsAssignment_1_1 ) ) + // InternalVampireLanguage.g:4771:2: ( rule__VLSFunctionFof__TermsAssignment_1_1 ) + { + before(grammarAccess.getVLSFunctionFofAccess().getTermsAssignment_1_1()); + // InternalVampireLanguage.g:4772:2: ( rule__VLSFunctionFof__TermsAssignment_1_1 ) + // InternalVampireLanguage.g:4772:3: rule__VLSFunctionFof__TermsAssignment_1_1 + { + pushFollow(FOLLOW_2); + rule__VLSFunctionFof__TermsAssignment_1_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSFunctionFofAccess().getTermsAssignment_1_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFunctionFof__Group_1__1__Impl" + + + // $ANTLR start "rule__VLSFunctionFof__Group_1__2" + // InternalVampireLanguage.g:4780:1: rule__VLSFunctionFof__Group_1__2 : rule__VLSFunctionFof__Group_1__2__Impl rule__VLSFunctionFof__Group_1__3 ; + public final void rule__VLSFunctionFof__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4784:1: ( rule__VLSFunctionFof__Group_1__2__Impl rule__VLSFunctionFof__Group_1__3 ) + // InternalVampireLanguage.g:4785:2: rule__VLSFunctionFof__Group_1__2__Impl rule__VLSFunctionFof__Group_1__3 + { + pushFollow(FOLLOW_16); + rule__VLSFunctionFof__Group_1__2__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSFunctionFof__Group_1__3(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFunctionFof__Group_1__2" + + + // $ANTLR start "rule__VLSFunctionFof__Group_1__2__Impl" + // InternalVampireLanguage.g:4792:1: rule__VLSFunctionFof__Group_1__2__Impl : ( ( rule__VLSFunctionFof__Group_1_2__0 )* ) ; + public final void rule__VLSFunctionFof__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4796:1: ( ( ( rule__VLSFunctionFof__Group_1_2__0 )* ) ) + // InternalVampireLanguage.g:4797:1: ( ( rule__VLSFunctionFof__Group_1_2__0 )* ) + { + // InternalVampireLanguage.g:4797:1: ( ( rule__VLSFunctionFof__Group_1_2__0 )* ) + // InternalVampireLanguage.g:4798:2: ( rule__VLSFunctionFof__Group_1_2__0 )* + { + before(grammarAccess.getVLSFunctionFofAccess().getGroup_1_2()); + // InternalVampireLanguage.g:4799:2: ( rule__VLSFunctionFof__Group_1_2__0 )* + loop35: + do { + int alt35=2; + int LA35_0 = input.LA(1); + + if ( (LA35_0==45) ) { + alt35=1; + } + + + switch (alt35) { + case 1 : + // InternalVampireLanguage.g:4799:3: rule__VLSFunctionFof__Group_1_2__0 + { + pushFollow(FOLLOW_10); + rule__VLSFunctionFof__Group_1_2__0(); + + state._fsp--; + + + } + break; + + default : + break loop35; + } + } while (true); + + after(grammarAccess.getVLSFunctionFofAccess().getGroup_1_2()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFunctionFof__Group_1__2__Impl" + + + // $ANTLR start "rule__VLSFunctionFof__Group_1__3" + // InternalVampireLanguage.g:4807:1: rule__VLSFunctionFof__Group_1__3 : rule__VLSFunctionFof__Group_1__3__Impl ; + public final void rule__VLSFunctionFof__Group_1__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4811:1: ( rule__VLSFunctionFof__Group_1__3__Impl ) + // InternalVampireLanguage.g:4812:2: rule__VLSFunctionFof__Group_1__3__Impl + { + pushFollow(FOLLOW_2); + rule__VLSFunctionFof__Group_1__3__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFunctionFof__Group_1__3" + + + // $ANTLR start "rule__VLSFunctionFof__Group_1__3__Impl" + // InternalVampireLanguage.g:4818:1: rule__VLSFunctionFof__Group_1__3__Impl : ( ')' ) ; + public final void rule__VLSFunctionFof__Group_1__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4822:1: ( ( ')' ) ) + // InternalVampireLanguage.g:4823:1: ( ')' ) + { + // InternalVampireLanguage.g:4823:1: ( ')' ) + // InternalVampireLanguage.g:4824:2: ')' + { + before(grammarAccess.getVLSFunctionFofAccess().getRightParenthesisKeyword_1_3()); + match(input,48,FOLLOW_2); + after(grammarAccess.getVLSFunctionFofAccess().getRightParenthesisKeyword_1_3()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFunctionFof__Group_1__3__Impl" + + + // $ANTLR start "rule__VLSFunctionFof__Group_1_2__0" + // InternalVampireLanguage.g:4834:1: rule__VLSFunctionFof__Group_1_2__0 : rule__VLSFunctionFof__Group_1_2__0__Impl rule__VLSFunctionFof__Group_1_2__1 ; + public final void rule__VLSFunctionFof__Group_1_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4838:1: ( rule__VLSFunctionFof__Group_1_2__0__Impl rule__VLSFunctionFof__Group_1_2__1 ) + // InternalVampireLanguage.g:4839:2: rule__VLSFunctionFof__Group_1_2__0__Impl rule__VLSFunctionFof__Group_1_2__1 + { + pushFollow(FOLLOW_36); + rule__VLSFunctionFof__Group_1_2__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSFunctionFof__Group_1_2__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFunctionFof__Group_1_2__0" + + + // $ANTLR start "rule__VLSFunctionFof__Group_1_2__0__Impl" + // InternalVampireLanguage.g:4846:1: rule__VLSFunctionFof__Group_1_2__0__Impl : ( ',' ) ; + public final void rule__VLSFunctionFof__Group_1_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4850:1: ( ( ',' ) ) + // InternalVampireLanguage.g:4851:1: ( ',' ) + { + // InternalVampireLanguage.g:4851:1: ( ',' ) + // InternalVampireLanguage.g:4852:2: ',' + { + before(grammarAccess.getVLSFunctionFofAccess().getCommaKeyword_1_2_0()); + match(input,45,FOLLOW_2); + after(grammarAccess.getVLSFunctionFofAccess().getCommaKeyword_1_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFunctionFof__Group_1_2__0__Impl" + + + // $ANTLR start "rule__VLSFunctionFof__Group_1_2__1" + // InternalVampireLanguage.g:4861:1: rule__VLSFunctionFof__Group_1_2__1 : rule__VLSFunctionFof__Group_1_2__1__Impl ; + public final void rule__VLSFunctionFof__Group_1_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4865:1: ( rule__VLSFunctionFof__Group_1_2__1__Impl ) + // InternalVampireLanguage.g:4866:2: rule__VLSFunctionFof__Group_1_2__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSFunctionFof__Group_1_2__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFunctionFof__Group_1_2__1" + + + // $ANTLR start "rule__VLSFunctionFof__Group_1_2__1__Impl" + // InternalVampireLanguage.g:4872:1: rule__VLSFunctionFof__Group_1_2__1__Impl : ( ( rule__VLSFunctionFof__TermsAssignment_1_2_1 ) ) ; + public final void rule__VLSFunctionFof__Group_1_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4876:1: ( ( ( rule__VLSFunctionFof__TermsAssignment_1_2_1 ) ) ) + // InternalVampireLanguage.g:4877:1: ( ( rule__VLSFunctionFof__TermsAssignment_1_2_1 ) ) + { + // InternalVampireLanguage.g:4877:1: ( ( rule__VLSFunctionFof__TermsAssignment_1_2_1 ) ) + // InternalVampireLanguage.g:4878:2: ( rule__VLSFunctionFof__TermsAssignment_1_2_1 ) + { + before(grammarAccess.getVLSFunctionFofAccess().getTermsAssignment_1_2_1()); + // InternalVampireLanguage.g:4879:2: ( rule__VLSFunctionFof__TermsAssignment_1_2_1 ) + // InternalVampireLanguage.g:4879:3: rule__VLSFunctionFof__TermsAssignment_1_2_1 + { + pushFollow(FOLLOW_2); + rule__VLSFunctionFof__TermsAssignment_1_2_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSFunctionFofAccess().getTermsAssignment_1_2_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFunctionFof__Group_1_2__1__Impl" + + + // $ANTLR start "rule__VLSDefinedTerm__Group_0__0" + // InternalVampireLanguage.g:4888:1: rule__VLSDefinedTerm__Group_0__0 : rule__VLSDefinedTerm__Group_0__0__Impl rule__VLSDefinedTerm__Group_0__1 ; + public final void rule__VLSDefinedTerm__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4892:1: ( rule__VLSDefinedTerm__Group_0__0__Impl rule__VLSDefinedTerm__Group_0__1 ) + // InternalVampireLanguage.g:4893:2: rule__VLSDefinedTerm__Group_0__0__Impl rule__VLSDefinedTerm__Group_0__1 + { + pushFollow(FOLLOW_43); + rule__VLSDefinedTerm__Group_0__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSDefinedTerm__Group_0__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__Group_0__0" + + + // $ANTLR start "rule__VLSDefinedTerm__Group_0__0__Impl" + // InternalVampireLanguage.g:4900:1: rule__VLSDefinedTerm__Group_0__0__Impl : ( () ) ; + public final void rule__VLSDefinedTerm__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4904:1: ( ( () ) ) + // InternalVampireLanguage.g:4905:1: ( () ) + { + // InternalVampireLanguage.g:4905:1: ( () ) + // InternalVampireLanguage.g:4906:2: () + { + before(grammarAccess.getVLSDefinedTermAccess().getVLSIntAction_0_0()); + // InternalVampireLanguage.g:4907:2: () + // InternalVampireLanguage.g:4907:3: + { + } + + after(grammarAccess.getVLSDefinedTermAccess().getVLSIntAction_0_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__Group_0__0__Impl" + + + // $ANTLR start "rule__VLSDefinedTerm__Group_0__1" + // InternalVampireLanguage.g:4915:1: rule__VLSDefinedTerm__Group_0__1 : rule__VLSDefinedTerm__Group_0__1__Impl ; + public final void rule__VLSDefinedTerm__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4919:1: ( rule__VLSDefinedTerm__Group_0__1__Impl ) + // InternalVampireLanguage.g:4920:2: rule__VLSDefinedTerm__Group_0__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSDefinedTerm__Group_0__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__Group_0__1" + + + // $ANTLR start "rule__VLSDefinedTerm__Group_0__1__Impl" + // InternalVampireLanguage.g:4926:1: rule__VLSDefinedTerm__Group_0__1__Impl : ( ( rule__VLSDefinedTerm__ValueAssignment_0_1 ) ) ; + public final void rule__VLSDefinedTerm__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4930:1: ( ( ( rule__VLSDefinedTerm__ValueAssignment_0_1 ) ) ) + // InternalVampireLanguage.g:4931:1: ( ( rule__VLSDefinedTerm__ValueAssignment_0_1 ) ) + { + // InternalVampireLanguage.g:4931:1: ( ( rule__VLSDefinedTerm__ValueAssignment_0_1 ) ) + // InternalVampireLanguage.g:4932:2: ( rule__VLSDefinedTerm__ValueAssignment_0_1 ) + { + before(grammarAccess.getVLSDefinedTermAccess().getValueAssignment_0_1()); + // InternalVampireLanguage.g:4933:2: ( rule__VLSDefinedTerm__ValueAssignment_0_1 ) + // InternalVampireLanguage.g:4933:3: rule__VLSDefinedTerm__ValueAssignment_0_1 + { + pushFollow(FOLLOW_2); + rule__VLSDefinedTerm__ValueAssignment_0_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSDefinedTermAccess().getValueAssignment_0_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__Group_0__1__Impl" + + + // $ANTLR start "rule__VLSDefinedTerm__Group_1__0" + // InternalVampireLanguage.g:4942:1: rule__VLSDefinedTerm__Group_1__0 : rule__VLSDefinedTerm__Group_1__0__Impl rule__VLSDefinedTerm__Group_1__1 ; + public final void rule__VLSDefinedTerm__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4946:1: ( rule__VLSDefinedTerm__Group_1__0__Impl rule__VLSDefinedTerm__Group_1__1 ) + // InternalVampireLanguage.g:4947:2: rule__VLSDefinedTerm__Group_1__0__Impl rule__VLSDefinedTerm__Group_1__1 + { + pushFollow(FOLLOW_44); + rule__VLSDefinedTerm__Group_1__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSDefinedTerm__Group_1__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__Group_1__0" + + + // $ANTLR start "rule__VLSDefinedTerm__Group_1__0__Impl" + // InternalVampireLanguage.g:4954:1: rule__VLSDefinedTerm__Group_1__0__Impl : ( () ) ; + public final void rule__VLSDefinedTerm__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4958:1: ( ( () ) ) + // InternalVampireLanguage.g:4959:1: ( () ) + { + // InternalVampireLanguage.g:4959:1: ( () ) + // InternalVampireLanguage.g:4960:2: () + { + before(grammarAccess.getVLSDefinedTermAccess().getVLSRealAction_1_0()); + // InternalVampireLanguage.g:4961:2: () + // InternalVampireLanguage.g:4961:3: + { + } + + after(grammarAccess.getVLSDefinedTermAccess().getVLSRealAction_1_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__Group_1__0__Impl" + + + // $ANTLR start "rule__VLSDefinedTerm__Group_1__1" + // InternalVampireLanguage.g:4969:1: rule__VLSDefinedTerm__Group_1__1 : rule__VLSDefinedTerm__Group_1__1__Impl ; + public final void rule__VLSDefinedTerm__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4973:1: ( rule__VLSDefinedTerm__Group_1__1__Impl ) + // InternalVampireLanguage.g:4974:2: rule__VLSDefinedTerm__Group_1__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSDefinedTerm__Group_1__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__Group_1__1" + + + // $ANTLR start "rule__VLSDefinedTerm__Group_1__1__Impl" + // InternalVampireLanguage.g:4980:1: rule__VLSDefinedTerm__Group_1__1__Impl : ( ( rule__VLSDefinedTerm__ValueAssignment_1_1 ) ) ; + public final void rule__VLSDefinedTerm__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:4984:1: ( ( ( rule__VLSDefinedTerm__ValueAssignment_1_1 ) ) ) + // InternalVampireLanguage.g:4985:1: ( ( rule__VLSDefinedTerm__ValueAssignment_1_1 ) ) + { + // InternalVampireLanguage.g:4985:1: ( ( rule__VLSDefinedTerm__ValueAssignment_1_1 ) ) + // InternalVampireLanguage.g:4986:2: ( rule__VLSDefinedTerm__ValueAssignment_1_1 ) + { + before(grammarAccess.getVLSDefinedTermAccess().getValueAssignment_1_1()); + // InternalVampireLanguage.g:4987:2: ( rule__VLSDefinedTerm__ValueAssignment_1_1 ) + // InternalVampireLanguage.g:4987:3: rule__VLSDefinedTerm__ValueAssignment_1_1 + { + pushFollow(FOLLOW_2); + rule__VLSDefinedTerm__ValueAssignment_1_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSDefinedTermAccess().getValueAssignment_1_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__Group_1__1__Impl" + + + // $ANTLR start "rule__VLSDefinedTerm__Group_2__0" + // InternalVampireLanguage.g:4996:1: rule__VLSDefinedTerm__Group_2__0 : rule__VLSDefinedTerm__Group_2__0__Impl rule__VLSDefinedTerm__Group_2__1 ; + public final void rule__VLSDefinedTerm__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5000:1: ( rule__VLSDefinedTerm__Group_2__0__Impl rule__VLSDefinedTerm__Group_2__1 ) + // InternalVampireLanguage.g:5001:2: rule__VLSDefinedTerm__Group_2__0__Impl rule__VLSDefinedTerm__Group_2__1 + { + pushFollow(FOLLOW_45); + rule__VLSDefinedTerm__Group_2__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSDefinedTerm__Group_2__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__Group_2__0" + + + // $ANTLR start "rule__VLSDefinedTerm__Group_2__0__Impl" + // InternalVampireLanguage.g:5008:1: rule__VLSDefinedTerm__Group_2__0__Impl : ( () ) ; + public final void rule__VLSDefinedTerm__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5012:1: ( ( () ) ) + // InternalVampireLanguage.g:5013:1: ( () ) + { + // InternalVampireLanguage.g:5013:1: ( () ) + // InternalVampireLanguage.g:5014:2: () + { + before(grammarAccess.getVLSDefinedTermAccess().getVLSRationalAction_2_0()); + // InternalVampireLanguage.g:5015:2: () + // InternalVampireLanguage.g:5015:3: + { + } + + after(grammarAccess.getVLSDefinedTermAccess().getVLSRationalAction_2_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__Group_2__0__Impl" + + + // $ANTLR start "rule__VLSDefinedTerm__Group_2__1" + // InternalVampireLanguage.g:5023:1: rule__VLSDefinedTerm__Group_2__1 : rule__VLSDefinedTerm__Group_2__1__Impl ; + public final void rule__VLSDefinedTerm__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5027:1: ( rule__VLSDefinedTerm__Group_2__1__Impl ) + // InternalVampireLanguage.g:5028:2: rule__VLSDefinedTerm__Group_2__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSDefinedTerm__Group_2__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__Group_2__1" + + + // $ANTLR start "rule__VLSDefinedTerm__Group_2__1__Impl" + // InternalVampireLanguage.g:5034:1: rule__VLSDefinedTerm__Group_2__1__Impl : ( ( rule__VLSDefinedTerm__ValueAssignment_2_1 ) ) ; + public final void rule__VLSDefinedTerm__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5038:1: ( ( ( rule__VLSDefinedTerm__ValueAssignment_2_1 ) ) ) + // InternalVampireLanguage.g:5039:1: ( ( rule__VLSDefinedTerm__ValueAssignment_2_1 ) ) + { + // InternalVampireLanguage.g:5039:1: ( ( rule__VLSDefinedTerm__ValueAssignment_2_1 ) ) + // InternalVampireLanguage.g:5040:2: ( rule__VLSDefinedTerm__ValueAssignment_2_1 ) + { + before(grammarAccess.getVLSDefinedTermAccess().getValueAssignment_2_1()); + // InternalVampireLanguage.g:5041:2: ( rule__VLSDefinedTerm__ValueAssignment_2_1 ) + // InternalVampireLanguage.g:5041:3: rule__VLSDefinedTerm__ValueAssignment_2_1 + { + pushFollow(FOLLOW_2); + rule__VLSDefinedTerm__ValueAssignment_2_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSDefinedTermAccess().getValueAssignment_2_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__Group_2__1__Impl" + + + // $ANTLR start "rule__VLSDefinedTerm__Group_3__0" + // InternalVampireLanguage.g:5050:1: rule__VLSDefinedTerm__Group_3__0 : rule__VLSDefinedTerm__Group_3__0__Impl rule__VLSDefinedTerm__Group_3__1 ; + public final void rule__VLSDefinedTerm__Group_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5054:1: ( rule__VLSDefinedTerm__Group_3__0__Impl rule__VLSDefinedTerm__Group_3__1 ) + // InternalVampireLanguage.g:5055:2: rule__VLSDefinedTerm__Group_3__0__Impl rule__VLSDefinedTerm__Group_3__1 + { + pushFollow(FOLLOW_36); + rule__VLSDefinedTerm__Group_3__0__Impl(); + + state._fsp--; + + pushFollow(FOLLOW_2); + rule__VLSDefinedTerm__Group_3__1(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__Group_3__0" + + + // $ANTLR start "rule__VLSDefinedTerm__Group_3__0__Impl" + // InternalVampireLanguage.g:5062:1: rule__VLSDefinedTerm__Group_3__0__Impl : ( () ) ; + public final void rule__VLSDefinedTerm__Group_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5066:1: ( ( () ) ) + // InternalVampireLanguage.g:5067:1: ( () ) + { + // InternalVampireLanguage.g:5067:1: ( () ) + // InternalVampireLanguage.g:5068:2: () + { + before(grammarAccess.getVLSDefinedTermAccess().getVLSDoubleQuoteAction_3_0()); + // InternalVampireLanguage.g:5069:2: () + // InternalVampireLanguage.g:5069:3: + { + } + + after(grammarAccess.getVLSDefinedTermAccess().getVLSDoubleQuoteAction_3_0()); + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__Group_3__0__Impl" + + + // $ANTLR start "rule__VLSDefinedTerm__Group_3__1" + // InternalVampireLanguage.g:5077:1: rule__VLSDefinedTerm__Group_3__1 : rule__VLSDefinedTerm__Group_3__1__Impl ; + public final void rule__VLSDefinedTerm__Group_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5081:1: ( rule__VLSDefinedTerm__Group_3__1__Impl ) + // InternalVampireLanguage.g:5082:2: rule__VLSDefinedTerm__Group_3__1__Impl + { + pushFollow(FOLLOW_2); + rule__VLSDefinedTerm__Group_3__1__Impl(); + + state._fsp--; + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__Group_3__1" + + + // $ANTLR start "rule__VLSDefinedTerm__Group_3__1__Impl" + // InternalVampireLanguage.g:5088:1: rule__VLSDefinedTerm__Group_3__1__Impl : ( ( rule__VLSDefinedTerm__ValueAssignment_3_1 ) ) ; + public final void rule__VLSDefinedTerm__Group_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5092:1: ( ( ( rule__VLSDefinedTerm__ValueAssignment_3_1 ) ) ) + // InternalVampireLanguage.g:5093:1: ( ( rule__VLSDefinedTerm__ValueAssignment_3_1 ) ) + { + // InternalVampireLanguage.g:5093:1: ( ( rule__VLSDefinedTerm__ValueAssignment_3_1 ) ) + // InternalVampireLanguage.g:5094:2: ( rule__VLSDefinedTerm__ValueAssignment_3_1 ) + { + before(grammarAccess.getVLSDefinedTermAccess().getValueAssignment_3_1()); + // InternalVampireLanguage.g:5095:2: ( rule__VLSDefinedTerm__ValueAssignment_3_1 ) + // InternalVampireLanguage.g:5095:3: rule__VLSDefinedTerm__ValueAssignment_3_1 + { + pushFollow(FOLLOW_2); + rule__VLSDefinedTerm__ValueAssignment_3_1(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSDefinedTermAccess().getValueAssignment_3_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__Group_3__1__Impl" + + + // $ANTLR start "rule__VampireModel__IncludesAssignment_0" + // InternalVampireLanguage.g:5104:1: rule__VampireModel__IncludesAssignment_0 : ( ruleVLSInclude ) ; + public final void rule__VampireModel__IncludesAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5108:1: ( ( ruleVLSInclude ) ) + // InternalVampireLanguage.g:5109:2: ( ruleVLSInclude ) + { + // InternalVampireLanguage.g:5109:2: ( ruleVLSInclude ) + // InternalVampireLanguage.g:5110:3: ruleVLSInclude + { + before(grammarAccess.getVampireModelAccess().getIncludesVLSIncludeParserRuleCall_0_0()); + pushFollow(FOLLOW_2); + ruleVLSInclude(); + + state._fsp--; + + after(grammarAccess.getVampireModelAccess().getIncludesVLSIncludeParserRuleCall_0_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VampireModel__IncludesAssignment_0" + + + // $ANTLR start "rule__VampireModel__CommentsAssignment_1" + // InternalVampireLanguage.g:5119:1: rule__VampireModel__CommentsAssignment_1 : ( ruleVLSComment ) ; + public final void rule__VampireModel__CommentsAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5123:1: ( ( ruleVLSComment ) ) + // InternalVampireLanguage.g:5124:2: ( ruleVLSComment ) + { + // InternalVampireLanguage.g:5124:2: ( ruleVLSComment ) + // InternalVampireLanguage.g:5125:3: ruleVLSComment + { + before(grammarAccess.getVampireModelAccess().getCommentsVLSCommentParserRuleCall_1_0()); + pushFollow(FOLLOW_2); + ruleVLSComment(); + + state._fsp--; + + after(grammarAccess.getVampireModelAccess().getCommentsVLSCommentParserRuleCall_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VampireModel__CommentsAssignment_1" + + + // $ANTLR start "rule__VampireModel__FormulasAssignment_2" + // InternalVampireLanguage.g:5134:1: rule__VampireModel__FormulasAssignment_2 : ( ruleVLSFofFormula ) ; + public final void rule__VampireModel__FormulasAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5138:1: ( ( ruleVLSFofFormula ) ) + // InternalVampireLanguage.g:5139:2: ( ruleVLSFofFormula ) + { + // InternalVampireLanguage.g:5139:2: ( ruleVLSFofFormula ) + // InternalVampireLanguage.g:5140:3: ruleVLSFofFormula + { + before(grammarAccess.getVampireModelAccess().getFormulasVLSFofFormulaParserRuleCall_2_0()); + pushFollow(FOLLOW_2); + ruleVLSFofFormula(); + + state._fsp--; + + after(grammarAccess.getVampireModelAccess().getFormulasVLSFofFormulaParserRuleCall_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VampireModel__FormulasAssignment_2" + + + // $ANTLR start "rule__VLSInclude__FileNameAssignment_1" + // InternalVampireLanguage.g:5149:1: rule__VLSInclude__FileNameAssignment_1 : ( RULE_SINGLE_QUOTE ) ; + public final void rule__VLSInclude__FileNameAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5153:1: ( ( RULE_SINGLE_QUOTE ) ) + // InternalVampireLanguage.g:5154:2: ( RULE_SINGLE_QUOTE ) + { + // InternalVampireLanguage.g:5154:2: ( RULE_SINGLE_QUOTE ) + // InternalVampireLanguage.g:5155:3: RULE_SINGLE_QUOTE + { + before(grammarAccess.getVLSIncludeAccess().getFileNameSINGLE_QUOTETerminalRuleCall_1_0()); + match(input,RULE_SINGLE_QUOTE,FOLLOW_2); + after(grammarAccess.getVLSIncludeAccess().getFileNameSINGLE_QUOTETerminalRuleCall_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__FileNameAssignment_1" + + + // $ANTLR start "rule__VLSInclude__NamesAssignment_2_1" + // InternalVampireLanguage.g:5164:1: rule__VLSInclude__NamesAssignment_2_1 : ( ruleVLSName ) ; + public final void rule__VLSInclude__NamesAssignment_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5168:1: ( ( ruleVLSName ) ) + // InternalVampireLanguage.g:5169:2: ( ruleVLSName ) + { + // InternalVampireLanguage.g:5169:2: ( ruleVLSName ) + // InternalVampireLanguage.g:5170:3: ruleVLSName + { + before(grammarAccess.getVLSIncludeAccess().getNamesVLSNameParserRuleCall_2_1_0()); + pushFollow(FOLLOW_2); + ruleVLSName(); + + state._fsp--; + + after(grammarAccess.getVLSIncludeAccess().getNamesVLSNameParserRuleCall_2_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__NamesAssignment_2_1" + + + // $ANTLR start "rule__VLSInclude__NamesAssignment_2_2_1" + // InternalVampireLanguage.g:5179:1: rule__VLSInclude__NamesAssignment_2_2_1 : ( ruleVLSName ) ; + public final void rule__VLSInclude__NamesAssignment_2_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5183:1: ( ( ruleVLSName ) ) + // InternalVampireLanguage.g:5184:2: ( ruleVLSName ) + { + // InternalVampireLanguage.g:5184:2: ( ruleVLSName ) + // InternalVampireLanguage.g:5185:3: ruleVLSName + { + before(grammarAccess.getVLSIncludeAccess().getNamesVLSNameParserRuleCall_2_2_1_0()); + pushFollow(FOLLOW_2); + ruleVLSName(); + + state._fsp--; + + after(grammarAccess.getVLSIncludeAccess().getNamesVLSNameParserRuleCall_2_2_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSInclude__NamesAssignment_2_2_1" + + + // $ANTLR start "rule__VLSName__NameAssignment" + // InternalVampireLanguage.g:5194:1: rule__VLSName__NameAssignment : ( ( rule__VLSName__NameAlternatives_0 ) ) ; + public final void rule__VLSName__NameAssignment() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5198:1: ( ( ( rule__VLSName__NameAlternatives_0 ) ) ) + // InternalVampireLanguage.g:5199:2: ( ( rule__VLSName__NameAlternatives_0 ) ) + { + // InternalVampireLanguage.g:5199:2: ( ( rule__VLSName__NameAlternatives_0 ) ) + // InternalVampireLanguage.g:5200:3: ( rule__VLSName__NameAlternatives_0 ) + { + before(grammarAccess.getVLSNameAccess().getNameAlternatives_0()); + // InternalVampireLanguage.g:5201:3: ( rule__VLSName__NameAlternatives_0 ) + // InternalVampireLanguage.g:5201:4: rule__VLSName__NameAlternatives_0 + { + pushFollow(FOLLOW_2); + rule__VLSName__NameAlternatives_0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSNameAccess().getNameAlternatives_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSName__NameAssignment" + + + // $ANTLR start "rule__VLSComment__CommentAssignment" + // InternalVampireLanguage.g:5209:1: rule__VLSComment__CommentAssignment : ( RULE_SINGLE_COMMENT ) ; + public final void rule__VLSComment__CommentAssignment() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5213:1: ( ( RULE_SINGLE_COMMENT ) ) + // InternalVampireLanguage.g:5214:2: ( RULE_SINGLE_COMMENT ) + { + // InternalVampireLanguage.g:5214:2: ( RULE_SINGLE_COMMENT ) + // InternalVampireLanguage.g:5215:3: RULE_SINGLE_COMMENT + { + before(grammarAccess.getVLSCommentAccess().getCommentSINGLE_COMMENTTerminalRuleCall_0()); + match(input,RULE_SINGLE_COMMENT,FOLLOW_2); + after(grammarAccess.getVLSCommentAccess().getCommentSINGLE_COMMENTTerminalRuleCall_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSComment__CommentAssignment" + + + // $ANTLR start "rule__VLSFofFormula__NameAssignment_2" + // InternalVampireLanguage.g:5224:1: rule__VLSFofFormula__NameAssignment_2 : ( ( rule__VLSFofFormula__NameAlternatives_2_0 ) ) ; + public final void rule__VLSFofFormula__NameAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5228:1: ( ( ( rule__VLSFofFormula__NameAlternatives_2_0 ) ) ) + // InternalVampireLanguage.g:5229:2: ( ( rule__VLSFofFormula__NameAlternatives_2_0 ) ) + { + // InternalVampireLanguage.g:5229:2: ( ( rule__VLSFofFormula__NameAlternatives_2_0 ) ) + // InternalVampireLanguage.g:5230:3: ( rule__VLSFofFormula__NameAlternatives_2_0 ) + { + before(grammarAccess.getVLSFofFormulaAccess().getNameAlternatives_2_0()); + // InternalVampireLanguage.g:5231:3: ( rule__VLSFofFormula__NameAlternatives_2_0 ) + // InternalVampireLanguage.g:5231:4: rule__VLSFofFormula__NameAlternatives_2_0 + { + pushFollow(FOLLOW_2); + rule__VLSFofFormula__NameAlternatives_2_0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSFofFormulaAccess().getNameAlternatives_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__NameAssignment_2" + + + // $ANTLR start "rule__VLSFofFormula__FofRoleAssignment_4" + // InternalVampireLanguage.g:5239:1: rule__VLSFofFormula__FofRoleAssignment_4 : ( ruleVLSRole ) ; + public final void rule__VLSFofFormula__FofRoleAssignment_4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5243:1: ( ( ruleVLSRole ) ) + // InternalVampireLanguage.g:5244:2: ( ruleVLSRole ) + { + // InternalVampireLanguage.g:5244:2: ( ruleVLSRole ) + // InternalVampireLanguage.g:5245:3: ruleVLSRole + { + before(grammarAccess.getVLSFofFormulaAccess().getFofRoleVLSRoleParserRuleCall_4_0()); + pushFollow(FOLLOW_2); + ruleVLSRole(); + + state._fsp--; + + after(grammarAccess.getVLSFofFormulaAccess().getFofRoleVLSRoleParserRuleCall_4_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__FofRoleAssignment_4" + + + // $ANTLR start "rule__VLSFofFormula__FofFormulaAssignment_6" + // InternalVampireLanguage.g:5254:1: rule__VLSFofFormula__FofFormulaAssignment_6 : ( ruleVLSTerm ) ; + public final void rule__VLSFofFormula__FofFormulaAssignment_6() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5258:1: ( ( ruleVLSTerm ) ) + // InternalVampireLanguage.g:5259:2: ( ruleVLSTerm ) + { + // InternalVampireLanguage.g:5259:2: ( ruleVLSTerm ) + // InternalVampireLanguage.g:5260:3: ruleVLSTerm + { + before(grammarAccess.getVLSFofFormulaAccess().getFofFormulaVLSTermParserRuleCall_6_0()); + pushFollow(FOLLOW_2); + ruleVLSTerm(); + + state._fsp--; + + after(grammarAccess.getVLSFofFormulaAccess().getFofFormulaVLSTermParserRuleCall_6_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__FofFormulaAssignment_6" + + + // $ANTLR start "rule__VLSFofFormula__AnnotationsAssignment_7_1" + // InternalVampireLanguage.g:5269:1: rule__VLSFofFormula__AnnotationsAssignment_7_1 : ( ruleVLSAnnotation ) ; + public final void rule__VLSFofFormula__AnnotationsAssignment_7_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5273:1: ( ( ruleVLSAnnotation ) ) + // InternalVampireLanguage.g:5274:2: ( ruleVLSAnnotation ) + { + // InternalVampireLanguage.g:5274:2: ( ruleVLSAnnotation ) + // InternalVampireLanguage.g:5275:3: ruleVLSAnnotation + { + before(grammarAccess.getVLSFofFormulaAccess().getAnnotationsVLSAnnotationParserRuleCall_7_1_0()); + pushFollow(FOLLOW_2); + ruleVLSAnnotation(); + + state._fsp--; + + after(grammarAccess.getVLSFofFormulaAccess().getAnnotationsVLSAnnotationParserRuleCall_7_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFofFormula__AnnotationsAssignment_7_1" + + + // $ANTLR start "rule__VLSAnnotation__NameAssignment_1" + // InternalVampireLanguage.g:5284:1: rule__VLSAnnotation__NameAssignment_1 : ( ( rule__VLSAnnotation__NameAlternatives_1_0 ) ) ; + public final void rule__VLSAnnotation__NameAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5288:1: ( ( ( rule__VLSAnnotation__NameAlternatives_1_0 ) ) ) + // InternalVampireLanguage.g:5289:2: ( ( rule__VLSAnnotation__NameAlternatives_1_0 ) ) + { + // InternalVampireLanguage.g:5289:2: ( ( rule__VLSAnnotation__NameAlternatives_1_0 ) ) + // InternalVampireLanguage.g:5290:3: ( rule__VLSAnnotation__NameAlternatives_1_0 ) + { + before(grammarAccess.getVLSAnnotationAccess().getNameAlternatives_1_0()); + // InternalVampireLanguage.g:5291:3: ( rule__VLSAnnotation__NameAlternatives_1_0 ) + // InternalVampireLanguage.g:5291:4: rule__VLSAnnotation__NameAlternatives_1_0 + { + pushFollow(FOLLOW_2); + rule__VLSAnnotation__NameAlternatives_1_0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAnnotationAccess().getNameAlternatives_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotation__NameAssignment_1" + + + // $ANTLR start "rule__VLSAnnotation__FollowupAssignment_2_1" + // InternalVampireLanguage.g:5299:1: rule__VLSAnnotation__FollowupAssignment_2_1 : ( ruleVLSAnnotationTerms ) ; + public final void rule__VLSAnnotation__FollowupAssignment_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5303:1: ( ( ruleVLSAnnotationTerms ) ) + // InternalVampireLanguage.g:5304:2: ( ruleVLSAnnotationTerms ) + { + // InternalVampireLanguage.g:5304:2: ( ruleVLSAnnotationTerms ) + // InternalVampireLanguage.g:5305:3: ruleVLSAnnotationTerms + { + before(grammarAccess.getVLSAnnotationAccess().getFollowupVLSAnnotationTermsParserRuleCall_2_1_0()); + pushFollow(FOLLOW_2); + ruleVLSAnnotationTerms(); + + state._fsp--; + + after(grammarAccess.getVLSAnnotationAccess().getFollowupVLSAnnotationTermsParserRuleCall_2_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotation__FollowupAssignment_2_1" + + + // $ANTLR start "rule__VLSAnnotationTerms__TermsAssignment_0" + // InternalVampireLanguage.g:5314:1: rule__VLSAnnotationTerms__TermsAssignment_0 : ( ruleVLSAnnotation ) ; + public final void rule__VLSAnnotationTerms__TermsAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5318:1: ( ( ruleVLSAnnotation ) ) + // InternalVampireLanguage.g:5319:2: ( ruleVLSAnnotation ) + { + // InternalVampireLanguage.g:5319:2: ( ruleVLSAnnotation ) + // InternalVampireLanguage.g:5320:3: ruleVLSAnnotation + { + before(grammarAccess.getVLSAnnotationTermsAccess().getTermsVLSAnnotationParserRuleCall_0_0()); + pushFollow(FOLLOW_2); + ruleVLSAnnotation(); + + state._fsp--; + + after(grammarAccess.getVLSAnnotationTermsAccess().getTermsVLSAnnotationParserRuleCall_0_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotationTerms__TermsAssignment_0" + + + // $ANTLR start "rule__VLSAnnotationTerms__TermsAssignment_1_1" + // InternalVampireLanguage.g:5329:1: rule__VLSAnnotationTerms__TermsAssignment_1_1 : ( ruleVLSAnnotation ) ; + public final void rule__VLSAnnotationTerms__TermsAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5333:1: ( ( ruleVLSAnnotation ) ) + // InternalVampireLanguage.g:5334:2: ( ruleVLSAnnotation ) + { + // InternalVampireLanguage.g:5334:2: ( ruleVLSAnnotation ) + // InternalVampireLanguage.g:5335:3: ruleVLSAnnotation + { + before(grammarAccess.getVLSAnnotationTermsAccess().getTermsVLSAnnotationParserRuleCall_1_1_0()); + pushFollow(FOLLOW_2); + ruleVLSAnnotation(); + + state._fsp--; + + after(grammarAccess.getVLSAnnotationTermsAccess().getTermsVLSAnnotationParserRuleCall_1_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAnnotationTerms__TermsAssignment_1_1" + + + // $ANTLR start "rule__VLSBinary__RightAssignment_1_0_1" + // InternalVampireLanguage.g:5344:1: rule__VLSBinary__RightAssignment_1_0_1 : ( ruleVLSUnitaryFormula ) ; + public final void rule__VLSBinary__RightAssignment_1_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5348:1: ( ( ruleVLSUnitaryFormula ) ) + // InternalVampireLanguage.g:5349:2: ( ruleVLSUnitaryFormula ) + { + // InternalVampireLanguage.g:5349:2: ( ruleVLSUnitaryFormula ) + // InternalVampireLanguage.g:5350:3: ruleVLSUnitaryFormula + { + before(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_0_1_0()); + pushFollow(FOLLOW_2); + ruleVLSUnitaryFormula(); + + state._fsp--; + + after(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_0_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__RightAssignment_1_0_1" + + + // $ANTLR start "rule__VLSBinary__RightAssignment_1_1_2" + // InternalVampireLanguage.g:5359:1: rule__VLSBinary__RightAssignment_1_1_2 : ( ruleVLSUnitaryFormula ) ; + public final void rule__VLSBinary__RightAssignment_1_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5363:1: ( ( ruleVLSUnitaryFormula ) ) + // InternalVampireLanguage.g:5364:2: ( ruleVLSUnitaryFormula ) + { + // InternalVampireLanguage.g:5364:2: ( ruleVLSUnitaryFormula ) + // InternalVampireLanguage.g:5365:3: ruleVLSUnitaryFormula + { + before(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_1_2_0()); + pushFollow(FOLLOW_2); + ruleVLSUnitaryFormula(); + + state._fsp--; + + after(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_1_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__RightAssignment_1_1_2" + + + // $ANTLR start "rule__VLSBinary__RightAssignment_1_2_2" + // InternalVampireLanguage.g:5374:1: rule__VLSBinary__RightAssignment_1_2_2 : ( ruleVLSUnitaryFormula ) ; + public final void rule__VLSBinary__RightAssignment_1_2_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5378:1: ( ( ruleVLSUnitaryFormula ) ) + // InternalVampireLanguage.g:5379:2: ( ruleVLSUnitaryFormula ) + { + // InternalVampireLanguage.g:5379:2: ( ruleVLSUnitaryFormula ) + // InternalVampireLanguage.g:5380:3: ruleVLSUnitaryFormula + { + before(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_2_2_0()); + pushFollow(FOLLOW_2); + ruleVLSUnitaryFormula(); + + state._fsp--; + + after(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_2_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSBinary__RightAssignment_1_2_2" + + + // $ANTLR start "rule__VLSUniversalQuantifier__VariablesAssignment_1_2" + // InternalVampireLanguage.g:5389:1: rule__VLSUniversalQuantifier__VariablesAssignment_1_2 : ( ruleVLSVariable ) ; + public final void rule__VLSUniversalQuantifier__VariablesAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5393:1: ( ( ruleVLSVariable ) ) + // InternalVampireLanguage.g:5394:2: ( ruleVLSVariable ) + { + // InternalVampireLanguage.g:5394:2: ( ruleVLSVariable ) + // InternalVampireLanguage.g:5395:3: ruleVLSVariable + { + before(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_2_0()); + pushFollow(FOLLOW_2); + ruleVLSVariable(); + + state._fsp--; + + after(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__VariablesAssignment_1_2" + + + // $ANTLR start "rule__VLSUniversalQuantifier__VariablesAssignment_1_3_1" + // InternalVampireLanguage.g:5404:1: rule__VLSUniversalQuantifier__VariablesAssignment_1_3_1 : ( ruleVLSVariable ) ; + public final void rule__VLSUniversalQuantifier__VariablesAssignment_1_3_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5408:1: ( ( ruleVLSVariable ) ) + // InternalVampireLanguage.g:5409:2: ( ruleVLSVariable ) + { + // InternalVampireLanguage.g:5409:2: ( ruleVLSVariable ) + // InternalVampireLanguage.g:5410:3: ruleVLSVariable + { + before(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_3_1_0()); + pushFollow(FOLLOW_2); + ruleVLSVariable(); + + state._fsp--; + + after(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_3_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__VariablesAssignment_1_3_1" + + + // $ANTLR start "rule__VLSUniversalQuantifier__OperandAssignment_2" + // InternalVampireLanguage.g:5419:1: rule__VLSUniversalQuantifier__OperandAssignment_2 : ( ruleVLSUnitaryFormula ) ; + public final void rule__VLSUniversalQuantifier__OperandAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5423:1: ( ( ruleVLSUnitaryFormula ) ) + // InternalVampireLanguage.g:5424:2: ( ruleVLSUnitaryFormula ) + { + // InternalVampireLanguage.g:5424:2: ( ruleVLSUnitaryFormula ) + // InternalVampireLanguage.g:5425:3: ruleVLSUnitaryFormula + { + before(grammarAccess.getVLSUniversalQuantifierAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0()); + pushFollow(FOLLOW_2); + ruleVLSUnitaryFormula(); + + state._fsp--; + + after(grammarAccess.getVLSUniversalQuantifierAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUniversalQuantifier__OperandAssignment_2" + + + // $ANTLR start "rule__VLSExistentialQuantifier__VariablesAssignment_1_2" + // InternalVampireLanguage.g:5434:1: rule__VLSExistentialQuantifier__VariablesAssignment_1_2 : ( ruleVLSVariable ) ; + public final void rule__VLSExistentialQuantifier__VariablesAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5438:1: ( ( ruleVLSVariable ) ) + // InternalVampireLanguage.g:5439:2: ( ruleVLSVariable ) + { + // InternalVampireLanguage.g:5439:2: ( ruleVLSVariable ) + // InternalVampireLanguage.g:5440:3: ruleVLSVariable + { + before(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_2_0()); + pushFollow(FOLLOW_2); + ruleVLSVariable(); + + state._fsp--; + + after(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__VariablesAssignment_1_2" + + + // $ANTLR start "rule__VLSExistentialQuantifier__VariablesAssignment_1_3_1" + // InternalVampireLanguage.g:5449:1: rule__VLSExistentialQuantifier__VariablesAssignment_1_3_1 : ( ruleVLSVariable ) ; + public final void rule__VLSExistentialQuantifier__VariablesAssignment_1_3_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5453:1: ( ( ruleVLSVariable ) ) + // InternalVampireLanguage.g:5454:2: ( ruleVLSVariable ) + { + // InternalVampireLanguage.g:5454:2: ( ruleVLSVariable ) + // InternalVampireLanguage.g:5455:3: ruleVLSVariable + { + before(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_3_1_0()); + pushFollow(FOLLOW_2); + ruleVLSVariable(); + + state._fsp--; + + after(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_3_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__VariablesAssignment_1_3_1" + + + // $ANTLR start "rule__VLSExistentialQuantifier__OperandAssignment_2" + // InternalVampireLanguage.g:5464:1: rule__VLSExistentialQuantifier__OperandAssignment_2 : ( ruleVLSUnitaryFormula ) ; + public final void rule__VLSExistentialQuantifier__OperandAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5468:1: ( ( ruleVLSUnitaryFormula ) ) + // InternalVampireLanguage.g:5469:2: ( ruleVLSUnitaryFormula ) + { + // InternalVampireLanguage.g:5469:2: ( ruleVLSUnitaryFormula ) + // InternalVampireLanguage.g:5470:3: ruleVLSUnitaryFormula + { + before(grammarAccess.getVLSExistentialQuantifierAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0()); + pushFollow(FOLLOW_2); + ruleVLSUnitaryFormula(); + + state._fsp--; + + after(grammarAccess.getVLSExistentialQuantifierAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSExistentialQuantifier__OperandAssignment_2" + + + // $ANTLR start "rule__VLSUnaryNegation__OperandAssignment_2" + // InternalVampireLanguage.g:5479:1: rule__VLSUnaryNegation__OperandAssignment_2 : ( ruleVLSUnitaryFormula ) ; + public final void rule__VLSUnaryNegation__OperandAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5483:1: ( ( ruleVLSUnitaryFormula ) ) + // InternalVampireLanguage.g:5484:2: ( ruleVLSUnitaryFormula ) + { + // InternalVampireLanguage.g:5484:2: ( ruleVLSUnitaryFormula ) + // InternalVampireLanguage.g:5485:3: ruleVLSUnitaryFormula + { + before(grammarAccess.getVLSUnaryNegationAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0()); + pushFollow(FOLLOW_2); + ruleVLSUnitaryFormula(); + + state._fsp--; + + after(grammarAccess.getVLSUnaryNegationAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryNegation__OperandAssignment_2" + + + // $ANTLR start "rule__VLSUnaryInfix__RightAssignment_1_1" + // InternalVampireLanguage.g:5494:1: rule__VLSUnaryInfix__RightAssignment_1_1 : ( ruleVLSAtomic ) ; + public final void rule__VLSUnaryInfix__RightAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5498:1: ( ( ruleVLSAtomic ) ) + // InternalVampireLanguage.g:5499:2: ( ruleVLSAtomic ) + { + // InternalVampireLanguage.g:5499:2: ( ruleVLSAtomic ) + // InternalVampireLanguage.g:5500:3: ruleVLSAtomic + { + before(grammarAccess.getVLSUnaryInfixAccess().getRightVLSAtomicParserRuleCall_1_1_0()); + pushFollow(FOLLOW_2); + ruleVLSAtomic(); + + state._fsp--; + + after(grammarAccess.getVLSUnaryInfixAccess().getRightVLSAtomicParserRuleCall_1_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSUnaryInfix__RightAssignment_1_1" + + + // $ANTLR start "rule__VLSAtomicConstant__NameAssignment_0_1" + // InternalVampireLanguage.g:5509:1: rule__VLSAtomicConstant__NameAssignment_0_1 : ( ( rule__VLSAtomicConstant__NameAlternatives_0_1_0 ) ) ; + public final void rule__VLSAtomicConstant__NameAssignment_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5513:1: ( ( ( rule__VLSAtomicConstant__NameAlternatives_0_1_0 ) ) ) + // InternalVampireLanguage.g:5514:2: ( ( rule__VLSAtomicConstant__NameAlternatives_0_1_0 ) ) + { + // InternalVampireLanguage.g:5514:2: ( ( rule__VLSAtomicConstant__NameAlternatives_0_1_0 ) ) + // InternalVampireLanguage.g:5515:3: ( rule__VLSAtomicConstant__NameAlternatives_0_1_0 ) + { + before(grammarAccess.getVLSAtomicConstantAccess().getNameAlternatives_0_1_0()); + // InternalVampireLanguage.g:5516:3: ( rule__VLSAtomicConstant__NameAlternatives_0_1_0 ) + // InternalVampireLanguage.g:5516:4: rule__VLSAtomicConstant__NameAlternatives_0_1_0 + { + pushFollow(FOLLOW_2); + rule__VLSAtomicConstant__NameAlternatives_0_1_0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAtomicConstantAccess().getNameAlternatives_0_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicConstant__NameAssignment_0_1" + + + // $ANTLR start "rule__VLSAtomicFunction__ConstantAssignment_0_1" + // InternalVampireLanguage.g:5524:1: rule__VLSAtomicFunction__ConstantAssignment_0_1 : ( ( rule__VLSAtomicFunction__ConstantAlternatives_0_1_0 ) ) ; + public final void rule__VLSAtomicFunction__ConstantAssignment_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5528:1: ( ( ( rule__VLSAtomicFunction__ConstantAlternatives_0_1_0 ) ) ) + // InternalVampireLanguage.g:5529:2: ( ( rule__VLSAtomicFunction__ConstantAlternatives_0_1_0 ) ) + { + // InternalVampireLanguage.g:5529:2: ( ( rule__VLSAtomicFunction__ConstantAlternatives_0_1_0 ) ) + // InternalVampireLanguage.g:5530:3: ( rule__VLSAtomicFunction__ConstantAlternatives_0_1_0 ) + { + before(grammarAccess.getVLSAtomicFunctionAccess().getConstantAlternatives_0_1_0()); + // InternalVampireLanguage.g:5531:3: ( rule__VLSAtomicFunction__ConstantAlternatives_0_1_0 ) + // InternalVampireLanguage.g:5531:4: rule__VLSAtomicFunction__ConstantAlternatives_0_1_0 + { + pushFollow(FOLLOW_2); + rule__VLSAtomicFunction__ConstantAlternatives_0_1_0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSAtomicFunctionAccess().getConstantAlternatives_0_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__ConstantAssignment_0_1" + + + // $ANTLR start "rule__VLSAtomicFunction__TermsAssignment_0_2_1" + // InternalVampireLanguage.g:5539:1: rule__VLSAtomicFunction__TermsAssignment_0_2_1 : ( ruleVLSFofTerm ) ; + public final void rule__VLSAtomicFunction__TermsAssignment_0_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5543:1: ( ( ruleVLSFofTerm ) ) + // InternalVampireLanguage.g:5544:2: ( ruleVLSFofTerm ) + { + // InternalVampireLanguage.g:5544:2: ( ruleVLSFofTerm ) + // InternalVampireLanguage.g:5545:3: ruleVLSFofTerm + { + before(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_0_2_1_0()); + pushFollow(FOLLOW_2); + ruleVLSFofTerm(); + + state._fsp--; + + after(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_0_2_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__TermsAssignment_0_2_1" + + + // $ANTLR start "rule__VLSAtomicFunction__TermsAssignment_0_2_2_1" + // InternalVampireLanguage.g:5554:1: rule__VLSAtomicFunction__TermsAssignment_0_2_2_1 : ( ruleVLSFofTerm ) ; + public final void rule__VLSAtomicFunction__TermsAssignment_0_2_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5558:1: ( ( ruleVLSFofTerm ) ) + // InternalVampireLanguage.g:5559:2: ( ruleVLSFofTerm ) + { + // InternalVampireLanguage.g:5559:2: ( ruleVLSFofTerm ) + // InternalVampireLanguage.g:5560:3: ruleVLSFofTerm + { + before(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_0_2_2_1_0()); + pushFollow(FOLLOW_2); + ruleVLSFofTerm(); + + state._fsp--; + + after(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_0_2_2_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__TermsAssignment_0_2_2_1" + + + // $ANTLR start "rule__VLSAtomicFunction__NameAssignment_1_1" + // InternalVampireLanguage.g:5569:1: rule__VLSAtomicFunction__NameAssignment_1_1 : ( ( '$less' ) ) ; + public final void rule__VLSAtomicFunction__NameAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5573:1: ( ( ( '$less' ) ) ) + // InternalVampireLanguage.g:5574:2: ( ( '$less' ) ) + { + // InternalVampireLanguage.g:5574:2: ( ( '$less' ) ) + // InternalVampireLanguage.g:5575:3: ( '$less' ) + { + before(grammarAccess.getVLSAtomicFunctionAccess().getNameLessKeyword_1_1_0()); + // InternalVampireLanguage.g:5576:3: ( '$less' ) + // InternalVampireLanguage.g:5577:4: '$less' + { + before(grammarAccess.getVLSAtomicFunctionAccess().getNameLessKeyword_1_1_0()); + match(input,68,FOLLOW_2); + after(grammarAccess.getVLSAtomicFunctionAccess().getNameLessKeyword_1_1_0()); + + } + + after(grammarAccess.getVLSAtomicFunctionAccess().getNameLessKeyword_1_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__NameAssignment_1_1" + + + // $ANTLR start "rule__VLSAtomicFunction__TermsAssignment_1_3" + // InternalVampireLanguage.g:5588:1: rule__VLSAtomicFunction__TermsAssignment_1_3 : ( ruleVLSFofTerm ) ; + public final void rule__VLSAtomicFunction__TermsAssignment_1_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5592:1: ( ( ruleVLSFofTerm ) ) + // InternalVampireLanguage.g:5593:2: ( ruleVLSFofTerm ) + { + // InternalVampireLanguage.g:5593:2: ( ruleVLSFofTerm ) + // InternalVampireLanguage.g:5594:3: ruleVLSFofTerm + { + before(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_1_3_0()); + pushFollow(FOLLOW_2); + ruleVLSFofTerm(); + + state._fsp--; + + after(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_1_3_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__TermsAssignment_1_3" + + + // $ANTLR start "rule__VLSAtomicFunction__TermsAssignment_1_5" + // InternalVampireLanguage.g:5603:1: rule__VLSAtomicFunction__TermsAssignment_1_5 : ( ruleVLSFofTerm ) ; + public final void rule__VLSAtomicFunction__TermsAssignment_1_5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5607:1: ( ( ruleVLSFofTerm ) ) + // InternalVampireLanguage.g:5608:2: ( ruleVLSFofTerm ) + { + // InternalVampireLanguage.g:5608:2: ( ruleVLSFofTerm ) + // InternalVampireLanguage.g:5609:3: ruleVLSFofTerm + { + before(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_1_5_0()); + pushFollow(FOLLOW_2); + ruleVLSFofTerm(); + + state._fsp--; + + after(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_1_5_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSAtomicFunction__TermsAssignment_1_5" + + + // $ANTLR start "rule__VLSVariable__NameAssignment" + // InternalVampireLanguage.g:5618:1: rule__VLSVariable__NameAssignment : ( RULE_UPPER_WORD_ID ) ; + public final void rule__VLSVariable__NameAssignment() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5622:1: ( ( RULE_UPPER_WORD_ID ) ) + // InternalVampireLanguage.g:5623:2: ( RULE_UPPER_WORD_ID ) + { + // InternalVampireLanguage.g:5623:2: ( RULE_UPPER_WORD_ID ) + // InternalVampireLanguage.g:5624:3: RULE_UPPER_WORD_ID + { + before(grammarAccess.getVLSVariableAccess().getNameUPPER_WORD_IDTerminalRuleCall_0()); + match(input,RULE_UPPER_WORD_ID,FOLLOW_2); + after(grammarAccess.getVLSVariableAccess().getNameUPPER_WORD_IDTerminalRuleCall_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSVariable__NameAssignment" + + + // $ANTLR start "rule__VLSFunctionFof__FunctorAssignment_0" + // InternalVampireLanguage.g:5633:1: rule__VLSFunctionFof__FunctorAssignment_0 : ( ( rule__VLSFunctionFof__FunctorAlternatives_0_0 ) ) ; + public final void rule__VLSFunctionFof__FunctorAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5637:1: ( ( ( rule__VLSFunctionFof__FunctorAlternatives_0_0 ) ) ) + // InternalVampireLanguage.g:5638:2: ( ( rule__VLSFunctionFof__FunctorAlternatives_0_0 ) ) + { + // InternalVampireLanguage.g:5638:2: ( ( rule__VLSFunctionFof__FunctorAlternatives_0_0 ) ) + // InternalVampireLanguage.g:5639:3: ( rule__VLSFunctionFof__FunctorAlternatives_0_0 ) + { + before(grammarAccess.getVLSFunctionFofAccess().getFunctorAlternatives_0_0()); + // InternalVampireLanguage.g:5640:3: ( rule__VLSFunctionFof__FunctorAlternatives_0_0 ) + // InternalVampireLanguage.g:5640:4: rule__VLSFunctionFof__FunctorAlternatives_0_0 + { + pushFollow(FOLLOW_2); + rule__VLSFunctionFof__FunctorAlternatives_0_0(); + + state._fsp--; + + + } + + after(grammarAccess.getVLSFunctionFofAccess().getFunctorAlternatives_0_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFunctionFof__FunctorAssignment_0" + + + // $ANTLR start "rule__VLSFunctionFof__TermsAssignment_1_1" + // InternalVampireLanguage.g:5648:1: rule__VLSFunctionFof__TermsAssignment_1_1 : ( ruleVLSFofTerm ) ; + public final void rule__VLSFunctionFof__TermsAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5652:1: ( ( ruleVLSFofTerm ) ) + // InternalVampireLanguage.g:5653:2: ( ruleVLSFofTerm ) + { + // InternalVampireLanguage.g:5653:2: ( ruleVLSFofTerm ) + // InternalVampireLanguage.g:5654:3: ruleVLSFofTerm + { + before(grammarAccess.getVLSFunctionFofAccess().getTermsVLSFofTermParserRuleCall_1_1_0()); + pushFollow(FOLLOW_2); + ruleVLSFofTerm(); + + state._fsp--; + + after(grammarAccess.getVLSFunctionFofAccess().getTermsVLSFofTermParserRuleCall_1_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFunctionFof__TermsAssignment_1_1" + + + // $ANTLR start "rule__VLSFunctionFof__TermsAssignment_1_2_1" + // InternalVampireLanguage.g:5663:1: rule__VLSFunctionFof__TermsAssignment_1_2_1 : ( ruleVLSFofTerm ) ; + public final void rule__VLSFunctionFof__TermsAssignment_1_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5667:1: ( ( ruleVLSFofTerm ) ) + // InternalVampireLanguage.g:5668:2: ( ruleVLSFofTerm ) + { + // InternalVampireLanguage.g:5668:2: ( ruleVLSFofTerm ) + // InternalVampireLanguage.g:5669:3: ruleVLSFofTerm + { + before(grammarAccess.getVLSFunctionFofAccess().getTermsVLSFofTermParserRuleCall_1_2_1_0()); + pushFollow(FOLLOW_2); + ruleVLSFofTerm(); + + state._fsp--; + + after(grammarAccess.getVLSFunctionFofAccess().getTermsVLSFofTermParserRuleCall_1_2_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSFunctionFof__TermsAssignment_1_2_1" + + + // $ANTLR start "rule__VLSDefinedTerm__ValueAssignment_0_1" + // InternalVampireLanguage.g:5678:1: rule__VLSDefinedTerm__ValueAssignment_0_1 : ( RULE_SIGNED_LITERAL ) ; + public final void rule__VLSDefinedTerm__ValueAssignment_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5682:1: ( ( RULE_SIGNED_LITERAL ) ) + // InternalVampireLanguage.g:5683:2: ( RULE_SIGNED_LITERAL ) + { + // InternalVampireLanguage.g:5683:2: ( RULE_SIGNED_LITERAL ) + // InternalVampireLanguage.g:5684:3: RULE_SIGNED_LITERAL + { + before(grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_LITERALTerminalRuleCall_0_1_0()); + match(input,RULE_SIGNED_LITERAL,FOLLOW_2); + after(grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_LITERALTerminalRuleCall_0_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__ValueAssignment_0_1" + + + // $ANTLR start "rule__VLSDefinedTerm__ValueAssignment_1_1" + // InternalVampireLanguage.g:5693:1: rule__VLSDefinedTerm__ValueAssignment_1_1 : ( RULE_SIGNED_REAL_ID ) ; + public final void rule__VLSDefinedTerm__ValueAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5697:1: ( ( RULE_SIGNED_REAL_ID ) ) + // InternalVampireLanguage.g:5698:2: ( RULE_SIGNED_REAL_ID ) + { + // InternalVampireLanguage.g:5698:2: ( RULE_SIGNED_REAL_ID ) + // InternalVampireLanguage.g:5699:3: RULE_SIGNED_REAL_ID + { + before(grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_REAL_IDTerminalRuleCall_1_1_0()); + match(input,RULE_SIGNED_REAL_ID,FOLLOW_2); + after(grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_REAL_IDTerminalRuleCall_1_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__ValueAssignment_1_1" + + + // $ANTLR start "rule__VLSDefinedTerm__ValueAssignment_2_1" + // InternalVampireLanguage.g:5708:1: rule__VLSDefinedTerm__ValueAssignment_2_1 : ( RULE_SIGNED_RAT_ID ) ; + public final void rule__VLSDefinedTerm__ValueAssignment_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5712:1: ( ( RULE_SIGNED_RAT_ID ) ) + // InternalVampireLanguage.g:5713:2: ( RULE_SIGNED_RAT_ID ) + { + // InternalVampireLanguage.g:5713:2: ( RULE_SIGNED_RAT_ID ) + // InternalVampireLanguage.g:5714:3: RULE_SIGNED_RAT_ID + { + before(grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_RAT_IDTerminalRuleCall_2_1_0()); + match(input,RULE_SIGNED_RAT_ID,FOLLOW_2); + after(grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_RAT_IDTerminalRuleCall_2_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__ValueAssignment_2_1" + + + // $ANTLR start "rule__VLSDefinedTerm__ValueAssignment_3_1" + // InternalVampireLanguage.g:5723:1: rule__VLSDefinedTerm__ValueAssignment_3_1 : ( RULE_DOUBLE_QUOTE ) ; + public final void rule__VLSDefinedTerm__ValueAssignment_3_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalVampireLanguage.g:5727:1: ( ( RULE_DOUBLE_QUOTE ) ) + // InternalVampireLanguage.g:5728:2: ( RULE_DOUBLE_QUOTE ) + { + // InternalVampireLanguage.g:5728:2: ( RULE_DOUBLE_QUOTE ) + // InternalVampireLanguage.g:5729:3: RULE_DOUBLE_QUOTE + { + before(grammarAccess.getVLSDefinedTermAccess().getValueDOUBLE_QUOTETerminalRuleCall_3_1_0()); + match(input,RULE_DOUBLE_QUOTE,FOLLOW_2); + after(grammarAccess.getVLSDefinedTermAccess().getValueDOUBLE_QUOTETerminalRuleCall_3_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__VLSDefinedTerm__ValueAssignment_3_1" + + // Delegated rules + + + protected DFA13 dfa13 = new DFA13(this); + static final String dfa_1s = "\30\uffff"; + static final String dfa_2s = "\1\uffff\23\24\4\uffff"; + static final String dfa_3s = "\1\4\23\55\4\uffff"; + static final String dfa_4s = "\1\104\23\101\4\uffff"; + static final String dfa_5s = "\24\uffff\1\1\1\2\1\3\1\4"; + static final String dfa_6s = "\30\uffff}>"; + static final String[] dfa_7s = { + "\1\1\1\2\1\uffff\1\27\1\3\1\4\1\uffff\1\26\3\27\14\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\30\uffff\2\24\1\25", + "\1\24\1\uffff\1\25\1\24\2\uffff\10\24\4\uffff\3\24", + "\1\24\1\uffff\1\25\1\24\2\uffff\10\24\4\uffff\3\24", + "\1\24\1\uffff\1\25\1\24\2\uffff\10\24\4\uffff\3\24", + "\1\24\1\uffff\1\25\1\24\2\uffff\10\24\4\uffff\3\24", + "\1\24\1\uffff\1\25\1\24\2\uffff\10\24\4\uffff\3\24", + "\1\24\1\uffff\1\25\1\24\2\uffff\10\24\4\uffff\3\24", + "\1\24\1\uffff\1\25\1\24\2\uffff\10\24\4\uffff\3\24", + "\1\24\1\uffff\1\25\1\24\2\uffff\10\24\4\uffff\3\24", + "\1\24\1\uffff\1\25\1\24\2\uffff\10\24\4\uffff\3\24", + "\1\24\1\uffff\1\25\1\24\2\uffff\10\24\4\uffff\3\24", + "\1\24\1\uffff\1\25\1\24\2\uffff\10\24\4\uffff\3\24", + "\1\24\1\uffff\1\25\1\24\2\uffff\10\24\4\uffff\3\24", + "\1\24\1\uffff\1\25\1\24\2\uffff\10\24\4\uffff\3\24", + "\1\24\1\uffff\1\25\1\24\2\uffff\10\24\4\uffff\3\24", + "\1\24\1\uffff\1\25\1\24\2\uffff\10\24\4\uffff\3\24", + "\1\24\1\uffff\1\25\1\24\2\uffff\10\24\4\uffff\3\24", + "\1\24\1\uffff\1\25\1\24\2\uffff\10\24\4\uffff\3\24", + "\1\24\1\uffff\1\25\1\24\2\uffff\10\24\4\uffff\3\24", + "\1\24\1\uffff\1\25\1\24\2\uffff\10\24\4\uffff\3\24", + "", + "", + "", + "" + }; + + static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s); + static final short[] dfa_2 = DFA.unpackEncodedString(dfa_2s); + static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s); + static final char[] dfa_4 = DFA.unpackEncodedStringToUnsignedChars(dfa_4s); + static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s); + static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s); + static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s); + + class DFA13 extends DFA { + + public DFA13(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 13; + this.eot = dfa_1; + this.eof = dfa_2; + this.min = dfa_3; + this.max = dfa_4; + this.accept = dfa_5; + this.special = dfa_6; + this.transition = dfa_7; + } + public String getDescription() { + return "1342:1: rule__VLSAtomic__Alternatives : ( ( ruleVLSAtomicConstant ) | ( ruleVLSAtomicFunction ) | ( ruleVLSVariable ) | ( ruleVLSDefinedTerm ) );"; + } + } + + + public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000440000000402L}); + public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0200000000000002L}); + public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0400000000000002L}); + public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000000020L}); + public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000080000000000L}); + public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x00000000000000F0L}); + public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000300000000000L}); + public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000200000000002L}); + public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000800000000000L}); + public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x00000000000000B0L}); + public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000200000000000L}); + public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x000003FFF8000000L}); + public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x680083FFF8007BB0L,0x000000000000001CL}); + public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0001200000000000L}); + public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0002000000000000L}); + public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x000493FFF8000030L}); + public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0001000000000000L}); + public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x07F8000000000000L}); + public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0008000000000000L}); + public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0010000000000000L}); + public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0020000000000000L}); + public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0040000000000000L}); + public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0080000000000000L}); + public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x01F8000000000000L}); + public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0200000000000000L}); + public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0400000000000000L}); + public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0800000000000000L}); + public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0004000000000000L}); + public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x1000000000000000L}); + public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x2000000000000000L}); + public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x4000000000000000L}); + public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x8000000000000000L,0x0000000000000003L}); + public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x000003FFF8007BB0L,0x000000000000001CL}); + public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x8000000000000000L}); + public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L}); + public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x000003FFF8000330L}); + public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L}); + public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x000003FFF8000330L,0x000000000000000CL}); + public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x000003FFF8000330L,0x0000000000000010L}); + public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000002000L}); + +} \ No newline at end of file diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src/ca/mcgill/ecse/dslreasoner/ide/VampireLanguageIdeModule.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src/ca/mcgill/ecse/dslreasoner/ide/VampireLanguageIdeModule.xtend new file mode 100644 index 00000000..e48b4935 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src/ca/mcgill/ecse/dslreasoner/ide/VampireLanguageIdeModule.xtend @@ -0,0 +1,11 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ide + + +/** + * Use this class to register ide components. + */ +class VampireLanguageIdeModule extends AbstractVampireLanguageIdeModule { +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src/ca/mcgill/ecse/dslreasoner/ide/VampireLanguageIdeSetup.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src/ca/mcgill/ecse/dslreasoner/ide/VampireLanguageIdeSetup.xtend new file mode 100644 index 00000000..b8411c32 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/src/ca/mcgill/ecse/dslreasoner/ide/VampireLanguageIdeSetup.xtend @@ -0,0 +1,20 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ide + +import ca.mcgill.ecse.dslreasoner.VampireLanguageRuntimeModule +import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup +import com.google.inject.Guice +import org.eclipse.xtext.util.Modules2 + +/** + * Initialization support for running Xtext languages as language servers. + */ +class VampireLanguageIdeSetup extends VampireLanguageStandaloneSetup { + + override createInjector() { + Guice.createInjector(Modules2.mixin(new VampireLanguageRuntimeModule, new VampireLanguageIdeModule)) + } + +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbin new file mode 100644 index 00000000..b85cab1f Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbin new file mode 100644 index 00000000..edbdddb9 Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.gitignore new file mode 100644 index 00000000..74d3a17c --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.gitignore @@ -0,0 +1,2 @@ +/.VampireLanguageIdeModule.java._trace +/.VampireLanguageIdeSetup.java._trace diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/VampireLanguageIdeModule.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/VampireLanguageIdeModule.java new file mode 100644 index 00000000..788815c4 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/VampireLanguageIdeModule.java @@ -0,0 +1,13 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ide; + +import ca.mcgill.ecse.dslreasoner.ide.AbstractVampireLanguageIdeModule; + +/** + * Use this class to register ide components. + */ +@SuppressWarnings("all") +public class VampireLanguageIdeModule extends AbstractVampireLanguageIdeModule { +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/VampireLanguageIdeSetup.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/VampireLanguageIdeSetup.java new file mode 100644 index 00000000..05decf8c --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/VampireLanguageIdeSetup.java @@ -0,0 +1,24 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ide; + +import ca.mcgill.ecse.dslreasoner.VampireLanguageRuntimeModule; +import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup; +import ca.mcgill.ecse.dslreasoner.ide.VampireLanguageIdeModule; +import com.google.inject.Guice; +import com.google.inject.Injector; +import org.eclipse.xtext.util.Modules2; + +/** + * Initialization support for running Xtext languages as language servers. + */ +@SuppressWarnings("all") +public class VampireLanguageIdeSetup extends VampireLanguageStandaloneSetup { + @Override + public Injector createInjector() { + VampireLanguageRuntimeModule _vampireLanguageRuntimeModule = new VampireLanguageRuntimeModule(); + VampireLanguageIdeModule _vampireLanguageIdeModule = new VampireLanguageIdeModule(); + return Guice.createInjector(Modules2.mixin(_vampireLanguageRuntimeModule, _vampireLanguageIdeModule)); + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/.classpath b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/.classpath new file mode 100644 index 00000000..1287f96c --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/.gitignore new file mode 100644 index 00000000..ae3c1726 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/.project b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/.project new file mode 100644 index 00000000..323ea59f --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/.project @@ -0,0 +1,34 @@ + + + ca.mcgill.ecse.dslreasoner.vampire.language.tests + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.xtext.ui.shared.xtextNature + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/.settings/org.eclipse.core.resources.prefs b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..4824b802 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/.settings/org.eclipse.jdt.core.prefs b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..295926d9 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/META-INF/MANIFEST.MF b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/META-INF/MANIFEST.MF new file mode 100644 index 00000000..7e9ef500 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/META-INF/MANIFEST.MF @@ -0,0 +1,21 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: ca.mcgill.ecse.dslreasoner.vampire.language.tests +Bundle-Vendor: My Company +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.language.tests; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: ca.mcgill.ecse.dslreasoner.vampire.language, + org.junit;bundle-version="4.12.0", + org.eclipse.xtext.testing, + org.eclipse.xtext.xbase.testing, + org.eclipse.xtext.xbase.lib +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Export-Package: ca.mcgill.ecse.dslreasoner.tests;x-internal=true +Import-Package: org.hamcrest.core, + org.junit;version="4.5.0", + org.junit.runners.model;version="4.5.0", + org.junit.runner;version="4.5.0", + org.junit.runners;version="4.5.0", + org.junit.runner.manipulation;version="4.5.0", + org.junit.runner.notification;version="4.5.0" diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/build.properties b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/build.properties new file mode 100644 index 00000000..4c654e9b --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/build.properties @@ -0,0 +1,6 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = .,\ + META-INF/ +bin.excludes = **/*.xtend diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/src-gen/ca/mcgill/ecse/dslreasoner/tests/VampireLanguageInjectorProvider.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/src-gen/ca/mcgill/ecse/dslreasoner/tests/VampireLanguageInjectorProvider.java new file mode 100644 index 00000000..f3c1588b --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/src-gen/ca/mcgill/ecse/dslreasoner/tests/VampireLanguageInjectorProvider.java @@ -0,0 +1,66 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.tests; + +import ca.mcgill.ecse.dslreasoner.VampireLanguageRuntimeModule; +import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup; +import com.google.inject.Guice; +import com.google.inject.Injector; +import org.eclipse.xtext.testing.GlobalRegistries; +import org.eclipse.xtext.testing.GlobalRegistries.GlobalStateMemento; +import org.eclipse.xtext.testing.IInjectorProvider; +import org.eclipse.xtext.testing.IRegistryConfigurator; + +public class VampireLanguageInjectorProvider implements IInjectorProvider, IRegistryConfigurator { + + protected GlobalStateMemento stateBeforeInjectorCreation; + protected GlobalStateMemento stateAfterInjectorCreation; + protected Injector injector; + + static { + GlobalRegistries.initializeDefaults(); + } + + @Override + public Injector getInjector() { + if (injector == null) { + stateBeforeInjectorCreation = GlobalRegistries.makeCopyOfGlobalState(); + this.injector = internalCreateInjector(); + stateAfterInjectorCreation = GlobalRegistries.makeCopyOfGlobalState(); + } + return injector; + } + + protected Injector internalCreateInjector() { + return new VampireLanguageStandaloneSetup() { + @Override + public Injector createInjector() { + return Guice.createInjector(createRuntimeModule()); + } + }.createInjectorAndDoEMFRegistration(); + } + + protected VampireLanguageRuntimeModule createRuntimeModule() { + // make it work also with Maven/Tycho and OSGI + // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=493672 + return new VampireLanguageRuntimeModule() { + @Override + public ClassLoader bindClassLoaderToInstance() { + return VampireLanguageInjectorProvider.class + .getClassLoader(); + } + }; + } + + @Override + public void restoreRegistry() { + stateBeforeInjectorCreation.restoreGlobalState(); + } + + @Override + public void setupRegistry() { + getInjector(); + stateAfterInjectorCreation.restoreGlobalState(); + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/src/ca/mcgill/ecse/dslreasoner/tests/VampireLanguageParsingTest.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/src/ca/mcgill/ecse/dslreasoner/tests/VampireLanguageParsingTest.xtend new file mode 100644 index 00000000..6d13b455 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/src/ca/mcgill/ecse/dslreasoner/tests/VampireLanguageParsingTest.xtend @@ -0,0 +1,29 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.tests + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel +import com.google.inject.Inject +import org.eclipse.xtext.testing.InjectWith +import org.eclipse.xtext.testing.XtextRunner +import org.eclipse.xtext.testing.util.ParseHelper +import org.junit.Assert +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(XtextRunner) +@InjectWith(VampireLanguageInjectorProvider) +class VampireLanguageParsingTest { + @Inject + ParseHelper parseHelper + + @Test + def void loadModel() { + val result = parseHelper.parse(''' + Hello Xtext! + ''') + Assert.assertNotNull(result) + Assert.assertTrue(result.eResource.errors.isEmpty) + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/xtend-gen/ca/mcgill/ecse/dslreasoner/tests/.VampireLanguageParsingTest.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/xtend-gen/ca/mcgill/ecse/dslreasoner/tests/.VampireLanguageParsingTest.xtendbin new file mode 100644 index 00000000..dc0af0a6 Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/xtend-gen/ca/mcgill/ecse/dslreasoner/tests/.VampireLanguageParsingTest.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/xtend-gen/ca/mcgill/ecse/dslreasoner/tests/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/xtend-gen/ca/mcgill/ecse/dslreasoner/tests/.gitignore new file mode 100644 index 00000000..032d1dcf --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/xtend-gen/ca/mcgill/ecse/dslreasoner/tests/.gitignore @@ -0,0 +1 @@ +/.VampireLanguageParsingTest.java._trace diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/xtend-gen/ca/mcgill/ecse/dslreasoner/tests/VampireLanguageParsingTest.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/xtend-gen/ca/mcgill/ecse/dslreasoner/tests/VampireLanguageParsingTest.java new file mode 100644 index 00000000..3bce3488 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.tests/xtend-gen/ca/mcgill/ecse/dslreasoner/tests/VampireLanguageParsingTest.java @@ -0,0 +1,38 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.tests; + +import ca.mcgill.ecse.dslreasoner.tests.VampireLanguageInjectorProvider; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; +import com.google.inject.Inject; +import org.eclipse.xtend2.lib.StringConcatenation; +import org.eclipse.xtext.testing.InjectWith; +import org.eclipse.xtext.testing.XtextRunner; +import org.eclipse.xtext.testing.util.ParseHelper; +import org.eclipse.xtext.xbase.lib.Exceptions; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; + +@RunWith(XtextRunner.class) +@InjectWith(VampireLanguageInjectorProvider.class) +@SuppressWarnings("all") +public class VampireLanguageParsingTest { + @Inject + private ParseHelper parseHelper; + + @Test + public void loadModel() { + try { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("Hello Xtext!"); + _builder.newLine(); + final VampireModel result = this.parseHelper.parse(_builder); + Assert.assertNotNull(result); + Assert.assertTrue(result.eResource().getErrors().isEmpty()); + } catch (Throwable _e) { + throw Exceptions.sneakyThrow(_e); + } + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/.classpath b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/.classpath new file mode 100644 index 00000000..1287f96c --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/.gitignore new file mode 100644 index 00000000..ae3c1726 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/.project b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/.project new file mode 100644 index 00000000..f0c7fbed --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/.project @@ -0,0 +1,34 @@ + + + ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.xtext.ui.shared.xtextNature + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/.settings/org.eclipse.core.resources.prefs b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..4824b802 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/.settings/org.eclipse.jdt.core.prefs b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..295926d9 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/META-INF/MANIFEST.MF b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/META-INF/MANIFEST.MF new file mode 100644 index 00000000..8bfed6bc --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/META-INF/MANIFEST.MF @@ -0,0 +1,24 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests +Bundle-Vendor: My Company +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: ca.mcgill.ecse.dslreasoner.vampire.language.ui, + org.junit;bundle-version="4.12.0", + org.eclipse.xtext.testing, + org.eclipse.xtext.xbase.testing, + org.eclipse.xtext.junit4, + org.eclipse.xtext.xbase.junit, + org.eclipse.core.runtime, + org.eclipse.ui.workbench;resolution:=optional +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Export-Package: ca.mcgill.ecse.dslreasoner.ui.tests;x-internal=true +Import-Package: org.hamcrest.core, + org.junit;version="4.5.0", + org.junit.runners.model;version="4.5.0", + org.junit.runner;version="4.5.0", + org.junit.runners;version="4.5.0", + org.junit.runner.manipulation;version="4.5.0", + org.junit.runner.notification;version="4.5.0" diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/build.properties b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/build.properties new file mode 100644 index 00000000..4c654e9b --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/build.properties @@ -0,0 +1,6 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = .,\ + META-INF/ +bin.excludes = **/*.xtend diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/src-gen/ca/mcgill/ecse/dslreasoner/ui/tests/VampireLanguageUiInjectorProvider.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/src-gen/ca/mcgill/ecse/dslreasoner/ui/tests/VampireLanguageUiInjectorProvider.java new file mode 100644 index 00000000..68417ee9 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui.tests/src-gen/ca/mcgill/ecse/dslreasoner/ui/tests/VampireLanguageUiInjectorProvider.java @@ -0,0 +1,17 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ui.tests; + +import ca.mcgill.ecse.dslreasoner.vampire.language.ui.internal.LanguageActivator; +import com.google.inject.Injector; +import org.eclipse.xtext.testing.IInjectorProvider; + +public class VampireLanguageUiInjectorProvider implements IInjectorProvider { + + @Override + public Injector getInjector() { + return LanguageActivator.getInstance().getInjector("ca.mcgill.ecse.dslreasoner.VampireLanguage"); + } + +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/.classpath b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/.classpath new file mode 100644 index 00000000..1287f96c --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/.gitignore new file mode 100644 index 00000000..ae3c1726 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/.project b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/.project new file mode 100644 index 00000000..51d15832 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/.project @@ -0,0 +1,34 @@ + + + ca.mcgill.ecse.dslreasoner.vampire.language.ui + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.xtext.ui.shared.xtextNature + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/.settings/org.eclipse.core.resources.prefs b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..4824b802 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/.settings/org.eclipse.jdt.core.prefs b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..295926d9 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/META-INF/MANIFEST.MF b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/META-INF/MANIFEST.MF new file mode 100644 index 00000000..baaefd41 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/META-INF/MANIFEST.MF @@ -0,0 +1,25 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: ca.mcgill.ecse.dslreasoner.vampire.language.ui +Bundle-Vendor: My Company +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.language.ui; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: ca.mcgill.ecse.dslreasoner.vampire.language, + ca.mcgill.ecse.dslreasoner.vampire.language.ide, + org.eclipse.xtext.ui, + org.eclipse.xtext.ui.shared, + org.eclipse.xtext.ui.codetemplates.ui, + org.eclipse.ui.editors;bundle-version="3.5.0", + org.eclipse.ui.ide;bundle-version="3.5.0", + org.eclipse.ui, + org.eclipse.compare, + org.eclipse.xtext.builder, + org.eclipse.xtend.lib;resolution:=optional, + org.eclipse.xtext.xbase.lib +Import-Package: org.apache.log4j +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Export-Package: ca.mcgill.ecse.dslreasoner.ui.contentassist, + ca.mcgill.ecse.dslreasoner.vampire.language.ui.internal, + ca.mcgill.ecse.dslreasoner.ui.quickfix +Bundle-Activator: ca.mcgill.ecse.dslreasoner.vampire.language.ui.internal.LanguageActivator diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/build.properties b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/build.properties new file mode 100644 index 00000000..4b1fa503 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/build.properties @@ -0,0 +1,7 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = .,\ + META-INF/,\ + plugin.xml +bin.excludes = **/*.xtend diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/plugin.xml b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/plugin.xml new file mode 100644 index 00000000..b15ba9ff --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/plugin.xml @@ -0,0 +1,410 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src-gen/ca/mcgill/ecse/dslreasoner/ui/AbstractVampireLanguageUiModule.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src-gen/ca/mcgill/ecse/dslreasoner/ui/AbstractVampireLanguageUiModule.java new file mode 100644 index 00000000..3a6cc964 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src-gen/ca/mcgill/ecse/dslreasoner/ui/AbstractVampireLanguageUiModule.java @@ -0,0 +1,286 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ui; + +import ca.mcgill.ecse.dslreasoner.ide.contentassist.antlr.PartialVampireLanguageContentAssistParser; +import ca.mcgill.ecse.dslreasoner.ide.contentassist.antlr.VampireLanguageParser; +import ca.mcgill.ecse.dslreasoner.ide.contentassist.antlr.internal.InternalVampireLanguageLexer; +import ca.mcgill.ecse.dslreasoner.ui.contentassist.VampireLanguageProposalProvider; +import ca.mcgill.ecse.dslreasoner.ui.labeling.VampireLanguageDescriptionLabelProvider; +import ca.mcgill.ecse.dslreasoner.ui.labeling.VampireLanguageLabelProvider; +import ca.mcgill.ecse.dslreasoner.ui.outline.VampireLanguageOutlineTreeProvider; +import ca.mcgill.ecse.dslreasoner.ui.quickfix.VampireLanguageQuickfixProvider; +import com.google.inject.Binder; +import com.google.inject.Provider; +import com.google.inject.name.Names; +import org.eclipse.compare.IViewerCreator; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.jface.viewers.ILabelProvider; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.eclipse.xtext.builder.BuilderParticipant; +import org.eclipse.xtext.builder.EclipseOutputConfigurationProvider; +import org.eclipse.xtext.builder.IXtextBuilderParticipant; +import org.eclipse.xtext.builder.builderState.IBuilderState; +import org.eclipse.xtext.builder.clustering.CurrentDescriptions; +import org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource; +import org.eclipse.xtext.builder.nature.NatureAddingEditorCallback; +import org.eclipse.xtext.builder.preferences.BuilderPreferenceAccess; +import org.eclipse.xtext.generator.IContextualOutputConfigurationProvider; +import org.eclipse.xtext.ide.LexerIdeBindings; +import org.eclipse.xtext.ide.editor.contentassist.antlr.IContentAssistParser; +import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.Lexer; +import org.eclipse.xtext.ide.editor.partialEditing.IPartialEditingContentAssistParser; +import org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider; +import org.eclipse.xtext.parser.antlr.ITokenDefProvider; +import org.eclipse.xtext.parser.antlr.LexerProvider; +import org.eclipse.xtext.resource.IResourceDescriptions; +import org.eclipse.xtext.resource.containers.IAllContainersState; +import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider; +import org.eclipse.xtext.service.SingletonBinding; +import org.eclipse.xtext.ui.DefaultUiModule; +import org.eclipse.xtext.ui.UIBindings; +import org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator; +import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialEditingContentAssistContextFactory; +import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.PartialEditingContentAssistContextFactory; +import org.eclipse.xtext.ui.codetemplates.ui.preferences.AdvancedTemplatesPreferencePage; +import org.eclipse.xtext.ui.codetemplates.ui.preferences.TemplatesLanguageConfiguration; +import org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar; +import org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistry; +import org.eclipse.xtext.ui.compare.DefaultViewerCreator; +import org.eclipse.xtext.ui.editor.DocumentBasedDirtyResource; +import org.eclipse.xtext.ui.editor.IXtextEditorCallback; +import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext; +import org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher; +import org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider; +import org.eclipse.xtext.ui.editor.contentassist.IProposalConflictHelper; +import org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher; +import org.eclipse.xtext.ui.editor.contentassist.antlr.AntlrProposalConflictHelper; +import org.eclipse.xtext.ui.editor.contentassist.antlr.DelegatingContentAssistContextFactory; +import org.eclipse.xtext.ui.editor.outline.IOutlineTreeProvider; +import org.eclipse.xtext.ui.editor.outline.impl.IOutlineTreeStructureProvider; +import org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer; +import org.eclipse.xtext.ui.editor.quickfix.IssueResolutionProvider; +import org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage; +import org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator; +import org.eclipse.xtext.ui.refactoring.IReferenceUpdater; +import org.eclipse.xtext.ui.refactoring.IRenameRefactoringProvider; +import org.eclipse.xtext.ui.refactoring.IRenameStrategy; +import org.eclipse.xtext.ui.refactoring.impl.DefaultDependentElementsCalculator; +import org.eclipse.xtext.ui.refactoring.impl.DefaultReferenceUpdater; +import org.eclipse.xtext.ui.refactoring.impl.DefaultRenameRefactoringProvider; +import org.eclipse.xtext.ui.refactoring.impl.DefaultRenameStrategy; +import org.eclipse.xtext.ui.refactoring.ui.DefaultRenameSupport; +import org.eclipse.xtext.ui.refactoring.ui.IRenameSupport; +import org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferences; +import org.eclipse.xtext.ui.resource.ResourceServiceDescriptionLabelProvider; +import org.eclipse.xtext.ui.shared.Access; + +/** + * Manual modifications go to {@link VampireLanguageUiModule}. + */ +@SuppressWarnings("all") +public abstract class AbstractVampireLanguageUiModule extends DefaultUiModule { + + public AbstractVampireLanguageUiModule(AbstractUIPlugin plugin) { + super(plugin); + } + + // contributed by org.eclipse.xtext.xtext.generator.ImplicitFragment + public Provider provideIAllContainersState() { + return Access.getJavaProjectsState(); + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindIProposalConflictHelper() { + return AntlrProposalConflictHelper.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public void configureContentAssistLexer(Binder binder) { + binder.bind(Lexer.class) + .annotatedWith(Names.named(LexerIdeBindings.CONTENT_ASSIST)) + .to(InternalVampireLanguageLexer.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public void configureHighlightingLexer(Binder binder) { + binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class) + .annotatedWith(Names.named(LexerIdeBindings.HIGHLIGHTING)) + .to(ca.mcgill.ecse.dslreasoner.parser.antlr.internal.InternalVampireLanguageLexer.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public void configureHighlightingTokenDefProvider(Binder binder) { + binder.bind(ITokenDefProvider.class) + .annotatedWith(Names.named(LexerIdeBindings.HIGHLIGHTING)) + .to(AntlrTokenDefProvider.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindContentAssistContext$Factory() { + return DelegatingContentAssistContextFactory.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindIContentAssistParser() { + return VampireLanguageParser.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public void configureContentAssistLexerProvider(Binder binder) { + binder.bind(InternalVampireLanguageLexer.class).toProvider(LexerProvider.create(InternalVampireLanguageLexer.class)); + } + + // contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2 + public Class bindPrefixMatcher() { + return FQNPrefixMatcher.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2 + public Class bindIDependentElementsCalculator() { + return DefaultDependentElementsCalculator.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 + public void configureIResourceDescriptionsBuilderScope(Binder binder) { + binder.bind(IResourceDescriptions.class).annotatedWith(Names.named(ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(CurrentDescriptions.ResourceSetAware.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 + public Class bindIXtextEditorCallback() { + return NatureAddingEditorCallback.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 + public Class bindIContextualOutputConfigurationProvider() { + return EclipseOutputConfigurationProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 + public void configureIResourceDescriptionsPersisted(Binder binder) { + binder.bind(IResourceDescriptions.class).annotatedWith(Names.named(ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(IBuilderState.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 + public Class bindDocumentBasedDirtyResource() { + return PersistentDataAwareDirtyResource.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2 + public Class bindIXtextBuilderParticipant() { + return BuilderParticipant.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2 + public IWorkspaceRoot bindIWorkspaceRootToInstance() { + return ResourcesPlugin.getWorkspace().getRoot(); + } + + // contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2 + public void configureBuilderPreferenceStoreInitializer(Binder binder) { + binder.bind(IPreferenceStoreInitializer.class) + .annotatedWith(Names.named("builderPreferenceInitializer")) + .to(BuilderPreferenceAccess.Initializer.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.labeling.LabelProviderFragment2 + public Class bindILabelProvider() { + return VampireLanguageLabelProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.labeling.LabelProviderFragment2 + public void configureResourceUIServiceLabelProvider(Binder binder) { + binder.bind(ILabelProvider.class).annotatedWith(ResourceServiceDescriptionLabelProvider.class).to(VampireLanguageDescriptionLabelProvider.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.outline.OutlineTreeProviderFragment2 + public Class bindIOutlineTreeProvider() { + return VampireLanguageOutlineTreeProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.outline.OutlineTreeProviderFragment2 + public Class bindIOutlineTreeStructureProvider() { + return VampireLanguageOutlineTreeProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.quickfix.QuickfixProviderFragment2 + public Class bindIssueResolutionProvider() { + return VampireLanguageQuickfixProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.contentAssist.ContentAssistFragment2 + public Class bindIContentProposalProvider() { + return VampireLanguageProposalProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2 + public Class bindIRenameStrategy() { + return DefaultRenameStrategy.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2 + public Class bindIReferenceUpdater() { + return DefaultReferenceUpdater.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2 + public void configureIPreferenceStoreInitializer(Binder binder) { + binder.bind(IPreferenceStoreInitializer.class) + .annotatedWith(Names.named("RefactoringPreferences")) + .to(RefactoringPreferences.Initializer.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2 + public Class bindIRenameRefactoringProvider() { + return DefaultRenameRefactoringProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2 + public Class bindIRenameSupport$Factory() { + return DefaultRenameSupport.Factory.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2 + public Provider provideTemplatesLanguageConfiguration() { + return AccessibleCodetemplatesActivator.getTemplatesLanguageConfigurationProvider(); + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2 + public Provider provideLanguageRegistry() { + return AccessibleCodetemplatesActivator.getLanguageRegistry(); + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2 + @SingletonBinding(eager=true) + public Class bindLanguageRegistrar() { + return LanguageRegistrar.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2 + public Class bindXtextTemplatePreferencePage() { + return AdvancedTemplatesPreferencePage.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2 + public Class bindIPartialEditingContentAssistParser() { + return PartialVampireLanguageContentAssistParser.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2 + public Class bindIPartialEditingContentAssistContextFactory() { + return PartialEditingContentAssistContextFactory.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.compare.CompareFragment2 + public Class bindIViewerCreator() { + return DefaultViewerCreator.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.ui.compare.CompareFragment2 + public void configureCompareViewerTitle(Binder binder) { + binder.bind(String.class).annotatedWith(Names.named(UIBindings.COMPARE_VIEWER_TITLE)).toInstance("VampireLanguage Compare"); + } + +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src-gen/ca/mcgill/ecse/dslreasoner/ui/VampireLanguageExecutableExtensionFactory.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src-gen/ca/mcgill/ecse/dslreasoner/ui/VampireLanguageExecutableExtensionFactory.java new file mode 100644 index 00000000..18440e58 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src-gen/ca/mcgill/ecse/dslreasoner/ui/VampireLanguageExecutableExtensionFactory.java @@ -0,0 +1,27 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ui; + +import ca.mcgill.ecse.dslreasoner.vampire.language.ui.internal.LanguageActivator; +import com.google.inject.Injector; +import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory; +import org.osgi.framework.Bundle; + +/** + * This class was generated. Customizations should only happen in a newly + * introduced subclass. + */ +public class VampireLanguageExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory { + + @Override + protected Bundle getBundle() { + return LanguageActivator.getInstance().getBundle(); + } + + @Override + protected Injector getInjector() { + return LanguageActivator.getInstance().getInjector(LanguageActivator.CA_MCGILL_ECSE_DSLREASONER_VAMPIRELANGUAGE); + } + +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/AbstractVampireLanguageProposalProvider.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/AbstractVampireLanguageProposalProvider.java new file mode 100644 index 00000000..23e813f5 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/AbstractVampireLanguageProposalProvider.java @@ -0,0 +1,289 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ui.contentassist; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.Alternatives; +import org.eclipse.xtext.Assignment; +import org.eclipse.xtext.RuleCall; +import org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider; +import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext; +import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor; + +/** + * Represents a generated, default implementation of superclass {@link TerminalsProposalProvider}. + * Methods are dynamically dispatched on the first parameter, i.e., you can override them + * with a more concrete subtype. + */ +public abstract class AbstractVampireLanguageProposalProvider extends TerminalsProposalProvider { + + public void completeVampireModel_Includes(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVampireModel_Comments(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVampireModel_Formulas(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVLSInclude_FileName(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVLSInclude_Names(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVLSName_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(0)), context, acceptor); + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(1)), context, acceptor); + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(2)), context, acceptor); + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(3)), context, acceptor); + } + public void completeVLSComment_Comment(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVLSFofFormula_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(0)), context, acceptor); + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(1)), context, acceptor); + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(2)), context, acceptor); + } + public void completeVLSFofFormula_FofRole(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVLSFofFormula_FofFormula(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVLSFofFormula_Annotations(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVLSAnnotation_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(0)), context, acceptor); + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(1)), context, acceptor); + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(2)), context, acceptor); + } + public void completeVLSAnnotation_Followup(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVLSAnnotationTerms_Terms(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVLSBinary_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVLSUniversalQuantifier_Variables(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVLSUniversalQuantifier_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVLSExistentialQuantifier_Variables(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVLSExistentialQuantifier_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVLSUnaryNegation_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVLSUnaryInfix_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVLSAtomicConstant_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(0)), context, acceptor); + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(1)), context, acceptor); + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(2)), context, acceptor); + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(3)), context, acceptor); + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(4)), context, acceptor); + } + public void completeVLSAtomicFunction_Constant(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(0)), context, acceptor); + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(1)), context, acceptor); + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(2)), context, acceptor); + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(3)), context, acceptor); + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(4)), context, acceptor); + } + public void completeVLSAtomicFunction_Terms(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVLSAtomicFunction_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeVLSVariable_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVLSFunctionFof_Functor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(0)), context, acceptor); + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(1)), context, acceptor); + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(2)), context, acceptor); + completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(3)), context, acceptor); + } + public void completeVLSFunctionFof_Terms(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeVLSDefinedTerm_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + + public void complete_VampireModel(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALPHA_NUMERIC(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_UPPER_WORD_ID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_LOWER_WORD_ID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_DOUBLE_QUOTE(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_SINGLE_QUOTE(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_SIGN(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_DOLLAR_ID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_DOUBLE_DOLLAR_ID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_LITERAL(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_SIGNED_LITERAL(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_UNSIGNED_REAL_FRAC_ID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_UNSIGNED_REAL_EXP_ID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_SIGNED_REAL_ID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_UNSIGNED_RAT_ID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_SIGNED_RAT_ID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ANY_OTHER(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_SINGLE_COMMENT(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSInclude(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSName(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSComment(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSFofFormula(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSRole(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSAxiom(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSConjecture(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSHypothesis(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSDefinition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSAssumption(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSLemma(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSTheorem(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSCorollary(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSNegated_Conjecture(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSPlain(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSFi_Domain(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSFi_Functors(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSFi_Predicates(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSUnknown(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSAnnotation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSAnnotationTerms(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSTerm(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSBinary(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSUnitaryFormula(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSUniversalQuantifier(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSExistentialQuantifier(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSUnaryNegation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSUnaryInfix(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSAtomic(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSAtomicConstant(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSAtomicFunction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSVariable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSFofTerm(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSFunctionFof(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_VLSDefinedTerm(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src-gen/ca/mcgill/ecse/dslreasoner/vampire/language/ui/internal/LanguageActivator.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src-gen/ca/mcgill/ecse/dslreasoner/vampire/language/ui/internal/LanguageActivator.java new file mode 100644 index 00000000..eca3aa7f --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src-gen/ca/mcgill/ecse/dslreasoner/vampire/language/ui/internal/LanguageActivator.java @@ -0,0 +1,93 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampire.language.ui.internal; + +import ca.mcgill.ecse.dslreasoner.VampireLanguageRuntimeModule; +import ca.mcgill.ecse.dslreasoner.ui.VampireLanguageUiModule; +import com.google.common.collect.Maps; +import com.google.inject.Guice; +import com.google.inject.Injector; +import com.google.inject.Module; +import java.util.Collections; +import java.util.Map; +import org.apache.log4j.Logger; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.eclipse.xtext.ui.shared.SharedStateModule; +import org.eclipse.xtext.util.Modules2; +import org.osgi.framework.BundleContext; + +/** + * This class was generated. Customizations should only happen in a newly + * introduced subclass. + */ +public class LanguageActivator extends AbstractUIPlugin { + + public static final String CA_MCGILL_ECSE_DSLREASONER_VAMPIRELANGUAGE = "ca.mcgill.ecse.dslreasoner.VampireLanguage"; + + private static final Logger logger = Logger.getLogger(LanguageActivator.class); + + private static LanguageActivator INSTANCE; + + private Map injectors = Collections.synchronizedMap(Maps. newHashMapWithExpectedSize(1)); + + @Override + public void start(BundleContext context) throws Exception { + super.start(context); + INSTANCE = this; + } + + @Override + public void stop(BundleContext context) throws Exception { + injectors.clear(); + INSTANCE = null; + super.stop(context); + } + + public static LanguageActivator getInstance() { + return INSTANCE; + } + + public Injector getInjector(String language) { + synchronized (injectors) { + Injector injector = injectors.get(language); + if (injector == null) { + injectors.put(language, injector = createInjector(language)); + } + return injector; + } + } + + protected Injector createInjector(String language) { + try { + Module runtimeModule = getRuntimeModule(language); + Module sharedStateModule = getSharedStateModule(); + Module uiModule = getUiModule(language); + Module mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule); + return Guice.createInjector(mergedModule); + } catch (Exception e) { + logger.error("Failed to create injector for " + language); + logger.error(e.getMessage(), e); + throw new RuntimeException("Failed to create injector for " + language, e); + } + } + + protected Module getRuntimeModule(String grammar) { + if (CA_MCGILL_ECSE_DSLREASONER_VAMPIRELANGUAGE.equals(grammar)) { + return new VampireLanguageRuntimeModule(); + } + throw new IllegalArgumentException(grammar); + } + + protected Module getUiModule(String grammar) { + if (CA_MCGILL_ECSE_DSLREASONER_VAMPIRELANGUAGE.equals(grammar)) { + return new VampireLanguageUiModule(this); + } + throw new IllegalArgumentException(grammar); + } + + protected Module getSharedStateModule() { + return new SharedStateModule(); + } + +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/VampireLanguageUiModule.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/VampireLanguageUiModule.xtend new file mode 100644 index 00000000..ab20cdc5 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/VampireLanguageUiModule.xtend @@ -0,0 +1,13 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ui + +import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor + +/** + * Use this class to register components to be used within the Eclipse IDE. + */ +@FinalFieldsConstructor +class VampireLanguageUiModule extends AbstractVampireLanguageUiModule { +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/contentassist/VampireLanguageProposalProvider.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/contentassist/VampireLanguageProposalProvider.xtend new file mode 100644 index 00000000..e550c974 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/contentassist/VampireLanguageProposalProvider.xtend @@ -0,0 +1,12 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ui.contentassist + + +/** + * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#content-assist + * on how to customize the content assistant. + */ +class VampireLanguageProposalProvider extends AbstractVampireLanguageProposalProvider { +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/labeling/VampireLanguageDescriptionLabelProvider.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/labeling/VampireLanguageDescriptionLabelProvider.xtend new file mode 100644 index 00000000..4e33aebc --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/labeling/VampireLanguageDescriptionLabelProvider.xtend @@ -0,0 +1,24 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ui.labeling + +import org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider + +/** + * Provides labels for IEObjectDescriptions and IResourceDescriptions. + * + * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider + */ +class VampireLanguageDescriptionLabelProvider extends DefaultDescriptionLabelProvider { + + // Labels and icons can be computed like this: + +// override text(IEObjectDescription ele) { +// ele.name.toString +// } +// +// override image(IEObjectDescription ele) { +// ele.EClass.name + '.gif' +// } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/labeling/VampireLanguageLabelProvider.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/labeling/VampireLanguageLabelProvider.xtend new file mode 100644 index 00000000..345e6bbd --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/labeling/VampireLanguageLabelProvider.xtend @@ -0,0 +1,31 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ui.labeling + +import com.google.inject.Inject +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider +import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider + +/** + * Provides labels for EObjects. + * + * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider + */ +class VampireLanguageLabelProvider extends DefaultEObjectLabelProvider { + + @Inject + new(AdapterFactoryLabelProvider delegate) { + super(delegate); + } + + // Labels and icons can be computed like this: + +// def text(Greeting ele) { +// 'A greeting to ' + ele.name +// } +// +// def image(Greeting ele) { +// 'Greeting.gif' +// } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/outline/VampireLanguageOutlineTreeProvider.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/outline/VampireLanguageOutlineTreeProvider.xtend new file mode 100644 index 00000000..fdcf1f93 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/outline/VampireLanguageOutlineTreeProvider.xtend @@ -0,0 +1,15 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ui.outline + +import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider + +/** + * Customization of the default outline structure. + * + * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#outline + */ +class VampireLanguageOutlineTreeProvider extends DefaultOutlineTreeProvider { + +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/quickfix/VampireLanguageQuickfixProvider.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/quickfix/VampireLanguageQuickfixProvider.xtend new file mode 100644 index 00000000..b657d972 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/src/ca/mcgill/ecse/dslreasoner/ui/quickfix/VampireLanguageQuickfixProvider.xtend @@ -0,0 +1,24 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ui.quickfix + +import org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider + +/** + * Custom quickfixes. + * + * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#quick-fixes + */ +class VampireLanguageQuickfixProvider extends DefaultQuickfixProvider { + +// @Fix(VampireLanguageValidator.INVALID_NAME) +// def capitalizeName(Issue issue, IssueResolutionAcceptor acceptor) { +// acceptor.accept(issue, 'Capitalize name', 'Capitalize the name.', 'upcase.png') [ +// context | +// val xtextDocument = context.xtextDocument +// val firstLetter = xtextDocument.get(issue.offset, 1) +// xtextDocument.replace(issue.offset, 1, firstLetter.toUpperCase) +// ] +// } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbin new file mode 100644 index 00000000..94310fc8 Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.gitignore new file mode 100644 index 00000000..33e14842 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.gitignore @@ -0,0 +1 @@ +/.VampireLanguageUiModule.java._trace diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/VampireLanguageUiModule.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/VampireLanguageUiModule.java new file mode 100644 index 00000000..96cac653 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/VampireLanguageUiModule.java @@ -0,0 +1,19 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ui; + +import ca.mcgill.ecse.dslreasoner.ui.AbstractVampireLanguageUiModule; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor; + +/** + * Use this class to register components to be used within the Eclipse IDE. + */ +@FinalFieldsConstructor +@SuppressWarnings("all") +public class VampireLanguageUiModule extends AbstractVampireLanguageUiModule { + public VampireLanguageUiModule(final AbstractUIPlugin plugin) { + super(plugin); + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbin new file mode 100644 index 00000000..8de60312 Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.gitignore new file mode 100644 index 00000000..458be65e --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.gitignore @@ -0,0 +1 @@ +/.VampireLanguageProposalProvider.java._trace diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/VampireLanguageProposalProvider.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/VampireLanguageProposalProvider.java new file mode 100644 index 00000000..ca5ef1f5 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/VampireLanguageProposalProvider.java @@ -0,0 +1,14 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ui.contentassist; + +import ca.mcgill.ecse.dslreasoner.ui.contentassist.AbstractVampireLanguageProposalProvider; + +/** + * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#content-assist + * on how to customize the content assistant. + */ +@SuppressWarnings("all") +public class VampireLanguageProposalProvider extends AbstractVampireLanguageProposalProvider { +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbin new file mode 100644 index 00000000..3e1bdd46 Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbin new file mode 100644 index 00000000..f1ceb7fe Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.gitignore new file mode 100644 index 00000000..11f00543 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.gitignore @@ -0,0 +1,2 @@ +/.VampireLanguageDescriptionLabelProvider.java._trace +/.VampireLanguageLabelProvider.java._trace diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/VampireLanguageDescriptionLabelProvider.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/VampireLanguageDescriptionLabelProvider.java new file mode 100644 index 00000000..1a6a3a2a --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/VampireLanguageDescriptionLabelProvider.java @@ -0,0 +1,15 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ui.labeling; + +import org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider; + +/** + * Provides labels for IEObjectDescriptions and IResourceDescriptions. + * + * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider + */ +@SuppressWarnings("all") +public class VampireLanguageDescriptionLabelProvider extends DefaultDescriptionLabelProvider { +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/VampireLanguageLabelProvider.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/VampireLanguageLabelProvider.java new file mode 100644 index 00000000..53f93e82 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/VampireLanguageLabelProvider.java @@ -0,0 +1,21 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ui.labeling; + +import com.google.inject.Inject; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; +import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider; + +/** + * Provides labels for EObjects. + * + * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider + */ +@SuppressWarnings("all") +public class VampireLanguageLabelProvider extends DefaultEObjectLabelProvider { + @Inject + public VampireLanguageLabelProvider(final AdapterFactoryLabelProvider delegate) { + super(delegate); + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbin new file mode 100644 index 00000000..7f62b702 Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.gitignore new file mode 100644 index 00000000..58d9dfd1 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.gitignore @@ -0,0 +1 @@ +/.VampireLanguageOutlineTreeProvider.java._trace diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/VampireLanguageOutlineTreeProvider.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/VampireLanguageOutlineTreeProvider.java new file mode 100644 index 00000000..45cb952e --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/VampireLanguageOutlineTreeProvider.java @@ -0,0 +1,15 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ui.outline; + +import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider; + +/** + * Customization of the default outline structure. + * + * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#outline + */ +@SuppressWarnings("all") +public class VampireLanguageOutlineTreeProvider extends DefaultOutlineTreeProvider { +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbin new file mode 100644 index 00000000..8dff8552 Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.gitignore new file mode 100644 index 00000000..93322096 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.gitignore @@ -0,0 +1 @@ +/.VampireLanguageQuickfixProvider.java._trace diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/VampireLanguageQuickfixProvider.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/VampireLanguageQuickfixProvider.java new file mode 100644 index 00000000..8b69829c --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/VampireLanguageQuickfixProvider.java @@ -0,0 +1,15 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.ui.quickfix; + +import org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider; + +/** + * Custom quickfixes. + * + * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#quick-fixes + */ +@SuppressWarnings("all") +public class VampireLanguageQuickfixProvider extends DefaultQuickfixProvider { +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.classpath b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.classpath new file mode 100644 index 00000000..1287f96c --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.gitignore new file mode 100644 index 00000000..ae3c1726 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.launch/Generate VampireLanguage (tptp) Language Infrastructure.launch b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.launch/Generate VampireLanguage (tptp) Language Infrastructure.launch new file mode 100644 index 00000000..1e23f694 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.launch/Generate VampireLanguage (tptp) Language Infrastructure.launch @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.launch/Launch Runtime Eclipse.launch b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.launch/Launch Runtime Eclipse.launch new file mode 100644 index 00000000..b1771899 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.launch/Launch Runtime Eclipse.launch @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.project b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.project new file mode 100644 index 00000000..447ae6e5 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.project @@ -0,0 +1,34 @@ + + + ca.mcgill.ecse.dslreasoner.vampire.language + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.xtext.ui.shared.xtextNature + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.settings/org.eclipse.core.resources.prefs b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..4824b802 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.settings/org.eclipse.jdt.core.prefs b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..295926d9 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/META-INF/MANIFEST.MF b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/META-INF/MANIFEST.MF new file mode 100644 index 00000000..cd3d4799 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/META-INF/MANIFEST.MF @@ -0,0 +1,29 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: ca.mcgill.ecse.dslreasoner.vampire.language +Bundle-Vendor: My Company +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.language; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.eclipse.xtext, + org.eclipse.xtext.xbase, + org.eclipse.equinox.common;bundle-version="3.5.0", + org.eclipse.emf.ecore, + org.eclipse.xtext.xbase.lib, + org.antlr.runtime, + org.eclipse.xtext.util, + org.eclipse.xtend.lib, + org.eclipse.emf.common +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Export-Package: ca.mcgill.ecse.dslreasoner.generator, + ca.mcgill.ecse.dslreasoner.parser.antlr, + ca.mcgill.ecse.dslreasoner.services, + ca.mcgill.ecse.dslreasoner.parser.antlr.internal, + ca.mcgill.ecse.dslreasoner, + ca.mcgill.ecse.dslreasoner.vampireLanguage, + ca.mcgill.ecse.dslreasoner.vampireLanguage.impl, + ca.mcgill.ecse.dslreasoner.serializer, + ca.mcgill.ecse.dslreasoner.validation, + ca.mcgill.ecse.dslreasoner.vampireLanguage.util, + ca.mcgill.ecse.dslreasoner.scoping +Import-Package: org.apache.log4j diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/build.properties b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/build.properties new file mode 100644 index 00000000..aa338a94 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/build.properties @@ -0,0 +1,20 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = model/generated/,\ + .,\ + META-INF/,\ + plugin.xml +bin.excludes = **/*.mwe2,\ + **/*.xtend +additional.bundles = org.eclipse.xtext.xbase,\ + org.eclipse.xtext.common.types,\ + org.eclipse.xtext.xtext.generator,\ + org.eclipse.emf.codegen.ecore,\ + org.eclipse.emf.mwe.utils,\ + org.eclipse.emf.mwe2.launch,\ + org.eclipse.emf.mwe2.lib,\ + org.objectweb.asm,\ + org.apache.commons.logging,\ + org.apache.log4j,\ + com.ibm.icu diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/model/generated/VampireLanguage.ecore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/model/generated/VampireLanguage.ecore new file mode 100644 index 00000000..8c6c8233 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/model/generated/VampireLanguage.ecore @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/model/generated/VampireLanguage.genmodel b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/model/generated/VampireLanguage.genmodel new file mode 100644 index 00000000..0dc38d95 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/model/generated/VampireLanguage.genmodel @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/plugin.xml b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/plugin.xml new file mode 100644 index 00000000..52f3c0a5 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/plugin.xml @@ -0,0 +1,10 @@ + + + + + + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/AbstractVampireLanguageRuntimeModule.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/AbstractVampireLanguageRuntimeModule.java new file mode 100644 index 00000000..2906e24d --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/AbstractVampireLanguageRuntimeModule.java @@ -0,0 +1,194 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner; + +import ca.mcgill.ecse.dslreasoner.generator.VampireLanguageGenerator; +import ca.mcgill.ecse.dslreasoner.parser.antlr.VampireLanguageAntlrTokenFileProvider; +import ca.mcgill.ecse.dslreasoner.parser.antlr.VampireLanguageParser; +import ca.mcgill.ecse.dslreasoner.parser.antlr.internal.InternalVampireLanguageLexer; +import ca.mcgill.ecse.dslreasoner.scoping.VampireLanguageScopeProvider; +import ca.mcgill.ecse.dslreasoner.serializer.VampireLanguageSemanticSequencer; +import ca.mcgill.ecse.dslreasoner.serializer.VampireLanguageSyntacticSequencer; +import ca.mcgill.ecse.dslreasoner.services.VampireLanguageGrammarAccess; +import ca.mcgill.ecse.dslreasoner.validation.VampireLanguageValidator; +import com.google.inject.Binder; +import com.google.inject.Provider; +import com.google.inject.name.Names; +import java.util.Properties; +import org.eclipse.xtext.Constants; +import org.eclipse.xtext.IGrammarAccess; +import org.eclipse.xtext.generator.IGenerator2; +import org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider; +import org.eclipse.xtext.naming.IQualifiedNameProvider; +import org.eclipse.xtext.parser.IParser; +import org.eclipse.xtext.parser.ITokenToStringConverter; +import org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider; +import org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter; +import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider; +import org.eclipse.xtext.parser.antlr.ITokenDefProvider; +import org.eclipse.xtext.parser.antlr.Lexer; +import org.eclipse.xtext.parser.antlr.LexerBindings; +import org.eclipse.xtext.parser.antlr.LexerProvider; +import org.eclipse.xtext.resource.IContainer; +import org.eclipse.xtext.resource.IResourceDescriptions; +import org.eclipse.xtext.resource.containers.IAllContainersState; +import org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider; +import org.eclipse.xtext.resource.containers.StateBasedContainerManager; +import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider; +import org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions; +import org.eclipse.xtext.scoping.IGlobalScopeProvider; +import org.eclipse.xtext.scoping.IScopeProvider; +import org.eclipse.xtext.scoping.IgnoreCaseLinking; +import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider; +import org.eclipse.xtext.scoping.impl.DefaultGlobalScopeProvider; +import org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider; +import org.eclipse.xtext.serializer.ISerializer; +import org.eclipse.xtext.serializer.impl.Serializer; +import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer; +import org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer; +import org.eclipse.xtext.service.DefaultRuntimeModule; +import org.eclipse.xtext.service.SingletonBinding; + +/** + * Manual modifications go to {@link VampireLanguageRuntimeModule}. + */ +@SuppressWarnings("all") +public abstract class AbstractVampireLanguageRuntimeModule extends DefaultRuntimeModule { + + protected Properties properties = null; + + @Override + public void configure(Binder binder) { + properties = tryBindProperties(binder, "ca/mcgill/ecse/dslreasoner/VampireLanguage.properties"); + super.configure(binder); + } + + public void configureLanguageName(Binder binder) { + binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("ca.mcgill.ecse.dslreasoner.VampireLanguage"); + } + + public void configureFileExtensions(Binder binder) { + if (properties == null || properties.getProperty(Constants.FILE_EXTENSIONS) == null) + binder.bind(String.class).annotatedWith(Names.named(Constants.FILE_EXTENSIONS)).toInstance("tptp"); + } + + // contributed by org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2 + public ClassLoader bindClassLoaderToInstance() { + return getClass().getClassLoader(); + } + + // contributed by org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2 + public Class bindIGrammarAccess() { + return VampireLanguageGrammarAccess.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2 + public Class bindISemanticSequencer() { + return VampireLanguageSemanticSequencer.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2 + public Class bindISyntacticSequencer() { + return VampireLanguageSyntacticSequencer.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2 + public Class bindISerializer() { + return Serializer.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindIParser() { + return VampireLanguageParser.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindITokenToStringConverter() { + return AntlrTokenToStringConverter.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindIAntlrTokenFileProvider() { + return VampireLanguageAntlrTokenFileProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindLexer() { + return InternalVampireLanguageLexer.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Class bindITokenDefProvider() { + return AntlrTokenDefProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public Provider provideInternalVampireLanguageLexer() { + return LexerProvider.create(InternalVampireLanguageLexer.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2 + public void configureRuntimeLexer(Binder binder) { + binder.bind(Lexer.class) + .annotatedWith(Names.named(LexerBindings.RUNTIME)) + .to(InternalVampireLanguageLexer.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2 + @SingletonBinding(eager=true) + public Class bindVampireLanguageValidator() { + return VampireLanguageValidator.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2 + public Class bindIScopeProvider() { + return VampireLanguageScopeProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2 + public void configureIScopeProviderDelegate(Binder binder) { + binder.bind(IScopeProvider.class).annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(ImportedNamespaceAwareLocalScopeProvider.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2 + public Class bindIGlobalScopeProvider() { + return DefaultGlobalScopeProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2 + public void configureIgnoreCaseLinking(Binder binder) { + binder.bindConstant().annotatedWith(IgnoreCaseLinking.class).to(false); + } + + // contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2 + public Class bindIQualifiedNameProvider() { + return DefaultDeclarativeQualifiedNameProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 + public Class bindIContainer$Manager() { + return StateBasedContainerManager.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 + public Class bindIAllContainersState$Provider() { + return ResourceSetBasedAllContainersStateProvider.class; + } + + // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 + public void configureIResourceDescriptions(Binder binder) { + binder.bind(IResourceDescriptions.class).to(ResourceSetBasedResourceDescriptions.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2 + public void configureIResourceDescriptionsPersisted(Binder binder) { + binder.bind(IResourceDescriptions.class).annotatedWith(Names.named(ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(ResourceSetBasedResourceDescriptions.class); + } + + // contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2 + public Class bindIGenerator2() { + return VampireLanguageGenerator.class; + } + +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/VampireLanguage.xtextbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/VampireLanguage.xtextbin new file mode 100644 index 00000000..a65de780 Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/VampireLanguage.xtextbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/VampireLanguageStandaloneSetupGenerated.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/VampireLanguageStandaloneSetupGenerated.java new file mode 100644 index 00000000..df52ec67 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/VampireLanguageStandaloneSetupGenerated.java @@ -0,0 +1,42 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; +import com.google.inject.Guice; +import com.google.inject.Injector; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.xtext.ISetup; +import org.eclipse.xtext.common.TerminalsStandaloneSetup; +import org.eclipse.xtext.resource.IResourceFactory; +import org.eclipse.xtext.resource.IResourceServiceProvider; + +@SuppressWarnings("all") +public class VampireLanguageStandaloneSetupGenerated implements ISetup { + + @Override + public Injector createInjectorAndDoEMFRegistration() { + TerminalsStandaloneSetup.doSetup(); + + Injector injector = createInjector(); + register(injector); + return injector; + } + + public Injector createInjector() { + return Guice.createInjector(new VampireLanguageRuntimeModule()); + } + + public void register(Injector injector) { + if (!EPackage.Registry.INSTANCE.containsKey("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage")) { + EPackage.Registry.INSTANCE.put("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", VampireLanguagePackage.eINSTANCE); + } + IResourceFactory resourceFactory = injector.getInstance(IResourceFactory.class); + IResourceServiceProvider serviceProvider = injector.getInstance(IResourceServiceProvider.class); + + Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("tptp", resourceFactory); + IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("tptp", serviceProvider); + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/VampireLanguageAntlrTokenFileProvider.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/VampireLanguageAntlrTokenFileProvider.java new file mode 100644 index 00000000..a4da8047 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/VampireLanguageAntlrTokenFileProvider.java @@ -0,0 +1,16 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.parser.antlr; + +import java.io.InputStream; +import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider; + +public class VampireLanguageAntlrTokenFileProvider implements IAntlrTokenFileProvider { + + @Override + public InputStream getAntlrTokenFile() { + ClassLoader classLoader = getClass().getClassLoader(); + return classLoader.getResourceAsStream("ca/mcgill/ecse/dslreasoner/parser/antlr/internal/InternalVampireLanguage.tokens"); + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/VampireLanguageParser.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/VampireLanguageParser.java new file mode 100644 index 00000000..0e487d5c --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/VampireLanguageParser.java @@ -0,0 +1,40 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.parser.antlr; + +import ca.mcgill.ecse.dslreasoner.parser.antlr.internal.InternalVampireLanguageParser; +import ca.mcgill.ecse.dslreasoner.services.VampireLanguageGrammarAccess; +import com.google.inject.Inject; +import org.eclipse.xtext.parser.antlr.AbstractAntlrParser; +import org.eclipse.xtext.parser.antlr.XtextTokenStream; + +public class VampireLanguageParser extends AbstractAntlrParser { + + @Inject + private VampireLanguageGrammarAccess grammarAccess; + + @Override + protected void setInitialHiddenTokens(XtextTokenStream tokenStream) { + tokenStream.setInitialHiddenTokens("RULE_WS"); + } + + + @Override + protected InternalVampireLanguageParser createParser(XtextTokenStream stream) { + return new InternalVampireLanguageParser(stream, getGrammarAccess()); + } + + @Override + protected String getDefaultRuleName() { + return "VampireModel"; + } + + public VampireLanguageGrammarAccess getGrammarAccess() { + return this.grammarAccess; + } + + public void setGrammarAccess(VampireLanguageGrammarAccess grammarAccess) { + this.grammarAccess = grammarAccess; + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/internal/InternalVampireLanguage.g b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/internal/InternalVampireLanguage.g new file mode 100644 index 00000000..2819b307 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/internal/InternalVampireLanguage.g @@ -0,0 +1,2669 @@ +/* + * generated by Xtext 2.12.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().getFormulasVLSFofFormulaParserRuleCall_2_0()); + } + lv_formulas_2_0=ruleVLSFofFormula + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getVampireModelRule()); + } + add( + $current, + "formulas", + lv_formulas_2_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofFormula"); + 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(); +}: + ( + ( + lv_comment_0_0=RULE_SINGLE_COMMENT + { + newLeafNode(lv_comment_0_0, grammarAccess.getVLSCommentAccess().getCommentSINGLE_COMMENTTerminalRuleCall_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getVLSCommentRule()); + } + setWithLastConsumed( + $current, + "comment", + lv_comment_0_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_COMMENT"); + } + ) + ) +; + +// 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 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(); +}: + ( + { + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSAxiomParserRuleCall_0()); + } + this_VLSAxiom_0=ruleVLSAxiom + { + $current.merge(this_VLSAxiom_0); + } + { + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSConjectureParserRuleCall_1()); + } + this_VLSConjecture_1=ruleVLSConjecture + { + $current.merge(this_VLSConjecture_1); + } + { + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSHypothesisParserRuleCall_2()); + } + this_VLSHypothesis_2=ruleVLSHypothesis + { + $current.merge(this_VLSHypothesis_2); + } + { + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSDefinitionParserRuleCall_3()); + } + this_VLSDefinition_3=ruleVLSDefinition + { + $current.merge(this_VLSDefinition_3); + } + { + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSAssumptionParserRuleCall_4()); + } + this_VLSAssumption_4=ruleVLSAssumption + { + $current.merge(this_VLSAssumption_4); + } + { + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSLemmaParserRuleCall_5()); + } + this_VLSLemma_5=ruleVLSLemma + { + $current.merge(this_VLSLemma_5); + } + { + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSTheoremParserRuleCall_6()); + } + this_VLSTheorem_6=ruleVLSTheorem + { + $current.merge(this_VLSTheorem_6); + } + { + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSCorollaryParserRuleCall_7()); + } + this_VLSCorollary_7=ruleVLSCorollary + { + $current.merge(this_VLSCorollary_7); + } + { + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSNegated_ConjectureParserRuleCall_8()); + } + this_VLSNegated_Conjecture_8=ruleVLSNegated_Conjecture + { + $current.merge(this_VLSNegated_Conjecture_8); + } + { + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSPlainParserRuleCall_9()); + } + this_VLSPlain_9=ruleVLSPlain + { + $current.merge(this_VLSPlain_9); + } + { + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSTypeParserRuleCall_10()); + } + this_VLSType_10=ruleVLSType + { + $current.merge(this_VLSType_10); + } + { + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSFi_DomainParserRuleCall_11()); + } + this_VLSFi_Domain_11=ruleVLSFi_Domain + { + $current.merge(this_VLSFi_Domain_11); + } + { + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSFi_FunctorsParserRuleCall_12()); + } + this_VLSFi_Functors_12=ruleVLSFi_Functors + { + $current.merge(this_VLSFi_Functors_12); + } + { + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSFi_PredicatesParserRuleCall_13()); + } + this_VLSFi_Predicates_13=ruleVLSFi_Predicates + { + $current.merge(this_VLSFi_Predicates_13); + } + { + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSUnknownParserRuleCall_14()); + } + this_VLSUnknown_14=ruleVLSUnknown + { + $current.merge(this_VLSUnknown_14); + } + { + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleVLSAxiom +entryRuleVLSAxiom returns [String current=null]: + { newCompositeNode(grammarAccess.getVLSAxiomRule()); } + iv_ruleVLSAxiom=ruleVLSAxiom + { $current=$iv_ruleVLSAxiom.current.getText(); } + EOF; + +// Rule VLSAxiom +ruleVLSAxiom returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + kw='axiom' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSAxiomAccess().getAxiomKeyword()); + } +; + +// Entry rule entryRuleVLSConjecture +entryRuleVLSConjecture returns [String current=null]: + { newCompositeNode(grammarAccess.getVLSConjectureRule()); } + iv_ruleVLSConjecture=ruleVLSConjecture + { $current=$iv_ruleVLSConjecture.current.getText(); } + EOF; + +// Rule VLSConjecture +ruleVLSConjecture returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + kw='conjecture' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSConjectureAccess().getConjectureKeyword()); + } +; + +// Entry rule entryRuleVLSHypothesis +entryRuleVLSHypothesis returns [String current=null]: + { newCompositeNode(grammarAccess.getVLSHypothesisRule()); } + iv_ruleVLSHypothesis=ruleVLSHypothesis + { $current=$iv_ruleVLSHypothesis.current.getText(); } + EOF; + +// Rule VLSHypothesis +ruleVLSHypothesis returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + kw='hypothesis' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSHypothesisAccess().getHypothesisKeyword()); + } +; + +// Entry rule entryRuleVLSDefinition +entryRuleVLSDefinition returns [String current=null]: + { newCompositeNode(grammarAccess.getVLSDefinitionRule()); } + iv_ruleVLSDefinition=ruleVLSDefinition + { $current=$iv_ruleVLSDefinition.current.getText(); } + EOF; + +// Rule VLSDefinition +ruleVLSDefinition returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + kw='definition' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSDefinitionAccess().getDefinitionKeyword()); + } +; + +// Entry rule entryRuleVLSAssumption +entryRuleVLSAssumption returns [String current=null]: + { newCompositeNode(grammarAccess.getVLSAssumptionRule()); } + iv_ruleVLSAssumption=ruleVLSAssumption + { $current=$iv_ruleVLSAssumption.current.getText(); } + EOF; + +// Rule VLSAssumption +ruleVLSAssumption returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + kw='assumption' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSAssumptionAccess().getAssumptionKeyword()); + } +; + +// Entry rule entryRuleVLSLemma +entryRuleVLSLemma returns [String current=null]: + { newCompositeNode(grammarAccess.getVLSLemmaRule()); } + iv_ruleVLSLemma=ruleVLSLemma + { $current=$iv_ruleVLSLemma.current.getText(); } + EOF; + +// Rule VLSLemma +ruleVLSLemma returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + kw='lemma' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSLemmaAccess().getLemmaKeyword()); + } +; + +// Entry rule entryRuleVLSTheorem +entryRuleVLSTheorem returns [String current=null]: + { newCompositeNode(grammarAccess.getVLSTheoremRule()); } + iv_ruleVLSTheorem=ruleVLSTheorem + { $current=$iv_ruleVLSTheorem.current.getText(); } + EOF; + +// Rule VLSTheorem +ruleVLSTheorem returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + kw='theorem' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSTheoremAccess().getTheoremKeyword()); + } +; + +// Entry rule entryRuleVLSCorollary +entryRuleVLSCorollary returns [String current=null]: + { newCompositeNode(grammarAccess.getVLSCorollaryRule()); } + iv_ruleVLSCorollary=ruleVLSCorollary + { $current=$iv_ruleVLSCorollary.current.getText(); } + EOF; + +// Rule VLSCorollary +ruleVLSCorollary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + kw='corollary' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSCorollaryAccess().getCorollaryKeyword()); + } +; + +// Entry rule entryRuleVLSNegated_Conjecture +entryRuleVLSNegated_Conjecture returns [String current=null]: + { newCompositeNode(grammarAccess.getVLSNegated_ConjectureRule()); } + iv_ruleVLSNegated_Conjecture=ruleVLSNegated_Conjecture + { $current=$iv_ruleVLSNegated_Conjecture.current.getText(); } + EOF; + +// Rule VLSNegated_Conjecture +ruleVLSNegated_Conjecture returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + kw='negated_conjecture' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSNegated_ConjectureAccess().getNegated_conjectureKeyword()); + } +; + +// Entry rule entryRuleVLSPlain +entryRuleVLSPlain returns [String current=null]: + { newCompositeNode(grammarAccess.getVLSPlainRule()); } + iv_ruleVLSPlain=ruleVLSPlain + { $current=$iv_ruleVLSPlain.current.getText(); } + EOF; + +// Rule VLSPlain +ruleVLSPlain returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + kw='plain' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSPlainAccess().getPlainKeyword()); + } +; + +// Entry rule entryRuleVLSType +entryRuleVLSType returns [String current=null]: + { newCompositeNode(grammarAccess.getVLSTypeRule()); } + iv_ruleVLSType=ruleVLSType + { $current=$iv_ruleVLSType.current.getText(); } + EOF; + +// Rule VLSType +ruleVLSType returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + kw='type' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSTypeAccess().getTypeKeyword()); + } +; + +// Entry rule entryRuleVLSFi_Domain +entryRuleVLSFi_Domain returns [String current=null]: + { newCompositeNode(grammarAccess.getVLSFi_DomainRule()); } + iv_ruleVLSFi_Domain=ruleVLSFi_Domain + { $current=$iv_ruleVLSFi_Domain.current.getText(); } + EOF; + +// Rule VLSFi_Domain +ruleVLSFi_Domain returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + kw='fi_domain' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSFi_DomainAccess().getFi_domainKeyword()); + } +; + +// Entry rule entryRuleVLSFi_Functors +entryRuleVLSFi_Functors returns [String current=null]: + { newCompositeNode(grammarAccess.getVLSFi_FunctorsRule()); } + iv_ruleVLSFi_Functors=ruleVLSFi_Functors + { $current=$iv_ruleVLSFi_Functors.current.getText(); } + EOF; + +// Rule VLSFi_Functors +ruleVLSFi_Functors returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + kw='fi_functors' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSFi_FunctorsAccess().getFi_functorsKeyword()); + } +; + +// Entry rule entryRuleVLSFi_Predicates +entryRuleVLSFi_Predicates returns [String current=null]: + { newCompositeNode(grammarAccess.getVLSFi_PredicatesRule()); } + iv_ruleVLSFi_Predicates=ruleVLSFi_Predicates + { $current=$iv_ruleVLSFi_Predicates.current.getText(); } + EOF; + +// Rule VLSFi_Predicates +ruleVLSFi_Predicates returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + kw='fi_predicates' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSFi_PredicatesAccess().getFi_predicatesKeyword()); + } +; + +// Entry rule entryRuleVLSUnknown +entryRuleVLSUnknown returns [String current=null]: + { newCompositeNode(grammarAccess.getVLSUnknownRule()); } + iv_ruleVLSUnknown=ruleVLSUnknown + { $current=$iv_ruleVLSUnknown.current.getText(); } + EOF; + +// Rule VLSUnknown +ruleVLSUnknown returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + kw='unknown' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSUnknownAccess().getUnknownKeyword()); + } +; + +// 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().getVLSFunctionFofParserRuleCall_1()); + } + this_VLSFunctionFof_1=ruleVLSFunctionFof + { + $current = $this_VLSFunctionFof_1.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getVLSFofTermAccess().getVLSDefinedTermParserRuleCall_2()); + } + this_VLSDefinedTerm_2=ruleVLSDefinedTerm + { + $current = $this_VLSDefinedTerm_2.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleVLSFunctionFof +entryRuleVLSFunctionFof returns [EObject current=null]: + { newCompositeNode(grammarAccess.getVLSFunctionFofRule()); } + iv_ruleVLSFunctionFof=ruleVLSFunctionFof + { $current=$iv_ruleVLSFunctionFof.current; } + EOF; + +// Rule VLSFunctionFof +ruleVLSFunctionFof returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + ( + lv_functor_0_1=RULE_LOWER_WORD_ID + { + newLeafNode(lv_functor_0_1, grammarAccess.getVLSFunctionFofAccess().getFunctorLOWER_WORD_IDTerminalRuleCall_0_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getVLSFunctionFofRule()); + } + 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.getVLSFunctionFofAccess().getFunctorSINGLE_QUOTETerminalRuleCall_0_0_1()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getVLSFunctionFofRule()); + } + 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.getVLSFunctionFofAccess().getFunctorDOLLAR_IDTerminalRuleCall_0_0_2()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getVLSFunctionFofRule()); + } + 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.getVLSFunctionFofAccess().getFunctorDOUBLE_DOLLAR_IDTerminalRuleCall_0_0_3()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getVLSFunctionFofRule()); + } + setWithLastConsumed( + $current, + "functor", + lv_functor_0_4, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.DOUBLE_DOLLAR_ID"); + } + ) + ) + ) + ( + otherlv_1='(' + { + newLeafNode(otherlv_1, grammarAccess.getVLSFunctionFofAccess().getLeftParenthesisKeyword_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getVLSFunctionFofAccess().getTermsVLSFofTermParserRuleCall_1_1_0()); + } + lv_terms_2_0=ruleVLSFofTerm + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getVLSFunctionFofRule()); + } + add( + $current, + "terms", + lv_terms_2_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_3=',' + { + newLeafNode(otherlv_3, grammarAccess.getVLSFunctionFofAccess().getCommaKeyword_1_2_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getVLSFunctionFofAccess().getTermsVLSFofTermParserRuleCall_1_2_1_0()); + } + lv_terms_4_0=ruleVLSFofTerm + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getVLSFunctionFofRule()); + } + add( + $current, + "terms", + lv_terms_4_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + otherlv_5=')' + { + newLeafNode(otherlv_5, grammarAccess.getVLSFunctionFofAccess().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_ANY_OTHER : '%' ~(('\n'|'\r'))* '\r'; + +RULE_SINGLE_COMMENT : RULE_ANY_OTHER; + +RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*; + +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')+; diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/internal/InternalVampireLanguage.tokens b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/internal/InternalVampireLanguage.tokens new file mode 100644 index 00000000..9a2d1db3 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/internal/InternalVampireLanguage.tokens @@ -0,0 +1,107 @@ +'!'=59 +'!='=63 +'$false'=67 +'$less'=68 +'$true'=66 +'&'=57 +'('=32 +')'=33 +','=29 +',['=28 +'.'=34 +':'=60 +':='=65 +'<='=53 +'<=>'=51 +'<~>'=54 +'='=64 +'=>'=52 +'?'=61 +'['=50 +']'=30 +'assumption'=39 +'axiom'=35 +'conjecture'=36 +'corollary'=42 +'definition'=38 +'fi_domain'=46 +'fi_functors'=47 +'fi_predicates'=48 +'fof'=31 +'hypothesis'=37 +'include('=27 +'lemma'=40 +'negated_conjecture'=43 +'plain'=44 +'theorem'=41 +'type'=45 +'unknown'=49 +'|'=58 +'~&'=56 +'~'=62 +'~|'=55 +RULE_ALPHA_NUMERIC=15 +RULE_ANY_OTHER=21 +RULE_DOLLAR_ID=9 +RULE_DOUBLE_DOLLAR_ID=10 +RULE_DOUBLE_QUOTE=14 +RULE_ID=22 +RULE_INT=17 +RULE_LITERAL=6 +RULE_LOWER_WORD_ID=5 +RULE_ML_COMMENT=24 +RULE_SIGN=16 +RULE_SIGNED_LITERAL=7 +RULE_SIGNED_RAT_ID=13 +RULE_SIGNED_REAL_ID=12 +RULE_SINGLE_COMMENT=8 +RULE_SINGLE_QUOTE=4 +RULE_SL_COMMENT=25 +RULE_STRING=23 +RULE_UNSIGNED_RAT_ID=20 +RULE_UNSIGNED_REAL_EXP_ID=19 +RULE_UNSIGNED_REAL_FRAC_ID=18 +RULE_UPPER_WORD_ID=11 +RULE_WS=26 +T__27=27 +T__28=28 +T__29=29 +T__30=30 +T__31=31 +T__32=32 +T__33=33 +T__34=34 +T__35=35 +T__36=36 +T__37=37 +T__38=38 +T__39=39 +T__40=40 +T__41=41 +T__42=42 +T__43=43 +T__44=44 +T__45=45 +T__46=46 +T__47=47 +T__48=48 +T__49=49 +T__50=50 +T__51=51 +T__52=52 +T__53=53 +T__54=54 +T__55=55 +T__56=56 +T__57=57 +T__58=58 +T__59=59 +T__60=60 +T__61=61 +T__62=62 +T__63=63 +T__64=64 +T__65=65 +T__66=66 +T__67=67 +T__68=68 diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/internal/InternalVampireLanguageLexer.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/internal/InternalVampireLanguageLexer.java new file mode 100644 index 00000000..ae4174b6 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/parser/antlr/internal/InternalVampireLanguageLexer.java @@ -0,0 +1,3100 @@ +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; + + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; + +@SuppressWarnings("all") +public class InternalVampireLanguageLexer extends Lexer { + public static final int RULE_UNSIGNED_RAT_ID=20; + public static final int T__50=50; + public static final int RULE_SIGN=16; + public static final int T__59=59; + public static final int RULE_SIGNED_LITERAL=7; + public static final int T__55=55; + public static final int T__56=56; + public static final int T__57=57; + public static final int T__58=58; + public static final int T__51=51; + public static final int RULE_DOUBLE_QUOTE=14; + public static final int T__52=52; + public static final int RULE_LITERAL=6; + public static final int T__53=53; + public static final int RULE_UNSIGNED_REAL_FRAC_ID=18; + public static final int T__54=54; + public static final int T__60=60; + public static final int T__61=61; + public static final int RULE_ID=22; + public static final int RULE_SINGLE_QUOTE=4; + public static final int RULE_SINGLE_COMMENT=8; + public static final int T__27=27; + public static final int T__28=28; + public static final int RULE_INT=17; + public static final int T__29=29; + public static final int T__66=66; + public static final int RULE_ML_COMMENT=24; + public static final int T__67=67; + public static final int RULE_SIGNED_RAT_ID=13; + public static final int T__68=68; + public static final int T__62=62; + public static final int T__63=63; + public static final int T__64=64; + public static final int T__65=65; + public static final int RULE_LOWER_WORD_ID=5; + public static final int RULE_STRING=23; + public static final int RULE_SL_COMMENT=25; + public static final int T__37=37; + public static final int T__38=38; + public static final int T__39=39; + public static final int T__33=33; + public static final int T__34=34; + public static final int T__35=35; + public static final int T__36=36; + public static final int EOF=-1; + public static final int T__30=30; + public static final int RULE_UNSIGNED_REAL_EXP_ID=19; + public static final int T__31=31; + public static final int T__32=32; + public static final int RULE_UPPER_WORD_ID=11; + public static final int RULE_WS=26; + public static final int RULE_DOLLAR_ID=9; + public static final int RULE_ALPHA_NUMERIC=15; + public static final int RULE_ANY_OTHER=21; + public static final int RULE_DOUBLE_DOLLAR_ID=10; + public static final int T__48=48; + public static final int T__49=49; + public static final int T__44=44; + public static final int T__45=45; + public static final int RULE_SIGNED_REAL_ID=12; + public static final int T__46=46; + public static final int T__47=47; + public static final int T__40=40; + public static final int T__41=41; + public static final int T__42=42; + public static final int T__43=43; + + // delegates + // delegators + + public InternalVampireLanguageLexer() {;} + public InternalVampireLanguageLexer(CharStream input) { + this(input, new RecognizerSharedState()); + } + public InternalVampireLanguageLexer(CharStream input, RecognizerSharedState state) { + super(input,state); + + } + public String getGrammarFileName() { return "InternalVampireLanguage.g"; } + + // $ANTLR start "T__27" + public final void mT__27() throws RecognitionException { + try { + int _type = T__27; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:11:7: ( 'include(' ) + // InternalVampireLanguage.g:11:9: 'include(' + { + match("include("); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__27" + + // $ANTLR start "T__28" + public final void mT__28() throws RecognitionException { + try { + int _type = T__28; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:12:7: ( ',[' ) + // InternalVampireLanguage.g:12:9: ',[' + { + match(",["); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__28" + + // $ANTLR start "T__29" + public final void mT__29() throws RecognitionException { + try { + int _type = T__29; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:13:7: ( ',' ) + // InternalVampireLanguage.g:13:9: ',' + { + match(','); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__29" + + // $ANTLR start "T__30" + public final void mT__30() throws RecognitionException { + try { + int _type = T__30; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:14:7: ( ']' ) + // InternalVampireLanguage.g:14:9: ']' + { + match(']'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__30" + + // $ANTLR start "T__31" + public final void mT__31() throws RecognitionException { + try { + int _type = T__31; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:15:7: ( 'fof' ) + // InternalVampireLanguage.g:15:9: 'fof' + { + match("fof"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__31" + + // $ANTLR start "T__32" + public final void mT__32() throws RecognitionException { + try { + int _type = T__32; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:16:7: ( '(' ) + // InternalVampireLanguage.g:16:9: '(' + { + match('('); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__32" + + // $ANTLR start "T__33" + public final void mT__33() throws RecognitionException { + try { + int _type = T__33; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:17:7: ( ')' ) + // InternalVampireLanguage.g:17:9: ')' + { + match(')'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__33" + + // $ANTLR start "T__34" + public final void mT__34() throws RecognitionException { + try { + int _type = T__34; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:18:7: ( '.' ) + // InternalVampireLanguage.g:18:9: '.' + { + match('.'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__34" + + // $ANTLR start "T__35" + public final void mT__35() throws RecognitionException { + try { + int _type = T__35; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:19:7: ( 'axiom' ) + // InternalVampireLanguage.g:19:9: 'axiom' + { + match("axiom"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__35" + + // $ANTLR start "T__36" + public final void mT__36() throws RecognitionException { + try { + int _type = T__36; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:20:7: ( 'conjecture' ) + // InternalVampireLanguage.g:20:9: 'conjecture' + { + match("conjecture"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__36" + + // $ANTLR start "T__37" + public final void mT__37() throws RecognitionException { + try { + int _type = T__37; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:21:7: ( 'hypothesis' ) + // InternalVampireLanguage.g:21:9: 'hypothesis' + { + match("hypothesis"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__37" + + // $ANTLR start "T__38" + public final void mT__38() throws RecognitionException { + try { + int _type = T__38; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:22:7: ( 'definition' ) + // InternalVampireLanguage.g:22:9: 'definition' + { + match("definition"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__38" + + // $ANTLR start "T__39" + public final void mT__39() throws RecognitionException { + try { + int _type = T__39; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:23:7: ( 'assumption' ) + // InternalVampireLanguage.g:23:9: 'assumption' + { + match("assumption"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__39" + + // $ANTLR start "T__40" + public final void mT__40() throws RecognitionException { + try { + int _type = T__40; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:24:7: ( 'lemma' ) + // InternalVampireLanguage.g:24:9: 'lemma' + { + match("lemma"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__40" + + // $ANTLR start "T__41" + public final void mT__41() throws RecognitionException { + try { + int _type = T__41; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:25:7: ( 'theorem' ) + // InternalVampireLanguage.g:25:9: 'theorem' + { + match("theorem"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__41" + + // $ANTLR start "T__42" + public final void mT__42() throws RecognitionException { + try { + int _type = T__42; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:26:7: ( 'corollary' ) + // InternalVampireLanguage.g:26:9: 'corollary' + { + match("corollary"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__42" + + // $ANTLR start "T__43" + public final void mT__43() throws RecognitionException { + try { + int _type = T__43; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:27:7: ( 'negated_conjecture' ) + // InternalVampireLanguage.g:27:9: 'negated_conjecture' + { + match("negated_conjecture"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__43" + + // $ANTLR start "T__44" + public final void mT__44() throws RecognitionException { + try { + int _type = T__44; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:28:7: ( 'plain' ) + // InternalVampireLanguage.g:28:9: 'plain' + { + match("plain"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__44" + + // $ANTLR start "T__45" + public final void mT__45() throws RecognitionException { + try { + int _type = T__45; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:29:7: ( 'type' ) + // InternalVampireLanguage.g:29:9: 'type' + { + match("type"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__45" + + // $ANTLR start "T__46" + public final void mT__46() throws RecognitionException { + try { + int _type = T__46; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:30:7: ( 'fi_domain' ) + // InternalVampireLanguage.g:30:9: 'fi_domain' + { + match("fi_domain"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__46" + + // $ANTLR start "T__47" + public final void mT__47() throws RecognitionException { + try { + int _type = T__47; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:31:7: ( 'fi_functors' ) + // InternalVampireLanguage.g:31:9: 'fi_functors' + { + match("fi_functors"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__47" + + // $ANTLR start "T__48" + public final void mT__48() throws RecognitionException { + try { + int _type = T__48; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:32:7: ( 'fi_predicates' ) + // InternalVampireLanguage.g:32:9: 'fi_predicates' + { + match("fi_predicates"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__48" + + // $ANTLR start "T__49" + public final void mT__49() throws RecognitionException { + try { + int _type = T__49; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:33:7: ( 'unknown' ) + // InternalVampireLanguage.g:33:9: 'unknown' + { + match("unknown"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__49" + + // $ANTLR start "T__50" + public final void mT__50() throws RecognitionException { + try { + int _type = T__50; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:34:7: ( '[' ) + // InternalVampireLanguage.g:34:9: '[' + { + match('['); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__50" + + // $ANTLR start "T__51" + public final void mT__51() throws RecognitionException { + try { + int _type = T__51; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:35:7: ( '<=>' ) + // InternalVampireLanguage.g:35:9: '<=>' + { + match("<=>"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__51" + + // $ANTLR start "T__52" + public final void mT__52() throws RecognitionException { + try { + int _type = T__52; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:36:7: ( '=>' ) + // InternalVampireLanguage.g:36:9: '=>' + { + match("=>"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__52" + + // $ANTLR start "T__53" + public final void mT__53() throws RecognitionException { + try { + int _type = T__53; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:37:7: ( '<=' ) + // InternalVampireLanguage.g:37:9: '<=' + { + match("<="); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__53" + + // $ANTLR start "T__54" + public final void mT__54() throws RecognitionException { + try { + int _type = T__54; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:38:7: ( '<~>' ) + // InternalVampireLanguage.g:38:9: '<~>' + { + match("<~>"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__54" + + // $ANTLR start "T__55" + public final void mT__55() throws RecognitionException { + try { + int _type = T__55; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:39:7: ( '~|' ) + // InternalVampireLanguage.g:39:9: '~|' + { + match("~|"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__55" + + // $ANTLR start "T__56" + public final void mT__56() throws RecognitionException { + try { + int _type = T__56; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:40:7: ( '~&' ) + // InternalVampireLanguage.g:40:9: '~&' + { + match("~&"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__56" + + // $ANTLR start "T__57" + public final void mT__57() throws RecognitionException { + try { + int _type = T__57; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:41:7: ( '&' ) + // InternalVampireLanguage.g:41:9: '&' + { + match('&'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__57" + + // $ANTLR start "T__58" + public final void mT__58() throws RecognitionException { + try { + int _type = T__58; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:42:7: ( '|' ) + // InternalVampireLanguage.g:42:9: '|' + { + match('|'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__58" + + // $ANTLR start "T__59" + public final void mT__59() throws RecognitionException { + try { + int _type = T__59; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:43:7: ( '!' ) + // InternalVampireLanguage.g:43:9: '!' + { + match('!'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__59" + + // $ANTLR start "T__60" + public final void mT__60() throws RecognitionException { + try { + int _type = T__60; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:44:7: ( ':' ) + // InternalVampireLanguage.g:44:9: ':' + { + match(':'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__60" + + // $ANTLR start "T__61" + public final void mT__61() throws RecognitionException { + try { + int _type = T__61; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:45:7: ( '?' ) + // InternalVampireLanguage.g:45:9: '?' + { + match('?'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__61" + + // $ANTLR start "T__62" + public final void mT__62() throws RecognitionException { + try { + int _type = T__62; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:46:7: ( '~' ) + // InternalVampireLanguage.g:46:9: '~' + { + match('~'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__62" + + // $ANTLR start "T__63" + public final void mT__63() throws RecognitionException { + try { + int _type = T__63; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:47:7: ( '!=' ) + // InternalVampireLanguage.g:47:9: '!=' + { + match("!="); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__63" + + // $ANTLR start "T__64" + public final void mT__64() throws RecognitionException { + try { + int _type = T__64; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:48:7: ( '=' ) + // InternalVampireLanguage.g:48:9: '=' + { + match('='); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__64" + + // $ANTLR start "T__65" + public final void mT__65() throws RecognitionException { + try { + int _type = T__65; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:49:7: ( ':=' ) + // InternalVampireLanguage.g:49:9: ':=' + { + match(":="); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__65" + + // $ANTLR start "T__66" + public final void mT__66() throws RecognitionException { + try { + int _type = T__66; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:50:7: ( '$true' ) + // InternalVampireLanguage.g:50:9: '$true' + { + match("$true"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__66" + + // $ANTLR start "T__67" + public final void mT__67() throws RecognitionException { + try { + int _type = T__67; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:51:7: ( '$false' ) + // InternalVampireLanguage.g:51:9: '$false' + { + match("$false"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__67" + + // $ANTLR start "T__68" + public final void mT__68() throws RecognitionException { + try { + int _type = T__68; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:52:7: ( '$less' ) + // InternalVampireLanguage.g:52:9: '$less' + { + match("$less"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__68" + + // $ANTLR start "RULE_ALPHA_NUMERIC" + public final void mRULE_ALPHA_NUMERIC() throws RecognitionException { + try { + // InternalVampireLanguage.g:2625:29: ( ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' ) ) + // InternalVampireLanguage.g:2625:31: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' ) + { + if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + } + finally { + } + } + // $ANTLR end "RULE_ALPHA_NUMERIC" + + // $ANTLR start "RULE_UPPER_WORD_ID" + public final void mRULE_UPPER_WORD_ID() throws RecognitionException { + try { + int _type = RULE_UPPER_WORD_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:2627:20: ( 'A' .. 'Z' ( RULE_ALPHA_NUMERIC )* ) + // InternalVampireLanguage.g:2627:22: 'A' .. 'Z' ( RULE_ALPHA_NUMERIC )* + { + matchRange('A','Z'); + // InternalVampireLanguage.g:2627:31: ( RULE_ALPHA_NUMERIC )* + loop1: + do { + int alt1=2; + int LA1_0 = input.LA(1); + + if ( ((LA1_0>='0' && LA1_0<='9')||(LA1_0>='A' && LA1_0<='Z')||LA1_0=='_'||(LA1_0>='a' && LA1_0<='z')) ) { + alt1=1; + } + + + switch (alt1) { + case 1 : + // InternalVampireLanguage.g:2627:31: RULE_ALPHA_NUMERIC + { + mRULE_ALPHA_NUMERIC(); + + } + break; + + default : + break loop1; + } + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_UPPER_WORD_ID" + + // $ANTLR start "RULE_LOWER_WORD_ID" + public final void mRULE_LOWER_WORD_ID() throws RecognitionException { + try { + int _type = RULE_LOWER_WORD_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:2629:20: ( 'a' .. 'z' ( RULE_ALPHA_NUMERIC )* ) + // InternalVampireLanguage.g:2629:22: 'a' .. 'z' ( RULE_ALPHA_NUMERIC )* + { + matchRange('a','z'); + // InternalVampireLanguage.g:2629:31: ( RULE_ALPHA_NUMERIC )* + loop2: + do { + int alt2=2; + int LA2_0 = input.LA(1); + + if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // InternalVampireLanguage.g:2629:31: RULE_ALPHA_NUMERIC + { + mRULE_ALPHA_NUMERIC(); + + } + break; + + default : + break loop2; + } + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_LOWER_WORD_ID" + + // $ANTLR start "RULE_DOUBLE_QUOTE" + public final void mRULE_DOUBLE_QUOTE() throws RecognitionException { + try { + int _type = RULE_DOUBLE_QUOTE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:2631:19: ( '\"' ( '\\\\' ( '\"' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' ) + // InternalVampireLanguage.g:2631:21: '\"' ( '\\\\' ( '\"' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' + { + match('\"'); + // InternalVampireLanguage.g:2631:25: ( '\\\\' ( '\"' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* + loop3: + do { + int alt3=3; + int LA3_0 = input.LA(1); + + if ( (LA3_0=='\\') ) { + alt3=1; + } + else if ( ((LA3_0>='\u0000' && LA3_0<='!')||(LA3_0>='#' && LA3_0<='[')||(LA3_0>=']' && LA3_0<='\uFFFF')) ) { + alt3=2; + } + + + switch (alt3) { + case 1 : + // InternalVampireLanguage.g:2631:26: '\\\\' ( '\"' | '\\\\' ) + { + match('\\'); + if ( input.LA(1)=='\"'||input.LA(1)=='\\' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + case 2 : + // InternalVampireLanguage.g:2631:42: ~ ( ( '\\\\' | '\"' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop3; + } + } while (true); + + match('\"'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_DOUBLE_QUOTE" + + // $ANTLR start "RULE_SINGLE_QUOTE" + public final void mRULE_SINGLE_QUOTE() throws RecognitionException { + try { + int _type = RULE_SINGLE_QUOTE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:2633:19: ( '\\'' ( '\\\\' ( '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )+ '\\'' ) + // InternalVampireLanguage.g:2633:21: '\\'' ( '\\\\' ( '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )+ '\\'' + { + match('\''); + // InternalVampireLanguage.g:2633:26: ( '\\\\' ( '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )+ + int cnt4=0; + loop4: + do { + int alt4=3; + int LA4_0 = input.LA(1); + + if ( (LA4_0=='\\') ) { + alt4=1; + } + else if ( ((LA4_0>='\u0000' && LA4_0<='&')||(LA4_0>='(' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) { + alt4=2; + } + + + switch (alt4) { + case 1 : + // InternalVampireLanguage.g:2633:27: '\\\\' ( '\\'' | '\\\\' ) + { + match('\\'); + if ( input.LA(1)=='\''||input.LA(1)=='\\' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + case 2 : + // InternalVampireLanguage.g:2633:44: ~ ( ( '\\\\' | '\\'' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + if ( cnt4 >= 1 ) break loop4; + EarlyExitException eee = + new EarlyExitException(4, input); + throw eee; + } + cnt4++; + } while (true); + + match('\''); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_SINGLE_QUOTE" + + // $ANTLR start "RULE_SIGN" + public final void mRULE_SIGN() throws RecognitionException { + try { + // InternalVampireLanguage.g:2635:20: ( ( '+' | '-' ) ) + // InternalVampireLanguage.g:2635:22: ( '+' | '-' ) + { + if ( input.LA(1)=='+'||input.LA(1)=='-' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + } + finally { + } + } + // $ANTLR end "RULE_SIGN" + + // $ANTLR start "RULE_DOLLAR_ID" + public final void mRULE_DOLLAR_ID() throws RecognitionException { + try { + int _type = RULE_DOLLAR_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:2637:16: ( '$' RULE_LOWER_WORD_ID ) + // InternalVampireLanguage.g:2637:18: '$' RULE_LOWER_WORD_ID + { + match('$'); + mRULE_LOWER_WORD_ID(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_DOLLAR_ID" + + // $ANTLR start "RULE_DOUBLE_DOLLAR_ID" + public final void mRULE_DOUBLE_DOLLAR_ID() throws RecognitionException { + try { + int _type = RULE_DOUBLE_DOLLAR_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:2639:23: ( '$$' RULE_LOWER_WORD_ID ) + // InternalVampireLanguage.g:2639:25: '$$' RULE_LOWER_WORD_ID + { + match("$$"); + + mRULE_LOWER_WORD_ID(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_DOUBLE_DOLLAR_ID" + + // $ANTLR start "RULE_LITERAL" + public final void mRULE_LITERAL() throws RecognitionException { + try { + int _type = RULE_LITERAL; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:2641:14: ( ( '0' | '1' .. '9' ( RULE_INT )? ) ) + // InternalVampireLanguage.g:2641:16: ( '0' | '1' .. '9' ( RULE_INT )? ) + { + // InternalVampireLanguage.g:2641:16: ( '0' | '1' .. '9' ( RULE_INT )? ) + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0=='0') ) { + alt6=1; + } + else if ( ((LA6_0>='1' && LA6_0<='9')) ) { + alt6=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 6, 0, input); + + throw nvae; + } + switch (alt6) { + case 1 : + // InternalVampireLanguage.g:2641:17: '0' + { + match('0'); + + } + break; + case 2 : + // InternalVampireLanguage.g:2641:21: '1' .. '9' ( RULE_INT )? + { + matchRange('1','9'); + // InternalVampireLanguage.g:2641:30: ( RULE_INT )? + int alt5=2; + int LA5_0 = input.LA(1); + + if ( ((LA5_0>='0' && LA5_0<='9')) ) { + alt5=1; + } + switch (alt5) { + case 1 : + // InternalVampireLanguage.g:2641:30: RULE_INT + { + mRULE_INT(); + + } + break; + + } + + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_LITERAL" + + // $ANTLR start "RULE_SIGNED_LITERAL" + public final void mRULE_SIGNED_LITERAL() throws RecognitionException { + try { + int _type = RULE_SIGNED_LITERAL; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:2643:21: ( ( RULE_SIGN )* RULE_LITERAL ) + // InternalVampireLanguage.g:2643:23: ( RULE_SIGN )* RULE_LITERAL + { + // InternalVampireLanguage.g:2643:23: ( RULE_SIGN )* + loop7: + do { + int alt7=2; + int LA7_0 = input.LA(1); + + if ( (LA7_0=='+'||LA7_0=='-') ) { + alt7=1; + } + + + switch (alt7) { + case 1 : + // InternalVampireLanguage.g:2643:23: RULE_SIGN + { + mRULE_SIGN(); + + } + break; + + default : + break loop7; + } + } while (true); + + mRULE_LITERAL(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_SIGNED_LITERAL" + + // $ANTLR start "RULE_UNSIGNED_REAL_FRAC_ID" + public final void mRULE_UNSIGNED_REAL_FRAC_ID() throws RecognitionException { + try { + // InternalVampireLanguage.g:2645:37: ( RULE_LITERAL '.' RULE_INT ) + // InternalVampireLanguage.g:2645:39: RULE_LITERAL '.' RULE_INT + { + mRULE_LITERAL(); + match('.'); + mRULE_INT(); + + } + + } + finally { + } + } + // $ANTLR end "RULE_UNSIGNED_REAL_FRAC_ID" + + // $ANTLR start "RULE_UNSIGNED_REAL_EXP_ID" + public final void mRULE_UNSIGNED_REAL_EXP_ID() throws RecognitionException { + try { + // InternalVampireLanguage.g:2647:36: ( ( RULE_LITERAL | RULE_UNSIGNED_REAL_FRAC_ID ) 'Ee' ( RULE_SIGN )* RULE_INT ) + // InternalVampireLanguage.g:2647:38: ( RULE_LITERAL | RULE_UNSIGNED_REAL_FRAC_ID ) 'Ee' ( RULE_SIGN )* RULE_INT + { + // InternalVampireLanguage.g:2647:38: ( RULE_LITERAL | RULE_UNSIGNED_REAL_FRAC_ID ) + int alt8=2; + alt8 = dfa8.predict(input); + switch (alt8) { + case 1 : + // InternalVampireLanguage.g:2647:39: RULE_LITERAL + { + mRULE_LITERAL(); + + } + break; + case 2 : + // InternalVampireLanguage.g:2647:52: RULE_UNSIGNED_REAL_FRAC_ID + { + mRULE_UNSIGNED_REAL_FRAC_ID(); + + } + break; + + } + + match("Ee"); + + // InternalVampireLanguage.g:2647:85: ( RULE_SIGN )* + loop9: + do { + int alt9=2; + int LA9_0 = input.LA(1); + + if ( (LA9_0=='+'||LA9_0=='-') ) { + alt9=1; + } + + + switch (alt9) { + case 1 : + // InternalVampireLanguage.g:2647:85: RULE_SIGN + { + mRULE_SIGN(); + + } + break; + + default : + break loop9; + } + } while (true); + + mRULE_INT(); + + } + + } + finally { + } + } + // $ANTLR end "RULE_UNSIGNED_REAL_EXP_ID" + + // $ANTLR start "RULE_SIGNED_REAL_ID" + public final void mRULE_SIGNED_REAL_ID() throws RecognitionException { + try { + int _type = RULE_SIGNED_REAL_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:2649:21: ( ( RULE_SIGN )* ( RULE_UNSIGNED_REAL_FRAC_ID | RULE_UNSIGNED_REAL_EXP_ID ) ) + // InternalVampireLanguage.g:2649:23: ( RULE_SIGN )* ( RULE_UNSIGNED_REAL_FRAC_ID | RULE_UNSIGNED_REAL_EXP_ID ) + { + // InternalVampireLanguage.g:2649:23: ( RULE_SIGN )* + loop10: + do { + int alt10=2; + int LA10_0 = input.LA(1); + + if ( (LA10_0=='+'||LA10_0=='-') ) { + alt10=1; + } + + + switch (alt10) { + case 1 : + // InternalVampireLanguage.g:2649:23: RULE_SIGN + { + mRULE_SIGN(); + + } + break; + + default : + break loop10; + } + } while (true); + + // InternalVampireLanguage.g:2649:34: ( RULE_UNSIGNED_REAL_FRAC_ID | RULE_UNSIGNED_REAL_EXP_ID ) + int alt11=2; + alt11 = dfa11.predict(input); + switch (alt11) { + case 1 : + // InternalVampireLanguage.g:2649:35: RULE_UNSIGNED_REAL_FRAC_ID + { + mRULE_UNSIGNED_REAL_FRAC_ID(); + + } + break; + case 2 : + // InternalVampireLanguage.g:2649:62: RULE_UNSIGNED_REAL_EXP_ID + { + mRULE_UNSIGNED_REAL_EXP_ID(); + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_SIGNED_REAL_ID" + + // $ANTLR start "RULE_UNSIGNED_RAT_ID" + public final void mRULE_UNSIGNED_RAT_ID() throws RecognitionException { + try { + // InternalVampireLanguage.g:2651:31: ( RULE_LITERAL '/' '1' .. '9' ( RULE_INT )? ) + // InternalVampireLanguage.g:2651:33: RULE_LITERAL '/' '1' .. '9' ( RULE_INT )? + { + mRULE_LITERAL(); + match('/'); + matchRange('1','9'); + // InternalVampireLanguage.g:2651:59: ( RULE_INT )? + int alt12=2; + int LA12_0 = input.LA(1); + + if ( ((LA12_0>='0' && LA12_0<='9')) ) { + alt12=1; + } + switch (alt12) { + case 1 : + // InternalVampireLanguage.g:2651:59: RULE_INT + { + mRULE_INT(); + + } + break; + + } + + + } + + } + finally { + } + } + // $ANTLR end "RULE_UNSIGNED_RAT_ID" + + // $ANTLR start "RULE_SIGNED_RAT_ID" + public final void mRULE_SIGNED_RAT_ID() throws RecognitionException { + try { + int _type = RULE_SIGNED_RAT_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:2653:20: ( ( RULE_SIGN )* RULE_UNSIGNED_RAT_ID ) + // InternalVampireLanguage.g:2653:22: ( RULE_SIGN )* RULE_UNSIGNED_RAT_ID + { + // InternalVampireLanguage.g:2653:22: ( RULE_SIGN )* + loop13: + do { + int alt13=2; + int LA13_0 = input.LA(1); + + if ( (LA13_0=='+'||LA13_0=='-') ) { + alt13=1; + } + + + switch (alt13) { + case 1 : + // InternalVampireLanguage.g:2653:22: RULE_SIGN + { + mRULE_SIGN(); + + } + break; + + default : + break loop13; + } + } while (true); + + mRULE_UNSIGNED_RAT_ID(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_SIGNED_RAT_ID" + + // $ANTLR start "RULE_ANY_OTHER" + public final void mRULE_ANY_OTHER() throws RecognitionException { + try { + // InternalVampireLanguage.g:2655:25: ( '%' (~ ( ( '\\n' | '\\r' ) ) )* '\\r' ) + // InternalVampireLanguage.g:2655:27: '%' (~ ( ( '\\n' | '\\r' ) ) )* '\\r' + { + match('%'); + // InternalVampireLanguage.g:2655:31: (~ ( ( '\\n' | '\\r' ) ) )* + loop14: + do { + int alt14=2; + int LA14_0 = input.LA(1); + + if ( ((LA14_0>='\u0000' && LA14_0<='\t')||(LA14_0>='\u000B' && LA14_0<='\f')||(LA14_0>='\u000E' && LA14_0<='\uFFFF')) ) { + alt14=1; + } + + + switch (alt14) { + case 1 : + // InternalVampireLanguage.g:2655:31: ~ ( ( '\\n' | '\\r' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop14; + } + } while (true); + + match('\r'); + + } + + } + finally { + } + } + // $ANTLR end "RULE_ANY_OTHER" + + // $ANTLR start "RULE_SINGLE_COMMENT" + public final void mRULE_SINGLE_COMMENT() throws RecognitionException { + try { + int _type = RULE_SINGLE_COMMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:2657:21: ( RULE_ANY_OTHER ) + // InternalVampireLanguage.g:2657:23: RULE_ANY_OTHER + { + mRULE_ANY_OTHER(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_SINGLE_COMMENT" + + // $ANTLR start "RULE_ID" + public final void mRULE_ID() throws RecognitionException { + try { + int _type = RULE_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:2659:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) + // InternalVampireLanguage.g:2659:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + { + // InternalVampireLanguage.g:2659:11: ( '^' )? + int alt15=2; + int LA15_0 = input.LA(1); + + if ( (LA15_0=='^') ) { + alt15=1; + } + switch (alt15) { + case 1 : + // InternalVampireLanguage.g:2659:11: '^' + { + match('^'); + + } + break; + + } + + if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + // InternalVampireLanguage.g:2659:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + loop16: + do { + int alt16=2; + int LA16_0 = input.LA(1); + + if ( ((LA16_0>='0' && LA16_0<='9')||(LA16_0>='A' && LA16_0<='Z')||LA16_0=='_'||(LA16_0>='a' && LA16_0<='z')) ) { + alt16=1; + } + + + switch (alt16) { + case 1 : + // InternalVampireLanguage.g: + { + if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop16; + } + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_ID" + + // $ANTLR start "RULE_INT" + public final void mRULE_INT() throws RecognitionException { + try { + // InternalVampireLanguage.g:2661:19: ( ( '0' .. '9' )+ ) + // InternalVampireLanguage.g:2661:21: ( '0' .. '9' )+ + { + // InternalVampireLanguage.g:2661:21: ( '0' .. '9' )+ + int cnt17=0; + loop17: + do { + int alt17=2; + int LA17_0 = input.LA(1); + + if ( ((LA17_0>='0' && LA17_0<='9')) ) { + alt17=1; + } + + + switch (alt17) { + case 1 : + // InternalVampireLanguage.g:2661:22: '0' .. '9' + { + matchRange('0','9'); + + } + break; + + default : + if ( cnt17 >= 1 ) break loop17; + EarlyExitException eee = + new EarlyExitException(17, input); + throw eee; + } + cnt17++; + } while (true); + + + } + + } + finally { + } + } + // $ANTLR end "RULE_INT" + + // $ANTLR start "RULE_STRING" + public final void mRULE_STRING() throws RecognitionException { + try { + int _type = RULE_STRING; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:2663:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) + // InternalVampireLanguage.g:2663:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + { + // InternalVampireLanguage.g:2663:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + int alt20=2; + int LA20_0 = input.LA(1); + + if ( (LA20_0=='\"') ) { + alt20=1; + } + else if ( (LA20_0=='\'') ) { + alt20=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 20, 0, input); + + throw nvae; + } + switch (alt20) { + case 1 : + // InternalVampireLanguage.g:2663:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' + { + match('\"'); + // InternalVampireLanguage.g:2663:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* + loop18: + do { + int alt18=3; + int LA18_0 = input.LA(1); + + if ( (LA18_0=='\\') ) { + alt18=1; + } + else if ( ((LA18_0>='\u0000' && LA18_0<='!')||(LA18_0>='#' && LA18_0<='[')||(LA18_0>=']' && LA18_0<='\uFFFF')) ) { + alt18=2; + } + + + switch (alt18) { + case 1 : + // InternalVampireLanguage.g:2663:21: '\\\\' . + { + match('\\'); + matchAny(); + + } + break; + case 2 : + // InternalVampireLanguage.g:2663:28: ~ ( ( '\\\\' | '\"' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop18; + } + } while (true); + + match('\"'); + + } + break; + case 2 : + // InternalVampireLanguage.g:2663:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' + { + match('\''); + // InternalVampireLanguage.g:2663:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* + loop19: + do { + int alt19=3; + int LA19_0 = input.LA(1); + + if ( (LA19_0=='\\') ) { + alt19=1; + } + else if ( ((LA19_0>='\u0000' && LA19_0<='&')||(LA19_0>='(' && LA19_0<='[')||(LA19_0>=']' && LA19_0<='\uFFFF')) ) { + alt19=2; + } + + + switch (alt19) { + case 1 : + // InternalVampireLanguage.g:2663:54: '\\\\' . + { + match('\\'); + matchAny(); + + } + break; + case 2 : + // InternalVampireLanguage.g:2663:61: ~ ( ( '\\\\' | '\\'' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop19; + } + } while (true); + + match('\''); + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_STRING" + + // $ANTLR start "RULE_ML_COMMENT" + public final void mRULE_ML_COMMENT() throws RecognitionException { + try { + int _type = RULE_ML_COMMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:2665:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // InternalVampireLanguage.g:2665:19: '/*' ( options {greedy=false; } : . )* '*/' + { + match("/*"); + + // InternalVampireLanguage.g:2665:24: ( options {greedy=false; } : . )* + loop21: + do { + int alt21=2; + int LA21_0 = input.LA(1); + + if ( (LA21_0=='*') ) { + int LA21_1 = input.LA(2); + + if ( (LA21_1=='/') ) { + alt21=2; + } + else if ( ((LA21_1>='\u0000' && LA21_1<='.')||(LA21_1>='0' && LA21_1<='\uFFFF')) ) { + alt21=1; + } + + + } + else if ( ((LA21_0>='\u0000' && LA21_0<=')')||(LA21_0>='+' && LA21_0<='\uFFFF')) ) { + alt21=1; + } + + + switch (alt21) { + case 1 : + // InternalVampireLanguage.g:2665:52: . + { + matchAny(); + + } + break; + + default : + break loop21; + } + } while (true); + + match("*/"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_ML_COMMENT" + + // $ANTLR start "RULE_SL_COMMENT" + public final void mRULE_SL_COMMENT() throws RecognitionException { + try { + int _type = RULE_SL_COMMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:2667:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) + // InternalVampireLanguage.g:2667:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? + { + match("//"); + + // InternalVampireLanguage.g:2667:24: (~ ( ( '\\n' | '\\r' ) ) )* + loop22: + do { + int alt22=2; + int LA22_0 = input.LA(1); + + if ( ((LA22_0>='\u0000' && LA22_0<='\t')||(LA22_0>='\u000B' && LA22_0<='\f')||(LA22_0>='\u000E' && LA22_0<='\uFFFF')) ) { + alt22=1; + } + + + switch (alt22) { + case 1 : + // InternalVampireLanguage.g:2667:24: ~ ( ( '\\n' | '\\r' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop22; + } + } while (true); + + // InternalVampireLanguage.g:2667:40: ( ( '\\r' )? '\\n' )? + int alt24=2; + int LA24_0 = input.LA(1); + + if ( (LA24_0=='\n'||LA24_0=='\r') ) { + alt24=1; + } + switch (alt24) { + case 1 : + // InternalVampireLanguage.g:2667:41: ( '\\r' )? '\\n' + { + // InternalVampireLanguage.g:2667:41: ( '\\r' )? + int alt23=2; + int LA23_0 = input.LA(1); + + if ( (LA23_0=='\r') ) { + alt23=1; + } + switch (alt23) { + case 1 : + // InternalVampireLanguage.g:2667:41: '\\r' + { + match('\r'); + + } + break; + + } + + match('\n'); + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_SL_COMMENT" + + // $ANTLR start "RULE_WS" + public final void mRULE_WS() throws RecognitionException { + try { + int _type = RULE_WS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalVampireLanguage.g:2669:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // InternalVampireLanguage.g:2669:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + { + // InternalVampireLanguage.g:2669:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + int cnt25=0; + loop25: + do { + int alt25=2; + int LA25_0 = input.LA(1); + + if ( ((LA25_0>='\t' && LA25_0<='\n')||LA25_0=='\r'||LA25_0==' ') ) { + alt25=1; + } + + + switch (alt25) { + case 1 : + // InternalVampireLanguage.g: + { + if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + if ( cnt25 >= 1 ) break loop25; + EarlyExitException eee = + new EarlyExitException(25, input); + throw eee; + } + cnt25++; + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_WS" + + public void mTokens() throws RecognitionException { + // InternalVampireLanguage.g:1:8: ( T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | RULE_UPPER_WORD_ID | RULE_LOWER_WORD_ID | RULE_DOUBLE_QUOTE | RULE_SINGLE_QUOTE | RULE_DOLLAR_ID | RULE_DOUBLE_DOLLAR_ID | RULE_LITERAL | RULE_SIGNED_LITERAL | RULE_SIGNED_REAL_ID | RULE_SIGNED_RAT_ID | RULE_SINGLE_COMMENT | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS ) + int alt26=58; + alt26 = dfa26.predict(input); + switch (alt26) { + case 1 : + // InternalVampireLanguage.g:1:10: T__27 + { + mT__27(); + + } + break; + case 2 : + // InternalVampireLanguage.g:1:16: T__28 + { + mT__28(); + + } + break; + case 3 : + // InternalVampireLanguage.g:1:22: T__29 + { + mT__29(); + + } + break; + case 4 : + // InternalVampireLanguage.g:1:28: T__30 + { + mT__30(); + + } + break; + case 5 : + // InternalVampireLanguage.g:1:34: T__31 + { + mT__31(); + + } + break; + case 6 : + // InternalVampireLanguage.g:1:40: T__32 + { + mT__32(); + + } + break; + case 7 : + // InternalVampireLanguage.g:1:46: T__33 + { + mT__33(); + + } + break; + case 8 : + // InternalVampireLanguage.g:1:52: T__34 + { + mT__34(); + + } + break; + case 9 : + // InternalVampireLanguage.g:1:58: T__35 + { + mT__35(); + + } + break; + case 10 : + // InternalVampireLanguage.g:1:64: T__36 + { + mT__36(); + + } + break; + case 11 : + // InternalVampireLanguage.g:1:70: T__37 + { + mT__37(); + + } + break; + case 12 : + // InternalVampireLanguage.g:1:76: T__38 + { + mT__38(); + + } + break; + case 13 : + // InternalVampireLanguage.g:1:82: T__39 + { + mT__39(); + + } + break; + case 14 : + // InternalVampireLanguage.g:1:88: T__40 + { + mT__40(); + + } + break; + case 15 : + // InternalVampireLanguage.g:1:94: T__41 + { + mT__41(); + + } + break; + case 16 : + // InternalVampireLanguage.g:1:100: T__42 + { + mT__42(); + + } + break; + case 17 : + // InternalVampireLanguage.g:1:106: T__43 + { + mT__43(); + + } + break; + case 18 : + // InternalVampireLanguage.g:1:112: T__44 + { + mT__44(); + + } + break; + case 19 : + // InternalVampireLanguage.g:1:118: T__45 + { + mT__45(); + + } + break; + case 20 : + // InternalVampireLanguage.g:1:124: T__46 + { + mT__46(); + + } + break; + case 21 : + // InternalVampireLanguage.g:1:130: T__47 + { + mT__47(); + + } + break; + case 22 : + // InternalVampireLanguage.g:1:136: T__48 + { + mT__48(); + + } + break; + case 23 : + // InternalVampireLanguage.g:1:142: T__49 + { + mT__49(); + + } + break; + case 24 : + // InternalVampireLanguage.g:1:148: T__50 + { + mT__50(); + + } + break; + case 25 : + // InternalVampireLanguage.g:1:154: T__51 + { + mT__51(); + + } + break; + case 26 : + // InternalVampireLanguage.g:1:160: T__52 + { + mT__52(); + + } + break; + case 27 : + // InternalVampireLanguage.g:1:166: T__53 + { + mT__53(); + + } + break; + case 28 : + // InternalVampireLanguage.g:1:172: T__54 + { + mT__54(); + + } + break; + case 29 : + // InternalVampireLanguage.g:1:178: T__55 + { + mT__55(); + + } + break; + case 30 : + // InternalVampireLanguage.g:1:184: T__56 + { + mT__56(); + + } + break; + case 31 : + // InternalVampireLanguage.g:1:190: T__57 + { + mT__57(); + + } + break; + case 32 : + // InternalVampireLanguage.g:1:196: T__58 + { + mT__58(); + + } + break; + case 33 : + // InternalVampireLanguage.g:1:202: T__59 + { + mT__59(); + + } + break; + case 34 : + // InternalVampireLanguage.g:1:208: T__60 + { + mT__60(); + + } + break; + case 35 : + // InternalVampireLanguage.g:1:214: T__61 + { + mT__61(); + + } + break; + case 36 : + // InternalVampireLanguage.g:1:220: T__62 + { + mT__62(); + + } + break; + case 37 : + // InternalVampireLanguage.g:1:226: T__63 + { + mT__63(); + + } + break; + case 38 : + // InternalVampireLanguage.g:1:232: T__64 + { + mT__64(); + + } + break; + case 39 : + // InternalVampireLanguage.g:1:238: T__65 + { + mT__65(); + + } + break; + case 40 : + // InternalVampireLanguage.g:1:244: T__66 + { + mT__66(); + + } + break; + case 41 : + // InternalVampireLanguage.g:1:250: T__67 + { + mT__67(); + + } + break; + case 42 : + // InternalVampireLanguage.g:1:256: T__68 + { + mT__68(); + + } + break; + case 43 : + // InternalVampireLanguage.g:1:262: RULE_UPPER_WORD_ID + { + mRULE_UPPER_WORD_ID(); + + } + break; + case 44 : + // InternalVampireLanguage.g:1:281: RULE_LOWER_WORD_ID + { + mRULE_LOWER_WORD_ID(); + + } + break; + case 45 : + // InternalVampireLanguage.g:1:300: RULE_DOUBLE_QUOTE + { + mRULE_DOUBLE_QUOTE(); + + } + break; + case 46 : + // InternalVampireLanguage.g:1:318: RULE_SINGLE_QUOTE + { + mRULE_SINGLE_QUOTE(); + + } + break; + case 47 : + // InternalVampireLanguage.g:1:336: RULE_DOLLAR_ID + { + mRULE_DOLLAR_ID(); + + } + break; + case 48 : + // InternalVampireLanguage.g:1:351: RULE_DOUBLE_DOLLAR_ID + { + mRULE_DOUBLE_DOLLAR_ID(); + + } + break; + case 49 : + // InternalVampireLanguage.g:1:373: RULE_LITERAL + { + mRULE_LITERAL(); + + } + break; + case 50 : + // InternalVampireLanguage.g:1:386: RULE_SIGNED_LITERAL + { + mRULE_SIGNED_LITERAL(); + + } + break; + case 51 : + // InternalVampireLanguage.g:1:406: RULE_SIGNED_REAL_ID + { + mRULE_SIGNED_REAL_ID(); + + } + break; + case 52 : + // InternalVampireLanguage.g:1:426: RULE_SIGNED_RAT_ID + { + mRULE_SIGNED_RAT_ID(); + + } + break; + case 53 : + // InternalVampireLanguage.g:1:445: RULE_SINGLE_COMMENT + { + mRULE_SINGLE_COMMENT(); + + } + break; + case 54 : + // InternalVampireLanguage.g:1:465: RULE_ID + { + mRULE_ID(); + + } + break; + case 55 : + // InternalVampireLanguage.g:1:473: RULE_STRING + { + mRULE_STRING(); + + } + break; + case 56 : + // InternalVampireLanguage.g:1:485: RULE_ML_COMMENT + { + mRULE_ML_COMMENT(); + + } + break; + case 57 : + // InternalVampireLanguage.g:1:501: RULE_SL_COMMENT + { + mRULE_SL_COMMENT(); + + } + break; + case 58 : + // InternalVampireLanguage.g:1:517: RULE_WS + { + mRULE_WS(); + + } + break; + + } + + } + + + protected DFA8 dfa8 = new DFA8(this); + protected DFA11 dfa11 = new DFA11(this); + protected DFA26 dfa26 = new DFA26(this); + static final String DFA8_eotS = + "\6\uffff"; + static final String DFA8_eofS = + "\6\uffff"; + static final String DFA8_minS = + "\1\60\2\56\2\uffff\1\56"; + static final String DFA8_maxS = + "\1\71\2\105\2\uffff\1\105"; + static final String DFA8_acceptS = + "\3\uffff\1\2\1\1\1\uffff"; + static final String DFA8_specialS = + "\6\uffff}>"; + static final String[] DFA8_transitionS = { + "\1\1\11\2", + "\1\3\26\uffff\1\4", + "\1\3\1\uffff\12\5\13\uffff\1\4", + "", + "", + "\1\3\1\uffff\12\5\13\uffff\1\4" + }; + + static final short[] DFA8_eot = DFA.unpackEncodedString(DFA8_eotS); + static final short[] DFA8_eof = DFA.unpackEncodedString(DFA8_eofS); + static final char[] DFA8_min = DFA.unpackEncodedStringToUnsignedChars(DFA8_minS); + static final char[] DFA8_max = DFA.unpackEncodedStringToUnsignedChars(DFA8_maxS); + static final short[] DFA8_accept = DFA.unpackEncodedString(DFA8_acceptS); + static final short[] DFA8_special = DFA.unpackEncodedString(DFA8_specialS); + static final short[][] DFA8_transition; + + static { + int numStates = DFA8_transitionS.length; + DFA8_transition = new short[numStates][]; + for (int i=0; i"; + static final String[] DFA11_transitionS = { + "\1\1\11\2", + "\1\3\26\uffff\1\4", + "\1\3\1\uffff\12\5\13\uffff\1\4", + "\12\6", + "", + "\1\3\1\uffff\12\5\13\uffff\1\4", + "\12\6\13\uffff\1\4", + "" + }; + + static final short[] DFA11_eot = DFA.unpackEncodedString(DFA11_eotS); + static final short[] DFA11_eof = DFA.unpackEncodedString(DFA11_eofS); + static final char[] DFA11_min = DFA.unpackEncodedStringToUnsignedChars(DFA11_minS); + static final char[] DFA11_max = DFA.unpackEncodedStringToUnsignedChars(DFA11_maxS); + static final short[] DFA11_accept = DFA.unpackEncodedString(DFA11_acceptS); + static final short[] DFA11_special = DFA.unpackEncodedString(DFA11_specialS); + static final short[][] DFA11_transition; + + static { + int numStates = DFA11_transitionS.length; + DFA11_transition = new short[numStates][]; + for (int i=0; i"; + static final String[] DFA26_transitionS = { + "\2\45\2\uffff\1\45\22\uffff\1\45\1\27\1\35\1\uffff\1\32\1\42\1\25\1\36\1\5\1\6\1\uffff\1\41\1\2\1\41\1\7\1\44\1\37\11\40\1\30\1\uffff\1\22\1\23\1\uffff\1\31\1\uffff\32\33\1\21\1\uffff\1\3\2\43\1\uffff\1\10\1\34\1\11\1\13\1\34\1\4\1\34\1\12\1\1\2\34\1\14\1\34\1\16\1\34\1\17\3\34\1\15\1\20\5\34\1\uffff\1\26\1\uffff\1\24", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\15\47\1\46\14\47", + "\1\51", + "", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\10\47\1\54\5\47\1\53\13\47", + "", + "", + "", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\22\47\1\56\4\47\1\55\2\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\16\47\1\57\13\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\30\47\1\60\1\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\4\47\1\61\25\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\4\47\1\62\25\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\7\47\1\63\20\47\1\64\1\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\4\47\1\65\25\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\13\47\1\66\16\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\15\47\1\67\14\47", + "", + "\1\70\100\uffff\1\71", + "\1\72", + "\1\75\125\uffff\1\74", + "", + "", + "\1\77", + "\1\101", + "", + "\1\106\74\uffff\5\107\1\104\5\107\1\105\7\107\1\103\6\107", + "\12\110\7\uffff\32\110\4\uffff\1\110\1\uffff\32\110", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", + "\42\113\1\114\71\113\1\112\uffa3\113", + "\47\116\1\117\64\116\1\115\uffa3\116", + "\1\121\1\122\25\uffff\1\121", + "\1\121\1\122\12\123\13\uffff\1\121", + "\1\41\1\uffff\1\41\2\uffff\1\124\11\125", + "", + "", + "\1\126\4\uffff\1\127", + "", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\2\47\1\130\27\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", + "", + "", + "", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\5\47\1\131\24\47", + "\12\47\7\uffff\32\47\4\uffff\1\132\1\uffff\32\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\10\47\1\133\21\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\22\47\1\134\7\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\15\47\1\135\3\47\1\136\10\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\17\47\1\137\12\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\5\47\1\140\24\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\14\47\1\141\15\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\4\47\1\142\25\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\17\47\1\143\12\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\6\47\1\144\23\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\1\145\31\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\12\47\1\146\17\47", + "\1\147", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\151", + "\1\152", + "\1\153", + "", + "", + "\12\110\7\uffff\32\110\4\uffff\1\110\1\uffff\32\110", + "", + "\42\117\1\154\71\117\1\154\uffa3\117", + "\42\113\1\114\71\113\1\112\uffa3\113", + "", + "\47\117\1\156\64\117\1\156\uffa3\117", + "\47\116\1\157\64\116\1\115\uffa3\116", + "", + "", + "", + "", + "\1\121\1\122\12\123\13\uffff\1\121", + "\1\121\1\122\25\uffff\1\121", + "\1\121\1\122\12\161\13\uffff\1\121", + "", + "", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\13\47\1\162\16\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\3\47\1\164\1\47\1\165\11\47\1\166\12\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\16\47\1\167\13\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\24\47\1\170\5\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\11\47\1\171\20\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\16\47\1\172\13\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\16\47\1\173\13\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\10\47\1\174\21\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\14\47\1\175\15\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\16\47\1\176\13\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\4\47\1\177\25\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\1\u0080\31\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\10\47\1\u0081\21\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\15\47\1\u0082\14\47", + "", + "", + "\1\u0083", + "\1\u0084", + "\1\u0085", + "\42\113\1\114\71\113\1\112\uffa3\113", + "", + "\47\116\1\157\64\116\1\115\uffa3\116", + "", + "", + "\1\121\1\122\12\161\13\uffff\1\121", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\24\47\1\u0087\5\47", + "", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\16\47\1\u0088\13\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\24\47\1\u0089\5\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\21\47\1\u008a\10\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\14\47\1\u008b\15\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\14\47\1\u008c\15\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\4\47\1\u008d\25\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\13\47\1\u008e\16\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\23\47\1\u008f\6\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\15\47\1\u0090\14\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\1\u0091\31\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\21\47\1\u0092\10\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\23\47\1\u0094\6\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\15\47\1\u0095\14\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\16\47\1\u0096\13\47", + "\1\u0097", + "\1\u0098", + "\1\u0099", + "", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\3\47\1\u009a\26\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\14\47\1\u009b\15\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\15\47\1\u009c\14\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\4\47\1\u009d\25\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\17\47\1\u009f\12\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\2\47\1\u00a0\27\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\13\47\1\u00a1\16\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\7\47\1\u00a2\22\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\10\47\1\u00a3\21\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\4\47\1\u00a5\25\47", + "", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\4\47\1\u00a6\25\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\26\47\1\u00a8\3\47", + "\12\107\7\uffff\32\107\4\uffff\1\107\1\uffff\32\107", + "\1\u00aa", + "\12\107\7\uffff\32\107\4\uffff\1\107\1\uffff\32\107", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\4\47\1\u00ac\25\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\1\u00ad\31\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\2\47\1\u00ae\27\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\3\47\1\u00af\26\47", + "", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\23\47\1\u00b0\6\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\23\47\1\u00b1\6\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\1\u00b2\31\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\4\47\1\u00b3\25\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\23\47\1\u00b4\6\47", + "", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\14\47\1\u00b5\15\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\3\47\1\u00b6\26\47", + "", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\15\47\1\u00b7\14\47", + "", + "\12\107\7\uffff\32\107\4\uffff\1\107\1\uffff\32\107", + "", + "\1\u00b9\7\uffff\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\10\47\1\u00ba\21\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\23\47\1\u00bb\6\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\10\47\1\u00bc\21\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\10\47\1\u00bd\21\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\24\47\1\u00be\5\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\21\47\1\u00bf\10\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\22\47\1\u00c0\7\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\10\47\1\u00c1\21\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", + "\12\47\7\uffff\32\47\4\uffff\1\u00c3\1\uffff\32\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", + "", + "", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\15\47\1\u00c5\14\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\16\47\1\u00c6\13\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\2\47\1\u00c7\27\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\16\47\1\u00c8\13\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\21\47\1\u00c9\10\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\30\47\1\u00ca\1\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\10\47\1\u00cb\21\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\16\47\1\u00cc\13\47", + "", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\2\47\1\u00cd\27\47", + "", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\21\47\1\u00cf\10\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\1\u00d0\31\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\15\47\1\u00d1\14\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\4\47\1\u00d2\25\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\22\47\1\u00d4\7\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\15\47\1\u00d5\14\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\16\47\1\u00d6\13\47", + "", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\22\47\1\u00d7\7\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\23\47\1\u00d8\6\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", + "", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\15\47\1\u00dd\14\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\4\47\1\u00df\25\47", + "", + "", + "", + "", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\11\47\1\u00e0\20\47", + "", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\22\47\1\u00e1\7\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\4\47\1\u00e2\25\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\2\47\1\u00e4\27\47", + "", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\23\47\1\u00e5\6\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\24\47\1\u00e6\5\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\21\47\1\u00e7\10\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\4\47\1\u00e8\25\47", + "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", + "" + }; + + static final short[] DFA26_eot = DFA.unpackEncodedString(DFA26_eotS); + static final short[] DFA26_eof = DFA.unpackEncodedString(DFA26_eofS); + static final char[] DFA26_min = DFA.unpackEncodedStringToUnsignedChars(DFA26_minS); + static final char[] DFA26_max = DFA.unpackEncodedStringToUnsignedChars(DFA26_maxS); + static final short[] DFA26_accept = DFA.unpackEncodedString(DFA26_acceptS); + static final short[] DFA26_special = DFA.unpackEncodedString(DFA26_specialS); + static final short[][] DFA26_transition; + + static { + int numStates = DFA26_transitionS.length; + DFA26_transition = new short[numStates][]; + for (int i=0; i='\u0000' && LA26_29<='!')||(LA26_29>='#' && LA26_29<='[')||(LA26_29>=']' && LA26_29<='\uFFFF')) ) {s = 75;} + + else if ( (LA26_29=='\"') ) {s = 76;} + + if ( s>=0 ) return s; + break; + case 1 : + int LA26_74 = input.LA(1); + + s = -1; + if ( (LA26_74=='\"'||LA26_74=='\\') ) {s = 108;} + + else if ( ((LA26_74>='\u0000' && LA26_74<='!')||(LA26_74>='#' && LA26_74<='[')||(LA26_74>=']' && LA26_74<='\uFFFF')) ) {s = 79;} + + if ( s>=0 ) return s; + break; + case 2 : + int LA26_77 = input.LA(1); + + s = -1; + if ( (LA26_77=='\''||LA26_77=='\\') ) {s = 110;} + + else if ( ((LA26_77>='\u0000' && LA26_77<='&')||(LA26_77>='(' && LA26_77<='[')||(LA26_77>=']' && LA26_77<='\uFFFF')) ) {s = 79;} + + if ( s>=0 ) return s; + break; + case 3 : + int LA26_110 = input.LA(1); + + s = -1; + if ( (LA26_110=='\'') ) {s = 111;} + + else if ( (LA26_110=='\\') ) {s = 77;} + + else if ( ((LA26_110>='\u0000' && LA26_110<='&')||(LA26_110>='(' && LA26_110<='[')||(LA26_110>=']' && LA26_110<='\uFFFF')) ) {s = 78;} + + if ( s>=0 ) return s; + break; + case 4 : + int LA26_78 = input.LA(1); + + s = -1; + if ( (LA26_78=='\'') ) {s = 111;} + + else if ( (LA26_78=='\\') ) {s = 77;} + + else if ( ((LA26_78>='\u0000' && LA26_78<='&')||(LA26_78>='(' && LA26_78<='[')||(LA26_78>=']' && LA26_78<='\uFFFF')) ) {s = 78;} + + if ( s>=0 ) return s; + break; + case 5 : + int LA26_30 = input.LA(1); + + s = -1; + if ( (LA26_30=='\\') ) {s = 77;} + + else if ( ((LA26_30>='\u0000' && LA26_30<='&')||(LA26_30>='(' && LA26_30<='[')||(LA26_30>=']' && LA26_30<='\uFFFF')) ) {s = 78;} + + else if ( (LA26_30=='\'') ) {s = 79;} + + if ( s>=0 ) return s; + break; + case 6 : + int LA26_108 = input.LA(1); + + s = -1; + if ( (LA26_108=='\"') ) {s = 76;} + + else if ( (LA26_108=='\\') ) {s = 74;} + + else if ( ((LA26_108>='\u0000' && LA26_108<='!')||(LA26_108>='#' && LA26_108<='[')||(LA26_108>=']' && LA26_108<='\uFFFF')) ) {s = 75;} + + if ( s>=0 ) return s; + break; + case 7 : + int LA26_75 = input.LA(1); + + s = -1; + if ( (LA26_75=='\"') ) {s = 76;} + + else if ( (LA26_75=='\\') ) {s = 74;} + + else if ( ((LA26_75>='\u0000' && LA26_75<='!')||(LA26_75>='#' && LA26_75<='[')||(LA26_75>=']' && LA26_75<='\uFFFF')) ) {s = 75;} + + if ( s>=0 ) return s; + break; + } + NoViableAltException nvae = + new NoViableAltException(getDescription(), 26, _s, input); + error(nvae); + throw nvae; + } + } + + +} \ No newline at end of file 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..4388b674 --- /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,7031 @@ +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; + + + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; + +@SuppressWarnings("all") +public class InternalVampireLanguageParser extends AbstractInternalAntlrParser { + public static final String[] tokenNames = new String[] { + "", "", "", "", "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_ANY_OTHER", "RULE_ID", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "'include('", "',['", "','", "']'", "'fof'", "'('", "')'", "'.'", "'axiom'", "'conjecture'", "'hypothesis'", "'definition'", "'assumption'", "'lemma'", "'theorem'", "'corollary'", "'negated_conjecture'", "'plain'", "'type'", "'fi_domain'", "'fi_functors'", "'fi_predicates'", "'unknown'", "'['", "'<=>'", "'=>'", "'<='", "'<~>'", "'~|'", "'~&'", "'&'", "'|'", "'!'", "':'", "'?'", "'~'", "'!='", "'='", "':='", "'$true'", "'$false'", "'$less'" + }; + public static final int RULE_UNSIGNED_RAT_ID=20; + public static final int T__50=50; + public static final int RULE_SIGN=16; + public static final int T__59=59; + public static final int RULE_SIGNED_LITERAL=7; + public static final int T__55=55; + public static final int T__56=56; + public static final int T__57=57; + public static final int T__58=58; + public static final int T__51=51; + public static final int RULE_DOUBLE_QUOTE=14; + public static final int T__52=52; + public static final int RULE_LITERAL=6; + public static final int T__53=53; + public static final int RULE_UNSIGNED_REAL_FRAC_ID=18; + public static final int T__54=54; + public static final int T__60=60; + public static final int T__61=61; + public static final int RULE_ID=22; + public static final int RULE_SINGLE_QUOTE=4; + public static final int RULE_SINGLE_COMMENT=8; + public static final int T__27=27; + public static final int T__28=28; + public static final int RULE_INT=17; + public static final int T__29=29; + public static final int T__66=66; + public static final int RULE_ML_COMMENT=24; + public static final int T__67=67; + public static final int RULE_SIGNED_RAT_ID=13; + public static final int T__68=68; + public static final int T__62=62; + public static final int T__63=63; + public static final int T__64=64; + public static final int T__65=65; + public static final int RULE_LOWER_WORD_ID=5; + public static final int RULE_STRING=23; + public static final int RULE_SL_COMMENT=25; + public static final int T__37=37; + public static final int T__38=38; + public static final int T__39=39; + public static final int T__33=33; + public static final int T__34=34; + public static final int T__35=35; + public static final int T__36=36; + public static final int EOF=-1; + public static final int T__30=30; + public static final int RULE_UNSIGNED_REAL_EXP_ID=19; + public static final int T__31=31; + public static final int T__32=32; + public static final int RULE_UPPER_WORD_ID=11; + public static final int RULE_WS=26; + public static final int RULE_DOLLAR_ID=9; + public static final int RULE_ALPHA_NUMERIC=15; + public static final int RULE_ANY_OTHER=21; + public static final int RULE_DOUBLE_DOLLAR_ID=10; + public static final int T__48=48; + public static final int T__49=49; + public static final int T__44=44; + public static final int T__45=45; + public static final int RULE_SIGNED_REAL_ID=12; + public static final int T__46=46; + public static final int T__47=47; + public static final int T__40=40; + public static final int T__41=41; + public static final int T__42=42; + public static final int T__43=43; + + // delegates + // delegators + + + public InternalVampireLanguageParser(TokenStream input) { + this(input, new RecognizerSharedState()); + } + public InternalVampireLanguageParser(TokenStream input, RecognizerSharedState state) { + super(input, state); + + } + + + public String[] getTokenNames() { return InternalVampireLanguageParser.tokenNames; } + public String getGrammarFileName() { return "InternalVampireLanguage.g"; } + + + + 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; + } + + + + + // $ANTLR start "entryRuleVampireModel" + // InternalVampireLanguage.g:64:1: entryRuleVampireModel returns [EObject current=null] : iv_ruleVampireModel= ruleVampireModel EOF ; + public final EObject entryRuleVampireModel() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVampireModel = null; + + + try { + // InternalVampireLanguage.g:64:53: (iv_ruleVampireModel= ruleVampireModel EOF ) + // InternalVampireLanguage.g:65:2: iv_ruleVampireModel= ruleVampireModel EOF + { + newCompositeNode(grammarAccess.getVampireModelRule()); + pushFollow(FOLLOW_1); + iv_ruleVampireModel=ruleVampireModel(); + + state._fsp--; + + current =iv_ruleVampireModel; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVampireModel" + + + // $ANTLR start "ruleVampireModel" + // InternalVampireLanguage.g:71:1: ruleVampireModel returns [EObject current=null] : ( ( (lv_includes_0_0= ruleVLSInclude ) ) | ( (lv_comments_1_0= ruleVLSComment ) ) | ( (lv_formulas_2_0= ruleVLSFofFormula ) ) )* ; + public final EObject ruleVampireModel() throws RecognitionException { + EObject current = null; + + EObject lv_includes_0_0 = null; + + EObject lv_comments_1_0 = null; + + EObject lv_formulas_2_0 = null; + + + + enterRule(); + + try { + // InternalVampireLanguage.g:77:2: ( ( ( (lv_includes_0_0= ruleVLSInclude ) ) | ( (lv_comments_1_0= ruleVLSComment ) ) | ( (lv_formulas_2_0= ruleVLSFofFormula ) ) )* ) + // InternalVampireLanguage.g:78:2: ( ( (lv_includes_0_0= ruleVLSInclude ) ) | ( (lv_comments_1_0= ruleVLSComment ) ) | ( (lv_formulas_2_0= ruleVLSFofFormula ) ) )* + { + // InternalVampireLanguage.g:78:2: ( ( (lv_includes_0_0= ruleVLSInclude ) ) | ( (lv_comments_1_0= ruleVLSComment ) ) | ( (lv_formulas_2_0= ruleVLSFofFormula ) ) )* + loop1: + do { + int alt1=4; + switch ( input.LA(1) ) { + case 27: + { + alt1=1; + } + break; + case RULE_SINGLE_COMMENT: + { + alt1=2; + } + break; + case 31: + { + alt1=3; + } + break; + + } + + switch (alt1) { + case 1 : + // InternalVampireLanguage.g:79:3: ( (lv_includes_0_0= ruleVLSInclude ) ) + { + // InternalVampireLanguage.g:79:3: ( (lv_includes_0_0= ruleVLSInclude ) ) + // InternalVampireLanguage.g:80:4: (lv_includes_0_0= ruleVLSInclude ) + { + // InternalVampireLanguage.g:80:4: (lv_includes_0_0= ruleVLSInclude ) + // InternalVampireLanguage.g:81:5: lv_includes_0_0= ruleVLSInclude + { + + newCompositeNode(grammarAccess.getVampireModelAccess().getIncludesVLSIncludeParserRuleCall_0_0()); + + pushFollow(FOLLOW_3); + lv_includes_0_0=ruleVLSInclude(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVampireModelRule()); + } + add( + current, + "includes", + lv_includes_0_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSInclude"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:99:3: ( (lv_comments_1_0= ruleVLSComment ) ) + { + // InternalVampireLanguage.g:99:3: ( (lv_comments_1_0= ruleVLSComment ) ) + // InternalVampireLanguage.g:100:4: (lv_comments_1_0= ruleVLSComment ) + { + // InternalVampireLanguage.g:100:4: (lv_comments_1_0= ruleVLSComment ) + // InternalVampireLanguage.g:101:5: lv_comments_1_0= ruleVLSComment + { + + newCompositeNode(grammarAccess.getVampireModelAccess().getCommentsVLSCommentParserRuleCall_1_0()); + + pushFollow(FOLLOW_3); + lv_comments_1_0=ruleVLSComment(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVampireModelRule()); + } + add( + current, + "comments", + lv_comments_1_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSComment"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:119:3: ( (lv_formulas_2_0= ruleVLSFofFormula ) ) + { + // InternalVampireLanguage.g:119:3: ( (lv_formulas_2_0= ruleVLSFofFormula ) ) + // InternalVampireLanguage.g:120:4: (lv_formulas_2_0= ruleVLSFofFormula ) + { + // InternalVampireLanguage.g:120:4: (lv_formulas_2_0= ruleVLSFofFormula ) + // InternalVampireLanguage.g:121:5: lv_formulas_2_0= ruleVLSFofFormula + { + + newCompositeNode(grammarAccess.getVampireModelAccess().getFormulasVLSFofFormulaParserRuleCall_2_0()); + + pushFollow(FOLLOW_3); + lv_formulas_2_0=ruleVLSFofFormula(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVampireModelRule()); + } + add( + current, + "formulas", + lv_formulas_2_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofFormula"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop1; + } + } while (true); + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVampireModel" + + + // $ANTLR start "entryRuleVLSInclude" + // InternalVampireLanguage.g:142:1: entryRuleVLSInclude returns [EObject current=null] : iv_ruleVLSInclude= ruleVLSInclude EOF ; + public final EObject entryRuleVLSInclude() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVLSInclude = null; + + + try { + // InternalVampireLanguage.g:142:51: (iv_ruleVLSInclude= ruleVLSInclude EOF ) + // InternalVampireLanguage.g:143:2: iv_ruleVLSInclude= ruleVLSInclude EOF + { + newCompositeNode(grammarAccess.getVLSIncludeRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSInclude=ruleVLSInclude(); + + state._fsp--; + + current =iv_ruleVLSInclude; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSInclude" + + + // $ANTLR start "ruleVLSInclude" + // InternalVampireLanguage.g:149: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= ']' )? ) ; + public final EObject ruleVLSInclude() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_fileName_1_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + EObject lv_names_3_0 = null; + + EObject lv_names_5_0 = null; + + + + enterRule(); + + try { + // InternalVampireLanguage.g:155: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= ']' )? ) ) + // InternalVampireLanguage.g:156: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= ']' )? ) + { + // InternalVampireLanguage.g:156: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= ']' )? ) + // InternalVampireLanguage.g:157: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= ']' )? + { + otherlv_0=(Token)match(input,27,FOLLOW_4); + + newLeafNode(otherlv_0, grammarAccess.getVLSIncludeAccess().getIncludeKeyword_0()); + + // InternalVampireLanguage.g:161:3: ( (lv_fileName_1_0= RULE_SINGLE_QUOTE ) ) + // InternalVampireLanguage.g:162:4: (lv_fileName_1_0= RULE_SINGLE_QUOTE ) + { + // InternalVampireLanguage.g:162:4: (lv_fileName_1_0= RULE_SINGLE_QUOTE ) + // InternalVampireLanguage.g:163:5: lv_fileName_1_0= RULE_SINGLE_QUOTE + { + lv_fileName_1_0=(Token)match(input,RULE_SINGLE_QUOTE,FOLLOW_5); + + 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"); + + + } + + + } + + // InternalVampireLanguage.g:179:3: (otherlv_2= ',[' ( (lv_names_3_0= ruleVLSName ) ) (otherlv_4= ',' ( (lv_names_5_0= ruleVLSName ) ) )* otherlv_6= ']' )? + int alt3=2; + int LA3_0 = input.LA(1); + + if ( (LA3_0==28) ) { + alt3=1; + } + switch (alt3) { + case 1 : + // InternalVampireLanguage.g:180:4: otherlv_2= ',[' ( (lv_names_3_0= ruleVLSName ) ) (otherlv_4= ',' ( (lv_names_5_0= ruleVLSName ) ) )* otherlv_6= ']' + { + otherlv_2=(Token)match(input,28,FOLLOW_6); + + newLeafNode(otherlv_2, grammarAccess.getVLSIncludeAccess().getCommaLeftSquareBracketKeyword_2_0()); + + // InternalVampireLanguage.g:184:4: ( (lv_names_3_0= ruleVLSName ) ) + // InternalVampireLanguage.g:185:5: (lv_names_3_0= ruleVLSName ) + { + // InternalVampireLanguage.g:185:5: (lv_names_3_0= ruleVLSName ) + // InternalVampireLanguage.g:186:6: lv_names_3_0= ruleVLSName + { + + newCompositeNode(grammarAccess.getVLSIncludeAccess().getNamesVLSNameParserRuleCall_2_1_0()); + + pushFollow(FOLLOW_7); + lv_names_3_0=ruleVLSName(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSIncludeRule()); + } + add( + current, + "names", + lv_names_3_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSName"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // InternalVampireLanguage.g:203:4: (otherlv_4= ',' ( (lv_names_5_0= ruleVLSName ) ) )* + loop2: + do { + int alt2=2; + int LA2_0 = input.LA(1); + + if ( (LA2_0==29) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // InternalVampireLanguage.g:204:5: otherlv_4= ',' ( (lv_names_5_0= ruleVLSName ) ) + { + otherlv_4=(Token)match(input,29,FOLLOW_6); + + newLeafNode(otherlv_4, grammarAccess.getVLSIncludeAccess().getCommaKeyword_2_2_0()); + + // InternalVampireLanguage.g:208:5: ( (lv_names_5_0= ruleVLSName ) ) + // InternalVampireLanguage.g:209:6: (lv_names_5_0= ruleVLSName ) + { + // InternalVampireLanguage.g:209:6: (lv_names_5_0= ruleVLSName ) + // InternalVampireLanguage.g:210:7: lv_names_5_0= ruleVLSName + { + + newCompositeNode(grammarAccess.getVLSIncludeAccess().getNamesVLSNameParserRuleCall_2_2_1_0()); + + pushFollow(FOLLOW_7); + lv_names_5_0=ruleVLSName(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSIncludeRule()); + } + add( + current, + "names", + lv_names_5_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSName"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop2; + } + } while (true); + + otherlv_6=(Token)match(input,30,FOLLOW_2); + + newLeafNode(otherlv_6, grammarAccess.getVLSIncludeAccess().getRightSquareBracketKeyword_2_3()); + + + } + break; + + } + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSInclude" + + + // $ANTLR start "entryRuleVLSName" + // InternalVampireLanguage.g:237:1: entryRuleVLSName returns [EObject current=null] : iv_ruleVLSName= ruleVLSName EOF ; + public final EObject entryRuleVLSName() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVLSName = null; + + + try { + // InternalVampireLanguage.g:237:48: (iv_ruleVLSName= ruleVLSName EOF ) + // InternalVampireLanguage.g:238:2: iv_ruleVLSName= ruleVLSName EOF + { + newCompositeNode(grammarAccess.getVLSNameRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSName=ruleVLSName(); + + state._fsp--; + + current =iv_ruleVLSName; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSName" + + + // $ANTLR start "ruleVLSName" + // InternalVampireLanguage.g:244: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 ) ) ) ; + public final EObject ruleVLSName() throws RecognitionException { + EObject current = null; + + Token lv_name_0_1=null; + Token lv_name_0_2=null; + Token lv_name_0_3=null; + Token lv_name_0_4=null; + + + enterRule(); + + try { + // InternalVampireLanguage.g:250: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 ) ) ) ) + // InternalVampireLanguage.g:251: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 ) ) ) + { + // InternalVampireLanguage.g:251: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 ) ) ) + // InternalVampireLanguage.g:252: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 ) ) + { + // InternalVampireLanguage.g:252: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 ) ) + // InternalVampireLanguage.g:253: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 ) + { + // InternalVampireLanguage.g:253: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 ) + int alt4=4; + switch ( input.LA(1) ) { + case RULE_LOWER_WORD_ID: + { + alt4=1; + } + break; + case RULE_SINGLE_QUOTE: + { + alt4=2; + } + break; + case RULE_LITERAL: + { + alt4=3; + } + break; + case RULE_SIGNED_LITERAL: + { + alt4=4; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 4, 0, input); + + throw nvae; + } + + switch (alt4) { + case 1 : + // InternalVampireLanguage.g:254:5: lv_name_0_1= RULE_LOWER_WORD_ID + { + lv_name_0_1=(Token)match(input,RULE_LOWER_WORD_ID,FOLLOW_2); + + 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"); + + + } + break; + case 2 : + // InternalVampireLanguage.g:269:5: lv_name_0_2= RULE_SINGLE_QUOTE + { + lv_name_0_2=(Token)match(input,RULE_SINGLE_QUOTE,FOLLOW_2); + + 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"); + + + } + break; + case 3 : + // InternalVampireLanguage.g:284:5: lv_name_0_3= RULE_LITERAL + { + lv_name_0_3=(Token)match(input,RULE_LITERAL,FOLLOW_2); + + 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"); + + + } + break; + case 4 : + // InternalVampireLanguage.g:299:5: lv_name_0_4= RULE_SIGNED_LITERAL + { + lv_name_0_4=(Token)match(input,RULE_SIGNED_LITERAL,FOLLOW_2); + + 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"); + + + } + break; + + } + + + } + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSName" + + + // $ANTLR start "entryRuleVLSComment" + // InternalVampireLanguage.g:319:1: entryRuleVLSComment returns [EObject current=null] : iv_ruleVLSComment= ruleVLSComment EOF ; + public final EObject entryRuleVLSComment() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVLSComment = null; + + + try { + // InternalVampireLanguage.g:319:51: (iv_ruleVLSComment= ruleVLSComment EOF ) + // InternalVampireLanguage.g:320:2: iv_ruleVLSComment= ruleVLSComment EOF + { + newCompositeNode(grammarAccess.getVLSCommentRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSComment=ruleVLSComment(); + + state._fsp--; + + current =iv_ruleVLSComment; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSComment" + + + // $ANTLR start "ruleVLSComment" + // InternalVampireLanguage.g:326:1: ruleVLSComment returns [EObject current=null] : ( (lv_comment_0_0= RULE_SINGLE_COMMENT ) ) ; + public final EObject ruleVLSComment() throws RecognitionException { + EObject current = null; + + Token lv_comment_0_0=null; + + + enterRule(); + + try { + // InternalVampireLanguage.g:332:2: ( ( (lv_comment_0_0= RULE_SINGLE_COMMENT ) ) ) + // InternalVampireLanguage.g:333:2: ( (lv_comment_0_0= RULE_SINGLE_COMMENT ) ) + { + // InternalVampireLanguage.g:333:2: ( (lv_comment_0_0= RULE_SINGLE_COMMENT ) ) + // InternalVampireLanguage.g:334:3: (lv_comment_0_0= RULE_SINGLE_COMMENT ) + { + // InternalVampireLanguage.g:334:3: (lv_comment_0_0= RULE_SINGLE_COMMENT ) + // InternalVampireLanguage.g:335:4: lv_comment_0_0= RULE_SINGLE_COMMENT + { + lv_comment_0_0=(Token)match(input,RULE_SINGLE_COMMENT,FOLLOW_2); + + newLeafNode(lv_comment_0_0, grammarAccess.getVLSCommentAccess().getCommentSINGLE_COMMENTTerminalRuleCall_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getVLSCommentRule()); + } + setWithLastConsumed( + current, + "comment", + lv_comment_0_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_COMMENT"); + + + } + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSComment" + + + // $ANTLR start "entryRuleVLSFofFormula" + // InternalVampireLanguage.g:354:1: entryRuleVLSFofFormula returns [EObject current=null] : iv_ruleVLSFofFormula= ruleVLSFofFormula EOF ; + public final EObject entryRuleVLSFofFormula() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVLSFofFormula = null; + + + try { + // InternalVampireLanguage.g:354:54: (iv_ruleVLSFofFormula= ruleVLSFofFormula EOF ) + // InternalVampireLanguage.g:355:2: iv_ruleVLSFofFormula= ruleVLSFofFormula EOF + { + newCompositeNode(grammarAccess.getVLSFofFormulaRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSFofFormula=ruleVLSFofFormula(); + + state._fsp--; + + current =iv_ruleVLSFofFormula; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSFofFormula" + + + // $ANTLR start "ruleVLSFofFormula" + // InternalVampireLanguage.g:361: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= '.' ) ; + public final EObject ruleVLSFofFormula() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_1=null; + Token lv_name_2_1=null; + Token lv_name_2_2=null; + Token lv_name_2_3=null; + Token otherlv_3=null; + Token otherlv_5=null; + Token otherlv_7=null; + Token otherlv_9=null; + Token otherlv_10=null; + AntlrDatatypeRuleToken lv_fofRole_4_0 = null; + + EObject lv_fofFormula_6_0 = null; + + EObject lv_annotations_8_0 = null; + + + + enterRule(); + + try { + // InternalVampireLanguage.g:367: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= '.' ) ) + // InternalVampireLanguage.g:368: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= '.' ) + { + // InternalVampireLanguage.g:368: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= '.' ) + // InternalVampireLanguage.g:369: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= '.' + { + otherlv_0=(Token)match(input,31,FOLLOW_8); + + newLeafNode(otherlv_0, grammarAccess.getVLSFofFormulaAccess().getFofKeyword_0()); + + otherlv_1=(Token)match(input,32,FOLLOW_9); + + newLeafNode(otherlv_1, grammarAccess.getVLSFofFormulaAccess().getLeftParenthesisKeyword_1()); + + // InternalVampireLanguage.g:377:3: ( ( (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) ) ) + // InternalVampireLanguage.g:378:4: ( (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) ) + { + // InternalVampireLanguage.g:378:4: ( (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) ) + // InternalVampireLanguage.g:379:5: (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) + { + // InternalVampireLanguage.g:379:5: (lv_name_2_1= RULE_LOWER_WORD_ID | lv_name_2_2= RULE_SIGNED_LITERAL | lv_name_2_3= RULE_SINGLE_QUOTE ) + int alt5=3; + switch ( input.LA(1) ) { + case RULE_LOWER_WORD_ID: + { + alt5=1; + } + break; + case RULE_SIGNED_LITERAL: + { + alt5=2; + } + break; + case RULE_SINGLE_QUOTE: + { + alt5=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 5, 0, input); + + throw nvae; + } + + switch (alt5) { + case 1 : + // InternalVampireLanguage.g:380:6: lv_name_2_1= RULE_LOWER_WORD_ID + { + lv_name_2_1=(Token)match(input,RULE_LOWER_WORD_ID,FOLLOW_10); + + 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"); + + + } + break; + case 2 : + // InternalVampireLanguage.g:395:6: lv_name_2_2= RULE_SIGNED_LITERAL + { + lv_name_2_2=(Token)match(input,RULE_SIGNED_LITERAL,FOLLOW_10); + + 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"); + + + } + break; + case 3 : + // InternalVampireLanguage.g:410:6: lv_name_2_3= RULE_SINGLE_QUOTE + { + lv_name_2_3=(Token)match(input,RULE_SINGLE_QUOTE,FOLLOW_10); + + 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"); + + + } + break; + + } + + + } + + + } + + otherlv_3=(Token)match(input,29,FOLLOW_11); + + newLeafNode(otherlv_3, grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_3()); + + // InternalVampireLanguage.g:431:3: ( (lv_fofRole_4_0= ruleVLSRole ) ) + // InternalVampireLanguage.g:432:4: (lv_fofRole_4_0= ruleVLSRole ) + { + // InternalVampireLanguage.g:432:4: (lv_fofRole_4_0= ruleVLSRole ) + // InternalVampireLanguage.g:433:5: lv_fofRole_4_0= ruleVLSRole + { + + newCompositeNode(grammarAccess.getVLSFofFormulaAccess().getFofRoleVLSRoleParserRuleCall_4_0()); + + pushFollow(FOLLOW_10); + lv_fofRole_4_0=ruleVLSRole(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSFofFormulaRule()); + } + set( + current, + "fofRole", + lv_fofRole_4_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSRole"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_5=(Token)match(input,29,FOLLOW_12); + + newLeafNode(otherlv_5, grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_5()); + + // InternalVampireLanguage.g:454:3: ( (lv_fofFormula_6_0= ruleVLSTerm ) ) + // InternalVampireLanguage.g:455:4: (lv_fofFormula_6_0= ruleVLSTerm ) + { + // InternalVampireLanguage.g:455:4: (lv_fofFormula_6_0= ruleVLSTerm ) + // InternalVampireLanguage.g:456:5: lv_fofFormula_6_0= ruleVLSTerm + { + + newCompositeNode(grammarAccess.getVLSFofFormulaAccess().getFofFormulaVLSTermParserRuleCall_6_0()); + + pushFollow(FOLLOW_13); + lv_fofFormula_6_0=ruleVLSTerm(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSFofFormulaRule()); + } + set( + current, + "fofFormula", + lv_fofFormula_6_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSTerm"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // InternalVampireLanguage.g:473:3: (otherlv_7= ',' ( (lv_annotations_8_0= ruleVLSAnnotation ) ) )? + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0==29) ) { + alt6=1; + } + switch (alt6) { + case 1 : + // InternalVampireLanguage.g:474:4: otherlv_7= ',' ( (lv_annotations_8_0= ruleVLSAnnotation ) ) + { + otherlv_7=(Token)match(input,29,FOLLOW_14); + + newLeafNode(otherlv_7, grammarAccess.getVLSFofFormulaAccess().getCommaKeyword_7_0()); + + // InternalVampireLanguage.g:478:4: ( (lv_annotations_8_0= ruleVLSAnnotation ) ) + // InternalVampireLanguage.g:479:5: (lv_annotations_8_0= ruleVLSAnnotation ) + { + // InternalVampireLanguage.g:479:5: (lv_annotations_8_0= ruleVLSAnnotation ) + // InternalVampireLanguage.g:480:6: lv_annotations_8_0= ruleVLSAnnotation + { + + newCompositeNode(grammarAccess.getVLSFofFormulaAccess().getAnnotationsVLSAnnotationParserRuleCall_7_1_0()); + + pushFollow(FOLLOW_15); + lv_annotations_8_0=ruleVLSAnnotation(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSFofFormulaRule()); + } + set( + current, + "annotations", + lv_annotations_8_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAnnotation"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + } + + otherlv_9=(Token)match(input,33,FOLLOW_16); + + newLeafNode(otherlv_9, grammarAccess.getVLSFofFormulaAccess().getRightParenthesisKeyword_8()); + + otherlv_10=(Token)match(input,34,FOLLOW_2); + + newLeafNode(otherlv_10, grammarAccess.getVLSFofFormulaAccess().getFullStopKeyword_9()); + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSFofFormula" + + + // $ANTLR start "entryRuleVLSRole" + // InternalVampireLanguage.g:510:1: entryRuleVLSRole returns [String current=null] : iv_ruleVLSRole= ruleVLSRole EOF ; + public final String entryRuleVLSRole() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleVLSRole = null; + + + try { + // InternalVampireLanguage.g:510:47: (iv_ruleVLSRole= ruleVLSRole EOF ) + // InternalVampireLanguage.g:511:2: iv_ruleVLSRole= ruleVLSRole EOF + { + newCompositeNode(grammarAccess.getVLSRoleRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSRole=ruleVLSRole(); + + state._fsp--; + + current =iv_ruleVLSRole.getText(); + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSRole" + + + // $ANTLR start "ruleVLSRole" + // InternalVampireLanguage.g:517:1: ruleVLSRole returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_VLSAxiom_0= ruleVLSAxiom | this_VLSConjecture_1= ruleVLSConjecture | this_VLSHypothesis_2= ruleVLSHypothesis | this_VLSDefinition_3= ruleVLSDefinition | this_VLSAssumption_4= ruleVLSAssumption | this_VLSLemma_5= ruleVLSLemma | this_VLSTheorem_6= ruleVLSTheorem | this_VLSCorollary_7= ruleVLSCorollary | this_VLSNegated_Conjecture_8= ruleVLSNegated_Conjecture | this_VLSPlain_9= ruleVLSPlain | this_VLSType_10= ruleVLSType | this_VLSFi_Domain_11= ruleVLSFi_Domain | this_VLSFi_Functors_12= ruleVLSFi_Functors | this_VLSFi_Predicates_13= ruleVLSFi_Predicates | this_VLSUnknown_14= ruleVLSUnknown ) ; + public final AntlrDatatypeRuleToken ruleVLSRole() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + AntlrDatatypeRuleToken this_VLSAxiom_0 = null; + + AntlrDatatypeRuleToken this_VLSConjecture_1 = null; + + AntlrDatatypeRuleToken this_VLSHypothesis_2 = null; + + AntlrDatatypeRuleToken this_VLSDefinition_3 = null; + + AntlrDatatypeRuleToken this_VLSAssumption_4 = null; + + AntlrDatatypeRuleToken this_VLSLemma_5 = null; + + AntlrDatatypeRuleToken this_VLSTheorem_6 = null; + + AntlrDatatypeRuleToken this_VLSCorollary_7 = null; + + AntlrDatatypeRuleToken this_VLSNegated_Conjecture_8 = null; + + AntlrDatatypeRuleToken this_VLSPlain_9 = null; + + AntlrDatatypeRuleToken this_VLSType_10 = null; + + AntlrDatatypeRuleToken this_VLSFi_Domain_11 = null; + + AntlrDatatypeRuleToken this_VLSFi_Functors_12 = null; + + AntlrDatatypeRuleToken this_VLSFi_Predicates_13 = null; + + AntlrDatatypeRuleToken this_VLSUnknown_14 = null; + + + + enterRule(); + + try { + // InternalVampireLanguage.g:523:2: ( (this_VLSAxiom_0= ruleVLSAxiom | this_VLSConjecture_1= ruleVLSConjecture | this_VLSHypothesis_2= ruleVLSHypothesis | this_VLSDefinition_3= ruleVLSDefinition | this_VLSAssumption_4= ruleVLSAssumption | this_VLSLemma_5= ruleVLSLemma | this_VLSTheorem_6= ruleVLSTheorem | this_VLSCorollary_7= ruleVLSCorollary | this_VLSNegated_Conjecture_8= ruleVLSNegated_Conjecture | this_VLSPlain_9= ruleVLSPlain | this_VLSType_10= ruleVLSType | this_VLSFi_Domain_11= ruleVLSFi_Domain | this_VLSFi_Functors_12= ruleVLSFi_Functors | this_VLSFi_Predicates_13= ruleVLSFi_Predicates | this_VLSUnknown_14= ruleVLSUnknown ) ) + // InternalVampireLanguage.g:524:2: (this_VLSAxiom_0= ruleVLSAxiom | this_VLSConjecture_1= ruleVLSConjecture | this_VLSHypothesis_2= ruleVLSHypothesis | this_VLSDefinition_3= ruleVLSDefinition | this_VLSAssumption_4= ruleVLSAssumption | this_VLSLemma_5= ruleVLSLemma | this_VLSTheorem_6= ruleVLSTheorem | this_VLSCorollary_7= ruleVLSCorollary | this_VLSNegated_Conjecture_8= ruleVLSNegated_Conjecture | this_VLSPlain_9= ruleVLSPlain | this_VLSType_10= ruleVLSType | this_VLSFi_Domain_11= ruleVLSFi_Domain | this_VLSFi_Functors_12= ruleVLSFi_Functors | this_VLSFi_Predicates_13= ruleVLSFi_Predicates | this_VLSUnknown_14= ruleVLSUnknown ) + { + // InternalVampireLanguage.g:524:2: (this_VLSAxiom_0= ruleVLSAxiom | this_VLSConjecture_1= ruleVLSConjecture | this_VLSHypothesis_2= ruleVLSHypothesis | this_VLSDefinition_3= ruleVLSDefinition | this_VLSAssumption_4= ruleVLSAssumption | this_VLSLemma_5= ruleVLSLemma | this_VLSTheorem_6= ruleVLSTheorem | this_VLSCorollary_7= ruleVLSCorollary | this_VLSNegated_Conjecture_8= ruleVLSNegated_Conjecture | this_VLSPlain_9= ruleVLSPlain | this_VLSType_10= ruleVLSType | this_VLSFi_Domain_11= ruleVLSFi_Domain | this_VLSFi_Functors_12= ruleVLSFi_Functors | this_VLSFi_Predicates_13= ruleVLSFi_Predicates | this_VLSUnknown_14= ruleVLSUnknown ) + int alt7=15; + switch ( input.LA(1) ) { + case 35: + { + alt7=1; + } + break; + case 36: + { + alt7=2; + } + break; + case 37: + { + alt7=3; + } + break; + case 38: + { + alt7=4; + } + break; + case 39: + { + alt7=5; + } + break; + case 40: + { + alt7=6; + } + break; + case 41: + { + alt7=7; + } + break; + case 42: + { + alt7=8; + } + break; + case 43: + { + alt7=9; + } + break; + case 44: + { + alt7=10; + } + break; + case 45: + { + alt7=11; + } + break; + case 46: + { + alt7=12; + } + break; + case 47: + { + alt7=13; + } + break; + case 48: + { + alt7=14; + } + break; + case 49: + { + alt7=15; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 7, 0, input); + + throw nvae; + } + + switch (alt7) { + case 1 : + // InternalVampireLanguage.g:525:3: this_VLSAxiom_0= ruleVLSAxiom + { + + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSAxiomParserRuleCall_0()); + + pushFollow(FOLLOW_2); + this_VLSAxiom_0=ruleVLSAxiom(); + + state._fsp--; + + + current.merge(this_VLSAxiom_0); + + + afterParserOrEnumRuleCall(); + + + } + break; + case 2 : + // InternalVampireLanguage.g:536:3: this_VLSConjecture_1= ruleVLSConjecture + { + + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSConjectureParserRuleCall_1()); + + pushFollow(FOLLOW_2); + this_VLSConjecture_1=ruleVLSConjecture(); + + state._fsp--; + + + current.merge(this_VLSConjecture_1); + + + afterParserOrEnumRuleCall(); + + + } + break; + case 3 : + // InternalVampireLanguage.g:547:3: this_VLSHypothesis_2= ruleVLSHypothesis + { + + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSHypothesisParserRuleCall_2()); + + pushFollow(FOLLOW_2); + this_VLSHypothesis_2=ruleVLSHypothesis(); + + state._fsp--; + + + current.merge(this_VLSHypothesis_2); + + + afterParserOrEnumRuleCall(); + + + } + break; + case 4 : + // InternalVampireLanguage.g:558:3: this_VLSDefinition_3= ruleVLSDefinition + { + + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSDefinitionParserRuleCall_3()); + + pushFollow(FOLLOW_2); + this_VLSDefinition_3=ruleVLSDefinition(); + + state._fsp--; + + + current.merge(this_VLSDefinition_3); + + + afterParserOrEnumRuleCall(); + + + } + break; + case 5 : + // InternalVampireLanguage.g:569:3: this_VLSAssumption_4= ruleVLSAssumption + { + + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSAssumptionParserRuleCall_4()); + + pushFollow(FOLLOW_2); + this_VLSAssumption_4=ruleVLSAssumption(); + + state._fsp--; + + + current.merge(this_VLSAssumption_4); + + + afterParserOrEnumRuleCall(); + + + } + break; + case 6 : + // InternalVampireLanguage.g:580:3: this_VLSLemma_5= ruleVLSLemma + { + + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSLemmaParserRuleCall_5()); + + pushFollow(FOLLOW_2); + this_VLSLemma_5=ruleVLSLemma(); + + state._fsp--; + + + current.merge(this_VLSLemma_5); + + + afterParserOrEnumRuleCall(); + + + } + break; + case 7 : + // InternalVampireLanguage.g:591:3: this_VLSTheorem_6= ruleVLSTheorem + { + + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSTheoremParserRuleCall_6()); + + pushFollow(FOLLOW_2); + this_VLSTheorem_6=ruleVLSTheorem(); + + state._fsp--; + + + current.merge(this_VLSTheorem_6); + + + afterParserOrEnumRuleCall(); + + + } + break; + case 8 : + // InternalVampireLanguage.g:602:3: this_VLSCorollary_7= ruleVLSCorollary + { + + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSCorollaryParserRuleCall_7()); + + pushFollow(FOLLOW_2); + this_VLSCorollary_7=ruleVLSCorollary(); + + state._fsp--; + + + current.merge(this_VLSCorollary_7); + + + afterParserOrEnumRuleCall(); + + + } + break; + case 9 : + // InternalVampireLanguage.g:613:3: this_VLSNegated_Conjecture_8= ruleVLSNegated_Conjecture + { + + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSNegated_ConjectureParserRuleCall_8()); + + pushFollow(FOLLOW_2); + this_VLSNegated_Conjecture_8=ruleVLSNegated_Conjecture(); + + state._fsp--; + + + current.merge(this_VLSNegated_Conjecture_8); + + + afterParserOrEnumRuleCall(); + + + } + break; + case 10 : + // InternalVampireLanguage.g:624:3: this_VLSPlain_9= ruleVLSPlain + { + + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSPlainParserRuleCall_9()); + + pushFollow(FOLLOW_2); + this_VLSPlain_9=ruleVLSPlain(); + + state._fsp--; + + + current.merge(this_VLSPlain_9); + + + afterParserOrEnumRuleCall(); + + + } + break; + case 11 : + // InternalVampireLanguage.g:635:3: this_VLSType_10= ruleVLSType + { + + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSTypeParserRuleCall_10()); + + pushFollow(FOLLOW_2); + this_VLSType_10=ruleVLSType(); + + state._fsp--; + + + current.merge(this_VLSType_10); + + + afterParserOrEnumRuleCall(); + + + } + break; + case 12 : + // InternalVampireLanguage.g:646:3: this_VLSFi_Domain_11= ruleVLSFi_Domain + { + + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSFi_DomainParserRuleCall_11()); + + pushFollow(FOLLOW_2); + this_VLSFi_Domain_11=ruleVLSFi_Domain(); + + state._fsp--; + + + current.merge(this_VLSFi_Domain_11); + + + afterParserOrEnumRuleCall(); + + + } + break; + case 13 : + // InternalVampireLanguage.g:657:3: this_VLSFi_Functors_12= ruleVLSFi_Functors + { + + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSFi_FunctorsParserRuleCall_12()); + + pushFollow(FOLLOW_2); + this_VLSFi_Functors_12=ruleVLSFi_Functors(); + + state._fsp--; + + + current.merge(this_VLSFi_Functors_12); + + + afterParserOrEnumRuleCall(); + + + } + break; + case 14 : + // InternalVampireLanguage.g:668:3: this_VLSFi_Predicates_13= ruleVLSFi_Predicates + { + + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSFi_PredicatesParserRuleCall_13()); + + pushFollow(FOLLOW_2); + this_VLSFi_Predicates_13=ruleVLSFi_Predicates(); + + state._fsp--; + + + current.merge(this_VLSFi_Predicates_13); + + + afterParserOrEnumRuleCall(); + + + } + break; + case 15 : + // InternalVampireLanguage.g:679:3: this_VLSUnknown_14= ruleVLSUnknown + { + + newCompositeNode(grammarAccess.getVLSRoleAccess().getVLSUnknownParserRuleCall_14()); + + pushFollow(FOLLOW_2); + this_VLSUnknown_14=ruleVLSUnknown(); + + state._fsp--; + + + current.merge(this_VLSUnknown_14); + + + afterParserOrEnumRuleCall(); + + + } + break; + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSRole" + + + // $ANTLR start "entryRuleVLSAxiom" + // InternalVampireLanguage.g:693:1: entryRuleVLSAxiom returns [String current=null] : iv_ruleVLSAxiom= ruleVLSAxiom EOF ; + public final String entryRuleVLSAxiom() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleVLSAxiom = null; + + + try { + // InternalVampireLanguage.g:693:48: (iv_ruleVLSAxiom= ruleVLSAxiom EOF ) + // InternalVampireLanguage.g:694:2: iv_ruleVLSAxiom= ruleVLSAxiom EOF + { + newCompositeNode(grammarAccess.getVLSAxiomRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSAxiom=ruleVLSAxiom(); + + state._fsp--; + + current =iv_ruleVLSAxiom.getText(); + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSAxiom" + + + // $ANTLR start "ruleVLSAxiom" + // InternalVampireLanguage.g:700:1: ruleVLSAxiom returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'axiom' ; + public final AntlrDatatypeRuleToken ruleVLSAxiom() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token kw=null; + + + enterRule(); + + try { + // InternalVampireLanguage.g:706:2: (kw= 'axiom' ) + // InternalVampireLanguage.g:707:2: kw= 'axiom' + { + kw=(Token)match(input,35,FOLLOW_2); + + current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSAxiomAccess().getAxiomKeyword()); + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSAxiom" + + + // $ANTLR start "entryRuleVLSConjecture" + // InternalVampireLanguage.g:715:1: entryRuleVLSConjecture returns [String current=null] : iv_ruleVLSConjecture= ruleVLSConjecture EOF ; + public final String entryRuleVLSConjecture() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleVLSConjecture = null; + + + try { + // InternalVampireLanguage.g:715:53: (iv_ruleVLSConjecture= ruleVLSConjecture EOF ) + // InternalVampireLanguage.g:716:2: iv_ruleVLSConjecture= ruleVLSConjecture EOF + { + newCompositeNode(grammarAccess.getVLSConjectureRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSConjecture=ruleVLSConjecture(); + + state._fsp--; + + current =iv_ruleVLSConjecture.getText(); + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSConjecture" + + + // $ANTLR start "ruleVLSConjecture" + // InternalVampireLanguage.g:722:1: ruleVLSConjecture returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'conjecture' ; + public final AntlrDatatypeRuleToken ruleVLSConjecture() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token kw=null; + + + enterRule(); + + try { + // InternalVampireLanguage.g:728:2: (kw= 'conjecture' ) + // InternalVampireLanguage.g:729:2: kw= 'conjecture' + { + kw=(Token)match(input,36,FOLLOW_2); + + current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSConjectureAccess().getConjectureKeyword()); + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSConjecture" + + + // $ANTLR start "entryRuleVLSHypothesis" + // InternalVampireLanguage.g:737:1: entryRuleVLSHypothesis returns [String current=null] : iv_ruleVLSHypothesis= ruleVLSHypothesis EOF ; + public final String entryRuleVLSHypothesis() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleVLSHypothesis = null; + + + try { + // InternalVampireLanguage.g:737:53: (iv_ruleVLSHypothesis= ruleVLSHypothesis EOF ) + // InternalVampireLanguage.g:738:2: iv_ruleVLSHypothesis= ruleVLSHypothesis EOF + { + newCompositeNode(grammarAccess.getVLSHypothesisRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSHypothesis=ruleVLSHypothesis(); + + state._fsp--; + + current =iv_ruleVLSHypothesis.getText(); + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSHypothesis" + + + // $ANTLR start "ruleVLSHypothesis" + // InternalVampireLanguage.g:744:1: ruleVLSHypothesis returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'hypothesis' ; + public final AntlrDatatypeRuleToken ruleVLSHypothesis() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token kw=null; + + + enterRule(); + + try { + // InternalVampireLanguage.g:750:2: (kw= 'hypothesis' ) + // InternalVampireLanguage.g:751:2: kw= 'hypothesis' + { + kw=(Token)match(input,37,FOLLOW_2); + + current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSHypothesisAccess().getHypothesisKeyword()); + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSHypothesis" + + + // $ANTLR start "entryRuleVLSDefinition" + // InternalVampireLanguage.g:759:1: entryRuleVLSDefinition returns [String current=null] : iv_ruleVLSDefinition= ruleVLSDefinition EOF ; + public final String entryRuleVLSDefinition() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleVLSDefinition = null; + + + try { + // InternalVampireLanguage.g:759:53: (iv_ruleVLSDefinition= ruleVLSDefinition EOF ) + // InternalVampireLanguage.g:760:2: iv_ruleVLSDefinition= ruleVLSDefinition EOF + { + newCompositeNode(grammarAccess.getVLSDefinitionRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSDefinition=ruleVLSDefinition(); + + state._fsp--; + + current =iv_ruleVLSDefinition.getText(); + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSDefinition" + + + // $ANTLR start "ruleVLSDefinition" + // InternalVampireLanguage.g:766:1: ruleVLSDefinition returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'definition' ; + public final AntlrDatatypeRuleToken ruleVLSDefinition() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token kw=null; + + + enterRule(); + + try { + // InternalVampireLanguage.g:772:2: (kw= 'definition' ) + // InternalVampireLanguage.g:773:2: kw= 'definition' + { + kw=(Token)match(input,38,FOLLOW_2); + + current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSDefinitionAccess().getDefinitionKeyword()); + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSDefinition" + + + // $ANTLR start "entryRuleVLSAssumption" + // InternalVampireLanguage.g:781:1: entryRuleVLSAssumption returns [String current=null] : iv_ruleVLSAssumption= ruleVLSAssumption EOF ; + public final String entryRuleVLSAssumption() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleVLSAssumption = null; + + + try { + // InternalVampireLanguage.g:781:53: (iv_ruleVLSAssumption= ruleVLSAssumption EOF ) + // InternalVampireLanguage.g:782:2: iv_ruleVLSAssumption= ruleVLSAssumption EOF + { + newCompositeNode(grammarAccess.getVLSAssumptionRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSAssumption=ruleVLSAssumption(); + + state._fsp--; + + current =iv_ruleVLSAssumption.getText(); + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSAssumption" + + + // $ANTLR start "ruleVLSAssumption" + // InternalVampireLanguage.g:788:1: ruleVLSAssumption returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'assumption' ; + public final AntlrDatatypeRuleToken ruleVLSAssumption() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token kw=null; + + + enterRule(); + + try { + // InternalVampireLanguage.g:794:2: (kw= 'assumption' ) + // InternalVampireLanguage.g:795:2: kw= 'assumption' + { + kw=(Token)match(input,39,FOLLOW_2); + + current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSAssumptionAccess().getAssumptionKeyword()); + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSAssumption" + + + // $ANTLR start "entryRuleVLSLemma" + // InternalVampireLanguage.g:803:1: entryRuleVLSLemma returns [String current=null] : iv_ruleVLSLemma= ruleVLSLemma EOF ; + public final String entryRuleVLSLemma() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleVLSLemma = null; + + + try { + // InternalVampireLanguage.g:803:48: (iv_ruleVLSLemma= ruleVLSLemma EOF ) + // InternalVampireLanguage.g:804:2: iv_ruleVLSLemma= ruleVLSLemma EOF + { + newCompositeNode(grammarAccess.getVLSLemmaRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSLemma=ruleVLSLemma(); + + state._fsp--; + + current =iv_ruleVLSLemma.getText(); + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSLemma" + + + // $ANTLR start "ruleVLSLemma" + // InternalVampireLanguage.g:810:1: ruleVLSLemma returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'lemma' ; + public final AntlrDatatypeRuleToken ruleVLSLemma() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token kw=null; + + + enterRule(); + + try { + // InternalVampireLanguage.g:816:2: (kw= 'lemma' ) + // InternalVampireLanguage.g:817:2: kw= 'lemma' + { + kw=(Token)match(input,40,FOLLOW_2); + + current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSLemmaAccess().getLemmaKeyword()); + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSLemma" + + + // $ANTLR start "entryRuleVLSTheorem" + // InternalVampireLanguage.g:825:1: entryRuleVLSTheorem returns [String current=null] : iv_ruleVLSTheorem= ruleVLSTheorem EOF ; + public final String entryRuleVLSTheorem() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleVLSTheorem = null; + + + try { + // InternalVampireLanguage.g:825:50: (iv_ruleVLSTheorem= ruleVLSTheorem EOF ) + // InternalVampireLanguage.g:826:2: iv_ruleVLSTheorem= ruleVLSTheorem EOF + { + newCompositeNode(grammarAccess.getVLSTheoremRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSTheorem=ruleVLSTheorem(); + + state._fsp--; + + current =iv_ruleVLSTheorem.getText(); + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSTheorem" + + + // $ANTLR start "ruleVLSTheorem" + // InternalVampireLanguage.g:832:1: ruleVLSTheorem returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'theorem' ; + public final AntlrDatatypeRuleToken ruleVLSTheorem() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token kw=null; + + + enterRule(); + + try { + // InternalVampireLanguage.g:838:2: (kw= 'theorem' ) + // InternalVampireLanguage.g:839:2: kw= 'theorem' + { + kw=(Token)match(input,41,FOLLOW_2); + + current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSTheoremAccess().getTheoremKeyword()); + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSTheorem" + + + // $ANTLR start "entryRuleVLSCorollary" + // InternalVampireLanguage.g:847:1: entryRuleVLSCorollary returns [String current=null] : iv_ruleVLSCorollary= ruleVLSCorollary EOF ; + public final String entryRuleVLSCorollary() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleVLSCorollary = null; + + + try { + // InternalVampireLanguage.g:847:52: (iv_ruleVLSCorollary= ruleVLSCorollary EOF ) + // InternalVampireLanguage.g:848:2: iv_ruleVLSCorollary= ruleVLSCorollary EOF + { + newCompositeNode(grammarAccess.getVLSCorollaryRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSCorollary=ruleVLSCorollary(); + + state._fsp--; + + current =iv_ruleVLSCorollary.getText(); + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSCorollary" + + + // $ANTLR start "ruleVLSCorollary" + // InternalVampireLanguage.g:854:1: ruleVLSCorollary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'corollary' ; + public final AntlrDatatypeRuleToken ruleVLSCorollary() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token kw=null; + + + enterRule(); + + try { + // InternalVampireLanguage.g:860:2: (kw= 'corollary' ) + // InternalVampireLanguage.g:861:2: kw= 'corollary' + { + kw=(Token)match(input,42,FOLLOW_2); + + current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSCorollaryAccess().getCorollaryKeyword()); + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSCorollary" + + + // $ANTLR start "entryRuleVLSNegated_Conjecture" + // InternalVampireLanguage.g:869:1: entryRuleVLSNegated_Conjecture returns [String current=null] : iv_ruleVLSNegated_Conjecture= ruleVLSNegated_Conjecture EOF ; + public final String entryRuleVLSNegated_Conjecture() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleVLSNegated_Conjecture = null; + + + try { + // InternalVampireLanguage.g:869:61: (iv_ruleVLSNegated_Conjecture= ruleVLSNegated_Conjecture EOF ) + // InternalVampireLanguage.g:870:2: iv_ruleVLSNegated_Conjecture= ruleVLSNegated_Conjecture EOF + { + newCompositeNode(grammarAccess.getVLSNegated_ConjectureRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSNegated_Conjecture=ruleVLSNegated_Conjecture(); + + state._fsp--; + + current =iv_ruleVLSNegated_Conjecture.getText(); + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSNegated_Conjecture" + + + // $ANTLR start "ruleVLSNegated_Conjecture" + // InternalVampireLanguage.g:876:1: ruleVLSNegated_Conjecture returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'negated_conjecture' ; + public final AntlrDatatypeRuleToken ruleVLSNegated_Conjecture() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token kw=null; + + + enterRule(); + + try { + // InternalVampireLanguage.g:882:2: (kw= 'negated_conjecture' ) + // InternalVampireLanguage.g:883:2: kw= 'negated_conjecture' + { + kw=(Token)match(input,43,FOLLOW_2); + + current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSNegated_ConjectureAccess().getNegated_conjectureKeyword()); + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSNegated_Conjecture" + + + // $ANTLR start "entryRuleVLSPlain" + // InternalVampireLanguage.g:891:1: entryRuleVLSPlain returns [String current=null] : iv_ruleVLSPlain= ruleVLSPlain EOF ; + public final String entryRuleVLSPlain() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleVLSPlain = null; + + + try { + // InternalVampireLanguage.g:891:48: (iv_ruleVLSPlain= ruleVLSPlain EOF ) + // InternalVampireLanguage.g:892:2: iv_ruleVLSPlain= ruleVLSPlain EOF + { + newCompositeNode(grammarAccess.getVLSPlainRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSPlain=ruleVLSPlain(); + + state._fsp--; + + current =iv_ruleVLSPlain.getText(); + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSPlain" + + + // $ANTLR start "ruleVLSPlain" + // InternalVampireLanguage.g:898:1: ruleVLSPlain returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'plain' ; + public final AntlrDatatypeRuleToken ruleVLSPlain() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token kw=null; + + + enterRule(); + + try { + // InternalVampireLanguage.g:904:2: (kw= 'plain' ) + // InternalVampireLanguage.g:905:2: kw= 'plain' + { + kw=(Token)match(input,44,FOLLOW_2); + + current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSPlainAccess().getPlainKeyword()); + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSPlain" + + + // $ANTLR start "entryRuleVLSType" + // InternalVampireLanguage.g:913:1: entryRuleVLSType returns [String current=null] : iv_ruleVLSType= ruleVLSType EOF ; + public final String entryRuleVLSType() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleVLSType = null; + + + try { + // InternalVampireLanguage.g:913:47: (iv_ruleVLSType= ruleVLSType EOF ) + // InternalVampireLanguage.g:914:2: iv_ruleVLSType= ruleVLSType EOF + { + newCompositeNode(grammarAccess.getVLSTypeRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSType=ruleVLSType(); + + state._fsp--; + + current =iv_ruleVLSType.getText(); + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSType" + + + // $ANTLR start "ruleVLSType" + // InternalVampireLanguage.g:920:1: ruleVLSType returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'type' ; + public final AntlrDatatypeRuleToken ruleVLSType() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token kw=null; + + + enterRule(); + + try { + // InternalVampireLanguage.g:926:2: (kw= 'type' ) + // InternalVampireLanguage.g:927:2: kw= 'type' + { + kw=(Token)match(input,45,FOLLOW_2); + + current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSTypeAccess().getTypeKeyword()); + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSType" + + + // $ANTLR start "entryRuleVLSFi_Domain" + // InternalVampireLanguage.g:935:1: entryRuleVLSFi_Domain returns [String current=null] : iv_ruleVLSFi_Domain= ruleVLSFi_Domain EOF ; + public final String entryRuleVLSFi_Domain() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleVLSFi_Domain = null; + + + try { + // InternalVampireLanguage.g:935:52: (iv_ruleVLSFi_Domain= ruleVLSFi_Domain EOF ) + // InternalVampireLanguage.g:936:2: iv_ruleVLSFi_Domain= ruleVLSFi_Domain EOF + { + newCompositeNode(grammarAccess.getVLSFi_DomainRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSFi_Domain=ruleVLSFi_Domain(); + + state._fsp--; + + current =iv_ruleVLSFi_Domain.getText(); + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSFi_Domain" + + + // $ANTLR start "ruleVLSFi_Domain" + // InternalVampireLanguage.g:942:1: ruleVLSFi_Domain returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'fi_domain' ; + public final AntlrDatatypeRuleToken ruleVLSFi_Domain() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token kw=null; + + + enterRule(); + + try { + // InternalVampireLanguage.g:948:2: (kw= 'fi_domain' ) + // InternalVampireLanguage.g:949:2: kw= 'fi_domain' + { + kw=(Token)match(input,46,FOLLOW_2); + + current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSFi_DomainAccess().getFi_domainKeyword()); + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSFi_Domain" + + + // $ANTLR start "entryRuleVLSFi_Functors" + // InternalVampireLanguage.g:957:1: entryRuleVLSFi_Functors returns [String current=null] : iv_ruleVLSFi_Functors= ruleVLSFi_Functors EOF ; + public final String entryRuleVLSFi_Functors() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleVLSFi_Functors = null; + + + try { + // InternalVampireLanguage.g:957:54: (iv_ruleVLSFi_Functors= ruleVLSFi_Functors EOF ) + // InternalVampireLanguage.g:958:2: iv_ruleVLSFi_Functors= ruleVLSFi_Functors EOF + { + newCompositeNode(grammarAccess.getVLSFi_FunctorsRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSFi_Functors=ruleVLSFi_Functors(); + + state._fsp--; + + current =iv_ruleVLSFi_Functors.getText(); + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSFi_Functors" + + + // $ANTLR start "ruleVLSFi_Functors" + // InternalVampireLanguage.g:964:1: ruleVLSFi_Functors returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'fi_functors' ; + public final AntlrDatatypeRuleToken ruleVLSFi_Functors() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token kw=null; + + + enterRule(); + + try { + // InternalVampireLanguage.g:970:2: (kw= 'fi_functors' ) + // InternalVampireLanguage.g:971:2: kw= 'fi_functors' + { + kw=(Token)match(input,47,FOLLOW_2); + + current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSFi_FunctorsAccess().getFi_functorsKeyword()); + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSFi_Functors" + + + // $ANTLR start "entryRuleVLSFi_Predicates" + // InternalVampireLanguage.g:979:1: entryRuleVLSFi_Predicates returns [String current=null] : iv_ruleVLSFi_Predicates= ruleVLSFi_Predicates EOF ; + public final String entryRuleVLSFi_Predicates() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleVLSFi_Predicates = null; + + + try { + // InternalVampireLanguage.g:979:56: (iv_ruleVLSFi_Predicates= ruleVLSFi_Predicates EOF ) + // InternalVampireLanguage.g:980:2: iv_ruleVLSFi_Predicates= ruleVLSFi_Predicates EOF + { + newCompositeNode(grammarAccess.getVLSFi_PredicatesRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSFi_Predicates=ruleVLSFi_Predicates(); + + state._fsp--; + + current =iv_ruleVLSFi_Predicates.getText(); + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSFi_Predicates" + + + // $ANTLR start "ruleVLSFi_Predicates" + // InternalVampireLanguage.g:986:1: ruleVLSFi_Predicates returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'fi_predicates' ; + public final AntlrDatatypeRuleToken ruleVLSFi_Predicates() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token kw=null; + + + enterRule(); + + try { + // InternalVampireLanguage.g:992:2: (kw= 'fi_predicates' ) + // InternalVampireLanguage.g:993:2: kw= 'fi_predicates' + { + kw=(Token)match(input,48,FOLLOW_2); + + current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSFi_PredicatesAccess().getFi_predicatesKeyword()); + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSFi_Predicates" + + + // $ANTLR start "entryRuleVLSUnknown" + // InternalVampireLanguage.g:1001:1: entryRuleVLSUnknown returns [String current=null] : iv_ruleVLSUnknown= ruleVLSUnknown EOF ; + public final String entryRuleVLSUnknown() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleVLSUnknown = null; + + + try { + // InternalVampireLanguage.g:1001:50: (iv_ruleVLSUnknown= ruleVLSUnknown EOF ) + // InternalVampireLanguage.g:1002:2: iv_ruleVLSUnknown= ruleVLSUnknown EOF + { + newCompositeNode(grammarAccess.getVLSUnknownRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSUnknown=ruleVLSUnknown(); + + state._fsp--; + + current =iv_ruleVLSUnknown.getText(); + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSUnknown" + + + // $ANTLR start "ruleVLSUnknown" + // InternalVampireLanguage.g:1008:1: ruleVLSUnknown returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'unknown' ; + public final AntlrDatatypeRuleToken ruleVLSUnknown() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token kw=null; + + + enterRule(); + + try { + // InternalVampireLanguage.g:1014:2: (kw= 'unknown' ) + // InternalVampireLanguage.g:1015:2: kw= 'unknown' + { + kw=(Token)match(input,49,FOLLOW_2); + + current.merge(kw); + newLeafNode(kw, grammarAccess.getVLSUnknownAccess().getUnknownKeyword()); + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSUnknown" + + + // $ANTLR start "entryRuleVLSAnnotation" + // InternalVampireLanguage.g:1023:1: entryRuleVLSAnnotation returns [EObject current=null] : iv_ruleVLSAnnotation= ruleVLSAnnotation EOF ; + public final EObject entryRuleVLSAnnotation() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVLSAnnotation = null; + + + try { + // InternalVampireLanguage.g:1023:54: (iv_ruleVLSAnnotation= ruleVLSAnnotation EOF ) + // InternalVampireLanguage.g:1024:2: iv_ruleVLSAnnotation= ruleVLSAnnotation EOF + { + newCompositeNode(grammarAccess.getVLSAnnotationRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSAnnotation=ruleVLSAnnotation(); + + state._fsp--; + + current =iv_ruleVLSAnnotation; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSAnnotation" + + + // $ANTLR start "ruleVLSAnnotation" + // InternalVampireLanguage.g:1030: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= ']' )? ) ; + public final EObject ruleVLSAnnotation() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_name_1_1=null; + Token lv_name_1_2=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_5=null; + AntlrDatatypeRuleToken lv_name_1_3 = null; + + EObject lv_followup_3_0 = null; + + + + enterRule(); + + try { + // InternalVampireLanguage.g:1036: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= ']' )? ) ) + // InternalVampireLanguage.g:1037: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= ']' )? ) + { + // InternalVampireLanguage.g:1037: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= ']' )? ) + // InternalVampireLanguage.g:1038: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= ']' )? + { + // InternalVampireLanguage.g:1038:3: (otherlv_0= '[' )? + int alt8=2; + int LA8_0 = input.LA(1); + + if ( (LA8_0==50) ) { + alt8=1; + } + switch (alt8) { + case 1 : + // InternalVampireLanguage.g:1039:4: otherlv_0= '[' + { + otherlv_0=(Token)match(input,50,FOLLOW_17); + + newLeafNode(otherlv_0, grammarAccess.getVLSAnnotationAccess().getLeftSquareBracketKeyword_0()); + + + } + break; + + } + + // InternalVampireLanguage.g:1044:3: ( ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= ruleVLSRole ) ) )? + int alt10=2; + int LA10_0 = input.LA(1); + + if ( ((LA10_0>=RULE_SINGLE_QUOTE && LA10_0<=RULE_LOWER_WORD_ID)||(LA10_0>=35 && LA10_0<=49)) ) { + alt10=1; + } + switch (alt10) { + case 1 : + // InternalVampireLanguage.g:1045:4: ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= ruleVLSRole ) ) + { + // InternalVampireLanguage.g:1045:4: ( (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= ruleVLSRole ) ) + // InternalVampireLanguage.g:1046:5: (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= ruleVLSRole ) + { + // InternalVampireLanguage.g:1046:5: (lv_name_1_1= RULE_LOWER_WORD_ID | lv_name_1_2= RULE_SINGLE_QUOTE | lv_name_1_3= ruleVLSRole ) + int alt9=3; + switch ( input.LA(1) ) { + case RULE_LOWER_WORD_ID: + { + alt9=1; + } + break; + case RULE_SINGLE_QUOTE: + { + alt9=2; + } + break; + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + { + alt9=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 9, 0, input); + + throw nvae; + } + + switch (alt9) { + case 1 : + // InternalVampireLanguage.g:1047:6: lv_name_1_1= RULE_LOWER_WORD_ID + { + lv_name_1_1=(Token)match(input,RULE_LOWER_WORD_ID,FOLLOW_18); + + 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"); + + + } + break; + case 2 : + // InternalVampireLanguage.g:1062:6: lv_name_1_2= RULE_SINGLE_QUOTE + { + lv_name_1_2=(Token)match(input,RULE_SINGLE_QUOTE,FOLLOW_18); + + 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"); + + + } + break; + case 3 : + // InternalVampireLanguage.g:1077:6: lv_name_1_3= ruleVLSRole + { + + newCompositeNode(grammarAccess.getVLSAnnotationAccess().getNameVLSRoleParserRuleCall_1_0_2()); + + pushFollow(FOLLOW_18); + lv_name_1_3=ruleVLSRole(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSAnnotationRule()); + } + set( + current, + "name", + lv_name_1_3, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSRole"); + afterParserOrEnumRuleCall(); + + + } + break; + + } + + + } + + + } + break; + + } + + // InternalVampireLanguage.g:1095:3: (otherlv_2= '(' ( (lv_followup_3_0= ruleVLSAnnotationTerms ) ) otherlv_4= ')' )? + int alt11=2; + int LA11_0 = input.LA(1); + + if ( (LA11_0==32) ) { + alt11=1; + } + switch (alt11) { + case 1 : + // InternalVampireLanguage.g:1096:4: otherlv_2= '(' ( (lv_followup_3_0= ruleVLSAnnotationTerms ) ) otherlv_4= ')' + { + otherlv_2=(Token)match(input,32,FOLLOW_19); + + newLeafNode(otherlv_2, grammarAccess.getVLSAnnotationAccess().getLeftParenthesisKeyword_2_0()); + + // InternalVampireLanguage.g:1100:4: ( (lv_followup_3_0= ruleVLSAnnotationTerms ) ) + // InternalVampireLanguage.g:1101:5: (lv_followup_3_0= ruleVLSAnnotationTerms ) + { + // InternalVampireLanguage.g:1101:5: (lv_followup_3_0= ruleVLSAnnotationTerms ) + // InternalVampireLanguage.g:1102:6: lv_followup_3_0= ruleVLSAnnotationTerms + { + + newCompositeNode(grammarAccess.getVLSAnnotationAccess().getFollowupVLSAnnotationTermsParserRuleCall_2_1_0()); + + pushFollow(FOLLOW_15); + lv_followup_3_0=ruleVLSAnnotationTerms(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSAnnotationRule()); + } + set( + current, + "followup", + lv_followup_3_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAnnotationTerms"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_4=(Token)match(input,33,FOLLOW_20); + + newLeafNode(otherlv_4, grammarAccess.getVLSAnnotationAccess().getRightParenthesisKeyword_2_2()); + + + } + break; + + } + + // InternalVampireLanguage.g:1124:3: (otherlv_5= ']' )? + int alt12=2; + int LA12_0 = input.LA(1); + + if ( (LA12_0==30) ) { + alt12=1; + } + switch (alt12) { + case 1 : + // InternalVampireLanguage.g:1125:4: otherlv_5= ']' + { + otherlv_5=(Token)match(input,30,FOLLOW_2); + + newLeafNode(otherlv_5, grammarAccess.getVLSAnnotationAccess().getRightSquareBracketKeyword_3()); + + + } + break; + + } + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSAnnotation" + + + // $ANTLR start "entryRuleVLSAnnotationTerms" + // InternalVampireLanguage.g:1134:1: entryRuleVLSAnnotationTerms returns [EObject current=null] : iv_ruleVLSAnnotationTerms= ruleVLSAnnotationTerms EOF ; + public final EObject entryRuleVLSAnnotationTerms() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVLSAnnotationTerms = null; + + + try { + // InternalVampireLanguage.g:1134:59: (iv_ruleVLSAnnotationTerms= ruleVLSAnnotationTerms EOF ) + // InternalVampireLanguage.g:1135:2: iv_ruleVLSAnnotationTerms= ruleVLSAnnotationTerms EOF + { + newCompositeNode(grammarAccess.getVLSAnnotationTermsRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSAnnotationTerms=ruleVLSAnnotationTerms(); + + state._fsp--; + + current =iv_ruleVLSAnnotationTerms; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSAnnotationTerms" + + + // $ANTLR start "ruleVLSAnnotationTerms" + // InternalVampireLanguage.g:1141:1: ruleVLSAnnotationTerms returns [EObject current=null] : ( ( (lv_terms_0_0= ruleVLSAnnotation ) ) (otherlv_1= ',' ( (lv_terms_2_0= ruleVLSAnnotation ) ) )* ) ; + public final EObject ruleVLSAnnotationTerms() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + EObject lv_terms_0_0 = null; + + EObject lv_terms_2_0 = null; + + + + enterRule(); + + try { + // InternalVampireLanguage.g:1147:2: ( ( ( (lv_terms_0_0= ruleVLSAnnotation ) ) (otherlv_1= ',' ( (lv_terms_2_0= ruleVLSAnnotation ) ) )* ) ) + // InternalVampireLanguage.g:1148:2: ( ( (lv_terms_0_0= ruleVLSAnnotation ) ) (otherlv_1= ',' ( (lv_terms_2_0= ruleVLSAnnotation ) ) )* ) + { + // InternalVampireLanguage.g:1148:2: ( ( (lv_terms_0_0= ruleVLSAnnotation ) ) (otherlv_1= ',' ( (lv_terms_2_0= ruleVLSAnnotation ) ) )* ) + // InternalVampireLanguage.g:1149:3: ( (lv_terms_0_0= ruleVLSAnnotation ) ) (otherlv_1= ',' ( (lv_terms_2_0= ruleVLSAnnotation ) ) )* + { + // InternalVampireLanguage.g:1149:3: ( (lv_terms_0_0= ruleVLSAnnotation ) ) + // InternalVampireLanguage.g:1150:4: (lv_terms_0_0= ruleVLSAnnotation ) + { + // InternalVampireLanguage.g:1150:4: (lv_terms_0_0= ruleVLSAnnotation ) + // InternalVampireLanguage.g:1151:5: lv_terms_0_0= ruleVLSAnnotation + { + + newCompositeNode(grammarAccess.getVLSAnnotationTermsAccess().getTermsVLSAnnotationParserRuleCall_0_0()); + + pushFollow(FOLLOW_21); + lv_terms_0_0=ruleVLSAnnotation(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSAnnotationTermsRule()); + } + add( + current, + "terms", + lv_terms_0_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAnnotation"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // InternalVampireLanguage.g:1168:3: (otherlv_1= ',' ( (lv_terms_2_0= ruleVLSAnnotation ) ) )* + loop13: + do { + int alt13=2; + int LA13_0 = input.LA(1); + + if ( (LA13_0==29) ) { + alt13=1; + } + + + switch (alt13) { + case 1 : + // InternalVampireLanguage.g:1169:4: otherlv_1= ',' ( (lv_terms_2_0= ruleVLSAnnotation ) ) + { + otherlv_1=(Token)match(input,29,FOLLOW_19); + + newLeafNode(otherlv_1, grammarAccess.getVLSAnnotationTermsAccess().getCommaKeyword_1_0()); + + // InternalVampireLanguage.g:1173:4: ( (lv_terms_2_0= ruleVLSAnnotation ) ) + // InternalVampireLanguage.g:1174:5: (lv_terms_2_0= ruleVLSAnnotation ) + { + // InternalVampireLanguage.g:1174:5: (lv_terms_2_0= ruleVLSAnnotation ) + // InternalVampireLanguage.g:1175:6: lv_terms_2_0= ruleVLSAnnotation + { + + newCompositeNode(grammarAccess.getVLSAnnotationTermsAccess().getTermsVLSAnnotationParserRuleCall_1_1_0()); + + pushFollow(FOLLOW_21); + lv_terms_2_0=ruleVLSAnnotation(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSAnnotationTermsRule()); + } + add( + current, + "terms", + lv_terms_2_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAnnotation"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop13; + } + } while (true); + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSAnnotationTerms" + + + // $ANTLR start "entryRuleVLSTerm" + // InternalVampireLanguage.g:1197:1: entryRuleVLSTerm returns [EObject current=null] : iv_ruleVLSTerm= ruleVLSTerm EOF ; + public final EObject entryRuleVLSTerm() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVLSTerm = null; + + + try { + // InternalVampireLanguage.g:1197:48: (iv_ruleVLSTerm= ruleVLSTerm EOF ) + // InternalVampireLanguage.g:1198:2: iv_ruleVLSTerm= ruleVLSTerm EOF + { + newCompositeNode(grammarAccess.getVLSTermRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSTerm=ruleVLSTerm(); + + state._fsp--; + + current =iv_ruleVLSTerm; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSTerm" + + + // $ANTLR start "ruleVLSTerm" + // InternalVampireLanguage.g:1204:1: ruleVLSTerm returns [EObject current=null] : this_VLSBinary_0= ruleVLSBinary ; + public final EObject ruleVLSTerm() throws RecognitionException { + EObject current = null; + + EObject this_VLSBinary_0 = null; + + + + enterRule(); + + try { + // InternalVampireLanguage.g:1210:2: (this_VLSBinary_0= ruleVLSBinary ) + // InternalVampireLanguage.g:1211:2: this_VLSBinary_0= ruleVLSBinary + { + + newCompositeNode(grammarAccess.getVLSTermAccess().getVLSBinaryParserRuleCall()); + + pushFollow(FOLLOW_2); + this_VLSBinary_0=ruleVLSBinary(); + + state._fsp--; + + + current = this_VLSBinary_0; + afterParserOrEnumRuleCall(); + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSTerm" + + + // $ANTLR start "entryRuleVLSBinary" + // InternalVampireLanguage.g:1222:1: entryRuleVLSBinary returns [EObject current=null] : iv_ruleVLSBinary= ruleVLSBinary EOF ; + public final EObject entryRuleVLSBinary() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVLSBinary = null; + + + try { + // InternalVampireLanguage.g:1222:50: (iv_ruleVLSBinary= ruleVLSBinary EOF ) + // InternalVampireLanguage.g:1223:2: iv_ruleVLSBinary= ruleVLSBinary EOF + { + newCompositeNode(grammarAccess.getVLSBinaryRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSBinary=ruleVLSBinary(); + + state._fsp--; + + current =iv_ruleVLSBinary; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSBinary" + + + // $ANTLR start "ruleVLSBinary" + // InternalVampireLanguage.g:1229: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 ) ) )+ )? ) ; + public final EObject ruleVLSBinary() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_8=null; + Token otherlv_10=null; + Token otherlv_12=null; + Token otherlv_15=null; + Token otherlv_18=null; + EObject this_VLSUnitaryFormula_0 = null; + + EObject lv_right_13_0 = null; + + EObject lv_right_16_0 = null; + + EObject lv_right_19_0 = null; + + + + enterRule(); + + try { + // InternalVampireLanguage.g:1235: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 ) ) )+ )? ) ) + // InternalVampireLanguage.g:1236: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 ) ) )+ )? ) + { + // InternalVampireLanguage.g:1236: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 ) ) )+ )? ) + // InternalVampireLanguage.g:1237: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 ) ) )+ )? + { + + newCompositeNode(grammarAccess.getVLSBinaryAccess().getVLSUnitaryFormulaParserRuleCall_0()); + + pushFollow(FOLLOW_22); + this_VLSUnitaryFormula_0=ruleVLSUnitaryFormula(); + + state._fsp--; + + + current = this_VLSUnitaryFormula_0; + afterParserOrEnumRuleCall(); + + // InternalVampireLanguage.g:1245: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 ) ) )+ )? + int alt17=4; + switch ( input.LA(1) ) { + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + { + alt17=1; + } + break; + case 57: + { + alt17=2; + } + break; + case 58: + { + alt17=3; + } + break; + } + + switch (alt17) { + case 1 : + // InternalVampireLanguage.g:1246:4: ( ( ( () otherlv_2= '<=>' ) | ( () otherlv_4= '=>' ) | ( () otherlv_6= '<=' ) | ( () otherlv_8= '<~>' ) | ( () otherlv_10= '~|' ) | ( () otherlv_12= '~&' ) ) ( (lv_right_13_0= ruleVLSUnitaryFormula ) ) ) + { + // InternalVampireLanguage.g:1246:4: ( ( ( () otherlv_2= '<=>' ) | ( () otherlv_4= '=>' ) | ( () otherlv_6= '<=' ) | ( () otherlv_8= '<~>' ) | ( () otherlv_10= '~|' ) | ( () otherlv_12= '~&' ) ) ( (lv_right_13_0= ruleVLSUnitaryFormula ) ) ) + // InternalVampireLanguage.g:1247:5: ( ( () otherlv_2= '<=>' ) | ( () otherlv_4= '=>' ) | ( () otherlv_6= '<=' ) | ( () otherlv_8= '<~>' ) | ( () otherlv_10= '~|' ) | ( () otherlv_12= '~&' ) ) ( (lv_right_13_0= ruleVLSUnitaryFormula ) ) + { + // InternalVampireLanguage.g:1247:5: ( ( () otherlv_2= '<=>' ) | ( () otherlv_4= '=>' ) | ( () otherlv_6= '<=' ) | ( () otherlv_8= '<~>' ) | ( () otherlv_10= '~|' ) | ( () otherlv_12= '~&' ) ) + int alt14=6; + switch ( input.LA(1) ) { + case 51: + { + alt14=1; + } + break; + case 52: + { + alt14=2; + } + break; + case 53: + { + alt14=3; + } + break; + case 54: + { + alt14=4; + } + break; + case 55: + { + alt14=5; + } + break; + case 56: + { + alt14=6; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 14, 0, input); + + throw nvae; + } + + switch (alt14) { + case 1 : + // InternalVampireLanguage.g:1248:6: ( () otherlv_2= '<=>' ) + { + // InternalVampireLanguage.g:1248:6: ( () otherlv_2= '<=>' ) + // InternalVampireLanguage.g:1249:7: () otherlv_2= '<=>' + { + // InternalVampireLanguage.g:1249:7: () + // InternalVampireLanguage.g:1250:8: + { + + current = forceCreateModelElementAndSet( + grammarAccess.getVLSBinaryAccess().getVLSEquivalentLeftAction_1_0_0_0_0(), + current); + + + } + + otherlv_2=(Token)match(input,51,FOLLOW_12); + + newLeafNode(otherlv_2, grammarAccess.getVLSBinaryAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_1_0_0_0_1()); + + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:1262:6: ( () otherlv_4= '=>' ) + { + // InternalVampireLanguage.g:1262:6: ( () otherlv_4= '=>' ) + // InternalVampireLanguage.g:1263:7: () otherlv_4= '=>' + { + // InternalVampireLanguage.g:1263:7: () + // InternalVampireLanguage.g:1264:8: + { + + current = forceCreateModelElementAndSet( + grammarAccess.getVLSBinaryAccess().getVLSImpliesLeftAction_1_0_0_1_0(), + current); + + + } + + otherlv_4=(Token)match(input,52,FOLLOW_12); + + newLeafNode(otherlv_4, grammarAccess.getVLSBinaryAccess().getEqualsSignGreaterThanSignKeyword_1_0_0_1_1()); + + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:1276:6: ( () otherlv_6= '<=' ) + { + // InternalVampireLanguage.g:1276:6: ( () otherlv_6= '<=' ) + // InternalVampireLanguage.g:1277:7: () otherlv_6= '<=' + { + // InternalVampireLanguage.g:1277:7: () + // InternalVampireLanguage.g:1278:8: + { + + current = forceCreateModelElementAndSet( + grammarAccess.getVLSBinaryAccess().getVLSRevImpliesLeftAction_1_0_0_2_0(), + current); + + + } + + otherlv_6=(Token)match(input,53,FOLLOW_12); + + newLeafNode(otherlv_6, grammarAccess.getVLSBinaryAccess().getLessThanSignEqualsSignKeyword_1_0_0_2_1()); + + + } + + + } + break; + case 4 : + // InternalVampireLanguage.g:1290:6: ( () otherlv_8= '<~>' ) + { + // InternalVampireLanguage.g:1290:6: ( () otherlv_8= '<~>' ) + // InternalVampireLanguage.g:1291:7: () otherlv_8= '<~>' + { + // InternalVampireLanguage.g:1291:7: () + // InternalVampireLanguage.g:1292:8: + { + + current = forceCreateModelElementAndSet( + grammarAccess.getVLSBinaryAccess().getVLSXnorLeftAction_1_0_0_3_0(), + current); + + + } + + otherlv_8=(Token)match(input,54,FOLLOW_12); + + newLeafNode(otherlv_8, grammarAccess.getVLSBinaryAccess().getLessThanSignTildeGreaterThanSignKeyword_1_0_0_3_1()); + + + } + + + } + break; + case 5 : + // InternalVampireLanguage.g:1304:6: ( () otherlv_10= '~|' ) + { + // InternalVampireLanguage.g:1304:6: ( () otherlv_10= '~|' ) + // InternalVampireLanguage.g:1305:7: () otherlv_10= '~|' + { + // InternalVampireLanguage.g:1305:7: () + // InternalVampireLanguage.g:1306:8: + { + + current = forceCreateModelElementAndSet( + grammarAccess.getVLSBinaryAccess().getVLSNorLeftAction_1_0_0_4_0(), + current); + + + } + + otherlv_10=(Token)match(input,55,FOLLOW_12); + + newLeafNode(otherlv_10, grammarAccess.getVLSBinaryAccess().getTildeVerticalLineKeyword_1_0_0_4_1()); + + + } + + + } + break; + case 6 : + // InternalVampireLanguage.g:1318:6: ( () otherlv_12= '~&' ) + { + // InternalVampireLanguage.g:1318:6: ( () otherlv_12= '~&' ) + // InternalVampireLanguage.g:1319:7: () otherlv_12= '~&' + { + // InternalVampireLanguage.g:1319:7: () + // InternalVampireLanguage.g:1320:8: + { + + current = forceCreateModelElementAndSet( + grammarAccess.getVLSBinaryAccess().getVLSNandLeftAction_1_0_0_5_0(), + current); + + + } + + otherlv_12=(Token)match(input,56,FOLLOW_12); + + newLeafNode(otherlv_12, grammarAccess.getVLSBinaryAccess().getTildeAmpersandKeyword_1_0_0_5_1()); + + + } + + + } + break; + + } + + // InternalVampireLanguage.g:1332:5: ( (lv_right_13_0= ruleVLSUnitaryFormula ) ) + // InternalVampireLanguage.g:1333:6: (lv_right_13_0= ruleVLSUnitaryFormula ) + { + // InternalVampireLanguage.g:1333:6: (lv_right_13_0= ruleVLSUnitaryFormula ) + // InternalVampireLanguage.g:1334:7: lv_right_13_0= ruleVLSUnitaryFormula + { + + newCompositeNode(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_0_1_0()); + + pushFollow(FOLLOW_2); + lv_right_13_0=ruleVLSUnitaryFormula(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSBinaryRule()); + } + set( + current, + "right", + lv_right_13_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnitaryFormula"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:1353:4: ( () otherlv_15= '&' ( (lv_right_16_0= ruleVLSUnitaryFormula ) ) )+ + { + // InternalVampireLanguage.g:1353:4: ( () otherlv_15= '&' ( (lv_right_16_0= ruleVLSUnitaryFormula ) ) )+ + int cnt15=0; + loop15: + do { + int alt15=2; + int LA15_0 = input.LA(1); + + if ( (LA15_0==57) ) { + alt15=1; + } + + + switch (alt15) { + case 1 : + // InternalVampireLanguage.g:1354:5: () otherlv_15= '&' ( (lv_right_16_0= ruleVLSUnitaryFormula ) ) + { + // InternalVampireLanguage.g:1354:5: () + // InternalVampireLanguage.g:1355:6: + { + + current = forceCreateModelElementAndSet( + grammarAccess.getVLSBinaryAccess().getVLSAndLeftAction_1_1_0(), + current); + + + } + + otherlv_15=(Token)match(input,57,FOLLOW_12); + + newLeafNode(otherlv_15, grammarAccess.getVLSBinaryAccess().getAmpersandKeyword_1_1_1()); + + // InternalVampireLanguage.g:1365:5: ( (lv_right_16_0= ruleVLSUnitaryFormula ) ) + // InternalVampireLanguage.g:1366:6: (lv_right_16_0= ruleVLSUnitaryFormula ) + { + // InternalVampireLanguage.g:1366:6: (lv_right_16_0= ruleVLSUnitaryFormula ) + // InternalVampireLanguage.g:1367:7: lv_right_16_0= ruleVLSUnitaryFormula + { + + newCompositeNode(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_1_2_0()); + + pushFollow(FOLLOW_23); + lv_right_16_0=ruleVLSUnitaryFormula(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSBinaryRule()); + } + set( + current, + "right", + lv_right_16_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnitaryFormula"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + if ( cnt15 >= 1 ) break loop15; + EarlyExitException eee = + new EarlyExitException(15, input); + throw eee; + } + cnt15++; + } while (true); + + + } + break; + case 3 : + // InternalVampireLanguage.g:1386:4: ( () otherlv_18= '|' ( (lv_right_19_0= ruleVLSUnitaryFormula ) ) )+ + { + // InternalVampireLanguage.g:1386:4: ( () otherlv_18= '|' ( (lv_right_19_0= ruleVLSUnitaryFormula ) ) )+ + int cnt16=0; + loop16: + do { + int alt16=2; + int LA16_0 = input.LA(1); + + if ( (LA16_0==58) ) { + alt16=1; + } + + + switch (alt16) { + case 1 : + // InternalVampireLanguage.g:1387:5: () otherlv_18= '|' ( (lv_right_19_0= ruleVLSUnitaryFormula ) ) + { + // InternalVampireLanguage.g:1387:5: () + // InternalVampireLanguage.g:1388:6: + { + + current = forceCreateModelElementAndSet( + grammarAccess.getVLSBinaryAccess().getVLSOrLeftAction_1_2_0(), + current); + + + } + + otherlv_18=(Token)match(input,58,FOLLOW_12); + + newLeafNode(otherlv_18, grammarAccess.getVLSBinaryAccess().getVerticalLineKeyword_1_2_1()); + + // InternalVampireLanguage.g:1398:5: ( (lv_right_19_0= ruleVLSUnitaryFormula ) ) + // InternalVampireLanguage.g:1399:6: (lv_right_19_0= ruleVLSUnitaryFormula ) + { + // InternalVampireLanguage.g:1399:6: (lv_right_19_0= ruleVLSUnitaryFormula ) + // InternalVampireLanguage.g:1400:7: lv_right_19_0= ruleVLSUnitaryFormula + { + + newCompositeNode(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_2_2_0()); + + pushFollow(FOLLOW_24); + lv_right_19_0=ruleVLSUnitaryFormula(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSBinaryRule()); + } + set( + current, + "right", + lv_right_19_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnitaryFormula"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + if ( cnt16 >= 1 ) break loop16; + EarlyExitException eee = + new EarlyExitException(16, input); + throw eee; + } + cnt16++; + } while (true); + + + } + break; + + } + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSBinary" + + + // $ANTLR start "entryRuleVLSUnitaryFormula" + // InternalVampireLanguage.g:1423:1: entryRuleVLSUnitaryFormula returns [EObject current=null] : iv_ruleVLSUnitaryFormula= ruleVLSUnitaryFormula EOF ; + public final EObject entryRuleVLSUnitaryFormula() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVLSUnitaryFormula = null; + + + try { + // InternalVampireLanguage.g:1423:58: (iv_ruleVLSUnitaryFormula= ruleVLSUnitaryFormula EOF ) + // InternalVampireLanguage.g:1424:2: iv_ruleVLSUnitaryFormula= ruleVLSUnitaryFormula EOF + { + newCompositeNode(grammarAccess.getVLSUnitaryFormulaRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSUnitaryFormula=ruleVLSUnitaryFormula(); + + state._fsp--; + + current =iv_ruleVLSUnitaryFormula; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSUnitaryFormula" + + + // $ANTLR start "ruleVLSUnitaryFormula" + // InternalVampireLanguage.g:1430: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= ')' ) ) ; + public final EObject ruleVLSUnitaryFormula() throws RecognitionException { + EObject current = null; + + Token otherlv_4=null; + Token otherlv_6=null; + EObject this_VLSUniversalQuantifier_0 = null; + + EObject this_VLSExistentialQuantifier_1 = null; + + EObject this_VLSUnaryNegation_2 = null; + + EObject this_VLSUnaryInfix_3 = null; + + EObject this_VLSTerm_5 = null; + + + + enterRule(); + + try { + // InternalVampireLanguage.g:1436: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= ')' ) ) ) + // InternalVampireLanguage.g:1437: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= ')' ) ) + { + // InternalVampireLanguage.g:1437: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= ')' ) ) + int alt18=5; + switch ( input.LA(1) ) { + case 59: + { + alt18=1; + } + break; + case 61: + { + alt18=2; + } + break; + case 62: + { + alt18=3; + } + break; + case RULE_SINGLE_QUOTE: + case RULE_LOWER_WORD_ID: + case RULE_SIGNED_LITERAL: + case RULE_DOLLAR_ID: + case RULE_DOUBLE_DOLLAR_ID: + case RULE_UPPER_WORD_ID: + case RULE_SIGNED_REAL_ID: + case RULE_SIGNED_RAT_ID: + case RULE_DOUBLE_QUOTE: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + case 66: + case 67: + case 68: + { + alt18=4; + } + break; + case 32: + { + alt18=5; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 18, 0, input); + + throw nvae; + } + + switch (alt18) { + case 1 : + // InternalVampireLanguage.g:1438:3: this_VLSUniversalQuantifier_0= ruleVLSUniversalQuantifier + { + + newCompositeNode(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUniversalQuantifierParserRuleCall_0()); + + pushFollow(FOLLOW_2); + this_VLSUniversalQuantifier_0=ruleVLSUniversalQuantifier(); + + state._fsp--; + + + current = this_VLSUniversalQuantifier_0; + afterParserOrEnumRuleCall(); + + + } + break; + case 2 : + // InternalVampireLanguage.g:1447:3: this_VLSExistentialQuantifier_1= ruleVLSExistentialQuantifier + { + + newCompositeNode(grammarAccess.getVLSUnitaryFormulaAccess().getVLSExistentialQuantifierParserRuleCall_1()); + + pushFollow(FOLLOW_2); + this_VLSExistentialQuantifier_1=ruleVLSExistentialQuantifier(); + + state._fsp--; + + + current = this_VLSExistentialQuantifier_1; + afterParserOrEnumRuleCall(); + + + } + break; + case 3 : + // InternalVampireLanguage.g:1456:3: this_VLSUnaryNegation_2= ruleVLSUnaryNegation + { + + newCompositeNode(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUnaryNegationParserRuleCall_2()); + + pushFollow(FOLLOW_2); + this_VLSUnaryNegation_2=ruleVLSUnaryNegation(); + + state._fsp--; + + + current = this_VLSUnaryNegation_2; + afterParserOrEnumRuleCall(); + + + } + break; + case 4 : + // InternalVampireLanguage.g:1465:3: this_VLSUnaryInfix_3= ruleVLSUnaryInfix + { + + newCompositeNode(grammarAccess.getVLSUnitaryFormulaAccess().getVLSUnaryInfixParserRuleCall_3()); + + pushFollow(FOLLOW_2); + this_VLSUnaryInfix_3=ruleVLSUnaryInfix(); + + state._fsp--; + + + current = this_VLSUnaryInfix_3; + afterParserOrEnumRuleCall(); + + + } + break; + case 5 : + // InternalVampireLanguage.g:1474:3: (otherlv_4= '(' this_VLSTerm_5= ruleVLSTerm otherlv_6= ')' ) + { + // InternalVampireLanguage.g:1474:3: (otherlv_4= '(' this_VLSTerm_5= ruleVLSTerm otherlv_6= ')' ) + // InternalVampireLanguage.g:1475:4: otherlv_4= '(' this_VLSTerm_5= ruleVLSTerm otherlv_6= ')' + { + otherlv_4=(Token)match(input,32,FOLLOW_12); + + newLeafNode(otherlv_4, grammarAccess.getVLSUnitaryFormulaAccess().getLeftParenthesisKeyword_4_0()); + + + newCompositeNode(grammarAccess.getVLSUnitaryFormulaAccess().getVLSTermParserRuleCall_4_1()); + + pushFollow(FOLLOW_15); + this_VLSTerm_5=ruleVLSTerm(); + + state._fsp--; + + + current = this_VLSTerm_5; + afterParserOrEnumRuleCall(); + + otherlv_6=(Token)match(input,33,FOLLOW_2); + + newLeafNode(otherlv_6, grammarAccess.getVLSUnitaryFormulaAccess().getRightParenthesisKeyword_4_2()); + + + } + + + } + break; + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSUnitaryFormula" + + + // $ANTLR start "entryRuleVLSUniversalQuantifier" + // InternalVampireLanguage.g:1496:1: entryRuleVLSUniversalQuantifier returns [EObject current=null] : iv_ruleVLSUniversalQuantifier= ruleVLSUniversalQuantifier EOF ; + public final EObject entryRuleVLSUniversalQuantifier() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVLSUniversalQuantifier = null; + + + try { + // InternalVampireLanguage.g:1496:63: (iv_ruleVLSUniversalQuantifier= ruleVLSUniversalQuantifier EOF ) + // InternalVampireLanguage.g:1497:2: iv_ruleVLSUniversalQuantifier= ruleVLSUniversalQuantifier EOF + { + newCompositeNode(grammarAccess.getVLSUniversalQuantifierRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSUniversalQuantifier=ruleVLSUniversalQuantifier(); + + state._fsp--; + + current =iv_ruleVLSUniversalQuantifier; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSUniversalQuantifier" + + + // $ANTLR start "ruleVLSUniversalQuantifier" + // InternalVampireLanguage.g:1503: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 ) ) ) ; + public final EObject ruleVLSUniversalQuantifier() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_7=null; + EObject lv_variables_3_0 = null; + + EObject lv_variables_5_0 = null; + + EObject lv_operand_8_0 = null; + + + + enterRule(); + + try { + // InternalVampireLanguage.g:1509: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 ) ) ) ) + // InternalVampireLanguage.g:1510: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 ) ) ) + { + // InternalVampireLanguage.g:1510: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 ) ) ) + // InternalVampireLanguage.g:1511: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 ) ) + { + // InternalVampireLanguage.g:1511:3: () + // InternalVampireLanguage.g:1512:4: + { + + current = forceCreateModelElement( + grammarAccess.getVLSUniversalQuantifierAccess().getVLSUniversalQuantifierAction_0(), + current); + + + } + + // InternalVampireLanguage.g:1518:3: (otherlv_1= '!' otherlv_2= '[' ( (lv_variables_3_0= ruleVLSVariable ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )* otherlv_6= ']' otherlv_7= ':' ) + // InternalVampireLanguage.g:1519:4: otherlv_1= '!' otherlv_2= '[' ( (lv_variables_3_0= ruleVLSVariable ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )* otherlv_6= ']' otherlv_7= ':' + { + otherlv_1=(Token)match(input,59,FOLLOW_25); + + newLeafNode(otherlv_1, grammarAccess.getVLSUniversalQuantifierAccess().getExclamationMarkKeyword_1_0()); + + otherlv_2=(Token)match(input,50,FOLLOW_26); + + newLeafNode(otherlv_2, grammarAccess.getVLSUniversalQuantifierAccess().getLeftSquareBracketKeyword_1_1()); + + // InternalVampireLanguage.g:1527:4: ( (lv_variables_3_0= ruleVLSVariable ) ) + // InternalVampireLanguage.g:1528:5: (lv_variables_3_0= ruleVLSVariable ) + { + // InternalVampireLanguage.g:1528:5: (lv_variables_3_0= ruleVLSVariable ) + // InternalVampireLanguage.g:1529:6: lv_variables_3_0= ruleVLSVariable + { + + newCompositeNode(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_2_0()); + + pushFollow(FOLLOW_7); + lv_variables_3_0=ruleVLSVariable(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSUniversalQuantifierRule()); + } + add( + current, + "variables", + lv_variables_3_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSVariable"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // InternalVampireLanguage.g:1546:4: (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )* + loop19: + do { + int alt19=2; + int LA19_0 = input.LA(1); + + if ( (LA19_0==29) ) { + alt19=1; + } + + + switch (alt19) { + case 1 : + // InternalVampireLanguage.g:1547:5: otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) + { + otherlv_4=(Token)match(input,29,FOLLOW_26); + + newLeafNode(otherlv_4, grammarAccess.getVLSUniversalQuantifierAccess().getCommaKeyword_1_3_0()); + + // InternalVampireLanguage.g:1551:5: ( (lv_variables_5_0= ruleVLSVariable ) ) + // InternalVampireLanguage.g:1552:6: (lv_variables_5_0= ruleVLSVariable ) + { + // InternalVampireLanguage.g:1552:6: (lv_variables_5_0= ruleVLSVariable ) + // InternalVampireLanguage.g:1553:7: lv_variables_5_0= ruleVLSVariable + { + + newCompositeNode(grammarAccess.getVLSUniversalQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_3_1_0()); + + pushFollow(FOLLOW_7); + lv_variables_5_0=ruleVLSVariable(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSUniversalQuantifierRule()); + } + add( + current, + "variables", + lv_variables_5_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSVariable"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop19; + } + } while (true); + + otherlv_6=(Token)match(input,30,FOLLOW_27); + + newLeafNode(otherlv_6, grammarAccess.getVLSUniversalQuantifierAccess().getRightSquareBracketKeyword_1_4()); + + otherlv_7=(Token)match(input,60,FOLLOW_12); + + newLeafNode(otherlv_7, grammarAccess.getVLSUniversalQuantifierAccess().getColonKeyword_1_5()); + + + } + + // InternalVampireLanguage.g:1580:3: ( (lv_operand_8_0= ruleVLSUnitaryFormula ) ) + // InternalVampireLanguage.g:1581:4: (lv_operand_8_0= ruleVLSUnitaryFormula ) + { + // InternalVampireLanguage.g:1581:4: (lv_operand_8_0= ruleVLSUnitaryFormula ) + // InternalVampireLanguage.g:1582:5: lv_operand_8_0= ruleVLSUnitaryFormula + { + + newCompositeNode(grammarAccess.getVLSUniversalQuantifierAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0()); + + pushFollow(FOLLOW_2); + lv_operand_8_0=ruleVLSUnitaryFormula(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSUniversalQuantifierRule()); + } + set( + current, + "operand", + lv_operand_8_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnitaryFormula"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSUniversalQuantifier" + + + // $ANTLR start "entryRuleVLSExistentialQuantifier" + // InternalVampireLanguage.g:1603:1: entryRuleVLSExistentialQuantifier returns [EObject current=null] : iv_ruleVLSExistentialQuantifier= ruleVLSExistentialQuantifier EOF ; + public final EObject entryRuleVLSExistentialQuantifier() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVLSExistentialQuantifier = null; + + + try { + // InternalVampireLanguage.g:1603:65: (iv_ruleVLSExistentialQuantifier= ruleVLSExistentialQuantifier EOF ) + // InternalVampireLanguage.g:1604:2: iv_ruleVLSExistentialQuantifier= ruleVLSExistentialQuantifier EOF + { + newCompositeNode(grammarAccess.getVLSExistentialQuantifierRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSExistentialQuantifier=ruleVLSExistentialQuantifier(); + + state._fsp--; + + current =iv_ruleVLSExistentialQuantifier; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSExistentialQuantifier" + + + // $ANTLR start "ruleVLSExistentialQuantifier" + // InternalVampireLanguage.g:1610: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 ) ) ) ; + public final EObject ruleVLSExistentialQuantifier() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_7=null; + EObject lv_variables_3_0 = null; + + EObject lv_variables_5_0 = null; + + EObject lv_operand_8_0 = null; + + + + enterRule(); + + try { + // InternalVampireLanguage.g:1616: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 ) ) ) ) + // InternalVampireLanguage.g:1617: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 ) ) ) + { + // InternalVampireLanguage.g:1617: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 ) ) ) + // InternalVampireLanguage.g:1618: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 ) ) + { + // InternalVampireLanguage.g:1618:3: () + // InternalVampireLanguage.g:1619:4: + { + + current = forceCreateModelElement( + grammarAccess.getVLSExistentialQuantifierAccess().getVLSExistentialQuantifierAction_0(), + current); + + + } + + // InternalVampireLanguage.g:1625:3: (otherlv_1= '?' otherlv_2= '[' ( (lv_variables_3_0= ruleVLSVariable ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )* otherlv_6= ']' otherlv_7= ':' ) + // InternalVampireLanguage.g:1626:4: otherlv_1= '?' otherlv_2= '[' ( (lv_variables_3_0= ruleVLSVariable ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )* otherlv_6= ']' otherlv_7= ':' + { + otherlv_1=(Token)match(input,61,FOLLOW_25); + + newLeafNode(otherlv_1, grammarAccess.getVLSExistentialQuantifierAccess().getQuestionMarkKeyword_1_0()); + + otherlv_2=(Token)match(input,50,FOLLOW_26); + + newLeafNode(otherlv_2, grammarAccess.getVLSExistentialQuantifierAccess().getLeftSquareBracketKeyword_1_1()); + + // InternalVampireLanguage.g:1634:4: ( (lv_variables_3_0= ruleVLSVariable ) ) + // InternalVampireLanguage.g:1635:5: (lv_variables_3_0= ruleVLSVariable ) + { + // InternalVampireLanguage.g:1635:5: (lv_variables_3_0= ruleVLSVariable ) + // InternalVampireLanguage.g:1636:6: lv_variables_3_0= ruleVLSVariable + { + + newCompositeNode(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_2_0()); + + pushFollow(FOLLOW_7); + lv_variables_3_0=ruleVLSVariable(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSExistentialQuantifierRule()); + } + add( + current, + "variables", + lv_variables_3_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSVariable"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // InternalVampireLanguage.g:1653:4: (otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) )* + loop20: + do { + int alt20=2; + int LA20_0 = input.LA(1); + + if ( (LA20_0==29) ) { + alt20=1; + } + + + switch (alt20) { + case 1 : + // InternalVampireLanguage.g:1654:5: otherlv_4= ',' ( (lv_variables_5_0= ruleVLSVariable ) ) + { + otherlv_4=(Token)match(input,29,FOLLOW_26); + + newLeafNode(otherlv_4, grammarAccess.getVLSExistentialQuantifierAccess().getCommaKeyword_1_3_0()); + + // InternalVampireLanguage.g:1658:5: ( (lv_variables_5_0= ruleVLSVariable ) ) + // InternalVampireLanguage.g:1659:6: (lv_variables_5_0= ruleVLSVariable ) + { + // InternalVampireLanguage.g:1659:6: (lv_variables_5_0= ruleVLSVariable ) + // InternalVampireLanguage.g:1660:7: lv_variables_5_0= ruleVLSVariable + { + + newCompositeNode(grammarAccess.getVLSExistentialQuantifierAccess().getVariablesVLSVariableParserRuleCall_1_3_1_0()); + + pushFollow(FOLLOW_7); + lv_variables_5_0=ruleVLSVariable(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSExistentialQuantifierRule()); + } + add( + current, + "variables", + lv_variables_5_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSVariable"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop20; + } + } while (true); + + otherlv_6=(Token)match(input,30,FOLLOW_27); + + newLeafNode(otherlv_6, grammarAccess.getVLSExistentialQuantifierAccess().getRightSquareBracketKeyword_1_4()); + + otherlv_7=(Token)match(input,60,FOLLOW_12); + + newLeafNode(otherlv_7, grammarAccess.getVLSExistentialQuantifierAccess().getColonKeyword_1_5()); + + + } + + // InternalVampireLanguage.g:1687:3: ( (lv_operand_8_0= ruleVLSUnitaryFormula ) ) + // InternalVampireLanguage.g:1688:4: (lv_operand_8_0= ruleVLSUnitaryFormula ) + { + // InternalVampireLanguage.g:1688:4: (lv_operand_8_0= ruleVLSUnitaryFormula ) + // InternalVampireLanguage.g:1689:5: lv_operand_8_0= ruleVLSUnitaryFormula + { + + newCompositeNode(grammarAccess.getVLSExistentialQuantifierAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0()); + + pushFollow(FOLLOW_2); + lv_operand_8_0=ruleVLSUnitaryFormula(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSExistentialQuantifierRule()); + } + set( + current, + "operand", + lv_operand_8_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnitaryFormula"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSExistentialQuantifier" + + + // $ANTLR start "entryRuleVLSUnaryNegation" + // InternalVampireLanguage.g:1710:1: entryRuleVLSUnaryNegation returns [EObject current=null] : iv_ruleVLSUnaryNegation= ruleVLSUnaryNegation EOF ; + public final EObject entryRuleVLSUnaryNegation() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVLSUnaryNegation = null; + + + try { + // InternalVampireLanguage.g:1710:57: (iv_ruleVLSUnaryNegation= ruleVLSUnaryNegation EOF ) + // InternalVampireLanguage.g:1711:2: iv_ruleVLSUnaryNegation= ruleVLSUnaryNegation EOF + { + newCompositeNode(grammarAccess.getVLSUnaryNegationRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSUnaryNegation=ruleVLSUnaryNegation(); + + state._fsp--; + + current =iv_ruleVLSUnaryNegation; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSUnaryNegation" + + + // $ANTLR start "ruleVLSUnaryNegation" + // InternalVampireLanguage.g:1717:1: ruleVLSUnaryNegation returns [EObject current=null] : ( () otherlv_1= '~' ( (lv_operand_2_0= ruleVLSUnitaryFormula ) ) ) ; + public final EObject ruleVLSUnaryNegation() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + EObject lv_operand_2_0 = null; + + + + enterRule(); + + try { + // InternalVampireLanguage.g:1723:2: ( ( () otherlv_1= '~' ( (lv_operand_2_0= ruleVLSUnitaryFormula ) ) ) ) + // InternalVampireLanguage.g:1724:2: ( () otherlv_1= '~' ( (lv_operand_2_0= ruleVLSUnitaryFormula ) ) ) + { + // InternalVampireLanguage.g:1724:2: ( () otherlv_1= '~' ( (lv_operand_2_0= ruleVLSUnitaryFormula ) ) ) + // InternalVampireLanguage.g:1725:3: () otherlv_1= '~' ( (lv_operand_2_0= ruleVLSUnitaryFormula ) ) + { + // InternalVampireLanguage.g:1725:3: () + // InternalVampireLanguage.g:1726:4: + { + + current = forceCreateModelElement( + grammarAccess.getVLSUnaryNegationAccess().getVLSUnaryNegationAction_0(), + current); + + + } + + otherlv_1=(Token)match(input,62,FOLLOW_12); + + newLeafNode(otherlv_1, grammarAccess.getVLSUnaryNegationAccess().getTildeKeyword_1()); + + // InternalVampireLanguage.g:1736:3: ( (lv_operand_2_0= ruleVLSUnitaryFormula ) ) + // InternalVampireLanguage.g:1737:4: (lv_operand_2_0= ruleVLSUnitaryFormula ) + { + // InternalVampireLanguage.g:1737:4: (lv_operand_2_0= ruleVLSUnitaryFormula ) + // InternalVampireLanguage.g:1738:5: lv_operand_2_0= ruleVLSUnitaryFormula + { + + newCompositeNode(grammarAccess.getVLSUnaryNegationAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0()); + + pushFollow(FOLLOW_2); + lv_operand_2_0=ruleVLSUnitaryFormula(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSUnaryNegationRule()); + } + set( + current, + "operand", + lv_operand_2_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnitaryFormula"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSUnaryNegation" + + + // $ANTLR start "entryRuleVLSUnaryInfix" + // InternalVampireLanguage.g:1759:1: entryRuleVLSUnaryInfix returns [EObject current=null] : iv_ruleVLSUnaryInfix= ruleVLSUnaryInfix EOF ; + public final EObject entryRuleVLSUnaryInfix() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVLSUnaryInfix = null; + + + try { + // InternalVampireLanguage.g:1759:54: (iv_ruleVLSUnaryInfix= ruleVLSUnaryInfix EOF ) + // InternalVampireLanguage.g:1760:2: iv_ruleVLSUnaryInfix= ruleVLSUnaryInfix EOF + { + newCompositeNode(grammarAccess.getVLSUnaryInfixRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSUnaryInfix=ruleVLSUnaryInfix(); + + state._fsp--; + + current =iv_ruleVLSUnaryInfix; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSUnaryInfix" + + + // $ANTLR start "ruleVLSUnaryInfix" + // InternalVampireLanguage.g:1766:1: ruleVLSUnaryInfix returns [EObject current=null] : (this_VLSAtomic_0= ruleVLSAtomic ( ( ( () otherlv_2= '!=' ) | ( () otherlv_4= '=' ) | ( () otherlv_6= ':=' ) ) ( (lv_right_7_0= ruleVLSAtomic ) ) )? ) ; + public final EObject ruleVLSUnaryInfix() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + EObject this_VLSAtomic_0 = null; + + EObject lv_right_7_0 = null; + + + + enterRule(); + + try { + // InternalVampireLanguage.g:1772:2: ( (this_VLSAtomic_0= ruleVLSAtomic ( ( ( () otherlv_2= '!=' ) | ( () otherlv_4= '=' ) | ( () otherlv_6= ':=' ) ) ( (lv_right_7_0= ruleVLSAtomic ) ) )? ) ) + // InternalVampireLanguage.g:1773:2: (this_VLSAtomic_0= ruleVLSAtomic ( ( ( () otherlv_2= '!=' ) | ( () otherlv_4= '=' ) | ( () otherlv_6= ':=' ) ) ( (lv_right_7_0= ruleVLSAtomic ) ) )? ) + { + // InternalVampireLanguage.g:1773:2: (this_VLSAtomic_0= ruleVLSAtomic ( ( ( () otherlv_2= '!=' ) | ( () otherlv_4= '=' ) | ( () otherlv_6= ':=' ) ) ( (lv_right_7_0= ruleVLSAtomic ) ) )? ) + // InternalVampireLanguage.g:1774:3: this_VLSAtomic_0= ruleVLSAtomic ( ( ( () otherlv_2= '!=' ) | ( () otherlv_4= '=' ) | ( () otherlv_6= ':=' ) ) ( (lv_right_7_0= ruleVLSAtomic ) ) )? + { + + newCompositeNode(grammarAccess.getVLSUnaryInfixAccess().getVLSAtomicParserRuleCall_0()); + + pushFollow(FOLLOW_28); + this_VLSAtomic_0=ruleVLSAtomic(); + + state._fsp--; + + + current = this_VLSAtomic_0; + afterParserOrEnumRuleCall(); + + // InternalVampireLanguage.g:1782:3: ( ( ( () otherlv_2= '!=' ) | ( () otherlv_4= '=' ) | ( () otherlv_6= ':=' ) ) ( (lv_right_7_0= ruleVLSAtomic ) ) )? + int alt22=2; + int LA22_0 = input.LA(1); + + if ( ((LA22_0>=63 && LA22_0<=65)) ) { + alt22=1; + } + switch (alt22) { + case 1 : + // InternalVampireLanguage.g:1783:4: ( ( () otherlv_2= '!=' ) | ( () otherlv_4= '=' ) | ( () otherlv_6= ':=' ) ) ( (lv_right_7_0= ruleVLSAtomic ) ) + { + // InternalVampireLanguage.g:1783:4: ( ( () otherlv_2= '!=' ) | ( () otherlv_4= '=' ) | ( () otherlv_6= ':=' ) ) + int alt21=3; + switch ( input.LA(1) ) { + case 63: + { + alt21=1; + } + break; + case 64: + { + alt21=2; + } + break; + case 65: + { + alt21=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 21, 0, input); + + throw nvae; + } + + switch (alt21) { + case 1 : + // InternalVampireLanguage.g:1784:5: ( () otherlv_2= '!=' ) + { + // InternalVampireLanguage.g:1784:5: ( () otherlv_2= '!=' ) + // InternalVampireLanguage.g:1785:6: () otherlv_2= '!=' + { + // InternalVampireLanguage.g:1785:6: () + // InternalVampireLanguage.g:1786:7: + { + + current = forceCreateModelElementAndSet( + grammarAccess.getVLSUnaryInfixAccess().getVLSInequalityLeftAction_1_0_0_0(), + current); + + + } + + otherlv_2=(Token)match(input,63,FOLLOW_29); + + newLeafNode(otherlv_2, grammarAccess.getVLSUnaryInfixAccess().getExclamationMarkEqualsSignKeyword_1_0_0_1()); + + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:1798:5: ( () otherlv_4= '=' ) + { + // InternalVampireLanguage.g:1798:5: ( () otherlv_4= '=' ) + // InternalVampireLanguage.g:1799:6: () otherlv_4= '=' + { + // InternalVampireLanguage.g:1799:6: () + // InternalVampireLanguage.g:1800:7: + { + + current = forceCreateModelElementAndSet( + grammarAccess.getVLSUnaryInfixAccess().getVLSEqualityLeftAction_1_0_1_0(), + current); + + + } + + otherlv_4=(Token)match(input,64,FOLLOW_29); + + newLeafNode(otherlv_4, grammarAccess.getVLSUnaryInfixAccess().getEqualsSignKeyword_1_0_1_1()); + + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:1812:5: ( () otherlv_6= ':=' ) + { + // InternalVampireLanguage.g:1812:5: ( () otherlv_6= ':=' ) + // InternalVampireLanguage.g:1813:6: () otherlv_6= ':=' + { + // InternalVampireLanguage.g:1813:6: () + // InternalVampireLanguage.g:1814:7: + { + + current = forceCreateModelElementAndSet( + grammarAccess.getVLSUnaryInfixAccess().getVLSAssignmentLeftAction_1_0_2_0(), + current); + + + } + + otherlv_6=(Token)match(input,65,FOLLOW_29); + + newLeafNode(otherlv_6, grammarAccess.getVLSUnaryInfixAccess().getColonEqualsSignKeyword_1_0_2_1()); + + + } + + + } + break; + + } + + // InternalVampireLanguage.g:1826:4: ( (lv_right_7_0= ruleVLSAtomic ) ) + // InternalVampireLanguage.g:1827:5: (lv_right_7_0= ruleVLSAtomic ) + { + // InternalVampireLanguage.g:1827:5: (lv_right_7_0= ruleVLSAtomic ) + // InternalVampireLanguage.g:1828:6: lv_right_7_0= ruleVLSAtomic + { + + newCompositeNode(grammarAccess.getVLSUnaryInfixAccess().getRightVLSAtomicParserRuleCall_1_1_0()); + + pushFollow(FOLLOW_2); + lv_right_7_0=ruleVLSAtomic(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSUnaryInfixRule()); + } + set( + current, + "right", + lv_right_7_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAtomic"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + } + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSUnaryInfix" + + + // $ANTLR start "entryRuleVLSAtomic" + // InternalVampireLanguage.g:1850:1: entryRuleVLSAtomic returns [EObject current=null] : iv_ruleVLSAtomic= ruleVLSAtomic EOF ; + public final EObject entryRuleVLSAtomic() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVLSAtomic = null; + + + try { + // InternalVampireLanguage.g:1850:50: (iv_ruleVLSAtomic= ruleVLSAtomic EOF ) + // InternalVampireLanguage.g:1851:2: iv_ruleVLSAtomic= ruleVLSAtomic EOF + { + newCompositeNode(grammarAccess.getVLSAtomicRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSAtomic=ruleVLSAtomic(); + + state._fsp--; + + current =iv_ruleVLSAtomic; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSAtomic" + + + // $ANTLR start "ruleVLSAtomic" + // InternalVampireLanguage.g:1857:1: ruleVLSAtomic returns [EObject current=null] : (this_VLSAtomicConstant_0= ruleVLSAtomicConstant | this_VLSAtomicFunction_1= ruleVLSAtomicFunction | this_VLSVariable_2= ruleVLSVariable | this_VLSDefinedTerm_3= ruleVLSDefinedTerm ) ; + public final EObject ruleVLSAtomic() throws RecognitionException { + EObject current = null; + + EObject this_VLSAtomicConstant_0 = null; + + EObject this_VLSAtomicFunction_1 = null; + + EObject this_VLSVariable_2 = null; + + EObject this_VLSDefinedTerm_3 = null; + + + + enterRule(); + + try { + // InternalVampireLanguage.g:1863:2: ( (this_VLSAtomicConstant_0= ruleVLSAtomicConstant | this_VLSAtomicFunction_1= ruleVLSAtomicFunction | this_VLSVariable_2= ruleVLSVariable | this_VLSDefinedTerm_3= ruleVLSDefinedTerm ) ) + // InternalVampireLanguage.g:1864:2: (this_VLSAtomicConstant_0= ruleVLSAtomicConstant | this_VLSAtomicFunction_1= ruleVLSAtomicFunction | this_VLSVariable_2= ruleVLSVariable | this_VLSDefinedTerm_3= ruleVLSDefinedTerm ) + { + // InternalVampireLanguage.g:1864:2: (this_VLSAtomicConstant_0= ruleVLSAtomicConstant | this_VLSAtomicFunction_1= ruleVLSAtomicFunction | this_VLSVariable_2= ruleVLSVariable | this_VLSDefinedTerm_3= ruleVLSDefinedTerm ) + int alt23=4; + alt23 = dfa23.predict(input); + switch (alt23) { + case 1 : + // InternalVampireLanguage.g:1865:3: this_VLSAtomicConstant_0= ruleVLSAtomicConstant + { + + newCompositeNode(grammarAccess.getVLSAtomicAccess().getVLSAtomicConstantParserRuleCall_0()); + + pushFollow(FOLLOW_2); + this_VLSAtomicConstant_0=ruleVLSAtomicConstant(); + + state._fsp--; + + + current = this_VLSAtomicConstant_0; + afterParserOrEnumRuleCall(); + + + } + break; + case 2 : + // InternalVampireLanguage.g:1874:3: this_VLSAtomicFunction_1= ruleVLSAtomicFunction + { + + newCompositeNode(grammarAccess.getVLSAtomicAccess().getVLSAtomicFunctionParserRuleCall_1()); + + pushFollow(FOLLOW_2); + this_VLSAtomicFunction_1=ruleVLSAtomicFunction(); + + state._fsp--; + + + current = this_VLSAtomicFunction_1; + afterParserOrEnumRuleCall(); + + + } + break; + case 3 : + // InternalVampireLanguage.g:1883:3: this_VLSVariable_2= ruleVLSVariable + { + + newCompositeNode(grammarAccess.getVLSAtomicAccess().getVLSVariableParserRuleCall_2()); + + pushFollow(FOLLOW_2); + this_VLSVariable_2=ruleVLSVariable(); + + state._fsp--; + + + current = this_VLSVariable_2; + afterParserOrEnumRuleCall(); + + + } + break; + case 4 : + // InternalVampireLanguage.g:1892:3: this_VLSDefinedTerm_3= ruleVLSDefinedTerm + { + + newCompositeNode(grammarAccess.getVLSAtomicAccess().getVLSDefinedTermParserRuleCall_3()); + + pushFollow(FOLLOW_2); + this_VLSDefinedTerm_3=ruleVLSDefinedTerm(); + + state._fsp--; + + + current = this_VLSDefinedTerm_3; + afterParserOrEnumRuleCall(); + + + } + break; + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSAtomic" + + + // $ANTLR start "entryRuleVLSAtomicConstant" + // InternalVampireLanguage.g:1904:1: entryRuleVLSAtomicConstant returns [EObject current=null] : iv_ruleVLSAtomicConstant= ruleVLSAtomicConstant EOF ; + public final EObject entryRuleVLSAtomicConstant() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVLSAtomicConstant = null; + + + try { + // InternalVampireLanguage.g:1904:58: (iv_ruleVLSAtomicConstant= ruleVLSAtomicConstant EOF ) + // InternalVampireLanguage.g:1905:2: iv_ruleVLSAtomicConstant= ruleVLSAtomicConstant EOF + { + newCompositeNode(grammarAccess.getVLSAtomicConstantRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSAtomicConstant=ruleVLSAtomicConstant(); + + state._fsp--; + + current =iv_ruleVLSAtomicConstant; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSAtomicConstant" + + + // $ANTLR start "ruleVLSAtomicConstant" + // InternalVampireLanguage.g:1911: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' ) ) ; + public final EObject ruleVLSAtomicConstant() throws RecognitionException { + EObject current = null; + + Token lv_name_1_1=null; + Token lv_name_1_2=null; + Token lv_name_1_3=null; + Token lv_name_1_4=null; + Token otherlv_3=null; + Token otherlv_5=null; + AntlrDatatypeRuleToken lv_name_1_5 = null; + + + + enterRule(); + + try { + // InternalVampireLanguage.g:1917: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' ) ) ) + // InternalVampireLanguage.g:1918: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' ) ) + { + // InternalVampireLanguage.g:1918: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' ) ) + int alt25=3; + switch ( input.LA(1) ) { + case RULE_SINGLE_QUOTE: + case RULE_LOWER_WORD_ID: + case RULE_DOLLAR_ID: + case RULE_DOUBLE_DOLLAR_ID: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + { + alt25=1; + } + break; + case 66: + { + alt25=2; + } + break; + case 67: + { + alt25=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 25, 0, input); + + throw nvae; + } + + switch (alt25) { + case 1 : + // InternalVampireLanguage.g:1919: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 ) ) ) ) + { + // InternalVampireLanguage.g:1919: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 ) ) ) ) + // InternalVampireLanguage.g:1920: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 ) ) ) + { + // InternalVampireLanguage.g:1920:4: () + // InternalVampireLanguage.g:1921:5: + { + + current = forceCreateModelElement( + grammarAccess.getVLSAtomicConstantAccess().getVLSConstantAction_0_0(), + current); + + + } + + // InternalVampireLanguage.g:1927: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 ) ) ) + // InternalVampireLanguage.g:1928: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 ) ) + { + // InternalVampireLanguage.g:1928: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 ) ) + // InternalVampireLanguage.g:1929: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 ) + { + // InternalVampireLanguage.g:1929: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 ) + int alt24=5; + switch ( input.LA(1) ) { + case RULE_LOWER_WORD_ID: + { + alt24=1; + } + break; + case RULE_SINGLE_QUOTE: + { + alt24=2; + } + break; + case RULE_DOLLAR_ID: + { + alt24=3; + } + break; + case RULE_DOUBLE_DOLLAR_ID: + { + alt24=4; + } + break; + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + { + alt24=5; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 24, 0, input); + + throw nvae; + } + + switch (alt24) { + case 1 : + // InternalVampireLanguage.g:1930:7: lv_name_1_1= RULE_LOWER_WORD_ID + { + lv_name_1_1=(Token)match(input,RULE_LOWER_WORD_ID,FOLLOW_2); + + 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"); + + + } + break; + case 2 : + // InternalVampireLanguage.g:1945:7: lv_name_1_2= RULE_SINGLE_QUOTE + { + lv_name_1_2=(Token)match(input,RULE_SINGLE_QUOTE,FOLLOW_2); + + 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"); + + + } + break; + case 3 : + // InternalVampireLanguage.g:1960:7: lv_name_1_3= RULE_DOLLAR_ID + { + lv_name_1_3=(Token)match(input,RULE_DOLLAR_ID,FOLLOW_2); + + 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"); + + + } + break; + case 4 : + // InternalVampireLanguage.g:1975:7: lv_name_1_4= RULE_DOUBLE_DOLLAR_ID + { + lv_name_1_4=(Token)match(input,RULE_DOUBLE_DOLLAR_ID,FOLLOW_2); + + 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"); + + + } + break; + case 5 : + // InternalVampireLanguage.g:1990:7: lv_name_1_5= ruleVLSRole + { + + newCompositeNode(grammarAccess.getVLSAtomicConstantAccess().getNameVLSRoleParserRuleCall_0_1_0_4()); + + pushFollow(FOLLOW_2); + lv_name_1_5=ruleVLSRole(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSAtomicConstantRule()); + } + set( + current, + "name", + lv_name_1_5, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSRole"); + afterParserOrEnumRuleCall(); + + + } + break; + + } + + + } + + + } + + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:2010:3: ( () otherlv_3= '$true' ) + { + // InternalVampireLanguage.g:2010:3: ( () otherlv_3= '$true' ) + // InternalVampireLanguage.g:2011:4: () otherlv_3= '$true' + { + // InternalVampireLanguage.g:2011:4: () + // InternalVampireLanguage.g:2012:5: + { + + current = forceCreateModelElement( + grammarAccess.getVLSAtomicConstantAccess().getVLSTrueAction_1_0(), + current); + + + } + + otherlv_3=(Token)match(input,66,FOLLOW_2); + + newLeafNode(otherlv_3, grammarAccess.getVLSAtomicConstantAccess().getTrueKeyword_1_1()); + + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:2024:3: ( () otherlv_5= '$false' ) + { + // InternalVampireLanguage.g:2024:3: ( () otherlv_5= '$false' ) + // InternalVampireLanguage.g:2025:4: () otherlv_5= '$false' + { + // InternalVampireLanguage.g:2025:4: () + // InternalVampireLanguage.g:2026:5: + { + + current = forceCreateModelElement( + grammarAccess.getVLSAtomicConstantAccess().getVLSFalseAction_2_0(), + current); + + + } + + otherlv_5=(Token)match(input,67,FOLLOW_2); + + newLeafNode(otherlv_5, grammarAccess.getVLSAtomicConstantAccess().getFalseKeyword_2_1()); + + + } + + + } + break; + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSAtomicConstant" + + + // $ANTLR start "entryRuleVLSAtomicFunction" + // InternalVampireLanguage.g:2041:1: entryRuleVLSAtomicFunction returns [EObject current=null] : iv_ruleVLSAtomicFunction= ruleVLSAtomicFunction EOF ; + public final EObject entryRuleVLSAtomicFunction() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVLSAtomicFunction = null; + + + try { + // InternalVampireLanguage.g:2041:58: (iv_ruleVLSAtomicFunction= ruleVLSAtomicFunction EOF ) + // InternalVampireLanguage.g:2042:2: iv_ruleVLSAtomicFunction= ruleVLSAtomicFunction EOF + { + newCompositeNode(grammarAccess.getVLSAtomicFunctionRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSAtomicFunction=ruleVLSAtomicFunction(); + + state._fsp--; + + current =iv_ruleVLSAtomicFunction; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSAtomicFunction" + + + // $ANTLR start "ruleVLSAtomicFunction" + // InternalVampireLanguage.g:2048: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= ')' ) ) ; + public final EObject ruleVLSAtomicFunction() throws RecognitionException { + EObject current = null; + + Token lv_constant_1_1=null; + Token lv_constant_1_2=null; + Token lv_constant_1_3=null; + Token lv_constant_1_4=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token lv_name_8_0=null; + Token otherlv_9=null; + Token otherlv_11=null; + Token otherlv_13=null; + AntlrDatatypeRuleToken lv_constant_1_5 = null; + + EObject lv_terms_3_0 = null; + + EObject lv_terms_5_0 = null; + + EObject lv_terms_10_0 = null; + + EObject lv_terms_12_0 = null; + + + + enterRule(); + + try { + // InternalVampireLanguage.g:2054: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= ')' ) ) ) + // InternalVampireLanguage.g:2055: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= ')' ) ) + { + // InternalVampireLanguage.g:2055: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= ')' ) ) + int alt28=2; + int LA28_0 = input.LA(1); + + if ( ((LA28_0>=RULE_SINGLE_QUOTE && LA28_0<=RULE_LOWER_WORD_ID)||(LA28_0>=RULE_DOLLAR_ID && LA28_0<=RULE_DOUBLE_DOLLAR_ID)||(LA28_0>=35 && LA28_0<=49)) ) { + alt28=1; + } + else if ( (LA28_0==68) ) { + alt28=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 28, 0, input); + + throw nvae; + } + switch (alt28) { + case 1 : + // InternalVampireLanguage.g:2056: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= ')' ) ) + { + // InternalVampireLanguage.g:2056: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= ')' ) ) + // InternalVampireLanguage.g:2057: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= ')' ) + { + // InternalVampireLanguage.g:2057:4: () + // InternalVampireLanguage.g:2058:5: + { + + current = forceCreateModelElement( + grammarAccess.getVLSAtomicFunctionAccess().getVLSFunctionAction_0_0(), + current); + + + } + + // InternalVampireLanguage.g:2064: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 ) ) ) + // InternalVampireLanguage.g:2065: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 ) ) + { + // InternalVampireLanguage.g:2065: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 ) ) + // InternalVampireLanguage.g:2066: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 ) + { + // InternalVampireLanguage.g:2066: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 ) + int alt26=5; + switch ( input.LA(1) ) { + case RULE_LOWER_WORD_ID: + { + alt26=1; + } + break; + case RULE_SINGLE_QUOTE: + { + alt26=2; + } + break; + case RULE_DOLLAR_ID: + { + alt26=3; + } + break; + case RULE_DOUBLE_DOLLAR_ID: + { + alt26=4; + } + break; + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + { + alt26=5; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 26, 0, input); + + throw nvae; + } + + switch (alt26) { + case 1 : + // InternalVampireLanguage.g:2067:7: lv_constant_1_1= RULE_LOWER_WORD_ID + { + lv_constant_1_1=(Token)match(input,RULE_LOWER_WORD_ID,FOLLOW_8); + + 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"); + + + } + break; + case 2 : + // InternalVampireLanguage.g:2082:7: lv_constant_1_2= RULE_SINGLE_QUOTE + { + lv_constant_1_2=(Token)match(input,RULE_SINGLE_QUOTE,FOLLOW_8); + + 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"); + + + } + break; + case 3 : + // InternalVampireLanguage.g:2097:7: lv_constant_1_3= RULE_DOLLAR_ID + { + lv_constant_1_3=(Token)match(input,RULE_DOLLAR_ID,FOLLOW_8); + + 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"); + + + } + break; + case 4 : + // InternalVampireLanguage.g:2112:7: lv_constant_1_4= RULE_DOUBLE_DOLLAR_ID + { + lv_constant_1_4=(Token)match(input,RULE_DOUBLE_DOLLAR_ID,FOLLOW_8); + + 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"); + + + } + break; + case 5 : + // InternalVampireLanguage.g:2127:7: lv_constant_1_5= ruleVLSRole + { + + newCompositeNode(grammarAccess.getVLSAtomicFunctionAccess().getConstantVLSRoleParserRuleCall_0_1_0_4()); + + pushFollow(FOLLOW_8); + lv_constant_1_5=ruleVLSRole(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSAtomicFunctionRule()); + } + set( + current, + "constant", + lv_constant_1_5, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSRole"); + afterParserOrEnumRuleCall(); + + + } + break; + + } + + + } + + + } + + // InternalVampireLanguage.g:2145:4: (otherlv_2= '(' ( (lv_terms_3_0= ruleVLSFofTerm ) ) (otherlv_4= ',' ( (lv_terms_5_0= ruleVLSFofTerm ) ) )* otherlv_6= ')' ) + // InternalVampireLanguage.g:2146:5: otherlv_2= '(' ( (lv_terms_3_0= ruleVLSFofTerm ) ) (otherlv_4= ',' ( (lv_terms_5_0= ruleVLSFofTerm ) ) )* otherlv_6= ')' + { + otherlv_2=(Token)match(input,32,FOLLOW_29); + + newLeafNode(otherlv_2, grammarAccess.getVLSAtomicFunctionAccess().getLeftParenthesisKeyword_0_2_0()); + + // InternalVampireLanguage.g:2150:5: ( (lv_terms_3_0= ruleVLSFofTerm ) ) + // InternalVampireLanguage.g:2151:6: (lv_terms_3_0= ruleVLSFofTerm ) + { + // InternalVampireLanguage.g:2151:6: (lv_terms_3_0= ruleVLSFofTerm ) + // InternalVampireLanguage.g:2152:7: lv_terms_3_0= ruleVLSFofTerm + { + + newCompositeNode(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_0_2_1_0()); + + pushFollow(FOLLOW_13); + lv_terms_3_0=ruleVLSFofTerm(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSAtomicFunctionRule()); + } + add( + current, + "terms", + lv_terms_3_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // InternalVampireLanguage.g:2169:5: (otherlv_4= ',' ( (lv_terms_5_0= ruleVLSFofTerm ) ) )* + loop27: + do { + int alt27=2; + int LA27_0 = input.LA(1); + + if ( (LA27_0==29) ) { + alt27=1; + } + + + switch (alt27) { + case 1 : + // InternalVampireLanguage.g:2170:6: otherlv_4= ',' ( (lv_terms_5_0= ruleVLSFofTerm ) ) + { + otherlv_4=(Token)match(input,29,FOLLOW_29); + + newLeafNode(otherlv_4, grammarAccess.getVLSAtomicFunctionAccess().getCommaKeyword_0_2_2_0()); + + // InternalVampireLanguage.g:2174:6: ( (lv_terms_5_0= ruleVLSFofTerm ) ) + // InternalVampireLanguage.g:2175:7: (lv_terms_5_0= ruleVLSFofTerm ) + { + // InternalVampireLanguage.g:2175:7: (lv_terms_5_0= ruleVLSFofTerm ) + // InternalVampireLanguage.g:2176:8: lv_terms_5_0= ruleVLSFofTerm + { + + newCompositeNode(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_0_2_2_1_0()); + + pushFollow(FOLLOW_13); + lv_terms_5_0=ruleVLSFofTerm(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSAtomicFunctionRule()); + } + add( + current, + "terms", + lv_terms_5_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop27; + } + } while (true); + + otherlv_6=(Token)match(input,33,FOLLOW_2); + + newLeafNode(otherlv_6, grammarAccess.getVLSAtomicFunctionAccess().getRightParenthesisKeyword_0_2_3()); + + + } + + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:2201:3: ( () ( (lv_name_8_0= '$less' ) ) otherlv_9= '(' ( (lv_terms_10_0= ruleVLSFofTerm ) ) otherlv_11= ',' ( (lv_terms_12_0= ruleVLSFofTerm ) ) otherlv_13= ')' ) + { + // InternalVampireLanguage.g:2201:3: ( () ( (lv_name_8_0= '$less' ) ) otherlv_9= '(' ( (lv_terms_10_0= ruleVLSFofTerm ) ) otherlv_11= ',' ( (lv_terms_12_0= ruleVLSFofTerm ) ) otherlv_13= ')' ) + // InternalVampireLanguage.g:2202:4: () ( (lv_name_8_0= '$less' ) ) otherlv_9= '(' ( (lv_terms_10_0= ruleVLSFofTerm ) ) otherlv_11= ',' ( (lv_terms_12_0= ruleVLSFofTerm ) ) otherlv_13= ')' + { + // InternalVampireLanguage.g:2202:4: () + // InternalVampireLanguage.g:2203:5: + { + + current = forceCreateModelElement( + grammarAccess.getVLSAtomicFunctionAccess().getVLSLessAction_1_0(), + current); + + + } + + // InternalVampireLanguage.g:2209:4: ( (lv_name_8_0= '$less' ) ) + // InternalVampireLanguage.g:2210:5: (lv_name_8_0= '$less' ) + { + // InternalVampireLanguage.g:2210:5: (lv_name_8_0= '$less' ) + // InternalVampireLanguage.g:2211:6: lv_name_8_0= '$less' + { + lv_name_8_0=(Token)match(input,68,FOLLOW_8); + + 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=(Token)match(input,32,FOLLOW_29); + + newLeafNode(otherlv_9, grammarAccess.getVLSAtomicFunctionAccess().getLeftParenthesisKeyword_1_2()); + + // InternalVampireLanguage.g:2227:4: ( (lv_terms_10_0= ruleVLSFofTerm ) ) + // InternalVampireLanguage.g:2228:5: (lv_terms_10_0= ruleVLSFofTerm ) + { + // InternalVampireLanguage.g:2228:5: (lv_terms_10_0= ruleVLSFofTerm ) + // InternalVampireLanguage.g:2229:6: lv_terms_10_0= ruleVLSFofTerm + { + + newCompositeNode(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_1_3_0()); + + pushFollow(FOLLOW_10); + lv_terms_10_0=ruleVLSFofTerm(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSAtomicFunctionRule()); + } + add( + current, + "terms", + lv_terms_10_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_11=(Token)match(input,29,FOLLOW_29); + + newLeafNode(otherlv_11, grammarAccess.getVLSAtomicFunctionAccess().getCommaKeyword_1_4()); + + // InternalVampireLanguage.g:2250:4: ( (lv_terms_12_0= ruleVLSFofTerm ) ) + // InternalVampireLanguage.g:2251:5: (lv_terms_12_0= ruleVLSFofTerm ) + { + // InternalVampireLanguage.g:2251:5: (lv_terms_12_0= ruleVLSFofTerm ) + // InternalVampireLanguage.g:2252:6: lv_terms_12_0= ruleVLSFofTerm + { + + newCompositeNode(grammarAccess.getVLSAtomicFunctionAccess().getTermsVLSFofTermParserRuleCall_1_5_0()); + + pushFollow(FOLLOW_15); + lv_terms_12_0=ruleVLSFofTerm(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSAtomicFunctionRule()); + } + add( + current, + "terms", + lv_terms_12_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_13=(Token)match(input,33,FOLLOW_2); + + newLeafNode(otherlv_13, grammarAccess.getVLSAtomicFunctionAccess().getRightParenthesisKeyword_1_6()); + + + } + + + } + break; + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSAtomicFunction" + + + // $ANTLR start "entryRuleVLSVariable" + // InternalVampireLanguage.g:2278:1: entryRuleVLSVariable returns [EObject current=null] : iv_ruleVLSVariable= ruleVLSVariable EOF ; + public final EObject entryRuleVLSVariable() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVLSVariable = null; + + + try { + // InternalVampireLanguage.g:2278:52: (iv_ruleVLSVariable= ruleVLSVariable EOF ) + // InternalVampireLanguage.g:2279:2: iv_ruleVLSVariable= ruleVLSVariable EOF + { + newCompositeNode(grammarAccess.getVLSVariableRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSVariable=ruleVLSVariable(); + + state._fsp--; + + current =iv_ruleVLSVariable; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSVariable" + + + // $ANTLR start "ruleVLSVariable" + // InternalVampireLanguage.g:2285:1: ruleVLSVariable returns [EObject current=null] : ( (lv_name_0_0= RULE_UPPER_WORD_ID ) ) ; + public final EObject ruleVLSVariable() throws RecognitionException { + EObject current = null; + + Token lv_name_0_0=null; + + + enterRule(); + + try { + // InternalVampireLanguage.g:2291:2: ( ( (lv_name_0_0= RULE_UPPER_WORD_ID ) ) ) + // InternalVampireLanguage.g:2292:2: ( (lv_name_0_0= RULE_UPPER_WORD_ID ) ) + { + // InternalVampireLanguage.g:2292:2: ( (lv_name_0_0= RULE_UPPER_WORD_ID ) ) + // InternalVampireLanguage.g:2293:3: (lv_name_0_0= RULE_UPPER_WORD_ID ) + { + // InternalVampireLanguage.g:2293:3: (lv_name_0_0= RULE_UPPER_WORD_ID ) + // InternalVampireLanguage.g:2294:4: lv_name_0_0= RULE_UPPER_WORD_ID + { + lv_name_0_0=(Token)match(input,RULE_UPPER_WORD_ID,FOLLOW_2); + + 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"); + + + } + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSVariable" + + + // $ANTLR start "entryRuleVLSFofTerm" + // InternalVampireLanguage.g:2313:1: entryRuleVLSFofTerm returns [EObject current=null] : iv_ruleVLSFofTerm= ruleVLSFofTerm EOF ; + public final EObject entryRuleVLSFofTerm() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVLSFofTerm = null; + + + try { + // InternalVampireLanguage.g:2313:51: (iv_ruleVLSFofTerm= ruleVLSFofTerm EOF ) + // InternalVampireLanguage.g:2314:2: iv_ruleVLSFofTerm= ruleVLSFofTerm EOF + { + newCompositeNode(grammarAccess.getVLSFofTermRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSFofTerm=ruleVLSFofTerm(); + + state._fsp--; + + current =iv_ruleVLSFofTerm; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSFofTerm" + + + // $ANTLR start "ruleVLSFofTerm" + // InternalVampireLanguage.g:2320:1: ruleVLSFofTerm returns [EObject current=null] : (this_VLSVariable_0= ruleVLSVariable | this_VLSFunctionFof_1= ruleVLSFunctionFof | this_VLSDefinedTerm_2= ruleVLSDefinedTerm ) ; + public final EObject ruleVLSFofTerm() throws RecognitionException { + EObject current = null; + + EObject this_VLSVariable_0 = null; + + EObject this_VLSFunctionFof_1 = null; + + EObject this_VLSDefinedTerm_2 = null; + + + + enterRule(); + + try { + // InternalVampireLanguage.g:2326:2: ( (this_VLSVariable_0= ruleVLSVariable | this_VLSFunctionFof_1= ruleVLSFunctionFof | this_VLSDefinedTerm_2= ruleVLSDefinedTerm ) ) + // InternalVampireLanguage.g:2327:2: (this_VLSVariable_0= ruleVLSVariable | this_VLSFunctionFof_1= ruleVLSFunctionFof | this_VLSDefinedTerm_2= ruleVLSDefinedTerm ) + { + // InternalVampireLanguage.g:2327:2: (this_VLSVariable_0= ruleVLSVariable | this_VLSFunctionFof_1= ruleVLSFunctionFof | this_VLSDefinedTerm_2= ruleVLSDefinedTerm ) + int alt29=3; + switch ( input.LA(1) ) { + case RULE_UPPER_WORD_ID: + { + alt29=1; + } + break; + case RULE_SINGLE_QUOTE: + case RULE_LOWER_WORD_ID: + case RULE_DOLLAR_ID: + case RULE_DOUBLE_DOLLAR_ID: + { + alt29=2; + } + break; + case RULE_SIGNED_LITERAL: + case RULE_SIGNED_REAL_ID: + case RULE_SIGNED_RAT_ID: + case RULE_DOUBLE_QUOTE: + { + alt29=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 29, 0, input); + + throw nvae; + } + + switch (alt29) { + case 1 : + // InternalVampireLanguage.g:2328:3: this_VLSVariable_0= ruleVLSVariable + { + + newCompositeNode(grammarAccess.getVLSFofTermAccess().getVLSVariableParserRuleCall_0()); + + pushFollow(FOLLOW_2); + this_VLSVariable_0=ruleVLSVariable(); + + state._fsp--; + + + current = this_VLSVariable_0; + afterParserOrEnumRuleCall(); + + + } + break; + case 2 : + // InternalVampireLanguage.g:2337:3: this_VLSFunctionFof_1= ruleVLSFunctionFof + { + + newCompositeNode(grammarAccess.getVLSFofTermAccess().getVLSFunctionFofParserRuleCall_1()); + + pushFollow(FOLLOW_2); + this_VLSFunctionFof_1=ruleVLSFunctionFof(); + + state._fsp--; + + + current = this_VLSFunctionFof_1; + afterParserOrEnumRuleCall(); + + + } + break; + case 3 : + // InternalVampireLanguage.g:2346:3: this_VLSDefinedTerm_2= ruleVLSDefinedTerm + { + + newCompositeNode(grammarAccess.getVLSFofTermAccess().getVLSDefinedTermParserRuleCall_2()); + + pushFollow(FOLLOW_2); + this_VLSDefinedTerm_2=ruleVLSDefinedTerm(); + + state._fsp--; + + + current = this_VLSDefinedTerm_2; + afterParserOrEnumRuleCall(); + + + } + break; + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSFofTerm" + + + // $ANTLR start "entryRuleVLSFunctionFof" + // InternalVampireLanguage.g:2358:1: entryRuleVLSFunctionFof returns [EObject current=null] : iv_ruleVLSFunctionFof= ruleVLSFunctionFof EOF ; + public final EObject entryRuleVLSFunctionFof() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVLSFunctionFof = null; + + + try { + // InternalVampireLanguage.g:2358:55: (iv_ruleVLSFunctionFof= ruleVLSFunctionFof EOF ) + // InternalVampireLanguage.g:2359:2: iv_ruleVLSFunctionFof= ruleVLSFunctionFof EOF + { + newCompositeNode(grammarAccess.getVLSFunctionFofRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSFunctionFof=ruleVLSFunctionFof(); + + state._fsp--; + + current =iv_ruleVLSFunctionFof; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSFunctionFof" + + + // $ANTLR start "ruleVLSFunctionFof" + // InternalVampireLanguage.g:2365:1: ruleVLSFunctionFof 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= ')' )? ) ; + public final EObject ruleVLSFunctionFof() throws RecognitionException { + EObject current = null; + + Token lv_functor_0_1=null; + Token lv_functor_0_2=null; + Token lv_functor_0_3=null; + Token lv_functor_0_4=null; + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + EObject lv_terms_2_0 = null; + + EObject lv_terms_4_0 = null; + + + + enterRule(); + + try { + // InternalVampireLanguage.g:2371: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= ')' )? ) ) + // InternalVampireLanguage.g:2372: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= ')' )? ) + { + // InternalVampireLanguage.g:2372: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= ')' )? ) + // InternalVampireLanguage.g:2373: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= ')' )? + { + // InternalVampireLanguage.g:2373: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 ) ) ) + // InternalVampireLanguage.g:2374: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 ) ) + { + // InternalVampireLanguage.g:2374: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 ) ) + // InternalVampireLanguage.g:2375: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 ) + { + // InternalVampireLanguage.g:2375: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 ) + int alt30=4; + switch ( input.LA(1) ) { + case RULE_LOWER_WORD_ID: + { + alt30=1; + } + break; + case RULE_SINGLE_QUOTE: + { + alt30=2; + } + break; + case RULE_DOLLAR_ID: + { + alt30=3; + } + break; + case RULE_DOUBLE_DOLLAR_ID: + { + alt30=4; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 30, 0, input); + + throw nvae; + } + + switch (alt30) { + case 1 : + // InternalVampireLanguage.g:2376:6: lv_functor_0_1= RULE_LOWER_WORD_ID + { + lv_functor_0_1=(Token)match(input,RULE_LOWER_WORD_ID,FOLLOW_30); + + newLeafNode(lv_functor_0_1, grammarAccess.getVLSFunctionFofAccess().getFunctorLOWER_WORD_IDTerminalRuleCall_0_0_0()); + + + if (current==null) { + current = createModelElement(grammarAccess.getVLSFunctionFofRule()); + } + setWithLastConsumed( + current, + "functor", + lv_functor_0_1, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.LOWER_WORD_ID"); + + + } + break; + case 2 : + // InternalVampireLanguage.g:2391:6: lv_functor_0_2= RULE_SINGLE_QUOTE + { + lv_functor_0_2=(Token)match(input,RULE_SINGLE_QUOTE,FOLLOW_30); + + newLeafNode(lv_functor_0_2, grammarAccess.getVLSFunctionFofAccess().getFunctorSINGLE_QUOTETerminalRuleCall_0_0_1()); + + + if (current==null) { + current = createModelElement(grammarAccess.getVLSFunctionFofRule()); + } + setWithLastConsumed( + current, + "functor", + lv_functor_0_2, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_QUOTE"); + + + } + break; + case 3 : + // InternalVampireLanguage.g:2406:6: lv_functor_0_3= RULE_DOLLAR_ID + { + lv_functor_0_3=(Token)match(input,RULE_DOLLAR_ID,FOLLOW_30); + + newLeafNode(lv_functor_0_3, grammarAccess.getVLSFunctionFofAccess().getFunctorDOLLAR_IDTerminalRuleCall_0_0_2()); + + + if (current==null) { + current = createModelElement(grammarAccess.getVLSFunctionFofRule()); + } + setWithLastConsumed( + current, + "functor", + lv_functor_0_3, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.DOLLAR_ID"); + + + } + break; + case 4 : + // InternalVampireLanguage.g:2421:6: lv_functor_0_4= RULE_DOUBLE_DOLLAR_ID + { + lv_functor_0_4=(Token)match(input,RULE_DOUBLE_DOLLAR_ID,FOLLOW_30); + + newLeafNode(lv_functor_0_4, grammarAccess.getVLSFunctionFofAccess().getFunctorDOUBLE_DOLLAR_IDTerminalRuleCall_0_0_3()); + + + if (current==null) { + current = createModelElement(grammarAccess.getVLSFunctionFofRule()); + } + setWithLastConsumed( + current, + "functor", + lv_functor_0_4, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.DOUBLE_DOLLAR_ID"); + + + } + break; + + } + + + } + + + } + + // InternalVampireLanguage.g:2438:3: (otherlv_1= '(' ( (lv_terms_2_0= ruleVLSFofTerm ) ) (otherlv_3= ',' ( (lv_terms_4_0= ruleVLSFofTerm ) ) )* otherlv_5= ')' )? + int alt32=2; + int LA32_0 = input.LA(1); + + if ( (LA32_0==32) ) { + alt32=1; + } + switch (alt32) { + case 1 : + // InternalVampireLanguage.g:2439:4: otherlv_1= '(' ( (lv_terms_2_0= ruleVLSFofTerm ) ) (otherlv_3= ',' ( (lv_terms_4_0= ruleVLSFofTerm ) ) )* otherlv_5= ')' + { + otherlv_1=(Token)match(input,32,FOLLOW_29); + + newLeafNode(otherlv_1, grammarAccess.getVLSFunctionFofAccess().getLeftParenthesisKeyword_1_0()); + + // InternalVampireLanguage.g:2443:4: ( (lv_terms_2_0= ruleVLSFofTerm ) ) + // InternalVampireLanguage.g:2444:5: (lv_terms_2_0= ruleVLSFofTerm ) + { + // InternalVampireLanguage.g:2444:5: (lv_terms_2_0= ruleVLSFofTerm ) + // InternalVampireLanguage.g:2445:6: lv_terms_2_0= ruleVLSFofTerm + { + + newCompositeNode(grammarAccess.getVLSFunctionFofAccess().getTermsVLSFofTermParserRuleCall_1_1_0()); + + pushFollow(FOLLOW_13); + lv_terms_2_0=ruleVLSFofTerm(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSFunctionFofRule()); + } + add( + current, + "terms", + lv_terms_2_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // InternalVampireLanguage.g:2462:4: (otherlv_3= ',' ( (lv_terms_4_0= ruleVLSFofTerm ) ) )* + loop31: + do { + int alt31=2; + int LA31_0 = input.LA(1); + + if ( (LA31_0==29) ) { + alt31=1; + } + + + switch (alt31) { + case 1 : + // InternalVampireLanguage.g:2463:5: otherlv_3= ',' ( (lv_terms_4_0= ruleVLSFofTerm ) ) + { + otherlv_3=(Token)match(input,29,FOLLOW_29); + + newLeafNode(otherlv_3, grammarAccess.getVLSFunctionFofAccess().getCommaKeyword_1_2_0()); + + // InternalVampireLanguage.g:2467:5: ( (lv_terms_4_0= ruleVLSFofTerm ) ) + // InternalVampireLanguage.g:2468:6: (lv_terms_4_0= ruleVLSFofTerm ) + { + // InternalVampireLanguage.g:2468:6: (lv_terms_4_0= ruleVLSFofTerm ) + // InternalVampireLanguage.g:2469:7: lv_terms_4_0= ruleVLSFofTerm + { + + newCompositeNode(grammarAccess.getVLSFunctionFofAccess().getTermsVLSFofTermParserRuleCall_1_2_1_0()); + + pushFollow(FOLLOW_13); + lv_terms_4_0=ruleVLSFofTerm(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getVLSFunctionFofRule()); + } + add( + current, + "terms", + lv_terms_4_0, + "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop31; + } + } while (true); + + otherlv_5=(Token)match(input,33,FOLLOW_2); + + newLeafNode(otherlv_5, grammarAccess.getVLSFunctionFofAccess().getRightParenthesisKeyword_1_3()); + + + } + break; + + } + + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSFunctionFof" + + + // $ANTLR start "entryRuleVLSDefinedTerm" + // InternalVampireLanguage.g:2496:1: entryRuleVLSDefinedTerm returns [EObject current=null] : iv_ruleVLSDefinedTerm= ruleVLSDefinedTerm EOF ; + public final EObject entryRuleVLSDefinedTerm() throws RecognitionException { + EObject current = null; + + EObject iv_ruleVLSDefinedTerm = null; + + + try { + // InternalVampireLanguage.g:2496:55: (iv_ruleVLSDefinedTerm= ruleVLSDefinedTerm EOF ) + // InternalVampireLanguage.g:2497:2: iv_ruleVLSDefinedTerm= ruleVLSDefinedTerm EOF + { + newCompositeNode(grammarAccess.getVLSDefinedTermRule()); + pushFollow(FOLLOW_1); + iv_ruleVLSDefinedTerm=ruleVLSDefinedTerm(); + + state._fsp--; + + current =iv_ruleVLSDefinedTerm; + match(input,EOF,FOLLOW_2); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleVLSDefinedTerm" + + + // $ANTLR start "ruleVLSDefinedTerm" + // InternalVampireLanguage.g:2503: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 ) ) ) ) ; + public final EObject ruleVLSDefinedTerm() throws RecognitionException { + EObject current = null; + + Token lv_value_1_0=null; + Token lv_value_3_0=null; + Token lv_value_5_0=null; + Token lv_value_7_0=null; + + + enterRule(); + + try { + // InternalVampireLanguage.g:2509: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 ) ) ) ) ) + // InternalVampireLanguage.g:2510: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 ) ) ) ) + { + // InternalVampireLanguage.g:2510: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 ) ) ) ) + int alt33=4; + switch ( input.LA(1) ) { + case RULE_SIGNED_LITERAL: + { + alt33=1; + } + break; + case RULE_SIGNED_REAL_ID: + { + alt33=2; + } + break; + case RULE_SIGNED_RAT_ID: + { + alt33=3; + } + break; + case RULE_DOUBLE_QUOTE: + { + alt33=4; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 33, 0, input); + + throw nvae; + } + + switch (alt33) { + case 1 : + // InternalVampireLanguage.g:2511:3: ( () ( (lv_value_1_0= RULE_SIGNED_LITERAL ) ) ) + { + // InternalVampireLanguage.g:2511:3: ( () ( (lv_value_1_0= RULE_SIGNED_LITERAL ) ) ) + // InternalVampireLanguage.g:2512:4: () ( (lv_value_1_0= RULE_SIGNED_LITERAL ) ) + { + // InternalVampireLanguage.g:2512:4: () + // InternalVampireLanguage.g:2513:5: + { + + current = forceCreateModelElement( + grammarAccess.getVLSDefinedTermAccess().getVLSIntAction_0_0(), + current); + + + } + + // InternalVampireLanguage.g:2519:4: ( (lv_value_1_0= RULE_SIGNED_LITERAL ) ) + // InternalVampireLanguage.g:2520:5: (lv_value_1_0= RULE_SIGNED_LITERAL ) + { + // InternalVampireLanguage.g:2520:5: (lv_value_1_0= RULE_SIGNED_LITERAL ) + // InternalVampireLanguage.g:2521:6: lv_value_1_0= RULE_SIGNED_LITERAL + { + lv_value_1_0=(Token)match(input,RULE_SIGNED_LITERAL,FOLLOW_2); + + 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"); + + + } + + + } + + + } + + + } + break; + case 2 : + // InternalVampireLanguage.g:2539:3: ( () ( (lv_value_3_0= RULE_SIGNED_REAL_ID ) ) ) + { + // InternalVampireLanguage.g:2539:3: ( () ( (lv_value_3_0= RULE_SIGNED_REAL_ID ) ) ) + // InternalVampireLanguage.g:2540:4: () ( (lv_value_3_0= RULE_SIGNED_REAL_ID ) ) + { + // InternalVampireLanguage.g:2540:4: () + // InternalVampireLanguage.g:2541:5: + { + + current = forceCreateModelElement( + grammarAccess.getVLSDefinedTermAccess().getVLSRealAction_1_0(), + current); + + + } + + // InternalVampireLanguage.g:2547:4: ( (lv_value_3_0= RULE_SIGNED_REAL_ID ) ) + // InternalVampireLanguage.g:2548:5: (lv_value_3_0= RULE_SIGNED_REAL_ID ) + { + // InternalVampireLanguage.g:2548:5: (lv_value_3_0= RULE_SIGNED_REAL_ID ) + // InternalVampireLanguage.g:2549:6: lv_value_3_0= RULE_SIGNED_REAL_ID + { + lv_value_3_0=(Token)match(input,RULE_SIGNED_REAL_ID,FOLLOW_2); + + 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"); + + + } + + + } + + + } + + + } + break; + case 3 : + // InternalVampireLanguage.g:2567:3: ( () ( (lv_value_5_0= RULE_SIGNED_RAT_ID ) ) ) + { + // InternalVampireLanguage.g:2567:3: ( () ( (lv_value_5_0= RULE_SIGNED_RAT_ID ) ) ) + // InternalVampireLanguage.g:2568:4: () ( (lv_value_5_0= RULE_SIGNED_RAT_ID ) ) + { + // InternalVampireLanguage.g:2568:4: () + // InternalVampireLanguage.g:2569:5: + { + + current = forceCreateModelElement( + grammarAccess.getVLSDefinedTermAccess().getVLSRationalAction_2_0(), + current); + + + } + + // InternalVampireLanguage.g:2575:4: ( (lv_value_5_0= RULE_SIGNED_RAT_ID ) ) + // InternalVampireLanguage.g:2576:5: (lv_value_5_0= RULE_SIGNED_RAT_ID ) + { + // InternalVampireLanguage.g:2576:5: (lv_value_5_0= RULE_SIGNED_RAT_ID ) + // InternalVampireLanguage.g:2577:6: lv_value_5_0= RULE_SIGNED_RAT_ID + { + lv_value_5_0=(Token)match(input,RULE_SIGNED_RAT_ID,FOLLOW_2); + + 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"); + + + } + + + } + + + } + + + } + break; + case 4 : + // InternalVampireLanguage.g:2595:3: ( () ( (lv_value_7_0= RULE_DOUBLE_QUOTE ) ) ) + { + // InternalVampireLanguage.g:2595:3: ( () ( (lv_value_7_0= RULE_DOUBLE_QUOTE ) ) ) + // InternalVampireLanguage.g:2596:4: () ( (lv_value_7_0= RULE_DOUBLE_QUOTE ) ) + { + // InternalVampireLanguage.g:2596:4: () + // InternalVampireLanguage.g:2597:5: + { + + current = forceCreateModelElement( + grammarAccess.getVLSDefinedTermAccess().getVLSDoubleQuoteAction_3_0(), + current); + + + } + + // InternalVampireLanguage.g:2603:4: ( (lv_value_7_0= RULE_DOUBLE_QUOTE ) ) + // InternalVampireLanguage.g:2604:5: (lv_value_7_0= RULE_DOUBLE_QUOTE ) + { + // InternalVampireLanguage.g:2604:5: (lv_value_7_0= RULE_DOUBLE_QUOTE ) + // InternalVampireLanguage.g:2605:6: lv_value_7_0= RULE_DOUBLE_QUOTE + { + lv_value_7_0=(Token)match(input,RULE_DOUBLE_QUOTE,FOLLOW_2); + + 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"); + + + } + + + } + + + } + + + } + break; + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleVLSDefinedTerm" + + // Delegated rules + + + protected DFA23 dfa23 = new DFA23(this); + static final String dfa_1s = "\30\uffff"; + static final String dfa_2s = "\1\uffff\23\24\4\uffff"; + static final String dfa_3s = "\1\4\23\35\4\uffff"; + static final String dfa_4s = "\1\104\23\101\4\uffff"; + static final String dfa_5s = "\24\uffff\1\1\1\2\1\3\1\4"; + static final String dfa_6s = "\30\uffff}>"; + static final String[] dfa_7s = { + "\1\2\1\1\1\uffff\1\27\1\uffff\1\3\1\4\1\26\3\27\24\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", + "\1\24\2\uffff\1\25\1\24\21\uffff\10\24\4\uffff\3\24", + "\1\24\2\uffff\1\25\1\24\21\uffff\10\24\4\uffff\3\24", + "\1\24\2\uffff\1\25\1\24\21\uffff\10\24\4\uffff\3\24", + "\1\24\2\uffff\1\25\1\24\21\uffff\10\24\4\uffff\3\24", + "\1\24\2\uffff\1\25\1\24\21\uffff\10\24\4\uffff\3\24", + "\1\24\2\uffff\1\25\1\24\21\uffff\10\24\4\uffff\3\24", + "\1\24\2\uffff\1\25\1\24\21\uffff\10\24\4\uffff\3\24", + "\1\24\2\uffff\1\25\1\24\21\uffff\10\24\4\uffff\3\24", + "\1\24\2\uffff\1\25\1\24\21\uffff\10\24\4\uffff\3\24", + "\1\24\2\uffff\1\25\1\24\21\uffff\10\24\4\uffff\3\24", + "\1\24\2\uffff\1\25\1\24\21\uffff\10\24\4\uffff\3\24", + "\1\24\2\uffff\1\25\1\24\21\uffff\10\24\4\uffff\3\24", + "\1\24\2\uffff\1\25\1\24\21\uffff\10\24\4\uffff\3\24", + "\1\24\2\uffff\1\25\1\24\21\uffff\10\24\4\uffff\3\24", + "\1\24\2\uffff\1\25\1\24\21\uffff\10\24\4\uffff\3\24", + "\1\24\2\uffff\1\25\1\24\21\uffff\10\24\4\uffff\3\24", + "\1\24\2\uffff\1\25\1\24\21\uffff\10\24\4\uffff\3\24", + "\1\24\2\uffff\1\25\1\24\21\uffff\10\24\4\uffff\3\24", + "\1\24\2\uffff\1\25\1\24\21\uffff\10\24\4\uffff\3\24", + "", + "", + "", + "" + }; + + static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s); + static final short[] dfa_2 = DFA.unpackEncodedString(dfa_2s); + static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s); + static final char[] dfa_4 = DFA.unpackEncodedStringToUnsignedChars(dfa_4s); + static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s); + static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s); + static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s); + + class DFA23 extends DFA { + + public DFA23(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 23; + this.eot = dfa_1; + this.eof = dfa_2; + this.min = dfa_3; + this.max = dfa_4; + this.accept = dfa_5; + this.special = dfa_6; + this.transition = dfa_7; + } + public String getDescription() { + return "1864:2: (this_VLSAtomicConstant_0= ruleVLSAtomicConstant | this_VLSAtomicFunction_1= ruleVLSAtomicFunction | this_VLSVariable_2= ruleVLSVariable | this_VLSDefinedTerm_3= ruleVLSDefinedTerm )"; + } + } + + + public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000088000102L}); + public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000010000002L}); + public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x00000000000000F0L}); + public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000060000000L}); + public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000100000000L}); + public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x00000000000000B0L}); + public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000020000000L}); + public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0003FFF800000000L}); + public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x6803FFF900007EB0L,0x000000000000001CL}); + public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000220000000L}); + public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0007FFFB40000030L}); + public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000200000000L}); + public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000400000000L}); + public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0003FFF940000032L}); + public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000140000002L}); + public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0007FFF960000030L}); + public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000040000002L}); + public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000020000002L}); + public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x07F8000000000002L}); + public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0200000000000002L}); + public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0400000000000002L}); + public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0004000000000000L}); + public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x1000000000000000L}); + public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x8000000000000002L,0x0000000000000003L}); + public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0003FFF800007EB0L,0x000000000000001CL}); + public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000100000002L}); + +} \ No newline at end of file diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/scoping/AbstractVampireLanguageScopeProvider.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/scoping/AbstractVampireLanguageScopeProvider.java new file mode 100644 index 00000000..0f5a902d --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/scoping/AbstractVampireLanguageScopeProvider.java @@ -0,0 +1,9 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.scoping; + +import org.eclipse.xtext.scoping.impl.DelegatingScopeProvider; + +public abstract class AbstractVampireLanguageScopeProvider extends DelegatingScopeProvider { +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/serializer/VampireLanguageSemanticSequencer.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/serializer/VampireLanguageSemanticSequencer.java new file mode 100644 index 00000000..aacb9647 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/serializer/VampireLanguageSemanticSequencer.java @@ -0,0 +1,1011 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.serializer; + +import ca.mcgill.ecse.dslreasoner.services.VampireLanguageGrammarAccess; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAssignment; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSDoubleQuote; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFalse; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInclude; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInt; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSLess; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSName; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNand; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNor; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRational; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSReal; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRevImplies; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTrue; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSXnor; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; +import com.google.inject.Inject; +import java.util.Set; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.xtext.Action; +import org.eclipse.xtext.Parameter; +import org.eclipse.xtext.ParserRule; +import org.eclipse.xtext.serializer.ISerializationContext; +import org.eclipse.xtext.serializer.acceptor.SequenceFeeder; +import org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer; +import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient; + +@SuppressWarnings("all") +public class VampireLanguageSemanticSequencer extends AbstractDelegatingSemanticSequencer { + + @Inject + private VampireLanguageGrammarAccess grammarAccess; + + @Override + public void sequence(ISerializationContext context, EObject semanticObject) { + EPackage epackage = semanticObject.eClass().getEPackage(); + ParserRule rule = context.getParserRule(); + Action action = context.getAssignedAction(); + Set parameters = context.getEnabledBooleanParameters(); + if (epackage == VampireLanguagePackage.eINSTANCE) + switch (semanticObject.eClass().getClassifierID()) { + case VampireLanguagePackage.VLS_AND: + sequence_VLSBinary(context, (VLSAnd) semanticObject); + return; + case VampireLanguagePackage.VLS_ANNOTATION: + if (rule == grammarAccess.getVLSAnnotationTermsRule()) { + sequence_VLSAnnotationTerms(context, (VLSAnnotation) semanticObject); + return; + } + else if (rule == grammarAccess.getVLSAnnotationRule()) { + sequence_VLSAnnotation(context, (VLSAnnotation) semanticObject); + return; + } + else break; + case VampireLanguagePackage.VLS_ASSIGNMENT: + sequence_VLSUnaryInfix(context, (VLSAssignment) semanticObject); + return; + case VampireLanguagePackage.VLS_COMMENT: + sequence_VLSComment(context, (VLSComment) semanticObject); + return; + case VampireLanguagePackage.VLS_CONSTANT: + sequence_VLSAtomicConstant(context, (VLSConstant) semanticObject); + return; + case VampireLanguagePackage.VLS_DOUBLE_QUOTE: + sequence_VLSDefinedTerm(context, (VLSDoubleQuote) semanticObject); + return; + case VampireLanguagePackage.VLS_EQUALITY: + sequence_VLSUnaryInfix(context, (VLSEquality) semanticObject); + return; + case VampireLanguagePackage.VLS_EQUIVALENT: + sequence_VLSBinary(context, (VLSEquivalent) semanticObject); + return; + case VampireLanguagePackage.VLS_EXISTENTIAL_QUANTIFIER: + sequence_VLSExistentialQuantifier(context, (VLSExistentialQuantifier) semanticObject); + return; + case VampireLanguagePackage.VLS_FALSE: + sequence_VLSAtomicConstant(context, (VLSFalse) semanticObject); + return; + case VampireLanguagePackage.VLS_FOF_FORMULA: + sequence_VLSFofFormula(context, (VLSFofFormula) semanticObject); + return; + case VampireLanguagePackage.VLS_FUNCTION: + sequence_VLSAtomicFunction(context, (VLSFunction) semanticObject); + return; + case VampireLanguagePackage.VLS_FUNCTION_FOF: + sequence_VLSFunctionFof(context, (VLSFunctionFof) semanticObject); + return; + case VampireLanguagePackage.VLS_IMPLIES: + sequence_VLSBinary(context, (VLSImplies) semanticObject); + return; + case VampireLanguagePackage.VLS_INCLUDE: + sequence_VLSInclude(context, (VLSInclude) semanticObject); + return; + case VampireLanguagePackage.VLS_INEQUALITY: + sequence_VLSUnaryInfix(context, (VLSInequality) semanticObject); + return; + case VampireLanguagePackage.VLS_INT: + sequence_VLSDefinedTerm(context, (VLSInt) semanticObject); + return; + case VampireLanguagePackage.VLS_LESS: + sequence_VLSAtomicFunction(context, (VLSLess) semanticObject); + return; + case VampireLanguagePackage.VLS_NAME: + sequence_VLSName(context, (VLSName) semanticObject); + return; + case VampireLanguagePackage.VLS_NAND: + sequence_VLSBinary(context, (VLSNand) semanticObject); + return; + case VampireLanguagePackage.VLS_NOR: + sequence_VLSBinary(context, (VLSNor) semanticObject); + return; + case VampireLanguagePackage.VLS_OR: + sequence_VLSBinary(context, (VLSOr) semanticObject); + return; + case VampireLanguagePackage.VLS_RATIONAL: + sequence_VLSDefinedTerm(context, (VLSRational) semanticObject); + return; + case VampireLanguagePackage.VLS_REAL: + sequence_VLSDefinedTerm(context, (VLSReal) semanticObject); + return; + case VampireLanguagePackage.VLS_REV_IMPLIES: + sequence_VLSBinary(context, (VLSRevImplies) semanticObject); + return; + case VampireLanguagePackage.VLS_TRUE: + sequence_VLSAtomicConstant(context, (VLSTrue) semanticObject); + return; + case VampireLanguagePackage.VLS_UNARY_NEGATION: + sequence_VLSUnaryNegation(context, (VLSUnaryNegation) semanticObject); + return; + case VampireLanguagePackage.VLS_UNIVERSAL_QUANTIFIER: + sequence_VLSUniversalQuantifier(context, (VLSUniversalQuantifier) semanticObject); + return; + case VampireLanguagePackage.VLS_VARIABLE: + sequence_VLSVariable(context, (VLSVariable) semanticObject); + return; + case VampireLanguagePackage.VLS_XNOR: + sequence_VLSBinary(context, (VLSXnor) semanticObject); + return; + case VampireLanguagePackage.VAMPIRE_MODEL: + sequence_VampireModel(context, (VampireModel) semanticObject); + return; + } + if (errorAcceptor != null) + errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context)); + } + + /** + * Contexts: + * VLSAnnotationTerms returns VLSAnnotation + * + * Constraint: + * (terms+=VLSAnnotation terms+=VLSAnnotation*) + */ + protected void sequence_VLSAnnotationTerms(ISerializationContext context, VLSAnnotation semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * VLSAnnotation returns VLSAnnotation + * + * Constraint: + * (((name=LOWER_WORD_ID | name=SINGLE_QUOTE | name=VLSRole) followup=VLSAnnotationTerms) | followup=VLSAnnotationTerms)? + */ + protected void sequence_VLSAnnotation(ISerializationContext context, VLSAnnotation semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * VLSTerm returns VLSConstant + * VLSBinary returns VLSConstant + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSConstant + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSConstant + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSConstant + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSConstant + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSConstant + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSConstant + * VLSBinary.VLSAnd_1_1_0 returns VLSConstant + * VLSBinary.VLSOr_1_2_0 returns VLSConstant + * VLSUnitaryFormula returns VLSConstant + * VLSUnaryInfix returns VLSConstant + * VLSUnaryInfix.VLSInequality_1_0_0_0 returns VLSConstant + * VLSUnaryInfix.VLSEquality_1_0_1_0 returns VLSConstant + * VLSUnaryInfix.VLSAssignment_1_0_2_0 returns VLSConstant + * VLSAtomic returns VLSConstant + * VLSAtomicConstant returns VLSConstant + * + * Constraint: + * (name=LOWER_WORD_ID | name=SINGLE_QUOTE | name=DOLLAR_ID | name=DOUBLE_DOLLAR_ID | name=VLSRole) + */ + protected void sequence_VLSAtomicConstant(ISerializationContext context, VLSConstant semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * VLSTerm returns VLSFalse + * VLSBinary returns VLSFalse + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSFalse + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSFalse + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSFalse + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSFalse + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSFalse + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSFalse + * VLSBinary.VLSAnd_1_1_0 returns VLSFalse + * VLSBinary.VLSOr_1_2_0 returns VLSFalse + * VLSUnitaryFormula returns VLSFalse + * VLSUnaryInfix returns VLSFalse + * VLSUnaryInfix.VLSInequality_1_0_0_0 returns VLSFalse + * VLSUnaryInfix.VLSEquality_1_0_1_0 returns VLSFalse + * VLSUnaryInfix.VLSAssignment_1_0_2_0 returns VLSFalse + * VLSAtomic returns VLSFalse + * VLSAtomicConstant returns VLSFalse + * + * Constraint: + * {VLSFalse} + */ + protected void sequence_VLSAtomicConstant(ISerializationContext context, VLSFalse semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * VLSTerm returns VLSTrue + * VLSBinary returns VLSTrue + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSTrue + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSTrue + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSTrue + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSTrue + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSTrue + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSTrue + * VLSBinary.VLSAnd_1_1_0 returns VLSTrue + * VLSBinary.VLSOr_1_2_0 returns VLSTrue + * VLSUnitaryFormula returns VLSTrue + * VLSUnaryInfix returns VLSTrue + * VLSUnaryInfix.VLSInequality_1_0_0_0 returns VLSTrue + * VLSUnaryInfix.VLSEquality_1_0_1_0 returns VLSTrue + * VLSUnaryInfix.VLSAssignment_1_0_2_0 returns VLSTrue + * VLSAtomic returns VLSTrue + * VLSAtomicConstant returns VLSTrue + * + * Constraint: + * {VLSTrue} + */ + protected void sequence_VLSAtomicConstant(ISerializationContext context, VLSTrue semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * VLSTerm returns VLSFunction + * VLSBinary returns VLSFunction + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSFunction + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSFunction + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSFunction + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSFunction + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSFunction + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSFunction + * VLSBinary.VLSAnd_1_1_0 returns VLSFunction + * VLSBinary.VLSOr_1_2_0 returns VLSFunction + * VLSUnitaryFormula returns VLSFunction + * VLSUnaryInfix returns VLSFunction + * VLSUnaryInfix.VLSInequality_1_0_0_0 returns VLSFunction + * VLSUnaryInfix.VLSEquality_1_0_1_0 returns VLSFunction + * VLSUnaryInfix.VLSAssignment_1_0_2_0 returns VLSFunction + * VLSAtomic returns VLSFunction + * VLSAtomicFunction returns VLSFunction + * + * Constraint: + * ( + * (constant=LOWER_WORD_ID | constant=SINGLE_QUOTE | constant=DOLLAR_ID | constant=DOUBLE_DOLLAR_ID | constant=VLSRole) + * terms+=VLSFofTerm + * terms+=VLSFofTerm* + * ) + */ + protected void sequence_VLSAtomicFunction(ISerializationContext context, VLSFunction semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * VLSTerm returns VLSLess + * VLSBinary returns VLSLess + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSLess + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSLess + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSLess + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSLess + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSLess + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSLess + * VLSBinary.VLSAnd_1_1_0 returns VLSLess + * VLSBinary.VLSOr_1_2_0 returns VLSLess + * VLSUnitaryFormula returns VLSLess + * VLSUnaryInfix returns VLSLess + * VLSUnaryInfix.VLSInequality_1_0_0_0 returns VLSLess + * VLSUnaryInfix.VLSEquality_1_0_1_0 returns VLSLess + * VLSUnaryInfix.VLSAssignment_1_0_2_0 returns VLSLess + * VLSAtomic returns VLSLess + * VLSAtomicFunction returns VLSLess + * + * Constraint: + * (name='$less' terms+=VLSFofTerm terms+=VLSFofTerm) + */ + protected void sequence_VLSAtomicFunction(ISerializationContext context, VLSLess semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * VLSTerm returns VLSAnd + * VLSBinary returns VLSAnd + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSAnd + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSAnd + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSAnd + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSAnd + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSAnd + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSAnd + * VLSBinary.VLSAnd_1_1_0 returns VLSAnd + * VLSBinary.VLSOr_1_2_0 returns VLSAnd + * VLSUnitaryFormula returns VLSAnd + * + * Constraint: + * (left=VLSBinary_VLSAnd_1_1_0 right=VLSUnitaryFormula) + */ + protected void sequence_VLSBinary(ISerializationContext context, VLSAnd semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_AND__LEFT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_AND__LEFT)); + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_AND__RIGHT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_AND__RIGHT)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getVLSBinaryAccess().getVLSAndLeftAction_1_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_1_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * VLSTerm returns VLSEquivalent + * VLSBinary returns VLSEquivalent + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSEquivalent + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSEquivalent + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSEquivalent + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSEquivalent + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSEquivalent + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSEquivalent + * VLSBinary.VLSAnd_1_1_0 returns VLSEquivalent + * VLSBinary.VLSOr_1_2_0 returns VLSEquivalent + * VLSUnitaryFormula returns VLSEquivalent + * + * Constraint: + * (left=VLSBinary_VLSEquivalent_1_0_0_0_0 right=VLSUnitaryFormula) + */ + protected void sequence_VLSBinary(ISerializationContext context, VLSEquivalent semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_EQUIVALENT__LEFT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_EQUIVALENT__LEFT)); + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_EQUIVALENT__RIGHT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_EQUIVALENT__RIGHT)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getVLSBinaryAccess().getVLSEquivalentLeftAction_1_0_0_0_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_0_1_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * VLSTerm returns VLSImplies + * VLSBinary returns VLSImplies + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSImplies + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSImplies + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSImplies + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSImplies + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSImplies + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSImplies + * VLSBinary.VLSAnd_1_1_0 returns VLSImplies + * VLSBinary.VLSOr_1_2_0 returns VLSImplies + * VLSUnitaryFormula returns VLSImplies + * + * Constraint: + * (left=VLSBinary_VLSImplies_1_0_0_1_0 right=VLSUnitaryFormula) + */ + protected void sequence_VLSBinary(ISerializationContext context, VLSImplies semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_IMPLIES__LEFT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_IMPLIES__LEFT)); + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_IMPLIES__RIGHT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_IMPLIES__RIGHT)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getVLSBinaryAccess().getVLSImpliesLeftAction_1_0_0_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_0_1_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * VLSTerm returns VLSNand + * VLSBinary returns VLSNand + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSNand + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSNand + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSNand + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSNand + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSNand + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSNand + * VLSBinary.VLSAnd_1_1_0 returns VLSNand + * VLSBinary.VLSOr_1_2_0 returns VLSNand + * VLSUnitaryFormula returns VLSNand + * + * Constraint: + * (left=VLSBinary_VLSNand_1_0_0_5_0 right=VLSUnitaryFormula) + */ + protected void sequence_VLSBinary(ISerializationContext context, VLSNand semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_NAND__LEFT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_NAND__LEFT)); + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_NAND__RIGHT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_NAND__RIGHT)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getVLSBinaryAccess().getVLSNandLeftAction_1_0_0_5_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_0_1_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * VLSTerm returns VLSNor + * VLSBinary returns VLSNor + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSNor + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSNor + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSNor + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSNor + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSNor + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSNor + * VLSBinary.VLSAnd_1_1_0 returns VLSNor + * VLSBinary.VLSOr_1_2_0 returns VLSNor + * VLSUnitaryFormula returns VLSNor + * + * Constraint: + * (left=VLSBinary_VLSNor_1_0_0_4_0 right=VLSUnitaryFormula) + */ + protected void sequence_VLSBinary(ISerializationContext context, VLSNor semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_NOR__LEFT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_NOR__LEFT)); + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_NOR__RIGHT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_NOR__RIGHT)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getVLSBinaryAccess().getVLSNorLeftAction_1_0_0_4_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_0_1_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * VLSTerm returns VLSOr + * VLSBinary returns VLSOr + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSOr + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSOr + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSOr + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSOr + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSOr + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSOr + * VLSBinary.VLSAnd_1_1_0 returns VLSOr + * VLSBinary.VLSOr_1_2_0 returns VLSOr + * VLSUnitaryFormula returns VLSOr + * + * Constraint: + * (left=VLSBinary_VLSOr_1_2_0 right=VLSUnitaryFormula) + */ + protected void sequence_VLSBinary(ISerializationContext context, VLSOr semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_OR__LEFT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_OR__LEFT)); + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_OR__RIGHT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_OR__RIGHT)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getVLSBinaryAccess().getVLSOrLeftAction_1_2_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_2_2_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * VLSTerm returns VLSRevImplies + * VLSBinary returns VLSRevImplies + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSRevImplies + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSRevImplies + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSRevImplies + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSRevImplies + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSRevImplies + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSRevImplies + * VLSBinary.VLSAnd_1_1_0 returns VLSRevImplies + * VLSBinary.VLSOr_1_2_0 returns VLSRevImplies + * VLSUnitaryFormula returns VLSRevImplies + * + * Constraint: + * (left=VLSBinary_VLSRevImplies_1_0_0_2_0 right=VLSUnitaryFormula) + */ + protected void sequence_VLSBinary(ISerializationContext context, VLSRevImplies semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_REV_IMPLIES__LEFT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_REV_IMPLIES__LEFT)); + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_REV_IMPLIES__RIGHT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_REV_IMPLIES__RIGHT)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getVLSBinaryAccess().getVLSRevImpliesLeftAction_1_0_0_2_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_0_1_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * VLSTerm returns VLSXnor + * VLSBinary returns VLSXnor + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSXnor + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSXnor + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSXnor + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSXnor + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSXnor + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSXnor + * VLSBinary.VLSAnd_1_1_0 returns VLSXnor + * VLSBinary.VLSOr_1_2_0 returns VLSXnor + * VLSUnitaryFormula returns VLSXnor + * + * Constraint: + * (left=VLSBinary_VLSXnor_1_0_0_3_0 right=VLSUnitaryFormula) + */ + protected void sequence_VLSBinary(ISerializationContext context, VLSXnor semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_XNOR__LEFT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_XNOR__LEFT)); + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_XNOR__RIGHT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_XNOR__RIGHT)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getVLSBinaryAccess().getVLSXnorLeftAction_1_0_0_3_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getVLSBinaryAccess().getRightVLSUnitaryFormulaParserRuleCall_1_0_1_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * VLSComment returns VLSComment + * + * Constraint: + * comment=SINGLE_COMMENT + */ + protected void sequence_VLSComment(ISerializationContext context, VLSComment semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_COMMENT__COMMENT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_COMMENT__COMMENT)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getVLSCommentAccess().getCommentSINGLE_COMMENTTerminalRuleCall_0(), semanticObject.getComment()); + feeder.finish(); + } + + + /** + * Contexts: + * VLSTerm returns VLSDoubleQuote + * VLSBinary returns VLSDoubleQuote + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSDoubleQuote + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSDoubleQuote + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSDoubleQuote + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSDoubleQuote + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSDoubleQuote + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSDoubleQuote + * VLSBinary.VLSAnd_1_1_0 returns VLSDoubleQuote + * VLSBinary.VLSOr_1_2_0 returns VLSDoubleQuote + * VLSUnitaryFormula returns VLSDoubleQuote + * VLSUnaryInfix returns VLSDoubleQuote + * VLSUnaryInfix.VLSInequality_1_0_0_0 returns VLSDoubleQuote + * VLSUnaryInfix.VLSEquality_1_0_1_0 returns VLSDoubleQuote + * VLSUnaryInfix.VLSAssignment_1_0_2_0 returns VLSDoubleQuote + * VLSAtomic returns VLSDoubleQuote + * VLSFofTerm returns VLSDoubleQuote + * VLSDefinedTerm returns VLSDoubleQuote + * + * Constraint: + * value=DOUBLE_QUOTE + */ + protected void sequence_VLSDefinedTerm(ISerializationContext context, VLSDoubleQuote semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_DEFINED_TERM__VALUE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_DEFINED_TERM__VALUE)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getVLSDefinedTermAccess().getValueDOUBLE_QUOTETerminalRuleCall_3_1_0(), semanticObject.getValue()); + feeder.finish(); + } + + + /** + * Contexts: + * VLSTerm returns VLSInt + * VLSBinary returns VLSInt + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSInt + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSInt + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSInt + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSInt + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSInt + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSInt + * VLSBinary.VLSAnd_1_1_0 returns VLSInt + * VLSBinary.VLSOr_1_2_0 returns VLSInt + * VLSUnitaryFormula returns VLSInt + * VLSUnaryInfix returns VLSInt + * VLSUnaryInfix.VLSInequality_1_0_0_0 returns VLSInt + * VLSUnaryInfix.VLSEquality_1_0_1_0 returns VLSInt + * VLSUnaryInfix.VLSAssignment_1_0_2_0 returns VLSInt + * VLSAtomic returns VLSInt + * VLSFofTerm returns VLSInt + * VLSDefinedTerm returns VLSInt + * + * Constraint: + * value=SIGNED_LITERAL + */ + protected void sequence_VLSDefinedTerm(ISerializationContext context, VLSInt semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_DEFINED_TERM__VALUE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_DEFINED_TERM__VALUE)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_LITERALTerminalRuleCall_0_1_0(), semanticObject.getValue()); + feeder.finish(); + } + + + /** + * Contexts: + * VLSTerm returns VLSRational + * VLSBinary returns VLSRational + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSRational + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSRational + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSRational + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSRational + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSRational + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSRational + * VLSBinary.VLSAnd_1_1_0 returns VLSRational + * VLSBinary.VLSOr_1_2_0 returns VLSRational + * VLSUnitaryFormula returns VLSRational + * VLSUnaryInfix returns VLSRational + * VLSUnaryInfix.VLSInequality_1_0_0_0 returns VLSRational + * VLSUnaryInfix.VLSEquality_1_0_1_0 returns VLSRational + * VLSUnaryInfix.VLSAssignment_1_0_2_0 returns VLSRational + * VLSAtomic returns VLSRational + * VLSFofTerm returns VLSRational + * VLSDefinedTerm returns VLSRational + * + * Constraint: + * value=SIGNED_RAT_ID + */ + protected void sequence_VLSDefinedTerm(ISerializationContext context, VLSRational semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_DEFINED_TERM__VALUE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_DEFINED_TERM__VALUE)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_RAT_IDTerminalRuleCall_2_1_0(), semanticObject.getValue()); + feeder.finish(); + } + + + /** + * Contexts: + * VLSTerm returns VLSReal + * VLSBinary returns VLSReal + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSReal + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSReal + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSReal + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSReal + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSReal + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSReal + * VLSBinary.VLSAnd_1_1_0 returns VLSReal + * VLSBinary.VLSOr_1_2_0 returns VLSReal + * VLSUnitaryFormula returns VLSReal + * VLSUnaryInfix returns VLSReal + * VLSUnaryInfix.VLSInequality_1_0_0_0 returns VLSReal + * VLSUnaryInfix.VLSEquality_1_0_1_0 returns VLSReal + * VLSUnaryInfix.VLSAssignment_1_0_2_0 returns VLSReal + * VLSAtomic returns VLSReal + * VLSFofTerm returns VLSReal + * VLSDefinedTerm returns VLSReal + * + * Constraint: + * value=SIGNED_REAL_ID + */ + protected void sequence_VLSDefinedTerm(ISerializationContext context, VLSReal semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_DEFINED_TERM__VALUE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_DEFINED_TERM__VALUE)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getVLSDefinedTermAccess().getValueSIGNED_REAL_IDTerminalRuleCall_1_1_0(), semanticObject.getValue()); + feeder.finish(); + } + + + /** + * Contexts: + * VLSTerm returns VLSExistentialQuantifier + * VLSBinary returns VLSExistentialQuantifier + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSExistentialQuantifier + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSExistentialQuantifier + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSExistentialQuantifier + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSExistentialQuantifier + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSExistentialQuantifier + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSExistentialQuantifier + * VLSBinary.VLSAnd_1_1_0 returns VLSExistentialQuantifier + * VLSBinary.VLSOr_1_2_0 returns VLSExistentialQuantifier + * VLSUnitaryFormula returns VLSExistentialQuantifier + * VLSExistentialQuantifier returns VLSExistentialQuantifier + * + * Constraint: + * (variables+=VLSVariable variables+=VLSVariable* operand=VLSUnitaryFormula) + */ + protected void sequence_VLSExistentialQuantifier(ISerializationContext context, VLSExistentialQuantifier semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * VLSFofFormula returns VLSFofFormula + * + * Constraint: + * ((name=LOWER_WORD_ID | name=SIGNED_LITERAL | name=SINGLE_QUOTE) fofRole=VLSRole fofFormula=VLSTerm annotations=VLSAnnotation?) + */ + protected void sequence_VLSFofFormula(ISerializationContext context, VLSFofFormula semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * VLSFofTerm returns VLSFunctionFof + * VLSFunctionFof returns VLSFunctionFof + * + * Constraint: + * ((functor=LOWER_WORD_ID | functor=SINGLE_QUOTE | functor=DOLLAR_ID | functor=DOUBLE_DOLLAR_ID) (terms+=VLSFofTerm terms+=VLSFofTerm*)?) + */ + protected void sequence_VLSFunctionFof(ISerializationContext context, VLSFunctionFof semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * VLSInclude returns VLSInclude + * + * Constraint: + * (fileName=SINGLE_QUOTE (names+=VLSName names+=VLSName*)?) + */ + protected void sequence_VLSInclude(ISerializationContext context, VLSInclude semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * VLSName returns VLSName + * + * Constraint: + * (name=LOWER_WORD_ID | name=SINGLE_QUOTE | name=LITERAL | name=SIGNED_LITERAL) + */ + protected void sequence_VLSName(ISerializationContext context, VLSName semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * VLSTerm returns VLSAssignment + * VLSBinary returns VLSAssignment + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSAssignment + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSAssignment + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSAssignment + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSAssignment + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSAssignment + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSAssignment + * VLSBinary.VLSAnd_1_1_0 returns VLSAssignment + * VLSBinary.VLSOr_1_2_0 returns VLSAssignment + * VLSUnitaryFormula returns VLSAssignment + * VLSUnaryInfix returns VLSAssignment + * + * Constraint: + * (left=VLSUnaryInfix_VLSAssignment_1_0_2_0 right=VLSAtomic) + */ + protected void sequence_VLSUnaryInfix(ISerializationContext context, VLSAssignment semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_ASSIGNMENT__LEFT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_ASSIGNMENT__LEFT)); + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_ASSIGNMENT__RIGHT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_ASSIGNMENT__RIGHT)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getVLSUnaryInfixAccess().getVLSAssignmentLeftAction_1_0_2_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getVLSUnaryInfixAccess().getRightVLSAtomicParserRuleCall_1_1_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * VLSTerm returns VLSEquality + * VLSBinary returns VLSEquality + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSEquality + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSEquality + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSEquality + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSEquality + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSEquality + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSEquality + * VLSBinary.VLSAnd_1_1_0 returns VLSEquality + * VLSBinary.VLSOr_1_2_0 returns VLSEquality + * VLSUnitaryFormula returns VLSEquality + * VLSUnaryInfix returns VLSEquality + * + * Constraint: + * (left=VLSUnaryInfix_VLSEquality_1_0_1_0 right=VLSAtomic) + */ + protected void sequence_VLSUnaryInfix(ISerializationContext context, VLSEquality semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_EQUALITY__LEFT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_EQUALITY__LEFT)); + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_EQUALITY__RIGHT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_EQUALITY__RIGHT)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getVLSUnaryInfixAccess().getVLSEqualityLeftAction_1_0_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getVLSUnaryInfixAccess().getRightVLSAtomicParserRuleCall_1_1_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * VLSTerm returns VLSInequality + * VLSBinary returns VLSInequality + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSInequality + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSInequality + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSInequality + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSInequality + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSInequality + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSInequality + * VLSBinary.VLSAnd_1_1_0 returns VLSInequality + * VLSBinary.VLSOr_1_2_0 returns VLSInequality + * VLSUnitaryFormula returns VLSInequality + * VLSUnaryInfix returns VLSInequality + * + * Constraint: + * (left=VLSUnaryInfix_VLSInequality_1_0_0_0 right=VLSAtomic) + */ + protected void sequence_VLSUnaryInfix(ISerializationContext context, VLSInequality semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_INEQUALITY__LEFT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_INEQUALITY__LEFT)); + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_INEQUALITY__RIGHT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_INEQUALITY__RIGHT)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getVLSUnaryInfixAccess().getVLSInequalityLeftAction_1_0_0_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getVLSUnaryInfixAccess().getRightVLSAtomicParserRuleCall_1_1_0(), semanticObject.getRight()); + feeder.finish(); + } + + + /** + * Contexts: + * VLSTerm returns VLSUnaryNegation + * VLSBinary returns VLSUnaryNegation + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSUnaryNegation + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSUnaryNegation + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSUnaryNegation + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSUnaryNegation + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSUnaryNegation + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSUnaryNegation + * VLSBinary.VLSAnd_1_1_0 returns VLSUnaryNegation + * VLSBinary.VLSOr_1_2_0 returns VLSUnaryNegation + * VLSUnitaryFormula returns VLSUnaryNegation + * VLSUnaryNegation returns VLSUnaryNegation + * + * Constraint: + * operand=VLSUnitaryFormula + */ + protected void sequence_VLSUnaryNegation(ISerializationContext context, VLSUnaryNegation semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_UNARY_NEGATION__OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_UNARY_NEGATION__OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getVLSUnaryNegationAccess().getOperandVLSUnitaryFormulaParserRuleCall_2_0(), semanticObject.getOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * VLSTerm returns VLSUniversalQuantifier + * VLSBinary returns VLSUniversalQuantifier + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSUniversalQuantifier + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSUniversalQuantifier + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSUniversalQuantifier + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSUniversalQuantifier + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSUniversalQuantifier + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSUniversalQuantifier + * VLSBinary.VLSAnd_1_1_0 returns VLSUniversalQuantifier + * VLSBinary.VLSOr_1_2_0 returns VLSUniversalQuantifier + * VLSUnitaryFormula returns VLSUniversalQuantifier + * VLSUniversalQuantifier returns VLSUniversalQuantifier + * + * Constraint: + * (variables+=VLSVariable variables+=VLSVariable* operand=VLSUnitaryFormula) + */ + protected void sequence_VLSUniversalQuantifier(ISerializationContext context, VLSUniversalQuantifier semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * VLSTerm returns VLSVariable + * VLSBinary returns VLSVariable + * VLSBinary.VLSEquivalent_1_0_0_0_0 returns VLSVariable + * VLSBinary.VLSImplies_1_0_0_1_0 returns VLSVariable + * VLSBinary.VLSRevImplies_1_0_0_2_0 returns VLSVariable + * VLSBinary.VLSXnor_1_0_0_3_0 returns VLSVariable + * VLSBinary.VLSNor_1_0_0_4_0 returns VLSVariable + * VLSBinary.VLSNand_1_0_0_5_0 returns VLSVariable + * VLSBinary.VLSAnd_1_1_0 returns VLSVariable + * VLSBinary.VLSOr_1_2_0 returns VLSVariable + * VLSUnitaryFormula returns VLSVariable + * VLSUnaryInfix returns VLSVariable + * VLSUnaryInfix.VLSInequality_1_0_0_0 returns VLSVariable + * VLSUnaryInfix.VLSEquality_1_0_1_0 returns VLSVariable + * VLSUnaryInfix.VLSAssignment_1_0_2_0 returns VLSVariable + * VLSAtomic returns VLSVariable + * VLSVariable returns VLSVariable + * VLSFofTerm returns VLSVariable + * + * Constraint: + * name=UPPER_WORD_ID + */ + protected void sequence_VLSVariable(ISerializationContext context, VLSVariable semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, VampireLanguagePackage.Literals.VLS_VARIABLE__NAME) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, VampireLanguagePackage.Literals.VLS_VARIABLE__NAME)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getVLSVariableAccess().getNameUPPER_WORD_IDTerminalRuleCall_0(), semanticObject.getName()); + feeder.finish(); + } + + + /** + * Contexts: + * VampireModel returns VampireModel + * + * Constraint: + * (includes+=VLSInclude | comments+=VLSComment | formulas+=VLSFofFormula)+ + */ + protected void sequence_VampireModel(ISerializationContext context, VampireModel semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/serializer/VampireLanguageSyntacticSequencer.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/serializer/VampireLanguageSyntacticSequencer.java new file mode 100644 index 00000000..5c1a720e --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/serializer/VampireLanguageSyntacticSequencer.java @@ -0,0 +1,151 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.serializer; + +import ca.mcgill.ecse.dslreasoner.services.VampireLanguageGrammarAccess; +import com.google.inject.Inject; +import java.util.List; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.IGrammarAccess; +import org.eclipse.xtext.RuleCall; +import org.eclipse.xtext.nodemodel.INode; +import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias; +import org.eclipse.xtext.serializer.analysis.GrammarAlias.TokenAlias; +import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynNavigable; +import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition; +import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer; + +@SuppressWarnings("all") +public class VampireLanguageSyntacticSequencer extends AbstractSyntacticSequencer { + + protected VampireLanguageGrammarAccess grammarAccess; + protected AbstractElementAlias match_VLSAnnotation_LeftSquareBracketKeyword_0_q; + protected AbstractElementAlias match_VLSAnnotation_RightSquareBracketKeyword_3_q; + protected AbstractElementAlias match_VLSUnitaryFormula_LeftParenthesisKeyword_4_0_a; + protected AbstractElementAlias match_VLSUnitaryFormula_LeftParenthesisKeyword_4_0_p; + + @Inject + protected void init(IGrammarAccess access) { + grammarAccess = (VampireLanguageGrammarAccess) access; + match_VLSAnnotation_LeftSquareBracketKeyword_0_q = new TokenAlias(false, true, grammarAccess.getVLSAnnotationAccess().getLeftSquareBracketKeyword_0()); + match_VLSAnnotation_RightSquareBracketKeyword_3_q = new TokenAlias(false, true, grammarAccess.getVLSAnnotationAccess().getRightSquareBracketKeyword_3()); + match_VLSUnitaryFormula_LeftParenthesisKeyword_4_0_a = new TokenAlias(true, true, grammarAccess.getVLSUnitaryFormulaAccess().getLeftParenthesisKeyword_4_0()); + match_VLSUnitaryFormula_LeftParenthesisKeyword_4_0_p = new TokenAlias(true, false, grammarAccess.getVLSUnitaryFormulaAccess().getLeftParenthesisKeyword_4_0()); + } + + @Override + protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) { + return ""; + } + + + @Override + protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) { + if (transition.getAmbiguousSyntaxes().isEmpty()) return; + List transitionNodes = collectNodes(fromNode, toNode); + for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) { + List syntaxNodes = getNodesFor(transitionNodes, syntax); + if (match_VLSAnnotation_LeftSquareBracketKeyword_0_q.equals(syntax)) + emit_VLSAnnotation_LeftSquareBracketKeyword_0_q(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_VLSAnnotation_RightSquareBracketKeyword_3_q.equals(syntax)) + emit_VLSAnnotation_RightSquareBracketKeyword_3_q(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_VLSUnitaryFormula_LeftParenthesisKeyword_4_0_a.equals(syntax)) + emit_VLSUnitaryFormula_LeftParenthesisKeyword_4_0_a(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_VLSUnitaryFormula_LeftParenthesisKeyword_4_0_p.equals(syntax)) + emit_VLSUnitaryFormula_LeftParenthesisKeyword_4_0_p(semanticObject, getLastNavigableState(), syntaxNodes); + else acceptNodes(getLastNavigableState(), syntaxNodes); + } + } + + /** + * Ambiguous syntax: + * '['? + * + * This ambiguous syntax occurs at: + * (rule start) (ambiguity) '(' followup=VLSAnnotationTerms + * (rule start) (ambiguity) ']'? (rule start) + * (rule start) (ambiguity) name=LOWER_WORD_ID + * (rule start) (ambiguity) name=SINGLE_QUOTE + * (rule start) (ambiguity) name=VLSRole + */ + protected void emit_VLSAnnotation_LeftSquareBracketKeyword_0_q(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * ']'? + * + * This ambiguous syntax occurs at: + * (rule start) '['? (ambiguity) (rule start) + * followup=VLSAnnotationTerms ')' (ambiguity) (rule end) + * name=LOWER_WORD_ID (ambiguity) (rule end) + * name=SINGLE_QUOTE (ambiguity) (rule end) + * name=VLSRole (ambiguity) (rule end) + */ + protected void emit_VLSAnnotation_RightSquareBracketKeyword_3_q(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * '('* + * + * This ambiguous syntax occurs at: + * (rule start) (ambiguity) '!' '[' variables+=VLSVariable + * (rule start) (ambiguity) '$false' (rule start) + * (rule start) (ambiguity) '$true' (rule start) + * (rule start) (ambiguity) '?' '[' variables+=VLSVariable + * (rule start) (ambiguity) '~' operand=VLSUnitaryFormula + * (rule start) (ambiguity) constant=DOLLAR_ID + * (rule start) (ambiguity) constant=DOUBLE_DOLLAR_ID + * (rule start) (ambiguity) constant=LOWER_WORD_ID + * (rule start) (ambiguity) constant=SINGLE_QUOTE + * (rule start) (ambiguity) constant=VLSRole + * (rule start) (ambiguity) name='$less' + * (rule start) (ambiguity) name=DOLLAR_ID + * (rule start) (ambiguity) name=DOUBLE_DOLLAR_ID + * (rule start) (ambiguity) name=LOWER_WORD_ID + * (rule start) (ambiguity) name=SINGLE_QUOTE + * (rule start) (ambiguity) name=UPPER_WORD_ID + * (rule start) (ambiguity) name=VLSRole + * (rule start) (ambiguity) value=DOUBLE_QUOTE + * (rule start) (ambiguity) value=SIGNED_LITERAL + * (rule start) (ambiguity) value=SIGNED_RAT_ID + * (rule start) (ambiguity) value=SIGNED_REAL_ID + * (rule start) (ambiguity) {VLSAnd.left=} + * (rule start) (ambiguity) {VLSAssignment.left=} + * (rule start) (ambiguity) {VLSEquality.left=} + * (rule start) (ambiguity) {VLSEquivalent.left=} + * (rule start) (ambiguity) {VLSImplies.left=} + * (rule start) (ambiguity) {VLSInequality.left=} + * (rule start) (ambiguity) {VLSNand.left=} + * (rule start) (ambiguity) {VLSNor.left=} + * (rule start) (ambiguity) {VLSOr.left=} + * (rule start) (ambiguity) {VLSRevImplies.left=} + * (rule start) (ambiguity) {VLSXnor.left=} + */ + protected void emit_VLSUnitaryFormula_LeftParenthesisKeyword_4_0_a(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * '('+ + * + * This ambiguous syntax occurs at: + * (rule start) (ambiguity) {VLSAnd.left=} + * (rule start) (ambiguity) {VLSEquivalent.left=} + * (rule start) (ambiguity) {VLSImplies.left=} + * (rule start) (ambiguity) {VLSNand.left=} + * (rule start) (ambiguity) {VLSNor.left=} + * (rule start) (ambiguity) {VLSOr.left=} + * (rule start) (ambiguity) {VLSRevImplies.left=} + * (rule start) (ambiguity) {VLSXnor.left=} + */ + protected void emit_VLSUnitaryFormula_LeftParenthesisKeyword_4_0_p(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/services/VampireLanguageGrammarAccess.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/services/VampireLanguageGrammarAccess.java new file mode 100644 index 00000000..4c2157c3 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/services/VampireLanguageGrammarAccess.java @@ -0,0 +1,2220 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.services; + +import com.google.inject.Inject; +import com.google.inject.Singleton; +import java.util.List; +import org.eclipse.xtext.Action; +import org.eclipse.xtext.Alternatives; +import org.eclipse.xtext.Assignment; +import org.eclipse.xtext.Grammar; +import org.eclipse.xtext.GrammarUtil; +import org.eclipse.xtext.Group; +import org.eclipse.xtext.Keyword; +import org.eclipse.xtext.ParserRule; +import org.eclipse.xtext.RuleCall; +import org.eclipse.xtext.TerminalRule; +import org.eclipse.xtext.common.services.TerminalsGrammarAccess; +import org.eclipse.xtext.service.AbstractElementFinder.AbstractGrammarElementFinder; +import org.eclipse.xtext.service.GrammarProvider; + +@Singleton +public class VampireLanguageGrammarAccess extends AbstractGrammarElementFinder { + + public class VampireModelElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VampireModel"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Assignment cIncludesAssignment_0 = (Assignment)cAlternatives.eContents().get(0); + private final RuleCall cIncludesVLSIncludeParserRuleCall_0_0 = (RuleCall)cIncludesAssignment_0.eContents().get(0); + private final Assignment cCommentsAssignment_1 = (Assignment)cAlternatives.eContents().get(1); + private final RuleCall cCommentsVLSCommentParserRuleCall_1_0 = (RuleCall)cCommentsAssignment_1.eContents().get(0); + private final Assignment cFormulasAssignment_2 = (Assignment)cAlternatives.eContents().get(2); + private final RuleCall cFormulasVLSFofFormulaParserRuleCall_2_0 = (RuleCall)cFormulasAssignment_2.eContents().get(0); + + ////@@@@@@@@@@@ + ////2 things TODO: + ////1. fix anotations (ln77) + ////2. can only use declared variables in formula (ln 158) + ////@@@@@@@@@@@ + //VampireModel: + // (includes+=VLSInclude | comments+=VLSComment | formulas+=VLSFofFormula)*; + @Override public ParserRule getRule() { return rule; } + + //(includes+=VLSInclude | comments+=VLSComment | formulas+=VLSFofFormula)* + public Alternatives getAlternatives() { return cAlternatives; } + + //includes+=VLSInclude + public Assignment getIncludesAssignment_0() { return cIncludesAssignment_0; } + + //VLSInclude + public RuleCall getIncludesVLSIncludeParserRuleCall_0_0() { return cIncludesVLSIncludeParserRuleCall_0_0; } + + //comments+=VLSComment + public Assignment getCommentsAssignment_1() { return cCommentsAssignment_1; } + + //VLSComment + public RuleCall getCommentsVLSCommentParserRuleCall_1_0() { return cCommentsVLSCommentParserRuleCall_1_0; } + + //formulas+=VLSFofFormula + public Assignment getFormulasAssignment_2() { return cFormulasAssignment_2; } + + //VLSFofFormula + public RuleCall getFormulasVLSFofFormulaParserRuleCall_2_0() { return cFormulasVLSFofFormulaParserRuleCall_2_0; } + } + public class VLSIncludeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSInclude"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cIncludeKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cFileNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cFileNameSINGLE_QUOTETerminalRuleCall_1_0 = (RuleCall)cFileNameAssignment_1.eContents().get(0); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Keyword cCommaLeftSquareBracketKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); + private final Assignment cNamesAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); + private final RuleCall cNamesVLSNameParserRuleCall_2_1_0 = (RuleCall)cNamesAssignment_2_1.eContents().get(0); + private final Group cGroup_2_2 = (Group)cGroup_2.eContents().get(2); + private final Keyword cCommaKeyword_2_2_0 = (Keyword)cGroup_2_2.eContents().get(0); + private final Assignment cNamesAssignment_2_2_1 = (Assignment)cGroup_2_2.eContents().get(1); + private final RuleCall cNamesVLSNameParserRuleCall_2_2_1_0 = (RuleCall)cNamesAssignment_2_2_1.eContents().get(0); + private final Keyword cRightSquareBracketKeyword_2_3 = (Keyword)cGroup_2.eContents().get(3); + + ////terminal ID: ( !('('|')'|'\r'|'\n') )+ ; + //////////////////////////////////// + //// VLS types + //////////////////////////////////// + //// + //VLSInclude: + // 'include(' fileName=SINGLE_QUOTE (',[' names+=VLSName (',' names+=VLSName)* ']')?; + @Override public ParserRule getRule() { return rule; } + + //'include(' fileName=SINGLE_QUOTE (',[' names+=VLSName (',' names+=VLSName)* ']')? + public Group getGroup() { return cGroup; } + + //'include(' + public Keyword getIncludeKeyword_0() { return cIncludeKeyword_0; } + + //fileName=SINGLE_QUOTE + public Assignment getFileNameAssignment_1() { return cFileNameAssignment_1; } + + //SINGLE_QUOTE + public RuleCall getFileNameSINGLE_QUOTETerminalRuleCall_1_0() { return cFileNameSINGLE_QUOTETerminalRuleCall_1_0; } + + //(',[' names+=VLSName (',' names+=VLSName)* ']')? + public Group getGroup_2() { return cGroup_2; } + + //',[' + public Keyword getCommaLeftSquareBracketKeyword_2_0() { return cCommaLeftSquareBracketKeyword_2_0; } + + //names+=VLSName + public Assignment getNamesAssignment_2_1() { return cNamesAssignment_2_1; } + + //VLSName + public RuleCall getNamesVLSNameParserRuleCall_2_1_0() { return cNamesVLSNameParserRuleCall_2_1_0; } + + //(',' names+=VLSName)* + public Group getGroup_2_2() { return cGroup_2_2; } + + //',' + public Keyword getCommaKeyword_2_2_0() { return cCommaKeyword_2_2_0; } + + //names+=VLSName + public Assignment getNamesAssignment_2_2_1() { return cNamesAssignment_2_2_1; } + + //VLSName + public RuleCall getNamesVLSNameParserRuleCall_2_2_1_0() { return cNamesVLSNameParserRuleCall_2_2_1_0; } + + //']' + public Keyword getRightSquareBracketKeyword_2_3() { return cRightSquareBracketKeyword_2_3; } + } + public class VLSNameElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSName"); + private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1); + private final Alternatives cNameAlternatives_0 = (Alternatives)cNameAssignment.eContents().get(0); + private final RuleCall cNameLOWER_WORD_IDTerminalRuleCall_0_0 = (RuleCall)cNameAlternatives_0.eContents().get(0); + private final RuleCall cNameSINGLE_QUOTETerminalRuleCall_0_1 = (RuleCall)cNameAlternatives_0.eContents().get(1); + private final RuleCall cNameLITERALTerminalRuleCall_0_2 = (RuleCall)cNameAlternatives_0.eContents().get(2); + private final RuleCall cNameSIGNED_LITERALTerminalRuleCall_0_3 = (RuleCall)cNameAlternatives_0.eContents().get(3); + + //VLSName: + // name=(LOWER_WORD_ID | SINGLE_QUOTE | LITERAL | SIGNED_LITERAL); + @Override public ParserRule getRule() { return rule; } + + //name=(LOWER_WORD_ID | SINGLE_QUOTE | LITERAL | SIGNED_LITERAL) + public Assignment getNameAssignment() { return cNameAssignment; } + + //(LOWER_WORD_ID | SINGLE_QUOTE | LITERAL | SIGNED_LITERAL) + public Alternatives getNameAlternatives_0() { return cNameAlternatives_0; } + + //LOWER_WORD_ID + public RuleCall getNameLOWER_WORD_IDTerminalRuleCall_0_0() { return cNameLOWER_WORD_IDTerminalRuleCall_0_0; } + + //SINGLE_QUOTE + public RuleCall getNameSINGLE_QUOTETerminalRuleCall_0_1() { return cNameSINGLE_QUOTETerminalRuleCall_0_1; } + + //LITERAL + public RuleCall getNameLITERALTerminalRuleCall_0_2() { return cNameLITERALTerminalRuleCall_0_2; } + + //SIGNED_LITERAL + public RuleCall getNameSIGNED_LITERALTerminalRuleCall_0_3() { return cNameSIGNED_LITERALTerminalRuleCall_0_3; } + } + public class VLSCommentElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSComment"); + private final Assignment cCommentAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cCommentSINGLE_COMMENTTerminalRuleCall_0 = (RuleCall)cCommentAssignment.eContents().get(0); + + //// + //VLSComment: + // comment=SINGLE_COMMENT + // //need to add a new line at the end of the file for the case where the last line is a comment + //; + @Override public ParserRule getRule() { return rule; } + + //comment=SINGLE_COMMENT + public Assignment getCommentAssignment() { return cCommentAssignment; } + + //SINGLE_COMMENT + public RuleCall getCommentSINGLE_COMMENTTerminalRuleCall_0() { return cCommentSINGLE_COMMENTTerminalRuleCall_0; } + } + public class VLSFofFormulaElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofFormula"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cFofKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final Alternatives cNameAlternatives_2_0 = (Alternatives)cNameAssignment_2.eContents().get(0); + private final RuleCall cNameLOWER_WORD_IDTerminalRuleCall_2_0_0 = (RuleCall)cNameAlternatives_2_0.eContents().get(0); + private final RuleCall cNameSIGNED_LITERALTerminalRuleCall_2_0_1 = (RuleCall)cNameAlternatives_2_0.eContents().get(1); + private final RuleCall cNameSINGLE_QUOTETerminalRuleCall_2_0_2 = (RuleCall)cNameAlternatives_2_0.eContents().get(2); + private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3); + private final Assignment cFofRoleAssignment_4 = (Assignment)cGroup.eContents().get(4); + private final RuleCall cFofRoleVLSRoleParserRuleCall_4_0 = (RuleCall)cFofRoleAssignment_4.eContents().get(0); + private final Keyword cCommaKeyword_5 = (Keyword)cGroup.eContents().get(5); + private final Assignment cFofFormulaAssignment_6 = (Assignment)cGroup.eContents().get(6); + private final RuleCall cFofFormulaVLSTermParserRuleCall_6_0 = (RuleCall)cFofFormulaAssignment_6.eContents().get(0); + private final Group cGroup_7 = (Group)cGroup.eContents().get(7); + private final Keyword cCommaKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0); + private final Assignment cAnnotationsAssignment_7_1 = (Assignment)cGroup_7.eContents().get(1); + private final RuleCall cAnnotationsVLSAnnotationParserRuleCall_7_1_0 = (RuleCall)cAnnotationsAssignment_7_1.eContents().get(0); + private final Keyword cRightParenthesisKeyword_8 = (Keyword)cGroup.eContents().get(8); + private final Keyword cFullStopKeyword_9 = (Keyword)cGroup.eContents().get(9); + + ////VLSConstantDeclaration: name = (LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID ); + //// + //VLSFofFormula: + // 'fof' '(' name=(LOWER_WORD_ID | SIGNED_LITERAL | SINGLE_QUOTE) ',' fofRole=VLSRole ',' fofFormula=VLSTerm (',' + // annotations=VLSAnnotation)? ')' '.'; + @Override public ParserRule getRule() { return rule; } + + //'fof' '(' name=(LOWER_WORD_ID | SIGNED_LITERAL | SINGLE_QUOTE) ',' fofRole=VLSRole ',' fofFormula=VLSTerm (',' + //annotations=VLSAnnotation)? ')' '.' + public Group getGroup() { return cGroup; } + + //'fof' + public Keyword getFofKeyword_0() { return cFofKeyword_0; } + + //'(' + public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; } + + //name=(LOWER_WORD_ID | SIGNED_LITERAL | SINGLE_QUOTE) + public Assignment getNameAssignment_2() { return cNameAssignment_2; } + + //(LOWER_WORD_ID | SIGNED_LITERAL | SINGLE_QUOTE) + public Alternatives getNameAlternatives_2_0() { return cNameAlternatives_2_0; } + + //LOWER_WORD_ID + public RuleCall getNameLOWER_WORD_IDTerminalRuleCall_2_0_0() { return cNameLOWER_WORD_IDTerminalRuleCall_2_0_0; } + + //SIGNED_LITERAL + public RuleCall getNameSIGNED_LITERALTerminalRuleCall_2_0_1() { return cNameSIGNED_LITERALTerminalRuleCall_2_0_1; } + + //SINGLE_QUOTE + public RuleCall getNameSINGLE_QUOTETerminalRuleCall_2_0_2() { return cNameSINGLE_QUOTETerminalRuleCall_2_0_2; } + + //',' + public Keyword getCommaKeyword_3() { return cCommaKeyword_3; } + + //fofRole=VLSRole + public Assignment getFofRoleAssignment_4() { return cFofRoleAssignment_4; } + + //VLSRole + public RuleCall getFofRoleVLSRoleParserRuleCall_4_0() { return cFofRoleVLSRoleParserRuleCall_4_0; } + + //',' + public Keyword getCommaKeyword_5() { return cCommaKeyword_5; } + + //fofFormula=VLSTerm + public Assignment getFofFormulaAssignment_6() { return cFofFormulaAssignment_6; } + + //VLSTerm + public RuleCall getFofFormulaVLSTermParserRuleCall_6_0() { return cFofFormulaVLSTermParserRuleCall_6_0; } + + //(',' annotations=VLSAnnotation)? + public Group getGroup_7() { return cGroup_7; } + + //',' + public Keyword getCommaKeyword_7_0() { return cCommaKeyword_7_0; } + + //annotations=VLSAnnotation + public Assignment getAnnotationsAssignment_7_1() { return cAnnotationsAssignment_7_1; } + + //VLSAnnotation + public RuleCall getAnnotationsVLSAnnotationParserRuleCall_7_1_0() { return cAnnotationsVLSAnnotationParserRuleCall_7_1_0; } + + //')' + public Keyword getRightParenthesisKeyword_8() { return cRightParenthesisKeyword_8; } + + //'.' + public Keyword getFullStopKeyword_9() { return cFullStopKeyword_9; } + } + public class VLSRoleElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSRole"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cVLSAxiomParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cVLSConjectureParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cVLSHypothesisParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cVLSDefinitionParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + private final RuleCall cVLSAssumptionParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4); + private final RuleCall cVLSLemmaParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5); + private final RuleCall cVLSTheoremParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6); + private final RuleCall cVLSCorollaryParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7); + private final RuleCall cVLSNegated_ConjectureParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8); + private final RuleCall cVLSPlainParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9); + private final RuleCall cVLSTypeParserRuleCall_10 = (RuleCall)cAlternatives.eContents().get(10); + private final RuleCall cVLSFi_DomainParserRuleCall_11 = (RuleCall)cAlternatives.eContents().get(11); + private final RuleCall cVLSFi_FunctorsParserRuleCall_12 = (RuleCall)cAlternatives.eContents().get(12); + private final RuleCall cVLSFi_PredicatesParserRuleCall_13 = (RuleCall)cAlternatives.eContents().get(13); + private final RuleCall cVLSUnknownParserRuleCall_14 = (RuleCall)cAlternatives.eContents().get(14); + + ///* + ////NAME + //VLSName: + // //(atomic_Word = Atomic_Word | integer = Integer | single_quote_word = Single_Quote_Word) + // name = (LOWER_WORD_ID | SIGNED_INT_ID | SINGLE_QUOTE) + //; + //*/ // + //VLSRole: + // VLSAxiom | VLSConjecture | VLSHypothesis | VLSDefinition | VLSAssumption | VLSLemma | VLSTheorem | VLSCorollary | + // VLSNegated_Conjecture | VLSPlain | VLSType | VLSFi_Domain | VLSFi_Functors | VLSFi_Predicates | VLSUnknown; + @Override public ParserRule getRule() { return rule; } + + //VLSAxiom | VLSConjecture | VLSHypothesis | VLSDefinition | VLSAssumption | VLSLemma | VLSTheorem | VLSCorollary | + //VLSNegated_Conjecture | VLSPlain | VLSType | VLSFi_Domain | VLSFi_Functors | VLSFi_Predicates | VLSUnknown + public Alternatives getAlternatives() { return cAlternatives; } + + //VLSAxiom + public RuleCall getVLSAxiomParserRuleCall_0() { return cVLSAxiomParserRuleCall_0; } + + //VLSConjecture + public RuleCall getVLSConjectureParserRuleCall_1() { return cVLSConjectureParserRuleCall_1; } + + //VLSHypothesis + public RuleCall getVLSHypothesisParserRuleCall_2() { return cVLSHypothesisParserRuleCall_2; } + + //VLSDefinition + public RuleCall getVLSDefinitionParserRuleCall_3() { return cVLSDefinitionParserRuleCall_3; } + + //VLSAssumption + public RuleCall getVLSAssumptionParserRuleCall_4() { return cVLSAssumptionParserRuleCall_4; } + + //VLSLemma + public RuleCall getVLSLemmaParserRuleCall_5() { return cVLSLemmaParserRuleCall_5; } + + //VLSTheorem + public RuleCall getVLSTheoremParserRuleCall_6() { return cVLSTheoremParserRuleCall_6; } + + //VLSCorollary + public RuleCall getVLSCorollaryParserRuleCall_7() { return cVLSCorollaryParserRuleCall_7; } + + //VLSNegated_Conjecture + public RuleCall getVLSNegated_ConjectureParserRuleCall_8() { return cVLSNegated_ConjectureParserRuleCall_8; } + + //VLSPlain + public RuleCall getVLSPlainParserRuleCall_9() { return cVLSPlainParserRuleCall_9; } + + //VLSType + public RuleCall getVLSTypeParserRuleCall_10() { return cVLSTypeParserRuleCall_10; } + + //VLSFi_Domain + public RuleCall getVLSFi_DomainParserRuleCall_11() { return cVLSFi_DomainParserRuleCall_11; } + + //VLSFi_Functors + public RuleCall getVLSFi_FunctorsParserRuleCall_12() { return cVLSFi_FunctorsParserRuleCall_12; } + + //VLSFi_Predicates + public RuleCall getVLSFi_PredicatesParserRuleCall_13() { return cVLSFi_PredicatesParserRuleCall_13; } + + //VLSUnknown + public RuleCall getVLSUnknownParserRuleCall_14() { return cVLSUnknownParserRuleCall_14; } + } + public class VLSAxiomElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAxiom"); + private final Keyword cAxiomKeyword = (Keyword)rule.eContents().get(1); + + //VLSAxiom: + // "axiom"; + @Override public ParserRule getRule() { return rule; } + + //"axiom" + public Keyword getAxiomKeyword() { return cAxiomKeyword; } + } + public class VLSConjectureElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSConjecture"); + private final Keyword cConjectureKeyword = (Keyword)rule.eContents().get(1); + + //VLSConjecture: + // "conjecture"; + @Override public ParserRule getRule() { return rule; } + + //"conjecture" + public Keyword getConjectureKeyword() { return cConjectureKeyword; } + } + public class VLSHypothesisElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSHypothesis"); + private final Keyword cHypothesisKeyword = (Keyword)rule.eContents().get(1); + + //VLSHypothesis: + // "hypothesis"; + @Override public ParserRule getRule() { return rule; } + + //"hypothesis" + public Keyword getHypothesisKeyword() { return cHypothesisKeyword; } + } + public class VLSDefinitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSDefinition"); + private final Keyword cDefinitionKeyword = (Keyword)rule.eContents().get(1); + + //VLSDefinition: + // "definition"; + @Override public ParserRule getRule() { return rule; } + + //"definition" + public Keyword getDefinitionKeyword() { return cDefinitionKeyword; } + } + public class VLSAssumptionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAssumption"); + private final Keyword cAssumptionKeyword = (Keyword)rule.eContents().get(1); + + //VLSAssumption: + // "assumption"; + @Override public ParserRule getRule() { return rule; } + + //"assumption" + public Keyword getAssumptionKeyword() { return cAssumptionKeyword; } + } + public class VLSLemmaElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSLemma"); + private final Keyword cLemmaKeyword = (Keyword)rule.eContents().get(1); + + //VLSLemma: + // "lemma"; + @Override public ParserRule getRule() { return rule; } + + //"lemma" + public Keyword getLemmaKeyword() { return cLemmaKeyword; } + } + public class VLSTheoremElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSTheorem"); + private final Keyword cTheoremKeyword = (Keyword)rule.eContents().get(1); + + //VLSTheorem: + // "theorem"; + @Override public ParserRule getRule() { return rule; } + + //"theorem" + public Keyword getTheoremKeyword() { return cTheoremKeyword; } + } + public class VLSCorollaryElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSCorollary"); + private final Keyword cCorollaryKeyword = (Keyword)rule.eContents().get(1); + + //VLSCorollary: + // "corollary"; + @Override public ParserRule getRule() { return rule; } + + //"corollary" + public Keyword getCorollaryKeyword() { return cCorollaryKeyword; } + } + public class VLSNegated_ConjectureElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSNegated_Conjecture"); + private final Keyword cNegated_conjectureKeyword = (Keyword)rule.eContents().get(1); + + //VLSNegated_Conjecture: + // "negated_conjecture"; + @Override public ParserRule getRule() { return rule; } + + //"negated_conjecture" + public Keyword getNegated_conjectureKeyword() { return cNegated_conjectureKeyword; } + } + public class VLSPlainElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSPlain"); + private final Keyword cPlainKeyword = (Keyword)rule.eContents().get(1); + + //VLSPlain: + // "plain"; + @Override public ParserRule getRule() { return rule; } + + //"plain" + public Keyword getPlainKeyword() { return cPlainKeyword; } + } + public class VLSTypeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSType"); + private final Keyword cTypeKeyword = (Keyword)rule.eContents().get(1); + + //VLSType: + // "type"; + @Override public ParserRule getRule() { return rule; } + + //"type" + public Keyword getTypeKeyword() { return cTypeKeyword; } + } + public class VLSFi_DomainElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFi_Domain"); + private final Keyword cFi_domainKeyword = (Keyword)rule.eContents().get(1); + + //VLSFi_Domain: + // "fi_domain"; + @Override public ParserRule getRule() { return rule; } + + //"fi_domain" + public Keyword getFi_domainKeyword() { return cFi_domainKeyword; } + } + public class VLSFi_FunctorsElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFi_Functors"); + private final Keyword cFi_functorsKeyword = (Keyword)rule.eContents().get(1); + + //VLSFi_Functors: + // "fi_functors"; + @Override public ParserRule getRule() { return rule; } + + //"fi_functors" + public Keyword getFi_functorsKeyword() { return cFi_functorsKeyword; } + } + public class VLSFi_PredicatesElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFi_Predicates"); + private final Keyword cFi_predicatesKeyword = (Keyword)rule.eContents().get(1); + + //VLSFi_Predicates: + // "fi_predicates"; + @Override public ParserRule getRule() { return rule; } + + //"fi_predicates" + public Keyword getFi_predicatesKeyword() { return cFi_predicatesKeyword; } + } + public class VLSUnknownElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnknown"); + private final Keyword cUnknownKeyword = (Keyword)rule.eContents().get(1); + + //VLSUnknown: + // "unknown"; + @Override public ParserRule getRule() { return rule; } + + //"unknown" + public Keyword getUnknownKeyword() { return cUnknownKeyword; } + } + public class VLSAnnotationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAnnotation"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cLeftSquareBracketKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final Alternatives cNameAlternatives_1_0 = (Alternatives)cNameAssignment_1.eContents().get(0); + private final RuleCall cNameLOWER_WORD_IDTerminalRuleCall_1_0_0 = (RuleCall)cNameAlternatives_1_0.eContents().get(0); + private final RuleCall cNameSINGLE_QUOTETerminalRuleCall_1_0_1 = (RuleCall)cNameAlternatives_1_0.eContents().get(1); + private final RuleCall cNameVLSRoleParserRuleCall_1_0_2 = (RuleCall)cNameAlternatives_1_0.eContents().get(2); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Keyword cLeftParenthesisKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); + private final Assignment cFollowupAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); + private final RuleCall cFollowupVLSAnnotationTermsParserRuleCall_2_1_0 = (RuleCall)cFollowupAssignment_2_1.eContents().get(0); + private final Keyword cRightParenthesisKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2); + private final Keyword cRightSquareBracketKeyword_3 = (Keyword)cGroup.eContents().get(3); + + //// + //// Not at all based on the website. based on what we think the output will be like + //VLSAnnotation: + // '['? name=(LOWER_WORD_ID | SINGLE_QUOTE | VLSRole)? ('(' followup=VLSAnnotationTerms ')')? ']'?; + @Override public ParserRule getRule() { return rule; } + + //'['? name=(LOWER_WORD_ID | SINGLE_QUOTE | VLSRole)? ('(' followup=VLSAnnotationTerms ')')? ']'? + public Group getGroup() { return cGroup; } + + //'['? + public Keyword getLeftSquareBracketKeyword_0() { return cLeftSquareBracketKeyword_0; } + + //name=(LOWER_WORD_ID | SINGLE_QUOTE | VLSRole)? + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //(LOWER_WORD_ID | SINGLE_QUOTE | VLSRole) + public Alternatives getNameAlternatives_1_0() { return cNameAlternatives_1_0; } + + //LOWER_WORD_ID + public RuleCall getNameLOWER_WORD_IDTerminalRuleCall_1_0_0() { return cNameLOWER_WORD_IDTerminalRuleCall_1_0_0; } + + //SINGLE_QUOTE + public RuleCall getNameSINGLE_QUOTETerminalRuleCall_1_0_1() { return cNameSINGLE_QUOTETerminalRuleCall_1_0_1; } + + //VLSRole + public RuleCall getNameVLSRoleParserRuleCall_1_0_2() { return cNameVLSRoleParserRuleCall_1_0_2; } + + //('(' followup=VLSAnnotationTerms ')')? + public Group getGroup_2() { return cGroup_2; } + + //'(' + public Keyword getLeftParenthesisKeyword_2_0() { return cLeftParenthesisKeyword_2_0; } + + //followup=VLSAnnotationTerms + public Assignment getFollowupAssignment_2_1() { return cFollowupAssignment_2_1; } + + //VLSAnnotationTerms + public RuleCall getFollowupVLSAnnotationTermsParserRuleCall_2_1_0() { return cFollowupVLSAnnotationTermsParserRuleCall_2_1_0; } + + //')' + public Keyword getRightParenthesisKeyword_2_2() { return cRightParenthesisKeyword_2_2; } + + //']'? + public Keyword getRightSquareBracketKeyword_3() { return cRightSquareBracketKeyword_3; } + } + public class VLSAnnotationTermsElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAnnotationTerms"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cTermsAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cTermsVLSAnnotationParserRuleCall_0_0 = (RuleCall)cTermsAssignment_0.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Keyword cCommaKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final Assignment cTermsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cTermsVLSAnnotationParserRuleCall_1_1_0 = (RuleCall)cTermsAssignment_1_1.eContents().get(0); + + //VLSAnnotationTerms VLSAnnotation: + // terms+=VLSAnnotation (',' terms+=VLSAnnotation)*; + @Override public ParserRule getRule() { return rule; } + + //terms+=VLSAnnotation (',' terms+=VLSAnnotation)* + public Group getGroup() { return cGroup; } + + //terms+=VLSAnnotation + public Assignment getTermsAssignment_0() { return cTermsAssignment_0; } + + //VLSAnnotation + public RuleCall getTermsVLSAnnotationParserRuleCall_0_0() { return cTermsVLSAnnotationParserRuleCall_0_0; } + + //(',' terms+=VLSAnnotation)* + public Group getGroup_1() { return cGroup_1; } + + //',' + public Keyword getCommaKeyword_1_0() { return cCommaKeyword_1_0; } + + //terms+=VLSAnnotation + public Assignment getTermsAssignment_1_1() { return cTermsAssignment_1_1; } + + //VLSAnnotation + public RuleCall getTermsVLSAnnotationParserRuleCall_1_1_0() { return cTermsVLSAnnotationParserRuleCall_1_1_0; } + } + public class VLSTermElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSTerm"); + private final RuleCall cVLSBinaryParserRuleCall = (RuleCall)rule.eContents().get(1); + + //////////////////////////////////// + //// VLS Terms + //////////////////////////////////// + //VLSTerm: + // VLSBinary; + @Override public ParserRule getRule() { return rule; } + + ////( VLSLogic | VLSSequent) + //VLSBinary + public RuleCall getVLSBinaryParserRuleCall() { return cVLSBinaryParserRuleCall; } + } + public class VLSBinaryElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSBinary"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cVLSUnitaryFormulaParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); + private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0); + private final Alternatives cAlternatives_1_0_0 = (Alternatives)cGroup_1_0.eContents().get(0); + private final Group cGroup_1_0_0_0 = (Group)cAlternatives_1_0_0.eContents().get(0); + private final Action cVLSEquivalentLeftAction_1_0_0_0_0 = (Action)cGroup_1_0_0_0.eContents().get(0); + private final Keyword cLessThanSignEqualsSignGreaterThanSignKeyword_1_0_0_0_1 = (Keyword)cGroup_1_0_0_0.eContents().get(1); + private final Group cGroup_1_0_0_1 = (Group)cAlternatives_1_0_0.eContents().get(1); + private final Action cVLSImpliesLeftAction_1_0_0_1_0 = (Action)cGroup_1_0_0_1.eContents().get(0); + private final Keyword cEqualsSignGreaterThanSignKeyword_1_0_0_1_1 = (Keyword)cGroup_1_0_0_1.eContents().get(1); + private final Group cGroup_1_0_0_2 = (Group)cAlternatives_1_0_0.eContents().get(2); + private final Action cVLSRevImpliesLeftAction_1_0_0_2_0 = (Action)cGroup_1_0_0_2.eContents().get(0); + private final Keyword cLessThanSignEqualsSignKeyword_1_0_0_2_1 = (Keyword)cGroup_1_0_0_2.eContents().get(1); + private final Group cGroup_1_0_0_3 = (Group)cAlternatives_1_0_0.eContents().get(3); + private final Action cVLSXnorLeftAction_1_0_0_3_0 = (Action)cGroup_1_0_0_3.eContents().get(0); + private final Keyword cLessThanSignTildeGreaterThanSignKeyword_1_0_0_3_1 = (Keyword)cGroup_1_0_0_3.eContents().get(1); + private final Group cGroup_1_0_0_4 = (Group)cAlternatives_1_0_0.eContents().get(4); + private final Action cVLSNorLeftAction_1_0_0_4_0 = (Action)cGroup_1_0_0_4.eContents().get(0); + private final Keyword cTildeVerticalLineKeyword_1_0_0_4_1 = (Keyword)cGroup_1_0_0_4.eContents().get(1); + private final Group cGroup_1_0_0_5 = (Group)cAlternatives_1_0_0.eContents().get(5); + private final Action cVLSNandLeftAction_1_0_0_5_0 = (Action)cGroup_1_0_0_5.eContents().get(0); + private final Keyword cTildeAmpersandKeyword_1_0_0_5_1 = (Keyword)cGroup_1_0_0_5.eContents().get(1); + private final Assignment cRightAssignment_1_0_1 = (Assignment)cGroup_1_0.eContents().get(1); + private final RuleCall cRightVLSUnitaryFormulaParserRuleCall_1_0_1_0 = (RuleCall)cRightAssignment_1_0_1.eContents().get(0); + private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1); + private final Action cVLSAndLeftAction_1_1_0 = (Action)cGroup_1_1.eContents().get(0); + private final Keyword cAmpersandKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1); + private final Assignment cRightAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2); + private final RuleCall cRightVLSUnitaryFormulaParserRuleCall_1_1_2_0 = (RuleCall)cRightAssignment_1_1_2.eContents().get(0); + private final Group cGroup_1_2 = (Group)cAlternatives_1.eContents().get(2); + private final Action cVLSOrLeftAction_1_2_0 = (Action)cGroup_1_2.eContents().get(0); + private final Keyword cVerticalLineKeyword_1_2_1 = (Keyword)cGroup_1_2.eContents().get(1); + private final Assignment cRightAssignment_1_2_2 = (Assignment)cGroup_1_2.eContents().get(2); + private final RuleCall cRightVLSUnitaryFormulaParserRuleCall_1_2_2_0 = (RuleCall)cRightAssignment_1_2_2.eContents().get(0); + + ////* + ////VLSBinaryFormula + //VLSBinary VLSTerm: + // VLSUnitaryFormula (({VLSEquivalent.left=current} "<=>" | {VLSImplies.left=current} "=>" | + // {VLSRevImplies.left=current} "<=" | {VLSXnor.left=current} "<~>" | {VLSNor.left=current} "~|" | + // {VLSNand.left=current} "~&") right=VLSUnitaryFormula | ({VLSAnd.left=current} '&' right=VLSUnitaryFormula)+ + // | ({VLSOr.left=current} '|' right=VLSUnitaryFormula)+)?; + @Override public ParserRule getRule() { return rule; } + + //VLSUnitaryFormula (({VLSEquivalent.left=current} "<=>" | {VLSImplies.left=current} "=>" | {VLSRevImplies.left=current} + //"<=" | {VLSXnor.left=current} "<~>" | {VLSNor.left=current} "~|" | {VLSNand.left=current} "~&") + //right=VLSUnitaryFormula | ({VLSAnd.left=current} '&' right=VLSUnitaryFormula)+ | ({VLSOr.left=current} '|' + //right=VLSUnitaryFormula)+)? + public Group getGroup() { return cGroup; } + + //VLSUnitaryFormula + public RuleCall getVLSUnitaryFormulaParserRuleCall_0() { return cVLSUnitaryFormulaParserRuleCall_0; } + + //(({VLSEquivalent.left=current} "<=>" | {VLSImplies.left=current} "=>" | {VLSRevImplies.left=current} "<=" | + //{VLSXnor.left=current} "<~>" | {VLSNor.left=current} "~|" | {VLSNand.left=current} "~&") right=VLSUnitaryFormula | + //({VLSAnd.left=current} '&' right=VLSUnitaryFormula)+ | ({VLSOr.left=current} '|' right=VLSUnitaryFormula)+)? + public Alternatives getAlternatives_1() { return cAlternatives_1; } + + //({VLSEquivalent.left=current} "<=>" | {VLSImplies.left=current} "=>" | {VLSRevImplies.left=current} "<=" | + //{VLSXnor.left=current} "<~>" | {VLSNor.left=current} "~|" | {VLSNand.left=current} "~&") right=VLSUnitaryFormula + public Group getGroup_1_0() { return cGroup_1_0; } + + //{VLSEquivalent.left=current} "<=>" | {VLSImplies.left=current} "=>" | {VLSRevImplies.left=current} "<=" | + //{VLSXnor.left=current} "<~>" | {VLSNor.left=current} "~|" | {VLSNand.left=current} "~&" + public Alternatives getAlternatives_1_0_0() { return cAlternatives_1_0_0; } + + //{VLSEquivalent.left=current} "<=>" + public Group getGroup_1_0_0_0() { return cGroup_1_0_0_0; } + + //{VLSEquivalent.left=current} + public Action getVLSEquivalentLeftAction_1_0_0_0_0() { return cVLSEquivalentLeftAction_1_0_0_0_0; } + + //"<=>" + public Keyword getLessThanSignEqualsSignGreaterThanSignKeyword_1_0_0_0_1() { return cLessThanSignEqualsSignGreaterThanSignKeyword_1_0_0_0_1; } + + //{VLSImplies.left=current} "=>" + public Group getGroup_1_0_0_1() { return cGroup_1_0_0_1; } + + //{VLSImplies.left=current} + public Action getVLSImpliesLeftAction_1_0_0_1_0() { return cVLSImpliesLeftAction_1_0_0_1_0; } + + //"=>" + public Keyword getEqualsSignGreaterThanSignKeyword_1_0_0_1_1() { return cEqualsSignGreaterThanSignKeyword_1_0_0_1_1; } + + //{VLSRevImplies.left=current} "<=" + public Group getGroup_1_0_0_2() { return cGroup_1_0_0_2; } + + //{VLSRevImplies.left=current} + public Action getVLSRevImpliesLeftAction_1_0_0_2_0() { return cVLSRevImpliesLeftAction_1_0_0_2_0; } + + //"<=" + public Keyword getLessThanSignEqualsSignKeyword_1_0_0_2_1() { return cLessThanSignEqualsSignKeyword_1_0_0_2_1; } + + //{VLSXnor.left=current} "<~>" + public Group getGroup_1_0_0_3() { return cGroup_1_0_0_3; } + + //{VLSXnor.left=current} + public Action getVLSXnorLeftAction_1_0_0_3_0() { return cVLSXnorLeftAction_1_0_0_3_0; } + + //"<~>" + public Keyword getLessThanSignTildeGreaterThanSignKeyword_1_0_0_3_1() { return cLessThanSignTildeGreaterThanSignKeyword_1_0_0_3_1; } + + //{VLSNor.left=current} "~|" + public Group getGroup_1_0_0_4() { return cGroup_1_0_0_4; } + + //{VLSNor.left=current} + public Action getVLSNorLeftAction_1_0_0_4_0() { return cVLSNorLeftAction_1_0_0_4_0; } + + //"~|" + public Keyword getTildeVerticalLineKeyword_1_0_0_4_1() { return cTildeVerticalLineKeyword_1_0_0_4_1; } + + //{VLSNand.left=current} "~&" + public Group getGroup_1_0_0_5() { return cGroup_1_0_0_5; } + + //{VLSNand.left=current} + public Action getVLSNandLeftAction_1_0_0_5_0() { return cVLSNandLeftAction_1_0_0_5_0; } + + //"~&" + public Keyword getTildeAmpersandKeyword_1_0_0_5_1() { return cTildeAmpersandKeyword_1_0_0_5_1; } + + //right=VLSUnitaryFormula + public Assignment getRightAssignment_1_0_1() { return cRightAssignment_1_0_1; } + + //VLSUnitaryFormula + public RuleCall getRightVLSUnitaryFormulaParserRuleCall_1_0_1_0() { return cRightVLSUnitaryFormulaParserRuleCall_1_0_1_0; } + + //({VLSAnd.left=current} '&' right=VLSUnitaryFormula)+ + public Group getGroup_1_1() { return cGroup_1_1; } + + //{VLSAnd.left=current} + public Action getVLSAndLeftAction_1_1_0() { return cVLSAndLeftAction_1_1_0; } + + //'&' + public Keyword getAmpersandKeyword_1_1_1() { return cAmpersandKeyword_1_1_1; } + + //right=VLSUnitaryFormula + public Assignment getRightAssignment_1_1_2() { return cRightAssignment_1_1_2; } + + //VLSUnitaryFormula + public RuleCall getRightVLSUnitaryFormulaParserRuleCall_1_1_2_0() { return cRightVLSUnitaryFormulaParserRuleCall_1_1_2_0; } + + //({VLSOr.left=current} '|' right=VLSUnitaryFormula)+ + public Group getGroup_1_2() { return cGroup_1_2; } + + //{VLSOr.left=current} + public Action getVLSOrLeftAction_1_2_0() { return cVLSOrLeftAction_1_2_0; } + + //'|' + public Keyword getVerticalLineKeyword_1_2_1() { return cVerticalLineKeyword_1_2_1; } + + //right=VLSUnitaryFormula + public Assignment getRightAssignment_1_2_2() { return cRightAssignment_1_2_2; } + + //VLSUnitaryFormula + public RuleCall getRightVLSUnitaryFormulaParserRuleCall_1_2_2_0() { return cRightVLSUnitaryFormulaParserRuleCall_1_2_2_0; } + } + public class VLSUnitaryFormulaElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnitaryFormula"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cVLSUniversalQuantifierParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cVLSExistentialQuantifierParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cVLSUnaryNegationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cVLSUnaryInfixParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + private final Group cGroup_4 = (Group)cAlternatives.eContents().get(4); + private final Keyword cLeftParenthesisKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0); + private final RuleCall cVLSTermParserRuleCall_4_1 = (RuleCall)cGroup_4.eContents().get(1); + private final Keyword cRightParenthesisKeyword_4_2 = (Keyword)cGroup_4.eContents().get(2); + + ////VLSUnitaryFormula + //VLSUnitaryFormula VLSTerm: + // VLSUniversalQuantifier | VLSExistentialQuantifier | VLSUnaryNegation | VLSUnaryInfix + // //| VLSEquality + // | '(' VLSTerm ')'; + @Override public ParserRule getRule() { return rule; } + + //VLSUniversalQuantifier | VLSExistentialQuantifier | VLSUnaryNegation | VLSUnaryInfix //| VLSEquality + //| '(' VLSTerm ')' + public Alternatives getAlternatives() { return cAlternatives; } + + //VLSUniversalQuantifier + public RuleCall getVLSUniversalQuantifierParserRuleCall_0() { return cVLSUniversalQuantifierParserRuleCall_0; } + + //VLSExistentialQuantifier + public RuleCall getVLSExistentialQuantifierParserRuleCall_1() { return cVLSExistentialQuantifierParserRuleCall_1; } + + //VLSUnaryNegation + public RuleCall getVLSUnaryNegationParserRuleCall_2() { return cVLSUnaryNegationParserRuleCall_2; } + + //VLSUnaryInfix + public RuleCall getVLSUnaryInfixParserRuleCall_3() { return cVLSUnaryInfixParserRuleCall_3; } + + //'(' VLSTerm ')' + public Group getGroup_4() { return cGroup_4; } + + //'(' + public Keyword getLeftParenthesisKeyword_4_0() { return cLeftParenthesisKeyword_4_0; } + + //VLSTerm + public RuleCall getVLSTermParserRuleCall_4_1() { return cVLSTermParserRuleCall_4_1; } + + //')' + public Keyword getRightParenthesisKeyword_4_2() { return cRightParenthesisKeyword_4_2; } + } + public class VLSUniversalQuantifierElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUniversalQuantifier"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cVLSUniversalQuantifierAction_0 = (Action)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Keyword cExclamationMarkKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final Keyword cLeftSquareBracketKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cVariablesAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cVariablesVLSVariableParserRuleCall_1_2_0 = (RuleCall)cVariablesAssignment_1_2.eContents().get(0); + private final Group cGroup_1_3 = (Group)cGroup_1.eContents().get(3); + private final Keyword cCommaKeyword_1_3_0 = (Keyword)cGroup_1_3.eContents().get(0); + private final Assignment cVariablesAssignment_1_3_1 = (Assignment)cGroup_1_3.eContents().get(1); + private final RuleCall cVariablesVLSVariableParserRuleCall_1_3_1_0 = (RuleCall)cVariablesAssignment_1_3_1.eContents().get(0); + private final Keyword cRightSquareBracketKeyword_1_4 = (Keyword)cGroup_1.eContents().get(4); + private final Keyword cColonKeyword_1_5 = (Keyword)cGroup_1.eContents().get(5); + private final Assignment cOperandAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cOperandVLSUnitaryFormulaParserRuleCall_2_0 = (RuleCall)cOperandAssignment_2.eContents().get(0); + + //VLSUniversalQuantifier VLSTerm: + // {VLSUniversalQuantifier} ("!" '[' variables+=VLSVariable (',' variables+=VLSVariable)* ']' ':') + // operand=VLSUnitaryFormula; + @Override public ParserRule getRule() { return rule; } + + //{VLSUniversalQuantifier} ("!" '[' variables+=VLSVariable (',' variables+=VLSVariable)* ']' ':') + //operand=VLSUnitaryFormula + public Group getGroup() { return cGroup; } + + //{VLSUniversalQuantifier} + public Action getVLSUniversalQuantifierAction_0() { return cVLSUniversalQuantifierAction_0; } + + //"!" '[' variables+=VLSVariable (',' variables+=VLSVariable)* ']' ':' + public Group getGroup_1() { return cGroup_1; } + + //"!" + public Keyword getExclamationMarkKeyword_1_0() { return cExclamationMarkKeyword_1_0; } + + //'[' + public Keyword getLeftSquareBracketKeyword_1_1() { return cLeftSquareBracketKeyword_1_1; } + + //variables+=VLSVariable + public Assignment getVariablesAssignment_1_2() { return cVariablesAssignment_1_2; } + + //VLSVariable + public RuleCall getVariablesVLSVariableParserRuleCall_1_2_0() { return cVariablesVLSVariableParserRuleCall_1_2_0; } + + //(',' variables+=VLSVariable)* + public Group getGroup_1_3() { return cGroup_1_3; } + + //',' + public Keyword getCommaKeyword_1_3_0() { return cCommaKeyword_1_3_0; } + + //variables+=VLSVariable + public Assignment getVariablesAssignment_1_3_1() { return cVariablesAssignment_1_3_1; } + + //VLSVariable + public RuleCall getVariablesVLSVariableParserRuleCall_1_3_1_0() { return cVariablesVLSVariableParserRuleCall_1_3_1_0; } + + //']' + public Keyword getRightSquareBracketKeyword_1_4() { return cRightSquareBracketKeyword_1_4; } + + //':' + public Keyword getColonKeyword_1_5() { return cColonKeyword_1_5; } + + //operand=VLSUnitaryFormula + public Assignment getOperandAssignment_2() { return cOperandAssignment_2; } + + //VLSUnitaryFormula + public RuleCall getOperandVLSUnitaryFormulaParserRuleCall_2_0() { return cOperandVLSUnitaryFormulaParserRuleCall_2_0; } + } + public class VLSExistentialQuantifierElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSExistentialQuantifier"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cVLSExistentialQuantifierAction_0 = (Action)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Keyword cQuestionMarkKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final Keyword cLeftSquareBracketKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cVariablesAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cVariablesVLSVariableParserRuleCall_1_2_0 = (RuleCall)cVariablesAssignment_1_2.eContents().get(0); + private final Group cGroup_1_3 = (Group)cGroup_1.eContents().get(3); + private final Keyword cCommaKeyword_1_3_0 = (Keyword)cGroup_1_3.eContents().get(0); + private final Assignment cVariablesAssignment_1_3_1 = (Assignment)cGroup_1_3.eContents().get(1); + private final RuleCall cVariablesVLSVariableParserRuleCall_1_3_1_0 = (RuleCall)cVariablesAssignment_1_3_1.eContents().get(0); + private final Keyword cRightSquareBracketKeyword_1_4 = (Keyword)cGroup_1.eContents().get(4); + private final Keyword cColonKeyword_1_5 = (Keyword)cGroup_1.eContents().get(5); + private final Assignment cOperandAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cOperandVLSUnitaryFormulaParserRuleCall_2_0 = (RuleCall)cOperandAssignment_2.eContents().get(0); + + //VLSExistentialQuantifier VLSTerm: + // {VLSExistentialQuantifier} ("?" '[' variables+=VLSVariable (',' variables+=VLSVariable)* ']' ':') + // operand=VLSUnitaryFormula; + @Override public ParserRule getRule() { return rule; } + + //{VLSExistentialQuantifier} ("?" '[' variables+=VLSVariable (',' variables+=VLSVariable)* ']' ':') + //operand=VLSUnitaryFormula + public Group getGroup() { return cGroup; } + + //{VLSExistentialQuantifier} + public Action getVLSExistentialQuantifierAction_0() { return cVLSExistentialQuantifierAction_0; } + + //"?" '[' variables+=VLSVariable (',' variables+=VLSVariable)* ']' ':' + public Group getGroup_1() { return cGroup_1; } + + //"?" + public Keyword getQuestionMarkKeyword_1_0() { return cQuestionMarkKeyword_1_0; } + + //'[' + public Keyword getLeftSquareBracketKeyword_1_1() { return cLeftSquareBracketKeyword_1_1; } + + //variables+=VLSVariable + public Assignment getVariablesAssignment_1_2() { return cVariablesAssignment_1_2; } + + //VLSVariable + public RuleCall getVariablesVLSVariableParserRuleCall_1_2_0() { return cVariablesVLSVariableParserRuleCall_1_2_0; } + + //(',' variables+=VLSVariable)* + public Group getGroup_1_3() { return cGroup_1_3; } + + //',' + public Keyword getCommaKeyword_1_3_0() { return cCommaKeyword_1_3_0; } + + //variables+=VLSVariable + public Assignment getVariablesAssignment_1_3_1() { return cVariablesAssignment_1_3_1; } + + //VLSVariable + public RuleCall getVariablesVLSVariableParserRuleCall_1_3_1_0() { return cVariablesVLSVariableParserRuleCall_1_3_1_0; } + + //']' + public Keyword getRightSquareBracketKeyword_1_4() { return cRightSquareBracketKeyword_1_4; } + + //':' + public Keyword getColonKeyword_1_5() { return cColonKeyword_1_5; } + + //operand=VLSUnitaryFormula + public Assignment getOperandAssignment_2() { return cOperandAssignment_2; } + + //VLSUnitaryFormula + public RuleCall getOperandVLSUnitaryFormulaParserRuleCall_2_0() { return cOperandVLSUnitaryFormulaParserRuleCall_2_0; } + } + public class VLSUnaryNegationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnaryNegation"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cVLSUnaryNegationAction_0 = (Action)cGroup.eContents().get(0); + private final Keyword cTildeKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Assignment cOperandAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cOperandVLSUnitaryFormulaParserRuleCall_2_0 = (RuleCall)cOperandAssignment_2.eContents().get(0); + + //VLSUnaryNegation VLSTerm: + // {VLSUnaryNegation} '~' operand=VLSUnitaryFormula; + @Override public ParserRule getRule() { return rule; } + + //{VLSUnaryNegation} '~' operand=VLSUnitaryFormula + public Group getGroup() { return cGroup; } + + //{VLSUnaryNegation} + public Action getVLSUnaryNegationAction_0() { return cVLSUnaryNegationAction_0; } + + //'~' + public Keyword getTildeKeyword_1() { return cTildeKeyword_1; } + + //operand=VLSUnitaryFormula + public Assignment getOperandAssignment_2() { return cOperandAssignment_2; } + + //VLSUnitaryFormula + public RuleCall getOperandVLSUnitaryFormulaParserRuleCall_2_0() { return cOperandVLSUnitaryFormulaParserRuleCall_2_0; } + } + public class VLSUnaryInfixElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSUnaryInfix"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cVLSAtomicParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Alternatives cAlternatives_1_0 = (Alternatives)cGroup_1.eContents().get(0); + private final Group cGroup_1_0_0 = (Group)cAlternatives_1_0.eContents().get(0); + private final Action cVLSInequalityLeftAction_1_0_0_0 = (Action)cGroup_1_0_0.eContents().get(0); + private final Keyword cExclamationMarkEqualsSignKeyword_1_0_0_1 = (Keyword)cGroup_1_0_0.eContents().get(1); + private final Group cGroup_1_0_1 = (Group)cAlternatives_1_0.eContents().get(1); + private final Action cVLSEqualityLeftAction_1_0_1_0 = (Action)cGroup_1_0_1.eContents().get(0); + private final Keyword cEqualsSignKeyword_1_0_1_1 = (Keyword)cGroup_1_0_1.eContents().get(1); + private final Group cGroup_1_0_2 = (Group)cAlternatives_1_0.eContents().get(2); + private final Action cVLSAssignmentLeftAction_1_0_2_0 = (Action)cGroup_1_0_2.eContents().get(0); + private final Keyword cColonEqualsSignKeyword_1_0_2_1 = (Keyword)cGroup_1_0_2.eContents().get(1); + private final Assignment cRightAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cRightVLSAtomicParserRuleCall_1_1_0 = (RuleCall)cRightAssignment_1_1.eContents().get(0); + + //VLSUnaryInfix VLSTerm: + // VLSAtomic (({VLSInequality.left=current} "!=" | {VLSEquality.left=current} "=" | {VLSAssignment.left=current} ":=") + // right=VLSAtomic)?; + @Override public ParserRule getRule() { return rule; } + + //VLSAtomic (({VLSInequality.left=current} "!=" | {VLSEquality.left=current} "=" | {VLSAssignment.left=current} ":=") + //right=VLSAtomic)? + public Group getGroup() { return cGroup; } + + //VLSAtomic + public RuleCall getVLSAtomicParserRuleCall_0() { return cVLSAtomicParserRuleCall_0; } + + //(({VLSInequality.left=current} "!=" | {VLSEquality.left=current} "=" | {VLSAssignment.left=current} ":=") + //right=VLSAtomic)? + public Group getGroup_1() { return cGroup_1; } + + //{VLSInequality.left=current} "!=" | {VLSEquality.left=current} "=" | {VLSAssignment.left=current} ":=" + public Alternatives getAlternatives_1_0() { return cAlternatives_1_0; } + + //{VLSInequality.left=current} "!=" + public Group getGroup_1_0_0() { return cGroup_1_0_0; } + + //{VLSInequality.left=current} + public Action getVLSInequalityLeftAction_1_0_0_0() { return cVLSInequalityLeftAction_1_0_0_0; } + + //"!=" + public Keyword getExclamationMarkEqualsSignKeyword_1_0_0_1() { return cExclamationMarkEqualsSignKeyword_1_0_0_1; } + + //{VLSEquality.left=current} "=" + public Group getGroup_1_0_1() { return cGroup_1_0_1; } + + //{VLSEquality.left=current} + public Action getVLSEqualityLeftAction_1_0_1_0() { return cVLSEqualityLeftAction_1_0_1_0; } + + //"=" + public Keyword getEqualsSignKeyword_1_0_1_1() { return cEqualsSignKeyword_1_0_1_1; } + + //{VLSAssignment.left=current} ":=" + public Group getGroup_1_0_2() { return cGroup_1_0_2; } + + //{VLSAssignment.left=current} + public Action getVLSAssignmentLeftAction_1_0_2_0() { return cVLSAssignmentLeftAction_1_0_2_0; } + + //":=" + public Keyword getColonEqualsSignKeyword_1_0_2_1() { return cColonEqualsSignKeyword_1_0_2_1; } + + //right=VLSAtomic + public Assignment getRightAssignment_1_1() { return cRightAssignment_1_1; } + + //VLSAtomic + public RuleCall getRightVLSAtomicParserRuleCall_1_1_0() { return cRightVLSAtomicParserRuleCall_1_1_0; } + } + public class VLSAtomicElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAtomic"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cVLSAtomicConstantParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cVLSAtomicFunctionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cVLSVariableParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cVLSDefinedTermParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + + ////NOT SUREEEE + ////VLSEquality returns VLSTerm: + //// VLSFofTerm ({VLSEquality.left = current} "=" right = VLSFofTerm)? + //// + ////; + ///* + //enum VLSDefinedFunctor: + // UMINUS='$uminus' | SUM='$sum' | DIFFERENCE='$difference' | PRODUCT='$product' | QUOTIENT='$quotient' | + // QUOTIENT_E='$quotient_e' | QUOTIENT_T='$quotient_t' | QUOTIENT_F='$quotient_f' | REMAINDER_E='$remainder_e' | + // REMAINDER_T='$remainder_t' | REMAINDER_F='$remainder_f' | FLOOR='$floor' | CEILING='$ceiling' | + // TRUNCATE='$truncate' | ROUND='$round' | TO_INT='$to_int' | TO_RAT='$to_rat' | TO_REAL='$to_real' + // ; + //*/ VLSAtomic VLSTerm: + // VLSAtomicConstant | VLSAtomicFunction | VLSVariable + // | VLSDefinedTerm //temporary solution. this is only valid for equality, not for != or := + // //| VLSEquality + //; + @Override public ParserRule getRule() { return rule; } + + //VLSAtomicConstant | VLSAtomicFunction | VLSVariable | VLSDefinedTerm + public Alternatives getAlternatives() { return cAlternatives; } + + //VLSAtomicConstant + public RuleCall getVLSAtomicConstantParserRuleCall_0() { return cVLSAtomicConstantParserRuleCall_0; } + + //VLSAtomicFunction + public RuleCall getVLSAtomicFunctionParserRuleCall_1() { return cVLSAtomicFunctionParserRuleCall_1; } + + //VLSVariable + public RuleCall getVLSVariableParserRuleCall_2() { return cVLSVariableParserRuleCall_2; } + + //VLSDefinedTerm + public RuleCall getVLSDefinedTermParserRuleCall_3() { return cVLSDefinedTermParserRuleCall_3; } + } + public class VLSAtomicConstantElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAtomicConstant"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Action cVLSConstantAction_0_0 = (Action)cGroup_0.eContents().get(0); + private final Assignment cNameAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1); + private final Alternatives cNameAlternatives_0_1_0 = (Alternatives)cNameAssignment_0_1.eContents().get(0); + private final RuleCall cNameLOWER_WORD_IDTerminalRuleCall_0_1_0_0 = (RuleCall)cNameAlternatives_0_1_0.eContents().get(0); + private final RuleCall cNameSINGLE_QUOTETerminalRuleCall_0_1_0_1 = (RuleCall)cNameAlternatives_0_1_0.eContents().get(1); + private final RuleCall cNameDOLLAR_IDTerminalRuleCall_0_1_0_2 = (RuleCall)cNameAlternatives_0_1_0.eContents().get(2); + private final RuleCall cNameDOUBLE_DOLLAR_IDTerminalRuleCall_0_1_0_3 = (RuleCall)cNameAlternatives_0_1_0.eContents().get(3); + private final RuleCall cNameVLSRoleParserRuleCall_0_1_0_4 = (RuleCall)cNameAlternatives_0_1_0.eContents().get(4); + private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); + private final Action cVLSTrueAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cTrueKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Group cGroup_2 = (Group)cAlternatives.eContents().get(2); + private final Action cVLSFalseAction_2_0 = (Action)cGroup_2.eContents().get(0); + private final Keyword cFalseKeyword_2_1 = (Keyword)cGroup_2.eContents().get(1); + + //VLSAtomicConstant VLSTerm: + // {VLSConstant} name=(LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID | VLSRole) | {VLSTrue} '$true' | + // {VLSFalse} '$false'; + @Override public ParserRule getRule() { return rule; } + + //{VLSConstant} name=(LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID | VLSRole) | {VLSTrue} '$true' | + //{VLSFalse} '$false' + public Alternatives getAlternatives() { return cAlternatives; } + + //{VLSConstant} name=(LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID | VLSRole) + public Group getGroup_0() { return cGroup_0; } + + //{VLSConstant} + public Action getVLSConstantAction_0_0() { return cVLSConstantAction_0_0; } + + //name=(LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID | VLSRole) + public Assignment getNameAssignment_0_1() { return cNameAssignment_0_1; } + + //(LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID | VLSRole) + public Alternatives getNameAlternatives_0_1_0() { return cNameAlternatives_0_1_0; } + + //LOWER_WORD_ID + public RuleCall getNameLOWER_WORD_IDTerminalRuleCall_0_1_0_0() { return cNameLOWER_WORD_IDTerminalRuleCall_0_1_0_0; } + + //SINGLE_QUOTE + public RuleCall getNameSINGLE_QUOTETerminalRuleCall_0_1_0_1() { return cNameSINGLE_QUOTETerminalRuleCall_0_1_0_1; } + + //DOLLAR_ID + public RuleCall getNameDOLLAR_IDTerminalRuleCall_0_1_0_2() { return cNameDOLLAR_IDTerminalRuleCall_0_1_0_2; } + + //DOUBLE_DOLLAR_ID + public RuleCall getNameDOUBLE_DOLLAR_IDTerminalRuleCall_0_1_0_3() { return cNameDOUBLE_DOLLAR_IDTerminalRuleCall_0_1_0_3; } + + //VLSRole + public RuleCall getNameVLSRoleParserRuleCall_0_1_0_4() { return cNameVLSRoleParserRuleCall_0_1_0_4; } + + //{VLSTrue} '$true' + public Group getGroup_1() { return cGroup_1; } + + //{VLSTrue} + public Action getVLSTrueAction_1_0() { return cVLSTrueAction_1_0; } + + //'$true' + public Keyword getTrueKeyword_1_1() { return cTrueKeyword_1_1; } + + //{VLSFalse} '$false' + public Group getGroup_2() { return cGroup_2; } + + //{VLSFalse} + public Action getVLSFalseAction_2_0() { return cVLSFalseAction_2_0; } + + //'$false' + public Keyword getFalseKeyword_2_1() { return cFalseKeyword_2_1; } + } + public class VLSAtomicFunctionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSAtomicFunction"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Action cVLSFunctionAction_0_0 = (Action)cGroup_0.eContents().get(0); + private final Assignment cConstantAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1); + private final Alternatives cConstantAlternatives_0_1_0 = (Alternatives)cConstantAssignment_0_1.eContents().get(0); + private final RuleCall cConstantLOWER_WORD_IDTerminalRuleCall_0_1_0_0 = (RuleCall)cConstantAlternatives_0_1_0.eContents().get(0); + private final RuleCall cConstantSINGLE_QUOTETerminalRuleCall_0_1_0_1 = (RuleCall)cConstantAlternatives_0_1_0.eContents().get(1); + private final RuleCall cConstantDOLLAR_IDTerminalRuleCall_0_1_0_2 = (RuleCall)cConstantAlternatives_0_1_0.eContents().get(2); + private final RuleCall cConstantDOUBLE_DOLLAR_IDTerminalRuleCall_0_1_0_3 = (RuleCall)cConstantAlternatives_0_1_0.eContents().get(3); + private final RuleCall cConstantVLSRoleParserRuleCall_0_1_0_4 = (RuleCall)cConstantAlternatives_0_1_0.eContents().get(4); + private final Group cGroup_0_2 = (Group)cGroup_0.eContents().get(2); + private final Keyword cLeftParenthesisKeyword_0_2_0 = (Keyword)cGroup_0_2.eContents().get(0); + private final Assignment cTermsAssignment_0_2_1 = (Assignment)cGroup_0_2.eContents().get(1); + private final RuleCall cTermsVLSFofTermParserRuleCall_0_2_1_0 = (RuleCall)cTermsAssignment_0_2_1.eContents().get(0); + private final Group cGroup_0_2_2 = (Group)cGroup_0_2.eContents().get(2); + private final Keyword cCommaKeyword_0_2_2_0 = (Keyword)cGroup_0_2_2.eContents().get(0); + private final Assignment cTermsAssignment_0_2_2_1 = (Assignment)cGroup_0_2_2.eContents().get(1); + private final RuleCall cTermsVLSFofTermParserRuleCall_0_2_2_1_0 = (RuleCall)cTermsAssignment_0_2_2_1.eContents().get(0); + private final Keyword cRightParenthesisKeyword_0_2_3 = (Keyword)cGroup_0_2.eContents().get(3); + private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); + private final Action cVLSLessAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Assignment cNameAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final Keyword cNameLessKeyword_1_1_0 = (Keyword)cNameAssignment_1_1.eContents().get(0); + private final Keyword cLeftParenthesisKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2); + private final Assignment cTermsAssignment_1_3 = (Assignment)cGroup_1.eContents().get(3); + private final RuleCall cTermsVLSFofTermParserRuleCall_1_3_0 = (RuleCall)cTermsAssignment_1_3.eContents().get(0); + private final Keyword cCommaKeyword_1_4 = (Keyword)cGroup_1.eContents().get(4); + private final Assignment cTermsAssignment_1_5 = (Assignment)cGroup_1.eContents().get(5); + private final RuleCall cTermsVLSFofTermParserRuleCall_1_5_0 = (RuleCall)cTermsAssignment_1_5.eContents().get(0); + private final Keyword cRightParenthesisKeyword_1_6 = (Keyword)cGroup_1.eContents().get(6); + + //VLSAtomicFunction VLSTerm: + // {VLSFunction} constant=(LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID | VLSRole) ('(' terms+=VLSFofTerm + // (',' terms+=VLSFofTerm)* ')') | {VLSLess} name='$less' '(' terms+=VLSFofTerm ',' terms+=VLSFofTerm ')'; + @Override public ParserRule getRule() { return rule; } + + //{VLSFunction} constant=(LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID | VLSRole) ('(' terms+=VLSFofTerm + //(',' terms+=VLSFofTerm)* ')') | {VLSLess} name='$less' '(' terms+=VLSFofTerm ',' terms+=VLSFofTerm ')' + public Alternatives getAlternatives() { return cAlternatives; } + + //{VLSFunction} constant=(LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID | VLSRole) ('(' terms+=VLSFofTerm + //(',' terms+=VLSFofTerm)* ')') + public Group getGroup_0() { return cGroup_0; } + + //{VLSFunction} + public Action getVLSFunctionAction_0_0() { return cVLSFunctionAction_0_0; } + + //constant=(LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID | VLSRole) + public Assignment getConstantAssignment_0_1() { return cConstantAssignment_0_1; } + + //(LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID | VLSRole) + public Alternatives getConstantAlternatives_0_1_0() { return cConstantAlternatives_0_1_0; } + + //LOWER_WORD_ID + public RuleCall getConstantLOWER_WORD_IDTerminalRuleCall_0_1_0_0() { return cConstantLOWER_WORD_IDTerminalRuleCall_0_1_0_0; } + + //SINGLE_QUOTE + public RuleCall getConstantSINGLE_QUOTETerminalRuleCall_0_1_0_1() { return cConstantSINGLE_QUOTETerminalRuleCall_0_1_0_1; } + + //DOLLAR_ID + public RuleCall getConstantDOLLAR_IDTerminalRuleCall_0_1_0_2() { return cConstantDOLLAR_IDTerminalRuleCall_0_1_0_2; } + + //DOUBLE_DOLLAR_ID + public RuleCall getConstantDOUBLE_DOLLAR_IDTerminalRuleCall_0_1_0_3() { return cConstantDOUBLE_DOLLAR_IDTerminalRuleCall_0_1_0_3; } + + //VLSRole + public RuleCall getConstantVLSRoleParserRuleCall_0_1_0_4() { return cConstantVLSRoleParserRuleCall_0_1_0_4; } + + //'(' terms+=VLSFofTerm (',' terms+=VLSFofTerm)* ')' + public Group getGroup_0_2() { return cGroup_0_2; } + + //'(' + public Keyword getLeftParenthesisKeyword_0_2_0() { return cLeftParenthesisKeyword_0_2_0; } + + //terms+=VLSFofTerm + public Assignment getTermsAssignment_0_2_1() { return cTermsAssignment_0_2_1; } + + //VLSFofTerm + public RuleCall getTermsVLSFofTermParserRuleCall_0_2_1_0() { return cTermsVLSFofTermParserRuleCall_0_2_1_0; } + + //(',' terms+=VLSFofTerm)* + public Group getGroup_0_2_2() { return cGroup_0_2_2; } + + //',' + public Keyword getCommaKeyword_0_2_2_0() { return cCommaKeyword_0_2_2_0; } + + //terms+=VLSFofTerm + public Assignment getTermsAssignment_0_2_2_1() { return cTermsAssignment_0_2_2_1; } + + //VLSFofTerm + public RuleCall getTermsVLSFofTermParserRuleCall_0_2_2_1_0() { return cTermsVLSFofTermParserRuleCall_0_2_2_1_0; } + + //')' + public Keyword getRightParenthesisKeyword_0_2_3() { return cRightParenthesisKeyword_0_2_3; } + + //{VLSLess} name='$less' '(' terms+=VLSFofTerm ',' terms+=VLSFofTerm ')' + public Group getGroup_1() { return cGroup_1; } + + //{VLSLess} + public Action getVLSLessAction_1_0() { return cVLSLessAction_1_0; } + + //name='$less' + public Assignment getNameAssignment_1_1() { return cNameAssignment_1_1; } + + //'$less' + public Keyword getNameLessKeyword_1_1_0() { return cNameLessKeyword_1_1_0; } + + //'(' + public Keyword getLeftParenthesisKeyword_1_2() { return cLeftParenthesisKeyword_1_2; } + + //terms+=VLSFofTerm + public Assignment getTermsAssignment_1_3() { return cTermsAssignment_1_3; } + + //VLSFofTerm + public RuleCall getTermsVLSFofTermParserRuleCall_1_3_0() { return cTermsVLSFofTermParserRuleCall_1_3_0; } + + //',' + public Keyword getCommaKeyword_1_4() { return cCommaKeyword_1_4; } + + //terms+=VLSFofTerm + public Assignment getTermsAssignment_1_5() { return cTermsAssignment_1_5; } + + //VLSFofTerm + public RuleCall getTermsVLSFofTermParserRuleCall_1_5_0() { return cTermsVLSFofTermParserRuleCall_1_5_0; } + + //')' + public Keyword getRightParenthesisKeyword_1_6() { return cRightParenthesisKeyword_1_6; } + } + public class VLSVariableElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSVariable"); + private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cNameUPPER_WORD_IDTerminalRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0); + + //VLSVariable: + // name=UPPER_WORD_ID; + @Override public ParserRule getRule() { return rule; } + + //name=UPPER_WORD_ID + public Assignment getNameAssignment() { return cNameAssignment; } + + //UPPER_WORD_ID + public RuleCall getNameUPPER_WORD_IDTerminalRuleCall_0() { return cNameUPPER_WORD_IDTerminalRuleCall_0; } + } + public class VLSFofTermElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFofTerm"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cVLSVariableParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cVLSFunctionFofParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cVLSDefinedTermParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + + //VLSFofTerm VLSTerm: + // VLSVariable | VLSFunctionFof | VLSDefinedTerm; + @Override public ParserRule getRule() { return rule; } + + ////(VLSVariable | VLSFunction | VLSTffConditional | VLSTffLet | VLSTffTuple) + //VLSVariable | VLSFunctionFof | VLSDefinedTerm + public Alternatives getAlternatives() { return cAlternatives; } + + //VLSVariable + public RuleCall getVLSVariableParserRuleCall_0() { return cVLSVariableParserRuleCall_0; } + + //VLSFunctionFof + public RuleCall getVLSFunctionFofParserRuleCall_1() { return cVLSFunctionFofParserRuleCall_1; } + + //VLSDefinedTerm + public RuleCall getVLSDefinedTermParserRuleCall_2() { return cVLSDefinedTermParserRuleCall_2; } + } + public class VLSFunctionFofElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSFunctionFof"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cFunctorAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final Alternatives cFunctorAlternatives_0_0 = (Alternatives)cFunctorAssignment_0.eContents().get(0); + private final RuleCall cFunctorLOWER_WORD_IDTerminalRuleCall_0_0_0 = (RuleCall)cFunctorAlternatives_0_0.eContents().get(0); + private final RuleCall cFunctorSINGLE_QUOTETerminalRuleCall_0_0_1 = (RuleCall)cFunctorAlternatives_0_0.eContents().get(1); + private final RuleCall cFunctorDOLLAR_IDTerminalRuleCall_0_0_2 = (RuleCall)cFunctorAlternatives_0_0.eContents().get(2); + private final RuleCall cFunctorDOUBLE_DOLLAR_IDTerminalRuleCall_0_0_3 = (RuleCall)cFunctorAlternatives_0_0.eContents().get(3); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Keyword cLeftParenthesisKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final Assignment cTermsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cTermsVLSFofTermParserRuleCall_1_1_0 = (RuleCall)cTermsAssignment_1_1.eContents().get(0); + private final Group cGroup_1_2 = (Group)cGroup_1.eContents().get(2); + private final Keyword cCommaKeyword_1_2_0 = (Keyword)cGroup_1_2.eContents().get(0); + private final Assignment cTermsAssignment_1_2_1 = (Assignment)cGroup_1_2.eContents().get(1); + private final RuleCall cTermsVLSFofTermParserRuleCall_1_2_1_0 = (RuleCall)cTermsAssignment_1_2_1.eContents().get(0); + private final Keyword cRightParenthesisKeyword_1_3 = (Keyword)cGroup_1.eContents().get(3); + + //VLSFunctionFof: + // functor=(LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID) ('(' terms+=VLSFofTerm (',' terms+=VLSFofTerm)* + // ')')?; + @Override public ParserRule getRule() { return rule; } + + ////? on next line causes warning + ////TODO might need replace DOLLAR_ID with enum rule + //functor=(LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID) ('(' terms+=VLSFofTerm (',' terms+=VLSFofTerm)* + //')')? + public Group getGroup() { return cGroup; } + + ////? on next line causes warning + ////TODO might need replace DOLLAR_ID with enum rule + //functor=(LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID) + public Assignment getFunctorAssignment_0() { return cFunctorAssignment_0; } + + //(LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID) + public Alternatives getFunctorAlternatives_0_0() { return cFunctorAlternatives_0_0; } + + //LOWER_WORD_ID + public RuleCall getFunctorLOWER_WORD_IDTerminalRuleCall_0_0_0() { return cFunctorLOWER_WORD_IDTerminalRuleCall_0_0_0; } + + //SINGLE_QUOTE + public RuleCall getFunctorSINGLE_QUOTETerminalRuleCall_0_0_1() { return cFunctorSINGLE_QUOTETerminalRuleCall_0_0_1; } + + //DOLLAR_ID + public RuleCall getFunctorDOLLAR_IDTerminalRuleCall_0_0_2() { return cFunctorDOLLAR_IDTerminalRuleCall_0_0_2; } + + //DOUBLE_DOLLAR_ID + public RuleCall getFunctorDOUBLE_DOLLAR_IDTerminalRuleCall_0_0_3() { return cFunctorDOUBLE_DOLLAR_IDTerminalRuleCall_0_0_3; } + + //('(' terms+=VLSFofTerm (',' terms+=VLSFofTerm)* ')')? + public Group getGroup_1() { return cGroup_1; } + + //'(' + public Keyword getLeftParenthesisKeyword_1_0() { return cLeftParenthesisKeyword_1_0; } + + //terms+=VLSFofTerm + public Assignment getTermsAssignment_1_1() { return cTermsAssignment_1_1; } + + //VLSFofTerm + public RuleCall getTermsVLSFofTermParserRuleCall_1_1_0() { return cTermsVLSFofTermParserRuleCall_1_1_0; } + + //(',' terms+=VLSFofTerm)* + public Group getGroup_1_2() { return cGroup_1_2; } + + //',' + public Keyword getCommaKeyword_1_2_0() { return cCommaKeyword_1_2_0; } + + //terms+=VLSFofTerm + public Assignment getTermsAssignment_1_2_1() { return cTermsAssignment_1_2_1; } + + //VLSFofTerm + public RuleCall getTermsVLSFofTermParserRuleCall_1_2_1_0() { return cTermsVLSFofTermParserRuleCall_1_2_1_0; } + + //')' + public Keyword getRightParenthesisKeyword_1_3() { return cRightParenthesisKeyword_1_3; } + } + public class VLSDefinedTermElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.VLSDefinedTerm"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Action cVLSIntAction_0_0 = (Action)cGroup_0.eContents().get(0); + private final Assignment cValueAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1); + private final RuleCall cValueSIGNED_LITERALTerminalRuleCall_0_1_0 = (RuleCall)cValueAssignment_0_1.eContents().get(0); + private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); + private final Action cVLSRealAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Assignment cValueAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cValueSIGNED_REAL_IDTerminalRuleCall_1_1_0 = (RuleCall)cValueAssignment_1_1.eContents().get(0); + private final Group cGroup_2 = (Group)cAlternatives.eContents().get(2); + private final Action cVLSRationalAction_2_0 = (Action)cGroup_2.eContents().get(0); + private final Assignment cValueAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); + private final RuleCall cValueSIGNED_RAT_IDTerminalRuleCall_2_1_0 = (RuleCall)cValueAssignment_2_1.eContents().get(0); + private final Group cGroup_3 = (Group)cAlternatives.eContents().get(3); + private final Action cVLSDoubleQuoteAction_3_0 = (Action)cGroup_3.eContents().get(0); + private final Assignment cValueAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1); + private final RuleCall cValueDOUBLE_QUOTETerminalRuleCall_3_1_0 = (RuleCall)cValueAssignment_3_1.eContents().get(0); + + //VLSDefinedTerm: + // {VLSInt} value=SIGNED_LITERAL | {VLSReal} value=SIGNED_REAL_ID | {VLSRational} value=SIGNED_RAT_ID | {VLSDoubleQuote} + // value=DOUBLE_QUOTE; + @Override public ParserRule getRule() { return rule; } + + //{VLSInt} value=SIGNED_LITERAL | {VLSReal} value=SIGNED_REAL_ID | {VLSRational} value=SIGNED_RAT_ID | {VLSDoubleQuote} + //value=DOUBLE_QUOTE + public Alternatives getAlternatives() { return cAlternatives; } + + //{VLSInt} value=SIGNED_LITERAL + public Group getGroup_0() { return cGroup_0; } + + //{VLSInt} + public Action getVLSIntAction_0_0() { return cVLSIntAction_0_0; } + + //value=SIGNED_LITERAL + public Assignment getValueAssignment_0_1() { return cValueAssignment_0_1; } + + //SIGNED_LITERAL + public RuleCall getValueSIGNED_LITERALTerminalRuleCall_0_1_0() { return cValueSIGNED_LITERALTerminalRuleCall_0_1_0; } + + //{VLSReal} value=SIGNED_REAL_ID + public Group getGroup_1() { return cGroup_1; } + + //{VLSReal} + public Action getVLSRealAction_1_0() { return cVLSRealAction_1_0; } + + //value=SIGNED_REAL_ID + public Assignment getValueAssignment_1_1() { return cValueAssignment_1_1; } + + //SIGNED_REAL_ID + public RuleCall getValueSIGNED_REAL_IDTerminalRuleCall_1_1_0() { return cValueSIGNED_REAL_IDTerminalRuleCall_1_1_0; } + + //{VLSRational} value=SIGNED_RAT_ID + public Group getGroup_2() { return cGroup_2; } + + //{VLSRational} + public Action getVLSRationalAction_2_0() { return cVLSRationalAction_2_0; } + + //value=SIGNED_RAT_ID + public Assignment getValueAssignment_2_1() { return cValueAssignment_2_1; } + + //SIGNED_RAT_ID + public RuleCall getValueSIGNED_RAT_IDTerminalRuleCall_2_1_0() { return cValueSIGNED_RAT_IDTerminalRuleCall_2_1_0; } + + //{VLSDoubleQuote} value=DOUBLE_QUOTE + public Group getGroup_3() { return cGroup_3; } + + //{VLSDoubleQuote} + public Action getVLSDoubleQuoteAction_3_0() { return cVLSDoubleQuoteAction_3_0; } + + //value=DOUBLE_QUOTE + public Assignment getValueAssignment_3_1() { return cValueAssignment_3_1; } + + //DOUBLE_QUOTE + public RuleCall getValueDOUBLE_QUOTETerminalRuleCall_3_1_0() { return cValueDOUBLE_QUOTETerminalRuleCall_3_1_0; } + } + + + private final VampireModelElements pVampireModel; + private final TerminalRule tALPHA_NUMERIC; + private final TerminalRule tUPPER_WORD_ID; + private final TerminalRule tLOWER_WORD_ID; + private final TerminalRule tDOUBLE_QUOTE; + private final TerminalRule tSINGLE_QUOTE; + private final TerminalRule tSIGN; + private final TerminalRule tDOLLAR_ID; + private final TerminalRule tDOUBLE_DOLLAR_ID; + private final TerminalRule tLITERAL; + private final TerminalRule tSIGNED_LITERAL; + private final TerminalRule tUNSIGNED_REAL_FRAC_ID; + private final TerminalRule tUNSIGNED_REAL_EXP_ID; + private final TerminalRule tSIGNED_REAL_ID; + private final TerminalRule tUNSIGNED_RAT_ID; + private final TerminalRule tSIGNED_RAT_ID; + private final TerminalRule tANY_OTHER; + private final TerminalRule tSINGLE_COMMENT; + private final VLSIncludeElements pVLSInclude; + private final VLSNameElements pVLSName; + private final VLSCommentElements pVLSComment; + private final VLSFofFormulaElements pVLSFofFormula; + private final VLSRoleElements pVLSRole; + private final VLSAxiomElements pVLSAxiom; + private final VLSConjectureElements pVLSConjecture; + private final VLSHypothesisElements pVLSHypothesis; + private final VLSDefinitionElements pVLSDefinition; + private final VLSAssumptionElements pVLSAssumption; + private final VLSLemmaElements pVLSLemma; + private final VLSTheoremElements pVLSTheorem; + private final VLSCorollaryElements pVLSCorollary; + private final VLSNegated_ConjectureElements pVLSNegated_Conjecture; + private final VLSPlainElements pVLSPlain; + private final VLSTypeElements pVLSType; + private final VLSFi_DomainElements pVLSFi_Domain; + private final VLSFi_FunctorsElements pVLSFi_Functors; + private final VLSFi_PredicatesElements pVLSFi_Predicates; + private final VLSUnknownElements pVLSUnknown; + private final VLSAnnotationElements pVLSAnnotation; + private final VLSAnnotationTermsElements pVLSAnnotationTerms; + private final VLSTermElements pVLSTerm; + private final VLSBinaryElements pVLSBinary; + private final VLSUnitaryFormulaElements pVLSUnitaryFormula; + private final VLSUniversalQuantifierElements pVLSUniversalQuantifier; + private final VLSExistentialQuantifierElements pVLSExistentialQuantifier; + private final VLSUnaryNegationElements pVLSUnaryNegation; + private final VLSUnaryInfixElements pVLSUnaryInfix; + private final VLSAtomicElements pVLSAtomic; + private final VLSAtomicConstantElements pVLSAtomicConstant; + private final VLSAtomicFunctionElements pVLSAtomicFunction; + private final VLSVariableElements pVLSVariable; + private final VLSFofTermElements pVLSFofTerm; + private final VLSFunctionFofElements pVLSFunctionFof; + private final VLSDefinedTermElements pVLSDefinedTerm; + + private final Grammar grammar; + + private final TerminalsGrammarAccess gaTerminals; + + @Inject + public VampireLanguageGrammarAccess(GrammarProvider grammarProvider, + TerminalsGrammarAccess gaTerminals) { + this.grammar = internalFindGrammar(grammarProvider); + this.gaTerminals = gaTerminals; + this.pVampireModel = new VampireModelElements(); + this.tALPHA_NUMERIC = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.ALPHA_NUMERIC"); + this.tUPPER_WORD_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.UPPER_WORD_ID"); + this.tLOWER_WORD_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.LOWER_WORD_ID"); + this.tDOUBLE_QUOTE = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.DOUBLE_QUOTE"); + this.tSINGLE_QUOTE = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_QUOTE"); + this.tSIGN = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.SIGN"); + this.tDOLLAR_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.DOLLAR_ID"); + this.tDOUBLE_DOLLAR_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.DOUBLE_DOLLAR_ID"); + this.tLITERAL = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.LITERAL"); + this.tSIGNED_LITERAL = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.SIGNED_LITERAL"); + this.tUNSIGNED_REAL_FRAC_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.UNSIGNED_REAL_FRAC_ID"); + this.tUNSIGNED_REAL_EXP_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.UNSIGNED_REAL_EXP_ID"); + this.tSIGNED_REAL_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.SIGNED_REAL_ID"); + this.tUNSIGNED_RAT_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.UNSIGNED_RAT_ID"); + this.tSIGNED_RAT_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.SIGNED_RAT_ID"); + this.tANY_OTHER = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.ANY_OTHER"); + this.tSINGLE_COMMENT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ca.mcgill.ecse.dslreasoner.VampireLanguage.SINGLE_COMMENT"); + this.pVLSInclude = new VLSIncludeElements(); + this.pVLSName = new VLSNameElements(); + this.pVLSComment = new VLSCommentElements(); + this.pVLSFofFormula = new VLSFofFormulaElements(); + this.pVLSRole = new VLSRoleElements(); + this.pVLSAxiom = new VLSAxiomElements(); + this.pVLSConjecture = new VLSConjectureElements(); + this.pVLSHypothesis = new VLSHypothesisElements(); + this.pVLSDefinition = new VLSDefinitionElements(); + this.pVLSAssumption = new VLSAssumptionElements(); + this.pVLSLemma = new VLSLemmaElements(); + this.pVLSTheorem = new VLSTheoremElements(); + this.pVLSCorollary = new VLSCorollaryElements(); + this.pVLSNegated_Conjecture = new VLSNegated_ConjectureElements(); + this.pVLSPlain = new VLSPlainElements(); + this.pVLSType = new VLSTypeElements(); + this.pVLSFi_Domain = new VLSFi_DomainElements(); + this.pVLSFi_Functors = new VLSFi_FunctorsElements(); + this.pVLSFi_Predicates = new VLSFi_PredicatesElements(); + this.pVLSUnknown = new VLSUnknownElements(); + this.pVLSAnnotation = new VLSAnnotationElements(); + this.pVLSAnnotationTerms = new VLSAnnotationTermsElements(); + this.pVLSTerm = new VLSTermElements(); + this.pVLSBinary = new VLSBinaryElements(); + this.pVLSUnitaryFormula = new VLSUnitaryFormulaElements(); + this.pVLSUniversalQuantifier = new VLSUniversalQuantifierElements(); + this.pVLSExistentialQuantifier = new VLSExistentialQuantifierElements(); + this.pVLSUnaryNegation = new VLSUnaryNegationElements(); + this.pVLSUnaryInfix = new VLSUnaryInfixElements(); + this.pVLSAtomic = new VLSAtomicElements(); + this.pVLSAtomicConstant = new VLSAtomicConstantElements(); + this.pVLSAtomicFunction = new VLSAtomicFunctionElements(); + this.pVLSVariable = new VLSVariableElements(); + this.pVLSFofTerm = new VLSFofTermElements(); + this.pVLSFunctionFof = new VLSFunctionFofElements(); + this.pVLSDefinedTerm = new VLSDefinedTermElements(); + } + + protected Grammar internalFindGrammar(GrammarProvider grammarProvider) { + Grammar grammar = grammarProvider.getGrammar(this); + while (grammar != null) { + if ("ca.mcgill.ecse.dslreasoner.VampireLanguage".equals(grammar.getName())) { + return grammar; + } + List grammars = grammar.getUsedGrammars(); + if (!grammars.isEmpty()) { + grammar = grammars.iterator().next(); + } else { + return null; + } + } + return grammar; + } + + @Override + public Grammar getGrammar() { + return grammar; + } + + + public TerminalsGrammarAccess getTerminalsGrammarAccess() { + return gaTerminals; + } + + + ////@@@@@@@@@@@ + ////2 things TODO: + ////1. fix anotations (ln77) + ////2. can only use declared variables in formula (ln 158) + ////@@@@@@@@@@@ + //VampireModel: + // (includes+=VLSInclude | comments+=VLSComment | formulas+=VLSFofFormula)*; + public VampireModelElements getVampireModelAccess() { + return pVampireModel; + } + + public ParserRule getVampireModelRule() { + return getVampireModelAccess().getRule(); + } + + //terminal ALPHA_NUMERIC: + // 'a'..'z' | 'A'..'Z' | '0'..'9' | '_'; + public TerminalRule getALPHA_NUMERICRule() { + return tALPHA_NUMERIC; + } + + //terminal UPPER_WORD_ID: + // 'A'..'Z' ALPHA_NUMERIC*; + public TerminalRule getUPPER_WORD_IDRule() { + return tUPPER_WORD_ID; + } + + //terminal LOWER_WORD_ID: + // 'a'..'z' ALPHA_NUMERIC*; + public TerminalRule getLOWER_WORD_IDRule() { + return tLOWER_WORD_ID; + } + + //terminal DOUBLE_QUOTE: + // '"' ('\\' ('"' | '\\') | !('\\' | '"'))* '"'; + public TerminalRule getDOUBLE_QUOTERule() { + return tDOUBLE_QUOTE; + } + + //terminal SINGLE_QUOTE: + // "'" ('\\' ("'" | '\\') | !('\\' | "'"))+ "'"; + public TerminalRule getSINGLE_QUOTERule() { + return tSINGLE_QUOTE; + } + + //terminal SIGN: + // '+' | '-'; + public TerminalRule getSIGNRule() { + return tSIGN; + } + + //terminal DOLLAR_ID: + // '$' LOWER_WORD_ID; + public TerminalRule getDOLLAR_IDRule() { + return tDOLLAR_ID; + } + + //terminal DOUBLE_DOLLAR_ID: + // '$$' LOWER_WORD_ID; + public TerminalRule getDOUBLE_DOLLAR_IDRule() { + return tDOUBLE_DOLLAR_ID; + } + + //terminal LITERAL: + // '0' | '1'..'9' INT?; + public TerminalRule getLITERALRule() { + return tLITERAL; + } + + //terminal SIGNED_LITERAL: + // SIGN* LITERAL; + public TerminalRule getSIGNED_LITERALRule() { + return tSIGNED_LITERAL; + } + + //terminal UNSIGNED_REAL_FRAC_ID: + // LITERAL '.' INT; + public TerminalRule getUNSIGNED_REAL_FRAC_IDRule() { + return tUNSIGNED_REAL_FRAC_ID; + } + + //terminal UNSIGNED_REAL_EXP_ID: + // (LITERAL | UNSIGNED_REAL_FRAC_ID) 'Ee' SIGN* INT; + public TerminalRule getUNSIGNED_REAL_EXP_IDRule() { + return tUNSIGNED_REAL_EXP_ID; + } + + //terminal SIGNED_REAL_ID: + // SIGN* (UNSIGNED_REAL_FRAC_ID | UNSIGNED_REAL_EXP_ID); + public TerminalRule getSIGNED_REAL_IDRule() { + return tSIGNED_REAL_ID; + } + + //terminal UNSIGNED_RAT_ID: + // LITERAL '/' '1'..'9' INT?; + public TerminalRule getUNSIGNED_RAT_IDRule() { + return tUNSIGNED_RAT_ID; + } + + //terminal SIGNED_RAT_ID: + // SIGN* UNSIGNED_RAT_ID; + public TerminalRule getSIGNED_RAT_IDRule() { + return tSIGNED_RAT_ID; + } + + //terminal ANY_OTHER: + // '%' !('\n' | '\r')* '\r'; + public TerminalRule getANY_OTHERRule() { + return tANY_OTHER; + } + + //terminal SINGLE_COMMENT: + // ANY_OTHER; + public TerminalRule getSINGLE_COMMENTRule() { + return tSINGLE_COMMENT; + } + + ////terminal ID: ( !('('|')'|'\r'|'\n') )+ ; + //////////////////////////////////// + //// VLS types + //////////////////////////////////// + //// + //VLSInclude: + // 'include(' fileName=SINGLE_QUOTE (',[' names+=VLSName (',' names+=VLSName)* ']')?; + public VLSIncludeElements getVLSIncludeAccess() { + return pVLSInclude; + } + + public ParserRule getVLSIncludeRule() { + return getVLSIncludeAccess().getRule(); + } + + //VLSName: + // name=(LOWER_WORD_ID | SINGLE_QUOTE | LITERAL | SIGNED_LITERAL); + public VLSNameElements getVLSNameAccess() { + return pVLSName; + } + + public ParserRule getVLSNameRule() { + return getVLSNameAccess().getRule(); + } + + //// + //VLSComment: + // comment=SINGLE_COMMENT + // //need to add a new line at the end of the file for the case where the last line is a comment + //; + public VLSCommentElements getVLSCommentAccess() { + return pVLSComment; + } + + public ParserRule getVLSCommentRule() { + return getVLSCommentAccess().getRule(); + } + + ////VLSConstantDeclaration: name = (LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID ); + //// + //VLSFofFormula: + // 'fof' '(' name=(LOWER_WORD_ID | SIGNED_LITERAL | SINGLE_QUOTE) ',' fofRole=VLSRole ',' fofFormula=VLSTerm (',' + // annotations=VLSAnnotation)? ')' '.'; + public VLSFofFormulaElements getVLSFofFormulaAccess() { + return pVLSFofFormula; + } + + public ParserRule getVLSFofFormulaRule() { + return getVLSFofFormulaAccess().getRule(); + } + + ///* + ////NAME + //VLSName: + // //(atomic_Word = Atomic_Word | integer = Integer | single_quote_word = Single_Quote_Word) + // name = (LOWER_WORD_ID | SIGNED_INT_ID | SINGLE_QUOTE) + //; + //*/ // + //VLSRole: + // VLSAxiom | VLSConjecture | VLSHypothesis | VLSDefinition | VLSAssumption | VLSLemma | VLSTheorem | VLSCorollary | + // VLSNegated_Conjecture | VLSPlain | VLSType | VLSFi_Domain | VLSFi_Functors | VLSFi_Predicates | VLSUnknown; + public VLSRoleElements getVLSRoleAccess() { + return pVLSRole; + } + + public ParserRule getVLSRoleRule() { + return getVLSRoleAccess().getRule(); + } + + //VLSAxiom: + // "axiom"; + public VLSAxiomElements getVLSAxiomAccess() { + return pVLSAxiom; + } + + public ParserRule getVLSAxiomRule() { + return getVLSAxiomAccess().getRule(); + } + + //VLSConjecture: + // "conjecture"; + public VLSConjectureElements getVLSConjectureAccess() { + return pVLSConjecture; + } + + public ParserRule getVLSConjectureRule() { + return getVLSConjectureAccess().getRule(); + } + + //VLSHypothesis: + // "hypothesis"; + public VLSHypothesisElements getVLSHypothesisAccess() { + return pVLSHypothesis; + } + + public ParserRule getVLSHypothesisRule() { + return getVLSHypothesisAccess().getRule(); + } + + //VLSDefinition: + // "definition"; + public VLSDefinitionElements getVLSDefinitionAccess() { + return pVLSDefinition; + } + + public ParserRule getVLSDefinitionRule() { + return getVLSDefinitionAccess().getRule(); + } + + //VLSAssumption: + // "assumption"; + public VLSAssumptionElements getVLSAssumptionAccess() { + return pVLSAssumption; + } + + public ParserRule getVLSAssumptionRule() { + return getVLSAssumptionAccess().getRule(); + } + + //VLSLemma: + // "lemma"; + public VLSLemmaElements getVLSLemmaAccess() { + return pVLSLemma; + } + + public ParserRule getVLSLemmaRule() { + return getVLSLemmaAccess().getRule(); + } + + //VLSTheorem: + // "theorem"; + public VLSTheoremElements getVLSTheoremAccess() { + return pVLSTheorem; + } + + public ParserRule getVLSTheoremRule() { + return getVLSTheoremAccess().getRule(); + } + + //VLSCorollary: + // "corollary"; + public VLSCorollaryElements getVLSCorollaryAccess() { + return pVLSCorollary; + } + + public ParserRule getVLSCorollaryRule() { + return getVLSCorollaryAccess().getRule(); + } + + //VLSNegated_Conjecture: + // "negated_conjecture"; + public VLSNegated_ConjectureElements getVLSNegated_ConjectureAccess() { + return pVLSNegated_Conjecture; + } + + public ParserRule getVLSNegated_ConjectureRule() { + return getVLSNegated_ConjectureAccess().getRule(); + } + + //VLSPlain: + // "plain"; + public VLSPlainElements getVLSPlainAccess() { + return pVLSPlain; + } + + public ParserRule getVLSPlainRule() { + return getVLSPlainAccess().getRule(); + } + + //VLSType: + // "type"; + public VLSTypeElements getVLSTypeAccess() { + return pVLSType; + } + + public ParserRule getVLSTypeRule() { + return getVLSTypeAccess().getRule(); + } + + //VLSFi_Domain: + // "fi_domain"; + public VLSFi_DomainElements getVLSFi_DomainAccess() { + return pVLSFi_Domain; + } + + public ParserRule getVLSFi_DomainRule() { + return getVLSFi_DomainAccess().getRule(); + } + + //VLSFi_Functors: + // "fi_functors"; + public VLSFi_FunctorsElements getVLSFi_FunctorsAccess() { + return pVLSFi_Functors; + } + + public ParserRule getVLSFi_FunctorsRule() { + return getVLSFi_FunctorsAccess().getRule(); + } + + //VLSFi_Predicates: + // "fi_predicates"; + public VLSFi_PredicatesElements getVLSFi_PredicatesAccess() { + return pVLSFi_Predicates; + } + + public ParserRule getVLSFi_PredicatesRule() { + return getVLSFi_PredicatesAccess().getRule(); + } + + //VLSUnknown: + // "unknown"; + public VLSUnknownElements getVLSUnknownAccess() { + return pVLSUnknown; + } + + public ParserRule getVLSUnknownRule() { + return getVLSUnknownAccess().getRule(); + } + + //// + //// Not at all based on the website. based on what we think the output will be like + //VLSAnnotation: + // '['? name=(LOWER_WORD_ID | SINGLE_QUOTE | VLSRole)? ('(' followup=VLSAnnotationTerms ')')? ']'?; + public VLSAnnotationElements getVLSAnnotationAccess() { + return pVLSAnnotation; + } + + public ParserRule getVLSAnnotationRule() { + return getVLSAnnotationAccess().getRule(); + } + + //VLSAnnotationTerms VLSAnnotation: + // terms+=VLSAnnotation (',' terms+=VLSAnnotation)*; + public VLSAnnotationTermsElements getVLSAnnotationTermsAccess() { + return pVLSAnnotationTerms; + } + + public ParserRule getVLSAnnotationTermsRule() { + return getVLSAnnotationTermsAccess().getRule(); + } + + //////////////////////////////////// + //// VLS Terms + //////////////////////////////////// + //VLSTerm: + // VLSBinary; + public VLSTermElements getVLSTermAccess() { + return pVLSTerm; + } + + public ParserRule getVLSTermRule() { + return getVLSTermAccess().getRule(); + } + + ////* + ////VLSBinaryFormula + //VLSBinary VLSTerm: + // VLSUnitaryFormula (({VLSEquivalent.left=current} "<=>" | {VLSImplies.left=current} "=>" | + // {VLSRevImplies.left=current} "<=" | {VLSXnor.left=current} "<~>" | {VLSNor.left=current} "~|" | + // {VLSNand.left=current} "~&") right=VLSUnitaryFormula | ({VLSAnd.left=current} '&' right=VLSUnitaryFormula)+ + // | ({VLSOr.left=current} '|' right=VLSUnitaryFormula)+)?; + public VLSBinaryElements getVLSBinaryAccess() { + return pVLSBinary; + } + + public ParserRule getVLSBinaryRule() { + return getVLSBinaryAccess().getRule(); + } + + ////VLSUnitaryFormula + //VLSUnitaryFormula VLSTerm: + // VLSUniversalQuantifier | VLSExistentialQuantifier | VLSUnaryNegation | VLSUnaryInfix + // //| VLSEquality + // | '(' VLSTerm ')'; + public VLSUnitaryFormulaElements getVLSUnitaryFormulaAccess() { + return pVLSUnitaryFormula; + } + + public ParserRule getVLSUnitaryFormulaRule() { + return getVLSUnitaryFormulaAccess().getRule(); + } + + //VLSUniversalQuantifier VLSTerm: + // {VLSUniversalQuantifier} ("!" '[' variables+=VLSVariable (',' variables+=VLSVariable)* ']' ':') + // operand=VLSUnitaryFormula; + public VLSUniversalQuantifierElements getVLSUniversalQuantifierAccess() { + return pVLSUniversalQuantifier; + } + + public ParserRule getVLSUniversalQuantifierRule() { + return getVLSUniversalQuantifierAccess().getRule(); + } + + //VLSExistentialQuantifier VLSTerm: + // {VLSExistentialQuantifier} ("?" '[' variables+=VLSVariable (',' variables+=VLSVariable)* ']' ':') + // operand=VLSUnitaryFormula; + public VLSExistentialQuantifierElements getVLSExistentialQuantifierAccess() { + return pVLSExistentialQuantifier; + } + + public ParserRule getVLSExistentialQuantifierRule() { + return getVLSExistentialQuantifierAccess().getRule(); + } + + //VLSUnaryNegation VLSTerm: + // {VLSUnaryNegation} '~' operand=VLSUnitaryFormula; + public VLSUnaryNegationElements getVLSUnaryNegationAccess() { + return pVLSUnaryNegation; + } + + public ParserRule getVLSUnaryNegationRule() { + return getVLSUnaryNegationAccess().getRule(); + } + + //VLSUnaryInfix VLSTerm: + // VLSAtomic (({VLSInequality.left=current} "!=" | {VLSEquality.left=current} "=" | {VLSAssignment.left=current} ":=") + // right=VLSAtomic)?; + public VLSUnaryInfixElements getVLSUnaryInfixAccess() { + return pVLSUnaryInfix; + } + + public ParserRule getVLSUnaryInfixRule() { + return getVLSUnaryInfixAccess().getRule(); + } + + ////NOT SUREEEE + ////VLSEquality returns VLSTerm: + //// VLSFofTerm ({VLSEquality.left = current} "=" right = VLSFofTerm)? + //// + ////; + ///* + //enum VLSDefinedFunctor: + // UMINUS='$uminus' | SUM='$sum' | DIFFERENCE='$difference' | PRODUCT='$product' | QUOTIENT='$quotient' | + // QUOTIENT_E='$quotient_e' | QUOTIENT_T='$quotient_t' | QUOTIENT_F='$quotient_f' | REMAINDER_E='$remainder_e' | + // REMAINDER_T='$remainder_t' | REMAINDER_F='$remainder_f' | FLOOR='$floor' | CEILING='$ceiling' | + // TRUNCATE='$truncate' | ROUND='$round' | TO_INT='$to_int' | TO_RAT='$to_rat' | TO_REAL='$to_real' + // ; + //*/ VLSAtomic VLSTerm: + // VLSAtomicConstant | VLSAtomicFunction | VLSVariable + // | VLSDefinedTerm //temporary solution. this is only valid for equality, not for != or := + // //| VLSEquality + //; + public VLSAtomicElements getVLSAtomicAccess() { + return pVLSAtomic; + } + + public ParserRule getVLSAtomicRule() { + return getVLSAtomicAccess().getRule(); + } + + //VLSAtomicConstant VLSTerm: + // {VLSConstant} name=(LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID | VLSRole) | {VLSTrue} '$true' | + // {VLSFalse} '$false'; + public VLSAtomicConstantElements getVLSAtomicConstantAccess() { + return pVLSAtomicConstant; + } + + public ParserRule getVLSAtomicConstantRule() { + return getVLSAtomicConstantAccess().getRule(); + } + + //VLSAtomicFunction VLSTerm: + // {VLSFunction} constant=(LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID | VLSRole) ('(' terms+=VLSFofTerm + // (',' terms+=VLSFofTerm)* ')') | {VLSLess} name='$less' '(' terms+=VLSFofTerm ',' terms+=VLSFofTerm ')'; + public VLSAtomicFunctionElements getVLSAtomicFunctionAccess() { + return pVLSAtomicFunction; + } + + public ParserRule getVLSAtomicFunctionRule() { + return getVLSAtomicFunctionAccess().getRule(); + } + + //VLSVariable: + // name=UPPER_WORD_ID; + public VLSVariableElements getVLSVariableAccess() { + return pVLSVariable; + } + + public ParserRule getVLSVariableRule() { + return getVLSVariableAccess().getRule(); + } + + //VLSFofTerm VLSTerm: + // VLSVariable | VLSFunctionFof | VLSDefinedTerm; + public VLSFofTermElements getVLSFofTermAccess() { + return pVLSFofTerm; + } + + public ParserRule getVLSFofTermRule() { + return getVLSFofTermAccess().getRule(); + } + + //VLSFunctionFof: + // functor=(LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID) ('(' terms+=VLSFofTerm (',' terms+=VLSFofTerm)* + // ')')?; + public VLSFunctionFofElements getVLSFunctionFofAccess() { + return pVLSFunctionFof; + } + + public ParserRule getVLSFunctionFofRule() { + return getVLSFunctionFofAccess().getRule(); + } + + //VLSDefinedTerm: + // {VLSInt} value=SIGNED_LITERAL | {VLSReal} value=SIGNED_REAL_ID | {VLSRational} value=SIGNED_RAT_ID | {VLSDoubleQuote} + // value=DOUBLE_QUOTE; + public VLSDefinedTermElements getVLSDefinedTermAccess() { + return pVLSDefinedTerm; + } + + public ParserRule getVLSDefinedTermRule() { + return getVLSDefinedTermAccess().getRule(); + } + + //terminal ID: + // '^'? ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '_' | '0'..'9')*; + public TerminalRule getIDRule() { + return gaTerminals.getIDRule(); + } + + //terminal INT returns ecore::EInt: + // '0'..'9'+; + public TerminalRule getINTRule() { + return gaTerminals.getINTRule(); + } + + //terminal STRING: + // '"' ('\\' . | !('\\' | '"'))* '"' | "'" ('\\' . | !('\\' | "'"))* "'"; + public TerminalRule getSTRINGRule() { + return gaTerminals.getSTRINGRule(); + } + + //terminal ML_COMMENT: + // '/*'->'*/'; + public TerminalRule getML_COMMENTRule() { + return gaTerminals.getML_COMMENTRule(); + } + + //terminal SL_COMMENT: + // '//' !('\n' | '\r')* ('\r'? '\n')?; + public TerminalRule getSL_COMMENTRule() { + return gaTerminals.getSL_COMMENTRule(); + } + + //terminal WS: + // ' ' | '\t' | '\r' | '\n'+; + public TerminalRule getWSRule() { + return gaTerminals.getWSRule(); + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/validation/AbstractVampireLanguageValidator.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/validation/AbstractVampireLanguageValidator.java new file mode 100644 index 00000000..65104ffb --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/validation/AbstractVampireLanguageValidator.java @@ -0,0 +1,20 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.validation; + +import java.util.ArrayList; +import java.util.List; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.xtext.validation.AbstractDeclarativeValidator; + +public abstract class AbstractVampireLanguageValidator extends AbstractDeclarativeValidator { + + @Override + protected List getEPackages() { + List result = new ArrayList(); + result.add(ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage.eINSTANCE); + return result; + } + +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSAnd.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSAnd.java new file mode 100644 index 00000000..de1ac885 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSAnd.java @@ -0,0 +1,78 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS And'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd#getRight Right}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSAnd() + * @model + * @generated + */ +public interface VLSAnd extends VLSTerm +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

+ * If the meaning of the 'Left' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Left' containment reference. + * @see #setLeft(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSAnd_Left() + * @model containment="true" + * @generated + */ + VLSTerm getLeft(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(VLSTerm value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

+ * If the meaning of the 'Right' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Right' containment reference. + * @see #setRight(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSAnd_Right() + * @model containment="true" + * @generated + */ + VLSTerm getRight(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(VLSTerm value); + +} // VLSAnd diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSAnnotation.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSAnnotation.java new file mode 100644 index 00000000..94f9f966 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSAnnotation.java @@ -0,0 +1,98 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'VLS Annotation'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation#getName Name}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation#getFollowup Followup}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation#getTerms Terms}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSAnnotation() + * @model + * @generated + */ +public interface VLSAnnotation extends EObject +{ + /** + * Returns the value of the 'Name' attribute. + * + *

+ * If the meaning of the 'Name' attribute isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSAnnotation_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Followup' containment reference. + * + *

+ * If the meaning of the 'Followup' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Followup' containment reference. + * @see #setFollowup(VLSAnnotation) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSAnnotation_Followup() + * @model containment="true" + * @generated + */ + VLSAnnotation getFollowup(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation#getFollowup Followup}' containment reference. + * + * + * @param value the new value of the 'Followup' containment reference. + * @see #getFollowup() + * @generated + */ + void setFollowup(VLSAnnotation value); + + /** + * Returns the value of the 'Terms' containment reference list. + * The list contents are of type {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation}. + * + *

+ * If the meaning of the 'Terms' containment reference list isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Terms' containment reference list. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSAnnotation_Terms() + * @model containment="true" + * @generated + */ + EList getTerms(); + +} // VLSAnnotation diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSAssignment.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSAssignment.java new file mode 100644 index 00000000..c73be6d1 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSAssignment.java @@ -0,0 +1,78 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS Assignment'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAssignment#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAssignment#getRight Right}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSAssignment() + * @model + * @generated + */ +public interface VLSAssignment extends VLSTerm +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

+ * If the meaning of the 'Left' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Left' containment reference. + * @see #setLeft(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSAssignment_Left() + * @model containment="true" + * @generated + */ + VLSTerm getLeft(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAssignment#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(VLSTerm value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

+ * If the meaning of the 'Right' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Right' containment reference. + * @see #setRight(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSAssignment_Right() + * @model containment="true" + * @generated + */ + VLSTerm getRight(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAssignment#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(VLSTerm value); + +} // VLSAssignment diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSComment.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSComment.java new file mode 100644 index 00000000..f317edbd --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSComment.java @@ -0,0 +1,52 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'VLS Comment'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment#getComment Comment}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSComment() + * @model + * @generated + */ +public interface VLSComment extends EObject +{ + /** + * Returns the value of the 'Comment' attribute. + * + *

+ * If the meaning of the 'Comment' attribute isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Comment' attribute. + * @see #setComment(String) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSComment_Comment() + * @model + * @generated + */ + String getComment(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment#getComment Comment}' attribute. + * + * + * @param value the new value of the 'Comment' attribute. + * @see #getComment() + * @generated + */ + void setComment(String value); + +} // VLSComment diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSConstant.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSConstant.java new file mode 100644 index 00000000..3e9d1ff2 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSConstant.java @@ -0,0 +1,51 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS Constant'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant#getName Name}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSConstant() + * @model + * @generated + */ +public interface VLSConstant extends VLSTerm +{ + /** + * Returns the value of the 'Name' attribute. + * + *

+ * If the meaning of the 'Name' attribute isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSConstant_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + +} // VLSConstant diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSDefinedTerm.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSDefinedTerm.java new file mode 100644 index 00000000..12708167 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSDefinedTerm.java @@ -0,0 +1,51 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS Defined Term'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSDefinedTerm#getValue Value}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSDefinedTerm() + * @model + * @generated + */ +public interface VLSDefinedTerm extends VLSTerm +{ + /** + * Returns the value of the 'Value' attribute. + * + *

+ * If the meaning of the 'Value' attribute isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Value' attribute. + * @see #setValue(String) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSDefinedTerm_Value() + * @model + * @generated + */ + String getValue(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSDefinedTerm#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(String value); + +} // VLSDefinedTerm diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSDoubleQuote.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSDoubleQuote.java new file mode 100644 index 00000000..501faf36 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSDoubleQuote.java @@ -0,0 +1,19 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS Double Quote'. + * + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSDoubleQuote() + * @model + * @generated + */ +public interface VLSDoubleQuote extends VLSDefinedTerm +{ +} // VLSDoubleQuote diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSEquality.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSEquality.java new file mode 100644 index 00000000..aadf2ade --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSEquality.java @@ -0,0 +1,78 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS Equality'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality#getRight Right}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSEquality() + * @model + * @generated + */ +public interface VLSEquality extends VLSTerm +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

+ * If the meaning of the 'Left' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Left' containment reference. + * @see #setLeft(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSEquality_Left() + * @model containment="true" + * @generated + */ + VLSTerm getLeft(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(VLSTerm value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

+ * If the meaning of the 'Right' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Right' containment reference. + * @see #setRight(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSEquality_Right() + * @model containment="true" + * @generated + */ + VLSTerm getRight(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(VLSTerm value); + +} // VLSEquality diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSEquivalent.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSEquivalent.java new file mode 100644 index 00000000..639a9f72 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSEquivalent.java @@ -0,0 +1,78 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS Equivalent'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent#getRight Right}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSEquivalent() + * @model + * @generated + */ +public interface VLSEquivalent extends VLSTerm +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

+ * If the meaning of the 'Left' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Left' containment reference. + * @see #setLeft(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSEquivalent_Left() + * @model containment="true" + * @generated + */ + VLSTerm getLeft(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(VLSTerm value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

+ * If the meaning of the 'Right' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Right' containment reference. + * @see #setRight(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSEquivalent_Right() + * @model containment="true" + * @generated + */ + VLSTerm getRight(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(VLSTerm value); + +} // VLSEquivalent diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSExistentialQuantifier.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSExistentialQuantifier.java new file mode 100644 index 00000000..929385ac --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSExistentialQuantifier.java @@ -0,0 +1,69 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'VLS Existential Quantifier'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier#getVariables Variables}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier#getOperand Operand}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSExistentialQuantifier() + * @model + * @generated + */ +public interface VLSExistentialQuantifier extends VLSTerm +{ + /** + * Returns the value of the 'Variables' containment reference list. + * The list contents are of type {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable}. + * + *

+ * If the meaning of the 'Variables' containment reference list isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Variables' containment reference list. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSExistentialQuantifier_Variables() + * @model containment="true" + * @generated + */ + EList getVariables(); + + /** + * Returns the value of the 'Operand' containment reference. + * + *

+ * If the meaning of the 'Operand' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Operand' containment reference. + * @see #setOperand(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSExistentialQuantifier_Operand() + * @model containment="true" + * @generated + */ + VLSTerm getOperand(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier#getOperand Operand}' containment reference. + * + * + * @param value the new value of the 'Operand' containment reference. + * @see #getOperand() + * @generated + */ + void setOperand(VLSTerm value); + +} // VLSExistentialQuantifier diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFalse.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFalse.java new file mode 100644 index 00000000..e1bfd960 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFalse.java @@ -0,0 +1,19 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS False'. + * + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSFalse() + * @model + * @generated + */ +public interface VLSFalse extends VLSTerm +{ +} // VLSFalse diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFofFormula.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFofFormula.java new file mode 100644 index 00000000..8de99107 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFofFormula.java @@ -0,0 +1,133 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'VLS Fof Formula'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula#getName Name}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula#getFofRole Fof Role}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula#getFofFormula Fof Formula}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula#getAnnotations Annotations}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSFofFormula() + * @model + * @generated + */ +public interface VLSFofFormula extends EObject +{ + /** + * Returns the value of the 'Name' attribute. + * + *

+ * If the meaning of the 'Name' attribute isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSFofFormula_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Fof Role' attribute. + * + *

+ * If the meaning of the 'Fof Role' attribute isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Fof Role' attribute. + * @see #setFofRole(String) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSFofFormula_FofRole() + * @model + * @generated + */ + String getFofRole(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula#getFofRole Fof Role}' attribute. + * + * + * @param value the new value of the 'Fof Role' attribute. + * @see #getFofRole() + * @generated + */ + void setFofRole(String value); + + /** + * Returns the value of the 'Fof Formula' containment reference. + * + *

+ * If the meaning of the 'Fof Formula' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Fof Formula' containment reference. + * @see #setFofFormula(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSFofFormula_FofFormula() + * @model containment="true" + * @generated + */ + VLSTerm getFofFormula(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula#getFofFormula Fof Formula}' containment reference. + * + * + * @param value the new value of the 'Fof Formula' containment reference. + * @see #getFofFormula() + * @generated + */ + void setFofFormula(VLSTerm value); + + /** + * Returns the value of the 'Annotations' containment reference. + * + *

+ * If the meaning of the 'Annotations' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Annotations' containment reference. + * @see #setAnnotations(VLSAnnotation) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSFofFormula_Annotations() + * @model containment="true" + * @generated + */ + VLSAnnotation getAnnotations(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula#getAnnotations Annotations}' containment reference. + * + * + * @param value the new value of the 'Annotations' containment reference. + * @see #getAnnotations() + * @generated + */ + void setAnnotations(VLSAnnotation value); + +} // VLSFofFormula diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFunction.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFunction.java new file mode 100644 index 00000000..7b4d0a30 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFunction.java @@ -0,0 +1,69 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'VLS Function'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction#getConstant Constant}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction#getTerms Terms}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSFunction() + * @model + * @generated + */ +public interface VLSFunction extends VLSTerm +{ + /** + * Returns the value of the 'Constant' attribute. + * + *

+ * If the meaning of the 'Constant' attribute isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Constant' attribute. + * @see #setConstant(String) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSFunction_Constant() + * @model + * @generated + */ + String getConstant(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction#getConstant Constant}' attribute. + * + * + * @param value the new value of the 'Constant' attribute. + * @see #getConstant() + * @generated + */ + void setConstant(String value); + + /** + * Returns the value of the 'Terms' containment reference list. + * The list contents are of type {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm}. + * + *

+ * If the meaning of the 'Terms' containment reference list isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Terms' containment reference list. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSFunction_Terms() + * @model containment="true" + * @generated + */ + EList getTerms(); + +} // VLSFunction diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFunctionFof.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFunctionFof.java new file mode 100644 index 00000000..d151685f --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFunctionFof.java @@ -0,0 +1,69 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'VLS Function Fof'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof#getFunctor Functor}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof#getTerms Terms}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSFunctionFof() + * @model + * @generated + */ +public interface VLSFunctionFof extends VLSTerm +{ + /** + * Returns the value of the 'Functor' attribute. + * + *

+ * If the meaning of the 'Functor' attribute isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Functor' attribute. + * @see #setFunctor(String) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSFunctionFof_Functor() + * @model + * @generated + */ + String getFunctor(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof#getFunctor Functor}' attribute. + * + * + * @param value the new value of the 'Functor' attribute. + * @see #getFunctor() + * @generated + */ + void setFunctor(String value); + + /** + * Returns the value of the 'Terms' containment reference list. + * The list contents are of type {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm}. + * + *

+ * If the meaning of the 'Terms' containment reference list isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Terms' containment reference list. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSFunctionFof_Terms() + * @model containment="true" + * @generated + */ + EList getTerms(); + +} // VLSFunctionFof diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSImplies.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSImplies.java new file mode 100644 index 00000000..26e1f5f5 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSImplies.java @@ -0,0 +1,78 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS Implies'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies#getRight Right}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSImplies() + * @model + * @generated + */ +public interface VLSImplies extends VLSTerm +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

+ * If the meaning of the 'Left' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Left' containment reference. + * @see #setLeft(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSImplies_Left() + * @model containment="true" + * @generated + */ + VLSTerm getLeft(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(VLSTerm value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

+ * If the meaning of the 'Right' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Right' containment reference. + * @see #setRight(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSImplies_Right() + * @model containment="true" + * @generated + */ + VLSTerm getRight(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(VLSTerm value); + +} // VLSImplies diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSInclude.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSInclude.java new file mode 100644 index 00000000..29e93ff2 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSInclude.java @@ -0,0 +1,71 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'VLS Include'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInclude#getFileName File Name}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInclude#getNames Names}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSInclude() + * @model + * @generated + */ +public interface VLSInclude extends EObject +{ + /** + * Returns the value of the 'File Name' attribute. + * + *

+ * If the meaning of the 'File Name' attribute isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'File Name' attribute. + * @see #setFileName(String) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSInclude_FileName() + * @model + * @generated + */ + String getFileName(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInclude#getFileName File Name}' attribute. + * + * + * @param value the new value of the 'File Name' attribute. + * @see #getFileName() + * @generated + */ + void setFileName(String value); + + /** + * Returns the value of the 'Names' containment reference list. + * The list contents are of type {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSName}. + * + *

+ * If the meaning of the 'Names' containment reference list isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Names' containment reference list. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSInclude_Names() + * @model containment="true" + * @generated + */ + EList getNames(); + +} // VLSInclude diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSInequality.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSInequality.java new file mode 100644 index 00000000..a5d4c815 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSInequality.java @@ -0,0 +1,78 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS Inequality'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality#getRight Right}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSInequality() + * @model + * @generated + */ +public interface VLSInequality extends VLSTerm +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

+ * If the meaning of the 'Left' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Left' containment reference. + * @see #setLeft(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSInequality_Left() + * @model containment="true" + * @generated + */ + VLSTerm getLeft(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(VLSTerm value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

+ * If the meaning of the 'Right' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Right' containment reference. + * @see #setRight(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSInequality_Right() + * @model containment="true" + * @generated + */ + VLSTerm getRight(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(VLSTerm value); + +} // VLSInequality diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSInt.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSInt.java new file mode 100644 index 00000000..41e0de04 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSInt.java @@ -0,0 +1,19 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS Int'. + * + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSInt() + * @model + * @generated + */ +public interface VLSInt extends VLSDefinedTerm +{ +} // VLSInt diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSLess.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSLess.java new file mode 100644 index 00000000..accb525d --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSLess.java @@ -0,0 +1,69 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'VLS Less'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSLess#getName Name}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSLess#getTerms Terms}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSLess() + * @model + * @generated + */ +public interface VLSLess extends VLSTerm +{ + /** + * Returns the value of the 'Name' attribute. + * + *

+ * If the meaning of the 'Name' attribute isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSLess_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSLess#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Terms' containment reference list. + * The list contents are of type {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm}. + * + *

+ * If the meaning of the 'Terms' containment reference list isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Terms' containment reference list. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSLess_Terms() + * @model containment="true" + * @generated + */ + EList getTerms(); + +} // VLSLess diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSName.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSName.java new file mode 100644 index 00000000..79019bb5 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSName.java @@ -0,0 +1,52 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'VLS Name'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSName#getName Name}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSName() + * @model + * @generated + */ +public interface VLSName extends EObject +{ + /** + * Returns the value of the 'Name' attribute. + * + *

+ * If the meaning of the 'Name' attribute isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSName_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSName#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + +} // VLSName diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSNand.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSNand.java new file mode 100644 index 00000000..1735fd12 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSNand.java @@ -0,0 +1,78 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS Nand'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNand#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNand#getRight Right}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSNand() + * @model + * @generated + */ +public interface VLSNand extends VLSTerm +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

+ * If the meaning of the 'Left' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Left' containment reference. + * @see #setLeft(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSNand_Left() + * @model containment="true" + * @generated + */ + VLSTerm getLeft(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNand#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(VLSTerm value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

+ * If the meaning of the 'Right' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Right' containment reference. + * @see #setRight(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSNand_Right() + * @model containment="true" + * @generated + */ + VLSTerm getRight(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNand#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(VLSTerm value); + +} // VLSNand diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSNor.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSNor.java new file mode 100644 index 00000000..af57a7f4 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSNor.java @@ -0,0 +1,78 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS Nor'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNor#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNor#getRight Right}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSNor() + * @model + * @generated + */ +public interface VLSNor extends VLSTerm +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

+ * If the meaning of the 'Left' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Left' containment reference. + * @see #setLeft(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSNor_Left() + * @model containment="true" + * @generated + */ + VLSTerm getLeft(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNor#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(VLSTerm value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

+ * If the meaning of the 'Right' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Right' containment reference. + * @see #setRight(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSNor_Right() + * @model containment="true" + * @generated + */ + VLSTerm getRight(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNor#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(VLSTerm value); + +} // VLSNor diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSOr.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSOr.java new file mode 100644 index 00000000..4c1fb0ee --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSOr.java @@ -0,0 +1,78 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS Or'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr#getRight Right}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSOr() + * @model + * @generated + */ +public interface VLSOr extends VLSTerm +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

+ * If the meaning of the 'Left' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Left' containment reference. + * @see #setLeft(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSOr_Left() + * @model containment="true" + * @generated + */ + VLSTerm getLeft(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(VLSTerm value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

+ * If the meaning of the 'Right' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Right' containment reference. + * @see #setRight(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSOr_Right() + * @model containment="true" + * @generated + */ + VLSTerm getRight(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(VLSTerm value); + +} // VLSOr diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSRational.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSRational.java new file mode 100644 index 00000000..8ad40ca5 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSRational.java @@ -0,0 +1,19 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS Rational'. + * + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSRational() + * @model + * @generated + */ +public interface VLSRational extends VLSDefinedTerm +{ +} // VLSRational diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSReal.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSReal.java new file mode 100644 index 00000000..f5686c88 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSReal.java @@ -0,0 +1,19 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS Real'. + * + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSReal() + * @model + * @generated + */ +public interface VLSReal extends VLSDefinedTerm +{ +} // VLSReal diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSRevImplies.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSRevImplies.java new file mode 100644 index 00000000..7a8c96b7 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSRevImplies.java @@ -0,0 +1,78 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS Rev Implies'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRevImplies#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRevImplies#getRight Right}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSRevImplies() + * @model + * @generated + */ +public interface VLSRevImplies extends VLSTerm +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

+ * If the meaning of the 'Left' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Left' containment reference. + * @see #setLeft(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSRevImplies_Left() + * @model containment="true" + * @generated + */ + VLSTerm getLeft(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRevImplies#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(VLSTerm value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

+ * If the meaning of the 'Right' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Right' containment reference. + * @see #setRight(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSRevImplies_Right() + * @model containment="true" + * @generated + */ + VLSTerm getRight(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRevImplies#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(VLSTerm value); + +} // VLSRevImplies diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSTerm.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSTerm.java new file mode 100644 index 00000000..4a3e51bb --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSTerm.java @@ -0,0 +1,20 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'VLS Term'. + * + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSTerm() + * @model + * @generated + */ +public interface VLSTerm extends EObject +{ +} // VLSTerm diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSTrue.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSTrue.java new file mode 100644 index 00000000..865fae07 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSTrue.java @@ -0,0 +1,19 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS True'. + * + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSTrue() + * @model + * @generated + */ +public interface VLSTrue extends VLSTerm +{ +} // VLSTrue diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSUnaryNegation.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSUnaryNegation.java new file mode 100644 index 00000000..cc81aad4 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSUnaryNegation.java @@ -0,0 +1,51 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS Unary Negation'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation#getOperand Operand}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSUnaryNegation() + * @model + * @generated + */ +public interface VLSUnaryNegation extends VLSTerm +{ + /** + * Returns the value of the 'Operand' containment reference. + * + *

+ * If the meaning of the 'Operand' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Operand' containment reference. + * @see #setOperand(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSUnaryNegation_Operand() + * @model containment="true" + * @generated + */ + VLSTerm getOperand(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation#getOperand Operand}' containment reference. + * + * + * @param value the new value of the 'Operand' containment reference. + * @see #getOperand() + * @generated + */ + void setOperand(VLSTerm value); + +} // VLSUnaryNegation diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSUniversalQuantifier.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSUniversalQuantifier.java new file mode 100644 index 00000000..8b7c913b --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSUniversalQuantifier.java @@ -0,0 +1,69 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'VLS Universal Quantifier'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier#getVariables Variables}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier#getOperand Operand}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSUniversalQuantifier() + * @model + * @generated + */ +public interface VLSUniversalQuantifier extends VLSTerm +{ + /** + * Returns the value of the 'Variables' containment reference list. + * The list contents are of type {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable}. + * + *

+ * If the meaning of the 'Variables' containment reference list isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Variables' containment reference list. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSUniversalQuantifier_Variables() + * @model containment="true" + * @generated + */ + EList getVariables(); + + /** + * Returns the value of the 'Operand' containment reference. + * + *

+ * If the meaning of the 'Operand' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Operand' containment reference. + * @see #setOperand(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSUniversalQuantifier_Operand() + * @model containment="true" + * @generated + */ + VLSTerm getOperand(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier#getOperand Operand}' containment reference. + * + * + * @param value the new value of the 'Operand' containment reference. + * @see #getOperand() + * @generated + */ + void setOperand(VLSTerm value); + +} // VLSUniversalQuantifier diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSVariable.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSVariable.java new file mode 100644 index 00000000..90b3b95d --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSVariable.java @@ -0,0 +1,51 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS Variable'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable#getName Name}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSVariable() + * @model + * @generated + */ +public interface VLSVariable extends VLSTerm +{ + /** + * Returns the value of the 'Name' attribute. + * + *

+ * If the meaning of the 'Name' attribute isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSVariable_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + +} // VLSVariable diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSXnor.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSXnor.java new file mode 100644 index 00000000..ba433cec --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSXnor.java @@ -0,0 +1,78 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + + +/** + * + * A representation of the model object 'VLS Xnor'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSXnor#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSXnor#getRight Right}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSXnor() + * @model + * @generated + */ +public interface VLSXnor extends VLSTerm +{ + /** + * Returns the value of the 'Left' containment reference. + * + *

+ * If the meaning of the 'Left' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Left' containment reference. + * @see #setLeft(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSXnor_Left() + * @model containment="true" + * @generated + */ + VLSTerm getLeft(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSXnor#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(VLSTerm value); + + /** + * Returns the value of the 'Right' containment reference. + * + *

+ * If the meaning of the 'Right' containment reference isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Right' containment reference. + * @see #setRight(VLSTerm) + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSXnor_Right() + * @model containment="true" + * @generated + */ + VLSTerm getRight(); + + /** + * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSXnor#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(VLSTerm value); + +} // VLSXnor diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VampireLanguageFactory.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VampireLanguageFactory.java new file mode 100644 index 00000000..3896cc7f --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VampireLanguageFactory.java @@ -0,0 +1,332 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + +import org.eclipse.emf.ecore.EFactory; + +/** + * + * The Factory for the model. + * It provides a create method for each non-abstract class of the model. + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage + * @generated + */ +public interface VampireLanguageFactory extends EFactory +{ + /** + * The singleton instance of the factory. + * + * + * @generated + */ + VampireLanguageFactory eINSTANCE = ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguageFactoryImpl.init(); + + /** + * Returns a new object of class 'Vampire Model'. + * + * + * @return a new object of class 'Vampire Model'. + * @generated + */ + VampireModel createVampireModel(); + + /** + * Returns a new object of class 'VLS Include'. + * + * + * @return a new object of class 'VLS Include'. + * @generated + */ + VLSInclude createVLSInclude(); + + /** + * Returns a new object of class 'VLS Name'. + * + * + * @return a new object of class 'VLS Name'. + * @generated + */ + VLSName createVLSName(); + + /** + * Returns a new object of class 'VLS Comment'. + * + * + * @return a new object of class 'VLS Comment'. + * @generated + */ + VLSComment createVLSComment(); + + /** + * Returns a new object of class 'VLS Fof Formula'. + * + * + * @return a new object of class 'VLS Fof Formula'. + * @generated + */ + VLSFofFormula createVLSFofFormula(); + + /** + * Returns a new object of class 'VLS Annotation'. + * + * + * @return a new object of class 'VLS Annotation'. + * @generated + */ + VLSAnnotation createVLSAnnotation(); + + /** + * Returns a new object of class 'VLS Term'. + * + * + * @return a new object of class 'VLS Term'. + * @generated + */ + VLSTerm createVLSTerm(); + + /** + * Returns a new object of class 'VLS Variable'. + * + * + * @return a new object of class 'VLS Variable'. + * @generated + */ + VLSVariable createVLSVariable(); + + /** + * Returns a new object of class 'VLS Function Fof'. + * + * + * @return a new object of class 'VLS Function Fof'. + * @generated + */ + VLSFunctionFof createVLSFunctionFof(); + + /** + * Returns a new object of class 'VLS Defined Term'. + * + * + * @return a new object of class 'VLS Defined Term'. + * @generated + */ + VLSDefinedTerm createVLSDefinedTerm(); + + /** + * Returns a new object of class 'VLS Equivalent'. + * + * + * @return a new object of class 'VLS Equivalent'. + * @generated + */ + VLSEquivalent createVLSEquivalent(); + + /** + * Returns a new object of class 'VLS Implies'. + * + * + * @return a new object of class 'VLS Implies'. + * @generated + */ + VLSImplies createVLSImplies(); + + /** + * Returns a new object of class 'VLS Rev Implies'. + * + * + * @return a new object of class 'VLS Rev Implies'. + * @generated + */ + VLSRevImplies createVLSRevImplies(); + + /** + * Returns a new object of class 'VLS Xnor'. + * + * + * @return a new object of class 'VLS Xnor'. + * @generated + */ + VLSXnor createVLSXnor(); + + /** + * Returns a new object of class 'VLS Nor'. + * + * + * @return a new object of class 'VLS Nor'. + * @generated + */ + VLSNor createVLSNor(); + + /** + * Returns a new object of class 'VLS Nand'. + * + * + * @return a new object of class 'VLS Nand'. + * @generated + */ + VLSNand createVLSNand(); + + /** + * Returns a new object of class 'VLS And'. + * + * + * @return a new object of class 'VLS And'. + * @generated + */ + VLSAnd createVLSAnd(); + + /** + * Returns a new object of class 'VLS Or'. + * + * + * @return a new object of class 'VLS Or'. + * @generated + */ + VLSOr createVLSOr(); + + /** + * Returns a new object of class 'VLS Universal Quantifier'. + * + * + * @return a new object of class 'VLS Universal Quantifier'. + * @generated + */ + VLSUniversalQuantifier createVLSUniversalQuantifier(); + + /** + * Returns a new object of class 'VLS Existential Quantifier'. + * + * + * @return a new object of class 'VLS Existential Quantifier'. + * @generated + */ + VLSExistentialQuantifier createVLSExistentialQuantifier(); + + /** + * Returns a new object of class 'VLS Unary Negation'. + * + * + * @return a new object of class 'VLS Unary Negation'. + * @generated + */ + VLSUnaryNegation createVLSUnaryNegation(); + + /** + * Returns a new object of class 'VLS Inequality'. + * + * + * @return a new object of class 'VLS Inequality'. + * @generated + */ + VLSInequality createVLSInequality(); + + /** + * Returns a new object of class 'VLS Equality'. + * + * + * @return a new object of class 'VLS Equality'. + * @generated + */ + VLSEquality createVLSEquality(); + + /** + * Returns a new object of class 'VLS Assignment'. + * + * + * @return a new object of class 'VLS Assignment'. + * @generated + */ + VLSAssignment createVLSAssignment(); + + /** + * Returns a new object of class 'VLS Constant'. + * + * + * @return a new object of class 'VLS Constant'. + * @generated + */ + VLSConstant createVLSConstant(); + + /** + * Returns a new object of class 'VLS True'. + * + * + * @return a new object of class 'VLS True'. + * @generated + */ + VLSTrue createVLSTrue(); + + /** + * Returns a new object of class 'VLS False'. + * + * + * @return a new object of class 'VLS False'. + * @generated + */ + VLSFalse createVLSFalse(); + + /** + * Returns a new object of class 'VLS Function'. + * + * + * @return a new object of class 'VLS Function'. + * @generated + */ + VLSFunction createVLSFunction(); + + /** + * Returns a new object of class 'VLS Less'. + * + * + * @return a new object of class 'VLS Less'. + * @generated + */ + VLSLess createVLSLess(); + + /** + * Returns a new object of class 'VLS Int'. + * + * + * @return a new object of class 'VLS Int'. + * @generated + */ + VLSInt createVLSInt(); + + /** + * Returns a new object of class 'VLS Real'. + * + * + * @return a new object of class 'VLS Real'. + * @generated + */ + VLSReal createVLSReal(); + + /** + * Returns a new object of class 'VLS Rational'. + * + * + * @return a new object of class 'VLS Rational'. + * @generated + */ + VLSRational createVLSRational(); + + /** + * Returns a new object of class 'VLS Double Quote'. + * + * + * @return a new object of class 'VLS Double Quote'. + * @generated + */ + VLSDoubleQuote createVLSDoubleQuote(); + + /** + * Returns the package supported by this factory. + * + * + * @return the package supported by this factory. + * @generated + */ + VampireLanguagePackage getVampireLanguagePackage(); + +} //VampireLanguageFactory diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VampireLanguagePackage.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VampireLanguagePackage.java new file mode 100644 index 00000000..f1519839 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VampireLanguagePackage.java @@ -0,0 +1,2809 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +/** + * + * The Package for the model. + * It contains accessors for the meta objects to represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory + * @model kind="package" + * @generated + */ +public interface VampireLanguagePackage extends EPackage +{ + /** + * The package name. + * + * + * @generated + */ + String eNAME = "vampireLanguage"; + + /** + * The package namespace URI. + * + * + * @generated + */ + String eNS_URI = "http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage"; + + /** + * The package namespace name. + * + * + * @generated + */ + String eNS_PREFIX = "vampireLanguage"; + + /** + * The singleton instance of the package. + * + * + * @generated + */ + VampireLanguagePackage eINSTANCE = ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl.init(); + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireModelImpl Vampire Model}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireModelImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVampireModel() + * @generated + */ + int VAMPIRE_MODEL = 0; + + /** + * The feature id for the 'Includes' containment reference list. + * + * + * @generated + * @ordered + */ + int VAMPIRE_MODEL__INCLUDES = 0; + + /** + * The feature id for the 'Comments' containment reference list. + * + * + * @generated + * @ordered + */ + int VAMPIRE_MODEL__COMMENTS = 1; + + /** + * The feature id for the 'Formulas' containment reference list. + * + * + * @generated + * @ordered + */ + int VAMPIRE_MODEL__FORMULAS = 2; + + /** + * The number of structural features of the 'Vampire Model' class. + * + * + * @generated + * @ordered + */ + int VAMPIRE_MODEL_FEATURE_COUNT = 3; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSIncludeImpl VLS Include}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSIncludeImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSInclude() + * @generated + */ + int VLS_INCLUDE = 1; + + /** + * The feature id for the 'File Name' attribute. + * + * + * @generated + * @ordered + */ + int VLS_INCLUDE__FILE_NAME = 0; + + /** + * The feature id for the 'Names' containment reference list. + * + * + * @generated + * @ordered + */ + int VLS_INCLUDE__NAMES = 1; + + /** + * The number of structural features of the 'VLS Include' class. + * + * + * @generated + * @ordered + */ + int VLS_INCLUDE_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSNameImpl VLS Name}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSNameImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSName() + * @generated + */ + int VLS_NAME = 2; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VLS_NAME__NAME = 0; + + /** + * The number of structural features of the 'VLS Name' class. + * + * + * @generated + * @ordered + */ + int VLS_NAME_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSCommentImpl VLS Comment}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSCommentImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSComment() + * @generated + */ + int VLS_COMMENT = 3; + + /** + * The feature id for the 'Comment' attribute. + * + * + * @generated + * @ordered + */ + int VLS_COMMENT__COMMENT = 0; + + /** + * The number of structural features of the 'VLS Comment' class. + * + * + * @generated + * @ordered + */ + int VLS_COMMENT_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFofFormulaImpl VLS Fof Formula}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFofFormulaImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSFofFormula() + * @generated + */ + int VLS_FOF_FORMULA = 4; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VLS_FOF_FORMULA__NAME = 0; + + /** + * The feature id for the 'Fof Role' attribute. + * + * + * @generated + * @ordered + */ + int VLS_FOF_FORMULA__FOF_ROLE = 1; + + /** + * The feature id for the 'Fof Formula' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_FOF_FORMULA__FOF_FORMULA = 2; + + /** + * The feature id for the 'Annotations' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_FOF_FORMULA__ANNOTATIONS = 3; + + /** + * The number of structural features of the 'VLS Fof Formula' class. + * + * + * @generated + * @ordered + */ + int VLS_FOF_FORMULA_FEATURE_COUNT = 4; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSAnnotationImpl VLS Annotation}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSAnnotationImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSAnnotation() + * @generated + */ + int VLS_ANNOTATION = 5; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VLS_ANNOTATION__NAME = 0; + + /** + * The feature id for the 'Followup' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_ANNOTATION__FOLLOWUP = 1; + + /** + * The feature id for the 'Terms' containment reference list. + * + * + * @generated + * @ordered + */ + int VLS_ANNOTATION__TERMS = 2; + + /** + * The number of structural features of the 'VLS Annotation' class. + * + * + * @generated + * @ordered + */ + int VLS_ANNOTATION_FEATURE_COUNT = 3; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSTermImpl VLS Term}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSTermImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSTerm() + * @generated + */ + int VLS_TERM = 6; + + /** + * The number of structural features of the 'VLS Term' class. + * + * + * @generated + * @ordered + */ + int VLS_TERM_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSVariableImpl VLS Variable}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSVariableImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSVariable() + * @generated + */ + int VLS_VARIABLE = 7; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VLS_VARIABLE__NAME = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'VLS Variable' class. + * + * + * @generated + * @ordered + */ + int VLS_VARIABLE_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFunctionFofImpl VLS Function Fof}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFunctionFofImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSFunctionFof() + * @generated + */ + int VLS_FUNCTION_FOF = 8; + + /** + * The feature id for the 'Functor' attribute. + * + * + * @generated + * @ordered + */ + int VLS_FUNCTION_FOF__FUNCTOR = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Terms' containment reference list. + * + * + * @generated + * @ordered + */ + int VLS_FUNCTION_FOF__TERMS = VLS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'VLS Function Fof' class. + * + * + * @generated + * @ordered + */ + int VLS_FUNCTION_FOF_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSDefinedTermImpl VLS Defined Term}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSDefinedTermImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSDefinedTerm() + * @generated + */ + int VLS_DEFINED_TERM = 9; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int VLS_DEFINED_TERM__VALUE = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'VLS Defined Term' class. + * + * + * @generated + * @ordered + */ + int VLS_DEFINED_TERM_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSEquivalentImpl VLS Equivalent}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSEquivalentImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSEquivalent() + * @generated + */ + int VLS_EQUIVALENT = 10; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_EQUIVALENT__LEFT = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_EQUIVALENT__RIGHT = VLS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'VLS Equivalent' class. + * + * + * @generated + * @ordered + */ + int VLS_EQUIVALENT_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSImpliesImpl VLS Implies}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSImpliesImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSImplies() + * @generated + */ + int VLS_IMPLIES = 11; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_IMPLIES__LEFT = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_IMPLIES__RIGHT = VLS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'VLS Implies' class. + * + * + * @generated + * @ordered + */ + int VLS_IMPLIES_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSRevImpliesImpl VLS Rev Implies}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSRevImpliesImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSRevImplies() + * @generated + */ + int VLS_REV_IMPLIES = 12; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_REV_IMPLIES__LEFT = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_REV_IMPLIES__RIGHT = VLS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'VLS Rev Implies' class. + * + * + * @generated + * @ordered + */ + int VLS_REV_IMPLIES_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSXnorImpl VLS Xnor}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSXnorImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSXnor() + * @generated + */ + int VLS_XNOR = 13; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_XNOR__LEFT = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_XNOR__RIGHT = VLS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'VLS Xnor' class. + * + * + * @generated + * @ordered + */ + int VLS_XNOR_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSNorImpl VLS Nor}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSNorImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSNor() + * @generated + */ + int VLS_NOR = 14; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_NOR__LEFT = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_NOR__RIGHT = VLS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'VLS Nor' class. + * + * + * @generated + * @ordered + */ + int VLS_NOR_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSNandImpl VLS Nand}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSNandImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSNand() + * @generated + */ + int VLS_NAND = 15; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_NAND__LEFT = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_NAND__RIGHT = VLS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'VLS Nand' class. + * + * + * @generated + * @ordered + */ + int VLS_NAND_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSAndImpl VLS And}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSAndImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSAnd() + * @generated + */ + int VLS_AND = 16; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_AND__LEFT = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_AND__RIGHT = VLS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'VLS And' class. + * + * + * @generated + * @ordered + */ + int VLS_AND_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSOrImpl VLS Or}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSOrImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSOr() + * @generated + */ + int VLS_OR = 17; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_OR__LEFT = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_OR__RIGHT = VLS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'VLS Or' class. + * + * + * @generated + * @ordered + */ + int VLS_OR_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSUniversalQuantifierImpl VLS Universal Quantifier}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSUniversalQuantifierImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSUniversalQuantifier() + * @generated + */ + int VLS_UNIVERSAL_QUANTIFIER = 18; + + /** + * The feature id for the 'Variables' containment reference list. + * + * + * @generated + * @ordered + */ + int VLS_UNIVERSAL_QUANTIFIER__VARIABLES = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Operand' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_UNIVERSAL_QUANTIFIER__OPERAND = VLS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'VLS Universal Quantifier' class. + * + * + * @generated + * @ordered + */ + int VLS_UNIVERSAL_QUANTIFIER_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSExistentialQuantifierImpl VLS Existential Quantifier}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSExistentialQuantifierImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSExistentialQuantifier() + * @generated + */ + int VLS_EXISTENTIAL_QUANTIFIER = 19; + + /** + * The feature id for the 'Variables' containment reference list. + * + * + * @generated + * @ordered + */ + int VLS_EXISTENTIAL_QUANTIFIER__VARIABLES = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Operand' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_EXISTENTIAL_QUANTIFIER__OPERAND = VLS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'VLS Existential Quantifier' class. + * + * + * @generated + * @ordered + */ + int VLS_EXISTENTIAL_QUANTIFIER_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSUnaryNegationImpl VLS Unary Negation}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSUnaryNegationImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSUnaryNegation() + * @generated + */ + int VLS_UNARY_NEGATION = 20; + + /** + * The feature id for the 'Operand' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_UNARY_NEGATION__OPERAND = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'VLS Unary Negation' class. + * + * + * @generated + * @ordered + */ + int VLS_UNARY_NEGATION_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSInequalityImpl VLS Inequality}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSInequalityImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSInequality() + * @generated + */ + int VLS_INEQUALITY = 21; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_INEQUALITY__LEFT = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_INEQUALITY__RIGHT = VLS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'VLS Inequality' class. + * + * + * @generated + * @ordered + */ + int VLS_INEQUALITY_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSEqualityImpl VLS Equality}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSEqualityImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSEquality() + * @generated + */ + int VLS_EQUALITY = 22; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_EQUALITY__LEFT = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_EQUALITY__RIGHT = VLS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'VLS Equality' class. + * + * + * @generated + * @ordered + */ + int VLS_EQUALITY_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSAssignmentImpl VLS Assignment}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSAssignmentImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSAssignment() + * @generated + */ + int VLS_ASSIGNMENT = 23; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_ASSIGNMENT__LEFT = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int VLS_ASSIGNMENT__RIGHT = VLS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'VLS Assignment' class. + * + * + * @generated + * @ordered + */ + int VLS_ASSIGNMENT_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSConstantImpl VLS Constant}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSConstantImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSConstant() + * @generated + */ + int VLS_CONSTANT = 24; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VLS_CONSTANT__NAME = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'VLS Constant' class. + * + * + * @generated + * @ordered + */ + int VLS_CONSTANT_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSTrueImpl VLS True}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSTrueImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSTrue() + * @generated + */ + int VLS_TRUE = 25; + + /** + * The number of structural features of the 'VLS True' class. + * + * + * @generated + * @ordered + */ + int VLS_TRUE_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFalseImpl VLS False}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFalseImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSFalse() + * @generated + */ + int VLS_FALSE = 26; + + /** + * The number of structural features of the 'VLS False' class. + * + * + * @generated + * @ordered + */ + int VLS_FALSE_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFunctionImpl VLS Function}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFunctionImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSFunction() + * @generated + */ + int VLS_FUNCTION = 27; + + /** + * The feature id for the 'Constant' attribute. + * + * + * @generated + * @ordered + */ + int VLS_FUNCTION__CONSTANT = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Terms' containment reference list. + * + * + * @generated + * @ordered + */ + int VLS_FUNCTION__TERMS = VLS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'VLS Function' class. + * + * + * @generated + * @ordered + */ + int VLS_FUNCTION_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSLessImpl VLS Less}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSLessImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSLess() + * @generated + */ + int VLS_LESS = 28; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VLS_LESS__NAME = VLS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Terms' containment reference list. + * + * + * @generated + * @ordered + */ + int VLS_LESS__TERMS = VLS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'VLS Less' class. + * + * + * @generated + * @ordered + */ + int VLS_LESS_FEATURE_COUNT = VLS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSIntImpl VLS Int}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSIntImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSInt() + * @generated + */ + int VLS_INT = 29; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int VLS_INT__VALUE = VLS_DEFINED_TERM__VALUE; + + /** + * The number of structural features of the 'VLS Int' class. + * + * + * @generated + * @ordered + */ + int VLS_INT_FEATURE_COUNT = VLS_DEFINED_TERM_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSRealImpl VLS Real}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSRealImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSReal() + * @generated + */ + int VLS_REAL = 30; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int VLS_REAL__VALUE = VLS_DEFINED_TERM__VALUE; + + /** + * The number of structural features of the 'VLS Real' class. + * + * + * @generated + * @ordered + */ + int VLS_REAL_FEATURE_COUNT = VLS_DEFINED_TERM_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSRationalImpl VLS Rational}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSRationalImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSRational() + * @generated + */ + int VLS_RATIONAL = 31; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int VLS_RATIONAL__VALUE = VLS_DEFINED_TERM__VALUE; + + /** + * The number of structural features of the 'VLS Rational' class. + * + * + * @generated + * @ordered + */ + int VLS_RATIONAL_FEATURE_COUNT = VLS_DEFINED_TERM_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSDoubleQuoteImpl VLS Double Quote}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSDoubleQuoteImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSDoubleQuote() + * @generated + */ + int VLS_DOUBLE_QUOTE = 32; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int VLS_DOUBLE_QUOTE__VALUE = VLS_DEFINED_TERM__VALUE; + + /** + * The number of structural features of the 'VLS Double Quote' class. + * + * + * @generated + * @ordered + */ + int VLS_DOUBLE_QUOTE_FEATURE_COUNT = VLS_DEFINED_TERM_FEATURE_COUNT + 0; + + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel Vampire Model}'. + * + * + * @return the meta object for class 'Vampire Model'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel + * @generated + */ + EClass getVampireModel(); + + /** + * Returns the meta object for the containment reference list '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel#getIncludes Includes}'. + * + * + * @return the meta object for the containment reference list 'Includes'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel#getIncludes() + * @see #getVampireModel() + * @generated + */ + EReference getVampireModel_Includes(); + + /** + * Returns the meta object for the containment reference list '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel#getComments Comments}'. + * + * + * @return the meta object for the containment reference list 'Comments'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel#getComments() + * @see #getVampireModel() + * @generated + */ + EReference getVampireModel_Comments(); + + /** + * Returns the meta object for the containment reference list '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel#getFormulas Formulas}'. + * + * + * @return the meta object for the containment reference list 'Formulas'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel#getFormulas() + * @see #getVampireModel() + * @generated + */ + EReference getVampireModel_Formulas(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInclude VLS Include}'. + * + * + * @return the meta object for class 'VLS Include'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInclude + * @generated + */ + EClass getVLSInclude(); + + /** + * Returns the meta object for the attribute '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInclude#getFileName File Name}'. + * + * + * @return the meta object for the attribute 'File Name'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInclude#getFileName() + * @see #getVLSInclude() + * @generated + */ + EAttribute getVLSInclude_FileName(); + + /** + * Returns the meta object for the containment reference list '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInclude#getNames Names}'. + * + * + * @return the meta object for the containment reference list 'Names'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInclude#getNames() + * @see #getVLSInclude() + * @generated + */ + EReference getVLSInclude_Names(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSName VLS Name}'. + * + * + * @return the meta object for class 'VLS Name'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSName + * @generated + */ + EClass getVLSName(); + + /** + * Returns the meta object for the attribute '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSName#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSName#getName() + * @see #getVLSName() + * @generated + */ + EAttribute getVLSName_Name(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment VLS Comment}'. + * + * + * @return the meta object for class 'VLS Comment'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment + * @generated + */ + EClass getVLSComment(); + + /** + * Returns the meta object for the attribute '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment#getComment Comment}'. + * + * + * @return the meta object for the attribute 'Comment'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment#getComment() + * @see #getVLSComment() + * @generated + */ + EAttribute getVLSComment_Comment(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula VLS Fof Formula}'. + * + * + * @return the meta object for class 'VLS Fof Formula'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula + * @generated + */ + EClass getVLSFofFormula(); + + /** + * Returns the meta object for the attribute '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula#getName() + * @see #getVLSFofFormula() + * @generated + */ + EAttribute getVLSFofFormula_Name(); + + /** + * Returns the meta object for the attribute '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula#getFofRole Fof Role}'. + * + * + * @return the meta object for the attribute 'Fof Role'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula#getFofRole() + * @see #getVLSFofFormula() + * @generated + */ + EAttribute getVLSFofFormula_FofRole(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula#getFofFormula Fof Formula}'. + * + * + * @return the meta object for the containment reference 'Fof Formula'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula#getFofFormula() + * @see #getVLSFofFormula() + * @generated + */ + EReference getVLSFofFormula_FofFormula(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula#getAnnotations Annotations}'. + * + * + * @return the meta object for the containment reference 'Annotations'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula#getAnnotations() + * @see #getVLSFofFormula() + * @generated + */ + EReference getVLSFofFormula_Annotations(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation VLS Annotation}'. + * + * + * @return the meta object for class 'VLS Annotation'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation + * @generated + */ + EClass getVLSAnnotation(); + + /** + * Returns the meta object for the attribute '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation#getName() + * @see #getVLSAnnotation() + * @generated + */ + EAttribute getVLSAnnotation_Name(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation#getFollowup Followup}'. + * + * + * @return the meta object for the containment reference 'Followup'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation#getFollowup() + * @see #getVLSAnnotation() + * @generated + */ + EReference getVLSAnnotation_Followup(); + + /** + * Returns the meta object for the containment reference list '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation#getTerms Terms}'. + * + * + * @return the meta object for the containment reference list 'Terms'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation#getTerms() + * @see #getVLSAnnotation() + * @generated + */ + EReference getVLSAnnotation_Terms(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm VLS Term}'. + * + * + * @return the meta object for class 'VLS Term'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm + * @generated + */ + EClass getVLSTerm(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable VLS Variable}'. + * + * + * @return the meta object for class 'VLS Variable'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable + * @generated + */ + EClass getVLSVariable(); + + /** + * Returns the meta object for the attribute '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable#getName() + * @see #getVLSVariable() + * @generated + */ + EAttribute getVLSVariable_Name(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof VLS Function Fof}'. + * + * + * @return the meta object for class 'VLS Function Fof'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof + * @generated + */ + EClass getVLSFunctionFof(); + + /** + * Returns the meta object for the attribute '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof#getFunctor Functor}'. + * + * + * @return the meta object for the attribute 'Functor'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof#getFunctor() + * @see #getVLSFunctionFof() + * @generated + */ + EAttribute getVLSFunctionFof_Functor(); + + /** + * Returns the meta object for the containment reference list '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof#getTerms Terms}'. + * + * + * @return the meta object for the containment reference list 'Terms'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof#getTerms() + * @see #getVLSFunctionFof() + * @generated + */ + EReference getVLSFunctionFof_Terms(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSDefinedTerm VLS Defined Term}'. + * + * + * @return the meta object for class 'VLS Defined Term'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSDefinedTerm + * @generated + */ + EClass getVLSDefinedTerm(); + + /** + * Returns the meta object for the attribute '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSDefinedTerm#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSDefinedTerm#getValue() + * @see #getVLSDefinedTerm() + * @generated + */ + EAttribute getVLSDefinedTerm_Value(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent VLS Equivalent}'. + * + * + * @return the meta object for class 'VLS Equivalent'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent + * @generated + */ + EClass getVLSEquivalent(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent#getLeft() + * @see #getVLSEquivalent() + * @generated + */ + EReference getVLSEquivalent_Left(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent#getRight() + * @see #getVLSEquivalent() + * @generated + */ + EReference getVLSEquivalent_Right(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies VLS Implies}'. + * + * + * @return the meta object for class 'VLS Implies'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies + * @generated + */ + EClass getVLSImplies(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies#getLeft() + * @see #getVLSImplies() + * @generated + */ + EReference getVLSImplies_Left(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies#getRight() + * @see #getVLSImplies() + * @generated + */ + EReference getVLSImplies_Right(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRevImplies VLS Rev Implies}'. + * + * + * @return the meta object for class 'VLS Rev Implies'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRevImplies + * @generated + */ + EClass getVLSRevImplies(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRevImplies#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRevImplies#getLeft() + * @see #getVLSRevImplies() + * @generated + */ + EReference getVLSRevImplies_Left(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRevImplies#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRevImplies#getRight() + * @see #getVLSRevImplies() + * @generated + */ + EReference getVLSRevImplies_Right(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSXnor VLS Xnor}'. + * + * + * @return the meta object for class 'VLS Xnor'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSXnor + * @generated + */ + EClass getVLSXnor(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSXnor#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSXnor#getLeft() + * @see #getVLSXnor() + * @generated + */ + EReference getVLSXnor_Left(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSXnor#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSXnor#getRight() + * @see #getVLSXnor() + * @generated + */ + EReference getVLSXnor_Right(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNor VLS Nor}'. + * + * + * @return the meta object for class 'VLS Nor'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNor + * @generated + */ + EClass getVLSNor(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNor#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNor#getLeft() + * @see #getVLSNor() + * @generated + */ + EReference getVLSNor_Left(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNor#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNor#getRight() + * @see #getVLSNor() + * @generated + */ + EReference getVLSNor_Right(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNand VLS Nand}'. + * + * + * @return the meta object for class 'VLS Nand'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNand + * @generated + */ + EClass getVLSNand(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNand#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNand#getLeft() + * @see #getVLSNand() + * @generated + */ + EReference getVLSNand_Left(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNand#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNand#getRight() + * @see #getVLSNand() + * @generated + */ + EReference getVLSNand_Right(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd VLS And}'. + * + * + * @return the meta object for class 'VLS And'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd + * @generated + */ + EClass getVLSAnd(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd#getLeft() + * @see #getVLSAnd() + * @generated + */ + EReference getVLSAnd_Left(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd#getRight() + * @see #getVLSAnd() + * @generated + */ + EReference getVLSAnd_Right(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr VLS Or}'. + * + * + * @return the meta object for class 'VLS Or'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr + * @generated + */ + EClass getVLSOr(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr#getLeft() + * @see #getVLSOr() + * @generated + */ + EReference getVLSOr_Left(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr#getRight() + * @see #getVLSOr() + * @generated + */ + EReference getVLSOr_Right(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier VLS Universal Quantifier}'. + * + * + * @return the meta object for class 'VLS Universal Quantifier'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier + * @generated + */ + EClass getVLSUniversalQuantifier(); + + /** + * Returns the meta object for the containment reference list '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier#getVariables Variables}'. + * + * + * @return the meta object for the containment reference list 'Variables'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier#getVariables() + * @see #getVLSUniversalQuantifier() + * @generated + */ + EReference getVLSUniversalQuantifier_Variables(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier#getOperand Operand}'. + * + * + * @return the meta object for the containment reference 'Operand'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier#getOperand() + * @see #getVLSUniversalQuantifier() + * @generated + */ + EReference getVLSUniversalQuantifier_Operand(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier VLS Existential Quantifier}'. + * + * + * @return the meta object for class 'VLS Existential Quantifier'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier + * @generated + */ + EClass getVLSExistentialQuantifier(); + + /** + * Returns the meta object for the containment reference list '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier#getVariables Variables}'. + * + * + * @return the meta object for the containment reference list 'Variables'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier#getVariables() + * @see #getVLSExistentialQuantifier() + * @generated + */ + EReference getVLSExistentialQuantifier_Variables(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier#getOperand Operand}'. + * + * + * @return the meta object for the containment reference 'Operand'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier#getOperand() + * @see #getVLSExistentialQuantifier() + * @generated + */ + EReference getVLSExistentialQuantifier_Operand(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation VLS Unary Negation}'. + * + * + * @return the meta object for class 'VLS Unary Negation'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation + * @generated + */ + EClass getVLSUnaryNegation(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation#getOperand Operand}'. + * + * + * @return the meta object for the containment reference 'Operand'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation#getOperand() + * @see #getVLSUnaryNegation() + * @generated + */ + EReference getVLSUnaryNegation_Operand(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality VLS Inequality}'. + * + * + * @return the meta object for class 'VLS Inequality'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality + * @generated + */ + EClass getVLSInequality(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality#getLeft() + * @see #getVLSInequality() + * @generated + */ + EReference getVLSInequality_Left(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality#getRight() + * @see #getVLSInequality() + * @generated + */ + EReference getVLSInequality_Right(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality VLS Equality}'. + * + * + * @return the meta object for class 'VLS Equality'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality + * @generated + */ + EClass getVLSEquality(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality#getLeft() + * @see #getVLSEquality() + * @generated + */ + EReference getVLSEquality_Left(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality#getRight() + * @see #getVLSEquality() + * @generated + */ + EReference getVLSEquality_Right(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAssignment VLS Assignment}'. + * + * + * @return the meta object for class 'VLS Assignment'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAssignment + * @generated + */ + EClass getVLSAssignment(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAssignment#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAssignment#getLeft() + * @see #getVLSAssignment() + * @generated + */ + EReference getVLSAssignment_Left(); + + /** + * Returns the meta object for the containment reference '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAssignment#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAssignment#getRight() + * @see #getVLSAssignment() + * @generated + */ + EReference getVLSAssignment_Right(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant VLS Constant}'. + * + * + * @return the meta object for class 'VLS Constant'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant + * @generated + */ + EClass getVLSConstant(); + + /** + * Returns the meta object for the attribute '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant#getName() + * @see #getVLSConstant() + * @generated + */ + EAttribute getVLSConstant_Name(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTrue VLS True}'. + * + * + * @return the meta object for class 'VLS True'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTrue + * @generated + */ + EClass getVLSTrue(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFalse VLS False}'. + * + * + * @return the meta object for class 'VLS False'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFalse + * @generated + */ + EClass getVLSFalse(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction VLS Function}'. + * + * + * @return the meta object for class 'VLS Function'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction + * @generated + */ + EClass getVLSFunction(); + + /** + * Returns the meta object for the attribute '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction#getConstant Constant}'. + * + * + * @return the meta object for the attribute 'Constant'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction#getConstant() + * @see #getVLSFunction() + * @generated + */ + EAttribute getVLSFunction_Constant(); + + /** + * Returns the meta object for the containment reference list '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction#getTerms Terms}'. + * + * + * @return the meta object for the containment reference list 'Terms'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction#getTerms() + * @see #getVLSFunction() + * @generated + */ + EReference getVLSFunction_Terms(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSLess VLS Less}'. + * + * + * @return the meta object for class 'VLS Less'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSLess + * @generated + */ + EClass getVLSLess(); + + /** + * Returns the meta object for the attribute '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSLess#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSLess#getName() + * @see #getVLSLess() + * @generated + */ + EAttribute getVLSLess_Name(); + + /** + * Returns the meta object for the containment reference list '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSLess#getTerms Terms}'. + * + * + * @return the meta object for the containment reference list 'Terms'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSLess#getTerms() + * @see #getVLSLess() + * @generated + */ + EReference getVLSLess_Terms(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInt VLS Int}'. + * + * + * @return the meta object for class 'VLS Int'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInt + * @generated + */ + EClass getVLSInt(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSReal VLS Real}'. + * + * + * @return the meta object for class 'VLS Real'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSReal + * @generated + */ + EClass getVLSReal(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRational VLS Rational}'. + * + * + * @return the meta object for class 'VLS Rational'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRational + * @generated + */ + EClass getVLSRational(); + + /** + * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSDoubleQuote VLS Double Quote}'. + * + * + * @return the meta object for class 'VLS Double Quote'. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSDoubleQuote + * @generated + */ + EClass getVLSDoubleQuote(); + + /** + * Returns the factory that creates the instances of the model. + * + * + * @return the factory that creates the instances of the model. + * @generated + */ + VampireLanguageFactory getVampireLanguageFactory(); + + /** + * + * Defines literals for the meta objects that represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @generated + */ + interface Literals + { + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireModelImpl Vampire Model}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireModelImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVampireModel() + * @generated + */ + EClass VAMPIRE_MODEL = eINSTANCE.getVampireModel(); + + /** + * The meta object literal for the 'Includes' containment reference list feature. + * + * + * @generated + */ + EReference VAMPIRE_MODEL__INCLUDES = eINSTANCE.getVampireModel_Includes(); + + /** + * The meta object literal for the 'Comments' containment reference list feature. + * + * + * @generated + */ + EReference VAMPIRE_MODEL__COMMENTS = eINSTANCE.getVampireModel_Comments(); + + /** + * The meta object literal for the 'Formulas' containment reference list feature. + * + * + * @generated + */ + EReference VAMPIRE_MODEL__FORMULAS = eINSTANCE.getVampireModel_Formulas(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSIncludeImpl VLS Include}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSIncludeImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSInclude() + * @generated + */ + EClass VLS_INCLUDE = eINSTANCE.getVLSInclude(); + + /** + * The meta object literal for the 'File Name' attribute feature. + * + * + * @generated + */ + EAttribute VLS_INCLUDE__FILE_NAME = eINSTANCE.getVLSInclude_FileName(); + + /** + * The meta object literal for the 'Names' containment reference list feature. + * + * + * @generated + */ + EReference VLS_INCLUDE__NAMES = eINSTANCE.getVLSInclude_Names(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSNameImpl VLS Name}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSNameImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSName() + * @generated + */ + EClass VLS_NAME = eINSTANCE.getVLSName(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute VLS_NAME__NAME = eINSTANCE.getVLSName_Name(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSCommentImpl VLS Comment}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSCommentImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSComment() + * @generated + */ + EClass VLS_COMMENT = eINSTANCE.getVLSComment(); + + /** + * The meta object literal for the 'Comment' attribute feature. + * + * + * @generated + */ + EAttribute VLS_COMMENT__COMMENT = eINSTANCE.getVLSComment_Comment(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFofFormulaImpl VLS Fof Formula}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFofFormulaImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSFofFormula() + * @generated + */ + EClass VLS_FOF_FORMULA = eINSTANCE.getVLSFofFormula(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute VLS_FOF_FORMULA__NAME = eINSTANCE.getVLSFofFormula_Name(); + + /** + * The meta object literal for the 'Fof Role' attribute feature. + * + * + * @generated + */ + EAttribute VLS_FOF_FORMULA__FOF_ROLE = eINSTANCE.getVLSFofFormula_FofRole(); + + /** + * The meta object literal for the 'Fof Formula' containment reference feature. + * + * + * @generated + */ + EReference VLS_FOF_FORMULA__FOF_FORMULA = eINSTANCE.getVLSFofFormula_FofFormula(); + + /** + * The meta object literal for the 'Annotations' containment reference feature. + * + * + * @generated + */ + EReference VLS_FOF_FORMULA__ANNOTATIONS = eINSTANCE.getVLSFofFormula_Annotations(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSAnnotationImpl VLS Annotation}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSAnnotationImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSAnnotation() + * @generated + */ + EClass VLS_ANNOTATION = eINSTANCE.getVLSAnnotation(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute VLS_ANNOTATION__NAME = eINSTANCE.getVLSAnnotation_Name(); + + /** + * The meta object literal for the 'Followup' containment reference feature. + * + * + * @generated + */ + EReference VLS_ANNOTATION__FOLLOWUP = eINSTANCE.getVLSAnnotation_Followup(); + + /** + * The meta object literal for the 'Terms' containment reference list feature. + * + * + * @generated + */ + EReference VLS_ANNOTATION__TERMS = eINSTANCE.getVLSAnnotation_Terms(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSTermImpl VLS Term}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSTermImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSTerm() + * @generated + */ + EClass VLS_TERM = eINSTANCE.getVLSTerm(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSVariableImpl VLS Variable}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSVariableImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSVariable() + * @generated + */ + EClass VLS_VARIABLE = eINSTANCE.getVLSVariable(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute VLS_VARIABLE__NAME = eINSTANCE.getVLSVariable_Name(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFunctionFofImpl VLS Function Fof}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFunctionFofImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSFunctionFof() + * @generated + */ + EClass VLS_FUNCTION_FOF = eINSTANCE.getVLSFunctionFof(); + + /** + * The meta object literal for the 'Functor' attribute feature. + * + * + * @generated + */ + EAttribute VLS_FUNCTION_FOF__FUNCTOR = eINSTANCE.getVLSFunctionFof_Functor(); + + /** + * The meta object literal for the 'Terms' containment reference list feature. + * + * + * @generated + */ + EReference VLS_FUNCTION_FOF__TERMS = eINSTANCE.getVLSFunctionFof_Terms(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSDefinedTermImpl VLS Defined Term}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSDefinedTermImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSDefinedTerm() + * @generated + */ + EClass VLS_DEFINED_TERM = eINSTANCE.getVLSDefinedTerm(); + + /** + * The meta object literal for the 'Value' attribute feature. + * + * + * @generated + */ + EAttribute VLS_DEFINED_TERM__VALUE = eINSTANCE.getVLSDefinedTerm_Value(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSEquivalentImpl VLS Equivalent}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSEquivalentImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSEquivalent() + * @generated + */ + EClass VLS_EQUIVALENT = eINSTANCE.getVLSEquivalent(); + + /** + * The meta object literal for the 'Left' containment reference feature. + * + * + * @generated + */ + EReference VLS_EQUIVALENT__LEFT = eINSTANCE.getVLSEquivalent_Left(); + + /** + * The meta object literal for the 'Right' containment reference feature. + * + * + * @generated + */ + EReference VLS_EQUIVALENT__RIGHT = eINSTANCE.getVLSEquivalent_Right(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSImpliesImpl VLS Implies}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSImpliesImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSImplies() + * @generated + */ + EClass VLS_IMPLIES = eINSTANCE.getVLSImplies(); + + /** + * The meta object literal for the 'Left' containment reference feature. + * + * + * @generated + */ + EReference VLS_IMPLIES__LEFT = eINSTANCE.getVLSImplies_Left(); + + /** + * The meta object literal for the 'Right' containment reference feature. + * + * + * @generated + */ + EReference VLS_IMPLIES__RIGHT = eINSTANCE.getVLSImplies_Right(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSRevImpliesImpl VLS Rev Implies}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSRevImpliesImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSRevImplies() + * @generated + */ + EClass VLS_REV_IMPLIES = eINSTANCE.getVLSRevImplies(); + + /** + * The meta object literal for the 'Left' containment reference feature. + * + * + * @generated + */ + EReference VLS_REV_IMPLIES__LEFT = eINSTANCE.getVLSRevImplies_Left(); + + /** + * The meta object literal for the 'Right' containment reference feature. + * + * + * @generated + */ + EReference VLS_REV_IMPLIES__RIGHT = eINSTANCE.getVLSRevImplies_Right(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSXnorImpl VLS Xnor}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSXnorImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSXnor() + * @generated + */ + EClass VLS_XNOR = eINSTANCE.getVLSXnor(); + + /** + * The meta object literal for the 'Left' containment reference feature. + * + * + * @generated + */ + EReference VLS_XNOR__LEFT = eINSTANCE.getVLSXnor_Left(); + + /** + * The meta object literal for the 'Right' containment reference feature. + * + * + * @generated + */ + EReference VLS_XNOR__RIGHT = eINSTANCE.getVLSXnor_Right(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSNorImpl VLS Nor}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSNorImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSNor() + * @generated + */ + EClass VLS_NOR = eINSTANCE.getVLSNor(); + + /** + * The meta object literal for the 'Left' containment reference feature. + * + * + * @generated + */ + EReference VLS_NOR__LEFT = eINSTANCE.getVLSNor_Left(); + + /** + * The meta object literal for the 'Right' containment reference feature. + * + * + * @generated + */ + EReference VLS_NOR__RIGHT = eINSTANCE.getVLSNor_Right(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSNandImpl VLS Nand}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSNandImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSNand() + * @generated + */ + EClass VLS_NAND = eINSTANCE.getVLSNand(); + + /** + * The meta object literal for the 'Left' containment reference feature. + * + * + * @generated + */ + EReference VLS_NAND__LEFT = eINSTANCE.getVLSNand_Left(); + + /** + * The meta object literal for the 'Right' containment reference feature. + * + * + * @generated + */ + EReference VLS_NAND__RIGHT = eINSTANCE.getVLSNand_Right(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSAndImpl VLS And}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSAndImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSAnd() + * @generated + */ + EClass VLS_AND = eINSTANCE.getVLSAnd(); + + /** + * The meta object literal for the 'Left' containment reference feature. + * + * + * @generated + */ + EReference VLS_AND__LEFT = eINSTANCE.getVLSAnd_Left(); + + /** + * The meta object literal for the 'Right' containment reference feature. + * + * + * @generated + */ + EReference VLS_AND__RIGHT = eINSTANCE.getVLSAnd_Right(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSOrImpl VLS Or}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSOrImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSOr() + * @generated + */ + EClass VLS_OR = eINSTANCE.getVLSOr(); + + /** + * The meta object literal for the 'Left' containment reference feature. + * + * + * @generated + */ + EReference VLS_OR__LEFT = eINSTANCE.getVLSOr_Left(); + + /** + * The meta object literal for the 'Right' containment reference feature. + * + * + * @generated + */ + EReference VLS_OR__RIGHT = eINSTANCE.getVLSOr_Right(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSUniversalQuantifierImpl VLS Universal Quantifier}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSUniversalQuantifierImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSUniversalQuantifier() + * @generated + */ + EClass VLS_UNIVERSAL_QUANTIFIER = eINSTANCE.getVLSUniversalQuantifier(); + + /** + * The meta object literal for the 'Variables' containment reference list feature. + * + * + * @generated + */ + EReference VLS_UNIVERSAL_QUANTIFIER__VARIABLES = eINSTANCE.getVLSUniversalQuantifier_Variables(); + + /** + * The meta object literal for the 'Operand' containment reference feature. + * + * + * @generated + */ + EReference VLS_UNIVERSAL_QUANTIFIER__OPERAND = eINSTANCE.getVLSUniversalQuantifier_Operand(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSExistentialQuantifierImpl VLS Existential Quantifier}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSExistentialQuantifierImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSExistentialQuantifier() + * @generated + */ + EClass VLS_EXISTENTIAL_QUANTIFIER = eINSTANCE.getVLSExistentialQuantifier(); + + /** + * The meta object literal for the 'Variables' containment reference list feature. + * + * + * @generated + */ + EReference VLS_EXISTENTIAL_QUANTIFIER__VARIABLES = eINSTANCE.getVLSExistentialQuantifier_Variables(); + + /** + * The meta object literal for the 'Operand' containment reference feature. + * + * + * @generated + */ + EReference VLS_EXISTENTIAL_QUANTIFIER__OPERAND = eINSTANCE.getVLSExistentialQuantifier_Operand(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSUnaryNegationImpl VLS Unary Negation}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSUnaryNegationImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSUnaryNegation() + * @generated + */ + EClass VLS_UNARY_NEGATION = eINSTANCE.getVLSUnaryNegation(); + + /** + * The meta object literal for the 'Operand' containment reference feature. + * + * + * @generated + */ + EReference VLS_UNARY_NEGATION__OPERAND = eINSTANCE.getVLSUnaryNegation_Operand(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSInequalityImpl VLS Inequality}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSInequalityImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSInequality() + * @generated + */ + EClass VLS_INEQUALITY = eINSTANCE.getVLSInequality(); + + /** + * The meta object literal for the 'Left' containment reference feature. + * + * + * @generated + */ + EReference VLS_INEQUALITY__LEFT = eINSTANCE.getVLSInequality_Left(); + + /** + * The meta object literal for the 'Right' containment reference feature. + * + * + * @generated + */ + EReference VLS_INEQUALITY__RIGHT = eINSTANCE.getVLSInequality_Right(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSEqualityImpl VLS Equality}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSEqualityImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSEquality() + * @generated + */ + EClass VLS_EQUALITY = eINSTANCE.getVLSEquality(); + + /** + * The meta object literal for the 'Left' containment reference feature. + * + * + * @generated + */ + EReference VLS_EQUALITY__LEFT = eINSTANCE.getVLSEquality_Left(); + + /** + * The meta object literal for the 'Right' containment reference feature. + * + * + * @generated + */ + EReference VLS_EQUALITY__RIGHT = eINSTANCE.getVLSEquality_Right(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSAssignmentImpl VLS Assignment}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSAssignmentImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSAssignment() + * @generated + */ + EClass VLS_ASSIGNMENT = eINSTANCE.getVLSAssignment(); + + /** + * The meta object literal for the 'Left' containment reference feature. + * + * + * @generated + */ + EReference VLS_ASSIGNMENT__LEFT = eINSTANCE.getVLSAssignment_Left(); + + /** + * The meta object literal for the 'Right' containment reference feature. + * + * + * @generated + */ + EReference VLS_ASSIGNMENT__RIGHT = eINSTANCE.getVLSAssignment_Right(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSConstantImpl VLS Constant}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSConstantImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSConstant() + * @generated + */ + EClass VLS_CONSTANT = eINSTANCE.getVLSConstant(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute VLS_CONSTANT__NAME = eINSTANCE.getVLSConstant_Name(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSTrueImpl VLS True}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSTrueImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSTrue() + * @generated + */ + EClass VLS_TRUE = eINSTANCE.getVLSTrue(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFalseImpl VLS False}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFalseImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSFalse() + * @generated + */ + EClass VLS_FALSE = eINSTANCE.getVLSFalse(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFunctionImpl VLS Function}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFunctionImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSFunction() + * @generated + */ + EClass VLS_FUNCTION = eINSTANCE.getVLSFunction(); + + /** + * The meta object literal for the 'Constant' attribute feature. + * + * + * @generated + */ + EAttribute VLS_FUNCTION__CONSTANT = eINSTANCE.getVLSFunction_Constant(); + + /** + * The meta object literal for the 'Terms' containment reference list feature. + * + * + * @generated + */ + EReference VLS_FUNCTION__TERMS = eINSTANCE.getVLSFunction_Terms(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSLessImpl VLS Less}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSLessImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSLess() + * @generated + */ + EClass VLS_LESS = eINSTANCE.getVLSLess(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute VLS_LESS__NAME = eINSTANCE.getVLSLess_Name(); + + /** + * The meta object literal for the 'Terms' containment reference list feature. + * + * + * @generated + */ + EReference VLS_LESS__TERMS = eINSTANCE.getVLSLess_Terms(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSIntImpl VLS Int}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSIntImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSInt() + * @generated + */ + EClass VLS_INT = eINSTANCE.getVLSInt(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSRealImpl VLS Real}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSRealImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSReal() + * @generated + */ + EClass VLS_REAL = eINSTANCE.getVLSReal(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSRationalImpl VLS Rational}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSRationalImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSRational() + * @generated + */ + EClass VLS_RATIONAL = eINSTANCE.getVLSRational(); + + /** + * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSDoubleQuoteImpl VLS Double Quote}' class. + * + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSDoubleQuoteImpl + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguagePackageImpl#getVLSDoubleQuote() + * @generated + */ + EClass VLS_DOUBLE_QUOTE = eINSTANCE.getVLSDoubleQuote(); + + } + +} //VampireLanguagePackage diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VampireModel.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VampireModel.java new file mode 100644 index 00000000..fae3ccf5 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VampireModel.java @@ -0,0 +1,78 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Vampire Model'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel#getIncludes Includes}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel#getComments Comments}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel#getFormulas Formulas}
  • + *
+ * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVampireModel() + * @model + * @generated + */ +public interface VampireModel extends EObject +{ + /** + * Returns the value of the 'Includes' containment reference list. + * The list contents are of type {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInclude}. + * + *

+ * If the meaning of the 'Includes' containment reference list isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Includes' containment reference list. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVampireModel_Includes() + * @model containment="true" + * @generated + */ + EList getIncludes(); + + /** + * Returns the value of the 'Comments' containment reference list. + * The list contents are of type {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment}. + * + *

+ * If the meaning of the 'Comments' containment reference list isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Comments' containment reference list. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVampireModel_Comments() + * @model containment="true" + * @generated + */ + EList getComments(); + + /** + * Returns the value of the 'Formulas' containment reference list. + * The list contents are of type {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula}. + * + *

+ * If the meaning of the 'Formulas' containment reference list isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Formulas' containment reference list. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVampireModel_Formulas() + * @model containment="true" + * @generated + */ + EList getFormulas(); + +} // VampireModel diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSAndImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSAndImpl.java new file mode 100644 index 00000000..951de940 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSAndImpl.java @@ -0,0 +1,265 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'VLS And'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSAndImpl#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSAndImpl#getRight Right}
  • + *
+ * + * @generated + */ +public class VLSAndImpl extends VLSTermImpl implements VLSAnd +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected VLSTerm left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected VLSTerm right; + + /** + * + * + * @generated + */ + protected VLSAndImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_AND; + } + + /** + * + * + * @generated + */ + public VLSTerm getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(VLSTerm newLeft, NotificationChain msgs) + { + VLSTerm oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_AND__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(VLSTerm newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_AND__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_AND__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_AND__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public VLSTerm getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(VLSTerm newRight, NotificationChain msgs) + { + VLSTerm oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_AND__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(VLSTerm newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_AND__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_AND__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_AND__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_AND__LEFT: + return basicSetLeft(null, msgs); + case VampireLanguagePackage.VLS_AND__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_AND__LEFT: + return getLeft(); + case VampireLanguagePackage.VLS_AND__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_AND__LEFT: + setLeft((VLSTerm)newValue); + return; + case VampireLanguagePackage.VLS_AND__RIGHT: + setRight((VLSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_AND__LEFT: + setLeft((VLSTerm)null); + return; + case VampireLanguagePackage.VLS_AND__RIGHT: + setRight((VLSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_AND__LEFT: + return left != null; + case VampireLanguagePackage.VLS_AND__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //VLSAndImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSAnnotationImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSAnnotationImpl.java new file mode 100644 index 00000000..092dd4c9 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSAnnotationImpl.java @@ -0,0 +1,311 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'VLS Annotation'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSAnnotationImpl#getName Name}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSAnnotationImpl#getFollowup Followup}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSAnnotationImpl#getTerms Terms}
  • + *
+ * + * @generated + */ +public class VLSAnnotationImpl extends MinimalEObjectImpl.Container implements VLSAnnotation +{ + /** + * The default value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * The cached value of the '{@link #getFollowup() Followup}' containment reference. + * + * + * @see #getFollowup() + * @generated + * @ordered + */ + protected VLSAnnotation followup; + + /** + * The cached value of the '{@link #getTerms() Terms}' containment reference list. + * + * + * @see #getTerms() + * @generated + * @ordered + */ + protected EList terms; + + /** + * + * + * @generated + */ + protected VLSAnnotationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_ANNOTATION; + } + + /** + * + * + * @generated + */ + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_ANNOTATION__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + public VLSAnnotation getFollowup() + { + return followup; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetFollowup(VLSAnnotation newFollowup, NotificationChain msgs) + { + VLSAnnotation oldFollowup = followup; + followup = newFollowup; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_ANNOTATION__FOLLOWUP, oldFollowup, newFollowup); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setFollowup(VLSAnnotation newFollowup) + { + if (newFollowup != followup) + { + NotificationChain msgs = null; + if (followup != null) + msgs = ((InternalEObject)followup).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_ANNOTATION__FOLLOWUP, null, msgs); + if (newFollowup != null) + msgs = ((InternalEObject)newFollowup).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_ANNOTATION__FOLLOWUP, null, msgs); + msgs = basicSetFollowup(newFollowup, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_ANNOTATION__FOLLOWUP, newFollowup, newFollowup)); + } + + /** + * + * + * @generated + */ + public EList getTerms() + { + if (terms == null) + { + terms = new EObjectContainmentEList(VLSAnnotation.class, this, VampireLanguagePackage.VLS_ANNOTATION__TERMS); + } + return terms; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_ANNOTATION__FOLLOWUP: + return basicSetFollowup(null, msgs); + case VampireLanguagePackage.VLS_ANNOTATION__TERMS: + return ((InternalEList)getTerms()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_ANNOTATION__NAME: + return getName(); + case VampireLanguagePackage.VLS_ANNOTATION__FOLLOWUP: + return getFollowup(); + case VampireLanguagePackage.VLS_ANNOTATION__TERMS: + return getTerms(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_ANNOTATION__NAME: + setName((String)newValue); + return; + case VampireLanguagePackage.VLS_ANNOTATION__FOLLOWUP: + setFollowup((VLSAnnotation)newValue); + return; + case VampireLanguagePackage.VLS_ANNOTATION__TERMS: + getTerms().clear(); + getTerms().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_ANNOTATION__NAME: + setName(NAME_EDEFAULT); + return; + case VampireLanguagePackage.VLS_ANNOTATION__FOLLOWUP: + setFollowup((VLSAnnotation)null); + return; + case VampireLanguagePackage.VLS_ANNOTATION__TERMS: + getTerms().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_ANNOTATION__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case VampireLanguagePackage.VLS_ANNOTATION__FOLLOWUP: + return followup != null; + case VampireLanguagePackage.VLS_ANNOTATION__TERMS: + return terms != null && !terms.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + +} //VLSAnnotationImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSAssignmentImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSAssignmentImpl.java new file mode 100644 index 00000000..e6dbb58d --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSAssignmentImpl.java @@ -0,0 +1,265 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAssignment; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'VLS Assignment'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSAssignmentImpl#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSAssignmentImpl#getRight Right}
  • + *
+ * + * @generated + */ +public class VLSAssignmentImpl extends VLSTermImpl implements VLSAssignment +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected VLSTerm left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected VLSTerm right; + + /** + * + * + * @generated + */ + protected VLSAssignmentImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_ASSIGNMENT; + } + + /** + * + * + * @generated + */ + public VLSTerm getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(VLSTerm newLeft, NotificationChain msgs) + { + VLSTerm oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_ASSIGNMENT__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(VLSTerm newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_ASSIGNMENT__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_ASSIGNMENT__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_ASSIGNMENT__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public VLSTerm getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(VLSTerm newRight, NotificationChain msgs) + { + VLSTerm oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_ASSIGNMENT__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(VLSTerm newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_ASSIGNMENT__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_ASSIGNMENT__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_ASSIGNMENT__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_ASSIGNMENT__LEFT: + return basicSetLeft(null, msgs); + case VampireLanguagePackage.VLS_ASSIGNMENT__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_ASSIGNMENT__LEFT: + return getLeft(); + case VampireLanguagePackage.VLS_ASSIGNMENT__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_ASSIGNMENT__LEFT: + setLeft((VLSTerm)newValue); + return; + case VampireLanguagePackage.VLS_ASSIGNMENT__RIGHT: + setRight((VLSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_ASSIGNMENT__LEFT: + setLeft((VLSTerm)null); + return; + case VampireLanguagePackage.VLS_ASSIGNMENT__RIGHT: + setRight((VLSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_ASSIGNMENT__LEFT: + return left != null; + case VampireLanguagePackage.VLS_ASSIGNMENT__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //VLSAssignmentImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSCommentImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSCommentImpl.java new file mode 100644 index 00000000..9599872d --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSCommentImpl.java @@ -0,0 +1,178 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'VLS Comment'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSCommentImpl#getComment Comment}
  • + *
+ * + * @generated + */ +public class VLSCommentImpl extends MinimalEObjectImpl.Container implements VLSComment +{ + /** + * The default value of the '{@link #getComment() Comment}' attribute. + * + * + * @see #getComment() + * @generated + * @ordered + */ + protected static final String COMMENT_EDEFAULT = null; + + /** + * The cached value of the '{@link #getComment() Comment}' attribute. + * + * + * @see #getComment() + * @generated + * @ordered + */ + protected String comment = COMMENT_EDEFAULT; + + /** + * + * + * @generated + */ + protected VLSCommentImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_COMMENT; + } + + /** + * + * + * @generated + */ + public String getComment() + { + return comment; + } + + /** + * + * + * @generated + */ + public void setComment(String newComment) + { + String oldComment = comment; + comment = newComment; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_COMMENT__COMMENT, oldComment, comment)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_COMMENT__COMMENT: + return getComment(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_COMMENT__COMMENT: + setComment((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_COMMENT__COMMENT: + setComment(COMMENT_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_COMMENT__COMMENT: + return COMMENT_EDEFAULT == null ? comment != null : !COMMENT_EDEFAULT.equals(comment); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (comment: "); + result.append(comment); + result.append(')'); + return result.toString(); + } + +} //VLSCommentImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSConstantImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSConstantImpl.java new file mode 100644 index 00000000..b9bcf512 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSConstantImpl.java @@ -0,0 +1,177 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'VLS Constant'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSConstantImpl#getName Name}
  • + *
+ * + * @generated + */ +public class VLSConstantImpl extends VLSTermImpl implements VLSConstant +{ + /** + * The default value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * + * + * @generated + */ + protected VLSConstantImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_CONSTANT; + } + + /** + * + * + * @generated + */ + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_CONSTANT__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_CONSTANT__NAME: + return getName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_CONSTANT__NAME: + setName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_CONSTANT__NAME: + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_CONSTANT__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + +} //VLSConstantImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSDefinedTermImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSDefinedTermImpl.java new file mode 100644 index 00000000..444e2b85 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSDefinedTermImpl.java @@ -0,0 +1,177 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSDefinedTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'VLS Defined Term'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSDefinedTermImpl#getValue Value}
  • + *
+ * + * @generated + */ +public class VLSDefinedTermImpl extends VLSTermImpl implements VLSDefinedTerm +{ + /** + * The default value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected static final String VALUE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected String value = VALUE_EDEFAULT; + + /** + * + * + * @generated + */ + protected VLSDefinedTermImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_DEFINED_TERM; + } + + /** + * + * + * @generated + */ + public String getValue() + { + return value; + } + + /** + * + * + * @generated + */ + public void setValue(String newValue) + { + String oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_DEFINED_TERM__VALUE, oldValue, value)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_DEFINED_TERM__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_DEFINED_TERM__VALUE: + setValue((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_DEFINED_TERM__VALUE: + setValue(VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_DEFINED_TERM__VALUE: + return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (value: "); + result.append(value); + result.append(')'); + return result.toString(); + } + +} //VLSDefinedTermImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSDoubleQuoteImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSDoubleQuoteImpl.java new file mode 100644 index 00000000..db99a631 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSDoubleQuoteImpl.java @@ -0,0 +1,41 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSDoubleQuote; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'VLS Double Quote'. + * + * + * @generated + */ +public class VLSDoubleQuoteImpl extends VLSDefinedTermImpl implements VLSDoubleQuote +{ + /** + * + * + * @generated + */ + protected VLSDoubleQuoteImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_DOUBLE_QUOTE; + } + +} //VLSDoubleQuoteImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSEqualityImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSEqualityImpl.java new file mode 100644 index 00000000..ba729215 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSEqualityImpl.java @@ -0,0 +1,265 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'VLS Equality'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSEqualityImpl#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSEqualityImpl#getRight Right}
  • + *
+ * + * @generated + */ +public class VLSEqualityImpl extends VLSTermImpl implements VLSEquality +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected VLSTerm left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected VLSTerm right; + + /** + * + * + * @generated + */ + protected VLSEqualityImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_EQUALITY; + } + + /** + * + * + * @generated + */ + public VLSTerm getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(VLSTerm newLeft, NotificationChain msgs) + { + VLSTerm oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_EQUALITY__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(VLSTerm newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_EQUALITY__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_EQUALITY__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_EQUALITY__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public VLSTerm getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(VLSTerm newRight, NotificationChain msgs) + { + VLSTerm oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_EQUALITY__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(VLSTerm newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_EQUALITY__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_EQUALITY__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_EQUALITY__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_EQUALITY__LEFT: + return basicSetLeft(null, msgs); + case VampireLanguagePackage.VLS_EQUALITY__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_EQUALITY__LEFT: + return getLeft(); + case VampireLanguagePackage.VLS_EQUALITY__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_EQUALITY__LEFT: + setLeft((VLSTerm)newValue); + return; + case VampireLanguagePackage.VLS_EQUALITY__RIGHT: + setRight((VLSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_EQUALITY__LEFT: + setLeft((VLSTerm)null); + return; + case VampireLanguagePackage.VLS_EQUALITY__RIGHT: + setRight((VLSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_EQUALITY__LEFT: + return left != null; + case VampireLanguagePackage.VLS_EQUALITY__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //VLSEqualityImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSEquivalentImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSEquivalentImpl.java new file mode 100644 index 00000000..2ab11117 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSEquivalentImpl.java @@ -0,0 +1,265 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'VLS Equivalent'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSEquivalentImpl#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSEquivalentImpl#getRight Right}
  • + *
+ * + * @generated + */ +public class VLSEquivalentImpl extends VLSTermImpl implements VLSEquivalent +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected VLSTerm left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected VLSTerm right; + + /** + * + * + * @generated + */ + protected VLSEquivalentImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_EQUIVALENT; + } + + /** + * + * + * @generated + */ + public VLSTerm getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(VLSTerm newLeft, NotificationChain msgs) + { + VLSTerm oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_EQUIVALENT__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(VLSTerm newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_EQUIVALENT__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_EQUIVALENT__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_EQUIVALENT__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public VLSTerm getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(VLSTerm newRight, NotificationChain msgs) + { + VLSTerm oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_EQUIVALENT__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(VLSTerm newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_EQUIVALENT__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_EQUIVALENT__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_EQUIVALENT__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_EQUIVALENT__LEFT: + return basicSetLeft(null, msgs); + case VampireLanguagePackage.VLS_EQUIVALENT__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_EQUIVALENT__LEFT: + return getLeft(); + case VampireLanguagePackage.VLS_EQUIVALENT__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_EQUIVALENT__LEFT: + setLeft((VLSTerm)newValue); + return; + case VampireLanguagePackage.VLS_EQUIVALENT__RIGHT: + setRight((VLSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_EQUIVALENT__LEFT: + setLeft((VLSTerm)null); + return; + case VampireLanguagePackage.VLS_EQUIVALENT__RIGHT: + setRight((VLSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_EQUIVALENT__LEFT: + return left != null; + case VampireLanguagePackage.VLS_EQUIVALENT__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //VLSEquivalentImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSExistentialQuantifierImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSExistentialQuantifierImpl.java new file mode 100644 index 00000000..34670d8b --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSExistentialQuantifierImpl.java @@ -0,0 +1,241 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'VLS Existential Quantifier'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSExistentialQuantifierImpl#getVariables Variables}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSExistentialQuantifierImpl#getOperand Operand}
  • + *
+ * + * @generated + */ +public class VLSExistentialQuantifierImpl extends VLSTermImpl implements VLSExistentialQuantifier +{ + /** + * The cached value of the '{@link #getVariables() Variables}' containment reference list. + * + * + * @see #getVariables() + * @generated + * @ordered + */ + protected EList variables; + + /** + * The cached value of the '{@link #getOperand() Operand}' containment reference. + * + * + * @see #getOperand() + * @generated + * @ordered + */ + protected VLSTerm operand; + + /** + * + * + * @generated + */ + protected VLSExistentialQuantifierImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_EXISTENTIAL_QUANTIFIER; + } + + /** + * + * + * @generated + */ + public EList getVariables() + { + if (variables == null) + { + variables = new EObjectContainmentEList(VLSVariable.class, this, VampireLanguagePackage.VLS_EXISTENTIAL_QUANTIFIER__VARIABLES); + } + return variables; + } + + /** + * + * + * @generated + */ + public VLSTerm getOperand() + { + return operand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOperand(VLSTerm newOperand, NotificationChain msgs) + { + VLSTerm oldOperand = operand; + operand = newOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_EXISTENTIAL_QUANTIFIER__OPERAND, oldOperand, newOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setOperand(VLSTerm newOperand) + { + if (newOperand != operand) + { + NotificationChain msgs = null; + if (operand != null) + msgs = ((InternalEObject)operand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_EXISTENTIAL_QUANTIFIER__OPERAND, null, msgs); + if (newOperand != null) + msgs = ((InternalEObject)newOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_EXISTENTIAL_QUANTIFIER__OPERAND, null, msgs); + msgs = basicSetOperand(newOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_EXISTENTIAL_QUANTIFIER__OPERAND, newOperand, newOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_EXISTENTIAL_QUANTIFIER__VARIABLES: + return ((InternalEList)getVariables()).basicRemove(otherEnd, msgs); + case VampireLanguagePackage.VLS_EXISTENTIAL_QUANTIFIER__OPERAND: + return basicSetOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_EXISTENTIAL_QUANTIFIER__VARIABLES: + return getVariables(); + case VampireLanguagePackage.VLS_EXISTENTIAL_QUANTIFIER__OPERAND: + return getOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_EXISTENTIAL_QUANTIFIER__VARIABLES: + getVariables().clear(); + getVariables().addAll((Collection)newValue); + return; + case VampireLanguagePackage.VLS_EXISTENTIAL_QUANTIFIER__OPERAND: + setOperand((VLSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_EXISTENTIAL_QUANTIFIER__VARIABLES: + getVariables().clear(); + return; + case VampireLanguagePackage.VLS_EXISTENTIAL_QUANTIFIER__OPERAND: + setOperand((VLSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_EXISTENTIAL_QUANTIFIER__VARIABLES: + return variables != null && !variables.isEmpty(); + case VampireLanguagePackage.VLS_EXISTENTIAL_QUANTIFIER__OPERAND: + return operand != null; + } + return super.eIsSet(featureID); + } + +} //VLSExistentialQuantifierImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFalseImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFalseImpl.java new file mode 100644 index 00000000..1db5a6b4 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFalseImpl.java @@ -0,0 +1,41 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFalse; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'VLS False'. + * + * + * @generated + */ +public class VLSFalseImpl extends VLSTermImpl implements VLSFalse +{ + /** + * + * + * @generated + */ + protected VLSFalseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_FALSE; + } + +} //VLSFalseImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFofFormulaImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFofFormulaImpl.java new file mode 100644 index 00000000..beef8908 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFofFormulaImpl.java @@ -0,0 +1,394 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'VLS Fof Formula'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFofFormulaImpl#getName Name}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFofFormulaImpl#getFofRole Fof Role}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFofFormulaImpl#getFofFormula Fof Formula}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFofFormulaImpl#getAnnotations Annotations}
  • + *
+ * + * @generated + */ +public class VLSFofFormulaImpl extends MinimalEObjectImpl.Container implements VLSFofFormula +{ + /** + * The default value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * The default value of the '{@link #getFofRole() Fof Role}' attribute. + * + * + * @see #getFofRole() + * @generated + * @ordered + */ + protected static final String FOF_ROLE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getFofRole() Fof Role}' attribute. + * + * + * @see #getFofRole() + * @generated + * @ordered + */ + protected String fofRole = FOF_ROLE_EDEFAULT; + + /** + * The cached value of the '{@link #getFofFormula() Fof Formula}' containment reference. + * + * + * @see #getFofFormula() + * @generated + * @ordered + */ + protected VLSTerm fofFormula; + + /** + * The cached value of the '{@link #getAnnotations() Annotations}' containment reference. + * + * + * @see #getAnnotations() + * @generated + * @ordered + */ + protected VLSAnnotation annotations; + + /** + * + * + * @generated + */ + protected VLSFofFormulaImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_FOF_FORMULA; + } + + /** + * + * + * @generated + */ + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_FOF_FORMULA__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + public String getFofRole() + { + return fofRole; + } + + /** + * + * + * @generated + */ + public void setFofRole(String newFofRole) + { + String oldFofRole = fofRole; + fofRole = newFofRole; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_FOF_FORMULA__FOF_ROLE, oldFofRole, fofRole)); + } + + /** + * + * + * @generated + */ + public VLSTerm getFofFormula() + { + return fofFormula; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetFofFormula(VLSTerm newFofFormula, NotificationChain msgs) + { + VLSTerm oldFofFormula = fofFormula; + fofFormula = newFofFormula; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_FOF_FORMULA__FOF_FORMULA, oldFofFormula, newFofFormula); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setFofFormula(VLSTerm newFofFormula) + { + if (newFofFormula != fofFormula) + { + NotificationChain msgs = null; + if (fofFormula != null) + msgs = ((InternalEObject)fofFormula).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_FOF_FORMULA__FOF_FORMULA, null, msgs); + if (newFofFormula != null) + msgs = ((InternalEObject)newFofFormula).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_FOF_FORMULA__FOF_FORMULA, null, msgs); + msgs = basicSetFofFormula(newFofFormula, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_FOF_FORMULA__FOF_FORMULA, newFofFormula, newFofFormula)); + } + + /** + * + * + * @generated + */ + public VLSAnnotation getAnnotations() + { + return annotations; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetAnnotations(VLSAnnotation newAnnotations, NotificationChain msgs) + { + VLSAnnotation oldAnnotations = annotations; + annotations = newAnnotations; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_FOF_FORMULA__ANNOTATIONS, oldAnnotations, newAnnotations); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setAnnotations(VLSAnnotation newAnnotations) + { + if (newAnnotations != annotations) + { + NotificationChain msgs = null; + if (annotations != null) + msgs = ((InternalEObject)annotations).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_FOF_FORMULA__ANNOTATIONS, null, msgs); + if (newAnnotations != null) + msgs = ((InternalEObject)newAnnotations).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_FOF_FORMULA__ANNOTATIONS, null, msgs); + msgs = basicSetAnnotations(newAnnotations, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_FOF_FORMULA__ANNOTATIONS, newAnnotations, newAnnotations)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_FOF_FORMULA__FOF_FORMULA: + return basicSetFofFormula(null, msgs); + case VampireLanguagePackage.VLS_FOF_FORMULA__ANNOTATIONS: + return basicSetAnnotations(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_FOF_FORMULA__NAME: + return getName(); + case VampireLanguagePackage.VLS_FOF_FORMULA__FOF_ROLE: + return getFofRole(); + case VampireLanguagePackage.VLS_FOF_FORMULA__FOF_FORMULA: + return getFofFormula(); + case VampireLanguagePackage.VLS_FOF_FORMULA__ANNOTATIONS: + return getAnnotations(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_FOF_FORMULA__NAME: + setName((String)newValue); + return; + case VampireLanguagePackage.VLS_FOF_FORMULA__FOF_ROLE: + setFofRole((String)newValue); + return; + case VampireLanguagePackage.VLS_FOF_FORMULA__FOF_FORMULA: + setFofFormula((VLSTerm)newValue); + return; + case VampireLanguagePackage.VLS_FOF_FORMULA__ANNOTATIONS: + setAnnotations((VLSAnnotation)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_FOF_FORMULA__NAME: + setName(NAME_EDEFAULT); + return; + case VampireLanguagePackage.VLS_FOF_FORMULA__FOF_ROLE: + setFofRole(FOF_ROLE_EDEFAULT); + return; + case VampireLanguagePackage.VLS_FOF_FORMULA__FOF_FORMULA: + setFofFormula((VLSTerm)null); + return; + case VampireLanguagePackage.VLS_FOF_FORMULA__ANNOTATIONS: + setAnnotations((VLSAnnotation)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_FOF_FORMULA__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case VampireLanguagePackage.VLS_FOF_FORMULA__FOF_ROLE: + return FOF_ROLE_EDEFAULT == null ? fofRole != null : !FOF_ROLE_EDEFAULT.equals(fofRole); + case VampireLanguagePackage.VLS_FOF_FORMULA__FOF_FORMULA: + return fofFormula != null; + case VampireLanguagePackage.VLS_FOF_FORMULA__ANNOTATIONS: + return annotations != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(", fofRole: "); + result.append(fofRole); + result.append(')'); + return result.toString(); + } + +} //VLSFofFormulaImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFunctionFofImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFunctionFofImpl.java new file mode 100644 index 00000000..6d1c538b --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFunctionFofImpl.java @@ -0,0 +1,240 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'VLS Function Fof'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFunctionFofImpl#getFunctor Functor}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFunctionFofImpl#getTerms Terms}
  • + *
+ * + * @generated + */ +public class VLSFunctionFofImpl extends VLSTermImpl implements VLSFunctionFof +{ + /** + * The default value of the '{@link #getFunctor() Functor}' attribute. + * + * + * @see #getFunctor() + * @generated + * @ordered + */ + protected static final String FUNCTOR_EDEFAULT = null; + + /** + * The cached value of the '{@link #getFunctor() Functor}' attribute. + * + * + * @see #getFunctor() + * @generated + * @ordered + */ + protected String functor = FUNCTOR_EDEFAULT; + + /** + * The cached value of the '{@link #getTerms() Terms}' containment reference list. + * + * + * @see #getTerms() + * @generated + * @ordered + */ + protected EList terms; + + /** + * + * + * @generated + */ + protected VLSFunctionFofImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_FUNCTION_FOF; + } + + /** + * + * + * @generated + */ + public String getFunctor() + { + return functor; + } + + /** + * + * + * @generated + */ + public void setFunctor(String newFunctor) + { + String oldFunctor = functor; + functor = newFunctor; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_FUNCTION_FOF__FUNCTOR, oldFunctor, functor)); + } + + /** + * + * + * @generated + */ + public EList getTerms() + { + if (terms == null) + { + terms = new EObjectContainmentEList(VLSTerm.class, this, VampireLanguagePackage.VLS_FUNCTION_FOF__TERMS); + } + return terms; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_FUNCTION_FOF__TERMS: + return ((InternalEList)getTerms()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_FUNCTION_FOF__FUNCTOR: + return getFunctor(); + case VampireLanguagePackage.VLS_FUNCTION_FOF__TERMS: + return getTerms(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_FUNCTION_FOF__FUNCTOR: + setFunctor((String)newValue); + return; + case VampireLanguagePackage.VLS_FUNCTION_FOF__TERMS: + getTerms().clear(); + getTerms().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_FUNCTION_FOF__FUNCTOR: + setFunctor(FUNCTOR_EDEFAULT); + return; + case VampireLanguagePackage.VLS_FUNCTION_FOF__TERMS: + getTerms().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_FUNCTION_FOF__FUNCTOR: + return FUNCTOR_EDEFAULT == null ? functor != null : !FUNCTOR_EDEFAULT.equals(functor); + case VampireLanguagePackage.VLS_FUNCTION_FOF__TERMS: + return terms != null && !terms.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (functor: "); + result.append(functor); + result.append(')'); + return result.toString(); + } + +} //VLSFunctionFofImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFunctionImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFunctionImpl.java new file mode 100644 index 00000000..49da58d4 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFunctionImpl.java @@ -0,0 +1,240 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'VLS Function'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFunctionImpl#getConstant Constant}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFunctionImpl#getTerms Terms}
  • + *
+ * + * @generated + */ +public class VLSFunctionImpl extends VLSTermImpl implements VLSFunction +{ + /** + * The default value of the '{@link #getConstant() Constant}' attribute. + * + * + * @see #getConstant() + * @generated + * @ordered + */ + protected static final String CONSTANT_EDEFAULT = null; + + /** + * The cached value of the '{@link #getConstant() Constant}' attribute. + * + * + * @see #getConstant() + * @generated + * @ordered + */ + protected String constant = CONSTANT_EDEFAULT; + + /** + * The cached value of the '{@link #getTerms() Terms}' containment reference list. + * + * + * @see #getTerms() + * @generated + * @ordered + */ + protected EList terms; + + /** + * + * + * @generated + */ + protected VLSFunctionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_FUNCTION; + } + + /** + * + * + * @generated + */ + public String getConstant() + { + return constant; + } + + /** + * + * + * @generated + */ + public void setConstant(String newConstant) + { + String oldConstant = constant; + constant = newConstant; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_FUNCTION__CONSTANT, oldConstant, constant)); + } + + /** + * + * + * @generated + */ + public EList getTerms() + { + if (terms == null) + { + terms = new EObjectContainmentEList(VLSTerm.class, this, VampireLanguagePackage.VLS_FUNCTION__TERMS); + } + return terms; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_FUNCTION__TERMS: + return ((InternalEList)getTerms()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_FUNCTION__CONSTANT: + return getConstant(); + case VampireLanguagePackage.VLS_FUNCTION__TERMS: + return getTerms(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_FUNCTION__CONSTANT: + setConstant((String)newValue); + return; + case VampireLanguagePackage.VLS_FUNCTION__TERMS: + getTerms().clear(); + getTerms().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_FUNCTION__CONSTANT: + setConstant(CONSTANT_EDEFAULT); + return; + case VampireLanguagePackage.VLS_FUNCTION__TERMS: + getTerms().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_FUNCTION__CONSTANT: + return CONSTANT_EDEFAULT == null ? constant != null : !CONSTANT_EDEFAULT.equals(constant); + case VampireLanguagePackage.VLS_FUNCTION__TERMS: + return terms != null && !terms.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (constant: "); + result.append(constant); + result.append(')'); + return result.toString(); + } + +} //VLSFunctionImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSImpliesImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSImpliesImpl.java new file mode 100644 index 00000000..3c8d9193 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSImpliesImpl.java @@ -0,0 +1,265 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'VLS Implies'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSImpliesImpl#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSImpliesImpl#getRight Right}
  • + *
+ * + * @generated + */ +public class VLSImpliesImpl extends VLSTermImpl implements VLSImplies +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected VLSTerm left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected VLSTerm right; + + /** + * + * + * @generated + */ + protected VLSImpliesImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_IMPLIES; + } + + /** + * + * + * @generated + */ + public VLSTerm getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(VLSTerm newLeft, NotificationChain msgs) + { + VLSTerm oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_IMPLIES__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(VLSTerm newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_IMPLIES__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_IMPLIES__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_IMPLIES__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public VLSTerm getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(VLSTerm newRight, NotificationChain msgs) + { + VLSTerm oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_IMPLIES__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(VLSTerm newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_IMPLIES__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_IMPLIES__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_IMPLIES__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_IMPLIES__LEFT: + return basicSetLeft(null, msgs); + case VampireLanguagePackage.VLS_IMPLIES__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_IMPLIES__LEFT: + return getLeft(); + case VampireLanguagePackage.VLS_IMPLIES__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_IMPLIES__LEFT: + setLeft((VLSTerm)newValue); + return; + case VampireLanguagePackage.VLS_IMPLIES__RIGHT: + setRight((VLSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_IMPLIES__LEFT: + setLeft((VLSTerm)null); + return; + case VampireLanguagePackage.VLS_IMPLIES__RIGHT: + setRight((VLSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_IMPLIES__LEFT: + return left != null; + case VampireLanguagePackage.VLS_IMPLIES__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //VLSImpliesImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSIncludeImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSIncludeImpl.java new file mode 100644 index 00000000..b37d97b4 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSIncludeImpl.java @@ -0,0 +1,241 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInclude; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSName; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'VLS Include'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSIncludeImpl#getFileName File Name}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSIncludeImpl#getNames Names}
  • + *
+ * + * @generated + */ +public class VLSIncludeImpl extends MinimalEObjectImpl.Container implements VLSInclude +{ + /** + * The default value of the '{@link #getFileName() File Name}' attribute. + * + * + * @see #getFileName() + * @generated + * @ordered + */ + protected static final String FILE_NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getFileName() File Name}' attribute. + * + * + * @see #getFileName() + * @generated + * @ordered + */ + protected String fileName = FILE_NAME_EDEFAULT; + + /** + * The cached value of the '{@link #getNames() Names}' containment reference list. + * + * + * @see #getNames() + * @generated + * @ordered + */ + protected EList names; + + /** + * + * + * @generated + */ + protected VLSIncludeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_INCLUDE; + } + + /** + * + * + * @generated + */ + public String getFileName() + { + return fileName; + } + + /** + * + * + * @generated + */ + public void setFileName(String newFileName) + { + String oldFileName = fileName; + fileName = newFileName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_INCLUDE__FILE_NAME, oldFileName, fileName)); + } + + /** + * + * + * @generated + */ + public EList getNames() + { + if (names == null) + { + names = new EObjectContainmentEList(VLSName.class, this, VampireLanguagePackage.VLS_INCLUDE__NAMES); + } + return names; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_INCLUDE__NAMES: + return ((InternalEList)getNames()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_INCLUDE__FILE_NAME: + return getFileName(); + case VampireLanguagePackage.VLS_INCLUDE__NAMES: + return getNames(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_INCLUDE__FILE_NAME: + setFileName((String)newValue); + return; + case VampireLanguagePackage.VLS_INCLUDE__NAMES: + getNames().clear(); + getNames().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_INCLUDE__FILE_NAME: + setFileName(FILE_NAME_EDEFAULT); + return; + case VampireLanguagePackage.VLS_INCLUDE__NAMES: + getNames().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_INCLUDE__FILE_NAME: + return FILE_NAME_EDEFAULT == null ? fileName != null : !FILE_NAME_EDEFAULT.equals(fileName); + case VampireLanguagePackage.VLS_INCLUDE__NAMES: + return names != null && !names.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (fileName: "); + result.append(fileName); + result.append(')'); + return result.toString(); + } + +} //VLSIncludeImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSInequalityImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSInequalityImpl.java new file mode 100644 index 00000000..ba409780 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSInequalityImpl.java @@ -0,0 +1,265 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'VLS Inequality'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSInequalityImpl#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSInequalityImpl#getRight Right}
  • + *
+ * + * @generated + */ +public class VLSInequalityImpl extends VLSTermImpl implements VLSInequality +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected VLSTerm left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected VLSTerm right; + + /** + * + * + * @generated + */ + protected VLSInequalityImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_INEQUALITY; + } + + /** + * + * + * @generated + */ + public VLSTerm getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(VLSTerm newLeft, NotificationChain msgs) + { + VLSTerm oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_INEQUALITY__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(VLSTerm newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_INEQUALITY__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_INEQUALITY__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_INEQUALITY__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public VLSTerm getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(VLSTerm newRight, NotificationChain msgs) + { + VLSTerm oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_INEQUALITY__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(VLSTerm newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_INEQUALITY__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_INEQUALITY__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_INEQUALITY__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_INEQUALITY__LEFT: + return basicSetLeft(null, msgs); + case VampireLanguagePackage.VLS_INEQUALITY__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_INEQUALITY__LEFT: + return getLeft(); + case VampireLanguagePackage.VLS_INEQUALITY__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_INEQUALITY__LEFT: + setLeft((VLSTerm)newValue); + return; + case VampireLanguagePackage.VLS_INEQUALITY__RIGHT: + setRight((VLSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_INEQUALITY__LEFT: + setLeft((VLSTerm)null); + return; + case VampireLanguagePackage.VLS_INEQUALITY__RIGHT: + setRight((VLSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_INEQUALITY__LEFT: + return left != null; + case VampireLanguagePackage.VLS_INEQUALITY__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //VLSInequalityImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSIntImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSIntImpl.java new file mode 100644 index 00000000..a513549a --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSIntImpl.java @@ -0,0 +1,41 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInt; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'VLS Int'. + * + * + * @generated + */ +public class VLSIntImpl extends VLSDefinedTermImpl implements VLSInt +{ + /** + * + * + * @generated + */ + protected VLSIntImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_INT; + } + +} //VLSIntImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSLessImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSLessImpl.java new file mode 100644 index 00000000..71f2b9c8 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSLessImpl.java @@ -0,0 +1,240 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSLess; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'VLS Less'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSLessImpl#getName Name}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSLessImpl#getTerms Terms}
  • + *
+ * + * @generated + */ +public class VLSLessImpl extends VLSTermImpl implements VLSLess +{ + /** + * The default value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * The cached value of the '{@link #getTerms() Terms}' containment reference list. + * + * + * @see #getTerms() + * @generated + * @ordered + */ + protected EList terms; + + /** + * + * + * @generated + */ + protected VLSLessImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_LESS; + } + + /** + * + * + * @generated + */ + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_LESS__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + public EList getTerms() + { + if (terms == null) + { + terms = new EObjectContainmentEList(VLSTerm.class, this, VampireLanguagePackage.VLS_LESS__TERMS); + } + return terms; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_LESS__TERMS: + return ((InternalEList)getTerms()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_LESS__NAME: + return getName(); + case VampireLanguagePackage.VLS_LESS__TERMS: + return getTerms(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_LESS__NAME: + setName((String)newValue); + return; + case VampireLanguagePackage.VLS_LESS__TERMS: + getTerms().clear(); + getTerms().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_LESS__NAME: + setName(NAME_EDEFAULT); + return; + case VampireLanguagePackage.VLS_LESS__TERMS: + getTerms().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_LESS__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case VampireLanguagePackage.VLS_LESS__TERMS: + return terms != null && !terms.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + +} //VLSLessImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSNameImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSNameImpl.java new file mode 100644 index 00000000..5217696e --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSNameImpl.java @@ -0,0 +1,178 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSName; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'VLS Name'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSNameImpl#getName Name}
  • + *
+ * + * @generated + */ +public class VLSNameImpl extends MinimalEObjectImpl.Container implements VLSName +{ + /** + * The default value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * + * + * @generated + */ + protected VLSNameImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_NAME; + } + + /** + * + * + * @generated + */ + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_NAME__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_NAME__NAME: + return getName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_NAME__NAME: + setName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_NAME__NAME: + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_NAME__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + +} //VLSNameImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSNandImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSNandImpl.java new file mode 100644 index 00000000..ca157692 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSNandImpl.java @@ -0,0 +1,265 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNand; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'VLS Nand'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSNandImpl#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSNandImpl#getRight Right}
  • + *
+ * + * @generated + */ +public class VLSNandImpl extends VLSTermImpl implements VLSNand +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected VLSTerm left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected VLSTerm right; + + /** + * + * + * @generated + */ + protected VLSNandImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_NAND; + } + + /** + * + * + * @generated + */ + public VLSTerm getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(VLSTerm newLeft, NotificationChain msgs) + { + VLSTerm oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_NAND__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(VLSTerm newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_NAND__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_NAND__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_NAND__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public VLSTerm getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(VLSTerm newRight, NotificationChain msgs) + { + VLSTerm oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_NAND__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(VLSTerm newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_NAND__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_NAND__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_NAND__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_NAND__LEFT: + return basicSetLeft(null, msgs); + case VampireLanguagePackage.VLS_NAND__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_NAND__LEFT: + return getLeft(); + case VampireLanguagePackage.VLS_NAND__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_NAND__LEFT: + setLeft((VLSTerm)newValue); + return; + case VampireLanguagePackage.VLS_NAND__RIGHT: + setRight((VLSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_NAND__LEFT: + setLeft((VLSTerm)null); + return; + case VampireLanguagePackage.VLS_NAND__RIGHT: + setRight((VLSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_NAND__LEFT: + return left != null; + case VampireLanguagePackage.VLS_NAND__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //VLSNandImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSNorImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSNorImpl.java new file mode 100644 index 00000000..b9d8eea4 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSNorImpl.java @@ -0,0 +1,265 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNor; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'VLS Nor'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSNorImpl#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSNorImpl#getRight Right}
  • + *
+ * + * @generated + */ +public class VLSNorImpl extends VLSTermImpl implements VLSNor +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected VLSTerm left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected VLSTerm right; + + /** + * + * + * @generated + */ + protected VLSNorImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_NOR; + } + + /** + * + * + * @generated + */ + public VLSTerm getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(VLSTerm newLeft, NotificationChain msgs) + { + VLSTerm oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_NOR__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(VLSTerm newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_NOR__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_NOR__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_NOR__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public VLSTerm getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(VLSTerm newRight, NotificationChain msgs) + { + VLSTerm oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_NOR__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(VLSTerm newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_NOR__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_NOR__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_NOR__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_NOR__LEFT: + return basicSetLeft(null, msgs); + case VampireLanguagePackage.VLS_NOR__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_NOR__LEFT: + return getLeft(); + case VampireLanguagePackage.VLS_NOR__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_NOR__LEFT: + setLeft((VLSTerm)newValue); + return; + case VampireLanguagePackage.VLS_NOR__RIGHT: + setRight((VLSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_NOR__LEFT: + setLeft((VLSTerm)null); + return; + case VampireLanguagePackage.VLS_NOR__RIGHT: + setRight((VLSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_NOR__LEFT: + return left != null; + case VampireLanguagePackage.VLS_NOR__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //VLSNorImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSOrImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSOrImpl.java new file mode 100644 index 00000000..dbe09020 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSOrImpl.java @@ -0,0 +1,265 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'VLS Or'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSOrImpl#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSOrImpl#getRight Right}
  • + *
+ * + * @generated + */ +public class VLSOrImpl extends VLSTermImpl implements VLSOr +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected VLSTerm left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected VLSTerm right; + + /** + * + * + * @generated + */ + protected VLSOrImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_OR; + } + + /** + * + * + * @generated + */ + public VLSTerm getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(VLSTerm newLeft, NotificationChain msgs) + { + VLSTerm oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_OR__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(VLSTerm newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_OR__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_OR__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_OR__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public VLSTerm getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(VLSTerm newRight, NotificationChain msgs) + { + VLSTerm oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_OR__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(VLSTerm newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_OR__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_OR__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_OR__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_OR__LEFT: + return basicSetLeft(null, msgs); + case VampireLanguagePackage.VLS_OR__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_OR__LEFT: + return getLeft(); + case VampireLanguagePackage.VLS_OR__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_OR__LEFT: + setLeft((VLSTerm)newValue); + return; + case VampireLanguagePackage.VLS_OR__RIGHT: + setRight((VLSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_OR__LEFT: + setLeft((VLSTerm)null); + return; + case VampireLanguagePackage.VLS_OR__RIGHT: + setRight((VLSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_OR__LEFT: + return left != null; + case VampireLanguagePackage.VLS_OR__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //VLSOrImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSRationalImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSRationalImpl.java new file mode 100644 index 00000000..43f2b84b --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSRationalImpl.java @@ -0,0 +1,41 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRational; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'VLS Rational'. + * + * + * @generated + */ +public class VLSRationalImpl extends VLSDefinedTermImpl implements VLSRational +{ + /** + * + * + * @generated + */ + protected VLSRationalImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_RATIONAL; + } + +} //VLSRationalImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSRealImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSRealImpl.java new file mode 100644 index 00000000..54789949 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSRealImpl.java @@ -0,0 +1,41 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSReal; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'VLS Real'. + * + * + * @generated + */ +public class VLSRealImpl extends VLSDefinedTermImpl implements VLSReal +{ + /** + * + * + * @generated + */ + protected VLSRealImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_REAL; + } + +} //VLSRealImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSRevImpliesImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSRevImpliesImpl.java new file mode 100644 index 00000000..2a0dbf03 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSRevImpliesImpl.java @@ -0,0 +1,265 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRevImplies; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'VLS Rev Implies'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSRevImpliesImpl#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSRevImpliesImpl#getRight Right}
  • + *
+ * + * @generated + */ +public class VLSRevImpliesImpl extends VLSTermImpl implements VLSRevImplies +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected VLSTerm left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected VLSTerm right; + + /** + * + * + * @generated + */ + protected VLSRevImpliesImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_REV_IMPLIES; + } + + /** + * + * + * @generated + */ + public VLSTerm getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(VLSTerm newLeft, NotificationChain msgs) + { + VLSTerm oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_REV_IMPLIES__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(VLSTerm newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_REV_IMPLIES__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_REV_IMPLIES__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_REV_IMPLIES__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public VLSTerm getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(VLSTerm newRight, NotificationChain msgs) + { + VLSTerm oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_REV_IMPLIES__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(VLSTerm newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_REV_IMPLIES__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_REV_IMPLIES__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_REV_IMPLIES__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_REV_IMPLIES__LEFT: + return basicSetLeft(null, msgs); + case VampireLanguagePackage.VLS_REV_IMPLIES__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_REV_IMPLIES__LEFT: + return getLeft(); + case VampireLanguagePackage.VLS_REV_IMPLIES__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_REV_IMPLIES__LEFT: + setLeft((VLSTerm)newValue); + return; + case VampireLanguagePackage.VLS_REV_IMPLIES__RIGHT: + setRight((VLSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_REV_IMPLIES__LEFT: + setLeft((VLSTerm)null); + return; + case VampireLanguagePackage.VLS_REV_IMPLIES__RIGHT: + setRight((VLSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_REV_IMPLIES__LEFT: + return left != null; + case VampireLanguagePackage.VLS_REV_IMPLIES__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //VLSRevImpliesImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSTermImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSTermImpl.java new file mode 100644 index 00000000..3766eae5 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSTermImpl.java @@ -0,0 +1,43 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'VLS Term'. + * + * + * @generated + */ +public class VLSTermImpl extends MinimalEObjectImpl.Container implements VLSTerm +{ + /** + * + * + * @generated + */ + protected VLSTermImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_TERM; + } + +} //VLSTermImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSTrueImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSTrueImpl.java new file mode 100644 index 00000000..3153600a --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSTrueImpl.java @@ -0,0 +1,41 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTrue; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'VLS True'. + * + * + * @generated + */ +public class VLSTrueImpl extends VLSTermImpl implements VLSTrue +{ + /** + * + * + * @generated + */ + protected VLSTrueImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_TRUE; + } + +} //VLSTrueImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSUnaryNegationImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSUnaryNegationImpl.java new file mode 100644 index 00000000..85dc0b1b --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSUnaryNegationImpl.java @@ -0,0 +1,194 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'VLS Unary Negation'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSUnaryNegationImpl#getOperand Operand}
  • + *
+ * + * @generated + */ +public class VLSUnaryNegationImpl extends VLSTermImpl implements VLSUnaryNegation +{ + /** + * The cached value of the '{@link #getOperand() Operand}' containment reference. + * + * + * @see #getOperand() + * @generated + * @ordered + */ + protected VLSTerm operand; + + /** + * + * + * @generated + */ + protected VLSUnaryNegationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_UNARY_NEGATION; + } + + /** + * + * + * @generated + */ + public VLSTerm getOperand() + { + return operand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOperand(VLSTerm newOperand, NotificationChain msgs) + { + VLSTerm oldOperand = operand; + operand = newOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_UNARY_NEGATION__OPERAND, oldOperand, newOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setOperand(VLSTerm newOperand) + { + if (newOperand != operand) + { + NotificationChain msgs = null; + if (operand != null) + msgs = ((InternalEObject)operand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_UNARY_NEGATION__OPERAND, null, msgs); + if (newOperand != null) + msgs = ((InternalEObject)newOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_UNARY_NEGATION__OPERAND, null, msgs); + msgs = basicSetOperand(newOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_UNARY_NEGATION__OPERAND, newOperand, newOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_UNARY_NEGATION__OPERAND: + return basicSetOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_UNARY_NEGATION__OPERAND: + return getOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_UNARY_NEGATION__OPERAND: + setOperand((VLSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_UNARY_NEGATION__OPERAND: + setOperand((VLSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_UNARY_NEGATION__OPERAND: + return operand != null; + } + return super.eIsSet(featureID); + } + +} //VLSUnaryNegationImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSUniversalQuantifierImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSUniversalQuantifierImpl.java new file mode 100644 index 00000000..5627cc4c --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSUniversalQuantifierImpl.java @@ -0,0 +1,241 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'VLS Universal Quantifier'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSUniversalQuantifierImpl#getVariables Variables}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSUniversalQuantifierImpl#getOperand Operand}
  • + *
+ * + * @generated + */ +public class VLSUniversalQuantifierImpl extends VLSTermImpl implements VLSUniversalQuantifier +{ + /** + * The cached value of the '{@link #getVariables() Variables}' containment reference list. + * + * + * @see #getVariables() + * @generated + * @ordered + */ + protected EList variables; + + /** + * The cached value of the '{@link #getOperand() Operand}' containment reference. + * + * + * @see #getOperand() + * @generated + * @ordered + */ + protected VLSTerm operand; + + /** + * + * + * @generated + */ + protected VLSUniversalQuantifierImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_UNIVERSAL_QUANTIFIER; + } + + /** + * + * + * @generated + */ + public EList getVariables() + { + if (variables == null) + { + variables = new EObjectContainmentEList(VLSVariable.class, this, VampireLanguagePackage.VLS_UNIVERSAL_QUANTIFIER__VARIABLES); + } + return variables; + } + + /** + * + * + * @generated + */ + public VLSTerm getOperand() + { + return operand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOperand(VLSTerm newOperand, NotificationChain msgs) + { + VLSTerm oldOperand = operand; + operand = newOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_UNIVERSAL_QUANTIFIER__OPERAND, oldOperand, newOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setOperand(VLSTerm newOperand) + { + if (newOperand != operand) + { + NotificationChain msgs = null; + if (operand != null) + msgs = ((InternalEObject)operand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_UNIVERSAL_QUANTIFIER__OPERAND, null, msgs); + if (newOperand != null) + msgs = ((InternalEObject)newOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_UNIVERSAL_QUANTIFIER__OPERAND, null, msgs); + msgs = basicSetOperand(newOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_UNIVERSAL_QUANTIFIER__OPERAND, newOperand, newOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_UNIVERSAL_QUANTIFIER__VARIABLES: + return ((InternalEList)getVariables()).basicRemove(otherEnd, msgs); + case VampireLanguagePackage.VLS_UNIVERSAL_QUANTIFIER__OPERAND: + return basicSetOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_UNIVERSAL_QUANTIFIER__VARIABLES: + return getVariables(); + case VampireLanguagePackage.VLS_UNIVERSAL_QUANTIFIER__OPERAND: + return getOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_UNIVERSAL_QUANTIFIER__VARIABLES: + getVariables().clear(); + getVariables().addAll((Collection)newValue); + return; + case VampireLanguagePackage.VLS_UNIVERSAL_QUANTIFIER__OPERAND: + setOperand((VLSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_UNIVERSAL_QUANTIFIER__VARIABLES: + getVariables().clear(); + return; + case VampireLanguagePackage.VLS_UNIVERSAL_QUANTIFIER__OPERAND: + setOperand((VLSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_UNIVERSAL_QUANTIFIER__VARIABLES: + return variables != null && !variables.isEmpty(); + case VampireLanguagePackage.VLS_UNIVERSAL_QUANTIFIER__OPERAND: + return operand != null; + } + return super.eIsSet(featureID); + } + +} //VLSUniversalQuantifierImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSVariableImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSVariableImpl.java new file mode 100644 index 00000000..437bb72d --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSVariableImpl.java @@ -0,0 +1,177 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'VLS Variable'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSVariableImpl#getName Name}
  • + *
+ * + * @generated + */ +public class VLSVariableImpl extends VLSTermImpl implements VLSVariable +{ + /** + * The default value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * + * + * @generated + */ + protected VLSVariableImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_VARIABLE; + } + + /** + * + * + * @generated + */ + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_VARIABLE__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_VARIABLE__NAME: + return getName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_VARIABLE__NAME: + setName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_VARIABLE__NAME: + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_VARIABLE__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + +} //VLSVariableImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSXnorImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSXnorImpl.java new file mode 100644 index 00000000..0f9e5f5a --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSXnorImpl.java @@ -0,0 +1,265 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSXnor; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'VLS Xnor'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSXnorImpl#getLeft Left}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSXnorImpl#getRight Right}
  • + *
+ * + * @generated + */ +public class VLSXnorImpl extends VLSTermImpl implements VLSXnor +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected VLSTerm left; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected VLSTerm right; + + /** + * + * + * @generated + */ + protected VLSXnorImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VLS_XNOR; + } + + /** + * + * + * @generated + */ + public VLSTerm getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(VLSTerm newLeft, NotificationChain msgs) + { + VLSTerm oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_XNOR__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeft(VLSTerm newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_XNOR__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_XNOR__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_XNOR__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + public VLSTerm getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(VLSTerm newRight, NotificationChain msgs) + { + VLSTerm oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_XNOR__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRight(VLSTerm newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_XNOR__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - VampireLanguagePackage.VLS_XNOR__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_XNOR__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_XNOR__LEFT: + return basicSetLeft(null, msgs); + case VampireLanguagePackage.VLS_XNOR__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_XNOR__LEFT: + return getLeft(); + case VampireLanguagePackage.VLS_XNOR__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_XNOR__LEFT: + setLeft((VLSTerm)newValue); + return; + case VampireLanguagePackage.VLS_XNOR__RIGHT: + setRight((VLSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_XNOR__LEFT: + setLeft((VLSTerm)null); + return; + case VampireLanguagePackage.VLS_XNOR__RIGHT: + setRight((VLSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VLS_XNOR__LEFT: + return left != null; + case VampireLanguagePackage.VLS_XNOR__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + +} //VLSXnorImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VampireLanguageFactoryImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VampireLanguageFactoryImpl.java new file mode 100644 index 00000000..630fa8ce --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VampireLanguageFactoryImpl.java @@ -0,0 +1,491 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.*; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.impl.EFactoryImpl; + +import org.eclipse.emf.ecore.plugin.EcorePlugin; + +/** + * + * An implementation of the model Factory. + * + * @generated + */ +public class VampireLanguageFactoryImpl extends EFactoryImpl implements VampireLanguageFactory +{ + /** + * Creates the default factory implementation. + * + * + * @generated + */ + public static VampireLanguageFactory init() + { + try + { + VampireLanguageFactory theVampireLanguageFactory = (VampireLanguageFactory)EPackage.Registry.INSTANCE.getEFactory(VampireLanguagePackage.eNS_URI); + if (theVampireLanguageFactory != null) + { + return theVampireLanguageFactory; + } + } + catch (Exception exception) + { + EcorePlugin.INSTANCE.log(exception); + } + return new VampireLanguageFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * + * + * @generated + */ + public VampireLanguageFactoryImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + public EObject create(EClass eClass) + { + switch (eClass.getClassifierID()) + { + case VampireLanguagePackage.VAMPIRE_MODEL: return createVampireModel(); + case VampireLanguagePackage.VLS_INCLUDE: return createVLSInclude(); + case VampireLanguagePackage.VLS_NAME: return createVLSName(); + case VampireLanguagePackage.VLS_COMMENT: return createVLSComment(); + case VampireLanguagePackage.VLS_FOF_FORMULA: return createVLSFofFormula(); + case VampireLanguagePackage.VLS_ANNOTATION: return createVLSAnnotation(); + case VampireLanguagePackage.VLS_TERM: return createVLSTerm(); + case VampireLanguagePackage.VLS_VARIABLE: return createVLSVariable(); + case VampireLanguagePackage.VLS_FUNCTION_FOF: return createVLSFunctionFof(); + case VampireLanguagePackage.VLS_DEFINED_TERM: return createVLSDefinedTerm(); + case VampireLanguagePackage.VLS_EQUIVALENT: return createVLSEquivalent(); + case VampireLanguagePackage.VLS_IMPLIES: return createVLSImplies(); + case VampireLanguagePackage.VLS_REV_IMPLIES: return createVLSRevImplies(); + case VampireLanguagePackage.VLS_XNOR: return createVLSXnor(); + case VampireLanguagePackage.VLS_NOR: return createVLSNor(); + case VampireLanguagePackage.VLS_NAND: return createVLSNand(); + case VampireLanguagePackage.VLS_AND: return createVLSAnd(); + case VampireLanguagePackage.VLS_OR: return createVLSOr(); + case VampireLanguagePackage.VLS_UNIVERSAL_QUANTIFIER: return createVLSUniversalQuantifier(); + case VampireLanguagePackage.VLS_EXISTENTIAL_QUANTIFIER: return createVLSExistentialQuantifier(); + case VampireLanguagePackage.VLS_UNARY_NEGATION: return createVLSUnaryNegation(); + case VampireLanguagePackage.VLS_INEQUALITY: return createVLSInequality(); + case VampireLanguagePackage.VLS_EQUALITY: return createVLSEquality(); + case VampireLanguagePackage.VLS_ASSIGNMENT: return createVLSAssignment(); + case VampireLanguagePackage.VLS_CONSTANT: return createVLSConstant(); + case VampireLanguagePackage.VLS_TRUE: return createVLSTrue(); + case VampireLanguagePackage.VLS_FALSE: return createVLSFalse(); + case VampireLanguagePackage.VLS_FUNCTION: return createVLSFunction(); + case VampireLanguagePackage.VLS_LESS: return createVLSLess(); + case VampireLanguagePackage.VLS_INT: return createVLSInt(); + case VampireLanguagePackage.VLS_REAL: return createVLSReal(); + case VampireLanguagePackage.VLS_RATIONAL: return createVLSRational(); + case VampireLanguagePackage.VLS_DOUBLE_QUOTE: return createVLSDoubleQuote(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + public VampireModel createVampireModel() + { + VampireModelImpl vampireModel = new VampireModelImpl(); + return vampireModel; + } + + /** + * + * + * @generated + */ + public VLSInclude createVLSInclude() + { + VLSIncludeImpl vlsInclude = new VLSIncludeImpl(); + return vlsInclude; + } + + /** + * + * + * @generated + */ + public VLSName createVLSName() + { + VLSNameImpl vlsName = new VLSNameImpl(); + return vlsName; + } + + /** + * + * + * @generated + */ + public VLSComment createVLSComment() + { + VLSCommentImpl vlsComment = new VLSCommentImpl(); + return vlsComment; + } + + /** + * + * + * @generated + */ + public VLSFofFormula createVLSFofFormula() + { + VLSFofFormulaImpl vlsFofFormula = new VLSFofFormulaImpl(); + return vlsFofFormula; + } + + /** + * + * + * @generated + */ + public VLSAnnotation createVLSAnnotation() + { + VLSAnnotationImpl vlsAnnotation = new VLSAnnotationImpl(); + return vlsAnnotation; + } + + /** + * + * + * @generated + */ + public VLSTerm createVLSTerm() + { + VLSTermImpl vlsTerm = new VLSTermImpl(); + return vlsTerm; + } + + /** + * + * + * @generated + */ + public VLSVariable createVLSVariable() + { + VLSVariableImpl vlsVariable = new VLSVariableImpl(); + return vlsVariable; + } + + /** + * + * + * @generated + */ + public VLSFunctionFof createVLSFunctionFof() + { + VLSFunctionFofImpl vlsFunctionFof = new VLSFunctionFofImpl(); + return vlsFunctionFof; + } + + /** + * + * + * @generated + */ + public VLSDefinedTerm createVLSDefinedTerm() + { + VLSDefinedTermImpl vlsDefinedTerm = new VLSDefinedTermImpl(); + return vlsDefinedTerm; + } + + /** + * + * + * @generated + */ + public VLSEquivalent createVLSEquivalent() + { + VLSEquivalentImpl vlsEquivalent = new VLSEquivalentImpl(); + return vlsEquivalent; + } + + /** + * + * + * @generated + */ + public VLSImplies createVLSImplies() + { + VLSImpliesImpl vlsImplies = new VLSImpliesImpl(); + return vlsImplies; + } + + /** + * + * + * @generated + */ + public VLSRevImplies createVLSRevImplies() + { + VLSRevImpliesImpl vlsRevImplies = new VLSRevImpliesImpl(); + return vlsRevImplies; + } + + /** + * + * + * @generated + */ + public VLSXnor createVLSXnor() + { + VLSXnorImpl vlsXnor = new VLSXnorImpl(); + return vlsXnor; + } + + /** + * + * + * @generated + */ + public VLSNor createVLSNor() + { + VLSNorImpl vlsNor = new VLSNorImpl(); + return vlsNor; + } + + /** + * + * + * @generated + */ + public VLSNand createVLSNand() + { + VLSNandImpl vlsNand = new VLSNandImpl(); + return vlsNand; + } + + /** + * + * + * @generated + */ + public VLSAnd createVLSAnd() + { + VLSAndImpl vlsAnd = new VLSAndImpl(); + return vlsAnd; + } + + /** + * + * + * @generated + */ + public VLSOr createVLSOr() + { + VLSOrImpl vlsOr = new VLSOrImpl(); + return vlsOr; + } + + /** + * + * + * @generated + */ + public VLSUniversalQuantifier createVLSUniversalQuantifier() + { + VLSUniversalQuantifierImpl vlsUniversalQuantifier = new VLSUniversalQuantifierImpl(); + return vlsUniversalQuantifier; + } + + /** + * + * + * @generated + */ + public VLSExistentialQuantifier createVLSExistentialQuantifier() + { + VLSExistentialQuantifierImpl vlsExistentialQuantifier = new VLSExistentialQuantifierImpl(); + return vlsExistentialQuantifier; + } + + /** + * + * + * @generated + */ + public VLSUnaryNegation createVLSUnaryNegation() + { + VLSUnaryNegationImpl vlsUnaryNegation = new VLSUnaryNegationImpl(); + return vlsUnaryNegation; + } + + /** + * + * + * @generated + */ + public VLSInequality createVLSInequality() + { + VLSInequalityImpl vlsInequality = new VLSInequalityImpl(); + return vlsInequality; + } + + /** + * + * + * @generated + */ + public VLSEquality createVLSEquality() + { + VLSEqualityImpl vlsEquality = new VLSEqualityImpl(); + return vlsEquality; + } + + /** + * + * + * @generated + */ + public VLSAssignment createVLSAssignment() + { + VLSAssignmentImpl vlsAssignment = new VLSAssignmentImpl(); + return vlsAssignment; + } + + /** + * + * + * @generated + */ + public VLSConstant createVLSConstant() + { + VLSConstantImpl vlsConstant = new VLSConstantImpl(); + return vlsConstant; + } + + /** + * + * + * @generated + */ + public VLSTrue createVLSTrue() + { + VLSTrueImpl vlsTrue = new VLSTrueImpl(); + return vlsTrue; + } + + /** + * + * + * @generated + */ + public VLSFalse createVLSFalse() + { + VLSFalseImpl vlsFalse = new VLSFalseImpl(); + return vlsFalse; + } + + /** + * + * + * @generated + */ + public VLSFunction createVLSFunction() + { + VLSFunctionImpl vlsFunction = new VLSFunctionImpl(); + return vlsFunction; + } + + /** + * + * + * @generated + */ + public VLSLess createVLSLess() + { + VLSLessImpl vlsLess = new VLSLessImpl(); + return vlsLess; + } + + /** + * + * + * @generated + */ + public VLSInt createVLSInt() + { + VLSIntImpl vlsInt = new VLSIntImpl(); + return vlsInt; + } + + /** + * + * + * @generated + */ + public VLSReal createVLSReal() + { + VLSRealImpl vlsReal = new VLSRealImpl(); + return vlsReal; + } + + /** + * + * + * @generated + */ + public VLSRational createVLSRational() + { + VLSRationalImpl vlsRational = new VLSRationalImpl(); + return vlsRational; + } + + /** + * + * + * @generated + */ + public VLSDoubleQuote createVLSDoubleQuote() + { + VLSDoubleQuoteImpl vlsDoubleQuote = new VLSDoubleQuoteImpl(); + return vlsDoubleQuote; + } + + /** + * + * + * @generated + */ + public VampireLanguagePackage getVampireLanguagePackage() + { + return (VampireLanguagePackage)getEPackage(); + } + + /** + * + * + * @deprecated + * @generated + */ + @Deprecated + public static VampireLanguagePackage getPackage() + { + return VampireLanguagePackage.eINSTANCE; + } + +} //VampireLanguageFactoryImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VampireLanguagePackageImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VampireLanguagePackageImpl.java new file mode 100644 index 00000000..86921032 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VampireLanguagePackageImpl.java @@ -0,0 +1,1505 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAssignment; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSDefinedTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSDoubleQuote; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFalse; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInclude; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInt; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSLess; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSName; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNand; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNor; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRational; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSReal; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRevImplies; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTrue; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSXnor; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +import org.eclipse.emf.ecore.impl.EPackageImpl; + +/** + * + * An implementation of the model Package. + * + * @generated + */ +public class VampireLanguagePackageImpl extends EPackageImpl implements VampireLanguagePackage +{ + /** + * + * + * @generated + */ + private EClass vampireModelEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsIncludeEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsNameEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsCommentEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsFofFormulaEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsAnnotationEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsTermEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsVariableEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsFunctionFofEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsDefinedTermEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsEquivalentEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsImpliesEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsRevImpliesEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsXnorEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsNorEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsNandEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsAndEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsOrEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsUniversalQuantifierEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsExistentialQuantifierEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsUnaryNegationEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsInequalityEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsEqualityEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsAssignmentEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsConstantEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsTrueEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsFalseEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsFunctionEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsLessEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsIntEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsRealEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsRationalEClass = null; + + /** + * + * + * @generated + */ + private EClass vlsDoubleQuoteEClass = null; + + /** + * Creates an instance of the model Package, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + *

Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * + * + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#eNS_URI + * @see #init() + * @generated + */ + private VampireLanguagePackageImpl() + { + super(eNS_URI, VampireLanguageFactory.eINSTANCE); + } + + /** + * + * + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the Package for this model, and for any others upon which it depends. + * + *

This method is used to initialize {@link VampireLanguagePackage#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * + * + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static VampireLanguagePackage init() + { + if (isInited) return (VampireLanguagePackage)EPackage.Registry.INSTANCE.getEPackage(VampireLanguagePackage.eNS_URI); + + // Obtain or create and register package + VampireLanguagePackageImpl theVampireLanguagePackage = (VampireLanguagePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof VampireLanguagePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new VampireLanguagePackageImpl()); + + isInited = true; + + // Create package meta-data objects + theVampireLanguagePackage.createPackageContents(); + + // Initialize created meta-data + theVampireLanguagePackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theVampireLanguagePackage.freeze(); + + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(VampireLanguagePackage.eNS_URI, theVampireLanguagePackage); + return theVampireLanguagePackage; + } + + /** + * + * + * @generated + */ + public EClass getVampireModel() + { + return vampireModelEClass; + } + + /** + * + * + * @generated + */ + public EReference getVampireModel_Includes() + { + return (EReference)vampireModelEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVampireModel_Comments() + { + return (EReference)vampireModelEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getVampireModel_Formulas() + { + return (EReference)vampireModelEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getVLSInclude() + { + return vlsIncludeEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getVLSInclude_FileName() + { + return (EAttribute)vlsIncludeEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVLSInclude_Names() + { + return (EReference)vlsIncludeEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getVLSName() + { + return vlsNameEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getVLSName_Name() + { + return (EAttribute)vlsNameEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getVLSComment() + { + return vlsCommentEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getVLSComment_Comment() + { + return (EAttribute)vlsCommentEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getVLSFofFormula() + { + return vlsFofFormulaEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getVLSFofFormula_Name() + { + return (EAttribute)vlsFofFormulaEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getVLSFofFormula_FofRole() + { + return (EAttribute)vlsFofFormulaEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getVLSFofFormula_FofFormula() + { + return (EReference)vlsFofFormulaEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getVLSFofFormula_Annotations() + { + return (EReference)vlsFofFormulaEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getVLSAnnotation() + { + return vlsAnnotationEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getVLSAnnotation_Name() + { + return (EAttribute)vlsAnnotationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVLSAnnotation_Followup() + { + return (EReference)vlsAnnotationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getVLSAnnotation_Terms() + { + return (EReference)vlsAnnotationEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getVLSTerm() + { + return vlsTermEClass; + } + + /** + * + * + * @generated + */ + public EClass getVLSVariable() + { + return vlsVariableEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getVLSVariable_Name() + { + return (EAttribute)vlsVariableEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getVLSFunctionFof() + { + return vlsFunctionFofEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getVLSFunctionFof_Functor() + { + return (EAttribute)vlsFunctionFofEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVLSFunctionFof_Terms() + { + return (EReference)vlsFunctionFofEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getVLSDefinedTerm() + { + return vlsDefinedTermEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getVLSDefinedTerm_Value() + { + return (EAttribute)vlsDefinedTermEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getVLSEquivalent() + { + return vlsEquivalentEClass; + } + + /** + * + * + * @generated + */ + public EReference getVLSEquivalent_Left() + { + return (EReference)vlsEquivalentEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVLSEquivalent_Right() + { + return (EReference)vlsEquivalentEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getVLSImplies() + { + return vlsImpliesEClass; + } + + /** + * + * + * @generated + */ + public EReference getVLSImplies_Left() + { + return (EReference)vlsImpliesEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVLSImplies_Right() + { + return (EReference)vlsImpliesEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getVLSRevImplies() + { + return vlsRevImpliesEClass; + } + + /** + * + * + * @generated + */ + public EReference getVLSRevImplies_Left() + { + return (EReference)vlsRevImpliesEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVLSRevImplies_Right() + { + return (EReference)vlsRevImpliesEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getVLSXnor() + { + return vlsXnorEClass; + } + + /** + * + * + * @generated + */ + public EReference getVLSXnor_Left() + { + return (EReference)vlsXnorEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVLSXnor_Right() + { + return (EReference)vlsXnorEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getVLSNor() + { + return vlsNorEClass; + } + + /** + * + * + * @generated + */ + public EReference getVLSNor_Left() + { + return (EReference)vlsNorEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVLSNor_Right() + { + return (EReference)vlsNorEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getVLSNand() + { + return vlsNandEClass; + } + + /** + * + * + * @generated + */ + public EReference getVLSNand_Left() + { + return (EReference)vlsNandEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVLSNand_Right() + { + return (EReference)vlsNandEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getVLSAnd() + { + return vlsAndEClass; + } + + /** + * + * + * @generated + */ + public EReference getVLSAnd_Left() + { + return (EReference)vlsAndEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVLSAnd_Right() + { + return (EReference)vlsAndEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getVLSOr() + { + return vlsOrEClass; + } + + /** + * + * + * @generated + */ + public EReference getVLSOr_Left() + { + return (EReference)vlsOrEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVLSOr_Right() + { + return (EReference)vlsOrEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getVLSUniversalQuantifier() + { + return vlsUniversalQuantifierEClass; + } + + /** + * + * + * @generated + */ + public EReference getVLSUniversalQuantifier_Variables() + { + return (EReference)vlsUniversalQuantifierEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVLSUniversalQuantifier_Operand() + { + return (EReference)vlsUniversalQuantifierEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getVLSExistentialQuantifier() + { + return vlsExistentialQuantifierEClass; + } + + /** + * + * + * @generated + */ + public EReference getVLSExistentialQuantifier_Variables() + { + return (EReference)vlsExistentialQuantifierEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVLSExistentialQuantifier_Operand() + { + return (EReference)vlsExistentialQuantifierEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getVLSUnaryNegation() + { + return vlsUnaryNegationEClass; + } + + /** + * + * + * @generated + */ + public EReference getVLSUnaryNegation_Operand() + { + return (EReference)vlsUnaryNegationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getVLSInequality() + { + return vlsInequalityEClass; + } + + /** + * + * + * @generated + */ + public EReference getVLSInequality_Left() + { + return (EReference)vlsInequalityEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVLSInequality_Right() + { + return (EReference)vlsInequalityEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getVLSEquality() + { + return vlsEqualityEClass; + } + + /** + * + * + * @generated + */ + public EReference getVLSEquality_Left() + { + return (EReference)vlsEqualityEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVLSEquality_Right() + { + return (EReference)vlsEqualityEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getVLSAssignment() + { + return vlsAssignmentEClass; + } + + /** + * + * + * @generated + */ + public EReference getVLSAssignment_Left() + { + return (EReference)vlsAssignmentEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVLSAssignment_Right() + { + return (EReference)vlsAssignmentEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getVLSConstant() + { + return vlsConstantEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getVLSConstant_Name() + { + return (EAttribute)vlsConstantEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getVLSTrue() + { + return vlsTrueEClass; + } + + /** + * + * + * @generated + */ + public EClass getVLSFalse() + { + return vlsFalseEClass; + } + + /** + * + * + * @generated + */ + public EClass getVLSFunction() + { + return vlsFunctionEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getVLSFunction_Constant() + { + return (EAttribute)vlsFunctionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVLSFunction_Terms() + { + return (EReference)vlsFunctionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getVLSLess() + { + return vlsLessEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getVLSLess_Name() + { + return (EAttribute)vlsLessEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVLSLess_Terms() + { + return (EReference)vlsLessEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getVLSInt() + { + return vlsIntEClass; + } + + /** + * + * + * @generated + */ + public EClass getVLSReal() + { + return vlsRealEClass; + } + + /** + * + * + * @generated + */ + public EClass getVLSRational() + { + return vlsRationalEClass; + } + + /** + * + * + * @generated + */ + public EClass getVLSDoubleQuote() + { + return vlsDoubleQuoteEClass; + } + + /** + * + * + * @generated + */ + public VampireLanguageFactory getVampireLanguageFactory() + { + return (VampireLanguageFactory)getEFactoryInstance(); + } + + /** + * + * + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * + * + * @generated + */ + public void createPackageContents() + { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + vampireModelEClass = createEClass(VAMPIRE_MODEL); + createEReference(vampireModelEClass, VAMPIRE_MODEL__INCLUDES); + createEReference(vampireModelEClass, VAMPIRE_MODEL__COMMENTS); + createEReference(vampireModelEClass, VAMPIRE_MODEL__FORMULAS); + + vlsIncludeEClass = createEClass(VLS_INCLUDE); + createEAttribute(vlsIncludeEClass, VLS_INCLUDE__FILE_NAME); + createEReference(vlsIncludeEClass, VLS_INCLUDE__NAMES); + + vlsNameEClass = createEClass(VLS_NAME); + createEAttribute(vlsNameEClass, VLS_NAME__NAME); + + vlsCommentEClass = createEClass(VLS_COMMENT); + createEAttribute(vlsCommentEClass, VLS_COMMENT__COMMENT); + + vlsFofFormulaEClass = createEClass(VLS_FOF_FORMULA); + createEAttribute(vlsFofFormulaEClass, VLS_FOF_FORMULA__NAME); + createEAttribute(vlsFofFormulaEClass, VLS_FOF_FORMULA__FOF_ROLE); + createEReference(vlsFofFormulaEClass, VLS_FOF_FORMULA__FOF_FORMULA); + createEReference(vlsFofFormulaEClass, VLS_FOF_FORMULA__ANNOTATIONS); + + vlsAnnotationEClass = createEClass(VLS_ANNOTATION); + createEAttribute(vlsAnnotationEClass, VLS_ANNOTATION__NAME); + createEReference(vlsAnnotationEClass, VLS_ANNOTATION__FOLLOWUP); + createEReference(vlsAnnotationEClass, VLS_ANNOTATION__TERMS); + + vlsTermEClass = createEClass(VLS_TERM); + + vlsVariableEClass = createEClass(VLS_VARIABLE); + createEAttribute(vlsVariableEClass, VLS_VARIABLE__NAME); + + vlsFunctionFofEClass = createEClass(VLS_FUNCTION_FOF); + createEAttribute(vlsFunctionFofEClass, VLS_FUNCTION_FOF__FUNCTOR); + createEReference(vlsFunctionFofEClass, VLS_FUNCTION_FOF__TERMS); + + vlsDefinedTermEClass = createEClass(VLS_DEFINED_TERM); + createEAttribute(vlsDefinedTermEClass, VLS_DEFINED_TERM__VALUE); + + vlsEquivalentEClass = createEClass(VLS_EQUIVALENT); + createEReference(vlsEquivalentEClass, VLS_EQUIVALENT__LEFT); + createEReference(vlsEquivalentEClass, VLS_EQUIVALENT__RIGHT); + + vlsImpliesEClass = createEClass(VLS_IMPLIES); + createEReference(vlsImpliesEClass, VLS_IMPLIES__LEFT); + createEReference(vlsImpliesEClass, VLS_IMPLIES__RIGHT); + + vlsRevImpliesEClass = createEClass(VLS_REV_IMPLIES); + createEReference(vlsRevImpliesEClass, VLS_REV_IMPLIES__LEFT); + createEReference(vlsRevImpliesEClass, VLS_REV_IMPLIES__RIGHT); + + vlsXnorEClass = createEClass(VLS_XNOR); + createEReference(vlsXnorEClass, VLS_XNOR__LEFT); + createEReference(vlsXnorEClass, VLS_XNOR__RIGHT); + + vlsNorEClass = createEClass(VLS_NOR); + createEReference(vlsNorEClass, VLS_NOR__LEFT); + createEReference(vlsNorEClass, VLS_NOR__RIGHT); + + vlsNandEClass = createEClass(VLS_NAND); + createEReference(vlsNandEClass, VLS_NAND__LEFT); + createEReference(vlsNandEClass, VLS_NAND__RIGHT); + + vlsAndEClass = createEClass(VLS_AND); + createEReference(vlsAndEClass, VLS_AND__LEFT); + createEReference(vlsAndEClass, VLS_AND__RIGHT); + + vlsOrEClass = createEClass(VLS_OR); + createEReference(vlsOrEClass, VLS_OR__LEFT); + createEReference(vlsOrEClass, VLS_OR__RIGHT); + + vlsUniversalQuantifierEClass = createEClass(VLS_UNIVERSAL_QUANTIFIER); + createEReference(vlsUniversalQuantifierEClass, VLS_UNIVERSAL_QUANTIFIER__VARIABLES); + createEReference(vlsUniversalQuantifierEClass, VLS_UNIVERSAL_QUANTIFIER__OPERAND); + + vlsExistentialQuantifierEClass = createEClass(VLS_EXISTENTIAL_QUANTIFIER); + createEReference(vlsExistentialQuantifierEClass, VLS_EXISTENTIAL_QUANTIFIER__VARIABLES); + createEReference(vlsExistentialQuantifierEClass, VLS_EXISTENTIAL_QUANTIFIER__OPERAND); + + vlsUnaryNegationEClass = createEClass(VLS_UNARY_NEGATION); + createEReference(vlsUnaryNegationEClass, VLS_UNARY_NEGATION__OPERAND); + + vlsInequalityEClass = createEClass(VLS_INEQUALITY); + createEReference(vlsInequalityEClass, VLS_INEQUALITY__LEFT); + createEReference(vlsInequalityEClass, VLS_INEQUALITY__RIGHT); + + vlsEqualityEClass = createEClass(VLS_EQUALITY); + createEReference(vlsEqualityEClass, VLS_EQUALITY__LEFT); + createEReference(vlsEqualityEClass, VLS_EQUALITY__RIGHT); + + vlsAssignmentEClass = createEClass(VLS_ASSIGNMENT); + createEReference(vlsAssignmentEClass, VLS_ASSIGNMENT__LEFT); + createEReference(vlsAssignmentEClass, VLS_ASSIGNMENT__RIGHT); + + vlsConstantEClass = createEClass(VLS_CONSTANT); + createEAttribute(vlsConstantEClass, VLS_CONSTANT__NAME); + + vlsTrueEClass = createEClass(VLS_TRUE); + + vlsFalseEClass = createEClass(VLS_FALSE); + + vlsFunctionEClass = createEClass(VLS_FUNCTION); + createEAttribute(vlsFunctionEClass, VLS_FUNCTION__CONSTANT); + createEReference(vlsFunctionEClass, VLS_FUNCTION__TERMS); + + vlsLessEClass = createEClass(VLS_LESS); + createEAttribute(vlsLessEClass, VLS_LESS__NAME); + createEReference(vlsLessEClass, VLS_LESS__TERMS); + + vlsIntEClass = createEClass(VLS_INT); + + vlsRealEClass = createEClass(VLS_REAL); + + vlsRationalEClass = createEClass(VLS_RATIONAL); + + vlsDoubleQuoteEClass = createEClass(VLS_DOUBLE_QUOTE); + } + + /** + * + * + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * + * + * @generated + */ + public void initializePackageContents() + { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + vlsVariableEClass.getESuperTypes().add(this.getVLSTerm()); + vlsFunctionFofEClass.getESuperTypes().add(this.getVLSTerm()); + vlsDefinedTermEClass.getESuperTypes().add(this.getVLSTerm()); + vlsEquivalentEClass.getESuperTypes().add(this.getVLSTerm()); + vlsImpliesEClass.getESuperTypes().add(this.getVLSTerm()); + vlsRevImpliesEClass.getESuperTypes().add(this.getVLSTerm()); + vlsXnorEClass.getESuperTypes().add(this.getVLSTerm()); + vlsNorEClass.getESuperTypes().add(this.getVLSTerm()); + vlsNandEClass.getESuperTypes().add(this.getVLSTerm()); + vlsAndEClass.getESuperTypes().add(this.getVLSTerm()); + vlsOrEClass.getESuperTypes().add(this.getVLSTerm()); + vlsUniversalQuantifierEClass.getESuperTypes().add(this.getVLSTerm()); + vlsExistentialQuantifierEClass.getESuperTypes().add(this.getVLSTerm()); + vlsUnaryNegationEClass.getESuperTypes().add(this.getVLSTerm()); + vlsInequalityEClass.getESuperTypes().add(this.getVLSTerm()); + vlsEqualityEClass.getESuperTypes().add(this.getVLSTerm()); + vlsAssignmentEClass.getESuperTypes().add(this.getVLSTerm()); + vlsConstantEClass.getESuperTypes().add(this.getVLSTerm()); + vlsTrueEClass.getESuperTypes().add(this.getVLSTerm()); + vlsFalseEClass.getESuperTypes().add(this.getVLSTerm()); + vlsFunctionEClass.getESuperTypes().add(this.getVLSTerm()); + vlsLessEClass.getESuperTypes().add(this.getVLSTerm()); + vlsIntEClass.getESuperTypes().add(this.getVLSDefinedTerm()); + vlsRealEClass.getESuperTypes().add(this.getVLSDefinedTerm()); + vlsRationalEClass.getESuperTypes().add(this.getVLSDefinedTerm()); + vlsDoubleQuoteEClass.getESuperTypes().add(this.getVLSDefinedTerm()); + + // Initialize classes and features; add operations and parameters + initEClass(vampireModelEClass, VampireModel.class, "VampireModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVampireModel_Includes(), this.getVLSInclude(), null, "includes", null, 0, -1, VampireModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVampireModel_Comments(), this.getVLSComment(), null, "comments", null, 0, -1, VampireModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVampireModel_Formulas(), this.getVLSFofFormula(), null, "formulas", null, 0, -1, VampireModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsIncludeEClass, VLSInclude.class, "VLSInclude", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getVLSInclude_FileName(), ecorePackage.getEString(), "fileName", null, 0, 1, VLSInclude.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSInclude_Names(), this.getVLSName(), null, "names", null, 0, -1, VLSInclude.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsNameEClass, VLSName.class, "VLSName", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getVLSName_Name(), ecorePackage.getEString(), "name", null, 0, 1, VLSName.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsCommentEClass, VLSComment.class, "VLSComment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getVLSComment_Comment(), ecorePackage.getEString(), "comment", null, 0, 1, VLSComment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsFofFormulaEClass, VLSFofFormula.class, "VLSFofFormula", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getVLSFofFormula_Name(), ecorePackage.getEString(), "name", null, 0, 1, VLSFofFormula.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getVLSFofFormula_FofRole(), ecorePackage.getEString(), "fofRole", null, 0, 1, VLSFofFormula.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSFofFormula_FofFormula(), this.getVLSTerm(), null, "fofFormula", null, 0, 1, VLSFofFormula.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSFofFormula_Annotations(), this.getVLSAnnotation(), null, "annotations", null, 0, 1, VLSFofFormula.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsAnnotationEClass, VLSAnnotation.class, "VLSAnnotation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getVLSAnnotation_Name(), ecorePackage.getEString(), "name", null, 0, 1, VLSAnnotation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSAnnotation_Followup(), this.getVLSAnnotation(), null, "followup", null, 0, 1, VLSAnnotation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSAnnotation_Terms(), this.getVLSAnnotation(), null, "terms", null, 0, -1, VLSAnnotation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsTermEClass, VLSTerm.class, "VLSTerm", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(vlsVariableEClass, VLSVariable.class, "VLSVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getVLSVariable_Name(), ecorePackage.getEString(), "name", null, 0, 1, VLSVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsFunctionFofEClass, VLSFunctionFof.class, "VLSFunctionFof", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getVLSFunctionFof_Functor(), ecorePackage.getEString(), "functor", null, 0, 1, VLSFunctionFof.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSFunctionFof_Terms(), this.getVLSTerm(), null, "terms", null, 0, -1, VLSFunctionFof.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsDefinedTermEClass, VLSDefinedTerm.class, "VLSDefinedTerm", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getVLSDefinedTerm_Value(), ecorePackage.getEString(), "value", null, 0, 1, VLSDefinedTerm.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsEquivalentEClass, VLSEquivalent.class, "VLSEquivalent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVLSEquivalent_Left(), this.getVLSTerm(), null, "left", null, 0, 1, VLSEquivalent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSEquivalent_Right(), this.getVLSTerm(), null, "right", null, 0, 1, VLSEquivalent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsImpliesEClass, VLSImplies.class, "VLSImplies", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVLSImplies_Left(), this.getVLSTerm(), null, "left", null, 0, 1, VLSImplies.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSImplies_Right(), this.getVLSTerm(), null, "right", null, 0, 1, VLSImplies.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsRevImpliesEClass, VLSRevImplies.class, "VLSRevImplies", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVLSRevImplies_Left(), this.getVLSTerm(), null, "left", null, 0, 1, VLSRevImplies.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSRevImplies_Right(), this.getVLSTerm(), null, "right", null, 0, 1, VLSRevImplies.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsXnorEClass, VLSXnor.class, "VLSXnor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVLSXnor_Left(), this.getVLSTerm(), null, "left", null, 0, 1, VLSXnor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSXnor_Right(), this.getVLSTerm(), null, "right", null, 0, 1, VLSXnor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsNorEClass, VLSNor.class, "VLSNor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVLSNor_Left(), this.getVLSTerm(), null, "left", null, 0, 1, VLSNor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSNor_Right(), this.getVLSTerm(), null, "right", null, 0, 1, VLSNor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsNandEClass, VLSNand.class, "VLSNand", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVLSNand_Left(), this.getVLSTerm(), null, "left", null, 0, 1, VLSNand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSNand_Right(), this.getVLSTerm(), null, "right", null, 0, 1, VLSNand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsAndEClass, VLSAnd.class, "VLSAnd", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVLSAnd_Left(), this.getVLSTerm(), null, "left", null, 0, 1, VLSAnd.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSAnd_Right(), this.getVLSTerm(), null, "right", null, 0, 1, VLSAnd.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsOrEClass, VLSOr.class, "VLSOr", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVLSOr_Left(), this.getVLSTerm(), null, "left", null, 0, 1, VLSOr.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSOr_Right(), this.getVLSTerm(), null, "right", null, 0, 1, VLSOr.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsUniversalQuantifierEClass, VLSUniversalQuantifier.class, "VLSUniversalQuantifier", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVLSUniversalQuantifier_Variables(), this.getVLSVariable(), null, "variables", null, 0, -1, VLSUniversalQuantifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSUniversalQuantifier_Operand(), this.getVLSTerm(), null, "operand", null, 0, 1, VLSUniversalQuantifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsExistentialQuantifierEClass, VLSExistentialQuantifier.class, "VLSExistentialQuantifier", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVLSExistentialQuantifier_Variables(), this.getVLSVariable(), null, "variables", null, 0, -1, VLSExistentialQuantifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSExistentialQuantifier_Operand(), this.getVLSTerm(), null, "operand", null, 0, 1, VLSExistentialQuantifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsUnaryNegationEClass, VLSUnaryNegation.class, "VLSUnaryNegation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVLSUnaryNegation_Operand(), this.getVLSTerm(), null, "operand", null, 0, 1, VLSUnaryNegation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsInequalityEClass, VLSInequality.class, "VLSInequality", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVLSInequality_Left(), this.getVLSTerm(), null, "left", null, 0, 1, VLSInequality.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSInequality_Right(), this.getVLSTerm(), null, "right", null, 0, 1, VLSInequality.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsEqualityEClass, VLSEquality.class, "VLSEquality", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVLSEquality_Left(), this.getVLSTerm(), null, "left", null, 0, 1, VLSEquality.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSEquality_Right(), this.getVLSTerm(), null, "right", null, 0, 1, VLSEquality.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsAssignmentEClass, VLSAssignment.class, "VLSAssignment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVLSAssignment_Left(), this.getVLSTerm(), null, "left", null, 0, 1, VLSAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSAssignment_Right(), this.getVLSTerm(), null, "right", null, 0, 1, VLSAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsConstantEClass, VLSConstant.class, "VLSConstant", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getVLSConstant_Name(), ecorePackage.getEString(), "name", null, 0, 1, VLSConstant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsTrueEClass, VLSTrue.class, "VLSTrue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(vlsFalseEClass, VLSFalse.class, "VLSFalse", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(vlsFunctionEClass, VLSFunction.class, "VLSFunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getVLSFunction_Constant(), ecorePackage.getEString(), "constant", null, 0, 1, VLSFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSFunction_Terms(), this.getVLSTerm(), null, "terms", null, 0, -1, VLSFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsLessEClass, VLSLess.class, "VLSLess", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getVLSLess_Name(), ecorePackage.getEString(), "name", null, 0, 1, VLSLess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVLSLess_Terms(), this.getVLSTerm(), null, "terms", null, 0, -1, VLSLess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(vlsIntEClass, VLSInt.class, "VLSInt", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(vlsRealEClass, VLSReal.class, "VLSReal", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(vlsRationalEClass, VLSRational.class, "VLSRational", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(vlsDoubleQuoteEClass, VLSDoubleQuote.class, "VLSDoubleQuote", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + // Create resource + createResource(eNS_URI); + } + +} //VampireLanguagePackageImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VampireModelImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VampireModelImpl.java new file mode 100644 index 00000000..ea3dabc7 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VampireModelImpl.java @@ -0,0 +1,246 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInclude; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'Vampire Model'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireModelImpl#getIncludes Includes}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireModelImpl#getComments Comments}
  • + *
  • {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireModelImpl#getFormulas Formulas}
  • + *
+ * + * @generated + */ +public class VampireModelImpl extends MinimalEObjectImpl.Container implements VampireModel +{ + /** + * The cached value of the '{@link #getIncludes() Includes}' containment reference list. + * + * + * @see #getIncludes() + * @generated + * @ordered + */ + protected EList includes; + + /** + * The cached value of the '{@link #getComments() Comments}' containment reference list. + * + * + * @see #getComments() + * @generated + * @ordered + */ + protected EList comments; + + /** + * The cached value of the '{@link #getFormulas() Formulas}' containment reference list. + * + * + * @see #getFormulas() + * @generated + * @ordered + */ + protected EList formulas; + + /** + * + * + * @generated + */ + protected VampireModelImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return VampireLanguagePackage.Literals.VAMPIRE_MODEL; + } + + /** + * + * + * @generated + */ + public EList getIncludes() + { + if (includes == null) + { + includes = new EObjectContainmentEList(VLSInclude.class, this, VampireLanguagePackage.VAMPIRE_MODEL__INCLUDES); + } + return includes; + } + + /** + * + * + * @generated + */ + public EList getComments() + { + if (comments == null) + { + comments = new EObjectContainmentEList(VLSComment.class, this, VampireLanguagePackage.VAMPIRE_MODEL__COMMENTS); + } + return comments; + } + + /** + * + * + * @generated + */ + public EList getFormulas() + { + if (formulas == null) + { + formulas = new EObjectContainmentEList(VLSFofFormula.class, this, VampireLanguagePackage.VAMPIRE_MODEL__FORMULAS); + } + return formulas; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case VampireLanguagePackage.VAMPIRE_MODEL__INCLUDES: + return ((InternalEList)getIncludes()).basicRemove(otherEnd, msgs); + case VampireLanguagePackage.VAMPIRE_MODEL__COMMENTS: + return ((InternalEList)getComments()).basicRemove(otherEnd, msgs); + case VampireLanguagePackage.VAMPIRE_MODEL__FORMULAS: + return ((InternalEList)getFormulas()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case VampireLanguagePackage.VAMPIRE_MODEL__INCLUDES: + return getIncludes(); + case VampireLanguagePackage.VAMPIRE_MODEL__COMMENTS: + return getComments(); + case VampireLanguagePackage.VAMPIRE_MODEL__FORMULAS: + return getFormulas(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case VampireLanguagePackage.VAMPIRE_MODEL__INCLUDES: + getIncludes().clear(); + getIncludes().addAll((Collection)newValue); + return; + case VampireLanguagePackage.VAMPIRE_MODEL__COMMENTS: + getComments().clear(); + getComments().addAll((Collection)newValue); + return; + case VampireLanguagePackage.VAMPIRE_MODEL__FORMULAS: + getFormulas().clear(); + getFormulas().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VAMPIRE_MODEL__INCLUDES: + getIncludes().clear(); + return; + case VampireLanguagePackage.VAMPIRE_MODEL__COMMENTS: + getComments().clear(); + return; + case VampireLanguagePackage.VAMPIRE_MODEL__FORMULAS: + getFormulas().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case VampireLanguagePackage.VAMPIRE_MODEL__INCLUDES: + return includes != null && !includes.isEmpty(); + case VampireLanguagePackage.VAMPIRE_MODEL__COMMENTS: + return comments != null && !comments.isEmpty(); + case VampireLanguagePackage.VAMPIRE_MODEL__FORMULAS: + return formulas != null && !formulas.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //VampireModelImpl diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/util/VampireLanguageAdapterFactory.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/util/VampireLanguageAdapterFactory.java new file mode 100644 index 00000000..8e096360 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/util/VampireLanguageAdapterFactory.java @@ -0,0 +1,773 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.util; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.*; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; + +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * The Adapter Factory for the model. + * It provides an adapter createXXX method for each class of the model. + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage + * @generated + */ +public class VampireLanguageAdapterFactory extends AdapterFactoryImpl +{ + /** + * The cached model package. + * + * + * @generated + */ + protected static VampireLanguagePackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * + * + * @generated + */ + public VampireLanguageAdapterFactory() + { + if (modelPackage == null) + { + modelPackage = VampireLanguagePackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * + * This implementation returns true if the object is either the model's package or is an instance object of the model. + * + * @return whether this factory is applicable for the type of the object. + * @generated + */ + @Override + public boolean isFactoryForType(Object object) + { + if (object == modelPackage) + { + return true; + } + if (object instanceof EObject) + { + return ((EObject)object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch that delegates to the createXXX methods. + * + * + * @generated + */ + protected VampireLanguageSwitch modelSwitch = + new VampireLanguageSwitch() + { + @Override + public Adapter caseVampireModel(VampireModel object) + { + return createVampireModelAdapter(); + } + @Override + public Adapter caseVLSInclude(VLSInclude object) + { + return createVLSIncludeAdapter(); + } + @Override + public Adapter caseVLSName(VLSName object) + { + return createVLSNameAdapter(); + } + @Override + public Adapter caseVLSComment(VLSComment object) + { + return createVLSCommentAdapter(); + } + @Override + public Adapter caseVLSFofFormula(VLSFofFormula object) + { + return createVLSFofFormulaAdapter(); + } + @Override + public Adapter caseVLSAnnotation(VLSAnnotation object) + { + return createVLSAnnotationAdapter(); + } + @Override + public Adapter caseVLSTerm(VLSTerm object) + { + return createVLSTermAdapter(); + } + @Override + public Adapter caseVLSVariable(VLSVariable object) + { + return createVLSVariableAdapter(); + } + @Override + public Adapter caseVLSFunctionFof(VLSFunctionFof object) + { + return createVLSFunctionFofAdapter(); + } + @Override + public Adapter caseVLSDefinedTerm(VLSDefinedTerm object) + { + return createVLSDefinedTermAdapter(); + } + @Override + public Adapter caseVLSEquivalent(VLSEquivalent object) + { + return createVLSEquivalentAdapter(); + } + @Override + public Adapter caseVLSImplies(VLSImplies object) + { + return createVLSImpliesAdapter(); + } + @Override + public Adapter caseVLSRevImplies(VLSRevImplies object) + { + return createVLSRevImpliesAdapter(); + } + @Override + public Adapter caseVLSXnor(VLSXnor object) + { + return createVLSXnorAdapter(); + } + @Override + public Adapter caseVLSNor(VLSNor object) + { + return createVLSNorAdapter(); + } + @Override + public Adapter caseVLSNand(VLSNand object) + { + return createVLSNandAdapter(); + } + @Override + public Adapter caseVLSAnd(VLSAnd object) + { + return createVLSAndAdapter(); + } + @Override + public Adapter caseVLSOr(VLSOr object) + { + return createVLSOrAdapter(); + } + @Override + public Adapter caseVLSUniversalQuantifier(VLSUniversalQuantifier object) + { + return createVLSUniversalQuantifierAdapter(); + } + @Override + public Adapter caseVLSExistentialQuantifier(VLSExistentialQuantifier object) + { + return createVLSExistentialQuantifierAdapter(); + } + @Override + public Adapter caseVLSUnaryNegation(VLSUnaryNegation object) + { + return createVLSUnaryNegationAdapter(); + } + @Override + public Adapter caseVLSInequality(VLSInequality object) + { + return createVLSInequalityAdapter(); + } + @Override + public Adapter caseVLSEquality(VLSEquality object) + { + return createVLSEqualityAdapter(); + } + @Override + public Adapter caseVLSAssignment(VLSAssignment object) + { + return createVLSAssignmentAdapter(); + } + @Override + public Adapter caseVLSConstant(VLSConstant object) + { + return createVLSConstantAdapter(); + } + @Override + public Adapter caseVLSTrue(VLSTrue object) + { + return createVLSTrueAdapter(); + } + @Override + public Adapter caseVLSFalse(VLSFalse object) + { + return createVLSFalseAdapter(); + } + @Override + public Adapter caseVLSFunction(VLSFunction object) + { + return createVLSFunctionAdapter(); + } + @Override + public Adapter caseVLSLess(VLSLess object) + { + return createVLSLessAdapter(); + } + @Override + public Adapter caseVLSInt(VLSInt object) + { + return createVLSIntAdapter(); + } + @Override + public Adapter caseVLSReal(VLSReal object) + { + return createVLSRealAdapter(); + } + @Override + public Adapter caseVLSRational(VLSRational object) + { + return createVLSRationalAdapter(); + } + @Override + public Adapter caseVLSDoubleQuote(VLSDoubleQuote object) + { + return createVLSDoubleQuoteAdapter(); + } + @Override + public Adapter defaultCase(EObject object) + { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the target. + * + * + * @param target the object to adapt. + * @return the adapter for the target. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) + { + return modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel Vampire Model}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel + * @generated + */ + public Adapter createVampireModelAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInclude VLS Include}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInclude + * @generated + */ + public Adapter createVLSIncludeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSName VLS Name}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSName + * @generated + */ + public Adapter createVLSNameAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment VLS Comment}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment + * @generated + */ + public Adapter createVLSCommentAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula VLS Fof Formula}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula + * @generated + */ + public Adapter createVLSFofFormulaAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation VLS Annotation}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation + * @generated + */ + public Adapter createVLSAnnotationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm VLS Term}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm + * @generated + */ + public Adapter createVLSTermAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable VLS Variable}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable + * @generated + */ + public Adapter createVLSVariableAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof VLS Function Fof}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof + * @generated + */ + public Adapter createVLSFunctionFofAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSDefinedTerm VLS Defined Term}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSDefinedTerm + * @generated + */ + public Adapter createVLSDefinedTermAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent VLS Equivalent}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent + * @generated + */ + public Adapter createVLSEquivalentAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies VLS Implies}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies + * @generated + */ + public Adapter createVLSImpliesAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRevImplies VLS Rev Implies}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRevImplies + * @generated + */ + public Adapter createVLSRevImpliesAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSXnor VLS Xnor}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSXnor + * @generated + */ + public Adapter createVLSXnorAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNor VLS Nor}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNor + * @generated + */ + public Adapter createVLSNorAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNand VLS Nand}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSNand + * @generated + */ + public Adapter createVLSNandAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd VLS And}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd + * @generated + */ + public Adapter createVLSAndAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr VLS Or}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr + * @generated + */ + public Adapter createVLSOrAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier VLS Universal Quantifier}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier + * @generated + */ + public Adapter createVLSUniversalQuantifierAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier VLS Existential Quantifier}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier + * @generated + */ + public Adapter createVLSExistentialQuantifierAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation VLS Unary Negation}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation + * @generated + */ + public Adapter createVLSUnaryNegationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality VLS Inequality}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality + * @generated + */ + public Adapter createVLSInequalityAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality VLS Equality}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality + * @generated + */ + public Adapter createVLSEqualityAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAssignment VLS Assignment}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAssignment + * @generated + */ + public Adapter createVLSAssignmentAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant VLS Constant}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant + * @generated + */ + public Adapter createVLSConstantAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTrue VLS True}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTrue + * @generated + */ + public Adapter createVLSTrueAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFalse VLS False}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFalse + * @generated + */ + public Adapter createVLSFalseAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction VLS Function}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction + * @generated + */ + public Adapter createVLSFunctionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSLess VLS Less}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSLess + * @generated + */ + public Adapter createVLSLessAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInt VLS Int}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInt + * @generated + */ + public Adapter createVLSIntAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSReal VLS Real}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSReal + * @generated + */ + public Adapter createVLSRealAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRational VLS Rational}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSRational + * @generated + */ + public Adapter createVLSRationalAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSDoubleQuote VLS Double Quote}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSDoubleQuote + * @generated + */ + public Adapter createVLSDoubleQuoteAdapter() + { + return null; + } + + /** + * Creates a new adapter for the default case. + * + * This default implementation returns null. + * + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() + { + return null; + } + +} //VampireLanguageAdapterFactory diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/util/VampireLanguageSwitch.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/util/VampireLanguageSwitch.java new file mode 100644 index 00000000..8d70157d --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/util/VampireLanguageSwitch.java @@ -0,0 +1,886 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.vampireLanguage.util; + +import ca.mcgill.ecse.dslreasoner.vampireLanguage.*; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.util.Switch; + +/** + * + * The Switch for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the caseXXX method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * + * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage + * @generated + */ +public class VampireLanguageSwitch extends Switch +{ + /** + * The cached model package + * + * + * @generated + */ + protected static VampireLanguagePackage modelPackage; + + /** + * Creates an instance of the switch. + * + * + * @generated + */ + public VampireLanguageSwitch() + { + if (modelPackage == null) + { + modelPackage = VampireLanguagePackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * + * + * @param ePackage the package in question. + * @return whether this is a switch for the given package. + * @generated + */ + @Override + protected boolean isSwitchFor(EPackage ePackage) + { + return ePackage == modelPackage; + } + + /** + * Calls caseXXX for each class of the model until one returns a non null result; it yields that result. + * + * + * @return the first non-null result returned by a caseXXX call. + * @generated + */ + @Override + protected T doSwitch(int classifierID, EObject theEObject) + { + switch (classifierID) + { + case VampireLanguagePackage.VAMPIRE_MODEL: + { + VampireModel vampireModel = (VampireModel)theEObject; + T result = caseVampireModel(vampireModel); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_INCLUDE: + { + VLSInclude vlsInclude = (VLSInclude)theEObject; + T result = caseVLSInclude(vlsInclude); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_NAME: + { + VLSName vlsName = (VLSName)theEObject; + T result = caseVLSName(vlsName); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_COMMENT: + { + VLSComment vlsComment = (VLSComment)theEObject; + T result = caseVLSComment(vlsComment); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_FOF_FORMULA: + { + VLSFofFormula vlsFofFormula = (VLSFofFormula)theEObject; + T result = caseVLSFofFormula(vlsFofFormula); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_ANNOTATION: + { + VLSAnnotation vlsAnnotation = (VLSAnnotation)theEObject; + T result = caseVLSAnnotation(vlsAnnotation); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_TERM: + { + VLSTerm vlsTerm = (VLSTerm)theEObject; + T result = caseVLSTerm(vlsTerm); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_VARIABLE: + { + VLSVariable vlsVariable = (VLSVariable)theEObject; + T result = caseVLSVariable(vlsVariable); + if (result == null) result = caseVLSTerm(vlsVariable); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_FUNCTION_FOF: + { + VLSFunctionFof vlsFunctionFof = (VLSFunctionFof)theEObject; + T result = caseVLSFunctionFof(vlsFunctionFof); + if (result == null) result = caseVLSTerm(vlsFunctionFof); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_DEFINED_TERM: + { + VLSDefinedTerm vlsDefinedTerm = (VLSDefinedTerm)theEObject; + T result = caseVLSDefinedTerm(vlsDefinedTerm); + if (result == null) result = caseVLSTerm(vlsDefinedTerm); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_EQUIVALENT: + { + VLSEquivalent vlsEquivalent = (VLSEquivalent)theEObject; + T result = caseVLSEquivalent(vlsEquivalent); + if (result == null) result = caseVLSTerm(vlsEquivalent); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_IMPLIES: + { + VLSImplies vlsImplies = (VLSImplies)theEObject; + T result = caseVLSImplies(vlsImplies); + if (result == null) result = caseVLSTerm(vlsImplies); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_REV_IMPLIES: + { + VLSRevImplies vlsRevImplies = (VLSRevImplies)theEObject; + T result = caseVLSRevImplies(vlsRevImplies); + if (result == null) result = caseVLSTerm(vlsRevImplies); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_XNOR: + { + VLSXnor vlsXnor = (VLSXnor)theEObject; + T result = caseVLSXnor(vlsXnor); + if (result == null) result = caseVLSTerm(vlsXnor); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_NOR: + { + VLSNor vlsNor = (VLSNor)theEObject; + T result = caseVLSNor(vlsNor); + if (result == null) result = caseVLSTerm(vlsNor); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_NAND: + { + VLSNand vlsNand = (VLSNand)theEObject; + T result = caseVLSNand(vlsNand); + if (result == null) result = caseVLSTerm(vlsNand); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_AND: + { + VLSAnd vlsAnd = (VLSAnd)theEObject; + T result = caseVLSAnd(vlsAnd); + if (result == null) result = caseVLSTerm(vlsAnd); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_OR: + { + VLSOr vlsOr = (VLSOr)theEObject; + T result = caseVLSOr(vlsOr); + if (result == null) result = caseVLSTerm(vlsOr); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_UNIVERSAL_QUANTIFIER: + { + VLSUniversalQuantifier vlsUniversalQuantifier = (VLSUniversalQuantifier)theEObject; + T result = caseVLSUniversalQuantifier(vlsUniversalQuantifier); + if (result == null) result = caseVLSTerm(vlsUniversalQuantifier); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_EXISTENTIAL_QUANTIFIER: + { + VLSExistentialQuantifier vlsExistentialQuantifier = (VLSExistentialQuantifier)theEObject; + T result = caseVLSExistentialQuantifier(vlsExistentialQuantifier); + if (result == null) result = caseVLSTerm(vlsExistentialQuantifier); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_UNARY_NEGATION: + { + VLSUnaryNegation vlsUnaryNegation = (VLSUnaryNegation)theEObject; + T result = caseVLSUnaryNegation(vlsUnaryNegation); + if (result == null) result = caseVLSTerm(vlsUnaryNegation); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_INEQUALITY: + { + VLSInequality vlsInequality = (VLSInequality)theEObject; + T result = caseVLSInequality(vlsInequality); + if (result == null) result = caseVLSTerm(vlsInequality); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_EQUALITY: + { + VLSEquality vlsEquality = (VLSEquality)theEObject; + T result = caseVLSEquality(vlsEquality); + if (result == null) result = caseVLSTerm(vlsEquality); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_ASSIGNMENT: + { + VLSAssignment vlsAssignment = (VLSAssignment)theEObject; + T result = caseVLSAssignment(vlsAssignment); + if (result == null) result = caseVLSTerm(vlsAssignment); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_CONSTANT: + { + VLSConstant vlsConstant = (VLSConstant)theEObject; + T result = caseVLSConstant(vlsConstant); + if (result == null) result = caseVLSTerm(vlsConstant); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_TRUE: + { + VLSTrue vlsTrue = (VLSTrue)theEObject; + T result = caseVLSTrue(vlsTrue); + if (result == null) result = caseVLSTerm(vlsTrue); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_FALSE: + { + VLSFalse vlsFalse = (VLSFalse)theEObject; + T result = caseVLSFalse(vlsFalse); + if (result == null) result = caseVLSTerm(vlsFalse); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_FUNCTION: + { + VLSFunction vlsFunction = (VLSFunction)theEObject; + T result = caseVLSFunction(vlsFunction); + if (result == null) result = caseVLSTerm(vlsFunction); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_LESS: + { + VLSLess vlsLess = (VLSLess)theEObject; + T result = caseVLSLess(vlsLess); + if (result == null) result = caseVLSTerm(vlsLess); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_INT: + { + VLSInt vlsInt = (VLSInt)theEObject; + T result = caseVLSInt(vlsInt); + if (result == null) result = caseVLSDefinedTerm(vlsInt); + if (result == null) result = caseVLSTerm(vlsInt); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_REAL: + { + VLSReal vlsReal = (VLSReal)theEObject; + T result = caseVLSReal(vlsReal); + if (result == null) result = caseVLSDefinedTerm(vlsReal); + if (result == null) result = caseVLSTerm(vlsReal); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_RATIONAL: + { + VLSRational vlsRational = (VLSRational)theEObject; + T result = caseVLSRational(vlsRational); + if (result == null) result = caseVLSDefinedTerm(vlsRational); + if (result == null) result = caseVLSTerm(vlsRational); + if (result == null) result = defaultCase(theEObject); + return result; + } + case VampireLanguagePackage.VLS_DOUBLE_QUOTE: + { + VLSDoubleQuote vlsDoubleQuote = (VLSDoubleQuote)theEObject; + T result = caseVLSDoubleQuote(vlsDoubleQuote); + if (result == null) result = caseVLSDefinedTerm(vlsDoubleQuote); + if (result == null) result = caseVLSTerm(vlsDoubleQuote); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of 'Vampire Model'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Vampire Model'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVampireModel(VampireModel object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Include'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Include'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSInclude(VLSInclude object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Name'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Name'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSName(VLSName object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Comment'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Comment'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSComment(VLSComment object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Fof Formula'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Fof Formula'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSFofFormula(VLSFofFormula object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Annotation'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Annotation'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSAnnotation(VLSAnnotation object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Term'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Term'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSTerm(VLSTerm object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Variable'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Variable'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSVariable(VLSVariable object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Function Fof'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Function Fof'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSFunctionFof(VLSFunctionFof object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Defined Term'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Defined Term'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSDefinedTerm(VLSDefinedTerm object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Equivalent'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Equivalent'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSEquivalent(VLSEquivalent object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Implies'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Implies'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSImplies(VLSImplies object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Rev Implies'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Rev Implies'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSRevImplies(VLSRevImplies object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Xnor'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Xnor'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSXnor(VLSXnor object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Nor'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Nor'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSNor(VLSNor object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Nand'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Nand'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSNand(VLSNand object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS And'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS And'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSAnd(VLSAnd object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Or'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Or'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSOr(VLSOr object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Universal Quantifier'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Universal Quantifier'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSUniversalQuantifier(VLSUniversalQuantifier object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Existential Quantifier'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Existential Quantifier'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSExistentialQuantifier(VLSExistentialQuantifier object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Unary Negation'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Unary Negation'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSUnaryNegation(VLSUnaryNegation object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Inequality'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Inequality'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSInequality(VLSInequality object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Equality'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Equality'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSEquality(VLSEquality object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Assignment'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Assignment'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSAssignment(VLSAssignment object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Constant'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Constant'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSConstant(VLSConstant object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS True'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS True'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSTrue(VLSTrue object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS False'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS False'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSFalse(VLSFalse object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Function'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Function'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSFunction(VLSFunction object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Less'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Less'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSLess(VLSLess object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Int'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Int'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSInt(VLSInt object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Real'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Real'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSReal(VLSReal object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Rational'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Rational'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSRational(VLSRational object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'VLS Double Quote'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'VLS Double Quote'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVLSDoubleQuote(VLSDoubleQuote object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'EObject'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'EObject'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + @Override + public T defaultCase(EObject object) + { + return null; + } + +} //VampireLanguageSwitch diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/GenerateVampireLanguage.mwe2 b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/GenerateVampireLanguage.mwe2 new file mode 100644 index 00000000..903ac83b --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/GenerateVampireLanguage.mwe2 @@ -0,0 +1,44 @@ +module ca.mcgill.ecse.dslreasoner.GenerateVampireLanguage + +import org.eclipse.xtext.xtext.generator.* +import org.eclipse.xtext.xtext.generator.model.project.* + +var rootPath = ".." + +Workflow { + + component = XtextGenerator { + configuration = { + project = StandardProjectConfig { + baseName = "ca.mcgill.ecse.dslreasoner.vampire.language" + rootPath = rootPath + runtimeTest = { + enabled = true + } + eclipsePlugin = { + enabled = true + } + eclipsePluginTest = { + enabled = true + } + createEclipseMetaData = true + } + code = { + encoding = "UTF-8" + lineDelimiter = "\r\n" + fileHeader = "/*\n * generated by Xtext \${version}\n */" + } + } + language = StandardLanguage { + name = "ca.mcgill.ecse.dslreasoner.VampireLanguage" + fileExtensions = "tptp" + + serializer = { + generateStub = false + } + validator = { + // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" + } + } + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/VampireLanguage.xtext b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/VampireLanguage.xtext new file mode 100644 index 00000000..daa15ca1 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/VampireLanguage.xtext @@ -0,0 +1,278 @@ +grammar ca.mcgill.ecse.dslreasoner.VampireLanguage with org.eclipse.xtext.common.Terminals hidden (WS) + +generate vampireLanguage "http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage" + +//@@@@@@@@@@@ +//2 things TODO: +//1. fix anotations (ln77) +//2. can only use declared variables in formula (ln 158) + +//@@@@@@@@@@@ + +VampireModel: + // TODO ensures there is always exactly 1 conjecture + ( + includes += VLSInclude | + comments += VLSComment | + formulas += VLSFofFormula + )* +; + + + +////////////////////////////////// +// VLS terminals +////////////////////////////////// + +terminal ALPHA_NUMERIC: ( 'a'..'z' | 'A'..'Z' | '0'..'9' | '_'); +terminal UPPER_WORD_ID: ('A'..'Z') (ALPHA_NUMERIC)*; +terminal LOWER_WORD_ID: ('a'..'z') (ALPHA_NUMERIC)*; + + +//TODO MIGHT NEED TO IMPLEMENT SOME WAY TO ONLY CONSIDER WHAT IS INSIDE QUOTES AS NAME +//incorporate quotes in the line of calling. ex. "'" name=SINGLEQUOTE "'" +terminal DOUBLE_QUOTE: '"' ( '\\' ('"'|'\\') | !('\\'|'"') )* '"';//from terminal STRING rule, positive about this +terminal SINGLE_QUOTE: "'" ( '\\' ("'"|'\\') | !('\\'|"'") )+ "'";//from terminal STRING rule, positive about this + +terminal SIGN: ('+' | '-'); + +terminal DOLLAR_ID: ('$') (LOWER_WORD_ID); +terminal DOUBLE_DOLLAR_ID: ('$$') (LOWER_WORD_ID); + +terminal LITERAL: '0' | ('1'..'9') (INT)?; +terminal SIGNED_LITERAL: (SIGN)* (LITERAL); + +terminal UNSIGNED_REAL_FRAC_ID: (LITERAL) ('.') (INT); +terminal UNSIGNED_REAL_EXP_ID: (LITERAL | UNSIGNED_REAL_FRAC_ID) ('Ee') (SIGN)* (INT) ; +terminal SIGNED_REAL_ID: (SIGN)* (UNSIGNED_REAL_FRAC_ID | UNSIGNED_REAL_EXP_ID); + +terminal UNSIGNED_RAT_ID: (LITERAL) ('/') ('1'..'9') (INT)? ; +terminal SIGNED_RAT_ID: (SIGN)* (UNSIGNED_RAT_ID); + +//Overwriting is necessary +terminal ANY_OTHER: '%' (!('\n'|'\r'))* ('\r'); +terminal SINGLE_COMMENT: ANY_OTHER; +//terminal ID: ( !('('|')'|'\r'|'\n') )+ ; + + + +////////////////////////////////// +// VLS types +////////////////////////////////// + +// +VLSInclude: + 'include(' fileName = SINGLE_QUOTE ( ',[' names += VLSName (',' names += VLSName)* ']' )? +; + +VLSName: + name = (LOWER_WORD_ID | SINGLE_QUOTE | LITERAL | SIGNED_LITERAL) +; + +// +VLSComment: + comment = SINGLE_COMMENT + //need to add a new line at the end of the file for the case where the last line is a comment +; + +//VLSConstantDeclaration: name = (LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID ); + +// +VLSFofFormula: + 'fof' '(' name = (LOWER_WORD_ID | SIGNED_LITERAL | SINGLE_QUOTE) ',' fofRole = VLSRole ',' fofFormula = VLSTerm (',' annotations = VLSAnnotation)? ')' '.' +; +/* +//NAME +VLSName: + //(atomic_Word = Atomic_Word | integer = Integer | single_quote_word = Single_Quote_Word) + name = (LOWER_WORD_ID | SIGNED_INT_ID | SINGLE_QUOTE) +; +*/ +// +VLSRole: + VLSAxiom | VLSConjecture | VLSHypothesis | VLSDefinition | + VLSAssumption | VLSLemma | VLSTheorem | VLSCorollary | VLSNegated_Conjecture | + VLSPlain | VLSType |VLSFi_Domain | VLSFi_Functors | VLSFi_Predicates | VLSUnknown +; + +VLSAxiom: + "axiom" +; + +VLSConjecture: + "conjecture" +; + +VLSHypothesis: + "hypothesis" +; + +VLSDefinition: + "definition" +; + +VLSAssumption: + "assumption" +; + +VLSLemma: + "lemma" +; + +VLSTheorem: + "theorem" +; + +VLSCorollary: + "corollary" +; + +VLSNegated_Conjecture: + "negated_conjecture" +; + +VLSPlain: + "plain" +; + +VLSType: + "type" +; + +VLSFi_Domain: + "fi_domain" +; + +VLSFi_Functors: + "fi_functors" +; + +VLSFi_Predicates: + "fi_predicates" +; + +VLSUnknown: + "unknown" +; + +// +// Not at all based on the website. based on what we think the output will be like +VLSAnnotation: + ('[')? (name = (LOWER_WORD_ID | SINGLE_QUOTE | VLSRole))? ( '(' followup = VLSAnnotationTerms ')' )? (']')? +; + +VLSAnnotationTerms returns VLSAnnotation: + terms += VLSAnnotation (',' terms += VLSAnnotation )* +; + +////////////////////////////////// +// VLS Terms +////////////////////////////////// + +VLSTerm: + //( VLSLogic | VLSSequent) + VLSBinary +; +//* +//VLSBinaryFormula +VLSBinary returns VLSTerm: + VLSUnitaryFormula + ( + (({VLSEquivalent.left = current} "<=>" | + {VLSImplies.left = current} "=>" | + {VLSRevImplies.left = current} "<=" | + {VLSXnor.left = current} "<~>" | + {VLSNor.left = current} "~|" | + {VLSNand.left = current} "~&") right = VLSUnitaryFormula) + | + ({VLSAnd.left = current} '&' right = VLSUnitaryFormula)+ + | + ({VLSOr.left = current} '|' right = VLSUnitaryFormula)+ + )? +; + +//VLSUnitaryFormula +VLSUnitaryFormula returns VLSTerm: + VLSUniversalQuantifier | VLSExistentialQuantifier | VLSUnaryNegation | VLSUnaryInfix + //| VLSEquality + | '(' VLSTerm ')' +; + +VLSUniversalQuantifier returns VLSTerm: + {VLSUniversalQuantifier} (("!") '[' variables += VLSVariable (',' variables += VLSVariable)* ']' ':') operand = VLSUnitaryFormula +; + +VLSExistentialQuantifier returns VLSTerm: + {VLSExistentialQuantifier} (("?") '[' variables += VLSVariable (',' variables += VLSVariable)* ']' ':') operand = VLSUnitaryFormula +; + +VLSUnaryNegation returns VLSTerm: + {VLSUnaryNegation} ('~') operand = VLSUnitaryFormula +; + +VLSUnaryInfix returns VLSTerm: + VLSAtomic (({VLSInequality.left = current} "!=" | + {VLSEquality.left = current} "=" | + {VLSAssignment.left = current} ":=") + right = VLSAtomic)? +; + +//NOT SUREEEE +//VLSEquality returns VLSTerm: +// VLSFofTerm ({VLSEquality.left = current} "=" right = VLSFofTerm)? +// +//; + +/* +enum VLSDefinedFunctor: + UMINUS='$uminus' | SUM='$sum' | DIFFERENCE='$difference' | PRODUCT='$product' | QUOTIENT='$quotient' | + QUOTIENT_E='$quotient_e' | QUOTIENT_T='$quotient_t' | QUOTIENT_F='$quotient_f' | REMAINDER_E='$remainder_e' | + REMAINDER_T='$remainder_t' | REMAINDER_F='$remainder_f' | FLOOR='$floor' | CEILING='$ceiling' | + TRUNCATE='$truncate' | ROUND='$round' | TO_INT='$to_int' | TO_RAT='$to_rat' | TO_REAL='$to_real' + ; +*/ + +VLSAtomic returns VLSTerm: + VLSAtomicConstant | VLSAtomicFunction | VLSVariable + | VLSDefinedTerm //temporary solution. this is only valid for equality, not for != or := + //| VLSEquality +; + +VLSAtomicConstant returns VLSTerm: + //{VLSConstant} name = VLSConstantDeclaration | + {VLSConstant} name = (LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID | VLSRole) | + {VLSTrue} '$true' | + {VLSFalse} '$false' +; + +VLSAtomicFunction returns VLSTerm: + //? on next line causes warning + //TODO might need replace DOLLAR_ID with enum rule + //{VLSFunction} name = VLSConstantDeclaration ( '(' terms += VLSFofTerm (',' terms += VLSFofTerm)* ')' ) | + {VLSFunction} constant = (LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID | VLSRole ) ( '(' terms += VLSFofTerm (',' terms += VLSFofTerm)* ')') | + {VLSLess} name = '$less' '(' terms += VLSFofTerm ',' terms += VLSFofTerm ')' +; + +VLSVariable : + + name = UPPER_WORD_ID +; + +VLSFofTerm returns VLSTerm: + //(VLSVariable | VLSFunction | VLSTffConditional | VLSTffLet | VLSTffTuple) + (VLSVariable | VLSFunctionFof | VLSDefinedTerm ) +; + +VLSFunctionFof: + //? on next line causes warning + //TODO might need replace DOLLAR_ID with enum rule + functor = (LOWER_WORD_ID | SINGLE_QUOTE | DOLLAR_ID | DOUBLE_DOLLAR_ID ) ( '(' terms += VLSFofTerm (',' terms += VLSFofTerm)* ')')? +; + +VLSDefinedTerm: + {VLSInt} value = SIGNED_LITERAL | + {VLSReal} value = SIGNED_REAL_ID | + {VLSRational} value = SIGNED_RAT_ID | + {VLSDoubleQuote} value = DOUBLE_QUOTE +; + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/VampireLanguageRuntimeModule.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/VampireLanguageRuntimeModule.xtend new file mode 100644 index 00000000..162df1e2 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/VampireLanguageRuntimeModule.xtend @@ -0,0 +1,11 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner + + +/** + * Use this class to register components to be used at runtime / without the Equinox extension registry. + */ +class VampireLanguageRuntimeModule extends AbstractVampireLanguageRuntimeModule { +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/VampireLanguageStandaloneSetup.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/VampireLanguageStandaloneSetup.xtend new file mode 100644 index 00000000..38a05c51 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/VampireLanguageStandaloneSetup.xtend @@ -0,0 +1,15 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner + + +/** + * Initialization support for running Xtext languages without Equinox extension registry. + */ +class VampireLanguageStandaloneSetup extends VampireLanguageStandaloneSetupGenerated { + + def static void doSetup() { + new VampireLanguageStandaloneSetup().createInjectorAndDoEMFRegistration() + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/generator/VampireLanguageGenerator.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/generator/VampireLanguageGenerator.xtend new file mode 100644 index 00000000..f099486a --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/generator/VampireLanguageGenerator.xtend @@ -0,0 +1,25 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.AbstractGenerator +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.generator.IGeneratorContext + +/** + * Generates code from your model files on save. + * + * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation + */ +class VampireLanguageGenerator extends AbstractGenerator { + + override void doGenerate(Resource resource, IFileSystemAccess2 fsa, IGeneratorContext context) { +// fsa.generateFile('greetings.txt', 'People to greet: ' + +// resource.allContents +// .filter(Greeting) +// .map[name] +// .join(', ')) + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/scoping/VampireLanguageScopeProvider.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/scoping/VampireLanguageScopeProvider.xtend new file mode 100644 index 00000000..d6b4a1ae --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/scoping/VampireLanguageScopeProvider.xtend @@ -0,0 +1,15 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.scoping + + +/** + * This class contains custom scoping description. + * + * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#scoping + * on how and when to use it. + */ +class VampireLanguageScopeProvider extends AbstractVampireLanguageScopeProvider { + +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/validation/VampireLanguageValidator.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/validation/VampireLanguageValidator.xtend new file mode 100644 index 00000000..8d7a9f76 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src/ca/mcgill/ecse/dslreasoner/validation/VampireLanguageValidator.xtend @@ -0,0 +1,25 @@ +/* + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.validation + + +/** + * This class contains custom validation rules. + * + * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation + */ +class VampireLanguageValidator extends AbstractVampireLanguageValidator { + +// public static val INVALID_NAME = 'invalidName' +// +// @Check +// def checkGreetingStartsWithCapital(Greeting greeting) { +// if (!Character.isUpperCase(greeting.name.charAt(0))) { +// warning('Name should start with a capital', +// VampireLanguagePackage.Literals.GREETING__NAME, +// INVALID_NAME) +// } +// } + +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbin new file mode 100644 index 00000000..4bb663d0 Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbin new file mode 100644 index 00000000..5351805c Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.gitignore new file mode 100644 index 00000000..a979630b --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.gitignore @@ -0,0 +1,2 @@ +/.VampireLanguageRuntimeModule.java._trace +/.VampireLanguageStandaloneSetup.java._trace diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/VampireLanguageRuntimeModule.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/VampireLanguageRuntimeModule.java new file mode 100644 index 00000000..4592f574 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/VampireLanguageRuntimeModule.java @@ -0,0 +1,13 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner; + +import ca.mcgill.ecse.dslreasoner.AbstractVampireLanguageRuntimeModule; + +/** + * Use this class to register components to be used at runtime / without the Equinox extension registry. + */ +@SuppressWarnings("all") +public class VampireLanguageRuntimeModule extends AbstractVampireLanguageRuntimeModule { +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/VampireLanguageStandaloneSetup.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/VampireLanguageStandaloneSetup.java new file mode 100644 index 00000000..e33cd1fe --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/VampireLanguageStandaloneSetup.java @@ -0,0 +1,16 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner; + +import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetupGenerated; + +/** + * Initialization support for running Xtext languages without Equinox extension registry. + */ +@SuppressWarnings("all") +public class VampireLanguageStandaloneSetup extends VampireLanguageStandaloneSetupGenerated { + public static void doSetup() { + new VampireLanguageStandaloneSetup().createInjectorAndDoEMFRegistration(); + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbin new file mode 100644 index 00000000..96dafd7d Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.gitignore new file mode 100644 index 00000000..33c05454 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.gitignore @@ -0,0 +1 @@ +/.VampireLanguageGenerator.java._trace diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/VampireLanguageGenerator.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/VampireLanguageGenerator.java new file mode 100644 index 00000000..038c7c4f --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/VampireLanguageGenerator.java @@ -0,0 +1,21 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.generator; + +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.xtext.generator.AbstractGenerator; +import org.eclipse.xtext.generator.IFileSystemAccess2; +import org.eclipse.xtext.generator.IGeneratorContext; + +/** + * Generates code from your model files on save. + * + * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation + */ +@SuppressWarnings("all") +public class VampireLanguageGenerator extends AbstractGenerator { + @Override + public void doGenerate(final Resource resource, final IFileSystemAccess2 fsa, final IGeneratorContext context) { + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbin new file mode 100644 index 00000000..70c2d95d Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.gitignore new file mode 100644 index 00000000..ef7d2286 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.gitignore @@ -0,0 +1 @@ +/.VampireLanguageScopeProvider.java._trace diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/VampireLanguageScopeProvider.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/VampireLanguageScopeProvider.java new file mode 100644 index 00000000..2ea3ee1e --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/VampireLanguageScopeProvider.java @@ -0,0 +1,16 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.scoping; + +import ca.mcgill.ecse.dslreasoner.scoping.AbstractVampireLanguageScopeProvider; + +/** + * This class contains custom scoping description. + * + * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#scoping + * on how and when to use it. + */ +@SuppressWarnings("all") +public class VampireLanguageScopeProvider extends AbstractVampireLanguageScopeProvider { +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbin new file mode 100644 index 00000000..1c03c36f Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.gitignore new file mode 100644 index 00000000..60abd43f --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.gitignore @@ -0,0 +1 @@ +/.VampireLanguageValidator.java._trace diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/VampireLanguageValidator.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/VampireLanguageValidator.java new file mode 100644 index 00000000..9d112239 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/VampireLanguageValidator.java @@ -0,0 +1,15 @@ +/** + * generated by Xtext 2.12.0 + */ +package ca.mcgill.ecse.dslreasoner.validation; + +import ca.mcgill.ecse.dslreasoner.validation.AbstractVampireLanguageValidator; + +/** + * This class contains custom validation rules. + * + * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation + */ +@SuppressWarnings("all") +public class VampireLanguageValidator extends AbstractVampireLanguageValidator { +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/.classpath b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/.classpath new file mode 100644 index 00000000..4cc715d5 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/.gitignore new file mode 100644 index 00000000..ae3c1726 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/.project b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/.project new file mode 100644 index 00000000..98be876b --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/.project @@ -0,0 +1,40 @@ + + + ca.mcgill.ecse.dslreasoner.vampire.queries + + + + + + org.eclipse.viatra.query.tooling.ui.projectbuilder + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + org.eclipse.viatra.query.projectnature + org.eclipse.xtext.ui.shared.xtextNature + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/.settings/org.eclipse.jdt.core.prefs b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..295926d9 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/META-INF/MANIFEST.MF b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/META-INF/MANIFEST.MF new file mode 100644 index 00000000..1c1d9dba --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/META-INF/MANIFEST.MF @@ -0,0 +1,15 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Queries +Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.queries;singleton:=true +Bundle-Version: 1.0.0.qualifier +Export-Package: ca.mcgill.ecse.dslreasoner.vampire.queries +Require-Bundle: org.eclipse.emf.ecore, + org.eclipse.viatra.query.runtime.rete, + org.eclipse.viatra.query.runtime.localsearch, + org.eclipse.xtext.xbase.lib, + ca.mcgill.ecse.dslreasoner.vampire.language;bundle-version="1.0.0", + org.eclipse.viatra.query.runtime;bundle-version="2.1.0" +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Import-Package: org.apache.log4j +Automatic-Module-Name: ca.mcgill.ecse.dslreasoner.vampire.queries diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/build.properties b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/build.properties new file mode 100644 index 00000000..88d3713e --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/build.properties @@ -0,0 +1,6 @@ +bin.includes = META-INF/,\ + .,\ + plugin.xml +source.. = src/,\ + src-gen/ +output.. = bin/ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/plugin.xml b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/plugin.xml new file mode 100644 index 00000000..95881b26 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/plugin.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/.gitignore new file mode 100644 index 00000000..190dbd80 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/.gitignore @@ -0,0 +1,13 @@ +/.VLSAnd.java._trace +/.VLSAnnotation.java._trace +/.VLSComment.java._trace +/.VLSEquivalent.java._trace +/.VLSExistentialQuantifier.java._trace +/.VLSFofFormula.java._trace +/.VLSFunction.java._trace +/.VLSFunctionFof.java._trace +/.VLSInequality.java._trace +/.VLSOr.java._trace +/.VLSUnaryNegation.java._trace +/.VLSUniversalQuantifier.java._trace +/.VampireQueries.java._trace diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSAnd.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSAnd.java new file mode 100644 index 00000000..23d9293f --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSAnd.java @@ -0,0 +1,533 @@ +/** + * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql + */ +package ca.mcgill.ecse.dslreasoner.vampire.queries; + +import java.util.Arrays; +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.apache.log4j.Logger; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.viatra.query.runtime.api.IPatternMatch; +import org.eclipse.viatra.query.runtime.api.IQuerySpecification; +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; +import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; +import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; +import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; +import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; +import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; +import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; +import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; + +/** + * A pattern-specific query specification that can instantiate Matcher in a type-safe way. + * + *

Original source: + *

+ *         pattern VLSAnd(term: VLSAnd){
+ *         	VLSAnd(term);
+ *         }
+ * 
+ * + * @see Matcher + * @see Match + * + */ +@SuppressWarnings("all") +public final class VLSAnd extends BaseGeneratedEMFQuerySpecification { + /** + * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnd pattern, + * to be used in conjunction with {@link Matcher}. + * + *

Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. + * Each instance is a (possibly partial) substitution of pattern parameters, + * usable to represent a match of the pattern in the result of a query, + * or to specify the bound (fixed) input parameters when issuing a query. + * + * @see Matcher + * + */ + public static abstract class Match extends BasePatternMatch { + private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd fTerm; + + private static List parameterNames = makeImmutableList("term"); + + private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) { + this.fTerm = pTerm; + } + + @Override + public Object get(final String parameterName) { + if ("term".equals(parameterName)) return this.fTerm; + return null; + } + + public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd getTerm() { + return this.fTerm; + } + + @Override + public boolean set(final String parameterName, final Object newValue) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + if ("term".equals(parameterName) ) { + this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd) newValue; + return true; + } + return false; + } + + public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + this.fTerm = pTerm; + } + + @Override + public String patternName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnd"; + } + + @Override + public List parameterNames() { + return VLSAnd.Match.parameterNames; + } + + @Override + public Object[] toArray() { + return new Object[]{fTerm}; + } + + @Override + public VLSAnd.Match toImmutable() { + return isMutable() ? newMatch(fTerm) : this; + } + + @Override + public String prettyPrint() { + StringBuilder result = new StringBuilder(); + result.append("\"term\"=" + prettyPrintValue(fTerm)); + return result.toString(); + } + + @Override + public int hashCode() { + return Objects.hash(fTerm); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) { + return false; + } + if ((obj instanceof VLSAnd.Match)) { + VLSAnd.Match other = (VLSAnd.Match) obj; + return Objects.equals(fTerm, other.fTerm); + } else { + // this should be infrequent + if (!(obj instanceof IPatternMatch)) { + return false; + } + IPatternMatch otherSig = (IPatternMatch) obj; + return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); + } + } + + @Override + public VLSAnd specification() { + return VLSAnd.instance(); + } + + /** + * Returns an empty, mutable match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @return the empty match. + * + */ + public static VLSAnd.Match newEmptyMatch() { + return new Mutable(null); + } + + /** + * Returns a mutable (partial) match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the new, mutable (partial) match object. + * + */ + public static VLSAnd.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) { + return new Mutable(pTerm); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public static VLSAnd.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) { + return new Immutable(pTerm); + } + + private static final class Mutable extends VLSAnd.Match { + Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return true; + } + } + + private static final class Immutable extends VLSAnd.Match { + Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return false; + } + } + } + + /** + * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnd pattern, + * providing pattern-specific query methods. + * + *

Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, + * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. + * + *

Matches of the pattern will be represented as {@link Match}. + * + *

Original source: + *

+   * pattern VLSAnd(term: VLSAnd){
+   * 	VLSAnd(term);
+   * }
+   * 
+ * + * @see Match + * @see VLSAnd + * + */ + public static class Matcher extends BaseMatcher { + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + public static VLSAnd.Matcher on(final ViatraQueryEngine engine) { + // check if matcher already exists + Matcher matcher = engine.getExistingMatcher(querySpecification()); + if (matcher == null) { + matcher = (Matcher)engine.getMatcher(querySpecification()); + } + return matcher; + } + + /** + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * @return an initialized matcher + * @noreference This method is for internal matcher initialization by the framework, do not call it manually. + * + */ + public static VLSAnd.Matcher create() { + return new Matcher(); + } + + private final static int POSITION_TERM = 0; + + private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSAnd.Matcher.class); + + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + private Matcher() { + super(querySpecification()); + } + + /** + * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return matches represented as a Match object. + * + */ + public Collection getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet()); + } + + /** + * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. + *

+ * NOTE: It is important not to modify the source model while the stream is being processed. + * If the match set of the pattern changes during processing, the contents of the stream is undefined. + * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a stream of matches represented as a Match object. + * + */ + public Stream streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}); + } + + /** + * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a match represented as a Match object, or null if no match is found. + * + */ + public Optional getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) { + return rawGetOneArbitraryMatch(new Object[]{pTerm}); + } + + /** + * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, + * under any possible substitution of the unspecified parameters (if any). + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return true if the input is a valid (partial) match of the pattern. + * + */ + public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) { + return rawHasMatch(new Object[]{pTerm}); + } + + /** + * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the number of pattern matches found. + * + */ + public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) { + return rawCountMatches(new Object[]{pTerm}); + } + + /** + * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @param processor the action that will process the selected match. + * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked + * + */ + public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm, final Consumer processor) { + return rawForOneArbitraryMatch(new Object[]{pTerm}, processor); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public VLSAnd.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) { + return VLSAnd.Match.newMatch(pTerm); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + protected Stream rawStreamAllValuesOfterm(final Object[] parameters) { + return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd.class::cast); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Set getAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet()); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Stream streamAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()); + } + + @Override + protected VLSAnd.Match tupleToMatch(final Tuple t) { + try { + return VLSAnd.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd) t.get(POSITION_TERM)); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in tuple not properly typed!",e); + return null; + } + } + + @Override + protected VLSAnd.Match arrayToMatch(final Object[] match) { + try { + return VLSAnd.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + @Override + protected VLSAnd.Match arrayToMatchMutable(final Object[] match) { + try { + return VLSAnd.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + /** + * @return the singleton instance of the query specification of this pattern + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static IQuerySpecification querySpecification() { + return VLSAnd.instance(); + } + } + + private VLSAnd() { + super(GeneratedPQuery.INSTANCE); + } + + /** + * @return the singleton instance of the query specification + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static VLSAnd instance() { + try{ + return LazyHolder.INSTANCE; + } catch (ExceptionInInitializerError err) { + throw processInitializerError(err); + } + } + + @Override + protected VLSAnd.Matcher instantiate(final ViatraQueryEngine engine) { + return VLSAnd.Matcher.on(engine); + } + + @Override + public VLSAnd.Matcher instantiate() { + return VLSAnd.Matcher.create(); + } + + @Override + public VLSAnd.Match newEmptyMatch() { + return VLSAnd.Match.newEmptyMatch(); + } + + @Override + public VLSAnd.Match newMatch(final Object... parameters) { + return VLSAnd.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd) parameters[0]); + } + + /** + * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnd (visibility: PUBLIC, simpleName: VLSAnd, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnd, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created + * not at the class load time of the outer class, + * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnd (visibility: PUBLIC, simpleName: VLSAnd, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnd, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. + * + *

This workaround is required e.g. to support recursion. + * + */ + private static class LazyHolder { + private final static VLSAnd INSTANCE = new VLSAnd(); + + /** + * Statically initializes the query specification after the field {@link #INSTANCE} is assigned. + * This initialization order is required to support indirect recursion. + * + *

The static initializer is defined using a helper field to work around limitations of the code generator. + * + */ + private final static Object STATIC_INITIALIZER = ensureInitialized(); + + public static Object ensureInitialized() { + INSTANCE.ensureInitializedInternal(); + return null; + } + } + + private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { + private final static VLSAnd.GeneratedPQuery INSTANCE = new GeneratedPQuery(); + + private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSAnd")), PParameterDirection.INOUT); + + private final List parameters = Arrays.asList(parameter_term); + + private GeneratedPQuery() { + super(PVisibility.PUBLIC); + } + + @Override + public String getFullyQualifiedName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnd"; + } + + @Override + public List getParameterNames() { + return Arrays.asList("term"); + } + + @Override + public List getParameters() { + return parameters; + } + + @Override + public Set doGetContainedBodies() { + setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); + Set bodies = new LinkedHashSet<>(); + { + PBody body = new PBody(this); + PVariable var_term = body.getOrCreateVariableByName("term"); + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSAnd"))); + body.setSymbolicParameters(Arrays.asList( + new ExportedParameter(body, var_term, parameter_term) + )); + // VLSAnd(term) + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSAnd"))); + bodies.add(body); + } + return bodies; + } + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSAnnotation.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSAnnotation.java new file mode 100644 index 00000000..282d813f --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSAnnotation.java @@ -0,0 +1,533 @@ +/** + * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql + */ +package ca.mcgill.ecse.dslreasoner.vampire.queries; + +import java.util.Arrays; +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.apache.log4j.Logger; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.viatra.query.runtime.api.IPatternMatch; +import org.eclipse.viatra.query.runtime.api.IQuerySpecification; +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; +import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; +import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; +import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; +import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; +import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; +import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; +import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; + +/** + * A pattern-specific query specification that can instantiate Matcher in a type-safe way. + * + *

Original source: + *

+ *         pattern VLSAnnotation(term: VLSAnnotation){
+ *         	VLSAnnotation(term);
+ *         }
+ * 
+ * + * @see Matcher + * @see Match + * + */ +@SuppressWarnings("all") +public final class VLSAnnotation extends BaseGeneratedEMFQuerySpecification { + /** + * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnnotation pattern, + * to be used in conjunction with {@link Matcher}. + * + *

Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. + * Each instance is a (possibly partial) substitution of pattern parameters, + * usable to represent a match of the pattern in the result of a query, + * or to specify the bound (fixed) input parameters when issuing a query. + * + * @see Matcher + * + */ + public static abstract class Match extends BasePatternMatch { + private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation fTerm; + + private static List parameterNames = makeImmutableList("term"); + + private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) { + this.fTerm = pTerm; + } + + @Override + public Object get(final String parameterName) { + if ("term".equals(parameterName)) return this.fTerm; + return null; + } + + public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation getTerm() { + return this.fTerm; + } + + @Override + public boolean set(final String parameterName, final Object newValue) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + if ("term".equals(parameterName) ) { + this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation) newValue; + return true; + } + return false; + } + + public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + this.fTerm = pTerm; + } + + @Override + public String patternName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnnotation"; + } + + @Override + public List parameterNames() { + return VLSAnnotation.Match.parameterNames; + } + + @Override + public Object[] toArray() { + return new Object[]{fTerm}; + } + + @Override + public VLSAnnotation.Match toImmutable() { + return isMutable() ? newMatch(fTerm) : this; + } + + @Override + public String prettyPrint() { + StringBuilder result = new StringBuilder(); + result.append("\"term\"=" + prettyPrintValue(fTerm)); + return result.toString(); + } + + @Override + public int hashCode() { + return Objects.hash(fTerm); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) { + return false; + } + if ((obj instanceof VLSAnnotation.Match)) { + VLSAnnotation.Match other = (VLSAnnotation.Match) obj; + return Objects.equals(fTerm, other.fTerm); + } else { + // this should be infrequent + if (!(obj instanceof IPatternMatch)) { + return false; + } + IPatternMatch otherSig = (IPatternMatch) obj; + return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); + } + } + + @Override + public VLSAnnotation specification() { + return VLSAnnotation.instance(); + } + + /** + * Returns an empty, mutable match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @return the empty match. + * + */ + public static VLSAnnotation.Match newEmptyMatch() { + return new Mutable(null); + } + + /** + * Returns a mutable (partial) match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the new, mutable (partial) match object. + * + */ + public static VLSAnnotation.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) { + return new Mutable(pTerm); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public static VLSAnnotation.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) { + return new Immutable(pTerm); + } + + private static final class Mutable extends VLSAnnotation.Match { + Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return true; + } + } + + private static final class Immutable extends VLSAnnotation.Match { + Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return false; + } + } + } + + /** + * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnnotation pattern, + * providing pattern-specific query methods. + * + *

Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, + * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. + * + *

Matches of the pattern will be represented as {@link Match}. + * + *

Original source: + *

+   * pattern VLSAnnotation(term: VLSAnnotation){
+   * 	VLSAnnotation(term);
+   * }
+   * 
+ * + * @see Match + * @see VLSAnnotation + * + */ + public static class Matcher extends BaseMatcher { + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + public static VLSAnnotation.Matcher on(final ViatraQueryEngine engine) { + // check if matcher already exists + Matcher matcher = engine.getExistingMatcher(querySpecification()); + if (matcher == null) { + matcher = (Matcher)engine.getMatcher(querySpecification()); + } + return matcher; + } + + /** + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * @return an initialized matcher + * @noreference This method is for internal matcher initialization by the framework, do not call it manually. + * + */ + public static VLSAnnotation.Matcher create() { + return new Matcher(); + } + + private final static int POSITION_TERM = 0; + + private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSAnnotation.Matcher.class); + + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + private Matcher() { + super(querySpecification()); + } + + /** + * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return matches represented as a Match object. + * + */ + public Collection getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet()); + } + + /** + * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. + *

+ * NOTE: It is important not to modify the source model while the stream is being processed. + * If the match set of the pattern changes during processing, the contents of the stream is undefined. + * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a stream of matches represented as a Match object. + * + */ + public Stream streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}); + } + + /** + * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a match represented as a Match object, or null if no match is found. + * + */ + public Optional getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) { + return rawGetOneArbitraryMatch(new Object[]{pTerm}); + } + + /** + * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, + * under any possible substitution of the unspecified parameters (if any). + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return true if the input is a valid (partial) match of the pattern. + * + */ + public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) { + return rawHasMatch(new Object[]{pTerm}); + } + + /** + * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the number of pattern matches found. + * + */ + public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) { + return rawCountMatches(new Object[]{pTerm}); + } + + /** + * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @param processor the action that will process the selected match. + * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked + * + */ + public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm, final Consumer processor) { + return rawForOneArbitraryMatch(new Object[]{pTerm}, processor); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public VLSAnnotation.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) { + return VLSAnnotation.Match.newMatch(pTerm); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + protected Stream rawStreamAllValuesOfterm(final Object[] parameters) { + return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation.class::cast); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Set getAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet()); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Stream streamAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()); + } + + @Override + protected VLSAnnotation.Match tupleToMatch(final Tuple t) { + try { + return VLSAnnotation.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation) t.get(POSITION_TERM)); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in tuple not properly typed!",e); + return null; + } + } + + @Override + protected VLSAnnotation.Match arrayToMatch(final Object[] match) { + try { + return VLSAnnotation.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + @Override + protected VLSAnnotation.Match arrayToMatchMutable(final Object[] match) { + try { + return VLSAnnotation.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + /** + * @return the singleton instance of the query specification of this pattern + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static IQuerySpecification querySpecification() { + return VLSAnnotation.instance(); + } + } + + private VLSAnnotation() { + super(GeneratedPQuery.INSTANCE); + } + + /** + * @return the singleton instance of the query specification + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static VLSAnnotation instance() { + try{ + return LazyHolder.INSTANCE; + } catch (ExceptionInInitializerError err) { + throw processInitializerError(err); + } + } + + @Override + protected VLSAnnotation.Matcher instantiate(final ViatraQueryEngine engine) { + return VLSAnnotation.Matcher.on(engine); + } + + @Override + public VLSAnnotation.Matcher instantiate() { + return VLSAnnotation.Matcher.create(); + } + + @Override + public VLSAnnotation.Match newEmptyMatch() { + return VLSAnnotation.Match.newEmptyMatch(); + } + + @Override + public VLSAnnotation.Match newMatch(final Object... parameters) { + return VLSAnnotation.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation) parameters[0]); + } + + /** + * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnnotation (visibility: PUBLIC, simpleName: VLSAnnotation, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnnotation, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created + * not at the class load time of the outer class, + * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnnotation (visibility: PUBLIC, simpleName: VLSAnnotation, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnnotation, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. + * + *

This workaround is required e.g. to support recursion. + * + */ + private static class LazyHolder { + private final static VLSAnnotation INSTANCE = new VLSAnnotation(); + + /** + * Statically initializes the query specification after the field {@link #INSTANCE} is assigned. + * This initialization order is required to support indirect recursion. + * + *

The static initializer is defined using a helper field to work around limitations of the code generator. + * + */ + private final static Object STATIC_INITIALIZER = ensureInitialized(); + + public static Object ensureInitialized() { + INSTANCE.ensureInitializedInternal(); + return null; + } + } + + private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { + private final static VLSAnnotation.GeneratedPQuery INSTANCE = new GeneratedPQuery(); + + private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSAnnotation")), PParameterDirection.INOUT); + + private final List parameters = Arrays.asList(parameter_term); + + private GeneratedPQuery() { + super(PVisibility.PUBLIC); + } + + @Override + public String getFullyQualifiedName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnnotation"; + } + + @Override + public List getParameterNames() { + return Arrays.asList("term"); + } + + @Override + public List getParameters() { + return parameters; + } + + @Override + public Set doGetContainedBodies() { + setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); + Set bodies = new LinkedHashSet<>(); + { + PBody body = new PBody(this); + PVariable var_term = body.getOrCreateVariableByName("term"); + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSAnnotation"))); + body.setSymbolicParameters(Arrays.asList( + new ExportedParameter(body, var_term, parameter_term) + )); + // VLSAnnotation(term) + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSAnnotation"))); + bodies.add(body); + } + return bodies; + } + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSComment.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSComment.java new file mode 100644 index 00000000..ec2bfef3 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSComment.java @@ -0,0 +1,533 @@ +/** + * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql + */ +package ca.mcgill.ecse.dslreasoner.vampire.queries; + +import java.util.Arrays; +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.apache.log4j.Logger; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.viatra.query.runtime.api.IPatternMatch; +import org.eclipse.viatra.query.runtime.api.IQuerySpecification; +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; +import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; +import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; +import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; +import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; +import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; +import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; +import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; + +/** + * A pattern-specific query specification that can instantiate Matcher in a type-safe way. + * + *

Original source: + *

+ *         pattern VLSComment(term: VLSComment){
+ *         	VLSComment(term);
+ *         }
+ * 
+ * + * @see Matcher + * @see Match + * + */ +@SuppressWarnings("all") +public final class VLSComment extends BaseGeneratedEMFQuerySpecification { + /** + * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSComment pattern, + * to be used in conjunction with {@link Matcher}. + * + *

Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. + * Each instance is a (possibly partial) substitution of pattern parameters, + * usable to represent a match of the pattern in the result of a query, + * or to specify the bound (fixed) input parameters when issuing a query. + * + * @see Matcher + * + */ + public static abstract class Match extends BasePatternMatch { + private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment fTerm; + + private static List parameterNames = makeImmutableList("term"); + + private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) { + this.fTerm = pTerm; + } + + @Override + public Object get(final String parameterName) { + if ("term".equals(parameterName)) return this.fTerm; + return null; + } + + public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment getTerm() { + return this.fTerm; + } + + @Override + public boolean set(final String parameterName, final Object newValue) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + if ("term".equals(parameterName) ) { + this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment) newValue; + return true; + } + return false; + } + + public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + this.fTerm = pTerm; + } + + @Override + public String patternName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSComment"; + } + + @Override + public List parameterNames() { + return VLSComment.Match.parameterNames; + } + + @Override + public Object[] toArray() { + return new Object[]{fTerm}; + } + + @Override + public VLSComment.Match toImmutable() { + return isMutable() ? newMatch(fTerm) : this; + } + + @Override + public String prettyPrint() { + StringBuilder result = new StringBuilder(); + result.append("\"term\"=" + prettyPrintValue(fTerm)); + return result.toString(); + } + + @Override + public int hashCode() { + return Objects.hash(fTerm); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) { + return false; + } + if ((obj instanceof VLSComment.Match)) { + VLSComment.Match other = (VLSComment.Match) obj; + return Objects.equals(fTerm, other.fTerm); + } else { + // this should be infrequent + if (!(obj instanceof IPatternMatch)) { + return false; + } + IPatternMatch otherSig = (IPatternMatch) obj; + return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); + } + } + + @Override + public VLSComment specification() { + return VLSComment.instance(); + } + + /** + * Returns an empty, mutable match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @return the empty match. + * + */ + public static VLSComment.Match newEmptyMatch() { + return new Mutable(null); + } + + /** + * Returns a mutable (partial) match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the new, mutable (partial) match object. + * + */ + public static VLSComment.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) { + return new Mutable(pTerm); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public static VLSComment.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) { + return new Immutable(pTerm); + } + + private static final class Mutable extends VLSComment.Match { + Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return true; + } + } + + private static final class Immutable extends VLSComment.Match { + Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return false; + } + } + } + + /** + * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSComment pattern, + * providing pattern-specific query methods. + * + *

Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, + * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. + * + *

Matches of the pattern will be represented as {@link Match}. + * + *

Original source: + *

+   * pattern VLSComment(term: VLSComment){
+   * 	VLSComment(term);
+   * }
+   * 
+ * + * @see Match + * @see VLSComment + * + */ + public static class Matcher extends BaseMatcher { + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + public static VLSComment.Matcher on(final ViatraQueryEngine engine) { + // check if matcher already exists + Matcher matcher = engine.getExistingMatcher(querySpecification()); + if (matcher == null) { + matcher = (Matcher)engine.getMatcher(querySpecification()); + } + return matcher; + } + + /** + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * @return an initialized matcher + * @noreference This method is for internal matcher initialization by the framework, do not call it manually. + * + */ + public static VLSComment.Matcher create() { + return new Matcher(); + } + + private final static int POSITION_TERM = 0; + + private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSComment.Matcher.class); + + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + private Matcher() { + super(querySpecification()); + } + + /** + * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return matches represented as a Match object. + * + */ + public Collection getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet()); + } + + /** + * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. + *

+ * NOTE: It is important not to modify the source model while the stream is being processed. + * If the match set of the pattern changes during processing, the contents of the stream is undefined. + * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a stream of matches represented as a Match object. + * + */ + public Stream streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}); + } + + /** + * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a match represented as a Match object, or null if no match is found. + * + */ + public Optional getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) { + return rawGetOneArbitraryMatch(new Object[]{pTerm}); + } + + /** + * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, + * under any possible substitution of the unspecified parameters (if any). + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return true if the input is a valid (partial) match of the pattern. + * + */ + public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) { + return rawHasMatch(new Object[]{pTerm}); + } + + /** + * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the number of pattern matches found. + * + */ + public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) { + return rawCountMatches(new Object[]{pTerm}); + } + + /** + * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @param processor the action that will process the selected match. + * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked + * + */ + public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm, final Consumer processor) { + return rawForOneArbitraryMatch(new Object[]{pTerm}, processor); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public VLSComment.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) { + return VLSComment.Match.newMatch(pTerm); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + protected Stream rawStreamAllValuesOfterm(final Object[] parameters) { + return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment.class::cast); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Set getAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet()); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Stream streamAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()); + } + + @Override + protected VLSComment.Match tupleToMatch(final Tuple t) { + try { + return VLSComment.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment) t.get(POSITION_TERM)); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in tuple not properly typed!",e); + return null; + } + } + + @Override + protected VLSComment.Match arrayToMatch(final Object[] match) { + try { + return VLSComment.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + @Override + protected VLSComment.Match arrayToMatchMutable(final Object[] match) { + try { + return VLSComment.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + /** + * @return the singleton instance of the query specification of this pattern + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static IQuerySpecification querySpecification() { + return VLSComment.instance(); + } + } + + private VLSComment() { + super(GeneratedPQuery.INSTANCE); + } + + /** + * @return the singleton instance of the query specification + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static VLSComment instance() { + try{ + return LazyHolder.INSTANCE; + } catch (ExceptionInInitializerError err) { + throw processInitializerError(err); + } + } + + @Override + protected VLSComment.Matcher instantiate(final ViatraQueryEngine engine) { + return VLSComment.Matcher.on(engine); + } + + @Override + public VLSComment.Matcher instantiate() { + return VLSComment.Matcher.create(); + } + + @Override + public VLSComment.Match newEmptyMatch() { + return VLSComment.Match.newEmptyMatch(); + } + + @Override + public VLSComment.Match newMatch(final Object... parameters) { + return VLSComment.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment) parameters[0]); + } + + /** + * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSComment (visibility: PUBLIC, simpleName: VLSComment, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSComment, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created + * not at the class load time of the outer class, + * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSComment (visibility: PUBLIC, simpleName: VLSComment, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSComment, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. + * + *

This workaround is required e.g. to support recursion. + * + */ + private static class LazyHolder { + private final static VLSComment INSTANCE = new VLSComment(); + + /** + * Statically initializes the query specification after the field {@link #INSTANCE} is assigned. + * This initialization order is required to support indirect recursion. + * + *

The static initializer is defined using a helper field to work around limitations of the code generator. + * + */ + private final static Object STATIC_INITIALIZER = ensureInitialized(); + + public static Object ensureInitialized() { + INSTANCE.ensureInitializedInternal(); + return null; + } + } + + private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { + private final static VLSComment.GeneratedPQuery INSTANCE = new GeneratedPQuery(); + + private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSComment")), PParameterDirection.INOUT); + + private final List parameters = Arrays.asList(parameter_term); + + private GeneratedPQuery() { + super(PVisibility.PUBLIC); + } + + @Override + public String getFullyQualifiedName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSComment"; + } + + @Override + public List getParameterNames() { + return Arrays.asList("term"); + } + + @Override + public List getParameters() { + return parameters; + } + + @Override + public Set doGetContainedBodies() { + setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); + Set bodies = new LinkedHashSet<>(); + { + PBody body = new PBody(this); + PVariable var_term = body.getOrCreateVariableByName("term"); + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSComment"))); + body.setSymbolicParameters(Arrays.asList( + new ExportedParameter(body, var_term, parameter_term) + )); + // VLSComment(term) + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSComment"))); + bodies.add(body); + } + return bodies; + } + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSEquivalent.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSEquivalent.java new file mode 100644 index 00000000..5a174fed --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSEquivalent.java @@ -0,0 +1,533 @@ +/** + * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql + */ +package ca.mcgill.ecse.dslreasoner.vampire.queries; + +import java.util.Arrays; +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.apache.log4j.Logger; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.viatra.query.runtime.api.IPatternMatch; +import org.eclipse.viatra.query.runtime.api.IQuerySpecification; +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; +import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; +import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; +import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; +import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; +import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; +import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; +import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; + +/** + * A pattern-specific query specification that can instantiate Matcher in a type-safe way. + * + *

Original source: + *

+ *         pattern VLSEquivalent(term: VLSEquivalent){
+ *         	VLSEquivalent(term);
+ *         }
+ * 
+ * + * @see Matcher + * @see Match + * + */ +@SuppressWarnings("all") +public final class VLSEquivalent extends BaseGeneratedEMFQuerySpecification { + /** + * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSEquivalent pattern, + * to be used in conjunction with {@link Matcher}. + * + *

Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. + * Each instance is a (possibly partial) substitution of pattern parameters, + * usable to represent a match of the pattern in the result of a query, + * or to specify the bound (fixed) input parameters when issuing a query. + * + * @see Matcher + * + */ + public static abstract class Match extends BasePatternMatch { + private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent fTerm; + + private static List parameterNames = makeImmutableList("term"); + + private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) { + this.fTerm = pTerm; + } + + @Override + public Object get(final String parameterName) { + if ("term".equals(parameterName)) return this.fTerm; + return null; + } + + public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent getTerm() { + return this.fTerm; + } + + @Override + public boolean set(final String parameterName, final Object newValue) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + if ("term".equals(parameterName) ) { + this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent) newValue; + return true; + } + return false; + } + + public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + this.fTerm = pTerm; + } + + @Override + public String patternName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSEquivalent"; + } + + @Override + public List parameterNames() { + return VLSEquivalent.Match.parameterNames; + } + + @Override + public Object[] toArray() { + return new Object[]{fTerm}; + } + + @Override + public VLSEquivalent.Match toImmutable() { + return isMutable() ? newMatch(fTerm) : this; + } + + @Override + public String prettyPrint() { + StringBuilder result = new StringBuilder(); + result.append("\"term\"=" + prettyPrintValue(fTerm)); + return result.toString(); + } + + @Override + public int hashCode() { + return Objects.hash(fTerm); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) { + return false; + } + if ((obj instanceof VLSEquivalent.Match)) { + VLSEquivalent.Match other = (VLSEquivalent.Match) obj; + return Objects.equals(fTerm, other.fTerm); + } else { + // this should be infrequent + if (!(obj instanceof IPatternMatch)) { + return false; + } + IPatternMatch otherSig = (IPatternMatch) obj; + return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); + } + } + + @Override + public VLSEquivalent specification() { + return VLSEquivalent.instance(); + } + + /** + * Returns an empty, mutable match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @return the empty match. + * + */ + public static VLSEquivalent.Match newEmptyMatch() { + return new Mutable(null); + } + + /** + * Returns a mutable (partial) match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the new, mutable (partial) match object. + * + */ + public static VLSEquivalent.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) { + return new Mutable(pTerm); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public static VLSEquivalent.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) { + return new Immutable(pTerm); + } + + private static final class Mutable extends VLSEquivalent.Match { + Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return true; + } + } + + private static final class Immutable extends VLSEquivalent.Match { + Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return false; + } + } + } + + /** + * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSEquivalent pattern, + * providing pattern-specific query methods. + * + *

Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, + * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. + * + *

Matches of the pattern will be represented as {@link Match}. + * + *

Original source: + *

+   * pattern VLSEquivalent(term: VLSEquivalent){
+   * 	VLSEquivalent(term);
+   * }
+   * 
+ * + * @see Match + * @see VLSEquivalent + * + */ + public static class Matcher extends BaseMatcher { + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + public static VLSEquivalent.Matcher on(final ViatraQueryEngine engine) { + // check if matcher already exists + Matcher matcher = engine.getExistingMatcher(querySpecification()); + if (matcher == null) { + matcher = (Matcher)engine.getMatcher(querySpecification()); + } + return matcher; + } + + /** + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * @return an initialized matcher + * @noreference This method is for internal matcher initialization by the framework, do not call it manually. + * + */ + public static VLSEquivalent.Matcher create() { + return new Matcher(); + } + + private final static int POSITION_TERM = 0; + + private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSEquivalent.Matcher.class); + + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + private Matcher() { + super(querySpecification()); + } + + /** + * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return matches represented as a Match object. + * + */ + public Collection getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet()); + } + + /** + * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. + *

+ * NOTE: It is important not to modify the source model while the stream is being processed. + * If the match set of the pattern changes during processing, the contents of the stream is undefined. + * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a stream of matches represented as a Match object. + * + */ + public Stream streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}); + } + + /** + * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a match represented as a Match object, or null if no match is found. + * + */ + public Optional getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) { + return rawGetOneArbitraryMatch(new Object[]{pTerm}); + } + + /** + * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, + * under any possible substitution of the unspecified parameters (if any). + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return true if the input is a valid (partial) match of the pattern. + * + */ + public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) { + return rawHasMatch(new Object[]{pTerm}); + } + + /** + * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the number of pattern matches found. + * + */ + public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) { + return rawCountMatches(new Object[]{pTerm}); + } + + /** + * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @param processor the action that will process the selected match. + * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked + * + */ + public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm, final Consumer processor) { + return rawForOneArbitraryMatch(new Object[]{pTerm}, processor); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public VLSEquivalent.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) { + return VLSEquivalent.Match.newMatch(pTerm); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + protected Stream rawStreamAllValuesOfterm(final Object[] parameters) { + return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent.class::cast); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Set getAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet()); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Stream streamAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()); + } + + @Override + protected VLSEquivalent.Match tupleToMatch(final Tuple t) { + try { + return VLSEquivalent.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent) t.get(POSITION_TERM)); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in tuple not properly typed!",e); + return null; + } + } + + @Override + protected VLSEquivalent.Match arrayToMatch(final Object[] match) { + try { + return VLSEquivalent.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + @Override + protected VLSEquivalent.Match arrayToMatchMutable(final Object[] match) { + try { + return VLSEquivalent.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + /** + * @return the singleton instance of the query specification of this pattern + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static IQuerySpecification querySpecification() { + return VLSEquivalent.instance(); + } + } + + private VLSEquivalent() { + super(GeneratedPQuery.INSTANCE); + } + + /** + * @return the singleton instance of the query specification + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static VLSEquivalent instance() { + try{ + return LazyHolder.INSTANCE; + } catch (ExceptionInInitializerError err) { + throw processInitializerError(err); + } + } + + @Override + protected VLSEquivalent.Matcher instantiate(final ViatraQueryEngine engine) { + return VLSEquivalent.Matcher.on(engine); + } + + @Override + public VLSEquivalent.Matcher instantiate() { + return VLSEquivalent.Matcher.create(); + } + + @Override + public VLSEquivalent.Match newEmptyMatch() { + return VLSEquivalent.Match.newEmptyMatch(); + } + + @Override + public VLSEquivalent.Match newMatch(final Object... parameters) { + return VLSEquivalent.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent) parameters[0]); + } + + /** + * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSEquivalent (visibility: PUBLIC, simpleName: VLSEquivalent, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSEquivalent, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created + * not at the class load time of the outer class, + * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSEquivalent (visibility: PUBLIC, simpleName: VLSEquivalent, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSEquivalent, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. + * + *

This workaround is required e.g. to support recursion. + * + */ + private static class LazyHolder { + private final static VLSEquivalent INSTANCE = new VLSEquivalent(); + + /** + * Statically initializes the query specification after the field {@link #INSTANCE} is assigned. + * This initialization order is required to support indirect recursion. + * + *

The static initializer is defined using a helper field to work around limitations of the code generator. + * + */ + private final static Object STATIC_INITIALIZER = ensureInitialized(); + + public static Object ensureInitialized() { + INSTANCE.ensureInitializedInternal(); + return null; + } + } + + private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { + private final static VLSEquivalent.GeneratedPQuery INSTANCE = new GeneratedPQuery(); + + private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSEquivalent")), PParameterDirection.INOUT); + + private final List parameters = Arrays.asList(parameter_term); + + private GeneratedPQuery() { + super(PVisibility.PUBLIC); + } + + @Override + public String getFullyQualifiedName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSEquivalent"; + } + + @Override + public List getParameterNames() { + return Arrays.asList("term"); + } + + @Override + public List getParameters() { + return parameters; + } + + @Override + public Set doGetContainedBodies() { + setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); + Set bodies = new LinkedHashSet<>(); + { + PBody body = new PBody(this); + PVariable var_term = body.getOrCreateVariableByName("term"); + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSEquivalent"))); + body.setSymbolicParameters(Arrays.asList( + new ExportedParameter(body, var_term, parameter_term) + )); + // VLSEquivalent(term) + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSEquivalent"))); + bodies.add(body); + } + return bodies; + } + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSExistentialQuantifier.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSExistentialQuantifier.java new file mode 100644 index 00000000..137e4ca0 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSExistentialQuantifier.java @@ -0,0 +1,533 @@ +/** + * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql + */ +package ca.mcgill.ecse.dslreasoner.vampire.queries; + +import java.util.Arrays; +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.apache.log4j.Logger; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.viatra.query.runtime.api.IPatternMatch; +import org.eclipse.viatra.query.runtime.api.IQuerySpecification; +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; +import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; +import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; +import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; +import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; +import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; +import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; +import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; + +/** + * A pattern-specific query specification that can instantiate Matcher in a type-safe way. + * + *

Original source: + *

+ *         pattern VLSExistentialQuantifier(term: VLSExistentialQuantifier){
+ *         	VLSExistentialQuantifier(term);
+ *         }
+ * 
+ * + * @see Matcher + * @see Match + * + */ +@SuppressWarnings("all") +public final class VLSExistentialQuantifier extends BaseGeneratedEMFQuerySpecification { + /** + * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSExistentialQuantifier pattern, + * to be used in conjunction with {@link Matcher}. + * + *

Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. + * Each instance is a (possibly partial) substitution of pattern parameters, + * usable to represent a match of the pattern in the result of a query, + * or to specify the bound (fixed) input parameters when issuing a query. + * + * @see Matcher + * + */ + public static abstract class Match extends BasePatternMatch { + private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier fTerm; + + private static List parameterNames = makeImmutableList("term"); + + private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) { + this.fTerm = pTerm; + } + + @Override + public Object get(final String parameterName) { + if ("term".equals(parameterName)) return this.fTerm; + return null; + } + + public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier getTerm() { + return this.fTerm; + } + + @Override + public boolean set(final String parameterName, final Object newValue) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + if ("term".equals(parameterName) ) { + this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier) newValue; + return true; + } + return false; + } + + public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + this.fTerm = pTerm; + } + + @Override + public String patternName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSExistentialQuantifier"; + } + + @Override + public List parameterNames() { + return VLSExistentialQuantifier.Match.parameterNames; + } + + @Override + public Object[] toArray() { + return new Object[]{fTerm}; + } + + @Override + public VLSExistentialQuantifier.Match toImmutable() { + return isMutable() ? newMatch(fTerm) : this; + } + + @Override + public String prettyPrint() { + StringBuilder result = new StringBuilder(); + result.append("\"term\"=" + prettyPrintValue(fTerm)); + return result.toString(); + } + + @Override + public int hashCode() { + return Objects.hash(fTerm); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) { + return false; + } + if ((obj instanceof VLSExistentialQuantifier.Match)) { + VLSExistentialQuantifier.Match other = (VLSExistentialQuantifier.Match) obj; + return Objects.equals(fTerm, other.fTerm); + } else { + // this should be infrequent + if (!(obj instanceof IPatternMatch)) { + return false; + } + IPatternMatch otherSig = (IPatternMatch) obj; + return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); + } + } + + @Override + public VLSExistentialQuantifier specification() { + return VLSExistentialQuantifier.instance(); + } + + /** + * Returns an empty, mutable match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @return the empty match. + * + */ + public static VLSExistentialQuantifier.Match newEmptyMatch() { + return new Mutable(null); + } + + /** + * Returns a mutable (partial) match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the new, mutable (partial) match object. + * + */ + public static VLSExistentialQuantifier.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) { + return new Mutable(pTerm); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public static VLSExistentialQuantifier.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) { + return new Immutable(pTerm); + } + + private static final class Mutable extends VLSExistentialQuantifier.Match { + Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return true; + } + } + + private static final class Immutable extends VLSExistentialQuantifier.Match { + Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return false; + } + } + } + + /** + * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSExistentialQuantifier pattern, + * providing pattern-specific query methods. + * + *

Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, + * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. + * + *

Matches of the pattern will be represented as {@link Match}. + * + *

Original source: + *

+   * pattern VLSExistentialQuantifier(term: VLSExistentialQuantifier){
+   * 	VLSExistentialQuantifier(term);
+   * }
+   * 
+ * + * @see Match + * @see VLSExistentialQuantifier + * + */ + public static class Matcher extends BaseMatcher { + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + public static VLSExistentialQuantifier.Matcher on(final ViatraQueryEngine engine) { + // check if matcher already exists + Matcher matcher = engine.getExistingMatcher(querySpecification()); + if (matcher == null) { + matcher = (Matcher)engine.getMatcher(querySpecification()); + } + return matcher; + } + + /** + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * @return an initialized matcher + * @noreference This method is for internal matcher initialization by the framework, do not call it manually. + * + */ + public static VLSExistentialQuantifier.Matcher create() { + return new Matcher(); + } + + private final static int POSITION_TERM = 0; + + private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSExistentialQuantifier.Matcher.class); + + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + private Matcher() { + super(querySpecification()); + } + + /** + * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return matches represented as a Match object. + * + */ + public Collection getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet()); + } + + /** + * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. + *

+ * NOTE: It is important not to modify the source model while the stream is being processed. + * If the match set of the pattern changes during processing, the contents of the stream is undefined. + * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a stream of matches represented as a Match object. + * + */ + public Stream streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}); + } + + /** + * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a match represented as a Match object, or null if no match is found. + * + */ + public Optional getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) { + return rawGetOneArbitraryMatch(new Object[]{pTerm}); + } + + /** + * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, + * under any possible substitution of the unspecified parameters (if any). + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return true if the input is a valid (partial) match of the pattern. + * + */ + public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) { + return rawHasMatch(new Object[]{pTerm}); + } + + /** + * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the number of pattern matches found. + * + */ + public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) { + return rawCountMatches(new Object[]{pTerm}); + } + + /** + * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @param processor the action that will process the selected match. + * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked + * + */ + public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm, final Consumer processor) { + return rawForOneArbitraryMatch(new Object[]{pTerm}, processor); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public VLSExistentialQuantifier.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) { + return VLSExistentialQuantifier.Match.newMatch(pTerm); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + protected Stream rawStreamAllValuesOfterm(final Object[] parameters) { + return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier.class::cast); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Set getAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet()); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Stream streamAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()); + } + + @Override + protected VLSExistentialQuantifier.Match tupleToMatch(final Tuple t) { + try { + return VLSExistentialQuantifier.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier) t.get(POSITION_TERM)); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in tuple not properly typed!",e); + return null; + } + } + + @Override + protected VLSExistentialQuantifier.Match arrayToMatch(final Object[] match) { + try { + return VLSExistentialQuantifier.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + @Override + protected VLSExistentialQuantifier.Match arrayToMatchMutable(final Object[] match) { + try { + return VLSExistentialQuantifier.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + /** + * @return the singleton instance of the query specification of this pattern + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static IQuerySpecification querySpecification() { + return VLSExistentialQuantifier.instance(); + } + } + + private VLSExistentialQuantifier() { + super(GeneratedPQuery.INSTANCE); + } + + /** + * @return the singleton instance of the query specification + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static VLSExistentialQuantifier instance() { + try{ + return LazyHolder.INSTANCE; + } catch (ExceptionInInitializerError err) { + throw processInitializerError(err); + } + } + + @Override + protected VLSExistentialQuantifier.Matcher instantiate(final ViatraQueryEngine engine) { + return VLSExistentialQuantifier.Matcher.on(engine); + } + + @Override + public VLSExistentialQuantifier.Matcher instantiate() { + return VLSExistentialQuantifier.Matcher.create(); + } + + @Override + public VLSExistentialQuantifier.Match newEmptyMatch() { + return VLSExistentialQuantifier.Match.newEmptyMatch(); + } + + @Override + public VLSExistentialQuantifier.Match newMatch(final Object... parameters) { + return VLSExistentialQuantifier.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier) parameters[0]); + } + + /** + * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSExistentialQuantifier (visibility: PUBLIC, simpleName: VLSExistentialQuantifier, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSExistentialQuantifier, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created + * not at the class load time of the outer class, + * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSExistentialQuantifier (visibility: PUBLIC, simpleName: VLSExistentialQuantifier, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSExistentialQuantifier, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. + * + *

This workaround is required e.g. to support recursion. + * + */ + private static class LazyHolder { + private final static VLSExistentialQuantifier INSTANCE = new VLSExistentialQuantifier(); + + /** + * Statically initializes the query specification after the field {@link #INSTANCE} is assigned. + * This initialization order is required to support indirect recursion. + * + *

The static initializer is defined using a helper field to work around limitations of the code generator. + * + */ + private final static Object STATIC_INITIALIZER = ensureInitialized(); + + public static Object ensureInitialized() { + INSTANCE.ensureInitializedInternal(); + return null; + } + } + + private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { + private final static VLSExistentialQuantifier.GeneratedPQuery INSTANCE = new GeneratedPQuery(); + + private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSExistentialQuantifier")), PParameterDirection.INOUT); + + private final List parameters = Arrays.asList(parameter_term); + + private GeneratedPQuery() { + super(PVisibility.PUBLIC); + } + + @Override + public String getFullyQualifiedName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSExistentialQuantifier"; + } + + @Override + public List getParameterNames() { + return Arrays.asList("term"); + } + + @Override + public List getParameters() { + return parameters; + } + + @Override + public Set doGetContainedBodies() { + setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); + Set bodies = new LinkedHashSet<>(); + { + PBody body = new PBody(this); + PVariable var_term = body.getOrCreateVariableByName("term"); + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSExistentialQuantifier"))); + body.setSymbolicParameters(Arrays.asList( + new ExportedParameter(body, var_term, parameter_term) + )); + // VLSExistentialQuantifier(term) + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSExistentialQuantifier"))); + bodies.add(body); + } + return bodies; + } + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFofFormula.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFofFormula.java new file mode 100644 index 00000000..f55f408a --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFofFormula.java @@ -0,0 +1,533 @@ +/** + * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql + */ +package ca.mcgill.ecse.dslreasoner.vampire.queries; + +import java.util.Arrays; +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.apache.log4j.Logger; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.viatra.query.runtime.api.IPatternMatch; +import org.eclipse.viatra.query.runtime.api.IQuerySpecification; +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; +import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; +import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; +import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; +import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; +import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; +import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; +import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; + +/** + * A pattern-specific query specification that can instantiate Matcher in a type-safe way. + * + *

Original source: + *

+ *         pattern VLSFofFormula(term: VLSFofFormula){
+ *         	VLSFofFormula(term);
+ *         }
+ * 
+ * + * @see Matcher + * @see Match + * + */ +@SuppressWarnings("all") +public final class VLSFofFormula extends BaseGeneratedEMFQuerySpecification { + /** + * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFofFormula pattern, + * to be used in conjunction with {@link Matcher}. + * + *

Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. + * Each instance is a (possibly partial) substitution of pattern parameters, + * usable to represent a match of the pattern in the result of a query, + * or to specify the bound (fixed) input parameters when issuing a query. + * + * @see Matcher + * + */ + public static abstract class Match extends BasePatternMatch { + private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula fTerm; + + private static List parameterNames = makeImmutableList("term"); + + private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) { + this.fTerm = pTerm; + } + + @Override + public Object get(final String parameterName) { + if ("term".equals(parameterName)) return this.fTerm; + return null; + } + + public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula getTerm() { + return this.fTerm; + } + + @Override + public boolean set(final String parameterName, final Object newValue) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + if ("term".equals(parameterName) ) { + this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula) newValue; + return true; + } + return false; + } + + public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + this.fTerm = pTerm; + } + + @Override + public String patternName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFofFormula"; + } + + @Override + public List parameterNames() { + return VLSFofFormula.Match.parameterNames; + } + + @Override + public Object[] toArray() { + return new Object[]{fTerm}; + } + + @Override + public VLSFofFormula.Match toImmutable() { + return isMutable() ? newMatch(fTerm) : this; + } + + @Override + public String prettyPrint() { + StringBuilder result = new StringBuilder(); + result.append("\"term\"=" + prettyPrintValue(fTerm)); + return result.toString(); + } + + @Override + public int hashCode() { + return Objects.hash(fTerm); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) { + return false; + } + if ((obj instanceof VLSFofFormula.Match)) { + VLSFofFormula.Match other = (VLSFofFormula.Match) obj; + return Objects.equals(fTerm, other.fTerm); + } else { + // this should be infrequent + if (!(obj instanceof IPatternMatch)) { + return false; + } + IPatternMatch otherSig = (IPatternMatch) obj; + return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); + } + } + + @Override + public VLSFofFormula specification() { + return VLSFofFormula.instance(); + } + + /** + * Returns an empty, mutable match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @return the empty match. + * + */ + public static VLSFofFormula.Match newEmptyMatch() { + return new Mutable(null); + } + + /** + * Returns a mutable (partial) match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the new, mutable (partial) match object. + * + */ + public static VLSFofFormula.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) { + return new Mutable(pTerm); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public static VLSFofFormula.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) { + return new Immutable(pTerm); + } + + private static final class Mutable extends VLSFofFormula.Match { + Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return true; + } + } + + private static final class Immutable extends VLSFofFormula.Match { + Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return false; + } + } + } + + /** + * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFofFormula pattern, + * providing pattern-specific query methods. + * + *

Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, + * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. + * + *

Matches of the pattern will be represented as {@link Match}. + * + *

Original source: + *

+   * pattern VLSFofFormula(term: VLSFofFormula){
+   * 	VLSFofFormula(term);
+   * }
+   * 
+ * + * @see Match + * @see VLSFofFormula + * + */ + public static class Matcher extends BaseMatcher { + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + public static VLSFofFormula.Matcher on(final ViatraQueryEngine engine) { + // check if matcher already exists + Matcher matcher = engine.getExistingMatcher(querySpecification()); + if (matcher == null) { + matcher = (Matcher)engine.getMatcher(querySpecification()); + } + return matcher; + } + + /** + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * @return an initialized matcher + * @noreference This method is for internal matcher initialization by the framework, do not call it manually. + * + */ + public static VLSFofFormula.Matcher create() { + return new Matcher(); + } + + private final static int POSITION_TERM = 0; + + private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSFofFormula.Matcher.class); + + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + private Matcher() { + super(querySpecification()); + } + + /** + * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return matches represented as a Match object. + * + */ + public Collection getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet()); + } + + /** + * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. + *

+ * NOTE: It is important not to modify the source model while the stream is being processed. + * If the match set of the pattern changes during processing, the contents of the stream is undefined. + * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a stream of matches represented as a Match object. + * + */ + public Stream streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}); + } + + /** + * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a match represented as a Match object, or null if no match is found. + * + */ + public Optional getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) { + return rawGetOneArbitraryMatch(new Object[]{pTerm}); + } + + /** + * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, + * under any possible substitution of the unspecified parameters (if any). + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return true if the input is a valid (partial) match of the pattern. + * + */ + public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) { + return rawHasMatch(new Object[]{pTerm}); + } + + /** + * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the number of pattern matches found. + * + */ + public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) { + return rawCountMatches(new Object[]{pTerm}); + } + + /** + * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @param processor the action that will process the selected match. + * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked + * + */ + public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm, final Consumer processor) { + return rawForOneArbitraryMatch(new Object[]{pTerm}, processor); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public VLSFofFormula.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) { + return VLSFofFormula.Match.newMatch(pTerm); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + protected Stream rawStreamAllValuesOfterm(final Object[] parameters) { + return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula.class::cast); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Set getAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet()); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Stream streamAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()); + } + + @Override + protected VLSFofFormula.Match tupleToMatch(final Tuple t) { + try { + return VLSFofFormula.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula) t.get(POSITION_TERM)); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in tuple not properly typed!",e); + return null; + } + } + + @Override + protected VLSFofFormula.Match arrayToMatch(final Object[] match) { + try { + return VLSFofFormula.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + @Override + protected VLSFofFormula.Match arrayToMatchMutable(final Object[] match) { + try { + return VLSFofFormula.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + /** + * @return the singleton instance of the query specification of this pattern + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static IQuerySpecification querySpecification() { + return VLSFofFormula.instance(); + } + } + + private VLSFofFormula() { + super(GeneratedPQuery.INSTANCE); + } + + /** + * @return the singleton instance of the query specification + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static VLSFofFormula instance() { + try{ + return LazyHolder.INSTANCE; + } catch (ExceptionInInitializerError err) { + throw processInitializerError(err); + } + } + + @Override + protected VLSFofFormula.Matcher instantiate(final ViatraQueryEngine engine) { + return VLSFofFormula.Matcher.on(engine); + } + + @Override + public VLSFofFormula.Matcher instantiate() { + return VLSFofFormula.Matcher.create(); + } + + @Override + public VLSFofFormula.Match newEmptyMatch() { + return VLSFofFormula.Match.newEmptyMatch(); + } + + @Override + public VLSFofFormula.Match newMatch(final Object... parameters) { + return VLSFofFormula.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula) parameters[0]); + } + + /** + * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFofFormula (visibility: PUBLIC, simpleName: VLSFofFormula, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFofFormula, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created + * not at the class load time of the outer class, + * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFofFormula (visibility: PUBLIC, simpleName: VLSFofFormula, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFofFormula, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. + * + *

This workaround is required e.g. to support recursion. + * + */ + private static class LazyHolder { + private final static VLSFofFormula INSTANCE = new VLSFofFormula(); + + /** + * Statically initializes the query specification after the field {@link #INSTANCE} is assigned. + * This initialization order is required to support indirect recursion. + * + *

The static initializer is defined using a helper field to work around limitations of the code generator. + * + */ + private final static Object STATIC_INITIALIZER = ensureInitialized(); + + public static Object ensureInitialized() { + INSTANCE.ensureInitializedInternal(); + return null; + } + } + + private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { + private final static VLSFofFormula.GeneratedPQuery INSTANCE = new GeneratedPQuery(); + + private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSFofFormula")), PParameterDirection.INOUT); + + private final List parameters = Arrays.asList(parameter_term); + + private GeneratedPQuery() { + super(PVisibility.PUBLIC); + } + + @Override + public String getFullyQualifiedName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFofFormula"; + } + + @Override + public List getParameterNames() { + return Arrays.asList("term"); + } + + @Override + public List getParameters() { + return parameters; + } + + @Override + public Set doGetContainedBodies() { + setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); + Set bodies = new LinkedHashSet<>(); + { + PBody body = new PBody(this); + PVariable var_term = body.getOrCreateVariableByName("term"); + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSFofFormula"))); + body.setSymbolicParameters(Arrays.asList( + new ExportedParameter(body, var_term, parameter_term) + )); + // VLSFofFormula(term) + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSFofFormula"))); + bodies.add(body); + } + return bodies; + } + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFunction.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFunction.java new file mode 100644 index 00000000..f81a6e1a --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFunction.java @@ -0,0 +1,533 @@ +/** + * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql + */ +package ca.mcgill.ecse.dslreasoner.vampire.queries; + +import java.util.Arrays; +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.apache.log4j.Logger; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.viatra.query.runtime.api.IPatternMatch; +import org.eclipse.viatra.query.runtime.api.IQuerySpecification; +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; +import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; +import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; +import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; +import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; +import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; +import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; +import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; + +/** + * A pattern-specific query specification that can instantiate Matcher in a type-safe way. + * + *

Original source: + *

+ *         pattern VLSFunction(term: VLSFunction){
+ *         	VLSFunction(term);
+ *         }
+ * 
+ * + * @see Matcher + * @see Match + * + */ +@SuppressWarnings("all") +public final class VLSFunction extends BaseGeneratedEMFQuerySpecification { + /** + * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunction pattern, + * to be used in conjunction with {@link Matcher}. + * + *

Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. + * Each instance is a (possibly partial) substitution of pattern parameters, + * usable to represent a match of the pattern in the result of a query, + * or to specify the bound (fixed) input parameters when issuing a query. + * + * @see Matcher + * + */ + public static abstract class Match extends BasePatternMatch { + private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction fTerm; + + private static List parameterNames = makeImmutableList("term"); + + private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) { + this.fTerm = pTerm; + } + + @Override + public Object get(final String parameterName) { + if ("term".equals(parameterName)) return this.fTerm; + return null; + } + + public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction getTerm() { + return this.fTerm; + } + + @Override + public boolean set(final String parameterName, final Object newValue) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + if ("term".equals(parameterName) ) { + this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction) newValue; + return true; + } + return false; + } + + public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + this.fTerm = pTerm; + } + + @Override + public String patternName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunction"; + } + + @Override + public List parameterNames() { + return VLSFunction.Match.parameterNames; + } + + @Override + public Object[] toArray() { + return new Object[]{fTerm}; + } + + @Override + public VLSFunction.Match toImmutable() { + return isMutable() ? newMatch(fTerm) : this; + } + + @Override + public String prettyPrint() { + StringBuilder result = new StringBuilder(); + result.append("\"term\"=" + prettyPrintValue(fTerm)); + return result.toString(); + } + + @Override + public int hashCode() { + return Objects.hash(fTerm); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) { + return false; + } + if ((obj instanceof VLSFunction.Match)) { + VLSFunction.Match other = (VLSFunction.Match) obj; + return Objects.equals(fTerm, other.fTerm); + } else { + // this should be infrequent + if (!(obj instanceof IPatternMatch)) { + return false; + } + IPatternMatch otherSig = (IPatternMatch) obj; + return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); + } + } + + @Override + public VLSFunction specification() { + return VLSFunction.instance(); + } + + /** + * Returns an empty, mutable match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @return the empty match. + * + */ + public static VLSFunction.Match newEmptyMatch() { + return new Mutable(null); + } + + /** + * Returns a mutable (partial) match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the new, mutable (partial) match object. + * + */ + public static VLSFunction.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) { + return new Mutable(pTerm); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public static VLSFunction.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) { + return new Immutable(pTerm); + } + + private static final class Mutable extends VLSFunction.Match { + Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return true; + } + } + + private static final class Immutable extends VLSFunction.Match { + Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return false; + } + } + } + + /** + * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunction pattern, + * providing pattern-specific query methods. + * + *

Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, + * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. + * + *

Matches of the pattern will be represented as {@link Match}. + * + *

Original source: + *

+   * pattern VLSFunction(term: VLSFunction){
+   * 	VLSFunction(term);
+   * }
+   * 
+ * + * @see Match + * @see VLSFunction + * + */ + public static class Matcher extends BaseMatcher { + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + public static VLSFunction.Matcher on(final ViatraQueryEngine engine) { + // check if matcher already exists + Matcher matcher = engine.getExistingMatcher(querySpecification()); + if (matcher == null) { + matcher = (Matcher)engine.getMatcher(querySpecification()); + } + return matcher; + } + + /** + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * @return an initialized matcher + * @noreference This method is for internal matcher initialization by the framework, do not call it manually. + * + */ + public static VLSFunction.Matcher create() { + return new Matcher(); + } + + private final static int POSITION_TERM = 0; + + private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSFunction.Matcher.class); + + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + private Matcher() { + super(querySpecification()); + } + + /** + * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return matches represented as a Match object. + * + */ + public Collection getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet()); + } + + /** + * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. + *

+ * NOTE: It is important not to modify the source model while the stream is being processed. + * If the match set of the pattern changes during processing, the contents of the stream is undefined. + * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a stream of matches represented as a Match object. + * + */ + public Stream streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}); + } + + /** + * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a match represented as a Match object, or null if no match is found. + * + */ + public Optional getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) { + return rawGetOneArbitraryMatch(new Object[]{pTerm}); + } + + /** + * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, + * under any possible substitution of the unspecified parameters (if any). + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return true if the input is a valid (partial) match of the pattern. + * + */ + public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) { + return rawHasMatch(new Object[]{pTerm}); + } + + /** + * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the number of pattern matches found. + * + */ + public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) { + return rawCountMatches(new Object[]{pTerm}); + } + + /** + * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @param processor the action that will process the selected match. + * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked + * + */ + public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm, final Consumer processor) { + return rawForOneArbitraryMatch(new Object[]{pTerm}, processor); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public VLSFunction.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) { + return VLSFunction.Match.newMatch(pTerm); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + protected Stream rawStreamAllValuesOfterm(final Object[] parameters) { + return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction.class::cast); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Set getAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet()); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Stream streamAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()); + } + + @Override + protected VLSFunction.Match tupleToMatch(final Tuple t) { + try { + return VLSFunction.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction) t.get(POSITION_TERM)); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in tuple not properly typed!",e); + return null; + } + } + + @Override + protected VLSFunction.Match arrayToMatch(final Object[] match) { + try { + return VLSFunction.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + @Override + protected VLSFunction.Match arrayToMatchMutable(final Object[] match) { + try { + return VLSFunction.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + /** + * @return the singleton instance of the query specification of this pattern + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static IQuerySpecification querySpecification() { + return VLSFunction.instance(); + } + } + + private VLSFunction() { + super(GeneratedPQuery.INSTANCE); + } + + /** + * @return the singleton instance of the query specification + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static VLSFunction instance() { + try{ + return LazyHolder.INSTANCE; + } catch (ExceptionInInitializerError err) { + throw processInitializerError(err); + } + } + + @Override + protected VLSFunction.Matcher instantiate(final ViatraQueryEngine engine) { + return VLSFunction.Matcher.on(engine); + } + + @Override + public VLSFunction.Matcher instantiate() { + return VLSFunction.Matcher.create(); + } + + @Override + public VLSFunction.Match newEmptyMatch() { + return VLSFunction.Match.newEmptyMatch(); + } + + @Override + public VLSFunction.Match newMatch(final Object... parameters) { + return VLSFunction.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction) parameters[0]); + } + + /** + * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunction (visibility: PUBLIC, simpleName: VLSFunction, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunction, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created + * not at the class load time of the outer class, + * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunction (visibility: PUBLIC, simpleName: VLSFunction, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunction, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. + * + *

This workaround is required e.g. to support recursion. + * + */ + private static class LazyHolder { + private final static VLSFunction INSTANCE = new VLSFunction(); + + /** + * Statically initializes the query specification after the field {@link #INSTANCE} is assigned. + * This initialization order is required to support indirect recursion. + * + *

The static initializer is defined using a helper field to work around limitations of the code generator. + * + */ + private final static Object STATIC_INITIALIZER = ensureInitialized(); + + public static Object ensureInitialized() { + INSTANCE.ensureInitializedInternal(); + return null; + } + } + + private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { + private final static VLSFunction.GeneratedPQuery INSTANCE = new GeneratedPQuery(); + + private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSFunction")), PParameterDirection.INOUT); + + private final List parameters = Arrays.asList(parameter_term); + + private GeneratedPQuery() { + super(PVisibility.PUBLIC); + } + + @Override + public String getFullyQualifiedName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunction"; + } + + @Override + public List getParameterNames() { + return Arrays.asList("term"); + } + + @Override + public List getParameters() { + return parameters; + } + + @Override + public Set doGetContainedBodies() { + setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); + Set bodies = new LinkedHashSet<>(); + { + PBody body = new PBody(this); + PVariable var_term = body.getOrCreateVariableByName("term"); + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSFunction"))); + body.setSymbolicParameters(Arrays.asList( + new ExportedParameter(body, var_term, parameter_term) + )); + // VLSFunction(term) + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSFunction"))); + bodies.add(body); + } + return bodies; + } + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFunctionFof.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFunctionFof.java new file mode 100644 index 00000000..86a3b95c --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFunctionFof.java @@ -0,0 +1,533 @@ +/** + * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql + */ +package ca.mcgill.ecse.dslreasoner.vampire.queries; + +import java.util.Arrays; +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.apache.log4j.Logger; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.viatra.query.runtime.api.IPatternMatch; +import org.eclipse.viatra.query.runtime.api.IQuerySpecification; +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; +import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; +import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; +import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; +import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; +import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; +import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; +import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; + +/** + * A pattern-specific query specification that can instantiate Matcher in a type-safe way. + * + *

Original source: + *

+ *         pattern VLSFunctionFof(term: VLSFunctionFof){
+ *         	VLSFunctionFof(term);
+ *         }
+ * 
+ * + * @see Matcher + * @see Match + * + */ +@SuppressWarnings("all") +public final class VLSFunctionFof extends BaseGeneratedEMFQuerySpecification { + /** + * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunctionFof pattern, + * to be used in conjunction with {@link Matcher}. + * + *

Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. + * Each instance is a (possibly partial) substitution of pattern parameters, + * usable to represent a match of the pattern in the result of a query, + * or to specify the bound (fixed) input parameters when issuing a query. + * + * @see Matcher + * + */ + public static abstract class Match extends BasePatternMatch { + private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof fTerm; + + private static List parameterNames = makeImmutableList("term"); + + private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) { + this.fTerm = pTerm; + } + + @Override + public Object get(final String parameterName) { + if ("term".equals(parameterName)) return this.fTerm; + return null; + } + + public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof getTerm() { + return this.fTerm; + } + + @Override + public boolean set(final String parameterName, final Object newValue) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + if ("term".equals(parameterName) ) { + this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof) newValue; + return true; + } + return false; + } + + public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + this.fTerm = pTerm; + } + + @Override + public String patternName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunctionFof"; + } + + @Override + public List parameterNames() { + return VLSFunctionFof.Match.parameterNames; + } + + @Override + public Object[] toArray() { + return new Object[]{fTerm}; + } + + @Override + public VLSFunctionFof.Match toImmutable() { + return isMutable() ? newMatch(fTerm) : this; + } + + @Override + public String prettyPrint() { + StringBuilder result = new StringBuilder(); + result.append("\"term\"=" + prettyPrintValue(fTerm)); + return result.toString(); + } + + @Override + public int hashCode() { + return Objects.hash(fTerm); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) { + return false; + } + if ((obj instanceof VLSFunctionFof.Match)) { + VLSFunctionFof.Match other = (VLSFunctionFof.Match) obj; + return Objects.equals(fTerm, other.fTerm); + } else { + // this should be infrequent + if (!(obj instanceof IPatternMatch)) { + return false; + } + IPatternMatch otherSig = (IPatternMatch) obj; + return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); + } + } + + @Override + public VLSFunctionFof specification() { + return VLSFunctionFof.instance(); + } + + /** + * Returns an empty, mutable match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @return the empty match. + * + */ + public static VLSFunctionFof.Match newEmptyMatch() { + return new Mutable(null); + } + + /** + * Returns a mutable (partial) match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the new, mutable (partial) match object. + * + */ + public static VLSFunctionFof.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) { + return new Mutable(pTerm); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public static VLSFunctionFof.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) { + return new Immutable(pTerm); + } + + private static final class Mutable extends VLSFunctionFof.Match { + Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return true; + } + } + + private static final class Immutable extends VLSFunctionFof.Match { + Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return false; + } + } + } + + /** + * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunctionFof pattern, + * providing pattern-specific query methods. + * + *

Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, + * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. + * + *

Matches of the pattern will be represented as {@link Match}. + * + *

Original source: + *

+   * pattern VLSFunctionFof(term: VLSFunctionFof){
+   * 	VLSFunctionFof(term);
+   * }
+   * 
+ * + * @see Match + * @see VLSFunctionFof + * + */ + public static class Matcher extends BaseMatcher { + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + public static VLSFunctionFof.Matcher on(final ViatraQueryEngine engine) { + // check if matcher already exists + Matcher matcher = engine.getExistingMatcher(querySpecification()); + if (matcher == null) { + matcher = (Matcher)engine.getMatcher(querySpecification()); + } + return matcher; + } + + /** + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * @return an initialized matcher + * @noreference This method is for internal matcher initialization by the framework, do not call it manually. + * + */ + public static VLSFunctionFof.Matcher create() { + return new Matcher(); + } + + private final static int POSITION_TERM = 0; + + private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSFunctionFof.Matcher.class); + + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + private Matcher() { + super(querySpecification()); + } + + /** + * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return matches represented as a Match object. + * + */ + public Collection getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet()); + } + + /** + * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. + *

+ * NOTE: It is important not to modify the source model while the stream is being processed. + * If the match set of the pattern changes during processing, the contents of the stream is undefined. + * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a stream of matches represented as a Match object. + * + */ + public Stream streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}); + } + + /** + * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a match represented as a Match object, or null if no match is found. + * + */ + public Optional getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) { + return rawGetOneArbitraryMatch(new Object[]{pTerm}); + } + + /** + * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, + * under any possible substitution of the unspecified parameters (if any). + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return true if the input is a valid (partial) match of the pattern. + * + */ + public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) { + return rawHasMatch(new Object[]{pTerm}); + } + + /** + * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the number of pattern matches found. + * + */ + public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) { + return rawCountMatches(new Object[]{pTerm}); + } + + /** + * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @param processor the action that will process the selected match. + * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked + * + */ + public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm, final Consumer processor) { + return rawForOneArbitraryMatch(new Object[]{pTerm}, processor); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public VLSFunctionFof.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) { + return VLSFunctionFof.Match.newMatch(pTerm); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + protected Stream rawStreamAllValuesOfterm(final Object[] parameters) { + return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof.class::cast); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Set getAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet()); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Stream streamAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()); + } + + @Override + protected VLSFunctionFof.Match tupleToMatch(final Tuple t) { + try { + return VLSFunctionFof.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof) t.get(POSITION_TERM)); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in tuple not properly typed!",e); + return null; + } + } + + @Override + protected VLSFunctionFof.Match arrayToMatch(final Object[] match) { + try { + return VLSFunctionFof.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + @Override + protected VLSFunctionFof.Match arrayToMatchMutable(final Object[] match) { + try { + return VLSFunctionFof.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + /** + * @return the singleton instance of the query specification of this pattern + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static IQuerySpecification querySpecification() { + return VLSFunctionFof.instance(); + } + } + + private VLSFunctionFof() { + super(GeneratedPQuery.INSTANCE); + } + + /** + * @return the singleton instance of the query specification + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static VLSFunctionFof instance() { + try{ + return LazyHolder.INSTANCE; + } catch (ExceptionInInitializerError err) { + throw processInitializerError(err); + } + } + + @Override + protected VLSFunctionFof.Matcher instantiate(final ViatraQueryEngine engine) { + return VLSFunctionFof.Matcher.on(engine); + } + + @Override + public VLSFunctionFof.Matcher instantiate() { + return VLSFunctionFof.Matcher.create(); + } + + @Override + public VLSFunctionFof.Match newEmptyMatch() { + return VLSFunctionFof.Match.newEmptyMatch(); + } + + @Override + public VLSFunctionFof.Match newMatch(final Object... parameters) { + return VLSFunctionFof.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof) parameters[0]); + } + + /** + * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunctionFof (visibility: PUBLIC, simpleName: VLSFunctionFof, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunctionFof, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created + * not at the class load time of the outer class, + * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunctionFof (visibility: PUBLIC, simpleName: VLSFunctionFof, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunctionFof, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. + * + *

This workaround is required e.g. to support recursion. + * + */ + private static class LazyHolder { + private final static VLSFunctionFof INSTANCE = new VLSFunctionFof(); + + /** + * Statically initializes the query specification after the field {@link #INSTANCE} is assigned. + * This initialization order is required to support indirect recursion. + * + *

The static initializer is defined using a helper field to work around limitations of the code generator. + * + */ + private final static Object STATIC_INITIALIZER = ensureInitialized(); + + public static Object ensureInitialized() { + INSTANCE.ensureInitializedInternal(); + return null; + } + } + + private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { + private final static VLSFunctionFof.GeneratedPQuery INSTANCE = new GeneratedPQuery(); + + private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSFunctionFof")), PParameterDirection.INOUT); + + private final List parameters = Arrays.asList(parameter_term); + + private GeneratedPQuery() { + super(PVisibility.PUBLIC); + } + + @Override + public String getFullyQualifiedName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunctionFof"; + } + + @Override + public List getParameterNames() { + return Arrays.asList("term"); + } + + @Override + public List getParameters() { + return parameters; + } + + @Override + public Set doGetContainedBodies() { + setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); + Set bodies = new LinkedHashSet<>(); + { + PBody body = new PBody(this); + PVariable var_term = body.getOrCreateVariableByName("term"); + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSFunctionFof"))); + body.setSymbolicParameters(Arrays.asList( + new ExportedParameter(body, var_term, parameter_term) + )); + // VLSFunctionFof(term) + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSFunctionFof"))); + bodies.add(body); + } + return bodies; + } + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSInequality.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSInequality.java new file mode 100644 index 00000000..0dd35ed9 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSInequality.java @@ -0,0 +1,533 @@ +/** + * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql + */ +package ca.mcgill.ecse.dslreasoner.vampire.queries; + +import java.util.Arrays; +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.apache.log4j.Logger; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.viatra.query.runtime.api.IPatternMatch; +import org.eclipse.viatra.query.runtime.api.IQuerySpecification; +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; +import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; +import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; +import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; +import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; +import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; +import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; +import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; + +/** + * A pattern-specific query specification that can instantiate Matcher in a type-safe way. + * + *

Original source: + *

+ *         pattern VLSInequality(term: VLSInequality){
+ *         	VLSInequality(term);
+ *         }
+ * 
+ * + * @see Matcher + * @see Match + * + */ +@SuppressWarnings("all") +public final class VLSInequality extends BaseGeneratedEMFQuerySpecification { + /** + * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSInequality pattern, + * to be used in conjunction with {@link Matcher}. + * + *

Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. + * Each instance is a (possibly partial) substitution of pattern parameters, + * usable to represent a match of the pattern in the result of a query, + * or to specify the bound (fixed) input parameters when issuing a query. + * + * @see Matcher + * + */ + public static abstract class Match extends BasePatternMatch { + private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality fTerm; + + private static List parameterNames = makeImmutableList("term"); + + private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) { + this.fTerm = pTerm; + } + + @Override + public Object get(final String parameterName) { + if ("term".equals(parameterName)) return this.fTerm; + return null; + } + + public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality getTerm() { + return this.fTerm; + } + + @Override + public boolean set(final String parameterName, final Object newValue) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + if ("term".equals(parameterName) ) { + this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality) newValue; + return true; + } + return false; + } + + public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + this.fTerm = pTerm; + } + + @Override + public String patternName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSInequality"; + } + + @Override + public List parameterNames() { + return VLSInequality.Match.parameterNames; + } + + @Override + public Object[] toArray() { + return new Object[]{fTerm}; + } + + @Override + public VLSInequality.Match toImmutable() { + return isMutable() ? newMatch(fTerm) : this; + } + + @Override + public String prettyPrint() { + StringBuilder result = new StringBuilder(); + result.append("\"term\"=" + prettyPrintValue(fTerm)); + return result.toString(); + } + + @Override + public int hashCode() { + return Objects.hash(fTerm); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) { + return false; + } + if ((obj instanceof VLSInequality.Match)) { + VLSInequality.Match other = (VLSInequality.Match) obj; + return Objects.equals(fTerm, other.fTerm); + } else { + // this should be infrequent + if (!(obj instanceof IPatternMatch)) { + return false; + } + IPatternMatch otherSig = (IPatternMatch) obj; + return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); + } + } + + @Override + public VLSInequality specification() { + return VLSInequality.instance(); + } + + /** + * Returns an empty, mutable match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @return the empty match. + * + */ + public static VLSInequality.Match newEmptyMatch() { + return new Mutable(null); + } + + /** + * Returns a mutable (partial) match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the new, mutable (partial) match object. + * + */ + public static VLSInequality.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) { + return new Mutable(pTerm); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public static VLSInequality.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) { + return new Immutable(pTerm); + } + + private static final class Mutable extends VLSInequality.Match { + Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return true; + } + } + + private static final class Immutable extends VLSInequality.Match { + Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return false; + } + } + } + + /** + * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSInequality pattern, + * providing pattern-specific query methods. + * + *

Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, + * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. + * + *

Matches of the pattern will be represented as {@link Match}. + * + *

Original source: + *

+   * pattern VLSInequality(term: VLSInequality){
+   * 	VLSInequality(term);
+   * }
+   * 
+ * + * @see Match + * @see VLSInequality + * + */ + public static class Matcher extends BaseMatcher { + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + public static VLSInequality.Matcher on(final ViatraQueryEngine engine) { + // check if matcher already exists + Matcher matcher = engine.getExistingMatcher(querySpecification()); + if (matcher == null) { + matcher = (Matcher)engine.getMatcher(querySpecification()); + } + return matcher; + } + + /** + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * @return an initialized matcher + * @noreference This method is for internal matcher initialization by the framework, do not call it manually. + * + */ + public static VLSInequality.Matcher create() { + return new Matcher(); + } + + private final static int POSITION_TERM = 0; + + private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSInequality.Matcher.class); + + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + private Matcher() { + super(querySpecification()); + } + + /** + * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return matches represented as a Match object. + * + */ + public Collection getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet()); + } + + /** + * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. + *

+ * NOTE: It is important not to modify the source model while the stream is being processed. + * If the match set of the pattern changes during processing, the contents of the stream is undefined. + * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a stream of matches represented as a Match object. + * + */ + public Stream streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}); + } + + /** + * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a match represented as a Match object, or null if no match is found. + * + */ + public Optional getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) { + return rawGetOneArbitraryMatch(new Object[]{pTerm}); + } + + /** + * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, + * under any possible substitution of the unspecified parameters (if any). + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return true if the input is a valid (partial) match of the pattern. + * + */ + public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) { + return rawHasMatch(new Object[]{pTerm}); + } + + /** + * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the number of pattern matches found. + * + */ + public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) { + return rawCountMatches(new Object[]{pTerm}); + } + + /** + * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @param processor the action that will process the selected match. + * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked + * + */ + public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm, final Consumer processor) { + return rawForOneArbitraryMatch(new Object[]{pTerm}, processor); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public VLSInequality.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) { + return VLSInequality.Match.newMatch(pTerm); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + protected Stream rawStreamAllValuesOfterm(final Object[] parameters) { + return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality.class::cast); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Set getAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet()); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Stream streamAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()); + } + + @Override + protected VLSInequality.Match tupleToMatch(final Tuple t) { + try { + return VLSInequality.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality) t.get(POSITION_TERM)); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in tuple not properly typed!",e); + return null; + } + } + + @Override + protected VLSInequality.Match arrayToMatch(final Object[] match) { + try { + return VLSInequality.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + @Override + protected VLSInequality.Match arrayToMatchMutable(final Object[] match) { + try { + return VLSInequality.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + /** + * @return the singleton instance of the query specification of this pattern + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static IQuerySpecification querySpecification() { + return VLSInequality.instance(); + } + } + + private VLSInequality() { + super(GeneratedPQuery.INSTANCE); + } + + /** + * @return the singleton instance of the query specification + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static VLSInequality instance() { + try{ + return LazyHolder.INSTANCE; + } catch (ExceptionInInitializerError err) { + throw processInitializerError(err); + } + } + + @Override + protected VLSInequality.Matcher instantiate(final ViatraQueryEngine engine) { + return VLSInequality.Matcher.on(engine); + } + + @Override + public VLSInequality.Matcher instantiate() { + return VLSInequality.Matcher.create(); + } + + @Override + public VLSInequality.Match newEmptyMatch() { + return VLSInequality.Match.newEmptyMatch(); + } + + @Override + public VLSInequality.Match newMatch(final Object... parameters) { + return VLSInequality.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality) parameters[0]); + } + + /** + * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSInequality (visibility: PUBLIC, simpleName: VLSInequality, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSInequality, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created + * not at the class load time of the outer class, + * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSInequality (visibility: PUBLIC, simpleName: VLSInequality, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSInequality, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. + * + *

This workaround is required e.g. to support recursion. + * + */ + private static class LazyHolder { + private final static VLSInequality INSTANCE = new VLSInequality(); + + /** + * Statically initializes the query specification after the field {@link #INSTANCE} is assigned. + * This initialization order is required to support indirect recursion. + * + *

The static initializer is defined using a helper field to work around limitations of the code generator. + * + */ + private final static Object STATIC_INITIALIZER = ensureInitialized(); + + public static Object ensureInitialized() { + INSTANCE.ensureInitializedInternal(); + return null; + } + } + + private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { + private final static VLSInequality.GeneratedPQuery INSTANCE = new GeneratedPQuery(); + + private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSInequality")), PParameterDirection.INOUT); + + private final List parameters = Arrays.asList(parameter_term); + + private GeneratedPQuery() { + super(PVisibility.PUBLIC); + } + + @Override + public String getFullyQualifiedName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSInequality"; + } + + @Override + public List getParameterNames() { + return Arrays.asList("term"); + } + + @Override + public List getParameters() { + return parameters; + } + + @Override + public Set doGetContainedBodies() { + setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); + Set bodies = new LinkedHashSet<>(); + { + PBody body = new PBody(this); + PVariable var_term = body.getOrCreateVariableByName("term"); + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSInequality"))); + body.setSymbolicParameters(Arrays.asList( + new ExportedParameter(body, var_term, parameter_term) + )); + // VLSInequality(term) + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSInequality"))); + bodies.add(body); + } + return bodies; + } + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSOr.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSOr.java new file mode 100644 index 00000000..0d8e0648 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSOr.java @@ -0,0 +1,535 @@ +/** + * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql + */ +package ca.mcgill.ecse.dslreasoner.vampire.queries; + +import java.util.Arrays; +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.apache.log4j.Logger; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.viatra.query.runtime.api.IPatternMatch; +import org.eclipse.viatra.query.runtime.api.IQuerySpecification; +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; +import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; +import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; +import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; +import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; +import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; +import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; +import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; + +/** + * A pattern-specific query specification that can instantiate Matcher in a type-safe way. + * + *

Original source: + *

+ *         //VLSFormula
+ *         pattern VLSOr(term: VLSOr){
+ *         	VLSOr(term);
+ *         }
+ * 
+ * + * @see Matcher + * @see Match + * + */ +@SuppressWarnings("all") +public final class VLSOr extends BaseGeneratedEMFQuerySpecification { + /** + * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSOr pattern, + * to be used in conjunction with {@link Matcher}. + * + *

Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. + * Each instance is a (possibly partial) substitution of pattern parameters, + * usable to represent a match of the pattern in the result of a query, + * or to specify the bound (fixed) input parameters when issuing a query. + * + * @see Matcher + * + */ + public static abstract class Match extends BasePatternMatch { + private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr fTerm; + + private static List parameterNames = makeImmutableList("term"); + + private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) { + this.fTerm = pTerm; + } + + @Override + public Object get(final String parameterName) { + if ("term".equals(parameterName)) return this.fTerm; + return null; + } + + public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr getTerm() { + return this.fTerm; + } + + @Override + public boolean set(final String parameterName, final Object newValue) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + if ("term".equals(parameterName) ) { + this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr) newValue; + return true; + } + return false; + } + + public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + this.fTerm = pTerm; + } + + @Override + public String patternName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSOr"; + } + + @Override + public List parameterNames() { + return VLSOr.Match.parameterNames; + } + + @Override + public Object[] toArray() { + return new Object[]{fTerm}; + } + + @Override + public VLSOr.Match toImmutable() { + return isMutable() ? newMatch(fTerm) : this; + } + + @Override + public String prettyPrint() { + StringBuilder result = new StringBuilder(); + result.append("\"term\"=" + prettyPrintValue(fTerm)); + return result.toString(); + } + + @Override + public int hashCode() { + return Objects.hash(fTerm); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) { + return false; + } + if ((obj instanceof VLSOr.Match)) { + VLSOr.Match other = (VLSOr.Match) obj; + return Objects.equals(fTerm, other.fTerm); + } else { + // this should be infrequent + if (!(obj instanceof IPatternMatch)) { + return false; + } + IPatternMatch otherSig = (IPatternMatch) obj; + return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); + } + } + + @Override + public VLSOr specification() { + return VLSOr.instance(); + } + + /** + * Returns an empty, mutable match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @return the empty match. + * + */ + public static VLSOr.Match newEmptyMatch() { + return new Mutable(null); + } + + /** + * Returns a mutable (partial) match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the new, mutable (partial) match object. + * + */ + public static VLSOr.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) { + return new Mutable(pTerm); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public static VLSOr.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) { + return new Immutable(pTerm); + } + + private static final class Mutable extends VLSOr.Match { + Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return true; + } + } + + private static final class Immutable extends VLSOr.Match { + Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return false; + } + } + } + + /** + * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSOr pattern, + * providing pattern-specific query methods. + * + *

Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, + * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. + * + *

Matches of the pattern will be represented as {@link Match}. + * + *

Original source: + *

+   * //VLSFormula
+   * pattern VLSOr(term: VLSOr){
+   * 	VLSOr(term);
+   * }
+   * 
+ * + * @see Match + * @see VLSOr + * + */ + public static class Matcher extends BaseMatcher { + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + public static VLSOr.Matcher on(final ViatraQueryEngine engine) { + // check if matcher already exists + Matcher matcher = engine.getExistingMatcher(querySpecification()); + if (matcher == null) { + matcher = (Matcher)engine.getMatcher(querySpecification()); + } + return matcher; + } + + /** + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * @return an initialized matcher + * @noreference This method is for internal matcher initialization by the framework, do not call it manually. + * + */ + public static VLSOr.Matcher create() { + return new Matcher(); + } + + private final static int POSITION_TERM = 0; + + private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSOr.Matcher.class); + + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + private Matcher() { + super(querySpecification()); + } + + /** + * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return matches represented as a Match object. + * + */ + public Collection getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet()); + } + + /** + * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. + *

+ * NOTE: It is important not to modify the source model while the stream is being processed. + * If the match set of the pattern changes during processing, the contents of the stream is undefined. + * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a stream of matches represented as a Match object. + * + */ + public Stream streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}); + } + + /** + * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a match represented as a Match object, or null if no match is found. + * + */ + public Optional getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) { + return rawGetOneArbitraryMatch(new Object[]{pTerm}); + } + + /** + * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, + * under any possible substitution of the unspecified parameters (if any). + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return true if the input is a valid (partial) match of the pattern. + * + */ + public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) { + return rawHasMatch(new Object[]{pTerm}); + } + + /** + * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the number of pattern matches found. + * + */ + public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) { + return rawCountMatches(new Object[]{pTerm}); + } + + /** + * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @param processor the action that will process the selected match. + * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked + * + */ + public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm, final Consumer processor) { + return rawForOneArbitraryMatch(new Object[]{pTerm}, processor); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public VLSOr.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) { + return VLSOr.Match.newMatch(pTerm); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + protected Stream rawStreamAllValuesOfterm(final Object[] parameters) { + return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr.class::cast); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Set getAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet()); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Stream streamAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()); + } + + @Override + protected VLSOr.Match tupleToMatch(final Tuple t) { + try { + return VLSOr.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr) t.get(POSITION_TERM)); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in tuple not properly typed!",e); + return null; + } + } + + @Override + protected VLSOr.Match arrayToMatch(final Object[] match) { + try { + return VLSOr.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + @Override + protected VLSOr.Match arrayToMatchMutable(final Object[] match) { + try { + return VLSOr.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + /** + * @return the singleton instance of the query specification of this pattern + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static IQuerySpecification querySpecification() { + return VLSOr.instance(); + } + } + + private VLSOr() { + super(GeneratedPQuery.INSTANCE); + } + + /** + * @return the singleton instance of the query specification + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static VLSOr instance() { + try{ + return LazyHolder.INSTANCE; + } catch (ExceptionInInitializerError err) { + throw processInitializerError(err); + } + } + + @Override + protected VLSOr.Matcher instantiate(final ViatraQueryEngine engine) { + return VLSOr.Matcher.on(engine); + } + + @Override + public VLSOr.Matcher instantiate() { + return VLSOr.Matcher.create(); + } + + @Override + public VLSOr.Match newEmptyMatch() { + return VLSOr.Match.newEmptyMatch(); + } + + @Override + public VLSOr.Match newMatch(final Object... parameters) { + return VLSOr.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr) parameters[0]); + } + + /** + * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSOr (visibility: PUBLIC, simpleName: VLSOr, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSOr, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created + * not at the class load time of the outer class, + * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSOr (visibility: PUBLIC, simpleName: VLSOr, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSOr, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. + * + *

This workaround is required e.g. to support recursion. + * + */ + private static class LazyHolder { + private final static VLSOr INSTANCE = new VLSOr(); + + /** + * Statically initializes the query specification after the field {@link #INSTANCE} is assigned. + * This initialization order is required to support indirect recursion. + * + *

The static initializer is defined using a helper field to work around limitations of the code generator. + * + */ + private final static Object STATIC_INITIALIZER = ensureInitialized(); + + public static Object ensureInitialized() { + INSTANCE.ensureInitializedInternal(); + return null; + } + } + + private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { + private final static VLSOr.GeneratedPQuery INSTANCE = new GeneratedPQuery(); + + private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSOr")), PParameterDirection.INOUT); + + private final List parameters = Arrays.asList(parameter_term); + + private GeneratedPQuery() { + super(PVisibility.PUBLIC); + } + + @Override + public String getFullyQualifiedName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSOr"; + } + + @Override + public List getParameterNames() { + return Arrays.asList("term"); + } + + @Override + public List getParameters() { + return parameters; + } + + @Override + public Set doGetContainedBodies() { + setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); + Set bodies = new LinkedHashSet<>(); + { + PBody body = new PBody(this); + PVariable var_term = body.getOrCreateVariableByName("term"); + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSOr"))); + body.setSymbolicParameters(Arrays.asList( + new ExportedParameter(body, var_term, parameter_term) + )); + // VLSOr(term) + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSOr"))); + bodies.add(body); + } + return bodies; + } + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSUnaryNegation.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSUnaryNegation.java new file mode 100644 index 00000000..b6290aab --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSUnaryNegation.java @@ -0,0 +1,533 @@ +/** + * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql + */ +package ca.mcgill.ecse.dslreasoner.vampire.queries; + +import java.util.Arrays; +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.apache.log4j.Logger; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.viatra.query.runtime.api.IPatternMatch; +import org.eclipse.viatra.query.runtime.api.IQuerySpecification; +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; +import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; +import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; +import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; +import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; +import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; +import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; +import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; + +/** + * A pattern-specific query specification that can instantiate Matcher in a type-safe way. + * + *

Original source: + *

+ *         pattern VLSUnaryNegation(term: VLSUnaryNegation){
+ *         	VLSUnaryNegation(term);
+ *         }
+ * 
+ * + * @see Matcher + * @see Match + * + */ +@SuppressWarnings("all") +public final class VLSUnaryNegation extends BaseGeneratedEMFQuerySpecification { + /** + * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUnaryNegation pattern, + * to be used in conjunction with {@link Matcher}. + * + *

Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. + * Each instance is a (possibly partial) substitution of pattern parameters, + * usable to represent a match of the pattern in the result of a query, + * or to specify the bound (fixed) input parameters when issuing a query. + * + * @see Matcher + * + */ + public static abstract class Match extends BasePatternMatch { + private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation fTerm; + + private static List parameterNames = makeImmutableList("term"); + + private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) { + this.fTerm = pTerm; + } + + @Override + public Object get(final String parameterName) { + if ("term".equals(parameterName)) return this.fTerm; + return null; + } + + public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation getTerm() { + return this.fTerm; + } + + @Override + public boolean set(final String parameterName, final Object newValue) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + if ("term".equals(parameterName) ) { + this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation) newValue; + return true; + } + return false; + } + + public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + this.fTerm = pTerm; + } + + @Override + public String patternName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUnaryNegation"; + } + + @Override + public List parameterNames() { + return VLSUnaryNegation.Match.parameterNames; + } + + @Override + public Object[] toArray() { + return new Object[]{fTerm}; + } + + @Override + public VLSUnaryNegation.Match toImmutable() { + return isMutable() ? newMatch(fTerm) : this; + } + + @Override + public String prettyPrint() { + StringBuilder result = new StringBuilder(); + result.append("\"term\"=" + prettyPrintValue(fTerm)); + return result.toString(); + } + + @Override + public int hashCode() { + return Objects.hash(fTerm); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) { + return false; + } + if ((obj instanceof VLSUnaryNegation.Match)) { + VLSUnaryNegation.Match other = (VLSUnaryNegation.Match) obj; + return Objects.equals(fTerm, other.fTerm); + } else { + // this should be infrequent + if (!(obj instanceof IPatternMatch)) { + return false; + } + IPatternMatch otherSig = (IPatternMatch) obj; + return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); + } + } + + @Override + public VLSUnaryNegation specification() { + return VLSUnaryNegation.instance(); + } + + /** + * Returns an empty, mutable match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @return the empty match. + * + */ + public static VLSUnaryNegation.Match newEmptyMatch() { + return new Mutable(null); + } + + /** + * Returns a mutable (partial) match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the new, mutable (partial) match object. + * + */ + public static VLSUnaryNegation.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) { + return new Mutable(pTerm); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public static VLSUnaryNegation.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) { + return new Immutable(pTerm); + } + + private static final class Mutable extends VLSUnaryNegation.Match { + Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return true; + } + } + + private static final class Immutable extends VLSUnaryNegation.Match { + Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return false; + } + } + } + + /** + * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUnaryNegation pattern, + * providing pattern-specific query methods. + * + *

Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, + * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. + * + *

Matches of the pattern will be represented as {@link Match}. + * + *

Original source: + *

+   * pattern VLSUnaryNegation(term: VLSUnaryNegation){
+   * 	VLSUnaryNegation(term);
+   * }
+   * 
+ * + * @see Match + * @see VLSUnaryNegation + * + */ + public static class Matcher extends BaseMatcher { + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + public static VLSUnaryNegation.Matcher on(final ViatraQueryEngine engine) { + // check if matcher already exists + Matcher matcher = engine.getExistingMatcher(querySpecification()); + if (matcher == null) { + matcher = (Matcher)engine.getMatcher(querySpecification()); + } + return matcher; + } + + /** + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * @return an initialized matcher + * @noreference This method is for internal matcher initialization by the framework, do not call it manually. + * + */ + public static VLSUnaryNegation.Matcher create() { + return new Matcher(); + } + + private final static int POSITION_TERM = 0; + + private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSUnaryNegation.Matcher.class); + + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + private Matcher() { + super(querySpecification()); + } + + /** + * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return matches represented as a Match object. + * + */ + public Collection getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet()); + } + + /** + * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. + *

+ * NOTE: It is important not to modify the source model while the stream is being processed. + * If the match set of the pattern changes during processing, the contents of the stream is undefined. + * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a stream of matches represented as a Match object. + * + */ + public Stream streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}); + } + + /** + * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a match represented as a Match object, or null if no match is found. + * + */ + public Optional getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) { + return rawGetOneArbitraryMatch(new Object[]{pTerm}); + } + + /** + * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, + * under any possible substitution of the unspecified parameters (if any). + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return true if the input is a valid (partial) match of the pattern. + * + */ + public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) { + return rawHasMatch(new Object[]{pTerm}); + } + + /** + * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the number of pattern matches found. + * + */ + public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) { + return rawCountMatches(new Object[]{pTerm}); + } + + /** + * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @param processor the action that will process the selected match. + * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked + * + */ + public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm, final Consumer processor) { + return rawForOneArbitraryMatch(new Object[]{pTerm}, processor); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public VLSUnaryNegation.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) { + return VLSUnaryNegation.Match.newMatch(pTerm); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + protected Stream rawStreamAllValuesOfterm(final Object[] parameters) { + return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation.class::cast); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Set getAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet()); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Stream streamAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()); + } + + @Override + protected VLSUnaryNegation.Match tupleToMatch(final Tuple t) { + try { + return VLSUnaryNegation.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation) t.get(POSITION_TERM)); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in tuple not properly typed!",e); + return null; + } + } + + @Override + protected VLSUnaryNegation.Match arrayToMatch(final Object[] match) { + try { + return VLSUnaryNegation.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + @Override + protected VLSUnaryNegation.Match arrayToMatchMutable(final Object[] match) { + try { + return VLSUnaryNegation.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + /** + * @return the singleton instance of the query specification of this pattern + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static IQuerySpecification querySpecification() { + return VLSUnaryNegation.instance(); + } + } + + private VLSUnaryNegation() { + super(GeneratedPQuery.INSTANCE); + } + + /** + * @return the singleton instance of the query specification + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static VLSUnaryNegation instance() { + try{ + return LazyHolder.INSTANCE; + } catch (ExceptionInInitializerError err) { + throw processInitializerError(err); + } + } + + @Override + protected VLSUnaryNegation.Matcher instantiate(final ViatraQueryEngine engine) { + return VLSUnaryNegation.Matcher.on(engine); + } + + @Override + public VLSUnaryNegation.Matcher instantiate() { + return VLSUnaryNegation.Matcher.create(); + } + + @Override + public VLSUnaryNegation.Match newEmptyMatch() { + return VLSUnaryNegation.Match.newEmptyMatch(); + } + + @Override + public VLSUnaryNegation.Match newMatch(final Object... parameters) { + return VLSUnaryNegation.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation) parameters[0]); + } + + /** + * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUnaryNegation (visibility: PUBLIC, simpleName: VLSUnaryNegation, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUnaryNegation, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created + * not at the class load time of the outer class, + * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUnaryNegation (visibility: PUBLIC, simpleName: VLSUnaryNegation, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUnaryNegation, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. + * + *

This workaround is required e.g. to support recursion. + * + */ + private static class LazyHolder { + private final static VLSUnaryNegation INSTANCE = new VLSUnaryNegation(); + + /** + * Statically initializes the query specification after the field {@link #INSTANCE} is assigned. + * This initialization order is required to support indirect recursion. + * + *

The static initializer is defined using a helper field to work around limitations of the code generator. + * + */ + private final static Object STATIC_INITIALIZER = ensureInitialized(); + + public static Object ensureInitialized() { + INSTANCE.ensureInitializedInternal(); + return null; + } + } + + private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { + private final static VLSUnaryNegation.GeneratedPQuery INSTANCE = new GeneratedPQuery(); + + private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSUnaryNegation")), PParameterDirection.INOUT); + + private final List parameters = Arrays.asList(parameter_term); + + private GeneratedPQuery() { + super(PVisibility.PUBLIC); + } + + @Override + public String getFullyQualifiedName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUnaryNegation"; + } + + @Override + public List getParameterNames() { + return Arrays.asList("term"); + } + + @Override + public List getParameters() { + return parameters; + } + + @Override + public Set doGetContainedBodies() { + setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); + Set bodies = new LinkedHashSet<>(); + { + PBody body = new PBody(this); + PVariable var_term = body.getOrCreateVariableByName("term"); + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSUnaryNegation"))); + body.setSymbolicParameters(Arrays.asList( + new ExportedParameter(body, var_term, parameter_term) + )); + // VLSUnaryNegation(term) + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSUnaryNegation"))); + bodies.add(body); + } + return bodies; + } + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSUniversalQuantifier.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSUniversalQuantifier.java new file mode 100644 index 00000000..0dab9771 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSUniversalQuantifier.java @@ -0,0 +1,533 @@ +/** + * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql + */ +package ca.mcgill.ecse.dslreasoner.vampire.queries; + +import java.util.Arrays; +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.apache.log4j.Logger; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.viatra.query.runtime.api.IPatternMatch; +import org.eclipse.viatra.query.runtime.api.IQuerySpecification; +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; +import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; +import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; +import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; +import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; +import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; +import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; +import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; +import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; + +/** + * A pattern-specific query specification that can instantiate Matcher in a type-safe way. + * + *

Original source: + *

+ *         pattern VLSUniversalQuantifier(term: VLSUniversalQuantifier){
+ *         	VLSUniversalQuantifier(term);
+ *         }
+ * 
+ * + * @see Matcher + * @see Match + * + */ +@SuppressWarnings("all") +public final class VLSUniversalQuantifier extends BaseGeneratedEMFQuerySpecification { + /** + * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUniversalQuantifier pattern, + * to be used in conjunction with {@link Matcher}. + * + *

Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. + * Each instance is a (possibly partial) substitution of pattern parameters, + * usable to represent a match of the pattern in the result of a query, + * or to specify the bound (fixed) input parameters when issuing a query. + * + * @see Matcher + * + */ + public static abstract class Match extends BasePatternMatch { + private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier fTerm; + + private static List parameterNames = makeImmutableList("term"); + + private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) { + this.fTerm = pTerm; + } + + @Override + public Object get(final String parameterName) { + if ("term".equals(parameterName)) return this.fTerm; + return null; + } + + public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier getTerm() { + return this.fTerm; + } + + @Override + public boolean set(final String parameterName, final Object newValue) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + if ("term".equals(parameterName) ) { + this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier) newValue; + return true; + } + return false; + } + + public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) { + if (!isMutable()) throw new java.lang.UnsupportedOperationException(); + this.fTerm = pTerm; + } + + @Override + public String patternName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUniversalQuantifier"; + } + + @Override + public List parameterNames() { + return VLSUniversalQuantifier.Match.parameterNames; + } + + @Override + public Object[] toArray() { + return new Object[]{fTerm}; + } + + @Override + public VLSUniversalQuantifier.Match toImmutable() { + return isMutable() ? newMatch(fTerm) : this; + } + + @Override + public String prettyPrint() { + StringBuilder result = new StringBuilder(); + result.append("\"term\"=" + prettyPrintValue(fTerm)); + return result.toString(); + } + + @Override + public int hashCode() { + return Objects.hash(fTerm); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) { + return false; + } + if ((obj instanceof VLSUniversalQuantifier.Match)) { + VLSUniversalQuantifier.Match other = (VLSUniversalQuantifier.Match) obj; + return Objects.equals(fTerm, other.fTerm); + } else { + // this should be infrequent + if (!(obj instanceof IPatternMatch)) { + return false; + } + IPatternMatch otherSig = (IPatternMatch) obj; + return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); + } + } + + @Override + public VLSUniversalQuantifier specification() { + return VLSUniversalQuantifier.instance(); + } + + /** + * Returns an empty, mutable match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @return the empty match. + * + */ + public static VLSUniversalQuantifier.Match newEmptyMatch() { + return new Mutable(null); + } + + /** + * Returns a mutable (partial) match. + * Fields of the mutable match can be filled to create a partial match, usable as matcher input. + * + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the new, mutable (partial) match object. + * + */ + public static VLSUniversalQuantifier.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) { + return new Mutable(pTerm); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public static VLSUniversalQuantifier.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) { + return new Immutable(pTerm); + } + + private static final class Mutable extends VLSUniversalQuantifier.Match { + Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return true; + } + } + + private static final class Immutable extends VLSUniversalQuantifier.Match { + Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) { + super(pTerm); + } + + @Override + public boolean isMutable() { + return false; + } + } + } + + /** + * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUniversalQuantifier pattern, + * providing pattern-specific query methods. + * + *

Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, + * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. + * + *

Matches of the pattern will be represented as {@link Match}. + * + *

Original source: + *

+   * pattern VLSUniversalQuantifier(term: VLSUniversalQuantifier){
+   * 	VLSUniversalQuantifier(term);
+   * }
+   * 
+ * + * @see Match + * @see VLSUniversalQuantifier + * + */ + public static class Matcher extends BaseMatcher { + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + public static VLSUniversalQuantifier.Matcher on(final ViatraQueryEngine engine) { + // check if matcher already exists + Matcher matcher = engine.getExistingMatcher(querySpecification()); + if (matcher == null) { + matcher = (Matcher)engine.getMatcher(querySpecification()); + } + return matcher; + } + + /** + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * @return an initialized matcher + * @noreference This method is for internal matcher initialization by the framework, do not call it manually. + * + */ + public static VLSUniversalQuantifier.Matcher create() { + return new Matcher(); + } + + private final static int POSITION_TERM = 0; + + private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSUniversalQuantifier.Matcher.class); + + /** + * Initializes the pattern matcher within an existing VIATRA Query engine. + * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. + * + * @param engine the existing VIATRA Query engine in which this matcher will be created. + * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation + * + */ + private Matcher() { + super(querySpecification()); + } + + /** + * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return matches represented as a Match object. + * + */ + public Collection getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet()); + } + + /** + * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. + *

+ * NOTE: It is important not to modify the source model while the stream is being processed. + * If the match set of the pattern changes during processing, the contents of the stream is undefined. + * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a stream of matches represented as a Match object. + * + */ + public Stream streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) { + return rawStreamAllMatches(new Object[]{pTerm}); + } + + /** + * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return a match represented as a Match object, or null if no match is found. + * + */ + public Optional getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) { + return rawGetOneArbitraryMatch(new Object[]{pTerm}); + } + + /** + * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, + * under any possible substitution of the unspecified parameters (if any). + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return true if the input is a valid (partial) match of the pattern. + * + */ + public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) { + return rawHasMatch(new Object[]{pTerm}); + } + + /** + * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the number of pattern matches found. + * + */ + public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) { + return rawCountMatches(new Object[]{pTerm}); + } + + /** + * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. + * Neither determinism nor randomness of selection is guaranteed. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @param processor the action that will process the selected match. + * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked + * + */ + public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm, final Consumer processor) { + return rawForOneArbitraryMatch(new Object[]{pTerm}, processor); + } + + /** + * Returns a new (partial) match. + * This can be used e.g. to call the matcher with a partial match. + *

The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. + * @param pTerm the fixed value of pattern parameter term, or null if not bound. + * @return the (partial) match object. + * + */ + public VLSUniversalQuantifier.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) { + return VLSUniversalQuantifier.Match.newMatch(pTerm); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + protected Stream rawStreamAllValuesOfterm(final Object[] parameters) { + return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier.class::cast); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Set getAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet()); + } + + /** + * Retrieve the set of values that occur in matches for term. + * @return the Set of all values or empty set if there are no matches + * + */ + public Stream streamAllValuesOfterm() { + return rawStreamAllValuesOfterm(emptyArray()); + } + + @Override + protected VLSUniversalQuantifier.Match tupleToMatch(final Tuple t) { + try { + return VLSUniversalQuantifier.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier) t.get(POSITION_TERM)); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in tuple not properly typed!",e); + return null; + } + } + + @Override + protected VLSUniversalQuantifier.Match arrayToMatch(final Object[] match) { + try { + return VLSUniversalQuantifier.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + @Override + protected VLSUniversalQuantifier.Match arrayToMatchMutable(final Object[] match) { + try { + return VLSUniversalQuantifier.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier) match[POSITION_TERM]); + } catch(ClassCastException e) { + LOGGER.error("Element(s) in array not properly typed!",e); + return null; + } + } + + /** + * @return the singleton instance of the query specification of this pattern + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static IQuerySpecification querySpecification() { + return VLSUniversalQuantifier.instance(); + } + } + + private VLSUniversalQuantifier() { + super(GeneratedPQuery.INSTANCE); + } + + /** + * @return the singleton instance of the query specification + * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded + * + */ + public static VLSUniversalQuantifier instance() { + try{ + return LazyHolder.INSTANCE; + } catch (ExceptionInInitializerError err) { + throw processInitializerError(err); + } + } + + @Override + protected VLSUniversalQuantifier.Matcher instantiate(final ViatraQueryEngine engine) { + return VLSUniversalQuantifier.Matcher.on(engine); + } + + @Override + public VLSUniversalQuantifier.Matcher instantiate() { + return VLSUniversalQuantifier.Matcher.create(); + } + + @Override + public VLSUniversalQuantifier.Match newEmptyMatch() { + return VLSUniversalQuantifier.Match.newEmptyMatch(); + } + + @Override + public VLSUniversalQuantifier.Match newMatch(final Object... parameters) { + return VLSUniversalQuantifier.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier) parameters[0]); + } + + /** + * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUniversalQuantifier (visibility: PUBLIC, simpleName: VLSUniversalQuantifier, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUniversalQuantifier, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created + * not at the class load time of the outer class, + * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUniversalQuantifier (visibility: PUBLIC, simpleName: VLSUniversalQuantifier, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUniversalQuantifier, deprecated: ) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. + * + *

This workaround is required e.g. to support recursion. + * + */ + private static class LazyHolder { + private final static VLSUniversalQuantifier INSTANCE = new VLSUniversalQuantifier(); + + /** + * Statically initializes the query specification after the field {@link #INSTANCE} is assigned. + * This initialization order is required to support indirect recursion. + * + *

The static initializer is defined using a helper field to work around limitations of the code generator. + * + */ + private final static Object STATIC_INITIALIZER = ensureInitialized(); + + public static Object ensureInitialized() { + INSTANCE.ensureInitializedInternal(); + return null; + } + } + + private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { + private final static VLSUniversalQuantifier.GeneratedPQuery INSTANCE = new GeneratedPQuery(); + + private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSUniversalQuantifier")), PParameterDirection.INOUT); + + private final List parameters = Arrays.asList(parameter_term); + + private GeneratedPQuery() { + super(PVisibility.PUBLIC); + } + + @Override + public String getFullyQualifiedName() { + return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUniversalQuantifier"; + } + + @Override + public List getParameterNames() { + return Arrays.asList("term"); + } + + @Override + public List getParameters() { + return parameters; + } + + @Override + public Set doGetContainedBodies() { + setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); + Set bodies = new LinkedHashSet<>(); + { + PBody body = new PBody(this); + PVariable var_term = body.getOrCreateVariableByName("term"); + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSUniversalQuantifier"))); + body.setSymbolicParameters(Arrays.asList( + new ExportedParameter(body, var_term, parameter_term) + )); + // VLSUniversalQuantifier(term) + new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSUniversalQuantifier"))); + bodies.add(body); + } + return bodies; + } + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VampireQueries.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VampireQueries.java new file mode 100644 index 00000000..e3518cd6 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VampireQueries.java @@ -0,0 +1,174 @@ +/** + * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql + */ +package ca.mcgill.ecse.dslreasoner.vampire.queries; + +import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnd; +import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnnotation; +import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSComment; +import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSEquivalent; +import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSExistentialQuantifier; +import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFofFormula; +import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunction; +import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunctionFof; +import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSInequality; +import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSOr; +import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUnaryNegation; +import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUniversalQuantifier; +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; +import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup; + +/** + * A pattern group formed of all public patterns defined in vampireQueries.vql. + * + *

Use the static instance as any {@link interface org.eclipse.viatra.query.runtime.api.IQueryGroup}, to conveniently prepare + * a VIATRA Query engine for matching all patterns originally defined in file vampireQueries.vql, + * in order to achieve better performance than one-by-one on-demand matcher initialization. + * + *

From package ca.mcgill.ecse.dslreasoner.vampire.queries, the group contains the definition of the following patterns:

    + *
  • VLSComment
  • + *
  • VLSFofFormula
  • + *
  • VLSAnnotation
  • + *
  • VLSOr
  • + *
  • VLSAnd
  • + *
  • VLSEquivalent
  • + *
  • VLSFunction
  • + *
  • VLSExistentialQuantifier
  • + *
  • VLSUniversalQuantifier
  • + *
  • VLSUnaryNegation
  • + *
  • VLSInequality
  • + *
  • VLSFunctionFof
  • + *
+ * + * @see IQueryGroup + * + */ +@SuppressWarnings("all") +public final class VampireQueries extends BaseGeneratedPatternGroup { + /** + * Access the pattern group. + * + * @return the singleton instance of the group + * @throws ViatraQueryRuntimeException if there was an error loading the generated code of pattern specifications + * + */ + public static VampireQueries instance() { + if (INSTANCE == null) { + INSTANCE = new VampireQueries(); + } + return INSTANCE; + } + + private static VampireQueries INSTANCE; + + private VampireQueries() { + querySpecifications.add(VLSComment.instance()); + querySpecifications.add(VLSFofFormula.instance()); + querySpecifications.add(VLSAnnotation.instance()); + querySpecifications.add(VLSOr.instance()); + querySpecifications.add(VLSAnd.instance()); + querySpecifications.add(VLSEquivalent.instance()); + querySpecifications.add(VLSFunction.instance()); + querySpecifications.add(VLSExistentialQuantifier.instance()); + querySpecifications.add(VLSUniversalQuantifier.instance()); + querySpecifications.add(VLSUnaryNegation.instance()); + querySpecifications.add(VLSInequality.instance()); + querySpecifications.add(VLSFunctionFof.instance()); + } + + public VLSComment getVLSComment() { + return VLSComment.instance(); + } + + public VLSComment.Matcher getVLSComment(final ViatraQueryEngine engine) { + return VLSComment.Matcher.on(engine); + } + + public VLSFofFormula getVLSFofFormula() { + return VLSFofFormula.instance(); + } + + public VLSFofFormula.Matcher getVLSFofFormula(final ViatraQueryEngine engine) { + return VLSFofFormula.Matcher.on(engine); + } + + public VLSAnnotation getVLSAnnotation() { + return VLSAnnotation.instance(); + } + + public VLSAnnotation.Matcher getVLSAnnotation(final ViatraQueryEngine engine) { + return VLSAnnotation.Matcher.on(engine); + } + + public VLSOr getVLSOr() { + return VLSOr.instance(); + } + + public VLSOr.Matcher getVLSOr(final ViatraQueryEngine engine) { + return VLSOr.Matcher.on(engine); + } + + public VLSAnd getVLSAnd() { + return VLSAnd.instance(); + } + + public VLSAnd.Matcher getVLSAnd(final ViatraQueryEngine engine) { + return VLSAnd.Matcher.on(engine); + } + + public VLSEquivalent getVLSEquivalent() { + return VLSEquivalent.instance(); + } + + public VLSEquivalent.Matcher getVLSEquivalent(final ViatraQueryEngine engine) { + return VLSEquivalent.Matcher.on(engine); + } + + public VLSFunction getVLSFunction() { + return VLSFunction.instance(); + } + + public VLSFunction.Matcher getVLSFunction(final ViatraQueryEngine engine) { + return VLSFunction.Matcher.on(engine); + } + + public VLSExistentialQuantifier getVLSExistentialQuantifier() { + return VLSExistentialQuantifier.instance(); + } + + public VLSExistentialQuantifier.Matcher getVLSExistentialQuantifier(final ViatraQueryEngine engine) { + return VLSExistentialQuantifier.Matcher.on(engine); + } + + public VLSUniversalQuantifier getVLSUniversalQuantifier() { + return VLSUniversalQuantifier.instance(); + } + + public VLSUniversalQuantifier.Matcher getVLSUniversalQuantifier(final ViatraQueryEngine engine) { + return VLSUniversalQuantifier.Matcher.on(engine); + } + + public VLSUnaryNegation getVLSUnaryNegation() { + return VLSUnaryNegation.instance(); + } + + public VLSUnaryNegation.Matcher getVLSUnaryNegation(final ViatraQueryEngine engine) { + return VLSUnaryNegation.Matcher.on(engine); + } + + public VLSInequality getVLSInequality() { + return VLSInequality.instance(); + } + + public VLSInequality.Matcher getVLSInequality(final ViatraQueryEngine engine) { + return VLSInequality.Matcher.on(engine); + } + + public VLSFunctionFof getVLSFunctionFof() { + return VLSFunctionFof.instance(); + } + + public VLSFunctionFof.Matcher getVLSFunctionFof(final ViatraQueryEngine engine) { + return VLSFunctionFof.Matcher.on(engine); + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql new file mode 100644 index 00000000..2bc22f9e --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql @@ -0,0 +1,57 @@ +package ca.mcgill.ecse.dslreasoner.vampire.queries + +import "http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage" + +pattern VLSComment(term: VLSComment){ + VLSComment(term); +} + +pattern VLSFofFormula(term: VLSFofFormula){ + VLSFofFormula(term); +} + +pattern VLSAnnotation(term: VLSAnnotation){ + VLSAnnotation(term); +} + + +//VLSFormula +pattern VLSOr(term: VLSOr){ + VLSOr(term); +} + +pattern VLSAnd(term: VLSAnd){ + VLSAnd(term); +} + +pattern VLSEquivalent(term: VLSEquivalent){ + VLSEquivalent(term); +} + +pattern VLSFunction(term: VLSFunction){ + VLSFunction(term); +} + +pattern VLSExistentialQuantifier(term: VLSExistentialQuantifier){ + VLSExistentialQuantifier(term); +} + +pattern VLSUniversalQuantifier(term: VLSUniversalQuantifier){ + VLSUniversalQuantifier(term); +} + +pattern VLSUnaryNegation(term: VLSUnaryNegation){ + VLSUnaryNegation(term); +} + +pattern VLSInequality(term: VLSInequality){ + VLSInequality(term); +} + +pattern VLSFunctionFof(term: VLSFunctionFof){ + VLSFunctionFof(term); +} + +//pattern VLSFofTerm(term: VLSFofTerm){ +// VLSFofTerm(term); +//} \ No newline at end of file diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.classpath b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.classpath new file mode 100644 index 00000000..a1e0140b --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.gitignore new file mode 100644 index 00000000..ae3c1726 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.project b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.project new file mode 100644 index 00000000..2221f39c --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.project @@ -0,0 +1,34 @@ + + + ca.mcgill.ecse.dslreasoner.vampire.reasoner + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + org.eclipse.xtext.ui.shared.xtextNature + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.settings/org.eclipse.jdt.core.prefs b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..295926d9 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/META-INF/MANIFEST.MF b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/META-INF/MANIFEST.MF new file mode 100644 index 00000000..2eb4f151 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/META-INF/MANIFEST.MF @@ -0,0 +1,17 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Reasoner +Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.reasoner;singleton:=true +Bundle-Version: 1.0.0.qualifier +Automatic-Module-Name: ca.mcgill.ecse.dslreasoner.vampire.reasoner +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Require-Bundle: org.eclipse.xtend.lib, + hu.bme.mit.inf.dslreasoner.logic.model;bundle-version="1.0.0", + hu.bme.mit.inf.dslreasoner.ecore2logic;bundle-version="1.0.0", + ca.mcgill.ecse.dslreasoner.vampire.language;bundle-version="1.0.0", + org.eclipse.viatra.query.runtime;bundle-version="2.1.0", + org.eclipse.viatra.query.runtime.base.itc;bundle-version="2.1.0" +Export-Package: ca.mcgill.ecse.dslreasoner.vampire.reasoner, + ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder + + diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/build.properties b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/build.properties new file mode 100644 index 00000000..41eb6ade --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/queries/ca/mcgill/ecse/dslreasoner/vampire/reasoner/queries/signatureQueries.vql b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/queries/ca/mcgill/ecse/dslreasoner/vampire/reasoner/queries/signatureQueries.vql new file mode 100644 index 00000000..754b5ac7 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/queries/ca/mcgill/ecse/dslreasoner/vampire/reasoner/queries/signatureQueries.vql @@ -0,0 +1 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.queries \ No newline at end of file diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/queries/ca/mcgill/ecse/dslreasoner/vampire/reasoner/queries/typeQueries.vql b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/queries/ca/mcgill/ecse/dslreasoner/vampire/reasoner/queries/typeQueries.vql new file mode 100644 index 00000000..754b5ac7 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/queries/ca/mcgill/ecse/dslreasoner/vampire/reasoner/queries/typeQueries.vql @@ -0,0 +1 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.queries \ No newline at end of file diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireAnalyzerConfiguration.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireAnalyzerConfiguration.xtend new file mode 100644 index 00000000..27e00ccf --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireAnalyzerConfiguration.xtend @@ -0,0 +1,22 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner + +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration + +class VampireSolverConfiguration extends LogicSolverConfiguration { + + public var int symmetry = 0 // by default + //choose needed backend solver +// public var VampireBackendSolver solver = VampireBackendSolver.SAT4J + public var boolean writeToFile = false +} + + +enum VampireBackendSolver { + //add needed things +} + + +enum TypeMappingTechnique { + //default + FilteredTypes +} \ No newline at end of file diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.xtend new file mode 100644 index 00000000..64484b88 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.xtend @@ -0,0 +1,102 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner + +import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetupGenerated +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasonerException +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration +import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem +import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage +import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace +import java.io.PrintWriter +import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_TypeMapper +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_TypeMapper_FilteredTypes + +class VampireSolver extends LogicReasoner{ + + new() { + VampireLanguagePackage.eINSTANCE.eClass + val x = new VampireLanguageStandaloneSetupGenerated + VampireLanguageStandaloneSetup::doSetup() + } + + val Logic2VampireLanguageMapper forwardMapper = new Logic2VampireLanguageMapper(new Logic2VampireLanguageMapper_TypeMapper_FilteredTypes) +// //not for now +// val VampireHandler handler = new VampireHandler +// val Vampire2LogicMapper backwardMapper = new Vampire2LogicMapper + + val fileName = "problem.tptp" + + override solve(LogicProblem problem, LogicSolverConfiguration configuration, ReasonerWorkspace workspace) throws LogicReasonerException { + val vampireConfig = configuration.asConfig + + // Start: Logic -> Vampire mapping + val transformationStart = System.currentTimeMillis + //TODO + val result = forwardMapper.transformProblem(problem,vampireConfig) + val vampireProblem = result.output + val forwardTrace = result.trace + + var String fileURI = null; + var String vampireCode = null; + if(vampireConfig.writeToFile) { + fileURI = workspace.writeModel(vampireProblem,fileName).toFileString + } else { + vampireCode = workspace.writeModelToString(vampireProblem,fileName) + } + val transformationTime = System.currentTimeMillis - transformationStart + // Finish: Logic -> Vampire mapping + + //Creates a file containing the tptp code after transformation + val out = new PrintWriter("output/files/vampireCode.tptp") + out.println(vampireCode) + out.close() + + + /* + * not for now -> Start: Solving Alloy problem + * + // Start: Solving Alloy problem + val solverStart = System.currentTimeMillis + val result2 = handler.callSolver(alloyProblem,workspace,alloyConfig,fileURI,alloyCode) + val logicResult = backwardMapper.transformOutput(problem,configuration.solutionScope.numberOfRequiredSolution,result2,forwardTrace,transformationTime) + val solverFinish = System.currentTimeMillis-solverStart + // Finish: Solving Alloy problem + + if(vampireConfig.writeToFile) workspace.deactivateModel(fileName) + + return logicResult + */ + + return null // for now + } + + def asConfig(LogicSolverConfiguration configuration){ + if(configuration instanceof VampireSolverConfiguration) { + return configuration + } else { + throw new IllegalArgumentException('''The configuration have to be an Ā«VampireSolverConfiguration.simpleNameĀ»!''') + } + } + +// /* +// * not for now +// * + override getInterpretations(ModelResult modelResult) { + //val answers = (modelResult.representation as MonitoredAlloySolution).aswers.map[key] +// val sols = modelResult.representation// as List +// //val res = answers.map +// sols.map[ +// new VampireModelInterpretation( +// forwardMapper.typeMapper.typeInterpreter, +// it as A4Solution, +// forwardMapper, +// modelResult.trace as Logic2AlloyLanguageMapperTrace +// ) +// ] + } +// */ + +} \ No newline at end of file diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend new file mode 100644 index 00000000..5ec15541 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend @@ -0,0 +1,386 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder + +import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.And +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Assertion +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.BoolLiteral +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.BoolTypeReference +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ComplexTypeReference +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDeclaration +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDefinition +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Distinct +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Equals +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Exists +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Forall +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.FunctionDeclaration +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.FunctionDefinition +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Iff +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Impl +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.InstanceOf +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.IntLiteral +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Not +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Or +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RealLiteral +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.SymbolicValue +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Term +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable +import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel +import java.util.Collections +import java.util.HashMap +import java.util.List +import java.util.Map +import org.eclipse.xtend.lib.annotations.Accessors + +import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* + +class Logic2VampireLanguageMapper { + private val extension VampireLanguageFactory factory = VampireLanguageFactory.eINSTANCE + private val Logic2VampireLanguageMapper_Support support = new Logic2VampireLanguageMapper_Support; + @Accessors(PUBLIC_GETTER) private val Logic2VampireLanguageMapper_ConstantMapper constantMapper = new Logic2VampireLanguageMapper_ConstantMapper( + this) + @Accessors(PUBLIC_GETTER) private val Logic2VampireLanguageMapper_RelationMapper relationMapper = new Logic2VampireLanguageMapper_RelationMapper( + this) + @Accessors(PUBLIC_GETTER) private val Logic2VampireLanguageMapper_TypeMapper typeMapper + + public new(Logic2VampireLanguageMapper_TypeMapper typeMapper) { + this.typeMapper = typeMapper + } + + public def TracedOutput transformProblem(LogicProblem problem, + VampireSolverConfiguration configuration) { + // create model bases + // TODO + val initialComment = createVLSComment => [ + it.comment = "%This is an initial Test Comment \r" + ] + + val specification = createVampireModel => [ + it.comments += initialComment + ] + + val trace = new Logic2VampireLanguageMapperTrace => [ + it.specification = specification + +// it.incQueryEngine = viatraQueryEngine.on(new EMFScope(problem)) + ] + + // call mappers + if (!problem.types.isEmpty) { + typeMapper.transformTypes(problem.types, problem.elements, this, trace) + } + + trace.constantDefinitions = problem.collectConstantDefinitions + trace.relationDefinitions = problem.collectRelationDefinitions + + problem.relations.forEach[this.relationMapper.transformRelation(it, trace)] + + // only transforms definitions + // problem.constants.filter(ConstantDefinition).forEach[this.constantMapper.transformConstant(it, trace)] + problem.constants.filter(ConstantDefinition).forEach [ + this.constantMapper.transformConstantDefinitionSpecification(it, trace) + ] + + // ////////////////// + // Transform Assertions + // ////////////////// + for (assertion : problem.assertions) { + transformAssertion(assertion, trace) + } + + return new TracedOutput(specification, trace) + } + + // End of transformProblem + // //////////// + // Type References + // //////////// + def dispatch protected VLSTerm transformTypeReference(BoolTypeReference boolTypeReference, + Logic2VampireLanguageMapperTrace trace) { + // TODO, Not Now + // return createALSReference => [ it.referred = support.getBooleanType(trace) ] + } + + // //////////// + // Collectors + // //////////// + // exact Same as for Alloy + private def collectConstantDefinitions(LogicProblem problem) { + val res = new HashMap + problem.constants.filter(ConstantDefinition).filter[it.defines !== null].forEach [ + res.put(it.defines, it) + ] + return res + } + + private def collectRelationDefinitions(LogicProblem problem) { + val res = new HashMap + problem.relations.filter(RelationDefinition).filter[it.defines !== null].forEach [ + res.put(it.defines, it) + ] + return res + } + + // //////////// + // Assertions + Terms + // //////////// + def protected transformAssertion(Assertion assertion, Logic2VampireLanguageMapperTrace trace) { + val res = createVLSFofFormula => [ + it.name = support.toID(assertion.name) + // below is temporary solution + it.fofRole = "axiom" + it.fofFormula = assertion.value.transformTerm(trace, Collections.EMPTY_MAP) + // it.annotation = nothing + ] + trace.specification.formulas += res + } + + def dispatch protected VLSTerm transformTerm(BoolLiteral literal, Logic2VampireLanguageMapperTrace trace, + Map variables) { + if (literal.value == true) { + createVLSTrue + } else { + createVLSFalse + } + } + + def dispatch protected VLSTerm transformTerm(IntLiteral literal, Logic2VampireLanguageMapperTrace trace, + Map variables) { + createVLSInt => [it.value = literal.value.toString()] + } + + def dispatch protected VLSTerm transformTerm(RealLiteral literal, Logic2VampireLanguageMapperTrace trace, + Map variables) { + createVLSReal => [it.value = literal.value.toString()] + } + + def dispatch protected VLSTerm transformTerm(Not not, Logic2VampireLanguageMapperTrace trace, + Map variables) { + createVLSUnaryNegation => [operand = not.operand.transformTerm(trace, variables)] + } + + def dispatch protected VLSTerm transformTerm(And and, Logic2VampireLanguageMapperTrace trace, + Map variables) { support.unfoldAnd(and.operands.map[transformTerm(trace, variables)]) } + + def dispatch protected VLSTerm transformTerm(Or or, Logic2VampireLanguageMapperTrace trace, + Map variables) { support.unfoldOr(or.operands.map[transformTerm(trace, variables)]) } + + def dispatch protected VLSTerm transformTerm(Impl impl, Logic2VampireLanguageMapperTrace trace, + Map variables) { + createVLSImplies => [ + left = impl.leftOperand.transformTerm(trace, variables) + right = impl.rightOperand.transformTerm(trace, variables) + ] + } + + def dispatch protected VLSTerm transformTerm(Iff iff, Logic2VampireLanguageMapperTrace trace, + Map variables) { + createVLSEquivalent => [ + left = iff.leftOperand.transformTerm(trace, variables) + right = iff.rightOperand.transformTerm(trace, variables) + ] + } + +// def dispatch protected VLSTerm transformTerm(MoreThan moreThan, Logic2VampireLanguageMapperTrace trace, Map variables) { +// createALSMore => [leftOperand = moreThan.leftOperand.transformTerm(trace,variables) rightOperand = moreThan.rightOperand.transformTerm(trace,variables)] } +// def dispatch protected VLSTerm transformTerm(LessThan lessThan, Logic2VampireLanguageMapperTrace trace, Map variables) { +// createALSLess => [leftOperand = lessThan.leftOperand.transformTerm(trace,variables) rightOperand = lessThan.rightOperand.transformTerm(trace,variables)] } +// def dispatch protected VLSTerm transformTerm(MoreOrEqualThan moreThan, Logic2VampireLanguageMapperTrace trace, Map variables) { +// createALSMeq => [leftOperand = moreThan.leftOperand.transformTerm(trace,variables) rightOperand = moreThan.rightOperand.transformTerm(trace,variables)] } +// def dispatch protected VLSTerm transformTerm(LessOrEqualThan lessThan, Logic2VampireLanguageMapperTrace trace, Map variables) { +// createALSLeq => [leftOperand = lessThan.leftOperand.transformTerm(trace,variables) rightOperand = lessThan.rightOperand.transformTerm(trace,variables)] } + def dispatch protected VLSTerm transformTerm(Equals equals, Logic2VampireLanguageMapperTrace trace, + Map variables) { + createVLSEquality => [ + left = equals.leftOperand.transformTerm(trace, variables) + right = equals.rightOperand.transformTerm(trace, variables) + ] + } + + def dispatch protected VLSTerm transformTerm(Distinct distinct, Logic2VampireLanguageMapperTrace trace, Map variables) { + support.unfoldDistinctTerms(this,distinct.operands,trace,variables) } +// +// def dispatch protected ALSTerm transformTerm(Plus plus, Logic2AlloyLanguageMapperTrace trace, Map variables) { +// createALSFunctionCall => [it.params += plus.leftOperand.transformTerm(trace,variables) it.params += plus.rightOperand.transformTerm(trace,variables) it.referredNumericOperator = ALSNumericOperator.PLUS] } +// def dispatch protected ALSTerm transformTerm(Minus minus, Logic2AlloyLanguageMapperTrace trace, Map variables) { +// createALSFunctionCall => [it.params += minus.leftOperand.transformTerm(trace,variables) it.params += minus.rightOperand.transformTerm(trace,variables) it.referredNumericOperator = ALSNumericOperator.SUB] } +// def dispatch protected ALSTerm transformTerm(Multiply multiply, Logic2AlloyLanguageMapperTrace trace, Map variables) { +// createALSFunctionCall => [it.params += multiply.leftOperand.transformTerm(trace,variables) it.params += multiply.rightOperand.transformTerm(trace,variables) it.referredNumericOperator = ALSNumericOperator.MUL] } +// def dispatch protected ALSTerm transformTerm(Divison div, Logic2AlloyLanguageMapperTrace trace, Map variables) { +// createALSFunctionCall => [it.params += div.leftOperand.transformTerm(trace,variables) it.params += div.rightOperand.transformTerm(trace,variables) it.referredNumericOperator = ALSNumericOperator.DIV] } +// def dispatch protected ALSTerm transformTerm(Mod mod, Logic2AlloyLanguageMapperTrace trace, Map variables) { +// createALSFunctionCall => [it.params += mod.leftOperand.transformTerm(trace,variables) it.params += mod.rightOperand.transformTerm(trace,variables) it.referredNumericOperator = ALSNumericOperator.REM] } +// + def dispatch protected VLSTerm transformTerm(Forall forall, Logic2VampireLanguageMapperTrace trace, + Map variables) { + support.createUniversallyQuantifiedExpression(this, forall, trace, variables) + } + + def dispatch protected VLSTerm transformTerm(Exists exists, Logic2VampireLanguageMapperTrace trace, + Map variables) { + support.createExistentiallyQuantifiedExpression(this, exists, trace, variables) + } + + def dispatch protected VLSTerm transformTerm(InstanceOf instanceOf, Logic2VampireLanguageMapperTrace trace, Map variables) { + return createVLSFunction => [ + it.constant = support.toIDMultiple("type", (instanceOf.range as ComplexTypeReference).referred.name ) + it.terms += instanceOf.value.transformTerm(trace, variables) + ] + } +// +// def dispatch protected ALSTerm transformTerm(TransitiveClosure tc, Logic2AlloyLanguageMapperTrace trace, Map variables) { +// return this.relationMapper.transformTransitiveRelationReference( +// tc.relation, +// tc.leftOperand.transformTerm(trace,variables), +// tc.rightOperand.transformTerm(trace,variables), +// trace +// ) +// } +// + def dispatch protected VLSTerm transformTerm(SymbolicValue symbolicValue, Logic2VampireLanguageMapperTrace trace, + Map variables) { + symbolicValue.symbolicReference.transformSymbolicReference(symbolicValue.parameterSubstitutions, trace, + variables) + } + + def dispatch protected VLSTerm transformSymbolicReference(DefinedElement referred, + List parameterSubstitutions, Logic2VampireLanguageMapperTrace trace, + Map variables) { + typeMapper.transformReference(referred, trace) + } + + def dispatch protected VLSTerm transformSymbolicReference(ConstantDeclaration constant, + List parameterSubstitutions, Logic2VampireLanguageMapperTrace trace, + Map variables) { + // might need to make sure that only declared csts get transformed. see for Alloy + val res = createVLSConstant => [ + // ask if necessary VLSConstantDeclaration and not just directly strng + it.name = support.toID(constant.name) + ] + // no postprocessing cuz booleans are accepted + return res + } + + // NOT NEEDED FOR NOW + // TODO + def dispatch protected VLSTerm transformSymbolicReference(ConstantDefinition constant, + List parameterSubstitutions, Logic2VampireLanguageMapperTrace trace, + Map variables) { +// val res = createVLSFunctionCall => [ +// it.referredDefinition = constant.lookup(trace.constantDefinition2Function) +// ] +// return support.postprocessResultOfSymbolicReference(constant.type,res,trace) + } + + def dispatch protected VLSTerm transformSymbolicReference(Variable variable, + List parameterSubstitutions, Logic2VampireLanguageMapperTrace trace, + Map variables) { + + // cannot treat variable as function (constant) because of name ID not being the same + // below does not work + val res = createVLSVariable => [ +// it.name = support.toIDMultiple("Var", variable.lookup(variables).name) + it.name = support.toID(variable.lookup(variables).name) + ] + // no need for potprocessing cuz booleans are supported + return res + } + + // TODO + def dispatch protected VLSTerm transformSymbolicReference(FunctionDeclaration function, + List parameterSubstitutions, Logic2VampireLanguageMapperTrace trace, + Map variables) { +// if(trace.functionDefinitions.containsKey(function)) { +// return this.transformSymbolicReference(function.lookup(trace.functionDefinitions),parameterSubstitutions,trace,variables) +// } else { +// if(functionMapper.transformedToHostedField(function,trace)) { +// val param = parameterSubstitutions.get(0).transformTerm(trace,variables) +// val res = createVLSJoin => [ +// leftOperand = support.prepareParameterOfSymbolicReference(function.parameters.get(0),param,trace) +// rightOperand = createVLSReference => [referred = function.lookup(trace.functionDeclaration2HostedField)] +// ] +// return support.postprocessResultOfSymbolicReference(function.range,res,trace) +// } else { +// val functionExpression = createVLSJoin=>[ +// leftOperand = createVLSReference => [referred = trace.logicLanguage] +// rightOperand = createVLSReference => [referred = function.lookup(trace.functionDeclaration2LanguageField)] +// ] +// val res = support.unfoldDotJoin(this,parameterSubstitutions,functionExpression,trace,variables) +// return support.postprocessResultOfSymbolicReference(function.range,res,trace) +// } +// } + } + + // TODO + def dispatch protected VLSTerm transformSymbolicReference(FunctionDefinition function, + List parameterSubstitutions, Logic2VampireLanguageMapperTrace trace, + Map variables) { +// val result = createVLSFunctionCall => [ +// it.referredDefinition = function.lookup(trace.functionDefinition2Function) +// it.params += parameterSubstitutions.map[it.transformTerm(trace,variables)] +// ] +// return support.postprocessResultOfSymbolicReference(function.range,result,trace) + } + + // TODO + /* + def dispatch protected VLSTerm transformSymbolicReference(Relation relation, + List parameterSubstitutions, Logic2VampireLanguageMapperTrace trace, + Map variables) { + if (trace.relationDefinitions.containsKey(relation)) { + this.transformSymbolicReference(relation.lookup(trace.relationDefinitions), + parameterSubstitutions, trace, variables) + } + else { +// if (relationMapper.transformToHostedField(relation, trace)) { +// val VLSRelation = relation.lookup(trace.relationDeclaration2Field) +// // R(a,b) => +// // b in a.R +// return createVLSSubset => [ +// it.leftOperand = parameterSubstitutions.get(1).transformTerm(trace, variables) +// it.rightOperand = createVLSJoin => [ +// it.leftOperand = parameterSubstitutions.get(0).transformTerm(trace, variables) +// it.rightOperand = createVLSReference => [it.referred = VLSRelation] +// ] +// ] +// } else { +// val target = createVLSJoin => [ +// leftOperand = createVLSReference => [referred = trace.logicLanguage] +// rightOperand = createVLSReference => [ +// referred = relation.lookup(trace.relationDeclaration2Global) +// ] +// ] +// val source = support.unfoldTermDirectProduct(this, parameterSubstitutions, trace, variables) +// +// return createVLSSubset => [ +// leftOperand = source +// rightOperand = target +// ] +// } + } + } + */ + + // TODO + def dispatch protected VLSTerm transformSymbolicReference(Relation relation, + List parameterSubstitutions, Logic2VampireLanguageMapperTrace trace, + Map variables) { +// createVLSFunction => [ +// it.referredDefinition = relation.lookup(trace.relationDefinition2Predicate) +// it.params += parameterSubstitutions.map[p|p.transformTerm(trace, variables)] +// ] + return createVLSFunction => [ + it.constant = support.toIDMultiple("rel", relation.name) + it.terms += parameterSubstitutions.map[p | p.transformTerm(trace,variables)] + ] + } + + } + \ No newline at end of file diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapperTrace.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapperTrace.xtend new file mode 100644 index 00000000..135b3f07 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapperTrace.xtend @@ -0,0 +1,39 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder + +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDeclaration +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDefinition +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel +import java.util.HashMap +import java.util.Map + +interface Logic2VampireLanguageMapper_TypeMapperTrace {} + +class Logic2VampireLanguageMapperTrace { +// public var ViatraQueryEngine incQueryEngine; + + //list of needed VLS components + public var VampireModel specification + public var VLSFofFormula logicLanguageBody + public var VLSTerm formula +//NOT NEEDED //public var VLSFunction constantDec + + public var Logic2VampireLanguageMapper_TypeMapperTrace typeMapperTrace + + +//NOT NEEDED //public val Map constantDeclaration2LanguageField = new HashMap + //public val Map constantDefinition2Function = new HashMap + + public var Map constantDefinitions + + public var Map relationDefinitions + public val Map relationVar2VLS = new HashMap + public val Map relationVar2TypeDec = new HashMap + +} \ No newline at end of file diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ConstantMapper.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ConstantMapper.xtend new file mode 100644 index 00000000..2366ea15 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ConstantMapper.xtend @@ -0,0 +1,42 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder + +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDeclaration +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDefinition +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory + +class Logic2VampireLanguageMapper_ConstantMapper { + private val extension VampireLanguageFactory factory = VampireLanguageFactory.eINSTANCE + private val Logic2VampireLanguageMapper_Support support = new Logic2VampireLanguageMapper_Support + val Logic2VampireLanguageMapper base + + public new(Logic2VampireLanguageMapper base) { + this.base = base + } + +//NOT NEEDED +// def protected dispatch transformConstant(ConstantDeclaration constant, Logic2VampireLanguageMapperTrace trace) { +// val c = createVLSFunctionDeclaration=> [ +// it.name = support.toID(constant.name) +// ] +// trace.constantDec.constant = c +// trace.constantDeclaration2LanguageField.put(constant, c); +// +// } + +//NOT Used In Sample + def protected dispatch transformConstant(ConstantDefinition constant, Logic2VampireLanguageMapperTrace trace) { + //error + //TODO +// val c = createVLSFofFormula=> [ +// name = support.toID(constant.name) +// fofRole = "axiom" +// fofFormula = base.transformTypeReference() +// ] + } + + def protected transformConstantDefinitionSpecification(ConstantDefinition constant, Logic2VampireLanguageMapperTrace trace) { + //TODO + } + + +} \ No newline at end of file diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend new file mode 100644 index 00000000..60653a42 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend @@ -0,0 +1,183 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder + +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ComplexTypeReference +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory +import java.util.ArrayList +import java.util.HashMap +import java.util.List +import java.util.Map + +import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* + +class Logic2VampireLanguageMapper_RelationMapper { + private val extension VampireLanguageFactory factory = VampireLanguageFactory.eINSTANCE + private val Logic2VampireLanguageMapper_Support support = new Logic2VampireLanguageMapper_Support + val Logic2VampireLanguageMapper base + + public new(Logic2VampireLanguageMapper base) { + this.base = base + } + + def dispatch public void transformRelation(RelationDefinition r, Logic2VampireLanguageMapperTrace trace) { + + // 1. store all variables in support wrt their name + // 1.1 if variable has type, creating list of type declarations + val Map relationVar2VLS = new HashMap + val Map relationVar2TypeDecComply = new HashMap + val Map relationVar2TypeDecRes = new HashMap + val typedefs = new ArrayList + for (variable : r.variables) { + val v = createVLSVariable => [ + it.name = support.toIDMultiple("Var", variable.name) + ] + relationVar2VLS.put(variable, v) + + val varTypeComply = createVLSFunction => [ + it.constant = support.toIDMultiple("type", (variable.range as ComplexTypeReference).referred.name) + it.terms += createVLSVariable => [ + it.name = support.toIDMultiple("Var", variable.name) + ] + ] + relationVar2TypeDecComply.put(variable, varTypeComply) + + val varTypeRes = createVLSFunction => [ + it.constant = support.toIDMultiple("type", (variable.range as ComplexTypeReference).referred.name) + it.terms += createVLSVariable => [ + it.name = support.toIDMultiple("Var", variable.name) + ] + ] + relationVar2TypeDecRes.put(variable, varTypeRes) + } + + val comply = createVLSFofFormula => [ + it.name = support.toIDMultiple("compliance", r.name) + it.fofRole = "axiom" + it.fofFormula = createVLSUniversalQuantifier => [ + for (variable : r.variables) { + val v = createVLSVariable => [ + it.name = variable.lookup(relationVar2VLS).name + ] + it.variables += v + + } + it.operand = createVLSImplies => [ + it.left = createVLSFunction => [ + it.constant = support.toIDMultiple("rel", r.name) + for (variable : r.variables) { + val v = createVLSVariable => [ + it.name = variable.lookup(relationVar2VLS).name + ] + it.terms += v + } + ] + it.right = support.unfoldAnd(new ArrayList(relationVar2TypeDecComply.values)) + ] + ] + ] + + val res = createVLSFofFormula => [ + it.name = support.toIDMultiple("relation", r.name) + it.fofRole = "axiom" + it.fofFormula = createVLSUniversalQuantifier => [ + for (variable : r.variables) { + val v = createVLSVariable => [ + it.name = variable.lookup(relationVar2VLS).name + ] + it.variables += v + + } + it.operand = createVLSImplies => [ + it.left = support.unfoldAnd(new ArrayList(relationVar2TypeDecRes.values)) + it.right = createVLSEquivalent => [ + it.left = createVLSFunction => [ + it.constant = support.toIDMultiple("rel", r.name) + for (variable : r.variables) { + val v = createVLSVariable => [ + it.name = variable.lookup(relationVar2VLS).name + ] + it.terms += v + + } + ] + it.right = base.transformTerm(r.value, trace, relationVar2VLS) + ] + + ] + + ] + + ] + + // trace.relationDefinition2Predicate.put(r,res) + trace.specification.formulas += comply; + trace.specification.formulas += res; + + } + + def dispatch public void transformRelation(RelationDeclaration r, Logic2VampireLanguageMapperTrace trace) { + + // 1. store all variables in support wrt their name + // 1.1 if variable has type, creating list of type declarations + val List relationVar2VLS = new ArrayList + val List relationVar2TypeDecComply = new ArrayList + val typedefs = new ArrayList + + for (i : 0.. [ + it.name = support.toIDMultiple("Var", i.toString) + ] + relationVar2VLS.add(v) + + val varTypeComply = createVLSFunction => [ + it.constant = support.toIDMultiple("type", (r.parameters.get(i) as ComplexTypeReference).referred.name) + it.terms += createVLSVariable => [ + it.name = support.toIDMultiple("Var", i.toString) + ] + ] + relationVar2TypeDecComply.add(varTypeComply) + + } + + + val comply = createVLSFofFormula => [ + it.name = support.toIDMultiple("compliance", r.name) + it.fofRole = "axiom" + it.fofFormula = createVLSUniversalQuantifier => [ + + for (i : 0.. [ + it.name = relationVar2VLS.get(i).name + ] + it.variables += v + + } + + it.operand = createVLSImplies => [ + it.left = createVLSFunction => [ + it.constant = support.toIDMultiple("rel", r.name) + + for (i : 0.. [ + it.name = relationVar2VLS.get(i).name + ] + it.terms += v + } + + ] + it.right = support.unfoldAnd(relationVar2TypeDecComply) + ] + ] + ] + + // trace.relationDefinition2Predicate.put(r,res) + trace.specification.formulas += comply + } + +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend new file mode 100644 index 00000000..ab92b42f --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend @@ -0,0 +1,148 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder + +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.QuantifiedExpression +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory +import java.util.ArrayList +import java.util.HashMap +import java.util.List +import java.util.Map +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ComplexTypeReference +import org.eclipse.emf.common.util.EList +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Term + +class Logic2VampireLanguageMapper_Support { + private val extension VampireLanguageFactory factory = VampireLanguageFactory.eINSTANCE + + // ID Handler + def protected String toIDMultiple(String... ids) { + ids.map[it.split("\\s+").join("_")].join("_") + } + + def protected String toID(String ids) { + ids.split("\\s+").join("_") + } + + // Support Functions + // booleans + // AND and OR + def protected VLSTerm unfoldAnd(List operands) { + if (operands.size == 1) { + return operands.head + } else if (operands.size > 1) { + return createVLSAnd => [ + left = operands.head + right = operands.subList(1, operands.size).unfoldAnd + ] + } else + throw new UnsupportedOperationException('''Logic operator with 0 operands!''') + } + + def protected VLSTerm unfoldOr(List operands) { + +// if(operands.size == 0) {basically return true} + /*else*/ if (operands.size == 1) { + return operands.head + } else if (operands.size > 1) { + return createVLSOr => [ + left = operands.head + right = operands.subList(1, operands.size).unfoldOr + ] + } else + throw new UnsupportedOperationException('''Logic operator with 0 operands!''') // TEMP + } + + def protected VLSTerm unfoldDistinctTerms(Logic2VampireLanguageMapper m, EList operands, + Logic2VampireLanguageMapperTrace trace, Map variables) { + if(operands.size == 1) { return m.transformTerm(operands.head,trace,variables) } + else if(operands.size > 1) { + val notEquals = new ArrayList(operands.size*operands.size/2) + for(i:0..[ + it.left= m.transformTerm(operands.get(i),trace,variables) + it.right = m.transformTerm(operands.get(j),trace,variables) + ] + } + } + return notEquals.unfoldAnd + } + else throw new UnsupportedOperationException('''Logic operator with 0 operands!''') + } + + // Symbolic + // def postprocessResultOfSymbolicReference(TypeReference type, VLSTerm term, Logic2VampireLanguageMapperTrace trace) { +// if(type instanceof BoolTypeReference) { +// return booleanToLogicValue(term ,trace) +// } +// else return term +// } +// def booleanToLogicValue(VLSTerm term, Logic2VampireLanguageMapperTrace trace) { +// throw new UnsupportedOperationException("TODO: auto-generated method stub") +// } + /* + * def protected String toID(List ids) { + * ids.map[it.split("\\s+").join("'")].join("'") + * } + */ + // QUANTIFIERS + VARIABLES + def protected VLSTerm createUniversallyQuantifiedExpression(Logic2VampireLanguageMapper mapper, + QuantifiedExpression expression, Logic2VampireLanguageMapperTrace trace, Map variables) { + val variableMap = expression.quantifiedVariables.toInvertedMap [ v | + createVLSVariable => [it.name = toIDMultiple("Var", v.name)] + ] + + val typedefs = new ArrayList + for (variable : expression.quantifiedVariables) { + val eq = createVLSFunction => [ + it.constant = toIDMultiple("type", (variable.range as ComplexTypeReference).referred.name) + it.terms += createVLSVariable => [ + it.name = toIDMultiple("Var", variable.name) + ] + + ] + typedefs.add(eq) + } + + + createVLSUniversalQuantifier => [ + it.variables += variableMap.values + it.operand = createVLSImplies => [ + it.left = unfoldAnd(typedefs) + it.right = mapper.transformTerm(expression.expression, trace, variables.withAddition(variableMap)) + ] + ] + } + + def protected VLSTerm createExistentiallyQuantifiedExpression(Logic2VampireLanguageMapper mapper, + QuantifiedExpression expression, Logic2VampireLanguageMapperTrace trace, Map variables) { + val variableMap = expression.quantifiedVariables.toInvertedMap [ v | + createVLSVariable => [it.name = toIDMultiple("Var", v.name)] + ] + + val typedefs = new ArrayList + for (variable : expression.quantifiedVariables) { + val eq = createVLSFunction => [ + it.constant = toIDMultiple("type", (variable.range as ComplexTypeReference).referred.name) + it.terms += createVLSVariable => [ + it.name = toIDMultiple("Var", variable.name) + ] + ] + typedefs.add(eq) + } + + typedefs.add(mapper.transformTerm(expression.expression, trace, variables.withAddition(variableMap))) + createVLSExistentialQuantifier => [ + it.variables += variableMap.values + it.operand = unfoldAnd(typedefs) + + ] + } + + def protected withAddition(Map map1, Map map2) { + new HashMap(map1) => [putAll(map2)] + } + +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.xtend new file mode 100644 index 00000000..1f071635 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.xtend @@ -0,0 +1,19 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder + +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type +import java.util.Collection +import java.util.List +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm + +interface Logic2VampireLanguageMapper_TypeMapper { + def void transformTypes(Collection types, Collection elements, Logic2VampireLanguageMapper mapper, Logic2VampireLanguageMapperTrace trace); + //samples below 2 lines + def List transformTypeReference(Type referred, Logic2VampireLanguageMapper mapper, Logic2VampireLanguageMapperTrace trace) + def VLSTerm getUndefinedSupertype(Logic2VampireLanguageMapperTrace trace) + + def int getUndefinedSupertypeScope(int undefinedScope,Logic2VampireLanguageMapperTrace trace) + def VLSTerm transformReference(DefinedElement referred,Logic2VampireLanguageMapperTrace trace) + + def VampireModelInterpretation_TypeInterpretation getTypeInterpreter() +} \ No newline at end of file diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtend new file mode 100644 index 00000000..a0f0edda --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtend @@ -0,0 +1,21 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder + +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm +import java.util.ArrayList +import java.util.HashMap +import java.util.List +import java.util.Map + +class Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes implements Logic2VampireLanguageMapper_TypeMapperTrace{ + +// public var VLSFofFormula objectSuperClass + public val Map type2Predicate = new HashMap; + public val Map definedElement2Declaration = new HashMap //Not Yet Used + public val Map type2PossibleNot = new HashMap + public val Map type2And = new HashMap + +} \ No newline at end of file diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtend new file mode 100644 index 00000000..7221f3ff --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtend @@ -0,0 +1,158 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder + +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDefinition +import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory +import java.util.ArrayList +import java.util.Collection + +import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* + +class Logic2VampireLanguageMapper_TypeMapper_FilteredTypes implements Logic2VampireLanguageMapper_TypeMapper { + private val Logic2VampireLanguageMapper_Support support = new Logic2VampireLanguageMapper_Support + private val extension VampireLanguageFactory factory = VampireLanguageFactory.eINSTANCE + + new() { + LogicproblemPackage.eINSTANCE.class + } + + override transformTypes(Collection types, Collection elements, + Logic2VampireLanguageMapper mapper, Logic2VampireLanguageMapperTrace trace) { + val typeTrace = new Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes + trace.typeMapperTrace = typeTrace + + val VLSVariable variable = createVLSVariable => [it.name = "A"] // did not work + // 1. store predicates for declarations in trace + for (type : types) { + val typePred = createVLSFunction => [ + it.constant = support.toIDMultiple("type", type.name) + it.terms += createVLSVariable => [it.name = variable.name] + ] + typeTrace.type2Predicate.put(type, typePred) + } + + // 2. Map each type definition to fof formula + for (type : types.filter(TypeDefinition)) { + + val res = createVLSFofFormula => [ + it.name = support.toIDMultiple("typeDef", type.name) + // below is temporary solution + it.fofRole = "axiom" + it.fofFormula = createVLSUniversalQuantifier => [ + it.variables += createVLSVariable => [it.name = variable.name] + it.operand = createVLSEquivalent => [ + it.left = createVLSFunction => [ + it.constant = type.lookup(typeTrace.type2Predicate).constant + it.terms += createVLSVariable => [it.name = "A"] + ] + + type.lookup(typeTrace.type2Predicate) + it.right = support.unfoldOr(type.elements.map [ e | + createVLSEquality => [ + it.left = createVLSVariable => [it.name = variable.name] +// it.right = createVLSDoubleQuote => [ +// it.value = "\"" + e.name + "\"" +// ] + it.right = createVLSDoubleQuote => [ + it.value = "\"a" + e.name + "\"" + ] + ] + ]) + ] + ] + + ] + trace.specification.formulas += res + } + // 2.5. Currently allowing duplicate types. Not problematic cuz strings are by def unique + // 3. For each non-abstract type, create an and sequence containing all typedeclaration predicates + // and store in a map +// val List type2PossibleNot = new ArrayList +// val List type2And = new ArrayList + for (type : types.filter[!isIsAbstract]) { + for (type2 : types) { + // possible improvement: check all supertypes and decide if negated or not based on negations/not negations of supertypes + if (type == type2 || dfsSupertypeCheck(type, type2)) { + typeTrace.type2PossibleNot.put(type2, createVLSFunction => [ + it.constant = type2.lookup(typeTrace.type2Predicate).constant + it.terms += createVLSVariable => [it.name = "A"] + ]) + } else { + typeTrace.type2PossibleNot.put(type2, createVLSUnaryNegation => [ + it.operand = createVLSFunction => [ + it.constant = type2.lookup(typeTrace.type2Predicate).constant + it.terms += createVLSVariable => [it.name = "A"] + ] + ]) + } +// typeTrace.type2PossibleNot.put(type2, type2.lookup(typeTrace.type2Predicate)) + } + typeTrace.type2And.put(type, support.unfoldAnd(new ArrayList(typeTrace.type2PossibleNot.values))) +// typeTrace.type2And.put(type, type.lookup(typeTrace.type2Predicate) ) + typeTrace.type2PossibleNot.clear + } + + // 5. create fof function that is an or with all the elements in map + val hierarch = createVLSFofFormula => [ + it.name = "hierarchyHandler" + it.fofRole = "axiom" + it.fofFormula = createVLSUniversalQuantifier => [ + it.variables += createVLSVariable => [it.name = "A"] + it.operand = createVLSEquivalent => [ + it.left = createVLSFunction => [ + it.constant = "Object" + it.terms += createVLSVariable => [ + it.name = "A" + ] + ] + it.right = support.unfoldOr(new ArrayList(typeTrace.type2And.values)) + ] + ] + ] + + trace.specification.formulas += hierarch + } + + def boolean dfsSupertypeCheck(Type type, Type type2) { + // There is surely a better way to do this + if (type.supertypes.isEmpty) + return false + else { + if (type.supertypes.contains(type2)) + return true + else { + for (supertype : type.supertypes) { + if(dfsSupertypeCheck(supertype, type2)) return true + } + } + } + } + + override transformTypeReference(Type referred, Logic2VampireLanguageMapper mapper, + Logic2VampireLanguageMapperTrace trace) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + } + + override getUndefinedSupertype(Logic2VampireLanguageMapperTrace trace) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + } + + override getUndefinedSupertypeScope(int undefinedScope, Logic2VampireLanguageMapperTrace trace) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + } + + override transformReference(DefinedElement referred, Logic2VampireLanguageMapperTrace trace) { + createVLSDoubleQuote => [ + it.value = "\"a" + referred.name + "\"" + ] + } + + override getTypeInterpreter() { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + } + +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireModelInterpretation_TypeInterpretation.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireModelInterpretation_TypeInterpretation.xtend new file mode 100644 index 00000000..66f4fb06 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireModelInterpretation_TypeInterpretation.xtend @@ -0,0 +1,5 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder + +interface VampireModelInterpretation_TypeInterpretation { + +} \ No newline at end of file diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtend new file mode 100644 index 00000000..863ec783 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtend @@ -0,0 +1,5 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder + +class VampireModelInterpretation_TypeInterpretation_FilteredTypes implements VampireModelInterpretation_TypeInterpretation { + //TODO +} \ No newline at end of file diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin new file mode 100644 index 00000000..e8e82269 Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin new file mode 100644 index 00000000..dee2a0a8 Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.gitignore new file mode 100644 index 00000000..9efd2ac5 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.gitignore @@ -0,0 +1,4 @@ +/.VampireSolver.java._trace +/.TypeMappingTechnique.java._trace +/.VampireBackendSolver.java._trace +/.VampireSolverConfiguration.java._trace diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/TypeMappingTechnique.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/TypeMappingTechnique.java new file mode 100644 index 00000000..8ffba2f1 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/TypeMappingTechnique.java @@ -0,0 +1,6 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner; + +@SuppressWarnings("all") +public enum TypeMappingTechnique { + FilteredTypes; +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireBackendSolver.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireBackendSolver.java new file mode 100644 index 00000000..91e9bed0 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireBackendSolver.java @@ -0,0 +1,5 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner; + +@SuppressWarnings("all") +public enum VampireBackendSolver { +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.java new file mode 100644 index 00000000..81cae109 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.java @@ -0,0 +1,80 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner; + +import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup; +import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetupGenerated; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_TypeMapper_FilteredTypes; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicModelInterpretation; +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasonerException; +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration; +import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; +import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; +import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; +import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult; +import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; +import java.io.PrintWriter; +import java.util.List; +import org.eclipse.xtend2.lib.StringConcatenation; +import org.eclipse.xtext.xbase.lib.Exceptions; + +@SuppressWarnings("all") +public class VampireSolver extends LogicReasoner { + public VampireSolver() { + VampireLanguagePackage.eINSTANCE.eClass(); + final VampireLanguageStandaloneSetupGenerated x = new VampireLanguageStandaloneSetupGenerated(); + VampireLanguageStandaloneSetup.doSetup(); + } + + private final Logic2VampireLanguageMapper forwardMapper = new Logic2VampireLanguageMapper(new Logic2VampireLanguageMapper_TypeMapper_FilteredTypes()); + + private final String fileName = "problem.tptp"; + + @Override + public LogicResult solve(final LogicProblem problem, final LogicSolverConfiguration configuration, final ReasonerWorkspace workspace) throws LogicReasonerException { + try { + final VampireSolverConfiguration vampireConfig = this.asConfig(configuration); + final long transformationStart = System.currentTimeMillis(); + final TracedOutput result = this.forwardMapper.transformProblem(problem, vampireConfig); + final VampireModel vampireProblem = result.getOutput(); + final Logic2VampireLanguageMapperTrace forwardTrace = result.getTrace(); + String fileURI = null; + String vampireCode = null; + if (vampireConfig.writeToFile) { + fileURI = workspace.writeModel(vampireProblem, this.fileName).toFileString(); + } else { + vampireCode = workspace.writeModelToString(vampireProblem, this.fileName); + } + long _currentTimeMillis = System.currentTimeMillis(); + final long transformationTime = (_currentTimeMillis - transformationStart); + final PrintWriter out = new PrintWriter("output/files/vampireCode.tptp"); + out.println(vampireCode); + out.close(); + return null; + } catch (Throwable _e) { + throw Exceptions.sneakyThrow(_e); + } + } + + public VampireSolverConfiguration asConfig(final LogicSolverConfiguration configuration) { + if ((configuration instanceof VampireSolverConfiguration)) { + return ((VampireSolverConfiguration)configuration); + } else { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("The configuration have to be an "); + String _simpleName = VampireSolverConfiguration.class.getSimpleName(); + _builder.append(_simpleName); + _builder.append("!"); + throw new IllegalArgumentException(_builder.toString()); + } + } + + @Override + public List getInterpretations(final ModelResult modelResult) { + return null; + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolverConfiguration.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolverConfiguration.java new file mode 100644 index 00000000..d392016e --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolverConfiguration.java @@ -0,0 +1,10 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner; + +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration; + +@SuppressWarnings("all") +public class VampireSolverConfiguration extends LogicSolverConfiguration { + public int symmetry = 0; + + public boolean writeToFile = false; +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin new file mode 100644 index 00000000..10edee94 Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin new file mode 100644 index 00000000..50c1d625 Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin new file mode 100644 index 00000000..f331beac Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin new file mode 100644 index 00000000..e929e637 Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin new file mode 100644 index 00000000..cc7aea7c Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin new file mode 100644 index 00000000..1b6cf5d1 Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtendbin new file mode 100644 index 00000000..7a4d5bc7 Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtendbin new file mode 100644 index 00000000..7b6b2f9a Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin new file mode 100644 index 00000000..f8b3c54e Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin new file mode 100644 index 00000000..52b870a3 Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin differ diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.gitignore new file mode 100644 index 00000000..d27ff186 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.gitignore @@ -0,0 +1,11 @@ +/.Logic2VampireLanguageMapper_ConstantMapper.java._trace +/.Logic2VampireLanguageMapper.java._trace +/.Logic2VampireLanguageMapperTrace.java._trace +/.Logic2VampireLanguageMapper_TypeMapperTrace.java._trace +/.VampireModelInterpretation_TypeInterpretation.java._trace +/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.java._trace +/.Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.java._trace +/.Logic2VampireLanguageMapper_TypeMapper.java._trace +/.Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.java._trace +/.Logic2VampireLanguageMapper_Support.java._trace +/.Logic2VampireLanguageMapper_RelationMapper.java._trace diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.java new file mode 100644 index 00000000..390a6b10 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.java @@ -0,0 +1,442 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder; + +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_ConstantMapper; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_RelationMapper; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_Support; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_TypeMapper; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInt; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSReal; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; +import com.google.common.collect.Iterables; +import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.And; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Assertion; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.BoolLiteral; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.BoolTypeReference; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ComplexTypeReference; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDeclaration; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDefinition; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Distinct; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Equals; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Exists; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Forall; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.FunctionDeclaration; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.FunctionDefinition; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Iff; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Impl; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.InstanceOf; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.IntLiteral; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Not; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Or; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RealLiteral; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.SymbolicDeclaration; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.SymbolicValue; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Term; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeReference; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable; +import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; +import hu.bme.mit.inf.dslreasoner.util.CollectionsUtil; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; +import org.eclipse.emf.common.util.EList; +import org.eclipse.xtend.lib.annotations.AccessorType; +import org.eclipse.xtend.lib.annotations.Accessors; +import org.eclipse.xtext.xbase.lib.Extension; +import org.eclipse.xtext.xbase.lib.Functions.Function1; +import org.eclipse.xtext.xbase.lib.IterableExtensions; +import org.eclipse.xtext.xbase.lib.ListExtensions; +import org.eclipse.xtext.xbase.lib.ObjectExtensions; +import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; +import org.eclipse.xtext.xbase.lib.Pure; + +@SuppressWarnings("all") +public class Logic2VampireLanguageMapper { + @Extension + private final VampireLanguageFactory factory = VampireLanguageFactory.eINSTANCE; + + private final Logic2VampireLanguageMapper_Support support = new Logic2VampireLanguageMapper_Support(); + + @Accessors(AccessorType.PUBLIC_GETTER) + private final Logic2VampireLanguageMapper_ConstantMapper constantMapper = new Logic2VampireLanguageMapper_ConstantMapper(this); + + @Accessors(AccessorType.PUBLIC_GETTER) + private final Logic2VampireLanguageMapper_RelationMapper relationMapper = new Logic2VampireLanguageMapper_RelationMapper(this); + + @Accessors(AccessorType.PUBLIC_GETTER) + private final Logic2VampireLanguageMapper_TypeMapper typeMapper; + + public Logic2VampireLanguageMapper(final Logic2VampireLanguageMapper_TypeMapper typeMapper) { + this.typeMapper = typeMapper; + } + + public TracedOutput transformProblem(final LogicProblem problem, final VampireSolverConfiguration configuration) { + VLSComment _createVLSComment = this.factory.createVLSComment(); + final Procedure1 _function = (VLSComment it) -> { + it.setComment("%This is an initial Test Comment \r"); + }; + final VLSComment initialComment = ObjectExtensions.operator_doubleArrow(_createVLSComment, _function); + VampireModel _createVampireModel = this.factory.createVampireModel(); + final Procedure1 _function_1 = (VampireModel it) -> { + EList _comments = it.getComments(); + _comments.add(initialComment); + }; + final VampireModel specification = ObjectExtensions.operator_doubleArrow(_createVampireModel, _function_1); + Logic2VampireLanguageMapperTrace _logic2VampireLanguageMapperTrace = new Logic2VampireLanguageMapperTrace(); + final Procedure1 _function_2 = (Logic2VampireLanguageMapperTrace it) -> { + it.specification = specification; + }; + final Logic2VampireLanguageMapperTrace trace = ObjectExtensions.operator_doubleArrow(_logic2VampireLanguageMapperTrace, _function_2); + boolean _isEmpty = problem.getTypes().isEmpty(); + boolean _not = (!_isEmpty); + if (_not) { + this.typeMapper.transformTypes(problem.getTypes(), problem.getElements(), this, trace); + } + trace.constantDefinitions = this.collectConstantDefinitions(problem); + trace.relationDefinitions = this.collectRelationDefinitions(problem); + final Consumer _function_3 = (Relation it) -> { + this.relationMapper.transformRelation(it, trace); + }; + problem.getRelations().forEach(_function_3); + final Consumer _function_4 = (ConstantDefinition it) -> { + this.constantMapper.transformConstantDefinitionSpecification(it, trace); + }; + Iterables.filter(problem.getConstants(), ConstantDefinition.class).forEach(_function_4); + EList _assertions = problem.getAssertions(); + for (final Assertion assertion : _assertions) { + this.transformAssertion(assertion, trace); + } + return new TracedOutput(specification, trace); + } + + protected VLSTerm _transformTypeReference(final BoolTypeReference boolTypeReference, final Logic2VampireLanguageMapperTrace trace) { + return null; + } + + private HashMap collectConstantDefinitions(final LogicProblem problem) { + final HashMap res = new HashMap(); + final Function1 _function = (ConstantDefinition it) -> { + ConstantDeclaration _defines = it.getDefines(); + return Boolean.valueOf((_defines != null)); + }; + final Consumer _function_1 = (ConstantDefinition it) -> { + res.put(it.getDefines(), it); + }; + IterableExtensions.filter(Iterables.filter(problem.getConstants(), ConstantDefinition.class), _function).forEach(_function_1); + return res; + } + + private HashMap collectRelationDefinitions(final LogicProblem problem) { + final HashMap res = new HashMap(); + final Function1 _function = (RelationDefinition it) -> { + RelationDeclaration _defines = it.getDefines(); + return Boolean.valueOf((_defines != null)); + }; + final Consumer _function_1 = (RelationDefinition it) -> { + res.put(it.getDefines(), it); + }; + IterableExtensions.filter(Iterables.filter(problem.getRelations(), RelationDefinition.class), _function).forEach(_function_1); + return res; + } + + protected boolean transformAssertion(final Assertion assertion, final Logic2VampireLanguageMapperTrace trace) { + boolean _xblockexpression = false; + { + VLSFofFormula _createVLSFofFormula = this.factory.createVLSFofFormula(); + final Procedure1 _function = (VLSFofFormula it) -> { + it.setName(this.support.toID(assertion.getName())); + it.setFofRole("axiom"); + it.setFofFormula(this.transformTerm(assertion.getValue(), trace, Collections.EMPTY_MAP)); + }; + final VLSFofFormula res = ObjectExtensions.operator_doubleArrow(_createVLSFofFormula, _function); + EList _formulas = trace.specification.getFormulas(); + _xblockexpression = _formulas.add(res); + } + return _xblockexpression; + } + + protected VLSTerm _transformTerm(final BoolLiteral literal, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + VLSTerm _xifexpression = null; + boolean _isValue = literal.isValue(); + boolean _equals = (_isValue == true); + if (_equals) { + _xifexpression = this.factory.createVLSTrue(); + } else { + _xifexpression = this.factory.createVLSFalse(); + } + return _xifexpression; + } + + protected VLSTerm _transformTerm(final IntLiteral literal, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + VLSInt _createVLSInt = this.factory.createVLSInt(); + final Procedure1 _function = (VLSInt it) -> { + it.setValue(Integer.valueOf(literal.getValue()).toString()); + }; + return ObjectExtensions.operator_doubleArrow(_createVLSInt, _function); + } + + protected VLSTerm _transformTerm(final RealLiteral literal, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + VLSReal _createVLSReal = this.factory.createVLSReal(); + final Procedure1 _function = (VLSReal it) -> { + it.setValue(literal.getValue().toString()); + }; + return ObjectExtensions.operator_doubleArrow(_createVLSReal, _function); + } + + protected VLSTerm _transformTerm(final Not not, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + VLSUnaryNegation _createVLSUnaryNegation = this.factory.createVLSUnaryNegation(); + final Procedure1 _function = (VLSUnaryNegation it) -> { + it.setOperand(this.transformTerm(not.getOperand(), trace, variables)); + }; + return ObjectExtensions.operator_doubleArrow(_createVLSUnaryNegation, _function); + } + + protected VLSTerm _transformTerm(final And and, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + final Function1 _function = (Term it) -> { + return this.transformTerm(it, trace, variables); + }; + return this.support.unfoldAnd(ListExtensions.map(and.getOperands(), _function)); + } + + protected VLSTerm _transformTerm(final Or or, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + final Function1 _function = (Term it) -> { + return this.transformTerm(it, trace, variables); + }; + return this.support.unfoldOr(ListExtensions.map(or.getOperands(), _function)); + } + + protected VLSTerm _transformTerm(final Impl impl, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + VLSImplies _createVLSImplies = this.factory.createVLSImplies(); + final Procedure1 _function = (VLSImplies it) -> { + it.setLeft(this.transformTerm(impl.getLeftOperand(), trace, variables)); + it.setRight(this.transformTerm(impl.getRightOperand(), trace, variables)); + }; + return ObjectExtensions.operator_doubleArrow(_createVLSImplies, _function); + } + + protected VLSTerm _transformTerm(final Iff iff, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent(); + final Procedure1 _function = (VLSEquivalent it) -> { + it.setLeft(this.transformTerm(iff.getLeftOperand(), trace, variables)); + it.setRight(this.transformTerm(iff.getRightOperand(), trace, variables)); + }; + return ObjectExtensions.operator_doubleArrow(_createVLSEquivalent, _function); + } + + protected VLSTerm _transformTerm(final Equals equals, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + VLSEquality _createVLSEquality = this.factory.createVLSEquality(); + final Procedure1 _function = (VLSEquality it) -> { + it.setLeft(this.transformTerm(equals.getLeftOperand(), trace, variables)); + it.setRight(this.transformTerm(equals.getRightOperand(), trace, variables)); + }; + return ObjectExtensions.operator_doubleArrow(_createVLSEquality, _function); + } + + protected VLSTerm _transformTerm(final Distinct distinct, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + return this.support.unfoldDistinctTerms(this, distinct.getOperands(), trace, variables); + } + + protected VLSTerm _transformTerm(final Forall forall, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + return this.support.createUniversallyQuantifiedExpression(this, forall, trace, variables); + } + + protected VLSTerm _transformTerm(final Exists exists, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + return this.support.createExistentiallyQuantifiedExpression(this, exists, trace, variables); + } + + protected VLSTerm _transformTerm(final InstanceOf instanceOf, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + VLSFunction _createVLSFunction = this.factory.createVLSFunction(); + final Procedure1 _function = (VLSFunction it) -> { + TypeReference _range = instanceOf.getRange(); + it.setConstant(this.support.toIDMultiple("type", ((ComplexTypeReference) _range).getReferred().getName())); + EList _terms = it.getTerms(); + VLSTerm _transformTerm = this.transformTerm(instanceOf.getValue(), trace, variables); + _terms.add(_transformTerm); + }; + return ObjectExtensions.operator_doubleArrow(_createVLSFunction, _function); + } + + protected VLSTerm _transformTerm(final SymbolicValue symbolicValue, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + return this.transformSymbolicReference(symbolicValue.getSymbolicReference(), symbolicValue.getParameterSubstitutions(), trace, variables); + } + + protected VLSTerm _transformSymbolicReference(final DefinedElement referred, final List parameterSubstitutions, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + return this.typeMapper.transformReference(referred, trace); + } + + protected VLSTerm _transformSymbolicReference(final ConstantDeclaration constant, final List parameterSubstitutions, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + VLSConstant _createVLSConstant = this.factory.createVLSConstant(); + final Procedure1 _function = (VLSConstant it) -> { + it.setName(this.support.toID(constant.getName())); + }; + final VLSConstant res = ObjectExtensions.operator_doubleArrow(_createVLSConstant, _function); + return res; + } + + protected VLSTerm _transformSymbolicReference(final ConstantDefinition constant, final List parameterSubstitutions, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + return null; + } + + protected VLSTerm _transformSymbolicReference(final Variable variable, final List parameterSubstitutions, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + VLSVariable _createVLSVariable = this.factory.createVLSVariable(); + final Procedure1 _function = (VLSVariable it) -> { + it.setName(this.support.toID(CollectionsUtil.lookup(variable, variables).getName())); + }; + final VLSVariable res = ObjectExtensions.operator_doubleArrow(_createVLSVariable, _function); + return res; + } + + protected VLSTerm _transformSymbolicReference(final FunctionDeclaration function, final List parameterSubstitutions, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + return null; + } + + protected VLSTerm _transformSymbolicReference(final FunctionDefinition function, final List parameterSubstitutions, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + return null; + } + + /** + * def dispatch protected VLSTerm transformSymbolicReference(Relation relation, + * List parameterSubstitutions, Logic2VampireLanguageMapperTrace trace, + * Map variables) { + * if (trace.relationDefinitions.containsKey(relation)) { + * this.transformSymbolicReference(relation.lookup(trace.relationDefinitions), + * parameterSubstitutions, trace, variables) + * } + * else { + * // if (relationMapper.transformToHostedField(relation, trace)) { + * // val VLSRelation = relation.lookup(trace.relationDeclaration2Field) + * // // R(a,b) => + * // // b in a.R + * // return createVLSSubset => [ + * // it.leftOperand = parameterSubstitutions.get(1).transformTerm(trace, variables) + * // it.rightOperand = createVLSJoin => [ + * // it.leftOperand = parameterSubstitutions.get(0).transformTerm(trace, variables) + * // it.rightOperand = createVLSReference => [it.referred = VLSRelation] + * // ] + * // ] + * // } else { + * // val target = createVLSJoin => [ + * // leftOperand = createVLSReference => [referred = trace.logicLanguage] + * // rightOperand = createVLSReference => [ + * // referred = relation.lookup(trace.relationDeclaration2Global) + * // ] + * // ] + * // val source = support.unfoldTermDirectProduct(this, parameterSubstitutions, trace, variables) + * // + * // return createVLSSubset => [ + * // leftOperand = source + * // rightOperand = target + * // ] + * // } + * } + * } + */ + protected VLSTerm _transformSymbolicReference(final Relation relation, final List parameterSubstitutions, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + VLSFunction _createVLSFunction = this.factory.createVLSFunction(); + final Procedure1 _function = (VLSFunction it) -> { + it.setConstant(this.support.toIDMultiple("rel", relation.getName())); + EList _terms = it.getTerms(); + final Function1 _function_1 = (Term p) -> { + return this.transformTerm(p, trace, variables); + }; + List _map = ListExtensions.map(parameterSubstitutions, _function_1); + Iterables.addAll(_terms, _map); + }; + return ObjectExtensions.operator_doubleArrow(_createVLSFunction, _function); + } + + protected VLSTerm transformTypeReference(final BoolTypeReference boolTypeReference, final Logic2VampireLanguageMapperTrace trace) { + return _transformTypeReference(boolTypeReference, trace); + } + + protected VLSTerm transformTerm(final Term and, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + if (and instanceof And) { + return _transformTerm((And)and, trace, variables); + } else if (and instanceof BoolLiteral) { + return _transformTerm((BoolLiteral)and, trace, variables); + } else if (and instanceof Distinct) { + return _transformTerm((Distinct)and, trace, variables); + } else if (and instanceof Equals) { + return _transformTerm((Equals)and, trace, variables); + } else if (and instanceof Exists) { + return _transformTerm((Exists)and, trace, variables); + } else if (and instanceof Forall) { + return _transformTerm((Forall)and, trace, variables); + } else if (and instanceof Iff) { + return _transformTerm((Iff)and, trace, variables); + } else if (and instanceof Impl) { + return _transformTerm((Impl)and, trace, variables); + } else if (and instanceof IntLiteral) { + return _transformTerm((IntLiteral)and, trace, variables); + } else if (and instanceof Not) { + return _transformTerm((Not)and, trace, variables); + } else if (and instanceof Or) { + return _transformTerm((Or)and, trace, variables); + } else if (and instanceof RealLiteral) { + return _transformTerm((RealLiteral)and, trace, variables); + } else if (and instanceof InstanceOf) { + return _transformTerm((InstanceOf)and, trace, variables); + } else if (and instanceof SymbolicValue) { + return _transformTerm((SymbolicValue)and, trace, variables); + } else { + throw new IllegalArgumentException("Unhandled parameter types: " + + Arrays.asList(and, trace, variables).toString()); + } + } + + protected VLSTerm transformSymbolicReference(final SymbolicDeclaration constant, final List parameterSubstitutions, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + if (constant instanceof ConstantDeclaration) { + return _transformSymbolicReference((ConstantDeclaration)constant, parameterSubstitutions, trace, variables); + } else if (constant instanceof ConstantDefinition) { + return _transformSymbolicReference((ConstantDefinition)constant, parameterSubstitutions, trace, variables); + } else if (constant instanceof FunctionDeclaration) { + return _transformSymbolicReference((FunctionDeclaration)constant, parameterSubstitutions, trace, variables); + } else if (constant instanceof FunctionDefinition) { + return _transformSymbolicReference((FunctionDefinition)constant, parameterSubstitutions, trace, variables); + } else if (constant instanceof DefinedElement) { + return _transformSymbolicReference((DefinedElement)constant, parameterSubstitutions, trace, variables); + } else if (constant instanceof Relation) { + return _transformSymbolicReference((Relation)constant, parameterSubstitutions, trace, variables); + } else if (constant instanceof Variable) { + return _transformSymbolicReference((Variable)constant, parameterSubstitutions, trace, variables); + } else { + throw new IllegalArgumentException("Unhandled parameter types: " + + Arrays.asList(constant, parameterSubstitutions, trace, variables).toString()); + } + } + + @Pure + public Logic2VampireLanguageMapper_ConstantMapper getConstantMapper() { + return this.constantMapper; + } + + @Pure + public Logic2VampireLanguageMapper_RelationMapper getRelationMapper() { + return this.relationMapper; + } + + @Pure + public Logic2VampireLanguageMapper_TypeMapper getTypeMapper() { + return this.typeMapper; + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapperTrace.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapperTrace.java new file mode 100644 index 00000000..855815f8 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapperTrace.java @@ -0,0 +1,34 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder; + +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_TypeMapperTrace; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDeclaration; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDefinition; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable; +import java.util.HashMap; +import java.util.Map; + +@SuppressWarnings("all") +public class Logic2VampireLanguageMapperTrace { + public VampireModel specification; + + public VLSFofFormula logicLanguageBody; + + public VLSTerm formula; + + public Logic2VampireLanguageMapper_TypeMapperTrace typeMapperTrace; + + public Map constantDefinitions; + + public Map relationDefinitions; + + public final Map relationVar2VLS = new HashMap(); + + public final Map relationVar2TypeDec = new HashMap(); +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ConstantMapper.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ConstantMapper.java new file mode 100644 index 00000000..e5f42e73 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ConstantMapper.java @@ -0,0 +1,34 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder; + +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_Support; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDefinition; +import org.eclipse.xtext.xbase.lib.Extension; + +@SuppressWarnings("all") +public class Logic2VampireLanguageMapper_ConstantMapper { + @Extension + private final VampireLanguageFactory factory = VampireLanguageFactory.eINSTANCE; + + private final Logic2VampireLanguageMapper_Support support = new Logic2VampireLanguageMapper_Support(); + + private final Logic2VampireLanguageMapper base; + + public Logic2VampireLanguageMapper_ConstantMapper(final Logic2VampireLanguageMapper base) { + this.base = base; + } + + protected Object _transformConstant(final ConstantDefinition constant, final Logic2VampireLanguageMapperTrace trace) { + return null; + } + + protected Object transformConstantDefinitionSpecification(final ConstantDefinition constant, final Logic2VampireLanguageMapperTrace trace) { + return null; + } + + protected Object transformConstant(final ConstantDefinition constant, final Logic2VampireLanguageMapperTrace trace) { + return _transformConstant(constant, trace); + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java new file mode 100644 index 00000000..561402a7 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java @@ -0,0 +1,296 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder; + +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_Support; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ComplexTypeReference; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeReference; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable; +import hu.bme.mit.inf.dslreasoner.util.CollectionsUtil; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.eclipse.emf.common.util.EList; +import org.eclipse.xtext.xbase.lib.Conversions; +import org.eclipse.xtext.xbase.lib.ExclusiveRange; +import org.eclipse.xtext.xbase.lib.Extension; +import org.eclipse.xtext.xbase.lib.ObjectExtensions; +import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; + +@SuppressWarnings("all") +public class Logic2VampireLanguageMapper_RelationMapper { + @Extension + private final VampireLanguageFactory factory = VampireLanguageFactory.eINSTANCE; + + private final Logic2VampireLanguageMapper_Support support = new Logic2VampireLanguageMapper_Support(); + + private final Logic2VampireLanguageMapper base; + + public Logic2VampireLanguageMapper_RelationMapper(final Logic2VampireLanguageMapper base) { + this.base = base; + } + + public void _transformRelation(final RelationDefinition r, final Logic2VampireLanguageMapperTrace trace) { + final Map relationVar2VLS = new HashMap(); + final Map relationVar2TypeDecComply = new HashMap(); + final Map relationVar2TypeDecRes = new HashMap(); + final ArrayList typedefs = new ArrayList(); + EList _variables = r.getVariables(); + for (final Variable variable : _variables) { + { + VLSVariable _createVLSVariable = this.factory.createVLSVariable(); + final Procedure1 _function = (VLSVariable it) -> { + it.setName(this.support.toIDMultiple("Var", variable.getName())); + }; + final VLSVariable v = ObjectExtensions.operator_doubleArrow(_createVLSVariable, _function); + relationVar2VLS.put(variable, v); + VLSFunction _createVLSFunction = this.factory.createVLSFunction(); + final Procedure1 _function_1 = (VLSFunction it) -> { + TypeReference _range = variable.getRange(); + it.setConstant(this.support.toIDMultiple("type", ((ComplexTypeReference) _range).getReferred().getName())); + EList _terms = it.getTerms(); + VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); + final Procedure1 _function_2 = (VLSVariable it_1) -> { + it_1.setName(this.support.toIDMultiple("Var", variable.getName())); + }; + VLSVariable _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSVariable_1, _function_2); + _terms.add(_doubleArrow); + }; + final VLSFunction varTypeComply = ObjectExtensions.operator_doubleArrow(_createVLSFunction, _function_1); + relationVar2TypeDecComply.put(variable, varTypeComply); + VLSFunction _createVLSFunction_1 = this.factory.createVLSFunction(); + final Procedure1 _function_2 = (VLSFunction it) -> { + TypeReference _range = variable.getRange(); + it.setConstant(this.support.toIDMultiple("type", ((ComplexTypeReference) _range).getReferred().getName())); + EList _terms = it.getTerms(); + VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); + final Procedure1 _function_3 = (VLSVariable it_1) -> { + it_1.setName(this.support.toIDMultiple("Var", variable.getName())); + }; + VLSVariable _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSVariable_1, _function_3); + _terms.add(_doubleArrow); + }; + final VLSFunction varTypeRes = ObjectExtensions.operator_doubleArrow(_createVLSFunction_1, _function_2); + relationVar2TypeDecRes.put(variable, varTypeRes); + } + } + VLSFofFormula _createVLSFofFormula = this.factory.createVLSFofFormula(); + final Procedure1 _function = (VLSFofFormula it) -> { + it.setName(this.support.toIDMultiple("compliance", r.getName())); + it.setFofRole("axiom"); + VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); + final Procedure1 _function_1 = (VLSUniversalQuantifier it_1) -> { + EList _variables_1 = r.getVariables(); + for (final Variable variable_1 : _variables_1) { + { + VLSVariable _createVLSVariable = this.factory.createVLSVariable(); + final Procedure1 _function_2 = (VLSVariable it_2) -> { + it_2.setName(CollectionsUtil.lookup(variable_1, relationVar2VLS).getName()); + }; + final VLSVariable v = ObjectExtensions.operator_doubleArrow(_createVLSVariable, _function_2); + EList _variables_2 = it_1.getVariables(); + _variables_2.add(v); + } + } + VLSImplies _createVLSImplies = this.factory.createVLSImplies(); + final Procedure1 _function_2 = (VLSImplies it_2) -> { + VLSFunction _createVLSFunction = this.factory.createVLSFunction(); + final Procedure1 _function_3 = (VLSFunction it_3) -> { + it_3.setConstant(this.support.toIDMultiple("rel", r.getName())); + EList _variables_2 = r.getVariables(); + for (final Variable variable_2 : _variables_2) { + { + VLSVariable _createVLSVariable = this.factory.createVLSVariable(); + final Procedure1 _function_4 = (VLSVariable it_4) -> { + it_4.setName(CollectionsUtil.lookup(variable_2, relationVar2VLS).getName()); + }; + final VLSVariable v = ObjectExtensions.operator_doubleArrow(_createVLSVariable, _function_4); + EList _terms = it_3.getTerms(); + _terms.add(v); + } + } + }; + VLSFunction _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSFunction, _function_3); + it_2.setLeft(_doubleArrow); + Collection _values = relationVar2TypeDecComply.values(); + ArrayList _arrayList = new ArrayList(_values); + it_2.setRight(this.support.unfoldAnd(_arrayList)); + }; + VLSImplies _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSImplies, _function_2); + it_1.setOperand(_doubleArrow); + }; + VLSUniversalQuantifier _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSUniversalQuantifier, _function_1); + it.setFofFormula(_doubleArrow); + }; + final VLSFofFormula comply = ObjectExtensions.operator_doubleArrow(_createVLSFofFormula, _function); + VLSFofFormula _createVLSFofFormula_1 = this.factory.createVLSFofFormula(); + final Procedure1 _function_1 = (VLSFofFormula it) -> { + it.setName(this.support.toIDMultiple("relation", r.getName())); + it.setFofRole("axiom"); + VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); + final Procedure1 _function_2 = (VLSUniversalQuantifier it_1) -> { + EList _variables_1 = r.getVariables(); + for (final Variable variable_1 : _variables_1) { + { + VLSVariable _createVLSVariable = this.factory.createVLSVariable(); + final Procedure1 _function_3 = (VLSVariable it_2) -> { + it_2.setName(CollectionsUtil.lookup(variable_1, relationVar2VLS).getName()); + }; + final VLSVariable v = ObjectExtensions.operator_doubleArrow(_createVLSVariable, _function_3); + EList _variables_2 = it_1.getVariables(); + _variables_2.add(v); + } + } + VLSImplies _createVLSImplies = this.factory.createVLSImplies(); + final Procedure1 _function_3 = (VLSImplies it_2) -> { + Collection _values = relationVar2TypeDecRes.values(); + ArrayList _arrayList = new ArrayList(_values); + it_2.setLeft(this.support.unfoldAnd(_arrayList)); + VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent(); + final Procedure1 _function_4 = (VLSEquivalent it_3) -> { + VLSFunction _createVLSFunction = this.factory.createVLSFunction(); + final Procedure1 _function_5 = (VLSFunction it_4) -> { + it_4.setConstant(this.support.toIDMultiple("rel", r.getName())); + EList _variables_2 = r.getVariables(); + for (final Variable variable_2 : _variables_2) { + { + VLSVariable _createVLSVariable = this.factory.createVLSVariable(); + final Procedure1 _function_6 = (VLSVariable it_5) -> { + it_5.setName(CollectionsUtil.lookup(variable_2, relationVar2VLS).getName()); + }; + final VLSVariable v = ObjectExtensions.operator_doubleArrow(_createVLSVariable, _function_6); + EList _terms = it_4.getTerms(); + _terms.add(v); + } + } + }; + VLSFunction _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSFunction, _function_5); + it_3.setLeft(_doubleArrow); + it_3.setRight(this.base.transformTerm(r.getValue(), trace, relationVar2VLS)); + }; + VLSEquivalent _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSEquivalent, _function_4); + it_2.setRight(_doubleArrow); + }; + VLSImplies _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSImplies, _function_3); + it_1.setOperand(_doubleArrow); + }; + VLSUniversalQuantifier _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSUniversalQuantifier, _function_2); + it.setFofFormula(_doubleArrow); + }; + final VLSFofFormula res = ObjectExtensions.operator_doubleArrow(_createVLSFofFormula_1, _function_1); + EList _formulas = trace.specification.getFormulas(); + _formulas.add(comply); + EList _formulas_1 = trace.specification.getFormulas(); + _formulas_1.add(res); + } + + public void _transformRelation(final RelationDeclaration r, final Logic2VampireLanguageMapperTrace trace) { + final List relationVar2VLS = new ArrayList(); + final List relationVar2TypeDecComply = new ArrayList(); + final ArrayList typedefs = new ArrayList(); + int _length = ((Object[])Conversions.unwrapArray(r.getParameters(), Object.class)).length; + ExclusiveRange _doubleDotLessThan = new ExclusiveRange(0, _length, true); + for (final Integer i : _doubleDotLessThan) { + { + VLSVariable _createVLSVariable = this.factory.createVLSVariable(); + final Procedure1 _function = (VLSVariable it) -> { + it.setName(this.support.toIDMultiple("Var", i.toString())); + }; + final VLSVariable v = ObjectExtensions.operator_doubleArrow(_createVLSVariable, _function); + relationVar2VLS.add(v); + VLSFunction _createVLSFunction = this.factory.createVLSFunction(); + final Procedure1 _function_1 = (VLSFunction it) -> { + TypeReference _get = r.getParameters().get((i).intValue()); + it.setConstant(this.support.toIDMultiple("type", ((ComplexTypeReference) _get).getReferred().getName())); + EList _terms = it.getTerms(); + VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); + final Procedure1 _function_2 = (VLSVariable it_1) -> { + it_1.setName(this.support.toIDMultiple("Var", i.toString())); + }; + VLSVariable _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSVariable_1, _function_2); + _terms.add(_doubleArrow); + }; + final VLSFunction varTypeComply = ObjectExtensions.operator_doubleArrow(_createVLSFunction, _function_1); + relationVar2TypeDecComply.add(varTypeComply); + } + } + VLSFofFormula _createVLSFofFormula = this.factory.createVLSFofFormula(); + final Procedure1 _function = (VLSFofFormula it) -> { + it.setName(this.support.toIDMultiple("compliance", r.getName())); + it.setFofRole("axiom"); + VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); + final Procedure1 _function_1 = (VLSUniversalQuantifier it_1) -> { + int _length_1 = ((Object[])Conversions.unwrapArray(r.getParameters(), Object.class)).length; + ExclusiveRange _doubleDotLessThan_1 = new ExclusiveRange(0, _length_1, true); + for (final Integer i_1 : _doubleDotLessThan_1) { + { + VLSVariable _createVLSVariable = this.factory.createVLSVariable(); + final Procedure1 _function_2 = (VLSVariable it_2) -> { + it_2.setName(relationVar2VLS.get((i_1).intValue()).getName()); + }; + final VLSVariable v = ObjectExtensions.operator_doubleArrow(_createVLSVariable, _function_2); + EList _variables = it_1.getVariables(); + _variables.add(v); + } + } + VLSImplies _createVLSImplies = this.factory.createVLSImplies(); + final Procedure1 _function_2 = (VLSImplies it_2) -> { + VLSFunction _createVLSFunction = this.factory.createVLSFunction(); + final Procedure1 _function_3 = (VLSFunction it_3) -> { + it_3.setConstant(this.support.toIDMultiple("rel", r.getName())); + int _length_2 = ((Object[])Conversions.unwrapArray(r.getParameters(), Object.class)).length; + ExclusiveRange _doubleDotLessThan_2 = new ExclusiveRange(0, _length_2, true); + for (final Integer i_2 : _doubleDotLessThan_2) { + { + VLSVariable _createVLSVariable = this.factory.createVLSVariable(); + final Procedure1 _function_4 = (VLSVariable it_4) -> { + it_4.setName(relationVar2VLS.get((i_2).intValue()).getName()); + }; + final VLSVariable v = ObjectExtensions.operator_doubleArrow(_createVLSVariable, _function_4); + EList _terms = it_3.getTerms(); + _terms.add(v); + } + } + }; + VLSFunction _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSFunction, _function_3); + it_2.setLeft(_doubleArrow); + it_2.setRight(this.support.unfoldAnd(relationVar2TypeDecComply)); + }; + VLSImplies _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSImplies, _function_2); + it_1.setOperand(_doubleArrow); + }; + VLSUniversalQuantifier _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSUniversalQuantifier, _function_1); + it.setFofFormula(_doubleArrow); + }; + final VLSFofFormula comply = ObjectExtensions.operator_doubleArrow(_createVLSFofFormula, _function); + EList _formulas = trace.specification.getFormulas(); + _formulas.add(comply); + } + + public void transformRelation(final Relation r, final Logic2VampireLanguageMapperTrace trace) { + if (r instanceof RelationDeclaration) { + _transformRelation((RelationDeclaration)r, trace); + return; + } else if (r instanceof RelationDefinition) { + _transformRelation((RelationDefinition)r, trace); + return; + } else { + throw new IllegalArgumentException("Unhandled parameter types: " + + Arrays.asList(r, trace).toString()); + } + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java new file mode 100644 index 00000000..e1be7df5 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java @@ -0,0 +1,242 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder; + +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory; +import com.google.common.collect.Iterables; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ComplexTypeReference; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.QuantifiedExpression; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Term; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeReference; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.eclipse.emf.common.util.EList; +import org.eclipse.xtend2.lib.StringConcatenation; +import org.eclipse.xtext.xbase.lib.Conversions; +import org.eclipse.xtext.xbase.lib.ExclusiveRange; +import org.eclipse.xtext.xbase.lib.Extension; +import org.eclipse.xtext.xbase.lib.Functions.Function1; +import org.eclipse.xtext.xbase.lib.IterableExtensions; +import org.eclipse.xtext.xbase.lib.ListExtensions; +import org.eclipse.xtext.xbase.lib.ObjectExtensions; +import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; + +@SuppressWarnings("all") +public class Logic2VampireLanguageMapper_Support { + @Extension + private final VampireLanguageFactory factory = VampireLanguageFactory.eINSTANCE; + + protected String toIDMultiple(final String... ids) { + final Function1 _function = (String it) -> { + return IterableExtensions.join(((Iterable)Conversions.doWrapArray(it.split("\\s+"))), "_"); + }; + return IterableExtensions.join(ListExtensions.map(((List)Conversions.doWrapArray(ids)), _function), "_"); + } + + protected String toID(final String ids) { + return IterableExtensions.join(((Iterable)Conversions.doWrapArray(ids.split("\\s+"))), "_"); + } + + protected VLSTerm unfoldAnd(final List operands) { + int _size = operands.size(); + boolean _equals = (_size == 1); + if (_equals) { + return IterableExtensions.head(operands); + } else { + int _size_1 = operands.size(); + boolean _greaterThan = (_size_1 > 1); + if (_greaterThan) { + VLSAnd _createVLSAnd = this.factory.createVLSAnd(); + final Procedure1 _function = (VLSAnd it) -> { + it.setLeft(IterableExtensions.head(operands)); + it.setRight(this.unfoldAnd(operands.subList(1, operands.size()))); + }; + return ObjectExtensions.operator_doubleArrow(_createVLSAnd, _function); + } else { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("Logic operator with 0 operands!"); + throw new UnsupportedOperationException(_builder.toString()); + } + } + } + + protected VLSTerm unfoldOr(final List operands) { + int _size = operands.size(); + boolean _equals = (_size == 1); + if (_equals) { + return IterableExtensions.head(operands); + } else { + int _size_1 = operands.size(); + boolean _greaterThan = (_size_1 > 1); + if (_greaterThan) { + VLSOr _createVLSOr = this.factory.createVLSOr(); + final Procedure1 _function = (VLSOr it) -> { + it.setLeft(IterableExtensions.head(operands)); + it.setRight(this.unfoldOr(operands.subList(1, operands.size()))); + }; + return ObjectExtensions.operator_doubleArrow(_createVLSOr, _function); + } else { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("Logic operator with 0 operands!"); + throw new UnsupportedOperationException(_builder.toString()); + } + } + } + + protected VLSTerm unfoldDistinctTerms(final Logic2VampireLanguageMapper m, final EList operands, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + int _size = operands.size(); + boolean _equals = (_size == 1); + if (_equals) { + return m.transformTerm(IterableExtensions.head(operands), trace, variables); + } else { + int _size_1 = operands.size(); + boolean _greaterThan = (_size_1 > 1); + if (_greaterThan) { + int _size_2 = operands.size(); + int _size_3 = operands.size(); + int _multiply = (_size_2 * _size_3); + int _divide = (_multiply / 2); + final ArrayList notEquals = new ArrayList(_divide); + int _size_4 = operands.size(); + ExclusiveRange _doubleDotLessThan = new ExclusiveRange(0, _size_4, true); + for (final Integer i : _doubleDotLessThan) { + int _size_5 = operands.size(); + ExclusiveRange _doubleDotLessThan_1 = new ExclusiveRange(((i).intValue() + 1), _size_5, true); + for (final Integer j : _doubleDotLessThan_1) { + VLSInequality _createVLSInequality = this.factory.createVLSInequality(); + final Procedure1 _function = (VLSInequality it) -> { + it.setLeft(m.transformTerm(operands.get((i).intValue()), trace, variables)); + it.setRight(m.transformTerm(operands.get((j).intValue()), trace, variables)); + }; + VLSInequality _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSInequality, _function); + notEquals.add(_doubleArrow); + } + } + return this.unfoldAnd(notEquals); + } else { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("Logic operator with 0 operands!"); + throw new UnsupportedOperationException(_builder.toString()); + } + } + } + + /** + * def protected String toID(List ids) { + * ids.map[it.split("\\s+").join("'")].join("'") + * } + */ + protected VLSTerm createUniversallyQuantifiedExpression(final Logic2VampireLanguageMapper mapper, final QuantifiedExpression expression, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + VLSUniversalQuantifier _xblockexpression = null; + { + final Function1 _function = (Variable v) -> { + VLSVariable _createVLSVariable = this.factory.createVLSVariable(); + final Procedure1 _function_1 = (VLSVariable it) -> { + it.setName(this.toIDMultiple("Var", v.getName())); + }; + return ObjectExtensions.operator_doubleArrow(_createVLSVariable, _function_1); + }; + final Map variableMap = IterableExtensions.toInvertedMap(expression.getQuantifiedVariables(), _function); + final ArrayList typedefs = new ArrayList(); + EList _quantifiedVariables = expression.getQuantifiedVariables(); + for (final Variable variable : _quantifiedVariables) { + { + VLSFunction _createVLSFunction = this.factory.createVLSFunction(); + final Procedure1 _function_1 = (VLSFunction it) -> { + TypeReference _range = variable.getRange(); + it.setConstant(this.toIDMultiple("type", ((ComplexTypeReference) _range).getReferred().getName())); + EList _terms = it.getTerms(); + VLSVariable _createVLSVariable = this.factory.createVLSVariable(); + final Procedure1 _function_2 = (VLSVariable it_1) -> { + it_1.setName(this.toIDMultiple("Var", variable.getName())); + }; + VLSVariable _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSVariable, _function_2); + _terms.add(_doubleArrow); + }; + final VLSFunction eq = ObjectExtensions.operator_doubleArrow(_createVLSFunction, _function_1); + typedefs.add(eq); + } + } + VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); + final Procedure1 _function_1 = (VLSUniversalQuantifier it) -> { + EList _variables = it.getVariables(); + Collection _values = variableMap.values(); + Iterables.addAll(_variables, _values); + VLSImplies _createVLSImplies = this.factory.createVLSImplies(); + final Procedure1 _function_2 = (VLSImplies it_1) -> { + it_1.setLeft(this.unfoldAnd(typedefs)); + it_1.setRight(mapper.transformTerm(expression.getExpression(), trace, this.withAddition(variables, variableMap))); + }; + VLSImplies _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSImplies, _function_2); + it.setOperand(_doubleArrow); + }; + _xblockexpression = ObjectExtensions.operator_doubleArrow(_createVLSUniversalQuantifier, _function_1); + } + return _xblockexpression; + } + + protected VLSTerm createExistentiallyQuantifiedExpression(final Logic2VampireLanguageMapper mapper, final QuantifiedExpression expression, final Logic2VampireLanguageMapperTrace trace, final Map variables) { + VLSExistentialQuantifier _xblockexpression = null; + { + final Function1 _function = (Variable v) -> { + VLSVariable _createVLSVariable = this.factory.createVLSVariable(); + final Procedure1 _function_1 = (VLSVariable it) -> { + it.setName(this.toIDMultiple("Var", v.getName())); + }; + return ObjectExtensions.operator_doubleArrow(_createVLSVariable, _function_1); + }; + final Map variableMap = IterableExtensions.toInvertedMap(expression.getQuantifiedVariables(), _function); + final ArrayList typedefs = new ArrayList(); + EList _quantifiedVariables = expression.getQuantifiedVariables(); + for (final Variable variable : _quantifiedVariables) { + { + VLSFunction _createVLSFunction = this.factory.createVLSFunction(); + final Procedure1 _function_1 = (VLSFunction it) -> { + TypeReference _range = variable.getRange(); + it.setConstant(this.toIDMultiple("type", ((ComplexTypeReference) _range).getReferred().getName())); + EList _terms = it.getTerms(); + VLSVariable _createVLSVariable = this.factory.createVLSVariable(); + final Procedure1 _function_2 = (VLSVariable it_1) -> { + it_1.setName(this.toIDMultiple("Var", variable.getName())); + }; + VLSVariable _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSVariable, _function_2); + _terms.add(_doubleArrow); + }; + final VLSFunction eq = ObjectExtensions.operator_doubleArrow(_createVLSFunction, _function_1); + typedefs.add(eq); + } + } + typedefs.add(mapper.transformTerm(expression.getExpression(), trace, this.withAddition(variables, variableMap))); + VLSExistentialQuantifier _createVLSExistentialQuantifier = this.factory.createVLSExistentialQuantifier(); + final Procedure1 _function_1 = (VLSExistentialQuantifier it) -> { + EList _variables = it.getVariables(); + Collection _values = variableMap.values(); + Iterables.addAll(_variables, _values); + it.setOperand(this.unfoldAnd(typedefs)); + }; + _xblockexpression = ObjectExtensions.operator_doubleArrow(_createVLSExistentialQuantifier, _function_1); + } + return _xblockexpression; + } + + protected HashMap withAddition(final Map map1, final Map map2) { + HashMap _hashMap = new HashMap(map1); + final Procedure1> _function = (HashMap it) -> { + it.putAll(map2); + }; + return ObjectExtensions.>operator_doubleArrow(_hashMap, _function); + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.java new file mode 100644 index 00000000..c55e2421 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.java @@ -0,0 +1,25 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder; + +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.VampireModelInterpretation_TypeInterpretation; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; +import java.util.Collection; +import java.util.List; + +@SuppressWarnings("all") +public interface Logic2VampireLanguageMapper_TypeMapper { + public abstract void transformTypes(final Collection types, final Collection elements, final Logic2VampireLanguageMapper mapper, final Logic2VampireLanguageMapperTrace trace); + + public abstract List transformTypeReference(final Type referred, final Logic2VampireLanguageMapper mapper, final Logic2VampireLanguageMapperTrace trace); + + public abstract VLSTerm getUndefinedSupertype(final Logic2VampireLanguageMapperTrace trace); + + public abstract int getUndefinedSupertypeScope(final int undefinedScope, final Logic2VampireLanguageMapperTrace trace); + + public abstract VLSTerm transformReference(final DefinedElement referred, final Logic2VampireLanguageMapperTrace trace); + + public abstract VampireModelInterpretation_TypeInterpretation getTypeInterpreter(); +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapperTrace.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapperTrace.java new file mode 100644 index 00000000..1e08c8ad --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapperTrace.java @@ -0,0 +1,5 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder; + +@SuppressWarnings("all") +public interface Logic2VampireLanguageMapper_TypeMapperTrace { +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.java new file mode 100644 index 00000000..d674ac71 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.java @@ -0,0 +1,21 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder; + +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_TypeMapperTrace; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; +import java.util.HashMap; +import java.util.Map; + +@SuppressWarnings("all") +public class Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes implements Logic2VampireLanguageMapper_TypeMapperTrace { + public final Map type2Predicate = new HashMap(); + + public final Map definedElement2Declaration = new HashMap(); + + public final Map type2PossibleNot = new HashMap(); + + public final Map type2And = new HashMap(); +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.java new file mode 100644 index 00000000..38ff37cd --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.java @@ -0,0 +1,287 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder; + +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_Support; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_TypeMapper; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.VampireModelInterpretation_TypeInterpretation; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSDoubleQuote; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory; +import com.google.common.base.Objects; +import com.google.common.collect.Iterables; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDefinition; +import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage; +import hu.bme.mit.inf.dslreasoner.util.CollectionsUtil; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import org.eclipse.emf.common.util.EList; +import org.eclipse.xtext.xbase.lib.Extension; +import org.eclipse.xtext.xbase.lib.Functions.Function1; +import org.eclipse.xtext.xbase.lib.IterableExtensions; +import org.eclipse.xtext.xbase.lib.ListExtensions; +import org.eclipse.xtext.xbase.lib.ObjectExtensions; +import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; + +@SuppressWarnings("all") +public class Logic2VampireLanguageMapper_TypeMapper_FilteredTypes implements Logic2VampireLanguageMapper_TypeMapper { + private final Logic2VampireLanguageMapper_Support support = new Logic2VampireLanguageMapper_Support(); + + @Extension + private final VampireLanguageFactory factory = VampireLanguageFactory.eINSTANCE; + + public Logic2VampireLanguageMapper_TypeMapper_FilteredTypes() { + LogicproblemPackage.eINSTANCE.getClass(); + } + + @Override + public void transformTypes(final Collection types, final Collection elements, final Logic2VampireLanguageMapper mapper, final Logic2VampireLanguageMapperTrace trace) { + final Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes typeTrace = new Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes(); + trace.typeMapperTrace = typeTrace; + VLSVariable _createVLSVariable = this.factory.createVLSVariable(); + final Procedure1 _function = (VLSVariable it) -> { + it.setName("A"); + }; + final VLSVariable variable = ObjectExtensions.operator_doubleArrow(_createVLSVariable, _function); + for (final Type type : types) { + { + VLSFunction _createVLSFunction = this.factory.createVLSFunction(); + final Procedure1 _function_1 = (VLSFunction it) -> { + it.setConstant(this.support.toIDMultiple("type", type.getName())); + EList _terms = it.getTerms(); + VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); + final Procedure1 _function_2 = (VLSVariable it_1) -> { + it_1.setName(variable.getName()); + }; + VLSVariable _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSVariable_1, _function_2); + _terms.add(_doubleArrow); + }; + final VLSFunction typePred = ObjectExtensions.operator_doubleArrow(_createVLSFunction, _function_1); + typeTrace.type2Predicate.put(type, typePred); + } + } + Iterable _filter = Iterables.filter(types, TypeDefinition.class); + for (final TypeDefinition type_1 : _filter) { + { + VLSFofFormula _createVLSFofFormula = this.factory.createVLSFofFormula(); + final Procedure1 _function_1 = (VLSFofFormula it) -> { + it.setName(this.support.toIDMultiple("typeDef", type_1.getName())); + it.setFofRole("axiom"); + VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); + final Procedure1 _function_2 = (VLSUniversalQuantifier it_1) -> { + EList _variables = it_1.getVariables(); + VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); + final Procedure1 _function_3 = (VLSVariable it_2) -> { + it_2.setName(variable.getName()); + }; + VLSVariable _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSVariable_1, _function_3); + _variables.add(_doubleArrow); + VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent(); + final Procedure1 _function_4 = (VLSEquivalent it_2) -> { + VLSFunction _createVLSFunction = this.factory.createVLSFunction(); + final Procedure1 _function_5 = (VLSFunction it_3) -> { + it_3.setConstant(CollectionsUtil.lookup(type_1, typeTrace.type2Predicate).getConstant()); + EList _terms = it_3.getTerms(); + VLSVariable _createVLSVariable_2 = this.factory.createVLSVariable(); + final Procedure1 _function_6 = (VLSVariable it_4) -> { + it_4.setName("A"); + }; + VLSVariable _doubleArrow_1 = ObjectExtensions.operator_doubleArrow(_createVLSVariable_2, _function_6); + _terms.add(_doubleArrow_1); + }; + VLSFunction _doubleArrow_1 = ObjectExtensions.operator_doubleArrow(_createVLSFunction, _function_5); + it_2.setLeft(_doubleArrow_1); + CollectionsUtil.lookup(type_1, typeTrace.type2Predicate); + final Function1 _function_6 = (DefinedElement e) -> { + VLSEquality _createVLSEquality = this.factory.createVLSEquality(); + final Procedure1 _function_7 = (VLSEquality it_3) -> { + VLSVariable _createVLSVariable_2 = this.factory.createVLSVariable(); + final Procedure1 _function_8 = (VLSVariable it_4) -> { + it_4.setName(variable.getName()); + }; + VLSVariable _doubleArrow_2 = ObjectExtensions.operator_doubleArrow(_createVLSVariable_2, _function_8); + it_3.setLeft(_doubleArrow_2); + VLSDoubleQuote _createVLSDoubleQuote = this.factory.createVLSDoubleQuote(); + final Procedure1 _function_9 = (VLSDoubleQuote it_4) -> { + String _name = e.getName(); + String _plus = ("\"a" + _name); + String _plus_1 = (_plus + "\""); + it_4.setValue(_plus_1); + }; + VLSDoubleQuote _doubleArrow_3 = ObjectExtensions.operator_doubleArrow(_createVLSDoubleQuote, _function_9); + it_3.setRight(_doubleArrow_3); + }; + return ObjectExtensions.operator_doubleArrow(_createVLSEquality, _function_7); + }; + it_2.setRight(this.support.unfoldOr(ListExtensions.map(type_1.getElements(), _function_6))); + }; + VLSEquivalent _doubleArrow_1 = ObjectExtensions.operator_doubleArrow(_createVLSEquivalent, _function_4); + it_1.setOperand(_doubleArrow_1); + }; + VLSUniversalQuantifier _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSUniversalQuantifier, _function_2); + it.setFofFormula(_doubleArrow); + }; + final VLSFofFormula res = ObjectExtensions.operator_doubleArrow(_createVLSFofFormula, _function_1); + EList _formulas = trace.specification.getFormulas(); + _formulas.add(res); + } + } + final Function1 _function_1 = (Type it) -> { + boolean _isIsAbstract = it.isIsAbstract(); + return Boolean.valueOf((!_isIsAbstract)); + }; + Iterable _filter_1 = IterableExtensions.filter(types, _function_1); + for (final Type type_2 : _filter_1) { + { + for (final Type type2 : types) { + if ((Objects.equal(type_2, type2) || this.dfsSupertypeCheck(type_2, type2))) { + VLSFunction _createVLSFunction = this.factory.createVLSFunction(); + final Procedure1 _function_2 = (VLSFunction it) -> { + it.setConstant(CollectionsUtil.lookup(type2, typeTrace.type2Predicate).getConstant()); + EList _terms = it.getTerms(); + VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); + final Procedure1 _function_3 = (VLSVariable it_1) -> { + it_1.setName("A"); + }; + VLSVariable _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSVariable_1, _function_3); + _terms.add(_doubleArrow); + }; + VLSFunction _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSFunction, _function_2); + typeTrace.type2PossibleNot.put(type2, _doubleArrow); + } else { + VLSUnaryNegation _createVLSUnaryNegation = this.factory.createVLSUnaryNegation(); + final Procedure1 _function_3 = (VLSUnaryNegation it) -> { + VLSFunction _createVLSFunction_1 = this.factory.createVLSFunction(); + final Procedure1 _function_4 = (VLSFunction it_1) -> { + it_1.setConstant(CollectionsUtil.lookup(type2, typeTrace.type2Predicate).getConstant()); + EList _terms = it_1.getTerms(); + VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); + final Procedure1 _function_5 = (VLSVariable it_2) -> { + it_2.setName("A"); + }; + VLSVariable _doubleArrow_1 = ObjectExtensions.operator_doubleArrow(_createVLSVariable_1, _function_5); + _terms.add(_doubleArrow_1); + }; + VLSFunction _doubleArrow_1 = ObjectExtensions.operator_doubleArrow(_createVLSFunction_1, _function_4); + it.setOperand(_doubleArrow_1); + }; + VLSUnaryNegation _doubleArrow_1 = ObjectExtensions.operator_doubleArrow(_createVLSUnaryNegation, _function_3); + typeTrace.type2PossibleNot.put(type2, _doubleArrow_1); + } + } + Collection _values = typeTrace.type2PossibleNot.values(); + ArrayList _arrayList = new ArrayList(_values); + typeTrace.type2And.put(type_2, this.support.unfoldAnd(_arrayList)); + typeTrace.type2PossibleNot.clear(); + } + } + VLSFofFormula _createVLSFofFormula = this.factory.createVLSFofFormula(); + final Procedure1 _function_2 = (VLSFofFormula it) -> { + it.setName("hierarchyHandler"); + it.setFofRole("axiom"); + VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); + final Procedure1 _function_3 = (VLSUniversalQuantifier it_1) -> { + EList _variables = it_1.getVariables(); + VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); + final Procedure1 _function_4 = (VLSVariable it_2) -> { + it_2.setName("A"); + }; + VLSVariable _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSVariable_1, _function_4); + _variables.add(_doubleArrow); + VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent(); + final Procedure1 _function_5 = (VLSEquivalent it_2) -> { + VLSFunction _createVLSFunction = this.factory.createVLSFunction(); + final Procedure1 _function_6 = (VLSFunction it_3) -> { + it_3.setConstant("Object"); + EList _terms = it_3.getTerms(); + VLSVariable _createVLSVariable_2 = this.factory.createVLSVariable(); + final Procedure1 _function_7 = (VLSVariable it_4) -> { + it_4.setName("A"); + }; + VLSVariable _doubleArrow_1 = ObjectExtensions.operator_doubleArrow(_createVLSVariable_2, _function_7); + _terms.add(_doubleArrow_1); + }; + VLSFunction _doubleArrow_1 = ObjectExtensions.operator_doubleArrow(_createVLSFunction, _function_6); + it_2.setLeft(_doubleArrow_1); + Collection _values = typeTrace.type2And.values(); + ArrayList _arrayList = new ArrayList(_values); + it_2.setRight(this.support.unfoldOr(_arrayList)); + }; + VLSEquivalent _doubleArrow_1 = ObjectExtensions.operator_doubleArrow(_createVLSEquivalent, _function_5); + it_1.setOperand(_doubleArrow_1); + }; + VLSUniversalQuantifier _doubleArrow = ObjectExtensions.operator_doubleArrow(_createVLSUniversalQuantifier, _function_3); + it.setFofFormula(_doubleArrow); + }; + final VLSFofFormula hierarch = ObjectExtensions.operator_doubleArrow(_createVLSFofFormula, _function_2); + EList _formulas = trace.specification.getFormulas(); + _formulas.add(hierarch); + } + + public boolean dfsSupertypeCheck(final Type type, final Type type2) { + boolean _xifexpression = false; + boolean _isEmpty = type.getSupertypes().isEmpty(); + if (_isEmpty) { + return false; + } else { + boolean _xifexpression_1 = false; + boolean _contains = type.getSupertypes().contains(type2); + if (_contains) { + return true; + } else { + EList _supertypes = type.getSupertypes(); + for (final Type supertype : _supertypes) { + boolean _dfsSupertypeCheck = this.dfsSupertypeCheck(supertype, type2); + if (_dfsSupertypeCheck) { + return true; + } + } + } + _xifexpression = _xifexpression_1; + } + return _xifexpression; + } + + @Override + public List transformTypeReference(final Type referred, final Logic2VampireLanguageMapper mapper, final Logic2VampireLanguageMapperTrace trace) { + throw new UnsupportedOperationException("TODO: auto-generated method stub"); + } + + @Override + public VLSTerm getUndefinedSupertype(final Logic2VampireLanguageMapperTrace trace) { + throw new UnsupportedOperationException("TODO: auto-generated method stub"); + } + + @Override + public int getUndefinedSupertypeScope(final int undefinedScope, final Logic2VampireLanguageMapperTrace trace) { + throw new UnsupportedOperationException("TODO: auto-generated method stub"); + } + + @Override + public VLSTerm transformReference(final DefinedElement referred, final Logic2VampireLanguageMapperTrace trace) { + VLSDoubleQuote _createVLSDoubleQuote = this.factory.createVLSDoubleQuote(); + final Procedure1 _function = (VLSDoubleQuote it) -> { + String _name = referred.getName(); + String _plus = ("\"a" + _name); + String _plus_1 = (_plus + "\""); + it.setValue(_plus_1); + }; + return ObjectExtensions.operator_doubleArrow(_createVLSDoubleQuote, _function); + } + + @Override + public VampireModelInterpretation_TypeInterpretation getTypeInterpreter() { + throw new UnsupportedOperationException("TODO: auto-generated method stub"); + } +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireModelInterpretation_TypeInterpretation.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireModelInterpretation_TypeInterpretation.java new file mode 100644 index 00000000..507831fa --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireModelInterpretation_TypeInterpretation.java @@ -0,0 +1,5 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder; + +@SuppressWarnings("all") +public interface VampireModelInterpretation_TypeInterpretation { +} diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireModelInterpretation_TypeInterpretation_FilteredTypes.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireModelInterpretation_TypeInterpretation_FilteredTypes.java new file mode 100644 index 00000000..aff0dc9d --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireModelInterpretation_TypeInterpretation_FilteredTypes.java @@ -0,0 +1,7 @@ +package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder; + +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.VampireModelInterpretation_TypeInterpretation; + +@SuppressWarnings("all") +public class VampireModelInterpretation_TypeInterpretation_FilteredTypes implements VampireModelInterpretation_TypeInterpretation { +} diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath new file mode 100644 index 00000000..1c96fe2f --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.gitignore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.gitignore new file mode 100644 index 00000000..ae3c1726 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.project b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.project new file mode 100644 index 00000000..eb3347d0 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.project @@ -0,0 +1,34 @@ + + + ca.mcgill.ecse.dslreasoner.vampire.test + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + org.eclipse.xtext.ui.shared.xtextNature + + diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.settings/org.eclipse.jdt.core.prefs b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..295926d9 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF new file mode 100644 index 00000000..13fcb7b9 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF @@ -0,0 +1,20 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Test +Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.test +Bundle-Version: 1.0.0.qualifier +Automatic-Module-Name: ca.mcgill.ecse.dslreasoner.vampire.test +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Require-Bundle: com.google.guava, + org.eclipse.xtext.xbase.lib, + org.eclipse.xtend.lib, + org.eclipse.xtend.lib.macro, + ca.mcgill.ecse.dslreasoner.vampire.language;bundle-version="1.0.0", + hu.bme.mit.inf.dslreasoner.logic.model;bundle-version="1.0.0", + ca.mcgill.ecse.dslreasoner.vampire.reasoner;bundle-version="1.0.0", + hu.bme.mit.inf.dslreasoner.ecore2logic;bundle-version="1.0.0", + hu.bme.mit.inf.dslreasoner.viatra2logic;bundle-version="1.0.0", + org.eclipse.emf.ecore.xmi;bundle-version="2.13.0", + hu.bme.mit.inf.dlsreasoner.alloy.reasoner;bundle-version="1.0.0", + hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage;bundle-version="1.0.0" + diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/build.properties b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/build.properties new file mode 100644 index 00000000..41eb6ade --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM.xmi b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM.xmi new file mode 100644 index 00000000..c79e58ed --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM.xmi @@ -0,0 +1,3 @@ + + diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/Yakindu.xmi b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/Yakindu.xmi new file mode 100644 index 00000000..49b1f89d --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/Yakindu.xmi @@ -0,0 +1,4 @@ + + diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/ecore.xmi b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/ecore.xmi new file mode 100644 index 00000000..867e5049 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/ecore.xmi @@ -0,0 +1,6 @@ + + diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/fs.xmi b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/fs.xmi new file mode 100644 index 00000000..56879c1a --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/fs.xmi @@ -0,0 +1,3 @@ + + diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/logProb.logicproblem b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/logProb.logicproblem new file mode 100644 index 00000000..f5f90f38 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/logProb.logicproblem @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/vampireCode.tptp b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/vampireCode.tptp new file mode 100644 index 00000000..ddeec4f4 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/vampireCode.tptp @@ -0,0 +1 @@ +%This is an initial Test Comment fof ( assertion1 , axiom , ~ ( constant1 & constant2 ) <=> ( ~ constant1 | ~ constant2 ) ) . diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend new file mode 100644 index 00000000..feb28dd5 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend @@ -0,0 +1,213 @@ +//package ca.mcgill.ecse.dslreasoner.vampire.test +// +//import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolver +//import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration +//import hu.bme.mit.inf.dslreasomer.domains.transima.fam.FunctionalArchitecture.FunctionalArchitecturePackage +//import hu.bme.mit.inf.dslreasoner.domains.transima.fam.patterns.Pattern +//import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor +//import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder +//import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner +//import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem +//import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult +//import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult +//import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor +//import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation +//import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml +//import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace +//import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace +//import java.util.LinkedHashMap +//import java.util.List +//import org.eclipse.emf.ecore.EAttribute +//import org.eclipse.emf.ecore.EClass +//import org.eclipse.emf.ecore.EEnum +//import org.eclipse.emf.ecore.EEnumLiteral +//import org.eclipse.emf.ecore.EObject +//import org.eclipse.emf.ecore.EReference +//import org.eclipse.emf.ecore.resource.Resource +//import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl +// +//class SimpleRun { +// +// def static void main(String[] args) { +// val inputs = new FileSystemWorkspace('''initialModels/''', "") +// val workspace = new FileSystemWorkspace('''outputModels/''', "") +// workspace.initAndClear +//// +//// println("Input and output workspaces are created") +//// +//// val metamodel = loadMetamodel() +//// val partialModel = loadPartialModel(inputs) +//// val queries = loadQueries(metamodel) +//// +//// println("DSL loaded") +//// +//// val Ecore2Logic ecore2Logic = new Ecore2Logic +//// val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic) +//// val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic) +//// val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic +//// +//// val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration()) +//// val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel) +//// val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration) +//// +//// val logicProblem = validModelExtensionProblem.output +//// //*************xmi.save. advntageous cuz seperate and only contains things that are necessary +//// //Write to file. This is importnat to understand +//// //furthermore, output solution1.partialInterpretation contains also the logic probelm +//// //that needs to be solved +//// +//// //Logic problem same for vamp,l alloy, viatra. but fr alloy, vamp, it is mapped into the specific ecore metamodel using the xtext. +//// //initial simple example: take one thing (ex. iff) from the logic problem generated for one of the sample examples, try to make it into vampire +//// //xtext (but only the instance model, not the lines of code) to see how mapping will work. Then ishteh use vampire on it to "solve" it. +// // create logic problem +// var extension builder = new LogicProblemBuilder +// var LogicProblem problem = builder.createProblem +// +// val rock = Element("Rock") +// val paper = Element("Paper") +// val scissor = Element("Scissor") +// +// problem.elements += rock +// problem.elements += paper +// problem.elements += scissor +// +//// val red = Element("Red") +//// val green = Element("Green") +//// +//// problem.elements += red +//// problem.elements += green +// +//// val allRPS = problem.add(TypeDeclaration("allRPS", true)) +// val oldRPS = problem.add(TypeDefinition("oldRPS", false, rock, paper, scissor)) // n+1 axioms, where n is the number of type definitions. 1. rocjk, paper, scissor are all rps. 2. every object is rps +//// val newRPS = problem.add(TypeDeclaration("newRPS", false)) +//// val color = problem.add(TypeDefinition("color", false, red, green)) +//// Supertype(oldRPS, allRPS) +//// Supertype(newRPS, allRPS) +// +// val beats2 = problem.add(RelationDeclaration("beats2", oldRPS, oldRPS)) +// problem.add(Assertion(Forall[ +// val x = addVar("x", oldRPS) +// // x.range +// Exists[ +// val y = addVar("y", oldRPS) +// beats2.call(x, y) +// ] +// ])) +// +//// val beats = problem.add(RelationDefinition("beats",[ +//// val x = addVar("x",RPS) +//// val y = addVar("y",RPS) +//// (x==rock && y==scissor)||(x==scissor && y==paper)||(x==paper && y==rock) +//// ])) +//// +//// //below needs to be added as an axiom +//// val beats2 = problem.add(RelationDeclaration("beats2",RPS,RPS)) +//// problem.add(Assertion(Forall[ +//// val x = addVar("x",RPS) +//// Exists[ +//// val y = addVar("y",RPS) +//// beats2.call(x,y) +//// ] +//// ])) +// println("Problem created") +// var LogicResult solution +// var LogicReasoner reasoner +// /* +// * reasoner = new ViatraReasoner +// * val viatraConfig = new ViatraReasonerConfiguration => [ +// * it.typeScopes.maxNewElements = 5 +// * it.typeScopes.minNewElements = 5 +// * it.solutionScope.numberOfRequiredSolution = 1 +// * it.existingQueries = queries.patterns.map[it.internalQueryRepresentation] +// * it.debugCongiguration.logging = false +// * it.debugCongiguration.partalInterpretationVisualisationFrequency = 1 +// * it.debugCongiguration.partialInterpretatioVisualiser = new GraphvizVisualisation +// * ] +// * solution = reasoner.solve(logicProblem,viatraConfig,workspace) +// /*/ +// reasoner = new AlloySolver +// val alloyConfig = new AlloySolverConfiguration => [ +// it.typeScopes.maxNewElements = 5 +// it.typeScopes.minNewElements = 5 +// it.solutionScope.numberOfRequiredSolution = 1 +// it.typeScopes.maxNewIntegers = 0 +// it.writeToFile = false +// ] +// solution = reasoner.solve(problem, alloyConfig, workspace) +// // */ +// // ************ +// // since input logic model is also output, we can check out what is the input for alloy and then +// // see what should be input for vampire, as it should be similar to alloy. once i can create the input, +// // that is the first step. +// // look at allo2logic +// // always keep looking at output +// // try to figure out what rule is used +// println("Problem solved") +// +//// val interpretations = reasoner.getInterpretations(solution as ModelResult) +//// val models = new LinkedList +//// for(interpretation : interpretations) { +//// val instanceModel = logic2Ecore.transformInterpretation(interpretation,modelGenerationProblem.trace) +//// models+=instanceModel +//// } +//// +//// solution.writeSolution(workspace, #[]) +// } +// +// def private static loadMetamodel() { +// val pckg = FunctionalArchitecturePackage.eINSTANCE +// val List classes = pckg.EClassifiers.filter(EClass).toList +// val List enums = pckg.EClassifiers.filter(EEnum).toList +// val List literals = enums.map[ELiterals].flatten.toList +// val List references = classes.map[EReferences].flatten.toList +// val List attributes = classes.map[EAttributes].flatten.toList +// return new EcoreMetamodelDescriptor(classes, #{}, false, enums, literals, references, attributes) +// } +// +// def private static loadQueries(EcoreMetamodelDescriptor metamodel) { +// val i = Pattern.instance +// val patterns = i.specifications.toList +// val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name == "Constraint"]].toSet +// val derivedFeatures = new LinkedHashMap +// derivedFeatures.put(i.type.internalQueryRepresentation, metamodel.attributes.filter[it.name == "type"].head) +// derivedFeatures.put(i.model.internalQueryRepresentation, metamodel.references.filter[it.name == "model"].head) +// val res = new ViatraQuerySetDescriptor( +// patterns, +// wfPatterns, +// derivedFeatures +// ) +// return res +// } +// +// def static loadPartialModel(ReasonerWorkspace inputs) { +// Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); +// inputs.readModel(EObject, "FAM.xmi").eResource.allContents.toList +// } +// +// def static writeSolution(LogicResult solution, ReasonerWorkspace workspace, List models) { +// if (solution instanceof ModelResult) { +// val representations = solution.representation +// for (representationIndex : 0 ..< representations.size) { +// val representation = representations.get(representationIndex) +// val representationNumber = representationIndex + 1 +// if (representation instanceof PartialInterpretation) { +// workspace.writeModel(representation, '''solutionĀ«representationNumberĀ».partialinterpretation''') +// val partialInterpretation2GML = new PartialInterpretation2Gml +// val gml = partialInterpretation2GML.transform(representation) +// // ecore2GML.transform(root) +// workspace.writeText('''solutionVisualisation.gml''', gml) +// +// } else { +// workspace.writeText('''solutionĀ«representationNumberĀ».txt''', representation.toString) +// } +// } +// for (model : models) { +// workspace.writeModel(model, "model.xmi") +// } +// println("Solution saved and visualised") +// } +// } +// +// def static visualizeSolution() { +// } +//} diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend new file mode 100644 index 00000000..64914fd0 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend @@ -0,0 +1,153 @@ +package ca.mcgill.ecse.dslreasoner.vampire.test + + +import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup +import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner +import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem +import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage +import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration +import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage +import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace +import java.util.Collections +import org.eclipse.emf.common.util.URI +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl + +class VampireTest { + + val static extension LogicProblemBuilder builder = new LogicProblemBuilder + + def static void main(String[] args) { +// val inputs = new FileSystemWorkspace('''initialModels/''',"") + + + //create logic problem + //var LogicProblem problem = builder.createProblem + + + + LogicproblemPackage.eINSTANCE.eClass() + Ecore2logicannotationsPackage.eINSTANCE.eClass() + Viatra2LogicAnnotationsPackage.eINSTANCE.eClass() + val reg = Resource.Factory.Registry.INSTANCE + val map = reg.extensionToFactoryMap + map.put("logicproblem", new XMIResourceFactoryImpl) + VampireLanguageStandaloneSetup.doSetup + + val workspace = new FileSystemWorkspace('''output/models/''',"") + workspace.initAndClear + + // Load and create top level elements + // Load source model + val rs = new ResourceSetImpl + val logicURI = URI.createFileURI("output/files/logProb.logicproblem") + val logRes = rs.createResource(logicURI) + + var LogicProblem problem = builder.createProblem + + //* + deMorgan(problem) + /*/ + rockPaperScisors(problem) + //*/ + + logRes.contents.add(problem) + logRes.save(Collections.EMPTY_MAP) + + //problem.add(Assertion( Y && X <=> X) ) + + println("Problem Created"); + + var LogicResult solution + var LogicReasoner reasoner + + reasoner = new VampireSolver + val vampireConfig = new VampireSolverConfiguration => [ + //add configuration things, in config file first + it.writeToFile = false + ] + + solution = reasoner.solve(problem, vampireConfig, workspace) + +// if(solution instanceof ModelResult) { +// reasoner.getInterpretations(solution) +// } + //^can extract everything (ex, vars) from solver + + + //call the solver + + println("Problem Solved") + + //output solution + + } + + static def deMorgan(LogicProblem problem) { + + + var X = ConstantDeclaration(LogicBool) + var Y = ConstantDeclaration(LogicBool) + problem.add(X) + problem.add(Y) + + //assertion is negated manually because logic problem can only handle axioms (assertions) + //so ya + problem.add(Assertion( !(X && Y) <=> ( !X || !Y)) ) + } + + static def rockPaperScisors(LogicProblem problem) { + + val rock = Element("Rock") + val paper= Element("Paper") + val scissor = Element("Scissor") + + problem.elements += rock + problem.elements += paper + problem.elements += scissor + +// val red = Element("Red") +// val green = Element("Green") +// +// problem.elements += red +// problem.elements += green + + + //val allRPS = problem.add(TypeDeclaration("allRPS", true)) + //val newRPS = problem.add(TypeDeclaration("newRPS", false)) + val oldRPS = problem.add(TypeDefinition("oldRPS", false, rock, paper, scissor)) //n+1 axioms, where n is the number of type definitions. 1. rocjk, paper, scissor are all rps. 2. every object is rps + +// val color = problem.add(TypeDefinition("color", false, red, green )) + //Supertype(oldRPS,allRPS) + //Supertype(newRPS,oldRPS) + + + + + /* Remains + val beats = problem.add(RelationDefinition("beats",[ + val x = addVar("x",oldRPS) + val y = addVar("y",oldRPS) + (x==rock && y==scissor)||(x==scissor && y==paper)||(x==paper && y==rock) + ])) + + /*/ + //below needs to be added as an axiom + val beats2 = problem.add(RelationDeclaration("beats2",oldRPS,oldRPS)) + problem.add(Assertion(Forall[ + val x = addVar("x",oldRPS) + //x.range + Exists[ + val y = addVar("y",oldRPS) + beats2.call(x,y) + ] + ])) + //*/ + + } +} \ No newline at end of file diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin new file mode 100644 index 00000000..b60ffe4c Binary files /dev/null and b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin differ diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin new file mode 100644 index 00000000..881f927c Binary files /dev/null and b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin differ diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore new file mode 100644 index 00000000..f3c47b99 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore @@ -0,0 +1,2 @@ +/.VampireTest.java._trace +/.SimpleRun.java._trace diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java new file mode 100644 index 00000000..73c413b3 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java @@ -0,0 +1,140 @@ +package ca.mcgill.ecse.dslreasoner.vampire.test; + +import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; +import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage; +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder; +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; +import hu.bme.mit.inf.dslreasoner.logic.model.builder.VariableContext; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.And; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Assertion; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDeclaration; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Exists; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Iff; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Not; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Or; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.SymbolicValue; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TermDescription; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable; +import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; +import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage; +import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; +import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage; +import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; +import java.util.Collections; +import java.util.Map; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; +import org.eclipse.xtend2.lib.StringConcatenation; +import org.eclipse.xtext.xbase.lib.Exceptions; +import org.eclipse.xtext.xbase.lib.Extension; +import org.eclipse.xtext.xbase.lib.Functions.Function1; +import org.eclipse.xtext.xbase.lib.InputOutput; +import org.eclipse.xtext.xbase.lib.ObjectExtensions; +import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; + +@SuppressWarnings("all") +public class VampireTest { + @Extension + private final static LogicProblemBuilder builder = new LogicProblemBuilder(); + + public static void main(final String[] args) { + try { + LogicproblemPackage.eINSTANCE.eClass(); + Ecore2logicannotationsPackage.eINSTANCE.eClass(); + Viatra2LogicAnnotationsPackage.eINSTANCE.eClass(); + final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; + final Map map = reg.getExtensionToFactoryMap(); + XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); + map.put("logicproblem", _xMIResourceFactoryImpl); + VampireLanguageStandaloneSetup.doSetup(); + StringConcatenation _builder = new StringConcatenation(); + _builder.append("output/models/"); + final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder.toString(), ""); + workspace.initAndClear(); + final ResourceSetImpl rs = new ResourceSetImpl(); + final URI logicURI = URI.createFileURI("output/files/logProb.logicproblem"); + final Resource logRes = rs.createResource(logicURI); + LogicProblem problem = VampireTest.builder.createProblem(); + VampireTest.deMorgan(problem); + logRes.getContents().add(problem); + logRes.save(Collections.EMPTY_MAP); + InputOutput.println("Problem Created"); + LogicResult solution = null; + LogicReasoner reasoner = null; + VampireSolver _vampireSolver = new VampireSolver(); + reasoner = _vampireSolver; + VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); + final Procedure1 _function = (VampireSolverConfiguration it) -> { + it.writeToFile = false; + }; + final VampireSolverConfiguration vampireConfig = ObjectExtensions.operator_doubleArrow(_vampireSolverConfiguration, _function); + solution = reasoner.solve(problem, vampireConfig, workspace); + InputOutput.println("Problem Solved"); + } catch (Throwable _e) { + throw Exceptions.sneakyThrow(_e); + } + } + + public static Assertion deMorgan(final LogicProblem problem) { + Assertion _xblockexpression = null; + { + ConstantDeclaration X = VampireTest.builder.ConstantDeclaration(VampireTest.builder.LogicBool()); + ConstantDeclaration Y = VampireTest.builder.ConstantDeclaration(VampireTest.builder.LogicBool()); + VampireTest.builder.add(problem, X); + VampireTest.builder.add(problem, Y); + And _and = VampireTest.builder.operator_and(X, Y); + Not _not = VampireTest.builder.operator_not(_and); + Not _not_1 = VampireTest.builder.operator_not(X); + Not _not_2 = VampireTest.builder.operator_not(Y); + Or _or = VampireTest.builder.operator_or(_not_1, _not_2); + Iff _spaceship = VampireTest.builder.operator_spaceship(_not, _or); + _xblockexpression = VampireTest.builder.add(problem, VampireTest.builder.Assertion(_spaceship)); + } + return _xblockexpression; + } + + public static Assertion rockPaperScisors(final LogicProblem problem) { + Assertion _xblockexpression = null; + { + final DefinedElement rock = VampireTest.builder.Element("Rock"); + final DefinedElement paper = VampireTest.builder.Element("Paper"); + final DefinedElement scissor = VampireTest.builder.Element("Scissor"); + EList _elements = problem.getElements(); + _elements.add(rock); + EList _elements_1 = problem.getElements(); + _elements_1.add(paper); + EList _elements_2 = problem.getElements(); + _elements_2.add(scissor); + final Type oldRPS = VampireTest.builder.add(problem, VampireTest.builder.TypeDefinition("oldRPS", false, rock, paper, scissor)); + final Relation beats2 = VampireTest.builder.add(problem, VampireTest.builder.RelationDeclaration("beats2", oldRPS, oldRPS)); + final Function1 _function = (VariableContext it) -> { + Exists _xblockexpression_1 = null; + { + final Variable x = it.addVar("x", oldRPS); + final Function1 _function_1 = (VariableContext it_1) -> { + SymbolicValue _xblockexpression_2 = null; + { + final Variable y = it_1.addVar("y", oldRPS); + _xblockexpression_2 = VampireTest.builder.call(beats2, x, y); + } + return _xblockexpression_2; + }; + _xblockexpression_1 = VampireTest.builder.Exists(_function_1); + } + return _xblockexpression_1; + }; + _xblockexpression = VampireTest.builder.add(problem, + VampireTest.builder.Assertion( + VampireTest.builder.Forall(_function))); + } + return _xblockexpression; + } +} -- cgit v1.2.3-54-g00ecf