From 25a4b1b53add70e268c3083682f8a3508c618ec2 Mon Sep 17 00:00:00 2001 From: ArenBabikian Date: Fri, 25 Oct 2019 04:15:39 -0400 Subject: VAMPIRE: post-submission push --- .../.classpath | 12 + .../.gitignore | 4 + .../.project | 40 + ...ry.patternlanguage.emf.EMFPatternLanguage.prefs | 29 + .../.settings/org.eclipse.jdt.core.prefs | 7 + ...ry.patternlanguage.emf.EMFPatternLanguage.prefs | 29 + .../META-INF/MANIFEST.MF | 26 + .../build.properties | 11 + .../lib/alloy4.2_2015-02-22.jar_GoesHere.txt | 1 + .../plugin.properties | 4 + .../plugin.xml | 17 + .../alloy/reasoner/queries/signatureQueries.vql | 17 + .../alloy/reasoner/queries/typeQueries.vql | 85 + .../reasoner/AlloyAnalyzerConfiguration.xtend | 28 + .../dlsreasoner/alloy/reasoner/AlloySolver.xtend | 91 + .../alloy/reasoner/builder/Alloy2LogicMapper.xtend | 66 + .../alloy/reasoner/builder/AlloyHandler.xtend | 228 + .../builder/AlloyModelInterpretation.xtend | 249 + ...loyModelInterpretation_TypeInterpretation.xtend | 21 + ...retation_TypeInterpretation_FilteredTypes.xtend | 72 + ...peInterpretation_InheritanceAndHorizontal.xtend | 20 + .../builder/Logic2AlloyLanguageMapper.xtend | 491 + .../builder/Logic2AlloyLanguageMapperTrace.xtend | 56 + .../Logic2AlloyLanguageMapper_ConstantMapper.xtend | 43 + .../Logic2AlloyLanguageMapper_Containment.xtend | 260 + .../Logic2AlloyLanguageMapper_FunctionMapper.xtend | 87 + .../Logic2AlloyLanguageMapper_RelationMapper.xtend | 199 + .../Logic2AlloyLanguageMapper_Support.xtend | 207 + .../Logic2AlloyLanguageMapper_TypeMapper.xtend | 18 + ...guageMapper_TypeMapperTrace_FilteredTypes.xtend | 15 + ..._TypeMapperTrace_InheritanceAndHorizontal.xtend | 15 + ...oyLanguageMapper_TypeMapper_FilteredTypes.xtend | 263 + ...apper_TypeMapper_InheritanceAndHorizontal.xtend | 122 + .../alloy/reasoner/builder/RunCommandMapper.xtend | 105 + .../unused/AlloyModelInterpretation.xtend_ | 212 + .../unused/FunctionWithTimeout.xtend_ | 40 + .../unused/Logic2AlloyApiMapper.xtend_ | 345 + .../unused/oldTypes | 74 + .../.classpath | 9 + .../.gitignore | 3 + .../.project | 34 + .../.settings/org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 28 + .../build.properties | 6 + .../plugin.xml | 398 + .../plugin.xml_gen | 425 + .../ui/AbstractAlloyLanguageUiModule.java | 201 + .../AlloyLanguageExecutableExtensionFactory.java | 29 + .../AbstractAlloyLanguageProposalProvider.java | 326 + .../contentassist/antlr/AlloyLanguageParser.java | 247 + .../PartialAlloyLanguageContentAssistParser.java | 38 + .../antlr/internal/InternalAlloyLanguage.g | 10392 +++++++ .../antlr/internal/InternalAlloyLanguage.tokens | 139 + .../antlr/internal/InternalAlloyLanguageLexer.java | 2854 ++ .../internal/InternalAlloyLanguageParser.java | 29554 +++++++++++++++++++ .../ui/internal/AlloyLanguageActivator.java | 95 + .../inf/dslreasoner/ui/AlloyLanguageUiModule.java | 15 + .../AlloyLanguageProposalProvider.xtend | 12 + .../AlloyLanguageDescriptionLabelProvider.xtend | 24 + .../ui/labeling/AlloyLanguageLabelProvider.xtend | 29 + .../outline/AlloyLanguageOutlineTreeProvider.xtend | 13 + .../quickfix/AlloyLanguageQuickfixProvider.xtend | 26 + .../.classpath | 9 + .../.gitignore | 3 + ....bme.mit.inf.dslreasoner.alloy.language).launch | 18 + .../.project | 34 + .../.settings/org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 12 + .../META-INF/MANIFEST.MF | 38 + .../build.properties | 7 + .../model/generated/AlloyLanguage.ecore | 272 + .../model/generated/AlloyLanguage.genmodel | 211 + .../plugin.xml | 16 + .../plugin.xml_gen | 16 + .../AbstractAlloyLanguageRuntimeModule.java | 161 + .../bme/mit/inf/dslreasoner/AlloyLanguage.xtextbin | Bin 0 -> 10013 bytes .../AlloyLanguageStandaloneSetupGenerated.java | 45 + .../mit/inf/dslreasoner/alloyLanguage/ALSAnd.java | 77 + .../dslreasoner/alloyLanguage/ALSCardinality.java | 50 + .../dslreasoner/alloyLanguage/ALSDefinition.java | 97 + .../alloyLanguage/ALSDirectProduct.java | 137 + .../inf/dslreasoner/alloyLanguage/ALSDocument.java | 138 + .../alloyLanguage/ALSEnumDeclaration.java | 41 + .../dslreasoner/alloyLanguage/ALSEnumLiteral.java | 18 + .../inf/dslreasoner/alloyLanguage/ALSEquals.java | 77 + .../alloyLanguage/ALSFactDeclaration.java | 78 + .../alloyLanguage/ALSFieldDeclaration.java | 80 + .../dslreasoner/alloyLanguage/ALSFunctionCall.java | 98 + .../alloyLanguage/ALSFunctionDefinition.java | 50 + .../mit/inf/dslreasoner/alloyLanguage/ALSIden.java | 18 + .../mit/inf/dslreasoner/alloyLanguage/ALSIff.java | 77 + .../mit/inf/dslreasoner/alloyLanguage/ALSImpl.java | 104 + .../mit/inf/dslreasoner/alloyLanguage/ALSInt.java | 18 + .../inf/dslreasoner/alloyLanguage/ALSIntScope.java | 18 + .../dslreasoner/alloyLanguage/ALSIntersection.java | 77 + .../alloyLanguage/ALSInverseRelation.java | 50 + .../mit/inf/dslreasoner/alloyLanguage/ALSJoin.java | 77 + .../mit/inf/dslreasoner/alloyLanguage/ALSLeq.java | 77 + .../mit/inf/dslreasoner/alloyLanguage/ALSLess.java | 77 + .../mit/inf/dslreasoner/alloyLanguage/ALSMeq.java | 77 + .../inf/dslreasoner/alloyLanguage/ALSMinus.java | 77 + .../mit/inf/dslreasoner/alloyLanguage/ALSMore.java | 77 + .../dslreasoner/alloyLanguage/ALSMultiplicity.java | 337 + .../mit/inf/dslreasoner/alloyLanguage/ALSNone.java | 18 + .../mit/inf/dslreasoner/alloyLanguage/ALSNot.java | 50 + .../dslreasoner/alloyLanguage/ALSNotEquals.java | 77 + .../alloyLanguage/ALSNumberLiteral.java | 50 + .../alloyLanguage/ALSNumericOperator.java | 310 + .../mit/inf/dslreasoner/alloyLanguage/ALSOr.java | 77 + .../inf/dslreasoner/alloyLanguage/ALSOverride.java | 77 + .../mit/inf/dslreasoner/alloyLanguage/ALSPlus.java | 77 + .../dslreasoner/alloyLanguage/ALSQuantifiedEx.java | 125 + .../alloyLanguage/ALSRangeRestrictionLeft.java | 77 + .../alloyLanguage/ALSRangeRestrictionRight.java | 77 + .../dslreasoner/alloyLanguage/ALSReference.java | 50 + .../ALSReflectiveTransitiveClosure.java | 50 + .../alloyLanguage/ALSRelationDeclaration.java | 51 + .../alloyLanguage/ALSRelationDefinition.java | 18 + .../dslreasoner/alloyLanguage/ALSRunCommand.java | 43 + .../inf/dslreasoner/alloyLanguage/ALSSigScope.java | 77 + .../alloyLanguage/ALSSignatureBody.java | 161 + .../alloyLanguage/ALSSignatureDeclaration.java | 18 + .../inf/dslreasoner/alloyLanguage/ALSString.java | 18 + .../alloyLanguage/ALSStringLiteral.java | 50 + .../dslreasoner/alloyLanguage/ALSStringScope.java | 18 + .../inf/dslreasoner/alloyLanguage/ALSSubset.java | 77 + .../mit/inf/dslreasoner/alloyLanguage/ALSSum.java | 68 + .../mit/inf/dslreasoner/alloyLanguage/ALSTerm.java | 19 + .../alloyLanguage/ALSTypeDeclaration.java | 18 + .../dslreasoner/alloyLanguage/ALSTypeScope.java | 51 + .../dslreasoner/alloyLanguage/ALSUnaryMinus.java | 50 + .../mit/inf/dslreasoner/alloyLanguage/ALSUniv.java | 18 + .../alloyLanguage/ALSVariableDeclaration.java | 50 + .../alloyLanguage/AlSTransitiveClosure.java | 50 + .../alloyLanguage/AlloyLanguageFactory.java | 529 + .../alloyLanguage/AlloyLanguagePackage.java | 4834 +++ .../dslreasoner/alloyLanguage/impl/ALSAndImpl.java | 264 + .../alloyLanguage/impl/ALSCardinalityImpl.java | 193 + .../alloyLanguage/impl/ALSDefinitionImpl.java | 312 + .../alloyLanguage/impl/ALSDirectProductImpl.java | 392 + .../alloyLanguage/impl/ALSDocumentImpl.java | 397 + .../alloyLanguage/impl/ALSEnumDeclarationImpl.java | 165 + .../alloyLanguage/impl/ALSEnumLiteralImpl.java | 40 + .../alloyLanguage/impl/ALSEqualsImpl.java | 264 + .../alloyLanguage/impl/ALSFactDeclarationImpl.java | 265 + .../impl/ALSFieldDeclarationImpl.java | 265 + .../alloyLanguage/impl/ALSFunctionCallImpl.java | 306 + .../impl/ALSFunctionDefinitionImpl.java | 193 + .../alloyLanguage/impl/ALSIdenImpl.java | 40 + .../dslreasoner/alloyLanguage/impl/ALSIffImpl.java | 264 + .../alloyLanguage/impl/ALSImplImpl.java | 335 + .../dslreasoner/alloyLanguage/impl/ALSIntImpl.java | 40 + .../alloyLanguage/impl/ALSIntScopeImpl.java | 40 + .../alloyLanguage/impl/ALSIntersectionImpl.java | 264 + .../alloyLanguage/impl/ALSInverseRelationImpl.java | 193 + .../alloyLanguage/impl/ALSJoinImpl.java | 264 + .../dslreasoner/alloyLanguage/impl/ALSLeqImpl.java | 264 + .../alloyLanguage/impl/ALSLessImpl.java | 264 + .../dslreasoner/alloyLanguage/impl/ALSMeqImpl.java | 264 + .../alloyLanguage/impl/ALSMinusImpl.java | 264 + .../alloyLanguage/impl/ALSMoreImpl.java | 264 + .../alloyLanguage/impl/ALSNoneImpl.java | 40 + .../alloyLanguage/impl/ALSNotEqualsImpl.java | 264 + .../dslreasoner/alloyLanguage/impl/ALSNotImpl.java | 193 + .../alloyLanguage/impl/ALSNumberLiteralImpl.java | 176 + .../dslreasoner/alloyLanguage/impl/ALSOrImpl.java | 264 + .../alloyLanguage/impl/ALSOverrideImpl.java | 264 + .../alloyLanguage/impl/ALSPlusImpl.java | 264 + .../alloyLanguage/impl/ALSQuantifiedExImpl.java | 368 + .../impl/ALSRangeRestrictionLeftImpl.java | 264 + .../impl/ALSRangeRestrictionRightImpl.java | 264 + .../alloyLanguage/impl/ALSReferenceImpl.java | 172 + .../impl/ALSReflectiveTransitiveClosureImpl.java | 193 + .../impl/ALSRelationDeclarationImpl.java | 177 + .../impl/ALSRelationDefinitionImpl.java | 40 + .../alloyLanguage/impl/ALSRunCommandImpl.java | 167 + .../alloyLanguage/impl/ALSSigScopeImpl.java | 243 + .../alloyLanguage/impl/ALSSignatureBodyImpl.java | 438 + .../impl/ALSSignatureDeclarationImpl.java | 40 + .../alloyLanguage/impl/ALSStringImpl.java | 40 + .../alloyLanguage/impl/ALSStringLiteralImpl.java | 176 + .../alloyLanguage/impl/ALSStringScopeImpl.java | 40 + .../alloyLanguage/impl/ALSSubsetImpl.java | 264 + .../dslreasoner/alloyLanguage/impl/ALSSumImpl.java | 240 + .../alloyLanguage/impl/ALSTermImpl.java | 42 + .../alloyLanguage/impl/ALSTypeDeclarationImpl.java | 40 + .../alloyLanguage/impl/ALSTypeScopeImpl.java | 177 + .../alloyLanguage/impl/ALSUnaryMinusImpl.java | 193 + .../alloyLanguage/impl/ALSUnivImpl.java | 40 + .../impl/ALSVariableDeclarationImpl.java | 193 + .../impl/AlSTransitiveClosureImpl.java | 193 + .../impl/AlloyLanguageFactoryImpl.java | 837 + .../impl/AlloyLanguagePackageImpl.java | 2498 ++ .../util/AlloyLanguageAdapterFactory.java | 1212 + .../alloyLanguage/util/AlloyLanguageSwitch.java | 1410 + .../antlr/AlloyLanguageAntlrTokenFileProvider.java | 16 + .../parser/antlr/AlloyLanguageParser.java | 39 + .../parser/antlr/internal/InternalAlloyLanguage.g | 3139 ++ .../antlr/internal/InternalAlloyLanguage.tokens | 139 + .../antlr/internal/InternalAlloyLanguageLexer.java | 2854 ++ .../internal/InternalAlloyLanguageParser.java | 9153 ++++++ .../serializer/AlloyLanguageSemanticSequencer.java | 2366 ++ .../AlloyLanguageSyntacticSequencer.java | 216 + .../services/AlloyLanguageGrammarAccess.java | 2721 ++ .../validation/AbstractAlloyLanguageValidator.java | 18 + .../hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtext | 152 + .../dslreasoner/AlloyLanguageRuntimeModule.java | 11 + .../dslreasoner/AlloyLanguageStandaloneSetup.java | 16 + .../mit/inf/dslreasoner/GenerateAlloyLanguage.mwe2 | 133 + .../formatting/AlloyLanguageFormatter.xtend | 96 + .../generator/AlloyLanguageGenerator.xtend | 24 + .../scoping/AlloyLanguageScopeProvider.xtend | 81 + .../validation/AlloyLanguageValidator.xtend | 24 + 214 files changed, 97234 insertions(+) create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.classpath create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.gitignore create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.project create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.settings/org.eclipse.incquery.patternlanguage.emf.EMFPatternLanguage.prefs create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.settings/org.eclipse.jdt.core.prefs create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.settings/org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguage.prefs create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/META-INF/MANIFEST.MF create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/build.properties create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/lib/alloy4.2_2015-02-22.jar_GoesHere.txt create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/plugin.properties create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/plugin.xml create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/queries/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/queries/signatureQueries.vql create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/queries/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/queries/typeQueries.vql create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/AlloyAnalyzerConfiguration.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/AlloySolver.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Alloy2LogicMapper.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyHandler.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation_TypeInterpretation.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation_TypeInterpretation_FilteredTypes.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation_TypeInterpretation_InheritanceAndHorizontal.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapperTrace.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_ConstantMapper.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_Containment.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_FunctionMapper.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_RelationMapper.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_Support.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_TypeMapper.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_TypeMapperTrace_FilteredTypes.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_TypeMapperTrace_InheritanceAndHorizontal.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_TypeMapper_FilteredTypes.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_TypeMapper_InheritanceAndHorizontal.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/RunCommandMapper.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/unused/AlloyModelInterpretation.xtend_ create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/unused/FunctionWithTimeout.xtend_ create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/unused/Logic2AlloyApiMapper.xtend_ create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/unused/oldTypes create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/.classpath create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/.gitignore create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/.project create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/.settings/org.eclipse.core.resources.prefs create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/.settings/org.eclipse.jdt.core.prefs create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/META-INF/MANIFEST.MF create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/build.properties create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/plugin.xml create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/plugin.xml_gen create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/AbstractAlloyLanguageUiModule.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/AlloyLanguageExecutableExtensionFactory.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/AbstractAlloyLanguageProposalProvider.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/AlloyLanguageParser.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/PartialAlloyLanguageContentAssistParser.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/internal/InternalAlloyLanguage.g create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/internal/InternalAlloyLanguage.tokens create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/internal/InternalAlloyLanguageLexer.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/internal/InternalAlloyLanguageParser.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/internal/AlloyLanguageActivator.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/AlloyLanguageUiModule.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/contentassist/AlloyLanguageProposalProvider.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/labeling/AlloyLanguageDescriptionLabelProvider.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/labeling/AlloyLanguageLabelProvider.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/outline/AlloyLanguageOutlineTreeProvider.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/quickfix/AlloyLanguageQuickfixProvider.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.classpath create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.gitignore create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.launch/Generate Language Infrastructure (hu.bme.mit.inf.dslreasoner.alloy.language).launch create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.project create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.settings/org.eclipse.core.resources.prefs create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.settings/org.eclipse.jdt.core.prefs create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/META-INF/MANIFEST.MF create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/build.properties create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/model/generated/AlloyLanguage.ecore create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/model/generated/AlloyLanguage.genmodel create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/plugin.xml create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/plugin.xml_gen create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/AbstractAlloyLanguageRuntimeModule.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtextbin create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/AlloyLanguageStandaloneSetupGenerated.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSAnd.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSCardinality.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSDefinition.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSDirectProduct.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSDocument.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSEnumDeclaration.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSEnumLiteral.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSEquals.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSFactDeclaration.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSFieldDeclaration.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSFunctionCall.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSFunctionDefinition.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSIden.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSIff.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSInt.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSIntScope.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSIntersection.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSInverseRelation.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSJoin.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSLeq.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSLess.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSMeq.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSMinus.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSMore.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSMultiplicity.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSNone.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSNot.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSNotEquals.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSNumberLiteral.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSNumericOperator.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSOr.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSOverride.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSPlus.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSQuantifiedEx.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSRangeRestrictionLeft.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSRangeRestrictionRight.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSReference.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSReflectiveTransitiveClosure.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSRelationDeclaration.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSRelationDefinition.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSRunCommand.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSSigScope.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSSignatureBody.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSSignatureDeclaration.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSString.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSStringLiteral.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSStringScope.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSSubset.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSSum.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSTerm.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSTypeDeclaration.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSTypeScope.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSUnaryMinus.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSUniv.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSVariableDeclaration.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlSTransitiveClosure.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlloyLanguageFactory.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlloyLanguagePackage.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSAndImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSCardinalityImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSDefinitionImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSDirectProductImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSDocumentImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSEnumDeclarationImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSEnumLiteralImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSEqualsImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSFactDeclarationImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSFieldDeclarationImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSFunctionCallImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSFunctionDefinitionImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSIdenImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSIffImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSImplImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSIntImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSIntScopeImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSIntersectionImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSInverseRelationImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSJoinImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSLeqImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSLessImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSMeqImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSMinusImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSMoreImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSNoneImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSNotEqualsImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSNotImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSNumberLiteralImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSOrImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSOverrideImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSPlusImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSQuantifiedExImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSRangeRestrictionLeftImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSRangeRestrictionRightImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSReferenceImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSReflectiveTransitiveClosureImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSRelationDeclarationImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSRelationDefinitionImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSRunCommandImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSSigScopeImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSSignatureBodyImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSSignatureDeclarationImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringLiteralImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringScopeImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSSubsetImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSSumImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSTermImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSTypeDeclarationImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSTypeScopeImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSUnaryMinusImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSUnivImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSVariableDeclarationImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlSTransitiveClosureImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlloyLanguageFactoryImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlloyLanguagePackageImpl.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/util/AlloyLanguageAdapterFactory.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/util/AlloyLanguageSwitch.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/AlloyLanguageAntlrTokenFileProvider.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/AlloyLanguageParser.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguage.g create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguage.tokens create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguageLexer.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguageParser.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/serializer/AlloyLanguageSemanticSequencer.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/serializer/AlloyLanguageSyntacticSequencer.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/services/AlloyLanguageGrammarAccess.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/validation/AbstractAlloyLanguageValidator.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtext create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/AlloyLanguageRuntimeModule.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/AlloyLanguageStandaloneSetup.java create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/GenerateAlloyLanguage.mwe2 create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/formatting/AlloyLanguageFormatter.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/generator/AlloyLanguageGenerator.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/scoping/AlloyLanguageScopeProvider.xtend create mode 100644 Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/validation/AlloyLanguageValidator.xtend (limited to 'Solvers/Alloy-Solver2') diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.classpath b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.classpath new file mode 100644 index 00000000..494c050c --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.classpath @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.gitignore b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.gitignore new file mode 100644 index 00000000..e42fe9ea --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.gitignore @@ -0,0 +1,4 @@ +/bin/ +/src-gen/ +/vql-gen/ +/xtend-gen/ \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.project b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.project new file mode 100644 index 00000000..6f6a3130 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.project @@ -0,0 +1,40 @@ + + + hu.bme.mit.inf.dlsreasoner.alloy.reasoner + + + + + + org.eclipse.viatra.query.tooling.core.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.xtext.ui.shared.xtextNature + org.eclipse.viatra.query.projectnature + + diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.settings/org.eclipse.incquery.patternlanguage.emf.EMFPatternLanguage.prefs b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.settings/org.eclipse.incquery.patternlanguage.emf.EMFPatternLanguage.prefs new file mode 100644 index 00000000..1555fd84 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.settings/org.eclipse.incquery.patternlanguage.emf.EMFPatternLanguage.prefs @@ -0,0 +1,29 @@ +BuilderConfiguration.is_project_specific=true +autobuilding=true +eclipse.preferences.version=1 +generateGeneratedAnnotation=false +generateSuppressWarnings=true +generatedAnnotationComment= +includeDateInGenerated=false +outlet.DEFAULT_OUTPUT.cleanDirectory=false +outlet.DEFAULT_OUTPUT.cleanupDerived=true +outlet.DEFAULT_OUTPUT.createDirectory=true +outlet.DEFAULT_OUTPUT.derived=true +outlet.DEFAULT_OUTPUT.directory=./viatra-gen +outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true +outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false +outlet.DEFAULT_OUTPUT.keepLocalHistory=true +outlet.DEFAULT_OUTPUT.override=true +outlet.DEFAULT_OUTPUT.sourceFolder.ecore-gen.directory= +outlet.DEFAULT_OUTPUT.sourceFolder.ecore-gen.ignore= +outlet.DEFAULT_OUTPUT.sourceFolder.queries.directory= +outlet.DEFAULT_OUTPUT.sourceFolder.queries.ignore= +outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.directory= +outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.ignore= +outlet.DEFAULT_OUTPUT.sourceFolder.src.directory= +outlet.DEFAULT_OUTPUT.sourceFolder.src.ignore= +outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory= +outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.ignore= +outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder= +targetJavaVersion=JAVA5 +useJavaCompilerCompliance=true diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.settings/org.eclipse.jdt.core.prefs b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..0c68a61d --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.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/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.settings/org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguage.prefs b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.settings/org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguage.prefs new file mode 100644 index 00000000..e346b3ed --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.settings/org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguage.prefs @@ -0,0 +1,29 @@ +BuilderConfiguration.is_project_specific=true +autobuilding=true +eclipse.preferences.version=1 +generateGeneratedAnnotation=false +generateSuppressWarnings=true +generatedAnnotationComment= +includeDateInGenerated=false +outlet.DEFAULT_OUTPUT.cleanDirectory=true +outlet.DEFAULT_OUTPUT.cleanupDerived=true +outlet.DEFAULT_OUTPUT.createDirectory=true +outlet.DEFAULT_OUTPUT.derived=true +outlet.DEFAULT_OUTPUT.directory=./vql-gen +outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true +outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false +outlet.DEFAULT_OUTPUT.keepLocalHistory=true +outlet.DEFAULT_OUTPUT.override=true +outlet.DEFAULT_OUTPUT.sourceFolder.ecore-gen.directory= +outlet.DEFAULT_OUTPUT.sourceFolder.ecore-gen.ignore= +outlet.DEFAULT_OUTPUT.sourceFolder.queries.directory= +outlet.DEFAULT_OUTPUT.sourceFolder.queries.ignore= +outlet.DEFAULT_OUTPUT.sourceFolder.src.directory= +outlet.DEFAULT_OUTPUT.sourceFolder.src.ignore= +outlet.DEFAULT_OUTPUT.sourceFolder.viatra-gen.directory= +outlet.DEFAULT_OUTPUT.sourceFolder.viatra-gen.ignore= +outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory= +outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.ignore= +outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder= +targetJavaVersion=JAVA5 +useJavaCompilerCompliance=true diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/META-INF/MANIFEST.MF b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/META-INF/MANIFEST.MF new file mode 100644 index 00000000..87ff7abc --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/META-INF/MANIFEST.MF @@ -0,0 +1,26 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: hu.bme.mit.inf.dlsreasoner.alloy.reasoner;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-ClassPath: lib/alloy4.2_2015-02-22.jar, + . +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Export-Package: hu.bme.mit.inf.dlsreasoner.alloy.reasoner, + hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder, + hu.bme.mit.inf.dlsreasoner.alloy.reasoner.queries +Require-Bundle: com.google.guava, + org.eclipse.xtend.lib, + org.eclipse.xtext.xbase.lib, + org.eclipse.core.runtime, + org.eclipse.emf.ecore;visibility:=reexport, + hu.bme.mit.inf.dslreasoner.logic.model;bundle-version="1.0.0";visibility:=reexport, + hu.bme.mit.inf.dslreasoner.alloy.language;bundle-version="1.0.0", + org.eclipse.viatra.query.runtime.base.itc;bundle-version="1.3.0", + hu.bme.mit.inf.dslreasoner.ecore2logic;bundle-version="1.0.0", + org.eclipse.viatra.query.runtime;bundle-version="2.0.0" +Import-Package: org.apache.log4j;version="1.2.15" +Automatic-Module-Name: hu.bme.mit.inf.dlsreasoner.alloy.reasoner +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/build.properties b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/build.properties new file mode 100644 index 00000000..a406415f --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/build.properties @@ -0,0 +1,11 @@ +bin.includes = .,\ + META-INF/,\ + plugin.xml,\ + plugin.properties +jars.compile.order = . +source.. = src/,\ + queries/,\ + xtend-gen/,\ + vql-gen/,\ + src-gen/ +output.. = bin/ diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/lib/alloy4.2_2015-02-22.jar_GoesHere.txt b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/lib/alloy4.2_2015-02-22.jar_GoesHere.txt new file mode 100644 index 00000000..0df6fddc --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/lib/alloy4.2_2015-02-22.jar_GoesHere.txt @@ -0,0 +1 @@ +Download alloy4.2_2015-02-22.jar from http://alloy.mit.edu/alloy/downloads/alloy4.2_2015-02-22.jar and place here. \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/plugin.properties b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/plugin.properties new file mode 100644 index 00000000..8a902309 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/plugin.properties @@ -0,0 +1,4 @@ +# + +pluginName = AlloyLanguage Model +providerName = www.example.org diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/plugin.xml b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/plugin.xml new file mode 100644 index 00000000..e57b595a --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/plugin.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/queries/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/queries/signatureQueries.vql b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/queries/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/queries/signatureQueries.vql new file mode 100644 index 00000000..5b04960e --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/queries/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/queries/signatureQueries.vql @@ -0,0 +1,17 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.queries + +import epackage "http://www.bme.hu/mit/inf/dslreasoner/AlloyLanguage" + +pattern directSubset(x: ALSSignatureDeclaration, y: ALSSignatureDeclaration) { + ALSSignatureBody.declarations(b,y); + ALSSignatureBody.supertype(b,x); +} or { + ALSSignatureBody.declarations(b,y); + ALSSignatureBody.superset(b,x); +} + +pattern subset(x: ALSSignatureDeclaration, y: ALSSignatureDeclaration) { + x == y; +} or { + find directSubset+(x,y); +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/queries/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/queries/typeQueries.vql b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/queries/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/queries/typeQueries.vql new file mode 100644 index 00000000..9847b60a --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/queries/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/queries/typeQueries.vql @@ -0,0 +1,85 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.queries + +import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" + +private pattern supertypeEdge(type1: Type, type2: Type) { + Type.supertypes(type1,type2); +} + +pattern supertype(type1: Type, type2: Type) { + type1 == type2; +} or { + find supertypeEdge+(type1,type2); +} + +private pattern commonSubtype(type1: Type, type2: Type, common: Type) { + find supertype(common,type1); + find supertype(common,type2); +} + +private pattern commonSupertype(type1: Type, type2: Type, common: Type) { + find supertype(common,type1); + find supertype(common,type2); +} + +private pattern hasHigherCommonSubtype(type1: Type, type2: Type, common: Type, higher: Type) { + find supertype(higher,type1); + find supertype(higher,type2); + Type.supertypes(common,higher); + higher != common; +} + +private pattern hasLowerCommonSupertype(type1: Type, type2: Type, common: Type, lower: Type) { + find supertype(type1,lower); + find supertype(type2,lower); + Type.supertypes(lower,common); + lower != common; +} + +pattern topmostCommonSubtypes(type1: Type, type2: Type, common: Type) { + find commonSubtype(type1, type2, common); + neg find hasHigherCommonSubtype(type1, type2, common, _); +} + +pattern lowermostCommonSupertype(type1: Type, type2: Type, common: Type) { + find commonSupertype(type1, type2, common); + neg find hasLowerCommonSupertype(type1, type2, common, _); +} +/*pattern topmostCommonSubtypesInObject(type1: Type, type2: Type, common: Type) { + find commonSubtype(type1, type2, common); + neg find supertypeEdge(type1,_); + neg find supertypeEdge(type2,_); + neg find hasHigherCommonSubtype(type1, type2, common, _); +} +pattern topmostCommonSubtypesInType(in: Type, type1: Type, type2: Type, common: Type) { + find commonSubtype(type1, type2, common); + find supertypeEdge(type1,in); + find supertypeEdge(type2,in); + neg find hasHigherCommonSubtype(type1, type2, common, _); +} + */ + +pattern lowestCommonSupertypeOfAllOccuranceOfElement(element: DefinedElement, type: Type) { + find typeContainsAllOccuranceOfElement(element,type); + neg find hasLowerCommonSupertypeOfAllOccuranceOfElement(element, type, _); +} + +private pattern hasLowerCommonSupertypeOfAllOccuranceOfElement(element: DefinedElement, type: Type, lower: Type) { + find typeContainsAllOccuranceOfElement(element, type); + find typeContainsAllOccuranceOfElement(element, lower); + find supertype(lower, type); + type != lower; +} + +private pattern typeContainsAllOccuranceOfElement(element: DefinedElement, type: Type) { + find supertype(containerType,type); + TypeDefinition.elements(containerType,element); + neg find typeDoesNotCoverElementOccurance(element,type,_); +} + +private pattern typeDoesNotCoverElementOccurance(element: DefinedElement, type: Type, uncoveredOccurance: TypeDefinition) { + find supertype(containerType,type); + TypeDefinition.elements(containerType,element); + TypeDefinition.elements(uncoveredOccurance,element); + neg find supertype(uncoveredOccurance,type); +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/AlloyAnalyzerConfiguration.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/AlloyAnalyzerConfiguration.xtend new file mode 100644 index 00000000..b16ed27f --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/AlloyAnalyzerConfiguration.xtend @@ -0,0 +1,28 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner + +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration + +class AlloySolverConfiguration extends LogicSolverConfiguration { + public var int symmetry = 20 // by default + public var AlloyBackendSolver solver = AlloyBackendSolver.SAT4J + public var TypeMappingTechnique typeMapping = TypeMappingTechnique.InheritanceAndHorizontal + public var randomise = 0 +} + +enum AlloyBackendSolver { + BerkMinPIPE, + SpearPIPE, + MiniSatJNI, + MiniSatProverJNI, + LingelingJNI, + PLingelingJNI, + GlucoseJNI, + CryptoMiniSatJNI, + SAT4J, + CNF, + KodKod +} + +enum TypeMappingTechnique { + FilteredTypes, InheritanceAndHorizontal +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/AlloySolver.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/AlloySolver.xtend new file mode 100644 index 00000000..9cfa7391 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/AlloySolver.xtend @@ -0,0 +1,91 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner + +import edu.mit.csail.sdg.alloy4compiler.translator.A4Solution +import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Alloy2LogicMapper +import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.AlloyHandler +import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.AlloyModelInterpretation +import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Logic2AlloyLanguageMapper +import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Logic2AlloyLanguageMapperTrace +import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Logic2AlloyLanguageMapper_TypeMapper_FilteredTypes +import hu.bme.mit.inf.dslreasoner.AlloyLanguageStandaloneSetupGenerated +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage +import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel +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 hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace + +class AlloySolver extends LogicReasoner{ + + new() { + AlloyLanguagePackage.eINSTANCE.eClass + val x = new AlloyLanguageStandaloneSetupGenerated + x.createInjectorAndDoEMFRegistration + } + + val Logic2AlloyLanguageMapper forwardMapper = new Logic2AlloyLanguageMapper(new Logic2AlloyLanguageMapper_TypeMapper_FilteredTypes) + val AlloyHandler handler = new AlloyHandler + val Alloy2LogicMapper backwardMapper = new Alloy2LogicMapper + + val fileName = "problem.als" + + override solve(LogicProblem problem, LogicSolverConfiguration configuration, ReasonerWorkspace workspace) throws LogicReasonerException { + val alloyConfig = configuration.asConfig + val writeFile = ( + configuration.documentationLevel===DocumentationLevel::NORMAL || + configuration.documentationLevel===DocumentationLevel::FULL) + + // Start: Logic -> Alloy mapping + val transformationStart = System.currentTimeMillis + val result = forwardMapper.transformProblem(problem,alloyConfig) + val alloyProblem = result.output + val forwardTrace = result.trace + + //var String fileURI = null; + var String alloyCode = workspace.writeModelToString(alloyProblem,fileName) + if(writeFile) { + workspace.writeModel(alloyProblem,fileName) + } + val transformationTime = System.currentTimeMillis - transformationStart + alloyConfig.progressMonitor.workedForwardTransformation + // Finish: Logic -> Alloy mapping + + // Start: Solving Alloy problem + //val solverStart = System.currentTimeMillis + val result2 = handler.callSolver(alloyProblem,workspace,alloyConfig,alloyCode) + alloyConfig.progressMonitor.workedSearchFinished + + val logicResult = backwardMapper.transformOutput(problem,configuration.solutionScope.numberOfRequiredSolution,result2,forwardTrace,transformationTime) + alloyConfig.progressMonitor.workedBackwardTransformationFinished + //val solverFinish = System.currentTimeMillis-solverStart + // Finish: Solving Alloy problem + + //logicResult.statistics = + + return logicResult + } + + def asConfig(LogicSolverConfiguration configuration) { + if(configuration instanceof AlloySolverConfiguration) { + return configuration + } else { + throw new IllegalArgumentException('''The configuration has to be an «AlloySolverConfiguration.simpleName»!''') + } + } + + 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 AlloyModelInterpretation( + forwardMapper.typeMapper.typeInterpreter, + it as A4Solution, + forwardMapper, + modelResult.trace as Logic2AlloyLanguageMapperTrace + ) + ] + } +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Alloy2LogicMapper.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Alloy2LogicMapper.xtend new file mode 100644 index 00000000..09b67599 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Alloy2LogicMapper.xtend @@ -0,0 +1,66 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem +import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicresultFactory + +class Alloy2LogicMapper { + val extension LogicresultFactory resultFactory = LogicresultFactory.eINSTANCE + + public def transformOutput(LogicProblem problem, int requiredNumberOfSolution, MonitoredAlloySolution monitoredAlloySolution, Logic2AlloyLanguageMapperTrace trace, long transformationTime) { + val models = monitoredAlloySolution.aswers.map[it.key].toList + + if(!monitoredAlloySolution.finishedBeforeTimeout) { + return createInsuficientResourcesResult => [ + it.problem = problem + it.representation += models + it.trace = trace + it.statistics = transformStatistics(monitoredAlloySolution,transformationTime) + ] + } else { + if(models.last.satisfiable || requiredNumberOfSolution == -1) { + return createModelResult => [ + it.problem = problem + it.representation += models + it.trace = trace + it.statistics = transformStatistics(monitoredAlloySolution,transformationTime) + ] + } else { + return createInconsistencyResult => [ + it.problem = problem + it.representation += models + it.trace = trace + it.statistics = transformStatistics(monitoredAlloySolution,transformationTime) + ] + } + } + } + + def transformStatistics(MonitoredAlloySolution solution, long transformationTime) { + createStatistics => [ + it.transformationTime = transformationTime as int + for(solutionIndex : 0.. [ + it.name = '''Answer«solutionIndex»Time''' + it.value = solutionTime.intValue + ] + } + it.entries+= createIntStatisticEntry => [ + it.name = "Alloy2KodKodTransformationTime" + it.value = solution.kodkodTime as int + ] + it.entries+= createIntStatisticEntry => [ + it.name = "Alloy2KodKodTransformationTime" + it.value = solution.kodkodTime as int + ] + it.entries+= createStringStatisticEntry => [ + it.name = "warnings" + it.value = '''[«FOR warning : solution.warnings SEPARATOR ","»«warning»«ENDFOR»]''' + ] + ] + } + + def sum(Iterable ints) { + ints.reduce[p1, p2|p1+p2] + } +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyHandler.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyHandler.xtend new file mode 100644 index 00000000..eee2d649 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyHandler.xtend @@ -0,0 +1,228 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import edu.mit.csail.sdg.alloy4.A4Reporter +import edu.mit.csail.sdg.alloy4.Err +import edu.mit.csail.sdg.alloy4.ErrorWarning +import edu.mit.csail.sdg.alloy4compiler.ast.Command +import edu.mit.csail.sdg.alloy4compiler.parser.CompModule +import edu.mit.csail.sdg.alloy4compiler.parser.CompUtil +import edu.mit.csail.sdg.alloy4compiler.translator.A4Options +import edu.mit.csail.sdg.alloy4compiler.translator.A4Options.SatSolver +import edu.mit.csail.sdg.alloy4compiler.translator.A4Solution +import edu.mit.csail.sdg.alloy4compiler.translator.TranslateAlloyToKodkod +import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloyBackendSolver +import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration +import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace +import java.util.ArrayList +import java.util.HashMap +import java.util.LinkedList +import java.util.List +import java.util.Map +import java.util.concurrent.Callable +import java.util.concurrent.ExecutionException +import java.util.concurrent.ExecutorService +import java.util.concurrent.Executors +import java.util.concurrent.TimeUnit +import java.util.concurrent.TimeoutException +import org.eclipse.xtend.lib.annotations.Data + +class AlloySolverException extends Exception{ + new(String s) { super(s) } + new(String s, Exception e) { super(s,e) } + new(String s, List errors, Exception e) { + super(s + '\n' + errors.join('\n'), e) + } +} + +@Data class MonitoredAlloySolution{ + List warnings + List debugs + long kodkodTime + val List> aswers + val boolean finishedBeforeTimeout +} + +class AlloyHandler { + + //val fileName = "problem.als" + + def callSolver(ALSDocument problem, ReasonerWorkspace workspace, AlloySolverConfiguration configuration,String alloyCode) { + + //Prepare + val warnings = new LinkedList + val debugs = new LinkedList + val runtime = new ArrayList + val reporter = new A4Reporter() { + override debug(String message) { debugs += message } + override resultSAT (Object command, long solvingTime, Object solution) { runtime += solvingTime } + override resultUNSAT (Object command, long solvingTime, Object solution) { runtime += solvingTime } + override warning(ErrorWarning msg) { warnings += msg.message } + } + + val options = new A4Options() => [ + it.symmetry = configuration.symmetry + it.noOverflow = true + it.solver = getSolver(configuration.solver, configuration) + if(configuration.solver.externalSolver) { + it.solverDirectory = configuration.solverPath + } + //it.inferPartialInstance + //it.tempDirectory = CommonPlugin.resolve(workspace.workspaceURI).toFileString + ] + + // Transform + var Command command = null; + var CompModule compModule = null + + // Start: Alloy -> Kodkod + val kodkodTransformStart = System.currentTimeMillis(); + try { + compModule = CompUtil.parseEverything_fromString(reporter,alloyCode) + if(compModule.allCommands.size != 1) + throw new UnsupportedOperationException('''Alloy files with multiple commands are not supported!''') + command = compModule.allCommands.head + } catch (Err e){ + throw new AlloySolverException(e.message,warnings,e) + } + val kodkodTransformFinish = System.currentTimeMillis - kodkodTransformStart + // Finish: Alloy -> Kodkod + + val callable = new AlloyCallerWithTimeout(warnings,debugs,reporter,options,command,compModule,configuration) + var List> answers + var boolean finished + if(configuration.runtimeLimit == LogicSolverConfiguration::Unlimited) { + answers = callable.call + finished = true + } else { + val ExecutorService executor = Executors.newCachedThreadPool(); + val future = executor.submit(callable) + try{ + answers = future.get(configuration.runtimeLimit,TimeUnit.SECONDS) + finished = true + } catch (TimeoutException ex) { + // handle the timeout + } catch (InterruptedException e) { + // handle the interrupts + } catch (ExecutionException e) { + // handle other exceptions + } finally { + future.cancel(true); + + answers = callable.partialAnswers + finished = false + } + } + + new MonitoredAlloySolution(warnings,debugs,kodkodTransformFinish,answers,finished) + } + + val static Map previousSolverConfigurations = new HashMap + def getSolverConfiguration(AlloyBackendSolver backedSolver, String path, String[] options) { + val config = new SolverConfiguration(backedSolver,path,options) + if(previousSolverConfigurations.containsKey(config)) { + return previousSolverConfigurations.get(config) + } else { + val id ='''DSLReasoner_Alloy_«previousSolverConfigurations.size»_«backedSolver»''' + val newSolver = A4Options.SatSolver.make(id,id,path,options) + previousSolverConfigurations.put(config,newSolver) + return newSolver + } + } + + def getSolver(AlloyBackendSolver backedSolver, AlloySolverConfiguration configuration) { + switch(backedSolver){ + case BerkMinPIPE: return A4Options.SatSolver.BerkMinPIPE + case SpearPIPE: return A4Options.SatSolver.SpearPIPE + case MiniSatJNI: return A4Options.SatSolver.MiniSatJNI + case MiniSatProverJNI: return A4Options.SatSolver.MiniSatProverJNI + case LingelingJNI: return A4Options.SatSolver.LingelingJNI + case PLingelingJNI: return getSolverConfiguration(backedSolver,configuration.solverPath,null) + case GlucoseJNI: return A4Options.SatSolver.GlucoseJNI + case CryptoMiniSatJNI: return A4Options.SatSolver.CryptoMiniSatJNI + case SAT4J: return A4Options.SatSolver.SAT4J + case CNF: return A4Options.SatSolver.CNF + case KodKod: return A4Options.SatSolver.KK + } + } + + def isExternalSolver(AlloyBackendSolver backedSolver) { + return !(backedSolver == AlloyBackendSolver.SAT4J) + } +} + +class AlloyCallerWithTimeout implements Callable>>{ + + val List warnings + val List debugs + val A4Reporter reporter + val A4Options options + + val Command command + val CompModule compModule + val AlloySolverConfiguration configuration + + val List> answers = new LinkedList() + + new(List warnings, + List debugs, + A4Reporter reporter, + A4Options options, + Command command, + CompModule compModule, + AlloySolverConfiguration configuration) + { + this.warnings = warnings + this.debugs = debugs + this.reporter = reporter + this.options = options + this.command = command + this.compModule = compModule + this.configuration = configuration + } + + override call() throws Exception { + val startTime = System.currentTimeMillis + + // Start: Execute + var A4Solution lastAnswer = null + try { + if(!configuration.progressMonitor.isCancelled) { + do{ + if(lastAnswer == null) { + lastAnswer = TranslateAlloyToKodkod.execute_command(reporter,compModule.allSigs,command,options) + } else { + lastAnswer = lastAnswer.next + } + configuration.progressMonitor.workedBackwardTransformation(configuration.solutionScope.numberOfRequiredSolution) + + val runtime = System.currentTimeMillis -startTime + synchronized(this) { + answers += (lastAnswer->runtime) + } + } while(lastAnswer.satisfiable != false && !hasEnoughSolution(answers) && !configuration.progressMonitor.isCancelled) + + } + }catch(Exception e) { + warnings +=e.message + } + // Finish: execute + return answers + } + + def hasEnoughSolution(List answers) { + if(configuration.solutionScope.numberOfRequiredSolution < 0) return false + else return answers.size() == configuration.solutionScope.numberOfRequiredSolution + } + + public def getPartialAnswers() { + return answers + } +} + +@Data class SolverConfiguration { + AlloyBackendSolver backedSolver + String path + String[] options +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation.xtend new file mode 100644 index 00000000..dcb4bb32 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation.xtend @@ -0,0 +1,249 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import edu.mit.csail.sdg.alloy4compiler.ast.ExprVar +import edu.mit.csail.sdg.alloy4compiler.ast.Sig +import edu.mit.csail.sdg.alloy4compiler.ast.Sig.Field +import edu.mit.csail.sdg.alloy4compiler.translator.A4Solution +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicModelInterpretation +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.FunctionDeclaration +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguageFactory +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDefinition +import java.util.Arrays +import java.util.HashMap +import java.util.LinkedList +import java.util.List +import java.util.Map +import java.util.Set +import java.util.SortedSet +import java.util.TreeSet + +import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* + +class AlloyModelInterpretation implements LogicModelInterpretation{ + + protected val extension LogiclanguageFactory factory = LogiclanguageFactory.eINSTANCE + protected val AlloyModelInterpretation_TypeInterpretation typeInterpretator + + protected val Logic2AlloyLanguageMapper forwardMapper + protected val Logic2AlloyLanguageMapperTrace forwardTrace; + + private var ExprVar logicLanguage; + + private var String logicBooleanTrue; + private var String logicBooleanFalse; + private SortedSet integerAtoms = new TreeSet + private SortedSet stringAtoms = new TreeSet + + private val Map alloyAtom2LogicElement = new HashMap + private val Map> interpretationOfUndefinedType = new HashMap + + private val Map constant2Value + private val Map> function2Value + private val Map> relation2Value + + //private val int minInt + //private val int maxInt + + public new (AlloyModelInterpretation_TypeInterpretation typeInterpretator, A4Solution solution, Logic2AlloyLanguageMapper forwardMapper, Logic2AlloyLanguageMapperTrace trace) { + this.typeInterpretator = typeInterpretator + this.forwardMapper = forwardMapper + this.forwardTrace = trace + + // Maps to trace language elements to the parsed problem. + val Map name2AlloySig = new HashMap + val Map name2AlloyField = new HashMap + // exploring signatures + for(sig:solution.allReachableSigs) { + name2AlloySig.put(sig.label,sig) + for(field : sig.fields) { + name2AlloyField.put(field.label,field) + } + } + val unknownAtoms = collectUnknownAndResolveKnownAtoms(solution) + this.typeInterpretator.resolveUnknownAtoms( + unknownAtoms, + solution, + forwardTrace, + name2AlloySig, + name2AlloyField, + alloyAtom2LogicElement, + interpretationOfUndefinedType) + + // eval consants + constant2Value = forwardTrace.constantDeclaration2LanguageField.mapValues[ + solution.eval(it.name.lookup(name2AlloyField)).head.atom(1).atomLabel2Term + ] + // eval functions + val hostedfunction2Value = forwardTrace.functionDeclaration2HostedField.mapValues[ function | + newHashMap( + solution.eval(function.name.lookup(name2AlloyField)) + .map[t | new ParameterSubstitution(#[t.atom(0).atomLabel2Term]) -> t.atom(1).atomLabel2Term])] + + val globalfunction2Value = forwardTrace.functionDeclaration2LanguageField.keySet.toInvertedMap[ function | + val alsFunction = function.lookup(forwardTrace.functionDeclaration2LanguageField) + val paramIndexes = 1..(function.parameters.size) + return newHashMap( + solution.eval(alsFunction.name.lookup(name2AlloyField)).map[t | + new ParameterSubstitution(paramIndexes.map[t.atom(it).atomLabel2Term]) + -> + t.atom(function.parameters.size + 1).atomLabel2Term + ])] + this.function2Value = Union(hostedfunction2Value,globalfunction2Value) + // eval relations + val hostedRelation2Value = forwardTrace.relationDeclaration2Field.mapValues[ relation | + solution.eval(relation.name.lookup(name2AlloyField)).map[ t | + new ParameterSubstitution(#[t.atom(0).atomLabel2Term,t.atom(1).atomLabel2Term])].toSet] + val globalRelation2Value = forwardTrace.relationDeclaration2Global.mapValues[ relation | + solution.eval(relation.name.lookup(name2AlloyField)).map[ t | + new ParameterSubstitution((1.. collectUnknownAndResolveKnownAtoms(A4Solution solution) { + val Iterable allAtoms = solution.allAtoms + val List unknownAtoms = new LinkedList + + for(atom: allAtoms) { + val typeName = getName(atom.type) + val atomName = atom.name + println(atom.toString + " < - " + typeName) + if(typeName == forwardTrace.logicLanguage.name) { + this.logicLanguage = atom + } else if(typeName == "Int" || typeName == "seq/Int") { + val value = Integer.parseInt(atomName.join) + this.integerAtoms.add(value) + } else if(forwardTrace.boolType != null && typeName == forwardTrace.boolType.name) { + if(atomName.head == forwardTrace.boolTrue.name) { this.logicBooleanTrue = atom.label } + else if(atomName.head == forwardTrace.boolFalse.name) { this.logicBooleanFalse = atom.label} + else throw new UnsupportedOperationException('''Unknown boolean value: «atom»''') + } else if(typeName == "String") { + val value = parseString(atomName.join) + this.stringAtoms.add(value) + } else { + unknownAtoms += atom + } + } + val integerSignature = solution.allReachableSigs.filter[it.label=="Int"].head + for(i : solution.eval(integerSignature)) { + val value = Integer.parseInt(i.atom(0)) + this.integerAtoms.add(value) + } + val stringSignature = solution.allReachableSigs.filter[it.label=="String"].head + for(i : solution.eval(stringSignature)) { + val value = parseString(i.atom(0)) + this.stringAtoms.add(value) + } + return unknownAtoms + } + + def private getName(edu.mit.csail.sdg.alloy4compiler.ast.Type type) { + val name = type.toString + if(name.startsWith("{this/") && name.endsWith("}")) { + return type.toString.replaceFirst("\\{this\\/","").replace("}","") + } + else throw new IllegalArgumentException('''Unknown type format: "«name»"!''') + } + def private getName(ExprVar atom) { atom.toString.split("\\$") } + + def print(Logic2AlloyLanguageMapperTrace trace) { + println('''Undefined-----''') + interpretationOfUndefinedType.forEach[k,v|println('''«k.name» -> «v.map[name]»''')] + //println('''Defined-----''') + //trace.type2ALSType.keySet.filter(TypeDefinition).forEach[println('''«it.name» -> «it.elements.map[name.join]»''')] + + println('''Constants-----''') + constant2Value.forEach[k, v|println('''«k.name» : «v»''')] + println('''Functions-----''') + function2Value.forEach[f,m|m.forEach[k,v| println('''«f.name» : «k» |-> «v»''')]] + println('''Relations-----''') + relation2Value.forEach[r,s|s.forEach[t | println('''«r.name»: («t»)''')]] + } + + override getElements(Type type) { getElementsDispatch(type) } + def private dispatch getElementsDispatch(TypeDeclaration declaration) { return declaration.lookup(this.interpretationOfUndefinedType) } + def private dispatch getElementsDispatch(TypeDefinition declaration) { return declaration.elements } + + override getInterpretation(FunctionDeclaration function, Object[] parameterSubstitution) { + val transformedParams = new ParameterSubstitution(parameterSubstitution) + return transformedParams.lookup( + function.lookup(this.function2Value) + ) + } + + override getInterpretation(RelationDeclaration relation, Object[] parameterSubstitution) { + relation.lookup(this.relation2Value).contains(new ParameterSubstitution(parameterSubstitution)) + } + + override getInterpretation(ConstantDeclaration constant) { + constant.lookup(this.constant2Value) + } + + // Alloy term -> logic term + def private atomLabel2Term(String label) { + if(label.number) return Integer.parseInt(label) + else if(label == this.logicBooleanTrue) return true + else if(label == this.logicBooleanFalse) return false + else if(this.alloyAtom2LogicElement.containsKey(label)) return label.lookup(alloyAtom2LogicElement) + else if(label.isString) return parseString(label) + else throw new IllegalArgumentException('''Unknown atom label: "«label»"!''') + } + def private isNumber(String s) { + try{ + Integer.parseInt(s) + return true + }catch(NumberFormatException e) { + return false + } + } + def private isString(String label) { + label.startsWith("\"") && label.endsWith("\"") + } + def private parseString(String label) { + label.substring(1,label.length-1) + } + + override getAllIntegersInStructure() { + this.integerAtoms + } + + override getAllRealsInStructure() { + new TreeSet + } + + override getAllStringsInStructure() { + this.stringAtoms + } +} + +/** + * Helper class for efficiently matching parameter substitutions for functions and relations. + */ +class ParameterSubstitution{ + val Object[] data; + + new(Object[] data) { this.data = data } + + override equals(Object obj) { + if(obj === this) return true + else if(obj == null) return false + if(obj instanceof ParameterSubstitution) { + return Arrays.equals(this.data,obj.data) + } + return false + } + + override hashCode() { + Arrays.hashCode(data) + } +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation_TypeInterpretation.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation_TypeInterpretation.xtend new file mode 100644 index 00000000..7082c946 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation_TypeInterpretation.xtend @@ -0,0 +1,21 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import edu.mit.csail.sdg.alloy4compiler.ast.ExprVar +import edu.mit.csail.sdg.alloy4compiler.translator.A4Solution +import edu.mit.csail.sdg.alloy4compiler.ast.Sig +import java.util.Map +import edu.mit.csail.sdg.alloy4compiler.ast.Sig.Field +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration +import java.util.List + +interface AlloyModelInterpretation_TypeInterpretation { + def void resolveUnknownAtoms( + Iterable objectAtoms, + A4Solution solution, + Logic2AlloyLanguageMapperTrace forwardTrace, + Map name2AlloySig, + Map name2AlloyField, + Map expression2DefinedElement, + Map> interpretationOfUndefinedType) +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation_TypeInterpretation_FilteredTypes.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation_TypeInterpretation_FilteredTypes.xtend new file mode 100644 index 00000000..d486649c --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation_TypeInterpretation_FilteredTypes.xtend @@ -0,0 +1,72 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import edu.mit.csail.sdg.alloy4compiler.ast.ExprVar +import edu.mit.csail.sdg.alloy4compiler.ast.Sig +import edu.mit.csail.sdg.alloy4compiler.ast.Sig.Field +import edu.mit.csail.sdg.alloy4compiler.translator.A4Solution +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguageFactory +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration +import java.util.ArrayList +import java.util.List +import java.util.Map + +import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* + +class AlloyModelInterpretation_TypeInterpretation_FilteredTypes implements AlloyModelInterpretation_TypeInterpretation{ + protected val extension LogiclanguageFactory factory = LogiclanguageFactory.eINSTANCE + + override resolveUnknownAtoms( + Iterable objectAtoms, + A4Solution solution, + Logic2AlloyLanguageMapperTrace forwardTrace, + Map name2AlloySig, + Map name2AlloyField, + Map expression2DefinedElement, + Map> interpretationOfUndefinedType) + { + /*val Map expression2DefinedElement = new HashMap() + val Map> interpretationOfUndefinedType = new HashMap;*/ + + val typeTrace = forwardTrace.typeMapperTrace as Logic2AlloyLanguageMapper_TypeMapperTrace_FilteredTypes + + // 1. Evaluate the defined elements + for(definedElementMappingEntry : typeTrace.definedElement2Declaration.entrySet) { + val name = definedElementMappingEntry.value.name + val matchingSig = '''this/«name»'''.toString.lookup(name2AlloySig) + val elementsOfSingletonSignature = solution.eval(matchingSig) + if(elementsOfSingletonSignature.size != 1) { + throw new IllegalArgumentException('''Defined element is unambigous: "«name»", possible values: «elementsOfSingletonSignature»!''') + } else { + val expressionOfDefinedElement = elementsOfSingletonSignature.head.atom(0)// as ExprVar + expression2DefinedElement.put(expressionOfDefinedElement, definedElementMappingEntry.key) + } + } + + // 2. evaluate the signatures and create new elements if necessary + for(type2SingatureEntry : typeTrace.type2ALSType.entrySet) { + val type = type2SingatureEntry.key + if(type instanceof TypeDeclaration) { + val name = type2SingatureEntry.value.name + val matchingSig = '''this/«name»'''.toString.lookup(name2AlloySig) + val elementsOfSignature = solution.eval(matchingSig) + val elementList = new ArrayList(elementsOfSignature.size) + var newVariableIndex = 1; + for(elementOfSignature : elementsOfSignature) { + val expressionOfDefinedElement = elementOfSignature.atom(0) + if(expression2DefinedElement.containsKey(expressionOfDefinedElement)) { + elementList += expressionOfDefinedElement.lookup(expression2DefinedElement) + } else { + val newElementName = '''newObject «newVariableIndex.toString»''' + val newRepresentation = createDefinedElement => [ + it.name = newElementName + ] + elementList += newRepresentation + expression2DefinedElement.put(expressionOfDefinedElement,newRepresentation) + } + } + interpretationOfUndefinedType.put(type,elementList) + } + } + } +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation_TypeInterpretation_InheritanceAndHorizontal.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation_TypeInterpretation_InheritanceAndHorizontal.xtend new file mode 100644 index 00000000..249820b6 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/AlloyModelInterpretation_TypeInterpretation_InheritanceAndHorizontal.xtend @@ -0,0 +1,20 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import edu.mit.csail.sdg.alloy4compiler.ast.ExprVar +import edu.mit.csail.sdg.alloy4compiler.translator.A4Solution +import java.util.Map +import edu.mit.csail.sdg.alloy4compiler.ast.Sig +import edu.mit.csail.sdg.alloy4compiler.ast.Sig.Field +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration +import java.util.List +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguageFactory + +class AlloyModelInterpretation_TypeInterpretation_InheritanceAndHorizontal implements AlloyModelInterpretation_TypeInterpretation{ + protected val extension LogiclanguageFactory factory = LogiclanguageFactory.eINSTANCE + + override resolveUnknownAtoms(Iterable objectAtoms, A4Solution solution, Logic2AlloyLanguageMapperTrace forwardTrace, Map name2AlloySig, Map name2AlloyField, Map expression2DefinedElement, Map> interpretationOfUndefinedType) { + throw new UnsupportedOperationException("TODO: auto-generated method stub") + } + +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper.xtend new file mode 100644 index 00000000..65eaad47 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper.xtend @@ -0,0 +1,491 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumLiteral +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumericOperator +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSVariableDeclaration +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguageFactory +import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.InverseRelationAssertion +import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.LowerMultiplicityAssertion +import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.UpperMultiplicityAssertion +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.Divison +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.IntTypeReference +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LessOrEqualThan +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LessThan +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Minus +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Mod +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.MoreOrEqualThan +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.MoreThan +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Multiply +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.Plus +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RealLiteral +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RealTypeReference +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.StringLiteral +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.StringTypeReference +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.TransitiveClosure +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable +import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.Annotation +import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.AssertionAnnotation +import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem +import java.util.Collection +import java.util.Collections +import java.util.HashMap +import java.util.List +import java.util.Map +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine +import org.eclipse.viatra.query.runtime.emf.EMFScope +import org.eclipse.xtend.lib.annotations.Accessors + +import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* + +class Logic2AlloyLanguageMapper { + private val extension AlloyLanguageFactory factory = AlloyLanguageFactory.eINSTANCE + private val Logic2AlloyLanguageMapper_Support support = new Logic2AlloyLanguageMapper_Support; + private val RunCommandMapper runCommandMapper + @Accessors(PUBLIC_GETTER) private val Logic2AlloyLanguageMapper_TypeMapper typeMapper; + @Accessors(PUBLIC_GETTER) private val Logic2AlloyLanguageMapper_ConstantMapper constantMapper = new Logic2AlloyLanguageMapper_ConstantMapper(this) + @Accessors(PUBLIC_GETTER) private val Logic2AlloyLanguageMapper_FunctionMapper functionMapper = new Logic2AlloyLanguageMapper_FunctionMapper(this) + @Accessors(PUBLIC_GETTER) private val Logic2AlloyLanguageMapper_RelationMapper relationMapper = new Logic2AlloyLanguageMapper_RelationMapper(this) + @Accessors(PUBLIC_GETTER) private val Logic2AlloyLanguageMapper_Containment containmentMapper = new Logic2AlloyLanguageMapper_Containment(this) + + public new(Logic2AlloyLanguageMapper_TypeMapper typeMapper) { + this.typeMapper = typeMapper + this.runCommandMapper = new RunCommandMapper(typeMapper) + } + + public def TracedOutput transformProblem(LogicProblem problem, AlloySolverConfiguration config) { + val logicLanguage = createALSSignatureBody => [ + it.multiplicity = ALSMultiplicity.ONE + it.declarations += + createALSSignatureDeclaration => [ + it.name = support.toID(#["util", "language"]) ] + ] + + val specification = createALSDocument=>[ + it.signatureBodies+=logicLanguage + ] + val trace = new Logic2AlloyLanguageMapperTrace => [ + it.specification = specification + it.logicLanguage = logicLanguage.declarations.head + it.logicLanguageBody = logicLanguage + + it.incqueryEngine = ViatraQueryEngine.on(new EMFScope(problem)) + ] + specification.transformRandomisation(config.randomise) + + typeMapper.transformTypes(problem.types,problem.elements,this,trace) + + trace.constantDefinitions = problem.collectConstantDefinitions + trace.functionDefinitions = problem.collectFunctionDefinitions + trace.relationDefinitions = problem.collectRelationDefinitions + val calledInTransitiveClosure = problem.collectTransitiveRelationCalls + + problem.constants.forEach[this.constantMapper.transformConstant(it, trace)] + problem.functions.forEach[this.functionMapper.transformFunction(it, trace)] + problem.relations.forEach[this.relationMapper.transformRelation(it, trace)] + calledInTransitiveClosure.forEach[this.relationMapper.prepareTransitiveClosure(it, trace)] + + problem.constants.filter(ConstantDefinition).forEach[this.constantMapper.transformConstantDefinitionSpecification(it,trace)] + problem.functions.filter(FunctionDefinition).forEach[this.functionMapper.transformFunctionDefinitionSpecification(it,trace)] + problem.relations.filter(RelationDefinition).forEach[this.relationMapper.transformRelationDefinitionSpecification(it,trace)] + + val containment = problem.getContainmentHierarchies.head + if(containment !== null) { + this.containmentMapper.transformContainmentHierarchy(containment,trace) + } + + //////////////////// + // Collect EMF-specific assertions + //////////////////// + val assertion2InverseRelation = problem.annotations.collectAnnotations(InverseRelationAssertion) + val assertion2UpperMultiplicityAssertion = problem.annotations.collectAnnotations(UpperMultiplicityAssertion) + val assertion2LowerMultiplicityAssertion = problem.annotations.collectAnnotations(LowerMultiplicityAssertion) + + //////////////////// + // Transform Assertions + //////////////////// + for(assertion : problem.assertions) { + if(assertion2InverseRelation.containsKey(assertion)) { + transformInverseAssertion(assertion.lookup(assertion2InverseRelation),trace) + } else if(assertion2UpperMultiplicityAssertion.containsKey(assertion)) { + transformUpperMultiplicityAssertion(assertion.lookup(assertion2UpperMultiplicityAssertion),trace) + } else if(assertion2LowerMultiplicityAssertion.containsKey(assertion)) { + transformLowerMultiplicityAssertion(assertion.lookup(assertion2LowerMultiplicityAssertion),trace) + } else { + transformAssertion(assertion,trace) + } + } + + runCommandMapper.transformRunCommand(this, specification, trace, config) + + return new TracedOutput(specification,trace) + } + + def transformRandomisation(ALSDocument document, int randomisation) { + if(randomisation !== 0) { + document.signatureBodies += createALSSignatureBody => [ + val declaration = createALSSignatureDeclaration => [ + it.name = support.toID(#["language","util","randomseed"]) + ] + it.declarations += declaration + it.multiplicity = ALSMultiplicity::ONE + for(i : 1..randomisation) { + it.fields+=createALSFieldDeclaration => [ + it.name = support.toID(#["language","util","randomseedField",i.toString]) + it.multiplicity = ALSMultiplicity::ONE + it.type = createALSReference => [referred = declaration] + ] + } + ] + } + } + + def transformInverseAssertion(InverseRelationAssertion assertion, Logic2AlloyLanguageMapperTrace trace) { + val a = assertion.inverseA + val b = assertion.inverseB + if(a instanceof RelationDeclaration && b instanceof RelationDeclaration && + !trace.relationDefinitions.containsKey(a) && !trace.relationDefinitions.containsKey(b)) + { + val fact = createALSFactDeclaration => [ + it.name = support.toID(assertion.target.name) + it.term = createALSEquals => [ + it.leftOperand = relationMapper.transformRelationReference(a as RelationDeclaration, trace) + it.rightOperand = createALSInverseRelation => [it.operand = relationMapper.transformRelationReference(b as RelationDeclaration, trace) ] + ] + ] + trace.specification.factDeclarations += fact + } else { + return transformAssertion(assertion.target,trace) + } + } + + def transformUpperMultiplicityAssertion(UpperMultiplicityAssertion assertion, Logic2AlloyLanguageMapperTrace trace) { + val x = assertion.relation + if(x instanceof RelationDeclaration && !trace.relationDefinitions.containsKey(x)) { + val relation = relationMapper.getRelationReference((x as RelationDeclaration),trace) + val type = relation.type + + if(type instanceof ALSDirectProduct) { + type.rightMultiplicit = type.rightMultiplicit.addUpper + } else { + relation.multiplicity = relation.multiplicity.addUpper + } + + if(assertion.upper === 1) { + return true + } else { + return transformAssertion(assertion.target,trace) + } + + } else { + return transformAssertion(assertion.target,trace) + } + } + + def transformLowerMultiplicityAssertion(LowerMultiplicityAssertion assertion, Logic2AlloyLanguageMapperTrace trace) { + val x = assertion.relation + if(x instanceof RelationDeclaration && !trace.relationDefinitions.containsKey(x)) { + val relation = relationMapper.getRelationReference((x as RelationDeclaration),trace) + val type = relation.type + + if(type instanceof ALSDirectProduct) { + type.rightMultiplicit = type.rightMultiplicit.addLower + } else { + relation.multiplicity = relation.multiplicity.addLower + } + + if(assertion.lower === 1) { + return true + } else { + return transformAssertion(assertion.target,trace) + } + + } else { + return transformAssertion(assertion.target,trace) + } + } + + private def addLower(ALSMultiplicity multiplicity) { + if(multiplicity === ALSMultiplicity::SET || multiplicity === null) { + return ALSMultiplicity::SOME + } else if(multiplicity === ALSMultiplicity::LONE) { + return ALSMultiplicity::ONE + } else if(multiplicity == ALSMultiplicity::ONE) { + return ALSMultiplicity::ONE + } else { + throw new IllegalArgumentException('''Lower multiplicity is already set!''') + } + } + private def addUpper(ALSMultiplicity multiplicity) { + if(multiplicity === ALSMultiplicity::ALL) { + return ALSMultiplicity::LONE + } else if(multiplicity === ALSMultiplicity::SET || multiplicity === null) { + return ALSMultiplicity::LONE + } else if(multiplicity === ALSMultiplicity::SOME) { + return ALSMultiplicity::ONE + } else if(multiplicity == ALSMultiplicity::ONE) { + return ALSMultiplicity::ONE + } else { + throw new IllegalArgumentException('''Upper multiplicity is already set!''') + } + } + + private def collectAnnotations(Collection collection, Class annotationKind) { + val res = new HashMap + collection.filter(annotationKind).forEach[res.put(it.target,it)] + return res + } + + 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 collectFunctionDefinitions(LogicProblem problem) { + val res = new HashMap + problem.functions.filter(FunctionDefinition).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 + } + private def collectTransitiveRelationCalls(LogicProblem problem) { + return problem.eAllContents.filter(TransitiveClosure).map[it.relation].toSet + } + + //////////////////// + // Type References + //////////////////// + def dispatch protected ALSTerm transformTypeReference(BoolTypeReference boolTypeReference, Logic2AlloyLanguageMapperTrace trace) { + return createALSReference => [ it.referred = support.getBooleanType(trace) ] + } + def dispatch protected ALSTerm transformTypeReference(IntTypeReference intTypeReference, Logic2AlloyLanguageMapperTrace trace) { createALSInt } + def dispatch protected ALSTerm transformTypeReference(RealTypeReference realTypeReference, Logic2AlloyLanguageMapperTrace trace) { createALSInt } + def dispatch protected ALSTerm transformTypeReference(StringTypeReference stringTypeReference, Logic2AlloyLanguageMapperTrace trace) { createALSString } + def dispatch protected ALSTerm transformTypeReference(ComplexTypeReference complexTypeReference, Logic2AlloyLanguageMapperTrace trace) { + val types = typeMapper.transformTypeReference(complexTypeReference.referred, this, trace) + return support.unfoldPlus(types.map[t|createALSReference=>[referred = t]]) + } + + ////////////// + // Assertions + Terms + ////////////// + + def protected transformAssertion(Assertion assertion, Logic2AlloyLanguageMapperTrace trace) { + val res = createALSFactDeclaration => [ + it.name = support.toID(assertion.name) + it.term = assertion.value.transformTerm(trace,Collections.EMPTY_MAP) + ] + trace.specification.factDeclarations += res + } + + def dispatch protected ALSTerm transformTerm(BoolLiteral literal, Logic2AlloyLanguageMapperTrace trace, Map variables) { + var ALSEnumLiteral ref; + if(literal.value==true) {ref = support.getBooleanTrue(trace)} + else {ref = support.getBooleanFalse(trace)} + val refFinal = ref + + return support.booleanToLogicValue((createALSReference => [referred = refFinal]),trace) + } + def dispatch protected ALSTerm transformTerm(RealLiteral literal, Logic2AlloyLanguageMapperTrace trace, Map variables) { + val v = literal.value.intValue + if(v>=0) { createALSNumberLiteral => [value = v]} + else {createALSUnaryMinus => [it.operand = createALSNumberLiteral => [value = v] ] } + } + def dispatch protected ALSTerm transformTerm(IntLiteral literal, Logic2AlloyLanguageMapperTrace trace, Map variables) { + if(literal.value>=0) { createALSNumberLiteral => [value = literal.value]} + else {createALSUnaryMinus => [it.operand = createALSNumberLiteral => [value = literal.value] ] } + } + def dispatch protected ALSTerm transformTerm(StringLiteral literal, Logic2AlloyLanguageMapperTrace trace, Map variables) { + createALSStringLiteral => [it.value = literal.value] + } + + def dispatch protected ALSTerm transformTerm(Not not, Logic2AlloyLanguageMapperTrace trace, Map variables) { + createALSNot=>[operand = not.operand.transformTerm(trace,variables)] } + def dispatch protected ALSTerm transformTerm(And and, Logic2AlloyLanguageMapperTrace trace, Map variables) { + support.unfoldAnd(and.operands.map[transformTerm(trace,variables)]) } + def dispatch protected ALSTerm transformTerm(Or or, Logic2AlloyLanguageMapperTrace trace, Map variables) { + support.unfoldOr(or.operands.map[transformTerm(trace,variables)],trace) } + def dispatch protected ALSTerm transformTerm(Impl impl, Logic2AlloyLanguageMapperTrace trace, Map variables) { + createALSImpl => [leftOperand = impl.leftOperand.transformTerm(trace,variables) rightOperand = impl.rightOperand.transformTerm(trace,variables)] } + def dispatch protected ALSTerm transformTerm(Iff iff, Logic2AlloyLanguageMapperTrace trace, Map variables) { + createALSIff => [leftOperand = iff.leftOperand.transformTerm(trace,variables) rightOperand = iff.rightOperand.transformTerm(trace,variables)] } + def dispatch protected ALSTerm transformTerm(MoreThan moreThan, Logic2AlloyLanguageMapperTrace trace, Map variables) { + createALSMore => [leftOperand = moreThan.leftOperand.transformTerm(trace,variables) rightOperand = moreThan.rightOperand.transformTerm(trace,variables)] } + def dispatch protected ALSTerm transformTerm(LessThan lessThan, Logic2AlloyLanguageMapperTrace trace, Map variables) { + createALSLess => [leftOperand = lessThan.leftOperand.transformTerm(trace,variables) rightOperand = lessThan.rightOperand.transformTerm(trace,variables)] } + def dispatch protected ALSTerm transformTerm(MoreOrEqualThan moreThan, Logic2AlloyLanguageMapperTrace trace, Map variables) { + createALSMeq => [leftOperand = moreThan.leftOperand.transformTerm(trace,variables) rightOperand = moreThan.rightOperand.transformTerm(trace,variables)] } + def dispatch protected ALSTerm transformTerm(LessOrEqualThan lessThan, Logic2AlloyLanguageMapperTrace trace, Map variables) { + createALSLeq => [leftOperand = lessThan.leftOperand.transformTerm(trace,variables) rightOperand = lessThan.rightOperand.transformTerm(trace,variables)] } + def dispatch protected ALSTerm transformTerm(Equals equals, Logic2AlloyLanguageMapperTrace trace, Map variables) { + createALSEquals => [leftOperand = equals.leftOperand.transformTerm(trace,variables) rightOperand = equals.rightOperand.transformTerm(trace,variables)] } + def dispatch protected ALSTerm transformTerm(Distinct distinct, Logic2AlloyLanguageMapperTrace 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 ALSTerm transformTerm(Forall forall, Logic2AlloyLanguageMapperTrace trace, Map variables) { + support.createQuantifiedExpression(this,forall,ALSMultiplicity.ALL,trace,variables) } + def dispatch protected ALSTerm transformTerm(Exists exists, Logic2AlloyLanguageMapperTrace trace, Map variables) { + support.createQuantifiedExpression(this,exists,ALSMultiplicity.SOME,trace,variables) } + + def dispatch protected ALSTerm transformTerm(InstanceOf instanceOf, Logic2AlloyLanguageMapperTrace trace, Map variables) { + return createALSSubset => [ + it.leftOperand = instanceOf.value.transformTerm(trace,variables) + it.rightOperand = instanceOf.range.transformTypeReference(trace) + ] + } + + 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 ALSTerm transformTerm(SymbolicValue symbolicValue, Logic2AlloyLanguageMapperTrace trace, Map variables) { + symbolicValue.symbolicReference.transformSymbolicReference(symbolicValue.parameterSubstitutions,trace,variables) } + + def dispatch protected ALSTerm transformSymbolicReference(DefinedElement referred, List parameterSubstitutions, Logic2AlloyLanguageMapperTrace trace, Map variables) { + typeMapper.transformReference(referred,trace) + } + def dispatch protected ALSTerm transformSymbolicReference(ConstantDeclaration constant, List parameterSubstitutions, Logic2AlloyLanguageMapperTrace trace, Map variables) { + if(trace.constantDefinitions.containsKey(constant)) { + return this.transformSymbolicReference(constant.lookup(trace.constantDefinitions),parameterSubstitutions,trace,variables) + } else { + val res = createALSJoin=> [ + leftOperand = createALSReference => [ referred = trace.logicLanguage ] + rightOperand = createALSReference => [ referred = constant.lookup(trace.constantDeclaration2LanguageField) ] + ] + return support.postprocessResultOfSymbolicReference(constant.type,res,trace) + } + } + def dispatch protected ALSTerm transformSymbolicReference(ConstantDefinition constant, List parameterSubstitutions, Logic2AlloyLanguageMapperTrace trace, Map variables) { + val res = createALSFunctionCall => [ + it.referredDefinition = constant.lookup(trace.constantDefinition2Function) + ] + return support.postprocessResultOfSymbolicReference(constant.type,res,trace) + } + def dispatch protected ALSTerm transformSymbolicReference(Variable variable, List parameterSubstitutions, Logic2AlloyLanguageMapperTrace trace, Map variables) { + val res = createALSReference => [referred = variable.lookup(variables)] + return support.postprocessResultOfSymbolicReference(variable.range,res,trace) + } + def dispatch protected ALSTerm transformSymbolicReference(FunctionDeclaration function, List parameterSubstitutions, Logic2AlloyLanguageMapperTrace 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 = createALSJoin => [ + leftOperand = support.prepareParameterOfSymbolicReference(function.parameters.get(0),param,trace) + rightOperand = createALSReference => [referred = function.lookup(trace.functionDeclaration2HostedField)] + ] + return support.postprocessResultOfSymbolicReference(function.range,res,trace) + } else { + val functionExpression = createALSJoin=>[ + leftOperand = createALSReference => [referred = trace.logicLanguage] + rightOperand = createALSReference => [referred = function.lookup(trace.functionDeclaration2LanguageField)] + ] + val res = support.unfoldDotJoin(this,parameterSubstitutions,functionExpression,trace,variables) + return support.postprocessResultOfSymbolicReference(function.range,res,trace) + } + } + } + def dispatch protected ALSTerm transformSymbolicReference(FunctionDefinition function, List parameterSubstitutions, Logic2AlloyLanguageMapperTrace trace, Map variables) { + val result = createALSFunctionCall => [ + it.referredDefinition = function.lookup(trace.functionDefinition2Function) + it.params += parameterSubstitutions.map[it.transformTerm(trace,variables)] + ] + return support.postprocessResultOfSymbolicReference(function.range,result,trace) + } + + def dispatch protected ALSTerm transformSymbolicReference(RelationDeclaration relation, List parameterSubstitutions, + Logic2AlloyLanguageMapperTrace trace, Map variables) { + if(trace.relationDefinitions.containsKey(relation)) { + this.transformSymbolicReference(relation.lookup(trace.relationDefinitions),parameterSubstitutions,trace,variables) + } else { + if(relationMapper.transformToHostedField(relation,trace)) { + val alsRelation = relation.lookup(trace.relationDeclaration2Field) + // R(a,b) => + // b in a.R + return createALSSubset => [ + it.leftOperand = parameterSubstitutions.get(1).transformTerm(trace,variables) + it.rightOperand = createALSJoin => [ + it.leftOperand = parameterSubstitutions.get(0).transformTerm(trace,variables) + it.rightOperand = createALSReference => [ it.referred = alsRelation ] + ] + ] + } else { + val target = createALSJoin => [ + leftOperand = createALSReference => [referred = trace.logicLanguage] + rightOperand = createALSReference => [ referred = relation.lookup(trace.relationDeclaration2Global) ]] + val source = support.unfoldTermDirectProduct(this,parameterSubstitutions,trace,variables) + + return createALSSubset => [ + leftOperand = source + rightOperand = target + ] + } + } + } + + + + def dispatch protected ALSTerm transformSymbolicReference(RelationDefinition relation, List parameterSubstitutions, + Logic2AlloyLanguageMapperTrace trace, Map variables) + { + return createALSFunctionCall => [ + it.referredDefinition = relation.lookup(trace.relationDefinition2Predicate) + it.params += parameterSubstitutions.map[p | p.transformTerm(trace,variables)] + ] + } +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapperTrace.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapperTrace.xtend new file mode 100644 index 00000000..6aadb285 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapperTrace.xtend @@ -0,0 +1,56 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumDeclaration +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumLiteral +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFieldDeclaration +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionDefinition +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDefinition +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureDeclaration +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.FunctionDeclaration +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.FunctionDefinition +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition +import java.util.HashMap +import java.util.Map +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation + +interface Logic2AlloyLanguageMapper_TypeMapperTrace {} + +class Logic2AlloyLanguageMapperTrace { + public var ViatraQueryEngine incqueryEngine; + + public var ALSDocument specification; + public var ALSSignatureDeclaration logicLanguage; + public var ALSSignatureBody logicLanguageBody; + public var ALSEnumDeclaration boolType; + public var ALSEnumLiteral boolTrue; + public var ALSEnumLiteral boolFalse; + + public var Logic2AlloyLanguageMapper_TypeMapperTrace typeMapperTrace + + public val Map constantDeclaration2LanguageField = new HashMap + public val Map constantDefinition2Function = new HashMap + + public val Map functionDeclaration2HostedField = new HashMap + public val Map functionDeclaration2LanguageField = new HashMap + public val Map functionDefinition2Function = new HashMap + + public val Map relationDeclaration2Global = new HashMap + public val Map relationDeclaration2Field = new HashMap + public val Map relationDefinition2Predicate = new HashMap + + public val Map transitiveClosureTarget2Global = new HashMap + public val Map transitiveClosureTarget2Field = new HashMap + + public var Map constantDefinitions + public var Map functionDefinitions + public var Map relationDefinitions + + public var Map relationInTransitiveToGlobalField = new HashMap + public var Map relationInTransitiveToHosterField = new HashMap +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_ConstantMapper.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_ConstantMapper.xtend new file mode 100644 index 00000000..22650a92 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_ConstantMapper.xtend @@ -0,0 +1,43 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguageFactory +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDeclaration +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDefinition +import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* + +class Logic2AlloyLanguageMapper_ConstantMapper { + private val extension AlloyLanguageFactory factory = AlloyLanguageFactory.eINSTANCE + private val Logic2AlloyLanguageMapper_Support support = new Logic2AlloyLanguageMapper_Support; + val Logic2AlloyLanguageMapper base; + public new(Logic2AlloyLanguageMapper base) { + this.base = base + } + + def protected dispatch transformConstant(ConstantDeclaration constant, Logic2AlloyLanguageMapperTrace trace) { + if(!trace.constantDefinitions.containsKey(constant)) { + val c = createALSFieldDeclaration=> [ + name = support.toID(constant.name) + it.type = base.transformTypeReference(constant.type,trace) + it.multiplicity = ALSMultiplicity.ONE + ] + trace.logicLanguageBody.fields+= c + trace.constantDeclaration2LanguageField.put(constant,c) + } + } + + def protected dispatch transformConstant(ConstantDefinition constant, Logic2AlloyLanguageMapperTrace trace) { + val c = createALSFunctionDefinition=> [ + name = support.toID(constant.name) + it.type = base.transformTypeReference(constant.type,trace) + // the value is set later + ] + trace.specification.functionDefinitions += c + trace.constantDefinition2Function.put(constant,c) + } + + def protected transformConstantDefinitionSpecification(ConstantDefinition constant, Logic2AlloyLanguageMapperTrace trace) { + val definition = constant.lookup(trace.constantDefinition2Function) + definition.value = base.transformTerm(constant.value, trace,emptyMap) + } +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_Containment.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_Containment.xtend new file mode 100644 index 00000000..399a4eaf --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_Containment.xtend @@ -0,0 +1,260 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguageFactory +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguageFactory +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration +import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.ContainmentHierarchy +import java.util.HashMap + +class Logic2AlloyLanguageMapper_Containment { + val extension AlloyLanguageFactory factory = AlloyLanguageFactory.eINSTANCE + private val Logic2AlloyLanguageMapper_Support support = new Logic2AlloyLanguageMapper_Support; + val Logic2AlloyLanguageMapper base; + public new(Logic2AlloyLanguageMapper base) { + this.base = base + } + + def protected transformContainmentHierarchy(ContainmentHierarchy containment, Logic2AlloyLanguageMapperTrace trace) { + // Single root + val rootField = createALSFieldDeclaration => [ + it.name= support.toID(#["util", "root"]) + it.multiplicity = ALSMultiplicity.ONE + it.type = typesOrderedInContainment(containment,trace) + ] + trace.logicLanguageBody.fields += rootField + + val contains = createALSFieldDeclaration => [ + it.name = support.toID(#["util", "contains"]) + //it.multiplicity = ALSMultiplicity::SET + it.type = createALSDirectProduct => [ + it.leftMultiplicit = ALSMultiplicity::LONE + it.rightMultiplicit = ALSMultiplicity::SET + it.leftOperand = typesOrderedInContainment(containment,trace) + it.rightOperand = typesOrderedInContainment(containment,trace) + ] + ] + trace.logicLanguageBody.fields += contains + + val containmentRelationDefinition = createALSFactDeclaration => [ + it.name = support.toID(#["util", "containmentDefinition"]) + ] + + if(containment.containmentRelations.forall[it instanceof RelationDeclaration]) { + val containmentRelations = containment.containmentRelations.filter(RelationDeclaration).map[relation| + base.relationMapper.transformRelationReference(relation,trace) + ].toList + + containmentRelationDefinition.term = createALSEquals => [ + leftOperand = createALSJoin => [ + leftOperand = createALSReference => [referred = trace.logicLanguage] + rightOperand = createALSReference => [ referred = contains ]] + rightOperand = support.unfoldPlus(containmentRelations) + ] + } else { + val parent = createALSVariableDeclaration => [ + it.name = "parent" + it.range = typesOrderedInContainment(containment, trace) + ] + val child = createALSVariableDeclaration => [ + it.name = "child" + it.range = typesOrderedInContainment(containment, trace) + ] + + val logicFactory = LogiclanguageFactory.eINSTANCE + val logicParentVariable = logicFactory.createVariable + val logicChildVariable = logicFactory.createVariable + val logicParent = logicFactory.createSymbolicValue => [it.symbolicReference = logicParentVariable] + val logicChild = logicFactory.createSymbolicValue => [it.symbolicReference = logicChildVariable] + val variableMap = new HashMap => [put(logicParentVariable,parent) put(logicChildVariable,child)] + val possibleRelations = containment.containmentRelations.map[relation | + base.transformSymbolicReference(relation,#[logicParent,logicChild],trace,variableMap) + ] + + containmentRelationDefinition.term = createALSQuantifiedEx => [ + it.type = ALSMultiplicity.ALL + it.variables += parent + it.variables += child + it.expression = createALSIff => [ + it.leftOperand = createALSSubset => [ + it.leftOperand = createALSDirectProduct => [ + it.leftOperand = createALSReference => [it.referred = child] + it.rightOperand = createALSReference => [it.referred = parent] + ] + it.rightOperand = createALSJoin => [ + leftOperand = createALSReference => [referred = trace.logicLanguage] + rightOperand = createALSReference => [ referred = contains ] + ] + ] + it.rightOperand = support.unfoldOr(possibleRelations,trace) + ] + ] + } + + trace.specification.factDeclarations += containmentRelationDefinition + + // With the exception of the root, every object has at least one parent + // No parent for root + trace.specification.factDeclarations += createALSFactDeclaration => [ + it.name = support.toID(#["util", "noParentForRoot"]) + it.term = createALSQuantifiedEx => [ + it.type = ALSMultiplicity::NO + val parent = createALSVariableDeclaration => [ + it.name = "parent" + it.range = typesOrderedInContainment(containment,trace) + ] + it.variables += parent + it.expression = createALSSubset => [ + it.leftOperand = createALSDirectProduct => [ + it.leftOperand = createALSReference => [it.referred = parent] + it.rightOperand = createALSJoin => [ + it.leftOperand = createALSReference => [it.referred = trace.logicLanguage] + it.rightOperand = createALSReference => [it.referred = rootField] + ] + ] + it.rightOperand = createALSJoin => [ + leftOperand = createALSReference => [referred = trace.logicLanguage] + rightOperand = createALSReference => [ referred = contains ] + ] + ] + ] + ] + // Parent for nonroot + trace.specification.factDeclarations += createALSFactDeclaration => [ + it.name = support.toID(#["util", "atLeastOneParent"]) + it.term = createALSQuantifiedEx => [ + it.type = ALSMultiplicity::ALL + val child = createALSVariableDeclaration => [ + it.name = "child" + it.range = typesOrderedInContainment(containment,trace) + ] + it.variables += child + it.expression = createALSOr => [ + it.leftOperand = createALSEquals => [ + it.leftOperand = createALSReference => [it.referred = child] + it.rightOperand = createALSJoin => [ + it.leftOperand = createALSReference => [it.referred = trace.logicLanguage] + it.rightOperand = createALSReference => [it.referred = rootField] + ] + ] + it.rightOperand = createALSQuantifiedEx => [ + it.type = ALSMultiplicity::SOME + val parent = createALSVariableDeclaration => [ + it.name = "parent" + it.range = typesOrderedInContainment(containment, trace) + ] + it.variables += parent + it.expression = createALSSubset => [ + it.leftOperand = createALSDirectProduct => [ + it.leftOperand = createALSReference => [it.referred = parent] + it.rightOperand = createALSReference => [it.referred = child] + ] + it.rightOperand = createALSJoin => [ + leftOperand = createALSReference => [referred = trace.logicLanguage] + rightOperand = createALSReference => [ referred = contains ] + ] + ] + ] + ] + ] + ] + + // Every object has at most one parent +// trace.specification.factDeclarations += createALSFactDeclaration => [ +// it.name = support.toID(#["util", "atMostOneParent"]) +// it.term = createALSQuantifiedEx => [ +// it.type = ALSMultiplicity::ALL +// val child = createALSVariableDeclaration => [ +// it.name = "child" +// it.range = typesOrderedInContainment(containment,trace) +// ] +// it.variables += child +// it.expression = createALSQuantifiedEx => [ +// it.type = ALSMultiplicity::LONE +// val parent = createALSVariableDeclaration => [ +// it.name = "parent" +// it.range = typesOrderedInContainment(containment, trace) +// ] +// it.variables += parent +// it.expression = createALSFunctionCall => [ +// it.referredDefinition = containmentRelation +// it.params += createALSReference => [ +// it.referred = parent +// it.referred = child +// ] +// ] +// ] +// ] +// ] + + // No circle in containment + trace.specification.factDeclarations += createALSFactDeclaration => [ + it.name = support.toID(#["util", "noCircularContainment"]) + it.term = createALSQuantifiedEx => [ + it.type = ALSMultiplicity::NO + val variable = createALSVariableDeclaration => [ + it.name = "circle" + it.range = typesOrderedInContainment(containment,trace) + ] + it.variables += variable + it.expression = createALSSubset => [ + it.leftOperand = createALSDirectProduct => [ + it.leftOperand = createALSReference => [it.referred = variable] + it.rightOperand = createALSReference => [it.referred = variable] + ] + it.rightOperand = createAlSTransitiveClosure => [ + it.operand = createALSJoin => [ + leftOperand = createALSReference => [referred = trace.logicLanguage] + rightOperand = createALSReference => [ referred = contains ] + ] + ] + ] + ] + ] + + } + + /*def protected calculateContainmentTypeCoveringSignatures(ContainmentHierarchy containment, Logic2AlloyLanguageMapperTrace trace) { + val types = containment.typesOrderedInHierarchy + val signaturesInContainment = types.map[base.typeMapper.transformTypeReference(it, base, trace)].flatten.toList +// val uncoveredSignatures = new ArrayList(signaturesInContainment) +// val coveringSignatures = new LinkedList +// + val engine = ViatraQueryEngine.on(new EMFScope(trace.specification)) + //val directSubsetMatcher = DirectSubsetMatcher.on(engine) + // x <= y + val subsetMatcher = SubsetMatcher.on(engine) + + if() + }*/ + + /*def boolean coveringAllSignaturesInContainment(ALSSignatureDeclaration target, List signaturesInContainment, SubsetMatcher matcher) { + for(signatureInContainment : signaturesInContainment) { + if(!matcher.hasMatch(signatureInContainment,target)) { + return false + } + } + return true + }*/ + + /*def boolean coveringSignatureNotInContainment(ALSSignatureDeclaration target, List signaturesInContainment, SubsetMatcher matcher) { + val subtypes = matcher.getAllValuesOfx(target); + for(subType : subtypes) { + val isSubtypeOfASignatureInContainment = signaturesInContainment.exists[contained | + matcher.hasMatch(subType,contained) + ] + if(!isSubtypeOfASignatureInContainment) { + return false + } + } + return true + }*/ + + def protected typesOrderedInContainment(ContainmentHierarchy containment, Logic2AlloyLanguageMapperTrace trace) { + val types = containment.typesOrderedInHierarchy + val signaturesInContainment = types.map[base.typeMapper.transformTypeReference(it, base, trace)].flatten + // val allSignatures = trace.specification.signatureBodies.map[declarations].flatten + val typeReferences = signaturesInContainment.map[sig | createALSReference => [it.referred = sig]].toList + return support.unfoldPlus(typeReferences) + } +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_FunctionMapper.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_FunctionMapper.xtend new file mode 100644 index 00000000..0915c306 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_FunctionMapper.xtend @@ -0,0 +1,87 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguageFactory +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.FunctionDeclaration +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ComplexTypeReference +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.FunctionDefinition +import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* +import java.util.HashMap + +class Logic2AlloyLanguageMapper_FunctionMapper { + private val extension AlloyLanguageFactory factory = AlloyLanguageFactory.eINSTANCE + private val Logic2AlloyLanguageMapper_Support support = new Logic2AlloyLanguageMapper_Support; + val Logic2AlloyLanguageMapper base; + public new(Logic2AlloyLanguageMapper base) { + this.base = base + } + + def protected dispatch transformFunction(FunctionDeclaration f, Logic2AlloyLanguageMapperTrace trace) { + if(!trace.constantDefinitions.containsKey(f)) { + if(transformedToHostedField(f,trace)) transformFunctionToFieldOfSignature(f,trace) + else transformFunctionToGlobalRelation(f,trace) + } + } + + def protected transformedToHostedField(FunctionDeclaration f, Logic2AlloyLanguageMapperTrace trace) { + if(f.parameters.size == 1 && f.parameters.head instanceof ComplexTypeReference) { + val head = f.parameters.head + if(head instanceof ComplexTypeReference) { + val types = base.typeMapper.transformTypeReference(head.referred,base,trace) + return types.size == 1 + } + } + return (f.parameters.size == 1 && f.parameters.head instanceof ComplexTypeReference) + } + def protected transformFunctionToFieldOfSignature(FunctionDeclaration f,Logic2AlloyLanguageMapperTrace trace) { + val param = (f.parameters.head as ComplexTypeReference) + val referred = param.referred + val field = createALSFieldDeclaration => [ + it.name = support.toID(f.getName) + it.multiplicity = ALSMultiplicity.ONE + it.type = base.transformTypeReference(f.range,trace) + ] + val host = base.typeMapper.transformTypeReference(referred,base,trace).get(0) + (host.eContainer as ALSSignatureBody).fields += field + trace.functionDeclaration2HostedField.put(f, field) + } + def protected transformFunctionToGlobalRelation(FunctionDeclaration f, Logic2AlloyLanguageMapperTrace trace) { + val field = createALSFieldDeclaration => [ + it.name = support.toID(f.name) + it.multiplicity = ALSMultiplicity.SET + it.type = createALSDirectProduct => [ + it.leftOperand = support.unfoldReferenceDirectProduct(base,f.parameters,trace) + it.rightMultiplicit = ALSMultiplicity.ONE + it.rightOperand = base.transformTypeReference(f.range,trace) + ] + ] + trace.logicLanguageBody.fields += field + trace.functionDeclaration2LanguageField.put(f, field) + } + + def protected dispatch transformFunction(FunctionDefinition f, Logic2AlloyLanguageMapperTrace trace) { + val res = createALSFunctionDefinition => [ + name = support.toID(f.name) + // variables + specification later + ] + trace.specification.functionDefinitions+=res; + trace.functionDefinition2Function.put(f,res) + } + + def protected transformFunctionDefinitionSpecification(FunctionDefinition f, Logic2AlloyLanguageMapperTrace trace) { + val target = f.lookup(trace.functionDefinition2Function) + val variableMap = new HashMap + for(variable : f.variable) { + val v = createALSVariableDeclaration => [ + it.name = support.toID(variable.name) + it.range = base.transformTypeReference(variable.range,trace) + // specification later + ] + target.variables+=v + variableMap.put(variable,v) + } + target.value = base.transformTerm(f.value,trace,variableMap) + } + +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_RelationMapper.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_RelationMapper.xtend new file mode 100644 index 00000000..d300a28b --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_RelationMapper.xtend @@ -0,0 +1,199 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguageFactory +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 java.util.HashMap + +import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeReference +import java.util.List +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm + +class Logic2AlloyLanguageMapper_RelationMapper { + private val extension AlloyLanguageFactory factory = AlloyLanguageFactory.eINSTANCE + private val Logic2AlloyLanguageMapper_Support support = new Logic2AlloyLanguageMapper_Support; + val Logic2AlloyLanguageMapper base; + public new(Logic2AlloyLanguageMapper base) { + this.base = base + } + + def dispatch public void transformRelation(RelationDeclaration r, Logic2AlloyLanguageMapperTrace trace) { + if(!trace.relationDefinitions.containsKey(r)) { + if(r.transformToHostedField(trace)) { + transformRelationDeclarationToHostedField(r,trace) + } else { + transformRelationDeclarationToGlobalField(r,trace) + } + } + } + + def public createRelationDeclaration(String name, List paramTypes, Logic2AlloyLanguageMapperTrace trace) { + val field = createALSFieldDeclaration => [ + it.name = support.toID(name) + it.type = support.unfoldReferenceDirectProduct(base,paramTypes,trace) + ] + trace.logicLanguageBody.fields += field + return field + } + + def protected transformToHostedField(RelationDeclaration r, Logic2AlloyLanguageMapperTrace trace) { + val first = r.parameters.get(0) + if(r.parameters.size == 2) { + if(first instanceof ComplexTypeReference) { + val types = base.typeMapper.transformTypeReference(first.referred,base,trace) + if(types.size == 1) { + return true + } + } + } + return false + } + + def protected transformRelationDeclarationToHostedField(RelationDeclaration r, Logic2AlloyLanguageMapperTrace trace) { + val hostType = (r.parameters.head as ComplexTypeReference).referred + + val targetBody = base.typeMapper.transformTypeReference(hostType,base,trace).get(0).eContainer as ALSSignatureBody + val field = createALSFieldDeclaration => [ + it.name = support.toID(r.getName) + it.multiplicity = ALSMultiplicity.SET + it.type = base.transformTypeReference(r.parameters.get(1),trace) + ] + targetBody.fields += field + trace.relationDeclaration2Field.put(r,field) + + } + + def protected transformRelationDeclarationToGlobalField(RelationDeclaration r, Logic2AlloyLanguageMapperTrace trace) { + val field = createALSFieldDeclaration => [ + it.name = support.toID(r.name) + it.type = support.unfoldReferenceDirectProduct(base,r.parameters,trace) + ] + trace.logicLanguageBody.fields += field + trace.relationDeclaration2Global.put(r, field) + } + + def dispatch public void transformRelation(RelationDefinition r, Logic2AlloyLanguageMapperTrace trace) { + val res = createALSRelationDefinition => [ + name = support.toID(r.name) + // fill the variables later + // fill the expression later + ] + + trace.relationDefinition2Predicate.put(r,res) + trace.specification.relationDefinitions+=res; + } + + def protected void transformRelationDefinitionSpecification(RelationDefinition r, Logic2AlloyLanguageMapperTrace trace) { + val predicate = r.lookup(trace.relationDefinition2Predicate) + if(predicate !== null) { + val variableMap = new HashMap + for(variable : r.variables) { + val v = createALSVariableDeclaration => [ + it.name = support.toID(variable.name) + it.range = base.transformTypeReference(variable.range,trace) + ] + predicate.variables+=v + variableMap.put(variable,v) + } + predicate.value = base.transformTerm(r.value,trace,variableMap) + } + } + + def public transformRelationReference(RelationDeclaration relation, Logic2AlloyLanguageMapperTrace trace) { + if(relation.transformToHostedField(trace)) { + return createALSReference => [it.referred = relation.lookup(trace.relationDeclaration2Field) ] + } else { + return createALSJoin => [ + leftOperand = createALSReference => [referred = trace.logicLanguage] + rightOperand = createALSReference => [ referred = relation.lookup(trace.relationDeclaration2Global) ]] + } + } + + def public getRelationReference(RelationDeclaration relation, Logic2AlloyLanguageMapperTrace trace) { + if(relation.transformToHostedField(trace)) { + return relation.lookup(trace.relationDeclaration2Field) + } else { + return relation.lookup(trace.relationDeclaration2Global) + } + } + + public def dispatch void prepareTransitiveClosure(RelationDeclaration relation, Logic2AlloyLanguageMapperTrace trace) { + // There is nothing to do, relation can be used in ^relation expressions + if(transformToHostedField(relation,trace)) { + trace.relationInTransitiveToHosterField.put(relation,relation.lookup(trace.relationDeclaration2Field)) + } else { + trace.relationInTransitiveToGlobalField.put(relation,relation.lookup(trace.relationDeclaration2Global)) + } + } + public def dispatch void prepareTransitiveClosure(RelationDefinition relation, Logic2AlloyLanguageMapperTrace trace) { + if(relation.parameters.size === 2) { + /** 1. Create a relation that can be used in ^relation expressions */ + val declaration = this.createRelationDeclaration('''AsDeclaration «relation.name»''',relation.parameters,trace) + trace.relationInTransitiveToHosterField.put(relation,declaration) + /** 2. Add fact that the declaration corresponds to the definition */ + val fact = createALSFactDeclaration => [ + it.name = '''EqualsAsDeclaration «relation.name»''' + it.term = createALSQuantifiedEx => [ + val a = createALSVariableDeclaration => [ + it.name = "a" + it.range = base.transformTypeReference(relation.parameters.get(0),trace) + ] + val b = createALSVariableDeclaration => [ + it.name = "b" + it.range = base.transformTypeReference(relation.parameters.get(1),trace) + ] + it.variables += a + it.variables += b + it.type = ALSMultiplicity::ALL + it.expression = createALSIff => [ + it.leftOperand = createALSFunctionCall => [ + it.referredDefinition = relation.lookup(trace.relationDefinition2Predicate) + it.params += createALSReference => [ it.referred = a ] + it.params += createALSReference => [ it.referred = b ] + ] + it.rightOperand = createALSSubset => [ + it.leftOperand = createALSJoin => [ + it.leftOperand = createALSReference => [ referred = a ] + it.rightOperand = createALSReference => [ referred = b ] + ] + it.rightOperand = createALSJoin => [ + leftOperand = createALSReference => [referred = trace.logicLanguage] + rightOperand = createALSReference => [ referred = declaration ] + ] + ] + ] + ] + ] + trace.specification.factDeclarations += fact + return + } else { + throw new AssertionError('''A non-binary relation "«relation.name»" is used in transitive clousure!''') + } + } + + def public transformTransitiveRelationReference(Relation relation, ALSTerm source, ALSTerm target, Logic2AlloyLanguageMapperTrace trace) { + val alsTargetRelation = if(trace.relationInTransitiveToGlobalField.containsKey(relation)) { + createALSJoin => [ + leftOperand = createALSReference => [referred = trace.logicLanguage] + rightOperand = createALSReference => [ referred =relation.lookup(trace.relationInTransitiveToGlobalField) ] + ] + } else if(trace.relationInTransitiveToHosterField.containsKey(relation)){ + createALSReference => [it.referred = relation.lookup(trace.relationInTransitiveToHosterField) ] + } else { + throw new AssertionError('''Relation «relation.name» is not prepared to transitive closure!''') + } + return createALSSubset => [ + it.leftOperand = createALSJoin => [ + it.leftOperand = source + it.rightOperand = target + ] + it.rightOperand = createAlSTransitiveClosure => [it.operand = alsTargetRelation] + + ] + } +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_Support.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_Support.xtend new file mode 100644 index 00000000..0b8d2857 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_Support.xtend @@ -0,0 +1,207 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEquals +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReference +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSVariableDeclaration +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguageFactory +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.BoolTypeReference +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.HashMap +import java.util.List +import java.util.Map +import org.eclipse.emf.ecore.util.EcoreUtil + +class Logic2AlloyLanguageMapper_Support { + private val extension AlloyLanguageFactory factory = AlloyLanguageFactory.eINSTANCE + + /// ID handling + def protected String toIDMultiple(String... ids) { + ids.map[it.split("\\s+").join("'")].join("'") + } + + def protected String toID(String ids) { + ids.split("\\s+").join("'") + } + def protected String toID(List ids) { + ids.map[it.split("\\s+").join("'")].join("'") + } + + /// Support functions + + def protected getBooleanType(Logic2AlloyLanguageMapperTrace trace) { + if(trace.boolType!=null) { + return trace.boolType + } else { + trace.boolType = createALSEnumDeclaration => [ + it.name = toID(#["util","boolean"]) + trace.boolTrue = createALSEnumLiteral =>[it.name=toID(#["util","boolean","true"])] + it.literal += trace.boolTrue + trace.boolFalse = createALSEnumLiteral =>[it.name=toID(#["util","boolean","false"])] + it.literal += trace.boolFalse + ] + trace.specification.enumDeclarations+=trace.boolType + return trace.boolType + } + } + def protected getBooleanTrue(Logic2AlloyLanguageMapperTrace trace) { + getBooleanType(trace) + return trace.boolTrue + } + def protected getBooleanFalse(Logic2AlloyLanguageMapperTrace trace) { + getBooleanType(trace) + return trace.boolFalse + } + + def protected booleanToLogicValue(ALSTerm boolReference, Logic2AlloyLanguageMapperTrace trace) { + //println((boolReference as ALSReference).referred) + createALSEquals => [ + leftOperand = EcoreUtil.copy(boolReference) + rightOperand = createALSReference => [referred = getBooleanTrue(trace)] + ] + } + def protected booleanToEnumValue(ALSTerm value, Logic2AlloyLanguageMapperTrace trace) { + if(value instanceof ALSEquals) { + val rightOperand = value.rightOperand + if(rightOperand instanceof ALSReference) { + if(rightOperand.referred == getBooleanTrue(trace)) { + return value.leftOperand + } + } + } + return value; + } + def protected prepareParameterOfSymbolicReference(TypeReference type, ALSTerm term, Logic2AlloyLanguageMapperTrace trace) { + if(type instanceof BoolTypeReference) { + return booleanToEnumValue(term,trace) + } + else return term + } + def protected postprocessResultOfSymbolicReference(TypeReference type, ALSTerm term, Logic2AlloyLanguageMapperTrace trace) { + if(type instanceof BoolTypeReference) { + return booleanToLogicValue(term,trace) + } + else return term + } + + def protected ALSTerm unfoldAnd(List operands) { + if(operands.size == 1) { return operands.head } + else if(operands.size > 1) { return createALSAnd=>[ + leftOperand=operands.head + rightOperand=operands.subList(1,operands.size).unfoldAnd + ]} + else throw new UnsupportedOperationException('''Logic operator with 0 operands!''') + } + + def protected ALSTerm unfoldOr(List operands, Logic2AlloyLanguageMapperTrace trace) { + if(operands.size == 0) { return unfoldTrueStatement(trace)} + else if(operands.size == 1) { return operands.head } + else if(operands.size > 1) { return createALSOr=>[ + leftOperand=operands.head + rightOperand=unfoldOr(operands.subList(1,operands.size),trace) + ]} + //else throw new UnsupportedOperationException('''Logic operator with 0 operands!''') + } + + protected def unfoldTrueStatement(Logic2AlloyLanguageMapperTrace trace) { + createALSEquals => [ + it.leftOperand = createALSReference => [it.referred = getBooleanTrue(trace)] + it.rightOperand = createALSReference => [it.referred = getBooleanTrue(trace)] + ] + } + + protected def unfoldTFalseStatement(Logic2AlloyLanguageMapper m, Logic2AlloyLanguageMapperTrace trace) { + createALSEquals => [ + it.leftOperand = createALSReference => [it.referred = getBooleanTrue(trace)] + it.rightOperand = createALSReference => [it.referred = getBooleanTrue(trace)] + ] + } + + def protected ALSTerm unfoldPlus(List operands) { + if(operands.size == 1) { return operands.head } + else if(operands.size > 1) { return createALSPlus=>[ + leftOperand=operands.head + rightOperand=operands.subList(1,operands.size).unfoldPlus + ]} + else return createALSNone + } + + def protected ALSTerm unfoldIntersection(List operands) { + if(operands.size == 1) { return operands.head } + else if(operands.size > 1) { return createALSIntersection=>[ + leftOperand=operands.head + rightOperand=operands.subList(1,operands.size).unfoldIntersection + ]} + else throw new UnsupportedOperationException('''Logic operator with 0 operands!''') + } + + def protected ALSTerm unfoldDistinctTerms(Logic2AlloyLanguageMapper m, List operands, Logic2AlloyLanguageMapperTrace 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..[ + leftOperand = m.transformTerm(operands.get(i),trace,variables) + rightOperand = m.transformTerm(operands.get(j),trace,variables) + ] + } + } + return notEquals.unfoldAnd + } + else throw new UnsupportedOperationException('''Logic operator with 0 operands!''') + } + + def protected ALSTerm unfoldReferenceDirectProduct(Logic2AlloyLanguageMapper m, List references,Logic2AlloyLanguageMapperTrace trace) { + if(references.size == 1) return m.transformTypeReference(references.head,trace) + else if(references.size > 1) return createALSDirectProduct => [ + it.leftOperand = m.transformTypeReference(references.head,trace) + it.rightOperand = unfoldReferenceDirectProduct(m,references.subList(1,references.size),trace) + ] + else throw new UnsupportedOperationException + } + + def protected ALSTerm unfoldDotJoin(Logic2AlloyLanguageMapper m, List elements, ALSTerm target, Logic2AlloyLanguageMapperTrace trace, + Map variables) { + if (elements.size == 1) { + return createALSJoin => [ + it.leftOperand = m.transformTerm(elements.head,trace, variables) + it.rightOperand = target + ] + } else if (elements.size > 1) { + return createALSJoin => [ + it.leftOperand = m.transformTerm(elements.last,trace, variables) + it.rightOperand = m.unfoldDotJoin(elements.subList(0, elements.size - 1), target, trace, variables) + ] + } else + throw new UnsupportedOperationException + } + + def protected ALSTerm unfoldTermDirectProduct(Logic2AlloyLanguageMapper m, List references,Logic2AlloyLanguageMapperTrace trace,Map variables) { + if(references.size == 1) return m.transformTerm(references.head,trace,variables) + else if(references.size > 1) return createALSDirectProduct => [ + it.leftOperand = m.transformTerm(references.head,trace,variables) + it.rightOperand = unfoldTermDirectProduct(m,references.subList(1,references.size),trace, variables) + ] + else throw new UnsupportedOperationException + } + + def protected createQuantifiedExpression(Logic2AlloyLanguageMapper m, QuantifiedExpression q, ALSMultiplicity multiplicity, Logic2AlloyLanguageMapperTrace trace, Map variables) { + val variableMap = q.quantifiedVariables.toInvertedMap[v | createALSVariableDeclaration=> [ + it.name = toID(v.name) + it.range = m.transformTypeReference(v.range,trace) ]] + + createALSQuantifiedEx=>[ + it.type = multiplicity + it.variables += variableMap.values + it.expression = m.transformTerm(q.expression,trace,variables.withAddition(variableMap)) + ] + } + + def protected withAddition(Map v1, Map v2) { new HashMap(v1) => [putAll(v2)] } +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_TypeMapper.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_TypeMapper.xtend new file mode 100644 index 00000000..c998de1f --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_TypeMapper.xtend @@ -0,0 +1,18 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureDeclaration +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm +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 + +interface Logic2AlloyLanguageMapper_TypeMapper { + def void transformTypes(Collection types, Collection elements, Logic2AlloyLanguageMapper mapper, Logic2AlloyLanguageMapperTrace trace); + def List transformTypeReference(Type referred, Logic2AlloyLanguageMapper mapper, Logic2AlloyLanguageMapperTrace trace) + def ALSSignatureDeclaration getUndefinedSupertype(Logic2AlloyLanguageMapperTrace trace) + def int getUndefinedSupertypeScope(int undefinedScope,Logic2AlloyLanguageMapperTrace trace) + def ALSTerm transformReference(DefinedElement referred,Logic2AlloyLanguageMapperTrace trace) + + def AlloyModelInterpretation_TypeInterpretation getTypeInterpreter() +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_TypeMapperTrace_FilteredTypes.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_TypeMapperTrace_FilteredTypes.xtend new file mode 100644 index 00000000..17b1a87b --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_TypeMapperTrace_FilteredTypes.xtend @@ -0,0 +1,15 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureDeclaration +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 + +class Logic2AlloyLanguageMapper_TypeMapperTrace_FilteredTypes + implements Logic2AlloyLanguageMapper_TypeMapperTrace +{ + public var ALSSignatureDeclaration objectSupperClass; + public val Map type2ALSType = new HashMap; + public val Map definedElement2Declaration = new HashMap +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_TypeMapperTrace_InheritanceAndHorizontal.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_TypeMapperTrace_InheritanceAndHorizontal.xtend new file mode 100644 index 00000000..1b04a877 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_TypeMapperTrace_InheritanceAndHorizontal.xtend @@ -0,0 +1,15 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureDeclaration +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.List +import java.util.Map + +class Logic2AlloyLanguageMapper_TypeMapperTrace_InheritanceAndHorizontal implements Logic2AlloyLanguageMapper_TypeMapperTrace { + public var ALSSignatureDeclaration objectSupperClass; + public val Map type2ALSType = new HashMap; + public val Map definedElement2Declaration = new HashMap + public val Map> typeSelection = new HashMap +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_TypeMapper_FilteredTypes.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_TypeMapper_FilteredTypes.xtend new file mode 100644 index 00000000..9e548ab6 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_TypeMapper_FilteredTypes.xtend @@ -0,0 +1,263 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.queries.TypeQueries +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureDeclaration +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguageFactory +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 java.util.ArrayList +import java.util.Collection +import java.util.HashMap +import java.util.List + +import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* + +/** + * Each object is an element of an Object set, and types are subsets of the objects. + */ +class Logic2AlloyLanguageMapper_TypeMapper_FilteredTypes implements Logic2AlloyLanguageMapper_TypeMapper{ + private val Logic2AlloyLanguageMapper_Support support = new Logic2AlloyLanguageMapper_Support; + private val extension AlloyLanguageFactory factory = AlloyLanguageFactory.eINSTANCE + + new() { + // Initialize package + LogicproblemPackage.eINSTANCE.class + } + + override transformTypes(Collection types, Collection elements, Logic2AlloyLanguageMapper mapper, Logic2AlloyLanguageMapperTrace trace) { + val typeTrace = new Logic2AlloyLanguageMapper_TypeMapperTrace_FilteredTypes + trace.typeMapperTrace = typeTrace + + // 1. A global type for Objects is created + val objectSig = createALSSignatureDeclaration => [it.name = support.toID(#["util","Object"])] + val objectBody = createALSSignatureBody => [ + it.declarations += objectSig + it.abstract = true + ] + typeTrace.objectSupperClass = objectSig + trace.specification.signatureBodies += objectBody + + // 2. Each type is mapped to a unique sig + for(type : types) { + val sig = createALSSignatureDeclaration => [it.name = support.toIDMultiple("type",type.name)] + val body = createALSSignatureBody => [it.declarations += sig] + trace.specification.signatureBodies += body + typeTrace.type2ALSType.put(type,sig) + } + + // 3. The elements of a defined type is mapped to singleton signatures + // 3.1 Collect the elements + val elementMatcher = TypeQueries.instance.getLowestCommonSupertypeOfAllOccuranceOfElement(trace.incqueryEngine) + val topmostType2Elements = new HashMap> + for(element : elements) { + val topmostTypes = elementMatcher.getAllValuesOftype(element) + var ALSSignatureDeclaration selectedTopmostType; + if(topmostTypes.empty) { + selectedTopmostType = objectSig + } else{ + selectedTopmostType = topmostTypes.head.lookup(typeTrace.type2ALSType) + } + topmostType2Elements.putOrAddToList(selectedTopmostType,element) + } + + // 4. For each topmost types several singleton classes are generated, which represents the elements. + // For the sake of clarity, common bodies are used. + for(topmostEntry : topmostType2Elements.entrySet) { + + for(element : topmostEntry.value) { + val signature = createALSSignatureDeclaration => [it.name = support.toIDMultiple("element",element.name)] + typeTrace.definedElement2Declaration.put(element,signature) + } + + val body = createALSSignatureBody => [ + it.multiplicity = ALSMultiplicity.ONE + it.declarations += topmostEntry.value.map[it.lookup(typeTrace.definedElement2Declaration)] + ] + + val containerLogicType = topmostEntry.key + body.superset += containerLogicType + + trace.specification.signatureBodies+=body + } + + // 5.1 Each Defined Type is specified as the union of its elements + for(definedType : types.filter(TypeDefinition)) { + trace.specification.factDeclarations += createALSFactDeclaration => [ + it.name = support.toIDMultiple("typedefinition",definedType.name) + it.term = createALSEquals => [ + it.leftOperand = createALSReference => [ it.referred = definedType.lookup(typeTrace.type2ALSType) ] + it.rightOperand = support.unfoldPlus(definedType.elements.map[e| + createALSReference => [it.referred = e.lookup(typeTrace.definedElement2Declaration)]]) + ] + ] + } + // 5.2 Each Defined Element is unique + for(definedType : types.filter(TypeDefinition)) { + val allElementsIncludingSubtypes = + definedType.transitiveClosureStar[it.subtypes].filter(TypeDefinition) + .map[elements].flatten.toSet.toList + if(allElementsIncludingSubtypes.size>=2) { + trace.specification.factDeclarations += createALSFactDeclaration => [ + it.name = support.toIDMultiple("typeElementsUnique",definedType.name) + it.term = unfoldDistinctElements(allElementsIncludingSubtypes,trace) + ] + } + } + + // 6. Each inheritance is modeled by subset operator 'in' + for(type : types) { + val sigBody = type.lookup(typeTrace.type2ALSType).eContainer as ALSSignatureBody + if(type.supertypes.empty) { + sigBody.superset += typeTrace.objectSupperClass + } else { + sigBody.superset += type.supertypes.map[lookup(typeTrace.type2ALSType)] + } + } + + + // 7. Each type is in the intersection of the supertypes + for(type : types.filter[it.supertypes.size>=2]) { + trace.specification.factDeclarations += createALSFactDeclaration => [ + it.name = support.toIDMultiple("abstract",type.name) + it.term = createALSEquals => [ + it.leftOperand = createALSReference => [ it.referred = type.lookup(typeTrace.type2ALSType) ] + it.rightOperand = support.unfoldIntersection(type.supertypes.map[e| + createALSReference => [it.referred = e.lookup(typeTrace.type2ALSType)]]) + ] + ] + } + + // 8. Each abstract type is equal to the union of the subtypes + for(type : types.filter[isIsAbstract]) { + trace.specification.factDeclarations += createALSFactDeclaration => [ + it.name = support.toIDMultiple("abstract",type.name) + it.term = createALSEquals => [ + it.leftOperand = createALSReference => [ it.referred = type.lookup(typeTrace.type2ALSType) ] + it.rightOperand = support.unfoldPlus(type.subtypes.map[e| + createALSReference => [it.referred = e.lookup(typeTrace.type2ALSType)]]) + ] + ] + } + // 8.1 The object type is the union of the root types. + val rootTypes = types.filter[it.supertypes.empty].toList + trace.specification.factDeclarations += createALSFactDeclaration => [ + it.name = support.toIDMultiple(#["ObjectTypeDefinition"]) + it.term = createALSEquals => [ + it.leftOperand = createALSReference => [ it.referred = typeTrace.objectSupperClass ] + it.rightOperand = support.unfoldPlus(rootTypes.map[e| + createALSReference => [it.referred = e.lookup(typeTrace.type2ALSType)]]) + ] + ] + + // 9. For each type X (including Object) + // only the common subtypes are in the intersection + // of the two subtype. + // 9.1. for the object + { + val rootTypeList = types.filter[it.supertypes.empty].toList + for(type1Index: 0..=2) { + for(type1Index: 0.. [ + it.name = support.toIDMultiple("common","types",t1.name,t2.name) + it.term = createALSEquals => [ + it.leftOperand = createALSIntersection => [ + it.leftOperand = createALSReference => [it.referred = t1.lookup(trace.typeTrace.type2ALSType)] + it.rightOperand = createALSReference => [it.referred = t2.lookup(trace.typeTrace.type2ALSType)] + ] + it.rightOperand = support.unfoldPlus(allTopmostCommon.map[t|createALSReference => [it.referred = t.lookup(trace.typeTrace.type2ALSType)]]) + ] + ] + } + + def private unfoldDistinctElements( + List operands, + Logic2AlloyLanguageMapperTrace trace + ) { + if(operands.size == 1 || operands.size == 0) {support.unfoldTrueStatement(trace);} + else { + val notEquals = new ArrayList(operands.size*operands.size/2) + for(i:0..[ + leftOperand = createALSReference => [it.referred = trace.typeTrace.definedElement2Declaration.get(operands.get(i)) ] + rightOperand = createALSReference => [it.referred = trace.typeTrace.definedElement2Declaration.get(operands.get(j)) ] + ] + } + } + return support.unfoldAnd(notEquals) + } + } + + override transformTypeReference(Type referred, Logic2AlloyLanguageMapper mapper, Logic2AlloyLanguageMapperTrace trace) { + return #[trace.typeTrace.type2ALSType.get(referred)] + } + + override getUndefinedSupertype(Logic2AlloyLanguageMapperTrace trace) { + trace.typeTrace.objectSupperClass + } + + override transformReference(DefinedElement referred, Logic2AlloyLanguageMapperTrace trace) { + createALSReference => [it.referred = referred.lookup(trace.typeTrace.definedElement2Declaration)] + } + + override getUndefinedSupertypeScope(int undefinedScope, Logic2AlloyLanguageMapperTrace trace) { + if(undefinedScope == Integer.MAX_VALUE) return undefinedScope else return undefinedScope + trace.typeTrace.definedElement2Declaration.size + } + + override getTypeInterpreter() { + return new AlloyModelInterpretation_TypeInterpretation_FilteredTypes + } +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_TypeMapper_InheritanceAndHorizontal.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_TypeMapper_InheritanceAndHorizontal.xtend new file mode 100644 index 00000000..7d90b2b0 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/Logic2AlloyLanguageMapper_TypeMapper_InheritanceAndHorizontal.xtend @@ -0,0 +1,122 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguageFactory +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 java.util.Collection +import java.util.LinkedList + +class Logic2AlloyLanguageMapper_TypeMapper_InheritanceAndHorizontal implements Logic2AlloyLanguageMapper_TypeMapper{ + private val extension AlloyLanguageFactory factory = AlloyLanguageFactory.eINSTANCE + private val Logic2AlloyLanguageMapper_Support support = new Logic2AlloyLanguageMapper_Support; + + new() { + LogicproblemPackage.eINSTANCE.class + } + + override transformTypes(Collection types, Collection elements, Logic2AlloyLanguageMapper mapper, Logic2AlloyLanguageMapperTrace trace) { + val typeTrace = new Logic2AlloyLanguageMapper_TypeMapperTrace_InheritanceAndHorizontal + trace.typeMapperTrace = typeTrace + + // 1. A global type for Objects is created + val objectSig = createALSSignatureDeclaration => [it.name = support.toID(#["util","Object"])] + val objectBody = createALSSignatureBody => [ + it.declarations += objectSig + it.abstract = true + ] + typeTrace.objectSupperClass = objectSig + trace.specification.signatureBodies += objectBody + + // 2. Each type is mapped to a unique sig + for(type : types) { + val sig = createALSSignatureDeclaration => [it.name = support.toIDMultiple("type",type.name)] + val body = createALSSignatureBody => [it.declarations += sig] + body.abstract = type.isIsAbstract || (type instanceof TypeDefinition) + + trace.specification.signatureBodies += body + typeTrace.type2ALSType.put(type,sig) + + typeTrace.typeSelection.put(type,new LinkedList()=>[add(sig)]) + } + + for(element : elements) { + val mostSpecificTypes = element.definedInType.filter[it.subtypes.empty] + if(mostSpecificTypes.size== 1) { + val mostSpecificSubtype = mostSpecificTypes.head + val elementContainer = createALSSignatureBody => [ + it.multiplicity = ALSMultiplicity::ONE + it.supertype =typeTrace.type2ALSType.get(mostSpecificSubtype) + ] + val signature = createALSSignatureDeclaration => [it.name = support.toIDMultiple("element",element.name)] + elementContainer.declarations += signature + typeTrace.definedElement2Declaration.put(element,signature) + trace.specification.signatureBodies += elementContainer + } else { + throw new UnsupportedOperationException + } + } + + // 6. Each inheritance is modeled by extend keyword + for(type : types) { + if(type.supertypes.size == 0) { + (typeTrace.type2ALSType.get(type).eContainer as ALSSignatureBody).supertype = typeTrace.objectSupperClass + }if(type.supertypes.size == 1) { + val alsType = typeTrace.type2ALSType.get(type.supertypes.head) + (typeTrace.type2ALSType.get(type).eContainer as ALSSignatureBody).supertype = alsType + + } else if(type.supertypes.size > 1){ + val alsMainType = typeTrace.type2ALSType.get(type.supertypes.head) + (typeTrace.type2ALSType.get(type).eContainer as ALSSignatureBody).supertype = alsMainType + for(otherType : type.supertypes.filter[it != alsMainType]) { + typeTrace.typeSelection.get(otherType).add(typeTrace.type2ALSType.get(type)) + } + } + } + } + + private def boolean hasDefinedSupertype(Type type) { + if(type instanceof TypeDefinition) { + return true + } else { + if(type.supertypes.empty) return false + else return type.supertypes.exists[it.hasDefinedSupertype] + } + } + + def getTypeTrace(Logic2AlloyLanguageMapperTrace trace) { + val res = trace.typeMapperTrace + if(res instanceof Logic2AlloyLanguageMapper_TypeMapperTrace_InheritanceAndHorizontal) { + return res + } else { + throw new IllegalArgumentException(''' + Expected type mapping trace: «Logic2AlloyLanguageMapper_TypeMapperTrace_FilteredTypes.name», + but found «res.class.name»''') + } + } + + override transformTypeReference(Type referred, Logic2AlloyLanguageMapper mapper, Logic2AlloyLanguageMapperTrace trace) { + trace.typeTrace.typeSelection.get(referred) + } + + override getUndefinedSupertype(Logic2AlloyLanguageMapperTrace trace) { + trace.typeTrace.objectSupperClass + } + + override transformReference(DefinedElement referred, Logic2AlloyLanguageMapperTrace trace) { + val r = trace.typeTrace.definedElement2Declaration.get(referred) + return createALSReference => [it.referred =r] + } + + override getUndefinedSupertypeScope(int undefinedScope, Logic2AlloyLanguageMapperTrace trace) { + return undefinedScope + trace.typeTrace.definedElement2Declaration.size + } + + override getTypeInterpreter() { + return new AlloyModelInterpretation_TypeInterpretation_InheritanceAndHorizontal + } + +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/RunCommandMapper.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/RunCommandMapper.xtend new file mode 100644 index 00000000..fdc35412 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/src/hu/bme/mit/inf/dlsreasoner/alloy/reasoner/builder/RunCommandMapper.xtend @@ -0,0 +1,105 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSInt +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguageFactory +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDefinition +import java.util.LinkedList +import java.util.List + +import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* + +class RunCommandMapper { + private val extension AlloyLanguageFactory factory = AlloyLanguageFactory.eINSTANCE + private val Logic2AlloyLanguageMapper_Support support = new Logic2AlloyLanguageMapper_Support; + private val Logic2AlloyLanguageMapper_TypeMapper typeMapper; + + public new(Logic2AlloyLanguageMapper_TypeMapper typeMapper) { + this.typeMapper = typeMapper + } + + def public transformRunCommand(Logic2AlloyLanguageMapper mapper, ALSDocument specification, Logic2AlloyLanguageMapperTrace trace, AlloySolverConfiguration config) + { + //val knownStringNumber = specification.eAllContents.filter(ALSStringLiteral).map[it.value].toSet.size + + // add fact to ensure the existence of all literals in the scope + if(!config.typeScopes.knownStrings.empty) { + specification.factDeclarations += createALSFactDeclaration => [ + it.name = "EnsureAllStrings" + val List equals = config.typeScopes.knownStrings.map[x|createALSEquals => [ + it.leftOperand =createALSStringLiteral => [it.value = x] + it.rightOperand =createALSStringLiteral => [it.value = x] + ]].toList + it.term = support.unfoldAnd(equals) + ] + } + val typeScopes = new LinkedList + for(definedScope : config.typeScopes.maxNewElementsByType.entrySet) { + val key = definedScope.key + val amount = definedScope.value + val exactly = config.typeScopes.minNewElementsByType.containsKey(key) && config.typeScopes.minNewElementsByType.get(key) === amount + + val existing = key.transitiveClosureStar[it.subtypes].filter(TypeDefinition).map[elements].flatten.toSet + if(amount == 0 && exactly) { + specification.factDeclarations += createALSFactDeclaration => [ + it.term = createALSEquals => [ + it.leftOperand = support.unfoldPlus(typeMapper.transformTypeReference(key,mapper,trace).map[t|createALSReference => [it.referred = t]].toList) + it.rightOperand = support.unfoldPlus( existing.map[typeMapper.transformReference(it,trace)].toList ) + ] + ] + } + val int n = existing.size-amount + typeScopes += createALSSigScope => [ + it.type = typeMapper.transformTypeReference(key,mapper,trace).head + it.number = n + it.exactly =exactly + ] + } + + specification.runCommand = createALSRunCommand => [ + it.typeScopes+= createALSSigScope => [ + it.type= typeMapper.getUndefinedSupertype(trace) + it.number = typeMapper.getUndefinedSupertypeScope(config.typeScopes.maxNewElements,trace) + it.exactly = (config.typeScopes.maxNewElements == config.typeScopes.minNewElements) + ] + if(config.typeScopes.maxNewIntegers == LogicSolverConfiguration::Unlimited) { + val integersUsed = specification.eAllContents.filter(ALSInt) + if(integersUsed.empty) { + // If no integer scope is defined, but the problem has no integers + // => scope can be empty + it.typeScopes+= createALSIntScope => [ + it.number = 0 + ] + } else { + // If no integer scope is defined, and the problem has integers + // => error + throw new UnsupportedOperationException('''An integer scope have to be specified for Alloy!''') + } + } else { + it.typeScopes += createALSIntScope => [ + if(config.typeScopes.knownIntegers.empty) { + number = Integer.SIZE-Integer.numberOfLeadingZeros(config.typeScopes.maxNewIntegers+1/2) + } else { + var scope = Math.max( + Math.abs(config.typeScopes.knownIntegers.max), + Math.abs(config.typeScopes.knownIntegers.min)) + if(scope*2+1 < config.typeScopes.knownIntegers.size + config.typeScopes.maxNewIntegers) { + scope += ((config.typeScopes.knownIntegers.size + config.typeScopes.maxNewIntegers) - (scope*2))/2 + } + number = Integer.SIZE-Integer.numberOfLeadingZeros(scope)+1 + } + ] + } + if(config.typeScopes.maxNewStrings === LogicSolverConfiguration::Unlimited) { + throw new UnsupportedOperationException('''An string scope have to be specified for Alloy!''') + } else { + if(config.typeScopes.maxNewStrings != 0) { + it.typeScopes += createALSStringScope => [it.number = 0] + } + } + ] + } +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/unused/AlloyModelInterpretation.xtend_ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/unused/AlloyModelInterpretation.xtend_ new file mode 100644 index 00000000..264e3ff8 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/unused/AlloyModelInterpretation.xtend_ @@ -0,0 +1,212 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import edu.mit.csail.sdg.alloy4compiler.ast.ExprVar +import edu.mit.csail.sdg.alloy4compiler.ast.Sig.Field +import edu.mit.csail.sdg.alloy4compiler.translator.A4Solution +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicModelInterpretation +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.FunctionDeclaration +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguageFactory +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDefinition +import java.util.Arrays +import java.util.HashMap +import java.util.LinkedList +import java.util.List +import java.util.Map +import java.util.Set + +import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* + +class AlloyModelInterpretation implements LogicModelInterpretation{ + + protected val extension LogiclanguageFactory factory = LogiclanguageFactory.eINSTANCE + //protected val extension LogicProblemBuilder builder = new LogicProblemBuilder + + protected val Logic2AlloyLanguageMapper forwardMapper + protected val Logic2AlloyLanguageMapperTrace forwardTrace; + + private var ExprVar logicLanguage; + private var String logicBooleanTrue; + private var String logicBooleanFalse; + + val Map alloyAtom2LogicElement = new HashMap + private val Map> interpretationOfUndefinedType = new HashMap + + private val Map constant2Value + private val Map> function2Value + private val Map> relation2Value + + private val int minInt + private val int maxInt + + public new (A4Solution solution, Logic2AlloyLanguageMapper forwardMapper, Logic2AlloyLanguageMapperTrace trace) { + + this.forwardMapper = forwardMapper + this.forwardTrace = trace + + //TMP sig maps to identify alloy signatures by their names + val Map sigName2LogicType = + forwardTrace.type2ALSType.keySet.toMap[x|forwardTrace.type2ALSType.get(x).name] + val Map elementNameNamel2DefinedElement = + forwardTrace.definedElement2Declaration.keySet.toMap[x|forwardTrace.definedElement2Declaration.get(x).name] + + // Fill the interpretation map with empty lists + forwardTrace.type2ALSType.keySet.filter(TypeDeclaration).forEach[x|interpretationOfUndefinedType.put(x,new LinkedList)] + + // exporing individuals + for(atom: solution.allAtoms) { + val typeName = getName(atom.type) + val atomName = atom.name + //println(atom.toString + " < - " + typeName) + if(typeName == forwardTrace.logicLanguage.name) { + this.logicLanguage = atom + } else if(typeName == "Int" || typeName == "seq/Int") { + // do nothing + } else if(sigName2LogicType.containsKey(typeName) && typeName.lookup(sigName2LogicType) instanceof TypeDefinition) { + val element = elementNameNamel2DefinedElement.get(atomName.head) + alloyAtom2LogicElement.put(atom.label,element) + } else if(sigName2LogicType.containsKey(typeName)) { + val type = sigName2LogicType.get(typeName) + val elementsOfType = interpretationOfUndefinedType.get(type) + val element = createDefinedElement => [ + it.name += type.name + it.name += (elementsOfType.size+1).toString + ] + alloyAtom2LogicElement.put(atom.label,element) + elementsOfType+=element + } else if(forwardTrace.boolType != null && typeName == forwardTrace.boolType.name) { + if(atomName.head == forwardTrace.boolTrue.name) { this.logicBooleanTrue = atom.label } + else if(atomName.head == forwardTrace.boolFalse.name) { this.logicBooleanFalse = atom.label} + else throw new UnsupportedOperationException('''Unknown boolean value: «atom»''') + } + else throw new UnsupportedOperationException('''Unknown atom: «atom»''') + } + + //TMP field maps + val Map name2AlloyField = new HashMap + // exploring signatures + for(sig:solution.allReachableSigs) { + for(field : sig.fields) { + name2AlloyField.put(field.label,field) + } + } + + // eval consants + constant2Value = forwardTrace.constantDeclaration2LanguageField.mapValues[ + solution.eval(it.name.lookup(name2AlloyField)).head.atom(1).atomLabel2Term + ] + // eval functions + val hostedfunction2Value = forwardTrace.functionDeclaration2HostedField.mapValues[ function | + newHashMap( + solution.eval(function.name.lookup(name2AlloyField)) + .map[t | new ParameterSubstitution(#[t.atom(0).atomLabel2Term]) -> t.atom(1).atomLabel2Term])] + + val globalfunction2Value = forwardTrace.functionDeclaration2LanguageField.keySet.toInvertedMap[ function | + val alsFunction = function.lookup(forwardTrace.functionDeclaration2LanguageField) + val paramIndexes = 1..(function.parameters.size) + return newHashMap( + solution.eval(alsFunction.name.lookup(name2AlloyField)).map[t | + new ParameterSubstitution(paramIndexes.map[t.atom(it).atomLabel2Term]) + -> + t.atom(function.parameters.size + 1).atomLabel2Term + ])] + this.function2Value = Union(hostedfunction2Value,globalfunction2Value) + // eval relations + val hostedRelation2Value = forwardTrace.relationDeclaration2Field.mapValues[ relation | + solution.eval(relation.name.lookup(name2AlloyField)).map[ t | + new ParameterSubstitution(#[t.atom(0).atomLabel2Term,t.atom(1).atomLabel2Term])].toSet] + val globalRelation2Value = forwardTrace.relationDeclaration2Global.mapValues[ relation | + solution.eval(relation.name.lookup(name2AlloyField)).map[ t | + new ParameterSubstitution((1.. «v»''')] + + println('''Constants-----''') + constant2Value.forEach[k, v|println('''«k.name» : «v»''')] + println('''Functions-----''') + function2Value.forEach[f,m|m.forEach[k,v| println('''«f.name» : «k» |-> «v»''')]] + println('''Relations-----''') + relation2Value.forEach[r,s|s.forEach[t | println('''«r.name»: («t»)''')]] + } + + def private getName(edu.mit.csail.sdg.alloy4compiler.ast.Type type) { + val name = type.toString + if(name.startsWith("{this/") && name.endsWith("}")) { + return type.toString.replaceFirst("\\{this\\/","").replace("}","") + } + else throw new IllegalArgumentException('''Unknown type format: "«name»"!''') + } + def private getName(ExprVar atom) { atom.toString.split("\\$") } + + override getElements(Type type) { getElementsDispatch(type) } + def private dispatch getElementsDispatch(TypeDeclaration declaration) { return declaration.lookup(this.interpretationOfUndefinedType) } + def private dispatch getElementsDispatch(TypeDefinition declaration) { return declaration.elements } + + override getInterpretation(FunctionDeclaration function, Object[] parameterSubstitution) { + val transformedParams = new ParameterSubstitution(parameterSubstitution) + return transformedParams.lookup( + function.lookup(this.function2Value) + ) + } + + override getInterpretation(RelationDeclaration relation, Object[] parameterSubstitution) { + relation.lookup(this.relation2Value).contains(new ParameterSubstitution(parameterSubstitution)) + } + + override getInterpretation(ConstantDeclaration constant) { + constant.lookup(this.constant2Value) + } + + override getMinimalInteger() { this.minInt } + override getMaximalInteger() { this.maxInt } + + // Alloy term -> logic term + def private atomLabel2Term(String label) { + if(label.number) return Integer.parseInt(label) + else if(label == this.logicBooleanTrue) return true + else if(label == this.logicBooleanFalse) return false + else if(this.alloyAtom2LogicElement.containsKey(label)) return label.lookup(alloyAtom2LogicElement) + else throw new IllegalArgumentException('''Unknown atom label: "«label»"!''') + } + def isNumber(String s) { + try{ + Integer.parseInt(s) + return true + }catch(NumberFormatException e) { + return false + } + } +} + +class ParameterSubstitution{ + val Object[] data; + + new(Object[] data) { this.data = data } + + override equals(Object obj) { + if(obj === this) return true + else if(obj == null) return false + if(obj instanceof ParameterSubstitution) { + return Arrays.equals(this.data,obj.data) + } + return false + } + + override hashCode() { + Arrays.hashCode(data) + } +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/unused/FunctionWithTimeout.xtend_ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/unused/FunctionWithTimeout.xtend_ new file mode 100644 index 00000000..4f001c72 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/unused/FunctionWithTimeout.xtend_ @@ -0,0 +1,40 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import org.eclipse.xtext.xbase.lib.Functions.Function0 +import java.util.concurrent.Executors +import java.util.concurrent.Callable +import java.util.concurrent.TimeUnit +import java.util.concurrent.TimeoutException +import java.util.concurrent.ExecutionException + +class FunctionWithTimeout { + val Function0 function; + + new(Function0 function) { + this.function = function + } + + def execute(long millisecs) { + if(millisecs>0) { + val executor = Executors.newCachedThreadPool(); + val task = new Callable() { + override Type call() { function.apply } + }; + val future = executor.submit(task); + try { + val result = future.get(millisecs, TimeUnit.MILLISECONDS); + return result + } catch (TimeoutException ex) { + // handle the timeout + } catch (InterruptedException e) { + // handle the interrupts + } catch (ExecutionException e) { + // handle other exceptions + } finally { + future.cancel(true); // may or may not desire this + } + return null + } + else return function.apply + } +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/unused/Logic2AlloyApiMapper.xtend_ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/unused/Logic2AlloyApiMapper.xtend_ new file mode 100644 index 00000000..48ec4fd4 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/unused/Logic2AlloyApiMapper.xtend_ @@ -0,0 +1,345 @@ +package hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder + +import java.util.Map +import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput +import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem +import java.util.List +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.BoolTypeReference +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.IntTypeReference +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RealTypeReference +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ComplexTypeReference +import edu.mit.csail.sdg.alloy4compiler.ast.ExprConstant +import edu.mit.csail.sdg.alloy4compiler.ast.Expr +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.IntLiteral +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Not +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.And +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Or +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Impl +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Iff +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.MoreThan +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LessThan +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.MoreOrEqualThan +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LessOrEqualThan +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Equals +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Plus +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Minus +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Multiply +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Divison +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Mod +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Forall +import java.util.HashMap +import edu.mit.csail.sdg.alloy4compiler.ast.Decl +import java.util.ArrayList +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Exists +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RealLiteral +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement +import edu.mit.csail.sdg.alloy4compiler.ast.Attr +import edu.mit.csail.sdg.alloy4compiler.ast.Sig.PrimSig +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Term +import javax.naming.OperationNotSupportedException +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.SymbolicValue +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Constant +import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.alloylanguage.AlloySpecification +import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.alloylanguage.Multiplicity +import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.alloylanguage.InverseReference +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDefinition +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type + +class AlloyInput{ + public val List typeDeclarations=new ArrayList + public val List functionDeclarations=new ArrayList + public val List assertions=new ArrayList + public val List multiplicityConstraints=new ArrayList + public val List inverseConstraints=new ArrayList +} + +class Logic2AlloyApiMapperTrace { + val Map typeMap + val Map elementMap + //val Map functionMap + val Map relationMap + //val Map constantMap + + new () { + this.typeMap = new HashMap + this.elementMap = new HashMap + //this.functionMap = new HashMap + this.relationMap = new HashMap + //this.constantMap = new HashMap + } + new (Map typeMap, + Map elementMap, + //Map functionMap, + Map relationMap/*, + Map constantMap*/) + { + this.typeMap = typeMap + this.elementMap = elementMap + //this.functionMap = functionMap + this.relationMap = relationMap + //this.constantMap = constantMap + } + + def types() { typeMap } + def elements() { elementMap } + //def functions() { functionMap } + def relations() { relationMap } + //def constants() { constantMap } +} + +class Logic2AlloyApiMapper{ + //TODO output + public def TracedOutput, Logic2AlloyApiMapperTrace> transformProblem(LogicProblem problem) { + val documentInput = new AlloyInput() + //createSMTInput => [satCommand = createSMTSimpleSatCommand getModelCommand = createSMTGetModelCommand] + //val document = createSMTDocument => [input = documentInput] + val List document=new ArrayList + val trace = new Logic2AlloyApiMapperTrace + + // Trafo + documentInput.typeDeclarations += problem.types.map[transformType(trace)] + //documentInput.functionDeclarations += problem.functions.map[transformFunction(trace)] + documentInput.functionDeclarations += problem.relations.map[transformRelation(trace)] + //documentInput.functionDeclarations += problem.constants.map[transformConstant(trace)] + documentInput.assertions += problem.assertions.map[transformAssertion(trace)] + + + val alloySpecification = problem.specifications.filter(AlloySpecification).head + + for(mult: alloySpecification.multiplicities){ + if(mult.min>0){ + documentInput.multiplicityConstraints+=mult.transformMultiplicityLowerBound(trace) + } + if(mult.max!=-1){ + documentInput.multiplicityConstraints+=mult.transformMultiplicityUpperBound(trace) + } + } + + for(inv: alloySpecification.inverses){ + documentInput.inverseConstraints += inv.transformInverse(trace) + } + // End trafo + + return new TracedOutput(document,trace) + } + + def Expr transformMultiplicityLowerBound(Multiplicity multiplicity, Logic2AlloyApiMapperTrace trace){ + + val Decl forallVariable=(trace.relations.get(multiplicity.multiplicityOf)).oneOf("o") as Decl + return (forallVariable.get.cardinality.gte(ExprConstant.makeNUMBER(multiplicity.min))).forAll(forallVariable) + + } + + def Expr transformMultiplicityUpperBound(Multiplicity multiplicity, Logic2AlloyApiMapperTrace trace){ + + val Decl forallVariable=(trace.relations.get(multiplicity.multiplicityOf)).oneOf("o") as Decl + return (forallVariable.get.cardinality.lte(ExprConstant.makeNUMBER(multiplicity.max))).forAll(forallVariable) + + } + + def Expr transformInverse(InverseReference inverse, Logic2AlloyApiMapperTrace trace){ + return trace.relations.get(inverse.inverseOf.get(0)).equal(trace.relations.get(inverse.inverseOf.get(1)).transpose) + } + + private def toID(List names) {names.join("!") } + + def dispatch protected transformType(TypeDefinition declaration, Logic2AlloyApiMapperTrace trace) { + val result = new PrimSig(declaration.name.toID, Attr.ABSTRACT) + trace.types.put(declaration,result) + return result + } + + def protected transformDefinedElement(TypeDefinition enumType, DefinedElement element, Logic2AlloyApiMapperTrace trace) { + val result=new PrimSig(element.name.toID, trace.types.get(enumType), Attr.ONE) + trace.elements.put(element,result) + return result + } + + def dispatch protected transformType(TypeDeclaration declaration, Logic2AlloyApiMapperTrace trace) { + //TODO �r�kles, absztrakt + val result = new PrimSig(declaration.name.toID) + trace.types.put(declaration,result) + return result + } + + def dispatch protected transformTypeReference(BoolTypeReference boolTypeReference, Logic2AlloyApiMapperTrace trace) { + throw new UnsupportedOperationException("BoolTypeReference is not supported.") + } + def dispatch protected transformTypeReference(IntTypeReference intTypeReference, Logic2AlloyApiMapperTrace trace) { + return PrimSig.SIGINT + } + def dispatch protected transformTypeReference(RealTypeReference realTypeReference, Logic2AlloyApiMapperTrace trace) { + throw new UnsupportedOperationException("RealTypeReference is not supported.") + } + def dispatch protected PrimSig transformTypeReference(ComplexTypeReference complexTypeReference, Logic2AlloyApiMapperTrace trace) { + return trace.types.get(complexTypeReference.referred) + } + + /*def protected transformFunction(Function declaration, Logic2AlloyApiMapperTrace trace) { + val functionDeclaration = createSMTFunctionDeclaration => [ + name = declaration.name.toID + range = declaration.range.transformTypeReference(trace) + parameters+= declaration.parameters.map[transformTypeReference(trace)] + ] + trace.functions.put(declaration,functionDeclaration) + return functionDeclaration + }*/ + + def transformRelation(Relation relation, Logic2AlloyApiMapperTrace trace) { + if(relation.parameters.size==2){ + trace.relations.put(relation,(relation.parameters.get(0).transformTypeReference(trace) as PrimSig).addField(relation.name.toID, (relation.parameters.get(1).transformTypeReference(trace) as PrimSig).setOf)) + } else{ + throw new OperationNotSupportedException("More parameters are not supported.") + } + } + + /*def transformConstant(Constant constant, Logic2AlloyApiMapperTrace trace) { + val smtConstant = createSMTFunctionDeclaration => [ + name = constant.name.toID + range = transformTypeReference(constant.type, trace) + ] + trace.constants.put(constant,smtConstant) + return smtConstant + }*/ + + def protected Expr transformAssertion(Assertion assertion, Logic2AlloyApiMapperTrace trace) { + + return assertion.value.transformTerm(trace,emptyMap) + } + + def dispatch protected Expr transformTerm(BoolLiteral literal, Logic2AlloyApiMapperTrace trace, Map variables) { + throw new UnsupportedOperationException("Bool is not supported") + //open util/boolean, autoPay: Bool + //https://code.google.com/p/valloy2009/source/browse/trunk/src/models/util/boolean.als?r=142 + } + def dispatch protected Expr transformTerm(IntLiteral literal, Logic2AlloyApiMapperTrace trace, Map variables) { + return ExprConstant.makeNUMBER(literal.value) + } + def dispatch protected Expr transformTerm(RealLiteral literal, Logic2AlloyApiMapperTrace trace, Map variables) { + throw new UnsupportedOperationException("Real number is not supported") + } + def dispatch protected Expr transformTerm(Not not, Logic2AlloyApiMapperTrace trace, Map variables) { + return not.operand.transformTerm(trace,variables).not} + def dispatch protected Expr transformTerm(And and, Logic2AlloyApiMapperTrace trace, Map variables) { + val List operands= and.operands.map[transformTerm(trace,variables)] + var andTerm=operands.get(0) + for(Integer i: 1..(operands.size-1)){ + andTerm=andTerm.and(operands.get(i)) + } + return andTerm + } + def dispatch protected Expr transformTerm(Or or, Logic2AlloyApiMapperTrace trace, Map variables) { + val List operands= or.operands.map[transformTerm(trace,variables)] + var orTerm=operands.get(0) + for(Integer i: 1..(operands.size-1)){ + orTerm=orTerm.or(operands.get(i)) + } + return orTerm + } + def dispatch protected Expr transformTerm(Impl impl, Logic2AlloyApiMapperTrace trace, Map variables) { + return impl.leftOperand.transformTerm(trace,variables).implies(impl.rightOperand.transformTerm(trace,variables)) + } + def dispatch protected Expr transformTerm(Iff ifExpression, Logic2AlloyApiMapperTrace trace, Map variables) { + return ifExpression.leftOperand.transformTerm(trace,variables).iff(ifExpression.rightOperand.transformTerm(trace,variables)) + } + def dispatch protected Expr transformTerm(MoreThan moreThan, Logic2AlloyApiMapperTrace trace, Map variables) { + return moreThan.leftOperand.transformTerm(trace,variables).gt(moreThan.rightOperand.transformTerm(trace,variables)) + } + def dispatch protected Expr transformTerm(LessThan lessThan, Logic2AlloyApiMapperTrace trace, Map variables) { + return lessThan.leftOperand.transformTerm(trace,variables).lt(lessThan.rightOperand.transformTerm(trace,variables)) + } + def dispatch protected Expr transformTerm(MoreOrEqualThan moreThan, Logic2AlloyApiMapperTrace trace, Map variables) { + return moreThan.leftOperand.transformTerm(trace,variables).gte(moreThan.rightOperand.transformTerm(trace,variables)) + } + def dispatch protected Expr transformTerm(LessOrEqualThan lessThan, Logic2AlloyApiMapperTrace trace, Map variables) { + return lessThan.leftOperand.transformTerm(trace,variables).lte(lessThan.rightOperand.transformTerm(trace,variables)) + } + def dispatch protected Expr transformTerm(Equals equals, Logic2AlloyApiMapperTrace trace, Map variables) { + return equals.leftOperand.transformTerm(trace,variables).equal(equals.rightOperand.transformTerm(trace,variables)) + } + /*def dispatch protected Expr transformTerm(Distinct distinct, Logic2AlloyApiMapperTrace trace, Map variables) { + createSMTDistinct => [ operands += distinct.operands.map[transformTerm(trace,variables)]]}*/ + def dispatch protected Expr transformTerm(Plus plus, Logic2AlloyApiMapperTrace trace, Map variables) { + return plus.leftOperand.transformTerm(trace,variables).plus(plus.rightOperand.transformTerm(trace,variables)) + } + def dispatch protected Expr transformTerm(Minus minus, Logic2AlloyApiMapperTrace trace, Map variables) { + return minus.leftOperand.transformTerm(trace,variables).minus(minus.rightOperand.transformTerm(trace,variables)) + } + def dispatch protected Expr transformTerm(Multiply multiply, Logic2AlloyApiMapperTrace trace, Map variables) { + return multiply.leftOperand.transformTerm(trace,variables).mul(multiply.rightOperand.transformTerm(trace,variables)) + } + def dispatch protected Expr transformTerm(Divison div, Logic2AlloyApiMapperTrace trace, Map variables) { + return div.leftOperand.transformTerm(trace,variables).div(div.rightOperand.transformTerm(trace,variables)) + } + def dispatch protected Expr transformTerm(Mod mod, Logic2AlloyApiMapperTrace trace, Map variables) { + throw new UnsupportedOperationException("Modulo is not supported.") + } + def dispatch protected Expr transformTerm(Forall forall, Logic2AlloyApiMapperTrace trace, Map variables) { + return configureForall(forall,trace,variables) + } + def dispatch protected Expr transformTerm(Exists exists, Logic2AlloyApiMapperTrace trace, Map variables) { + return configureExists(exists,trace,variables) + } + def dispatch protected Expr transformTerm(SymbolicValue symbolicValue, Logic2AlloyApiMapperTrace trace, Map variables) { + symbolicValue.symbolicReference.transformSymbolicReference(symbolicValue.parameterSubstitutions,trace,variables) } + + def private configureForall( + Forall quantifiedExpression, + Logic2AlloyApiMapperTrace trace, Map variables) + { + val allVariables = new HashMap(variables) + val newAlloyVariables = new ArrayList(quantifiedExpression.quantifiedVariables.size) + + for(logicVariable: quantifiedExpression.quantifiedVariables) { + val newAlloyVariable = (logicVariable.range.transformTypeReference(trace)).oneOf(logicVariable.name.toID) as Decl + allVariables.put(logicVariable, newAlloyVariable) + newAlloyVariables += newAlloyVariable + } + val variable0=newAlloyVariables.get(0) + newAlloyVariables.remove(0) + return (quantifiedExpression.expression.transformTerm(trace,allVariables)).forAll(variable0, newAlloyVariables) + } + + def private configureExists( + Exists quantifiedExpression, + Logic2AlloyApiMapperTrace trace, Map variables) + { + val allVariables = new HashMap(variables) + val newAlloyVariables = new ArrayList(quantifiedExpression.quantifiedVariables.size) + + for(logicVariable: quantifiedExpression.quantifiedVariables) { + val newAlloyVariable = (logicVariable.range.transformTypeReference(trace)).oneOf(logicVariable.name.toID) as Decl + allVariables.put(logicVariable, newAlloyVariable) + newAlloyVariables += newAlloyVariable + } + val variable0=newAlloyVariables.get(0) + newAlloyVariables.remove(0) + return (quantifiedExpression.expression.transformTerm(trace,allVariables)).forSome(variable0, newAlloyVariables) + } + + def dispatch protected Expr transformSymbolicReference(DefinedElement referred, List parameterSubstitutions, Logic2AlloyApiMapperTrace trace, Map variables) { + return trace.elements.get(referred) + } + def dispatch protected Expr transformSymbolicReference(Variable variable, List parameterSubstitutions, Logic2AlloyApiMapperTrace trace, Map variables) { + return variables.get(variable).get + } + /*def dispatch protected Expr transformSymbolicReference(Function function, List parameterSubstitutions, Logic2AlloyApiMapperTrace trace, Map variables) { + val result = createSMTSymbolicValue => [sv | sv.symbolicReference = trace.functions.get(function)] + for(paramSubstitution : parameterSubstitutions) { + result.parameterSubstitutions.add(paramSubstitution.transformTerm(trace,variables)) + } + return result + }*/ + def dispatch protected Expr transformSymbolicReference(Relation relation, List parameterSubstitutions, Logic2AlloyApiMapperTrace trace, Map variables) { + return trace.relations.get(relation) + } + def dispatch protected Expr transformSymbolicReference(Constant constant, List parameterSubstitutions, Logic2AlloyApiMapperTrace trace, Map variables) { + //createSMTSymbolicValue => [symbolicReference = trace.constants.get(constant)] + throw new UnsupportedOperationException("Constant is not supported") + } +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/unused/oldTypes b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/unused/oldTypes new file mode 100644 index 00000000..f5f5a9b6 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/unused/oldTypes @@ -0,0 +1,74 @@ +/*def dispatch boolean hasDeclaredElement(TypeDefinition type) { return false; } + def dispatch boolean hasDeclaredElement(TypeDeclaration type) { + if(type.isAbstract) { + type.subtypes.exists[it.hasDeclaredElement] + } else return true; + } + + def dispatch List allEnumSubtypes(TypeDefinition type) { return #[type] } + def dispatch List allEnumSubtypes(TypeDeclaration type) { + return type.subtypes.map[it.allEnumSubtypes].flatten.toList + } + + def protected transformTypes(List types, Logic2AlloyLanguageMapperTrace trace) { + val Map signatureTrace = new HashMap; + + // Creating the root type + val objectType = createALSSignatureDeclaration => [ name=#["util","object"].toID it.abstract = true ] + trace.objectSupperClass = objectType + trace.specification.typeDeclarations += objectType + + // Creating the images of the types + for(type : types) { + if(type instanceof TypeDefinition) { + if(type.elements.empty) { + trace.type2ALSType.put(type,#[]); + } else { + val e = createALSEnumDeclaration => [ + it.name = type.name.toID + it.literal += type.elements.map[transformDefinedElement(trace)] + ] + trace.type2ALSType.put(type,#[e]) + trace.specification.typeDeclarations += e + } + } + else if(type instanceof TypeDeclaration) { + if(hasDeclaredElement(type)) { + val s = createALSSignatureDeclaration => [ + name=type.name.toID + it.abstract = type.isIsAbstract + ] + trace.type2ALSType.put(type,new LinkedList=>[add(s)]) + signatureTrace.put(type, s) + trace.specification.typeDeclarations += s + } + else { + signatureTrace.put(type, null) + trace.type2ALSType.put(type,new LinkedList);// empty + } + } + else throw new IllegalArgumentException('''Unknown type «type.class.name»''') + } + + + for(type: types.filter(TypeDeclaration)) { + // Adding inheritance + val s = type.lookup(signatureTrace) + if(s!=null) { + for(supertype : type.supertypes) { + s.supertype += (supertype as TypeDeclaration).lookup(signatureTrace) + } + if(type.supertypes.empty) { + s.supertype += objectType + } + } + // Adding enum subtypes + type.lookup(trace.type2ALSType)+=type.allEnumSubtypes.map[it.lookup(trace.type2ALSType)].flatten + } + } + + def protected transformDefinedElement(DefinedElement element, Logic2AlloyLanguageMapperTrace trace) { + val result = createALSEnumLiteral => [name = element.name.toID] + trace.definedElement2EnumProperty.put(element,result) + return result + }*/ \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/.classpath b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/.classpath new file mode 100644 index 00000000..2d4e4672 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/.gitignore b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/.gitignore new file mode 100644 index 00000000..f2741e97 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/.gitignore @@ -0,0 +1,3 @@ +/bin/ +/vql-gen/ +/xtend-gen/ diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/.project b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/.project new file mode 100644 index 00000000..4274ea1d --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/.project @@ -0,0 +1,34 @@ + + + hu.bme.mit.inf.dslreasoner.alloy.language.ui + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + org.eclipse.xtext.ui.shared.xtextNature + + diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/.settings/org.eclipse.core.resources.prefs b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..99f26c02 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/.settings/org.eclipse.jdt.core.prefs b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..0c68a61d --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.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/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/META-INF/MANIFEST.MF b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/META-INF/MANIFEST.MF new file mode 100644 index 00000000..50a765be --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/META-INF/MANIFEST.MF @@ -0,0 +1,28 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: hu.bme.mit.inf.dslreasoner.alloy.language.ui +Bundle-Vendor: My Company +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: hu.bme.mit.inf.dslreasoner.alloy.language.ui; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: hu.bme.mit.inf.dslreasoner.alloy.language;visibility:=reexport, + org.eclipse.xtext.ui, + org.eclipse.ui.editors;bundle-version="3.5.0", + org.eclipse.ui.ide;bundle-version="3.5.0", + org.eclipse.xtext.ui.shared, + org.eclipse.ui, + org.eclipse.xtext.builder, + org.eclipse.xtext.xbase.lib, + org.antlr.runtime, + org.eclipse.xtext.common.types.ui, + org.eclipse.xtext.ui.codetemplates.ui, + org.eclipse.compare +Import-Package: org.apache.log4j +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Export-Package: hu.bme.mit.inf.dslreasoner.ui.quickfix, + hu.bme.mit.inf.dslreasoner.ui.contentassist, + hu.bme.mit.inf.dslreasoner.ui.contentassist.antlr, + hu.bme.mit.inf.dslreasoner.ui.internal, + hu.bme.mit.inf.dslreasoner.ui.contentassist.antlr.internal +Bundle-Activator: hu.bme.mit.inf.dslreasoner.ui.internal.AlloyLanguageActivator +Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.alloy.language.ui diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/build.properties b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/build.properties new file mode 100644 index 00000000..31255ed0 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/build.properties @@ -0,0 +1,6 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = META-INF/,\ + .,\ + plugin.xml \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/plugin.xml b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/plugin.xml new file mode 100644 index 00000000..9c36e8a4 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/plugin.xml @@ -0,0 +1,398 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/plugin.xml_gen b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/plugin.xml_gen new file mode 100644 index 00000000..78d943b4 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/plugin.xml_gen @@ -0,0 +1,425 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/AbstractAlloyLanguageUiModule.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/AbstractAlloyLanguageUiModule.java new file mode 100644 index 00000000..80a1c7ff --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/AbstractAlloyLanguageUiModule.java @@ -0,0 +1,201 @@ + +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner.ui; + +import org.eclipse.ui.plugin.AbstractUIPlugin; + +/** + * Manual modifications go to {hu.bme.mit.inf.dslreasoner.ui.AlloyLanguageUiModule} + */ +@SuppressWarnings("all") +public abstract class AbstractAlloyLanguageUiModule extends org.eclipse.xtext.common.types.ui.DefaultCommonTypesUiModule { + + public AbstractAlloyLanguageUiModule(AbstractUIPlugin plugin) { + super(plugin); + } + + + // contributed by org.eclipse.xtext.ui.generator.ImplicitUiFragment + public com.google.inject.Provider provideIAllContainersState() { + return org.eclipse.xtext.ui.shared.Access.getJavaProjectsState(); + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public Class bindIProposalConflictHelper() { + return org.eclipse.xtext.ui.editor.contentassist.antlr.AntlrProposalConflictHelper.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public void configureHighlightingLexer(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(hu.bme.mit.inf.dslreasoner.parser.antlr.internal.InternalAlloyLanguageLexer.class); + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public void configureHighlightingTokenDefProvider(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.parser.antlr.ITokenDefProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class); + } + + // contributed by org.eclipse.xtext.generator.exporting.QualifiedNamesFragment + public Class bindIDependentElementsCalculator() { + return org.eclipse.xtext.ui.refactoring.impl.DefaultDependentElementsCalculator.class; + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public void configureIResourceDescriptionsBuilderScope(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(org.eclipse.xtext.builder.clustering.CurrentDescriptions.ResourceSetAware.class); + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public Class bindIXtextEditorCallback() { + return org.eclipse.xtext.builder.nature.NatureAddingEditorCallback.class; + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public Class bindIContextualOutputConfigurationProvider() { + return org.eclipse.xtext.builder.EclipseOutputConfigurationProvider.class; + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public void configureIResourceDescriptionsPersisted(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(org.eclipse.xtext.builder.builderState.IBuilderState.class); + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public Class bindDocumentBasedDirtyResource() { + return org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource.class; + } + + // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment + public Class bindIXtextBuilderParticipant() { + return org.eclipse.xtext.builder.BuilderParticipant.class; + } + + // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment + public org.eclipse.core.resources.IWorkspaceRoot bindIWorkspaceRootToInstance() { + return org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot(); + } + + // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment + public void configureBuilderPreferenceStoreInitializer(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("builderPreferenceInitializer")).to(org.eclipse.xtext.builder.preferences.BuilderPreferenceAccess.Initializer.class); + } + + // contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment + public Class bindILabelProvider() { + return hu.bme.mit.inf.dslreasoner.ui.labeling.AlloyLanguageLabelProvider.class; + } + + // contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment + public void configureResourceUIServiceLabelProvider(com.google.inject.Binder binder) { + binder.bind(org.eclipse.jface.viewers.ILabelProvider.class).annotatedWith(org.eclipse.xtext.ui.resource.ResourceServiceDescriptionLabelProvider.class).to(hu.bme.mit.inf.dslreasoner.ui.labeling.AlloyLanguageDescriptionLabelProvider.class); + } + + // contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment + public Class bindIOutlineTreeProvider() { + return hu.bme.mit.inf.dslreasoner.ui.outline.AlloyLanguageOutlineTreeProvider.class; + } + + // contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment + public Class bindIOutlineTreeStructureProvider() { + return hu.bme.mit.inf.dslreasoner.ui.outline.AlloyLanguageOutlineTreeProvider.class; + } + + // contributed by org.eclipse.xtext.ui.generator.quickfix.QuickfixProviderFragment + public Class bindIssueResolutionProvider() { + return hu.bme.mit.inf.dslreasoner.ui.quickfix.AlloyLanguageQuickfixProvider.class; + } + + // contributed by org.eclipse.xtext.ui.generator.contentAssist.ContentAssistFragment + public Class bindIContentProposalProvider() { + return hu.bme.mit.inf.dslreasoner.ui.contentassist.AlloyLanguageProposalProvider.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment + public Class bindContentAssistContext$Factory() { + return org.eclipse.xtext.ui.editor.contentassist.antlr.ParserBasedContentAssistContextFactory.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment + public Class bindIContentAssistParser() { + return hu.bme.mit.inf.dslreasoner.ui.contentassist.antlr.AlloyLanguageParser.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment + public void configureContentAssistLexerProvider(com.google.inject.Binder binder) { + binder.bind(hu.bme.mit.inf.dslreasoner.ui.contentassist.antlr.internal.InternalAlloyLanguageLexer.class).toProvider(org.eclipse.xtext.parser.antlr.LexerProvider.create(hu.bme.mit.inf.dslreasoner.ui.contentassist.antlr.internal.InternalAlloyLanguageLexer.class)); + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment + public void configureContentAssistLexer(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.CONTENT_ASSIST)).to(hu.bme.mit.inf.dslreasoner.ui.contentassist.antlr.internal.InternalAlloyLanguageLexer.class); + } + + // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment + public Class bindIRenameStrategy() { + return org.eclipse.xtext.ui.refactoring.impl.DefaultRenameStrategy.class; + } + + // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment + public Class bindIReferenceUpdater() { + return org.eclipse.xtext.ui.refactoring.impl.DefaultReferenceUpdater.class; + } + + // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment + public void configureIPreferenceStoreInitializer(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("RefactoringPreferences")).to(org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferences.Initializer.class); + } + + // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment + public Class bindIRenameRefactoringProvider() { + return org.eclipse.xtext.ui.refactoring.impl.DefaultRenameRefactoringProvider.class; + } + + // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment + public Class bindIRenameSupport$Factory() { + return org.eclipse.xtext.ui.refactoring.ui.DefaultRenameSupport.Factory.class; + } + + // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment + public Class bindPrefixMatcher() { + return org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher.class; + } + + // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment + public com.google.inject.Provider provideTemplatesLanguageConfiguration() { + return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getTemplatesLanguageConfigurationProvider(); + } + + // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment + public com.google.inject.Provider provideLanguageRegistry() { + return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getLanguageRegistry(); + } + + // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment + @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class bindLanguageRegistrar() { + return org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar.class; + } + + // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment + public Class bindXtextTemplatePreferencePage() { + return org.eclipse.xtext.ui.codetemplates.ui.preferences.AdvancedTemplatesPreferencePage.class; + } + + // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment + public Class bindIPartialContentAssistParser() { + return hu.bme.mit.inf.dslreasoner.ui.contentassist.antlr.PartialAlloyLanguageContentAssistParser.class; + } + + // contributed by org.eclipse.xtext.ui.generator.compare.CompareFragment + public Class bindIViewerCreator() { + return org.eclipse.xtext.ui.compare.DefaultViewerCreator.class; + } + + // contributed by org.eclipse.xtext.ui.generator.compare.CompareFragment + public void configureCompareViewerTitle(com.google.inject.Binder binder) { + binder.bind(String.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.UIBindings.COMPARE_VIEWER_TITLE)).toInstance("AlloyLanguage Compare"); + } + + +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/AlloyLanguageExecutableExtensionFactory.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/AlloyLanguageExecutableExtensionFactory.java new file mode 100644 index 00000000..c62a1aa1 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/AlloyLanguageExecutableExtensionFactory.java @@ -0,0 +1,29 @@ +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner.ui; + +import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory; +import org.osgi.framework.Bundle; + +import com.google.inject.Injector; + +import hu.bme.mit.inf.dslreasoner.ui.internal.AlloyLanguageActivator; + +/** + * This class was generated. Customizations should only happen in a newly + * introduced subclass. + */ +public class AlloyLanguageExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory { + + @Override + protected Bundle getBundle() { + return AlloyLanguageActivator.getInstance().getBundle(); + } + + @Override + protected Injector getInjector() { + return AlloyLanguageActivator.getInstance().getInjector(AlloyLanguageActivator.HU_BME_MIT_INF_DSLREASONER_ALLOYLANGUAGE); + } + +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/AbstractAlloyLanguageProposalProvider.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/AbstractAlloyLanguageProposalProvider.java new file mode 100644 index 00000000..17b08a58 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/AbstractAlloyLanguageProposalProvider.java @@ -0,0 +1,326 @@ +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner.ui.contentassist; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.*; +import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor; +import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext; + +/** + * Represents a generated, default implementation of superclass {@link org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider}. + * Methods are dynamically dispatched on the first parameter, i.e., you can override them + * with a more concrete subtype. + */ +@SuppressWarnings("all") +public class AbstractAlloyLanguageProposalProvider extends org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider { + + public void completeALSDocument_EnumDeclarations(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSDocument_SignatureBodies(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSDocument_FunctionDefinitions(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSDocument_RelationDefinitions(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSDocument_FactDeclarations(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSDocument_RunCommand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSEnumDeclaration_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSEnumDeclaration_Literal(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSEnumLiteral_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSSignatureDeclaration_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSSignatureBody_Multiplicity(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSSignatureBody_Abstract(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeALSSignatureBody_Declarations(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSSignatureBody_Supertype(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeALSSignatureBody_Superset(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeALSSignatureBody_Fields(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSFieldDeclaration_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSFieldDeclaration_Multiplicity(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSFieldDeclaration_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSFunctionDefinition_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSFunctionDefinition_Variables(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSFunctionDefinition_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSFunctionDefinition_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSRelationDefinition_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSRelationDefinition_Variables(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSRelationDefinition_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSFactDeclaration_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSFactDeclaration_Term(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSQuantified_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSQuantified_Disj(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeALSQuantified_Variables(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSQuantified_Expression(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSOr_RightOperand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSIff_RightOperand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSImpl_RightOperand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSImpl_ElseOperand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSAnd_RightOperand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSComparison_RightOperand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSOverride_RightOperand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSRangeRestrictionRight_Filter(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSRangeRestrictionLeft_Relation(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSJoin_RightOperand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSMinus_RightOperand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSPlus_RightOperand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSIntersection_RightOperand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSDirectProduct_LeftMultiplicit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSDirectProduct_RightMultiplicit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSDirectProduct_RightOperand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSPreficed_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSPreficed_Variables(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSPreficed_Expression(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSPreficed_ReferredDefinition(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeALSPreficed_ReferredNumericOperator(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSPreficed_Params(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSVariableDeclaration_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSVariableDeclaration_Range(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSBasicRelationTerm_Referred(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeALSBasicRelationTerm_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSRunCommand_TypeScopes(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSSigScope_Exactly(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void completeALSSigScope_Number(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSSigScope_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor); + } + public void completeALSIntScope_Number(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + public void completeALSStringScope_Number(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } + + public void complete_ALSDocument(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSMultiplicity(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSRelationDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSTypeDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSEnumDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSEnumLiteral(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSSignatureDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSSignatureBody(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSFieldDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSDefinition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSFunctionDefinition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSRelationDefinition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSFactDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSTerm(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSQuantified(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSOr(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSIff(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSImpl(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSAnd(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSComparison(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSOverride(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSRangeRestrictionRight(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSRangeRestrictionLeft(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSJoin(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSMinus(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSPlus(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSIntersection(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSDirectProduct(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSPreficed(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSNumericOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSVariableDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSBasicRelationTerm(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSRunCommand(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSTypeScope(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSSigScope(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSIntScope(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } + public void complete_ALSStringScope(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/AlloyLanguageParser.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/AlloyLanguageParser.java new file mode 100644 index 00000000..76a5f4b1 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/AlloyLanguageParser.java @@ -0,0 +1,247 @@ +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner.ui.contentassist.antlr; + +import java.util.Collection; +import java.util.Map; +import java.util.HashMap; + +import org.antlr.runtime.RecognitionException; +import org.eclipse.xtext.AbstractElement; +import org.eclipse.xtext.ui.editor.contentassist.antlr.AbstractContentAssistParser; +import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement; +import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser; + +import com.google.inject.Inject; + +import hu.bme.mit.inf.dslreasoner.services.AlloyLanguageGrammarAccess; + +public class AlloyLanguageParser extends AbstractContentAssistParser { + + @Inject + private AlloyLanguageGrammarAccess grammarAccess; + + private Map nameMappings; + + @Override + protected hu.bme.mit.inf.dslreasoner.ui.contentassist.antlr.internal.InternalAlloyLanguageParser createParser() { + hu.bme.mit.inf.dslreasoner.ui.contentassist.antlr.internal.InternalAlloyLanguageParser result = new hu.bme.mit.inf.dslreasoner.ui.contentassist.antlr.internal.InternalAlloyLanguageParser(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.getALSDocumentAccess().getAlternatives_0(), "rule__ALSDocument__Alternatives_0"); + put(grammarAccess.getALSRelationDeclarationAccess().getAlternatives(), "rule__ALSRelationDeclaration__Alternatives"); + put(grammarAccess.getALSTypeDeclarationAccess().getAlternatives(), "rule__ALSTypeDeclaration__Alternatives"); + put(grammarAccess.getALSSignatureBodyAccess().getAlternatives_4(), "rule__ALSSignatureBody__Alternatives_4"); + put(grammarAccess.getALSDefinitionAccess().getAlternatives(), "rule__ALSDefinition__Alternatives"); + put(grammarAccess.getALSQuantifiedAccess().getAlternatives(), "rule__ALSQuantified__Alternatives"); + put(grammarAccess.getALSOrAccess().getAlternatives_1_1(), "rule__ALSOr__Alternatives_1_1"); + put(grammarAccess.getALSIffAccess().getAlternatives_1_1(), "rule__ALSIff__Alternatives_1_1"); + put(grammarAccess.getALSImplAccess().getAlternatives_1_1(), "rule__ALSImpl__Alternatives_1_1"); + put(grammarAccess.getALSAndAccess().getAlternatives_1_1(), "rule__ALSAnd__Alternatives_1_1"); + put(grammarAccess.getALSComparisonAccess().getAlternatives_1_0(), "rule__ALSComparison__Alternatives_1_0"); + put(grammarAccess.getALSPreficedAccess().getAlternatives(), "rule__ALSPreficed__Alternatives"); + put(grammarAccess.getALSPreficedAccess().getAlternatives_0_1_0(), "rule__ALSPreficed__Alternatives_0_1_0"); + put(grammarAccess.getALSPreficedAccess().getAlternatives_7_1(), "rule__ALSPreficed__Alternatives_7_1"); + put(grammarAccess.getALSBasicRelationTermAccess().getAlternatives(), "rule__ALSBasicRelationTerm__Alternatives"); + put(grammarAccess.getALSTypeScopeAccess().getAlternatives(), "rule__ALSTypeScope__Alternatives"); + put(grammarAccess.getALSMultiplicityAccess().getAlternatives(), "rule__ALSMultiplicity__Alternatives"); + put(grammarAccess.getALSNumericOperatorAccess().getAlternatives(), "rule__ALSNumericOperator__Alternatives"); + put(grammarAccess.getALSDocumentAccess().getGroup(), "rule__ALSDocument__Group__0"); + put(grammarAccess.getALSEnumDeclarationAccess().getGroup(), "rule__ALSEnumDeclaration__Group__0"); + put(grammarAccess.getALSEnumDeclarationAccess().getGroup_4(), "rule__ALSEnumDeclaration__Group_4__0"); + put(grammarAccess.getALSSignatureBodyAccess().getGroup(), "rule__ALSSignatureBody__Group__0"); + put(grammarAccess.getALSSignatureBodyAccess().getGroup_3(), "rule__ALSSignatureBody__Group_3__0"); + put(grammarAccess.getALSSignatureBodyAccess().getGroup_4_0(), "rule__ALSSignatureBody__Group_4_0__0"); + put(grammarAccess.getALSSignatureBodyAccess().getGroup_4_1(), "rule__ALSSignatureBody__Group_4_1__0"); + put(grammarAccess.getALSSignatureBodyAccess().getGroup_4_1_2(), "rule__ALSSignatureBody__Group_4_1_2__0"); + put(grammarAccess.getALSSignatureBodyAccess().getGroup_6(), "rule__ALSSignatureBody__Group_6__0"); + put(grammarAccess.getALSSignatureBodyAccess().getGroup_6_1(), "rule__ALSSignatureBody__Group_6_1__0"); + put(grammarAccess.getALSFieldDeclarationAccess().getGroup(), "rule__ALSFieldDeclaration__Group__0"); + put(grammarAccess.getALSFunctionDefinitionAccess().getGroup(), "rule__ALSFunctionDefinition__Group__0"); + put(grammarAccess.getALSFunctionDefinitionAccess().getGroup_4(), "rule__ALSFunctionDefinition__Group_4__0"); + put(grammarAccess.getALSRelationDefinitionAccess().getGroup(), "rule__ALSRelationDefinition__Group__0"); + put(grammarAccess.getALSRelationDefinitionAccess().getGroup_4(), "rule__ALSRelationDefinition__Group_4__0"); + put(grammarAccess.getALSFactDeclarationAccess().getGroup(), "rule__ALSFactDeclaration__Group__0"); + put(grammarAccess.getALSQuantifiedAccess().getGroup_0(), "rule__ALSQuantified__Group_0__0"); + put(grammarAccess.getALSQuantifiedAccess().getGroup_0_4(), "rule__ALSQuantified__Group_0_4__0"); + put(grammarAccess.getALSOrAccess().getGroup(), "rule__ALSOr__Group__0"); + put(grammarAccess.getALSOrAccess().getGroup_1(), "rule__ALSOr__Group_1__0"); + put(grammarAccess.getALSIffAccess().getGroup(), "rule__ALSIff__Group__0"); + put(grammarAccess.getALSIffAccess().getGroup_1(), "rule__ALSIff__Group_1__0"); + put(grammarAccess.getALSImplAccess().getGroup(), "rule__ALSImpl__Group__0"); + put(grammarAccess.getALSImplAccess().getGroup_1(), "rule__ALSImpl__Group_1__0"); + put(grammarAccess.getALSImplAccess().getGroup_1_3(), "rule__ALSImpl__Group_1_3__0"); + put(grammarAccess.getALSAndAccess().getGroup(), "rule__ALSAnd__Group__0"); + put(grammarAccess.getALSAndAccess().getGroup_1(), "rule__ALSAnd__Group_1__0"); + put(grammarAccess.getALSComparisonAccess().getGroup(), "rule__ALSComparison__Group__0"); + put(grammarAccess.getALSComparisonAccess().getGroup_1(), "rule__ALSComparison__Group_1__0"); + put(grammarAccess.getALSComparisonAccess().getGroup_1_0_0(), "rule__ALSComparison__Group_1_0_0__0"); + put(grammarAccess.getALSComparisonAccess().getGroup_1_0_1(), "rule__ALSComparison__Group_1_0_1__0"); + put(grammarAccess.getALSComparisonAccess().getGroup_1_0_2(), "rule__ALSComparison__Group_1_0_2__0"); + put(grammarAccess.getALSComparisonAccess().getGroup_1_0_3(), "rule__ALSComparison__Group_1_0_3__0"); + put(grammarAccess.getALSComparisonAccess().getGroup_1_0_4(), "rule__ALSComparison__Group_1_0_4__0"); + put(grammarAccess.getALSComparisonAccess().getGroup_1_0_5(), "rule__ALSComparison__Group_1_0_5__0"); + put(grammarAccess.getALSComparisonAccess().getGroup_1_0_6(), "rule__ALSComparison__Group_1_0_6__0"); + put(grammarAccess.getALSOverrideAccess().getGroup(), "rule__ALSOverride__Group__0"); + put(grammarAccess.getALSOverrideAccess().getGroup_1(), "rule__ALSOverride__Group_1__0"); + put(grammarAccess.getALSRangeRestrictionRightAccess().getGroup(), "rule__ALSRangeRestrictionRight__Group__0"); + put(grammarAccess.getALSRangeRestrictionRightAccess().getGroup_1(), "rule__ALSRangeRestrictionRight__Group_1__0"); + put(grammarAccess.getALSRangeRestrictionLeftAccess().getGroup(), "rule__ALSRangeRestrictionLeft__Group__0"); + put(grammarAccess.getALSRangeRestrictionLeftAccess().getGroup_1(), "rule__ALSRangeRestrictionLeft__Group_1__0"); + put(grammarAccess.getALSJoinAccess().getGroup(), "rule__ALSJoin__Group__0"); + put(grammarAccess.getALSJoinAccess().getGroup_1(), "rule__ALSJoin__Group_1__0"); + put(grammarAccess.getALSMinusAccess().getGroup(), "rule__ALSMinus__Group__0"); + put(grammarAccess.getALSMinusAccess().getGroup_1(), "rule__ALSMinus__Group_1__0"); + put(grammarAccess.getALSPlusAccess().getGroup(), "rule__ALSPlus__Group__0"); + put(grammarAccess.getALSPlusAccess().getGroup_1(), "rule__ALSPlus__Group_1__0"); + put(grammarAccess.getALSIntersectionAccess().getGroup(), "rule__ALSIntersection__Group__0"); + put(grammarAccess.getALSIntersectionAccess().getGroup_1(), "rule__ALSIntersection__Group_1__0"); + put(grammarAccess.getALSDirectProductAccess().getGroup(), "rule__ALSDirectProduct__Group__0"); + put(grammarAccess.getALSDirectProductAccess().getGroup_1(), "rule__ALSDirectProduct__Group_1__0"); + put(grammarAccess.getALSPreficedAccess().getGroup_0(), "rule__ALSPreficed__Group_0__0"); + put(grammarAccess.getALSPreficedAccess().getGroup_0_1(), "rule__ALSPreficed__Group_0_1__0"); + put(grammarAccess.getALSPreficedAccess().getGroup_1(), "rule__ALSPreficed__Group_1__0"); + put(grammarAccess.getALSPreficedAccess().getGroup_2(), "rule__ALSPreficed__Group_2__0"); + put(grammarAccess.getALSPreficedAccess().getGroup_3(), "rule__ALSPreficed__Group_3__0"); + put(grammarAccess.getALSPreficedAccess().getGroup_4(), "rule__ALSPreficed__Group_4__0"); + put(grammarAccess.getALSPreficedAccess().getGroup_5(), "rule__ALSPreficed__Group_5__0"); + put(grammarAccess.getALSPreficedAccess().getGroup_6(), "rule__ALSPreficed__Group_6__0"); + put(grammarAccess.getALSPreficedAccess().getGroup_6_3(), "rule__ALSPreficed__Group_6_3__0"); + put(grammarAccess.getALSPreficedAccess().getGroup_7(), "rule__ALSPreficed__Group_7__0"); + put(grammarAccess.getALSPreficedAccess().getGroup_7_4(), "rule__ALSPreficed__Group_7_4__0"); + put(grammarAccess.getALSVariableDeclarationAccess().getGroup(), "rule__ALSVariableDeclaration__Group__0"); + put(grammarAccess.getALSBasicRelationTermAccess().getGroup_0(), "rule__ALSBasicRelationTerm__Group_0__0"); + put(grammarAccess.getALSBasicRelationTermAccess().getGroup_1(), "rule__ALSBasicRelationTerm__Group_1__0"); + put(grammarAccess.getALSBasicRelationTermAccess().getGroup_2(), "rule__ALSBasicRelationTerm__Group_2__0"); + put(grammarAccess.getALSBasicRelationTermAccess().getGroup_3(), "rule__ALSBasicRelationTerm__Group_3__0"); + put(grammarAccess.getALSBasicRelationTermAccess().getGroup_4(), "rule__ALSBasicRelationTerm__Group_4__0"); + put(grammarAccess.getALSBasicRelationTermAccess().getGroup_5(), "rule__ALSBasicRelationTerm__Group_5__0"); + put(grammarAccess.getALSBasicRelationTermAccess().getGroup_6(), "rule__ALSBasicRelationTerm__Group_6__0"); + put(grammarAccess.getALSBasicRelationTermAccess().getGroup_7(), "rule__ALSBasicRelationTerm__Group_7__0"); + put(grammarAccess.getALSBasicRelationTermAccess().getGroup_8(), "rule__ALSBasicRelationTerm__Group_8__0"); + put(grammarAccess.getALSRunCommandAccess().getGroup(), "rule__ALSRunCommand__Group__0"); + put(grammarAccess.getALSRunCommandAccess().getGroup_4(), "rule__ALSRunCommand__Group_4__0"); + put(grammarAccess.getALSRunCommandAccess().getGroup_4_2(), "rule__ALSRunCommand__Group_4_2__0"); + put(grammarAccess.getALSSigScopeAccess().getGroup(), "rule__ALSSigScope__Group__0"); + put(grammarAccess.getALSIntScopeAccess().getGroup(), "rule__ALSIntScope__Group__0"); + put(grammarAccess.getALSStringScopeAccess().getGroup(), "rule__ALSStringScope__Group__0"); + put(grammarAccess.getALSDocumentAccess().getEnumDeclarationsAssignment_0_0(), "rule__ALSDocument__EnumDeclarationsAssignment_0_0"); + put(grammarAccess.getALSDocumentAccess().getSignatureBodiesAssignment_0_1(), "rule__ALSDocument__SignatureBodiesAssignment_0_1"); + put(grammarAccess.getALSDocumentAccess().getFunctionDefinitionsAssignment_0_2(), "rule__ALSDocument__FunctionDefinitionsAssignment_0_2"); + put(grammarAccess.getALSDocumentAccess().getRelationDefinitionsAssignment_0_3(), "rule__ALSDocument__RelationDefinitionsAssignment_0_3"); + put(grammarAccess.getALSDocumentAccess().getFactDeclarationsAssignment_0_4(), "rule__ALSDocument__FactDeclarationsAssignment_0_4"); + put(grammarAccess.getALSDocumentAccess().getRunCommandAssignment_1(), "rule__ALSDocument__RunCommandAssignment_1"); + put(grammarAccess.getALSEnumDeclarationAccess().getNameAssignment_1(), "rule__ALSEnumDeclaration__NameAssignment_1"); + put(grammarAccess.getALSEnumDeclarationAccess().getLiteralAssignment_3(), "rule__ALSEnumDeclaration__LiteralAssignment_3"); + put(grammarAccess.getALSEnumDeclarationAccess().getLiteralAssignment_4_1(), "rule__ALSEnumDeclaration__LiteralAssignment_4_1"); + put(grammarAccess.getALSEnumLiteralAccess().getNameAssignment(), "rule__ALSEnumLiteral__NameAssignment"); + put(grammarAccess.getALSSignatureDeclarationAccess().getNameAssignment(), "rule__ALSSignatureDeclaration__NameAssignment"); + put(grammarAccess.getALSSignatureBodyAccess().getMultiplicityAssignment_0_0(), "rule__ALSSignatureBody__MultiplicityAssignment_0_0"); + put(grammarAccess.getALSSignatureBodyAccess().getAbstractAssignment_0_1(), "rule__ALSSignatureBody__AbstractAssignment_0_1"); + put(grammarAccess.getALSSignatureBodyAccess().getDeclarationsAssignment_2(), "rule__ALSSignatureBody__DeclarationsAssignment_2"); + put(grammarAccess.getALSSignatureBodyAccess().getDeclarationsAssignment_3_1(), "rule__ALSSignatureBody__DeclarationsAssignment_3_1"); + put(grammarAccess.getALSSignatureBodyAccess().getSupertypeAssignment_4_0_1(), "rule__ALSSignatureBody__SupertypeAssignment_4_0_1"); + put(grammarAccess.getALSSignatureBodyAccess().getSupersetAssignment_4_1_1(), "rule__ALSSignatureBody__SupersetAssignment_4_1_1"); + put(grammarAccess.getALSSignatureBodyAccess().getSupersetAssignment_4_1_2_1(), "rule__ALSSignatureBody__SupersetAssignment_4_1_2_1"); + put(grammarAccess.getALSSignatureBodyAccess().getFieldsAssignment_6_0(), "rule__ALSSignatureBody__FieldsAssignment_6_0"); + put(grammarAccess.getALSSignatureBodyAccess().getFieldsAssignment_6_1_1(), "rule__ALSSignatureBody__FieldsAssignment_6_1_1"); + put(grammarAccess.getALSFieldDeclarationAccess().getNameAssignment_0(), "rule__ALSFieldDeclaration__NameAssignment_0"); + put(grammarAccess.getALSFieldDeclarationAccess().getMultiplicityAssignment_2(), "rule__ALSFieldDeclaration__MultiplicityAssignment_2"); + put(grammarAccess.getALSFieldDeclarationAccess().getTypeAssignment_3(), "rule__ALSFieldDeclaration__TypeAssignment_3"); + put(grammarAccess.getALSFunctionDefinitionAccess().getNameAssignment_1(), "rule__ALSFunctionDefinition__NameAssignment_1"); + put(grammarAccess.getALSFunctionDefinitionAccess().getVariablesAssignment_3(), "rule__ALSFunctionDefinition__VariablesAssignment_3"); + put(grammarAccess.getALSFunctionDefinitionAccess().getVariablesAssignment_4_1(), "rule__ALSFunctionDefinition__VariablesAssignment_4_1"); + put(grammarAccess.getALSFunctionDefinitionAccess().getTypeAssignment_7(), "rule__ALSFunctionDefinition__TypeAssignment_7"); + put(grammarAccess.getALSFunctionDefinitionAccess().getValueAssignment_9(), "rule__ALSFunctionDefinition__ValueAssignment_9"); + put(grammarAccess.getALSRelationDefinitionAccess().getNameAssignment_1(), "rule__ALSRelationDefinition__NameAssignment_1"); + put(grammarAccess.getALSRelationDefinitionAccess().getVariablesAssignment_3(), "rule__ALSRelationDefinition__VariablesAssignment_3"); + put(grammarAccess.getALSRelationDefinitionAccess().getVariablesAssignment_4_1(), "rule__ALSRelationDefinition__VariablesAssignment_4_1"); + put(grammarAccess.getALSRelationDefinitionAccess().getValueAssignment_7(), "rule__ALSRelationDefinition__ValueAssignment_7"); + put(grammarAccess.getALSFactDeclarationAccess().getNameAssignment_2(), "rule__ALSFactDeclaration__NameAssignment_2"); + put(grammarAccess.getALSFactDeclarationAccess().getTermAssignment_4(), "rule__ALSFactDeclaration__TermAssignment_4"); + put(grammarAccess.getALSQuantifiedAccess().getTypeAssignment_0_1(), "rule__ALSQuantified__TypeAssignment_0_1"); + put(grammarAccess.getALSQuantifiedAccess().getDisjAssignment_0_2(), "rule__ALSQuantified__DisjAssignment_0_2"); + put(grammarAccess.getALSQuantifiedAccess().getVariablesAssignment_0_3(), "rule__ALSQuantified__VariablesAssignment_0_3"); + put(grammarAccess.getALSQuantifiedAccess().getVariablesAssignment_0_4_1(), "rule__ALSQuantified__VariablesAssignment_0_4_1"); + put(grammarAccess.getALSQuantifiedAccess().getExpressionAssignment_0_6(), "rule__ALSQuantified__ExpressionAssignment_0_6"); + put(grammarAccess.getALSOrAccess().getRightOperandAssignment_1_2(), "rule__ALSOr__RightOperandAssignment_1_2"); + put(grammarAccess.getALSIffAccess().getRightOperandAssignment_1_2(), "rule__ALSIff__RightOperandAssignment_1_2"); + put(grammarAccess.getALSImplAccess().getRightOperandAssignment_1_2(), "rule__ALSImpl__RightOperandAssignment_1_2"); + put(grammarAccess.getALSImplAccess().getElseOperandAssignment_1_3_1(), "rule__ALSImpl__ElseOperandAssignment_1_3_1"); + put(grammarAccess.getALSAndAccess().getRightOperandAssignment_1_2(), "rule__ALSAnd__RightOperandAssignment_1_2"); + put(grammarAccess.getALSComparisonAccess().getRightOperandAssignment_1_1(), "rule__ALSComparison__RightOperandAssignment_1_1"); + put(grammarAccess.getALSOverrideAccess().getRightOperandAssignment_1_2(), "rule__ALSOverride__RightOperandAssignment_1_2"); + put(grammarAccess.getALSRangeRestrictionRightAccess().getFilterAssignment_1_2(), "rule__ALSRangeRestrictionRight__FilterAssignment_1_2"); + put(grammarAccess.getALSRangeRestrictionLeftAccess().getRelationAssignment_1_2(), "rule__ALSRangeRestrictionLeft__RelationAssignment_1_2"); + put(grammarAccess.getALSJoinAccess().getRightOperandAssignment_1_2(), "rule__ALSJoin__RightOperandAssignment_1_2"); + put(grammarAccess.getALSMinusAccess().getRightOperandAssignment_1_2(), "rule__ALSMinus__RightOperandAssignment_1_2"); + put(grammarAccess.getALSPlusAccess().getRightOperandAssignment_1_2(), "rule__ALSPlus__RightOperandAssignment_1_2"); + put(grammarAccess.getALSIntersectionAccess().getRightOperandAssignment_1_2(), "rule__ALSIntersection__RightOperandAssignment_1_2"); + put(grammarAccess.getALSDirectProductAccess().getLeftMultiplicitAssignment_1_1(), "rule__ALSDirectProduct__LeftMultiplicitAssignment_1_1"); + put(grammarAccess.getALSDirectProductAccess().getRightMultiplicitAssignment_1_3(), "rule__ALSDirectProduct__RightMultiplicitAssignment_1_3"); + put(grammarAccess.getALSDirectProductAccess().getRightOperandAssignment_1_4(), "rule__ALSDirectProduct__RightOperandAssignment_1_4"); + put(grammarAccess.getALSPreficedAccess().getOperandAssignment_0_2(), "rule__ALSPreficed__OperandAssignment_0_2"); + put(grammarAccess.getALSPreficedAccess().getOperandAssignment_1_2(), "rule__ALSPreficed__OperandAssignment_1_2"); + put(grammarAccess.getALSPreficedAccess().getOperandAssignment_2_2(), "rule__ALSPreficed__OperandAssignment_2_2"); + put(grammarAccess.getALSPreficedAccess().getOperandAssignment_3_2(), "rule__ALSPreficed__OperandAssignment_3_2"); + put(grammarAccess.getALSPreficedAccess().getOperandAssignment_4_2(), "rule__ALSPreficed__OperandAssignment_4_2"); + put(grammarAccess.getALSPreficedAccess().getOperandAssignment_5_2(), "rule__ALSPreficed__OperandAssignment_5_2"); + put(grammarAccess.getALSPreficedAccess().getVariablesAssignment_6_2(), "rule__ALSPreficed__VariablesAssignment_6_2"); + put(grammarAccess.getALSPreficedAccess().getVariablesAssignment_6_3_1(), "rule__ALSPreficed__VariablesAssignment_6_3_1"); + put(grammarAccess.getALSPreficedAccess().getExpressionAssignment_6_5(), "rule__ALSPreficed__ExpressionAssignment_6_5"); + put(grammarAccess.getALSPreficedAccess().getReferredDefinitionAssignment_7_1_0(), "rule__ALSPreficed__ReferredDefinitionAssignment_7_1_0"); + put(grammarAccess.getALSPreficedAccess().getReferredNumericOperatorAssignment_7_1_1(), "rule__ALSPreficed__ReferredNumericOperatorAssignment_7_1_1"); + put(grammarAccess.getALSPreficedAccess().getParamsAssignment_7_3(), "rule__ALSPreficed__ParamsAssignment_7_3"); + put(grammarAccess.getALSPreficedAccess().getParamsAssignment_7_4_1(), "rule__ALSPreficed__ParamsAssignment_7_4_1"); + put(grammarAccess.getALSVariableDeclarationAccess().getNameAssignment_0(), "rule__ALSVariableDeclaration__NameAssignment_0"); + put(grammarAccess.getALSVariableDeclarationAccess().getRangeAssignment_2(), "rule__ALSVariableDeclaration__RangeAssignment_2"); + put(grammarAccess.getALSBasicRelationTermAccess().getReferredAssignment_5_1(), "rule__ALSBasicRelationTerm__ReferredAssignment_5_1"); + put(grammarAccess.getALSBasicRelationTermAccess().getValueAssignment_6_1(), "rule__ALSBasicRelationTerm__ValueAssignment_6_1"); + put(grammarAccess.getALSBasicRelationTermAccess().getValueAssignment_7_1(), "rule__ALSBasicRelationTerm__ValueAssignment_7_1"); + put(grammarAccess.getALSRunCommandAccess().getTypeScopesAssignment_4_1(), "rule__ALSRunCommand__TypeScopesAssignment_4_1"); + put(grammarAccess.getALSRunCommandAccess().getTypeScopesAssignment_4_2_1(), "rule__ALSRunCommand__TypeScopesAssignment_4_2_1"); + put(grammarAccess.getALSSigScopeAccess().getExactlyAssignment_0(), "rule__ALSSigScope__ExactlyAssignment_0"); + put(grammarAccess.getALSSigScopeAccess().getNumberAssignment_1(), "rule__ALSSigScope__NumberAssignment_1"); + put(grammarAccess.getALSSigScopeAccess().getTypeAssignment_2(), "rule__ALSSigScope__TypeAssignment_2"); + put(grammarAccess.getALSIntScopeAccess().getNumberAssignment_0(), "rule__ALSIntScope__NumberAssignment_0"); + put(grammarAccess.getALSStringScopeAccess().getNumberAssignment_1(), "rule__ALSStringScope__NumberAssignment_1"); + put(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), "rule__ALSSignatureBody__UnorderedGroup_0"); + } + }; + } + return nameMappings.get(element); + } + + @Override + protected Collection getFollowElements(AbstractInternalContentAssistParser parser) { + try { + hu.bme.mit.inf.dslreasoner.ui.contentassist.antlr.internal.InternalAlloyLanguageParser typedParser = (hu.bme.mit.inf.dslreasoner.ui.contentassist.antlr.internal.InternalAlloyLanguageParser) parser; + typedParser.entryRuleALSDocument(); + return typedParser.getFollowElements(); + } catch(RecognitionException ex) { + throw new RuntimeException(ex); + } + } + + @Override + protected String[] getInitialHiddenTokens() { + return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" }; + } + + public AlloyLanguageGrammarAccess getGrammarAccess() { + return this.grammarAccess; + } + + public void setGrammarAccess(AlloyLanguageGrammarAccess grammarAccess) { + this.grammarAccess = grammarAccess; + } +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/PartialAlloyLanguageContentAssistParser.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/PartialAlloyLanguageContentAssistParser.java new file mode 100644 index 00000000..a0c9d257 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/PartialAlloyLanguageContentAssistParser.java @@ -0,0 +1,38 @@ +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner.ui.contentassist.antlr; + +import java.util.Collection; +import java.util.Collections; + +import org.eclipse.xtext.AbstractRule; +import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser; +import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement; +import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser; +import org.eclipse.xtext.util.PolymorphicDispatcher; + +/* + * Template CodetemplatesGeneratorFragment.xpt + */ +public class PartialAlloyLanguageContentAssistParser extends AlloyLanguageParser implements IPartialContentAssistParser { + + 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/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/internal/InternalAlloyLanguage.g b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/internal/InternalAlloyLanguage.g new file mode 100644 index 00000000..b374de9a --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/internal/InternalAlloyLanguage.g @@ -0,0 +1,10392 @@ +/* + * generated by Xtext + */ +grammar InternalAlloyLanguage; + +options { + superClass=AbstractInternalContentAssistParser; + backtrack=true; + +} + +@lexer::header { +package hu.bme.mit.inf.dslreasoner.ui.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.ui.editor.contentassist.antlr.internal.Lexer; +} + +@parser::header { +package hu.bme.mit.inf.dslreasoner.ui.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.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser; +import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA; +import hu.bme.mit.inf.dslreasoner.services.AlloyLanguageGrammarAccess; + +} + +@parser::members { + + private AlloyLanguageGrammarAccess grammarAccess; + + public void setGrammarAccess(AlloyLanguageGrammarAccess grammarAccess) { + this.grammarAccess = grammarAccess; + } + + @Override + protected Grammar getGrammar() { + return grammarAccess.getGrammar(); + } + + @Override + protected String getValueForTokenName(String tokenName) { + return tokenName; + } + +} + + + + +// Entry rule entryRuleALSDocument +entryRuleALSDocument +: +{ before(grammarAccess.getALSDocumentRule()); } + ruleALSDocument +{ after(grammarAccess.getALSDocumentRule()); } + EOF +; + +// Rule ALSDocument +ruleALSDocument + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSDocumentAccess().getGroup()); } +(rule__ALSDocument__Group__0) +{ after(grammarAccess.getALSDocumentAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSID +entryRuleALSID +: +{ before(grammarAccess.getALSIDRule()); } + ruleALSID +{ after(grammarAccess.getALSIDRule()); } + EOF +; + +// Rule ALSID +ruleALSID + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSIDAccess().getIDTerminalRuleCall()); } + RULE_ID +{ after(grammarAccess.getALSIDAccess().getIDTerminalRuleCall()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + +// Entry rule entryRuleALSTypeDeclaration +entryRuleALSTypeDeclaration +: +{ before(grammarAccess.getALSTypeDeclarationRule()); } + ruleALSTypeDeclaration +{ after(grammarAccess.getALSTypeDeclarationRule()); } + EOF +; + +// Rule ALSTypeDeclaration +ruleALSTypeDeclaration + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSTypeDeclarationAccess().getAlternatives()); } +(rule__ALSTypeDeclaration__Alternatives) +{ after(grammarAccess.getALSTypeDeclarationAccess().getAlternatives()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSEnumDeclaration +entryRuleALSEnumDeclaration +: +{ before(grammarAccess.getALSEnumDeclarationRule()); } + ruleALSEnumDeclaration +{ after(grammarAccess.getALSEnumDeclarationRule()); } + EOF +; + +// Rule ALSEnumDeclaration +ruleALSEnumDeclaration + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSEnumDeclarationAccess().getGroup()); } +(rule__ALSEnumDeclaration__Group__0) +{ after(grammarAccess.getALSEnumDeclarationAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSEnumLiteral +entryRuleALSEnumLiteral +: +{ before(grammarAccess.getALSEnumLiteralRule()); } + ruleALSEnumLiteral +{ after(grammarAccess.getALSEnumLiteralRule()); } + EOF +; + +// Rule ALSEnumLiteral +ruleALSEnumLiteral + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSEnumLiteralAccess().getNameAssignment()); } +(rule__ALSEnumLiteral__NameAssignment) +{ after(grammarAccess.getALSEnumLiteralAccess().getNameAssignment()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSSignatureDeclaration +entryRuleALSSignatureDeclaration +: +{ before(grammarAccess.getALSSignatureDeclarationRule()); } + ruleALSSignatureDeclaration +{ after(grammarAccess.getALSSignatureDeclarationRule()); } + EOF +; + +// Rule ALSSignatureDeclaration +ruleALSSignatureDeclaration + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSSignatureDeclarationAccess().getNameAssignment()); } +(rule__ALSSignatureDeclaration__NameAssignment) +{ after(grammarAccess.getALSSignatureDeclarationAccess().getNameAssignment()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSSignatureBody +entryRuleALSSignatureBody +: +{ before(grammarAccess.getALSSignatureBodyRule()); } + ruleALSSignatureBody +{ after(grammarAccess.getALSSignatureBodyRule()); } + EOF +; + +// Rule ALSSignatureBody +ruleALSSignatureBody + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSSignatureBodyAccess().getGroup()); } +(rule__ALSSignatureBody__Group__0) +{ after(grammarAccess.getALSSignatureBodyAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSFieldDeclaration +entryRuleALSFieldDeclaration +: +{ before(grammarAccess.getALSFieldDeclarationRule()); } + ruleALSFieldDeclaration +{ after(grammarAccess.getALSFieldDeclarationRule()); } + EOF +; + +// Rule ALSFieldDeclaration +ruleALSFieldDeclaration + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSFieldDeclarationAccess().getGroup()); } +(rule__ALSFieldDeclaration__Group__0) +{ after(grammarAccess.getALSFieldDeclarationAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + +// Entry rule entryRuleALSFunctionDefinition +entryRuleALSFunctionDefinition +: +{ before(grammarAccess.getALSFunctionDefinitionRule()); } + ruleALSFunctionDefinition +{ after(grammarAccess.getALSFunctionDefinitionRule()); } + EOF +; + +// Rule ALSFunctionDefinition +ruleALSFunctionDefinition + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSFunctionDefinitionAccess().getGroup()); } +(rule__ALSFunctionDefinition__Group__0) +{ after(grammarAccess.getALSFunctionDefinitionAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSRelationDefinition +entryRuleALSRelationDefinition +: +{ before(grammarAccess.getALSRelationDefinitionRule()); } + ruleALSRelationDefinition +{ after(grammarAccess.getALSRelationDefinitionRule()); } + EOF +; + +// Rule ALSRelationDefinition +ruleALSRelationDefinition + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSRelationDefinitionAccess().getGroup()); } +(rule__ALSRelationDefinition__Group__0) +{ after(grammarAccess.getALSRelationDefinitionAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSFactDeclaration +entryRuleALSFactDeclaration +: +{ before(grammarAccess.getALSFactDeclarationRule()); } + ruleALSFactDeclaration +{ after(grammarAccess.getALSFactDeclarationRule()); } + EOF +; + +// Rule ALSFactDeclaration +ruleALSFactDeclaration + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSFactDeclarationAccess().getGroup()); } +(rule__ALSFactDeclaration__Group__0) +{ after(grammarAccess.getALSFactDeclarationAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSTerm +entryRuleALSTerm +: +{ before(grammarAccess.getALSTermRule()); } + ruleALSTerm +{ after(grammarAccess.getALSTermRule()); } + EOF +; + +// Rule ALSTerm +ruleALSTerm + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSTermAccess().getALSQuantifiedParserRuleCall()); } + ruleALSQuantified +{ after(grammarAccess.getALSTermAccess().getALSQuantifiedParserRuleCall()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSQuantified +entryRuleALSQuantified +: +{ before(grammarAccess.getALSQuantifiedRule()); } + ruleALSQuantified +{ after(grammarAccess.getALSQuantifiedRule()); } + EOF +; + +// Rule ALSQuantified +ruleALSQuantified + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSQuantifiedAccess().getAlternatives()); } +(rule__ALSQuantified__Alternatives) +{ after(grammarAccess.getALSQuantifiedAccess().getAlternatives()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSOr +entryRuleALSOr +: +{ before(grammarAccess.getALSOrRule()); } + ruleALSOr +{ after(grammarAccess.getALSOrRule()); } + EOF +; + +// Rule ALSOr +ruleALSOr + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSOrAccess().getGroup()); } +(rule__ALSOr__Group__0) +{ after(grammarAccess.getALSOrAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSIff +entryRuleALSIff +: +{ before(grammarAccess.getALSIffRule()); } + ruleALSIff +{ after(grammarAccess.getALSIffRule()); } + EOF +; + +// Rule ALSIff +ruleALSIff + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSIffAccess().getGroup()); } +(rule__ALSIff__Group__0) +{ after(grammarAccess.getALSIffAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSImpl +entryRuleALSImpl +: +{ before(grammarAccess.getALSImplRule()); } + ruleALSImpl +{ after(grammarAccess.getALSImplRule()); } + EOF +; + +// Rule ALSImpl +ruleALSImpl + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSImplAccess().getGroup()); } +(rule__ALSImpl__Group__0) +{ after(grammarAccess.getALSImplAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSAnd +entryRuleALSAnd +: +{ before(grammarAccess.getALSAndRule()); } + ruleALSAnd +{ after(grammarAccess.getALSAndRule()); } + EOF +; + +// Rule ALSAnd +ruleALSAnd + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSAndAccess().getGroup()); } +(rule__ALSAnd__Group__0) +{ after(grammarAccess.getALSAndAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSComparison +entryRuleALSComparison +: +{ before(grammarAccess.getALSComparisonRule()); } + ruleALSComparison +{ after(grammarAccess.getALSComparisonRule()); } + EOF +; + +// Rule ALSComparison +ruleALSComparison + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSComparisonAccess().getGroup()); } +(rule__ALSComparison__Group__0) +{ after(grammarAccess.getALSComparisonAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSOverride +entryRuleALSOverride +: +{ before(grammarAccess.getALSOverrideRule()); } + ruleALSOverride +{ after(grammarAccess.getALSOverrideRule()); } + EOF +; + +// Rule ALSOverride +ruleALSOverride + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSOverrideAccess().getGroup()); } +(rule__ALSOverride__Group__0) +{ after(grammarAccess.getALSOverrideAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSRangeRestrictionRight +entryRuleALSRangeRestrictionRight +: +{ before(grammarAccess.getALSRangeRestrictionRightRule()); } + ruleALSRangeRestrictionRight +{ after(grammarAccess.getALSRangeRestrictionRightRule()); } + EOF +; + +// Rule ALSRangeRestrictionRight +ruleALSRangeRestrictionRight + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSRangeRestrictionRightAccess().getGroup()); } +(rule__ALSRangeRestrictionRight__Group__0) +{ after(grammarAccess.getALSRangeRestrictionRightAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSRangeRestrictionLeft +entryRuleALSRangeRestrictionLeft +: +{ before(grammarAccess.getALSRangeRestrictionLeftRule()); } + ruleALSRangeRestrictionLeft +{ after(grammarAccess.getALSRangeRestrictionLeftRule()); } + EOF +; + +// Rule ALSRangeRestrictionLeft +ruleALSRangeRestrictionLeft + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSRangeRestrictionLeftAccess().getGroup()); } +(rule__ALSRangeRestrictionLeft__Group__0) +{ after(grammarAccess.getALSRangeRestrictionLeftAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSJoin +entryRuleALSJoin +: +{ before(grammarAccess.getALSJoinRule()); } + ruleALSJoin +{ after(grammarAccess.getALSJoinRule()); } + EOF +; + +// Rule ALSJoin +ruleALSJoin + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSJoinAccess().getGroup()); } +(rule__ALSJoin__Group__0) +{ after(grammarAccess.getALSJoinAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSMinus +entryRuleALSMinus +: +{ before(grammarAccess.getALSMinusRule()); } + ruleALSMinus +{ after(grammarAccess.getALSMinusRule()); } + EOF +; + +// Rule ALSMinus +ruleALSMinus + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSMinusAccess().getGroup()); } +(rule__ALSMinus__Group__0) +{ after(grammarAccess.getALSMinusAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSPlus +entryRuleALSPlus +: +{ before(grammarAccess.getALSPlusRule()); } + ruleALSPlus +{ after(grammarAccess.getALSPlusRule()); } + EOF +; + +// Rule ALSPlus +ruleALSPlus + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSPlusAccess().getGroup()); } +(rule__ALSPlus__Group__0) +{ after(grammarAccess.getALSPlusAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSIntersection +entryRuleALSIntersection +: +{ before(grammarAccess.getALSIntersectionRule()); } + ruleALSIntersection +{ after(grammarAccess.getALSIntersectionRule()); } + EOF +; + +// Rule ALSIntersection +ruleALSIntersection + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSIntersectionAccess().getGroup()); } +(rule__ALSIntersection__Group__0) +{ after(grammarAccess.getALSIntersectionAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSDirectProduct +entryRuleALSDirectProduct +: +{ before(grammarAccess.getALSDirectProductRule()); } + ruleALSDirectProduct +{ after(grammarAccess.getALSDirectProductRule()); } + EOF +; + +// Rule ALSDirectProduct +ruleALSDirectProduct + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSDirectProductAccess().getGroup()); } +(rule__ALSDirectProduct__Group__0) +{ after(grammarAccess.getALSDirectProductAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSPreficed +entryRuleALSPreficed +: +{ before(grammarAccess.getALSPreficedRule()); } + ruleALSPreficed +{ after(grammarAccess.getALSPreficedRule()); } + EOF +; + +// Rule ALSPreficed +ruleALSPreficed + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSPreficedAccess().getAlternatives()); } +(rule__ALSPreficed__Alternatives) +{ after(grammarAccess.getALSPreficedAccess().getAlternatives()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSVariableDeclaration +entryRuleALSVariableDeclaration +: +{ before(grammarAccess.getALSVariableDeclarationRule()); } + ruleALSVariableDeclaration +{ after(grammarAccess.getALSVariableDeclarationRule()); } + EOF +; + +// Rule ALSVariableDeclaration +ruleALSVariableDeclaration + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSVariableDeclarationAccess().getGroup()); } +(rule__ALSVariableDeclaration__Group__0) +{ after(grammarAccess.getALSVariableDeclarationAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSBasicRelationTerm +entryRuleALSBasicRelationTerm +: +{ before(grammarAccess.getALSBasicRelationTermRule()); } + ruleALSBasicRelationTerm +{ after(grammarAccess.getALSBasicRelationTermRule()); } + EOF +; + +// Rule ALSBasicRelationTerm +ruleALSBasicRelationTerm + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getAlternatives()); } +(rule__ALSBasicRelationTerm__Alternatives) +{ after(grammarAccess.getALSBasicRelationTermAccess().getAlternatives()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSRunCommand +entryRuleALSRunCommand +: +{ before(grammarAccess.getALSRunCommandRule()); } + ruleALSRunCommand +{ after(grammarAccess.getALSRunCommandRule()); } + EOF +; + +// Rule ALSRunCommand +ruleALSRunCommand + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSRunCommandAccess().getGroup()); } +(rule__ALSRunCommand__Group__0) +{ after(grammarAccess.getALSRunCommandAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSTypeScope +entryRuleALSTypeScope +: +{ before(grammarAccess.getALSTypeScopeRule()); } + ruleALSTypeScope +{ after(grammarAccess.getALSTypeScopeRule()); } + EOF +; + +// Rule ALSTypeScope +ruleALSTypeScope + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSTypeScopeAccess().getAlternatives()); } +(rule__ALSTypeScope__Alternatives) +{ after(grammarAccess.getALSTypeScopeAccess().getAlternatives()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSSigScope +entryRuleALSSigScope +: +{ before(grammarAccess.getALSSigScopeRule()); } + ruleALSSigScope +{ after(grammarAccess.getALSSigScopeRule()); } + EOF +; + +// Rule ALSSigScope +ruleALSSigScope + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSSigScopeAccess().getGroup()); } +(rule__ALSSigScope__Group__0) +{ after(grammarAccess.getALSSigScopeAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSIntScope +entryRuleALSIntScope +: +{ before(grammarAccess.getALSIntScopeRule()); } + ruleALSIntScope +{ after(grammarAccess.getALSIntScopeRule()); } + EOF +; + +// Rule ALSIntScope +ruleALSIntScope + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSIntScopeAccess().getGroup()); } +(rule__ALSIntScope__Group__0) +{ after(grammarAccess.getALSIntScopeAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Entry rule entryRuleALSStringScope +entryRuleALSStringScope +: +{ before(grammarAccess.getALSStringScopeRule()); } + ruleALSStringScope +{ after(grammarAccess.getALSStringScopeRule()); } + EOF +; + +// Rule ALSStringScope +ruleALSStringScope + @init { + int stackSize = keepStackSize(); + } + : +( +{ before(grammarAccess.getALSStringScopeAccess().getGroup()); } +(rule__ALSStringScope__Group__0) +{ after(grammarAccess.getALSStringScopeAccess().getGroup()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + +// Rule ALSMultiplicity +ruleALSMultiplicity + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSMultiplicityAccess().getAlternatives()); } +(rule__ALSMultiplicity__Alternatives) +{ after(grammarAccess.getALSMultiplicityAccess().getAlternatives()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +// Rule ALSNumericOperator +ruleALSNumericOperator + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSNumericOperatorAccess().getAlternatives()); } +(rule__ALSNumericOperator__Alternatives) +{ after(grammarAccess.getALSNumericOperatorAccess().getAlternatives()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +rule__ALSDocument__Alternatives_0 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSDocumentAccess().getEnumDeclarationsAssignment_0_0()); } +(rule__ALSDocument__EnumDeclarationsAssignment_0_0) +{ after(grammarAccess.getALSDocumentAccess().getEnumDeclarationsAssignment_0_0()); } +) + + |( +{ before(grammarAccess.getALSDocumentAccess().getSignatureBodiesAssignment_0_1()); } +(rule__ALSDocument__SignatureBodiesAssignment_0_1) +{ after(grammarAccess.getALSDocumentAccess().getSignatureBodiesAssignment_0_1()); } +) + + |( +{ before(grammarAccess.getALSDocumentAccess().getFunctionDefinitionsAssignment_0_2()); } +(rule__ALSDocument__FunctionDefinitionsAssignment_0_2) +{ after(grammarAccess.getALSDocumentAccess().getFunctionDefinitionsAssignment_0_2()); } +) + + |( +{ before(grammarAccess.getALSDocumentAccess().getRelationDefinitionsAssignment_0_3()); } +(rule__ALSDocument__RelationDefinitionsAssignment_0_3) +{ after(grammarAccess.getALSDocumentAccess().getRelationDefinitionsAssignment_0_3()); } +) + + |( +{ before(grammarAccess.getALSDocumentAccess().getFactDeclarationsAssignment_0_4()); } +(rule__ALSDocument__FactDeclarationsAssignment_0_4) +{ after(grammarAccess.getALSDocumentAccess().getFactDeclarationsAssignment_0_4()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSTypeDeclaration__Alternatives + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSTypeDeclarationAccess().getALSEnumDeclarationParserRuleCall_0()); } + ruleALSEnumDeclaration +{ after(grammarAccess.getALSTypeDeclarationAccess().getALSEnumDeclarationParserRuleCall_0()); } +) + + |( +{ before(grammarAccess.getALSTypeDeclarationAccess().getALSSignatureDeclarationParserRuleCall_1()); } + ruleALSSignatureDeclaration +{ after(grammarAccess.getALSTypeDeclarationAccess().getALSSignatureDeclarationParserRuleCall_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Alternatives_4 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getGroup_4_0()); } +(rule__ALSSignatureBody__Group_4_0__0) +{ after(grammarAccess.getALSSignatureBodyAccess().getGroup_4_0()); } +) + + |( +{ before(grammarAccess.getALSSignatureBodyAccess().getGroup_4_1()); } +(rule__ALSSignatureBody__Group_4_1__0) +{ after(grammarAccess.getALSSignatureBodyAccess().getGroup_4_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSQuantified__Alternatives + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSQuantifiedAccess().getGroup_0()); } +(rule__ALSQuantified__Group_0__0) +{ after(grammarAccess.getALSQuantifiedAccess().getGroup_0()); } +) + + |( +{ before(grammarAccess.getALSQuantifiedAccess().getALSOrParserRuleCall_1()); } + ruleALSOr +{ after(grammarAccess.getALSQuantifiedAccess().getALSOrParserRuleCall_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSOr__Alternatives_1_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSOrAccess().getVerticalLineVerticalLineKeyword_1_1_0()); } + + '||' + +{ after(grammarAccess.getALSOrAccess().getVerticalLineVerticalLineKeyword_1_1_0()); } +) + + |( +{ before(grammarAccess.getALSOrAccess().getOrKeyword_1_1_1()); } + + 'or' + +{ after(grammarAccess.getALSOrAccess().getOrKeyword_1_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSIff__Alternatives_1_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSIffAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_1_1_0()); } + + '<=>' + +{ after(grammarAccess.getALSIffAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_1_1_0()); } +) + + |( +{ before(grammarAccess.getALSIffAccess().getIffKeyword_1_1_1()); } + + 'iff' + +{ after(grammarAccess.getALSIffAccess().getIffKeyword_1_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSImpl__Alternatives_1_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSImplAccess().getEqualsSignGreaterThanSignKeyword_1_1_0()); } + + '=>' + +{ after(grammarAccess.getALSImplAccess().getEqualsSignGreaterThanSignKeyword_1_1_0()); } +) + + |( +{ before(grammarAccess.getALSImplAccess().getImpliesKeyword_1_1_1()); } + + 'implies' + +{ after(grammarAccess.getALSImplAccess().getImpliesKeyword_1_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSAnd__Alternatives_1_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSAndAccess().getAmpersandAmpersandKeyword_1_1_0()); } + + '&&' + +{ after(grammarAccess.getALSAndAccess().getAmpersandAmpersandKeyword_1_1_0()); } +) + + |( +{ before(grammarAccess.getALSAndAccess().getAndKeyword_1_1_1()); } + + 'and' + +{ after(grammarAccess.getALSAndAccess().getAndKeyword_1_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSComparison__Alternatives_1_0 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSComparisonAccess().getGroup_1_0_0()); } +(rule__ALSComparison__Group_1_0_0__0) +{ after(grammarAccess.getALSComparisonAccess().getGroup_1_0_0()); } +) + + |( +{ before(grammarAccess.getALSComparisonAccess().getGroup_1_0_1()); } +(rule__ALSComparison__Group_1_0_1__0) +{ after(grammarAccess.getALSComparisonAccess().getGroup_1_0_1()); } +) + + |( +{ before(grammarAccess.getALSComparisonAccess().getGroup_1_0_2()); } +(rule__ALSComparison__Group_1_0_2__0) +{ after(grammarAccess.getALSComparisonAccess().getGroup_1_0_2()); } +) + + |( +{ before(grammarAccess.getALSComparisonAccess().getGroup_1_0_3()); } +(rule__ALSComparison__Group_1_0_3__0) +{ after(grammarAccess.getALSComparisonAccess().getGroup_1_0_3()); } +) + + |( +{ before(grammarAccess.getALSComparisonAccess().getGroup_1_0_4()); } +(rule__ALSComparison__Group_1_0_4__0) +{ after(grammarAccess.getALSComparisonAccess().getGroup_1_0_4()); } +) + + |( +{ before(grammarAccess.getALSComparisonAccess().getGroup_1_0_5()); } +(rule__ALSComparison__Group_1_0_5__0) +{ after(grammarAccess.getALSComparisonAccess().getGroup_1_0_5()); } +) + + |( +{ before(grammarAccess.getALSComparisonAccess().getGroup_1_0_6()); } +(rule__ALSComparison__Group_1_0_6__0) +{ after(grammarAccess.getALSComparisonAccess().getGroup_1_0_6()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Alternatives + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getGroup_0()); } +(rule__ALSPreficed__Group_0__0) +{ after(grammarAccess.getALSPreficedAccess().getGroup_0()); } +) + + |( +{ before(grammarAccess.getALSPreficedAccess().getGroup_1()); } +(rule__ALSPreficed__Group_1__0) +{ after(grammarAccess.getALSPreficedAccess().getGroup_1()); } +) + + |( +{ before(grammarAccess.getALSPreficedAccess().getGroup_2()); } +(rule__ALSPreficed__Group_2__0) +{ after(grammarAccess.getALSPreficedAccess().getGroup_2()); } +) + + |( +{ before(grammarAccess.getALSPreficedAccess().getGroup_3()); } +(rule__ALSPreficed__Group_3__0) +{ after(grammarAccess.getALSPreficedAccess().getGroup_3()); } +) + + |( +{ before(grammarAccess.getALSPreficedAccess().getGroup_4()); } +(rule__ALSPreficed__Group_4__0) +{ after(grammarAccess.getALSPreficedAccess().getGroup_4()); } +) + + |( +{ before(grammarAccess.getALSPreficedAccess().getGroup_5()); } +(rule__ALSPreficed__Group_5__0) +{ after(grammarAccess.getALSPreficedAccess().getGroup_5()); } +) + + |( +{ before(grammarAccess.getALSPreficedAccess().getGroup_6()); } +(rule__ALSPreficed__Group_6__0) +{ after(grammarAccess.getALSPreficedAccess().getGroup_6()); } +) + + |( +{ before(grammarAccess.getALSPreficedAccess().getGroup_7()); } +(rule__ALSPreficed__Group_7__0) +{ after(grammarAccess.getALSPreficedAccess().getGroup_7()); } +) + + |( +{ before(grammarAccess.getALSPreficedAccess().getALSBasicRelationTermParserRuleCall_8()); } + ruleALSBasicRelationTerm +{ after(grammarAccess.getALSPreficedAccess().getALSBasicRelationTermParserRuleCall_8()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Alternatives_0_1_0 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getExclamationMarkKeyword_0_1_0_0()); } + + '!' + +{ after(grammarAccess.getALSPreficedAccess().getExclamationMarkKeyword_0_1_0_0()); } +) + + |( +{ before(grammarAccess.getALSPreficedAccess().getNotKeyword_0_1_0_1()); } + + 'not' + +{ after(grammarAccess.getALSPreficedAccess().getNotKeyword_0_1_0_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Alternatives_7_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getReferredDefinitionAssignment_7_1_0()); } +(rule__ALSPreficed__ReferredDefinitionAssignment_7_1_0) +{ after(grammarAccess.getALSPreficedAccess().getReferredDefinitionAssignment_7_1_0()); } +) + + |( +{ before(grammarAccess.getALSPreficedAccess().getReferredNumericOperatorAssignment_7_1_1()); } +(rule__ALSPreficed__ReferredNumericOperatorAssignment_7_1_1) +{ after(grammarAccess.getALSPreficedAccess().getReferredNumericOperatorAssignment_7_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__Alternatives + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getGroup_0()); } +(rule__ALSBasicRelationTerm__Group_0__0) +{ after(grammarAccess.getALSBasicRelationTermAccess().getGroup_0()); } +) + + |( +{ before(grammarAccess.getALSBasicRelationTermAccess().getGroup_1()); } +(rule__ALSBasicRelationTerm__Group_1__0) +{ after(grammarAccess.getALSBasicRelationTermAccess().getGroup_1()); } +) + + |( +{ before(grammarAccess.getALSBasicRelationTermAccess().getGroup_2()); } +(rule__ALSBasicRelationTerm__Group_2__0) +{ after(grammarAccess.getALSBasicRelationTermAccess().getGroup_2()); } +) + + |( +{ before(grammarAccess.getALSBasicRelationTermAccess().getGroup_3()); } +(rule__ALSBasicRelationTerm__Group_3__0) +{ after(grammarAccess.getALSBasicRelationTermAccess().getGroup_3()); } +) + + |( +{ before(grammarAccess.getALSBasicRelationTermAccess().getGroup_4()); } +(rule__ALSBasicRelationTerm__Group_4__0) +{ after(grammarAccess.getALSBasicRelationTermAccess().getGroup_4()); } +) + + |( +{ before(grammarAccess.getALSBasicRelationTermAccess().getGroup_5()); } +(rule__ALSBasicRelationTerm__Group_5__0) +{ after(grammarAccess.getALSBasicRelationTermAccess().getGroup_5()); } +) + + |( +{ before(grammarAccess.getALSBasicRelationTermAccess().getGroup_6()); } +(rule__ALSBasicRelationTerm__Group_6__0) +{ after(grammarAccess.getALSBasicRelationTermAccess().getGroup_6()); } +) + + |( +{ before(grammarAccess.getALSBasicRelationTermAccess().getGroup_7()); } +(rule__ALSBasicRelationTerm__Group_7__0) +{ after(grammarAccess.getALSBasicRelationTermAccess().getGroup_7()); } +) + + |( +{ before(grammarAccess.getALSBasicRelationTermAccess().getGroup_8()); } +(rule__ALSBasicRelationTerm__Group_8__0) +{ after(grammarAccess.getALSBasicRelationTermAccess().getGroup_8()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSTypeScope__Alternatives + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSTypeScopeAccess().getALSSigScopeParserRuleCall_0()); } + ruleALSSigScope +{ after(grammarAccess.getALSTypeScopeAccess().getALSSigScopeParserRuleCall_0()); } +) + + |( +{ before(grammarAccess.getALSTypeScopeAccess().getALSIntScopeParserRuleCall_1()); } + ruleALSIntScope +{ after(grammarAccess.getALSTypeScopeAccess().getALSIntScopeParserRuleCall_1()); } +) + + |( +{ before(grammarAccess.getALSTypeScopeAccess().getALSStringScopeParserRuleCall_2()); } + ruleALSStringScope +{ after(grammarAccess.getALSTypeScopeAccess().getALSStringScopeParserRuleCall_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSMultiplicity__Alternatives + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSMultiplicityAccess().getAllEnumLiteralDeclaration_0()); } +( 'all' +) +{ after(grammarAccess.getALSMultiplicityAccess().getAllEnumLiteralDeclaration_0()); } +) + + |( +{ before(grammarAccess.getALSMultiplicityAccess().getNoEnumLiteralDeclaration_1()); } +( 'no' +) +{ after(grammarAccess.getALSMultiplicityAccess().getNoEnumLiteralDeclaration_1()); } +) + + |( +{ before(grammarAccess.getALSMultiplicityAccess().getSomeEnumLiteralDeclaration_2()); } +( 'some' +) +{ after(grammarAccess.getALSMultiplicityAccess().getSomeEnumLiteralDeclaration_2()); } +) + + |( +{ before(grammarAccess.getALSMultiplicityAccess().getLoneEnumLiteralDeclaration_3()); } +( 'lone' +) +{ after(grammarAccess.getALSMultiplicityAccess().getLoneEnumLiteralDeclaration_3()); } +) + + |( +{ before(grammarAccess.getALSMultiplicityAccess().getOneEnumLiteralDeclaration_4()); } +( 'one' +) +{ after(grammarAccess.getALSMultiplicityAccess().getOneEnumLiteralDeclaration_4()); } +) + + |( +{ before(grammarAccess.getALSMultiplicityAccess().getSetEnumLiteralDeclaration_5()); } +( 'set' +) +{ after(grammarAccess.getALSMultiplicityAccess().getSetEnumLiteralDeclaration_5()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSNumericOperator__Alternatives + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSNumericOperatorAccess().getPlusEnumLiteralDeclaration_0()); } +( 'plus' +) +{ after(grammarAccess.getALSNumericOperatorAccess().getPlusEnumLiteralDeclaration_0()); } +) + + |( +{ before(grammarAccess.getALSNumericOperatorAccess().getSubEnumLiteralDeclaration_1()); } +( 'sub' +) +{ after(grammarAccess.getALSNumericOperatorAccess().getSubEnumLiteralDeclaration_1()); } +) + + |( +{ before(grammarAccess.getALSNumericOperatorAccess().getMulEnumLiteralDeclaration_2()); } +( 'mul' +) +{ after(grammarAccess.getALSNumericOperatorAccess().getMulEnumLiteralDeclaration_2()); } +) + + |( +{ before(grammarAccess.getALSNumericOperatorAccess().getRemEnumLiteralDeclaration_3()); } +( 'rem' +) +{ after(grammarAccess.getALSNumericOperatorAccess().getRemEnumLiteralDeclaration_3()); } +) + + |( +{ before(grammarAccess.getALSNumericOperatorAccess().getDivEnumLiteralDeclaration_4()); } +( 'div' +) +{ after(grammarAccess.getALSNumericOperatorAccess().getDivEnumLiteralDeclaration_4()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + +rule__ALSDocument__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSDocument__Group__0__Impl + rule__ALSDocument__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSDocument__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +( +{ before(grammarAccess.getALSDocumentAccess().getAlternatives_0()); } +(rule__ALSDocument__Alternatives_0) +{ after(grammarAccess.getALSDocumentAccess().getAlternatives_0()); } +) +( +{ before(grammarAccess.getALSDocumentAccess().getAlternatives_0()); } +(rule__ALSDocument__Alternatives_0)* +{ after(grammarAccess.getALSDocumentAccess().getAlternatives_0()); } +) +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSDocument__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSDocument__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSDocument__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSDocumentAccess().getRunCommandAssignment_1()); } +(rule__ALSDocument__RunCommandAssignment_1) +{ after(grammarAccess.getALSDocumentAccess().getRunCommandAssignment_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSEnumDeclaration__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSEnumDeclaration__Group__0__Impl + rule__ALSEnumDeclaration__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSEnumDeclaration__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSEnumDeclarationAccess().getEnumKeyword_0()); } + + 'enum' + +{ after(grammarAccess.getALSEnumDeclarationAccess().getEnumKeyword_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSEnumDeclaration__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSEnumDeclaration__Group__1__Impl + rule__ALSEnumDeclaration__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSEnumDeclaration__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSEnumDeclarationAccess().getNameAssignment_1()); } +(rule__ALSEnumDeclaration__NameAssignment_1) +{ after(grammarAccess.getALSEnumDeclarationAccess().getNameAssignment_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSEnumDeclaration__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSEnumDeclaration__Group__2__Impl + rule__ALSEnumDeclaration__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSEnumDeclaration__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSEnumDeclarationAccess().getLeftCurlyBracketKeyword_2()); } + + '{' + +{ after(grammarAccess.getALSEnumDeclarationAccess().getLeftCurlyBracketKeyword_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSEnumDeclaration__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSEnumDeclaration__Group__3__Impl + rule__ALSEnumDeclaration__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSEnumDeclaration__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSEnumDeclarationAccess().getLiteralAssignment_3()); } +(rule__ALSEnumDeclaration__LiteralAssignment_3) +{ after(grammarAccess.getALSEnumDeclarationAccess().getLiteralAssignment_3()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSEnumDeclaration__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSEnumDeclaration__Group__4__Impl + rule__ALSEnumDeclaration__Group__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSEnumDeclaration__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSEnumDeclarationAccess().getGroup_4()); } +(rule__ALSEnumDeclaration__Group_4__0)* +{ after(grammarAccess.getALSEnumDeclarationAccess().getGroup_4()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSEnumDeclaration__Group__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSEnumDeclaration__Group__5__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSEnumDeclaration__Group__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSEnumDeclarationAccess().getRightCurlyBracketKeyword_5()); } + + '}' + +{ after(grammarAccess.getALSEnumDeclarationAccess().getRightCurlyBracketKeyword_5()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + + + + + + + +rule__ALSEnumDeclaration__Group_4__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSEnumDeclaration__Group_4__0__Impl + rule__ALSEnumDeclaration__Group_4__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSEnumDeclaration__Group_4__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSEnumDeclarationAccess().getCommaKeyword_4_0()); } + + ',' + +{ after(grammarAccess.getALSEnumDeclarationAccess().getCommaKeyword_4_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSEnumDeclaration__Group_4__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSEnumDeclaration__Group_4__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSEnumDeclaration__Group_4__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSEnumDeclarationAccess().getLiteralAssignment_4_1()); } +(rule__ALSEnumDeclaration__LiteralAssignment_4_1) +{ after(grammarAccess.getALSEnumDeclarationAccess().getLiteralAssignment_4_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSSignatureBody__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group__0__Impl + rule__ALSSignatureBody__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0()); } +(rule__ALSSignatureBody__UnorderedGroup_0) +{ after(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSSignatureBody__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group__1__Impl + rule__ALSSignatureBody__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getSigKeyword_1()); } + + 'sig' + +{ after(grammarAccess.getALSSignatureBodyAccess().getSigKeyword_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSSignatureBody__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group__2__Impl + rule__ALSSignatureBody__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getDeclarationsAssignment_2()); } +(rule__ALSSignatureBody__DeclarationsAssignment_2) +{ after(grammarAccess.getALSSignatureBodyAccess().getDeclarationsAssignment_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSSignatureBody__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group__3__Impl + rule__ALSSignatureBody__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getGroup_3()); } +(rule__ALSSignatureBody__Group_3__0)* +{ after(grammarAccess.getALSSignatureBodyAccess().getGroup_3()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSSignatureBody__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group__4__Impl + rule__ALSSignatureBody__Group__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getAlternatives_4()); } +(rule__ALSSignatureBody__Alternatives_4)? +{ after(grammarAccess.getALSSignatureBodyAccess().getAlternatives_4()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSSignatureBody__Group__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group__5__Impl + rule__ALSSignatureBody__Group__6 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getLeftCurlyBracketKeyword_5()); } + + '{' + +{ after(grammarAccess.getALSSignatureBodyAccess().getLeftCurlyBracketKeyword_5()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSSignatureBody__Group__6 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group__6__Impl + rule__ALSSignatureBody__Group__7 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group__6__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getGroup_6()); } +(rule__ALSSignatureBody__Group_6__0)? +{ after(grammarAccess.getALSSignatureBodyAccess().getGroup_6()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSSignatureBody__Group__7 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group__7__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group__7__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getRightCurlyBracketKeyword_7()); } + + '}' + +{ after(grammarAccess.getALSSignatureBodyAccess().getRightCurlyBracketKeyword_7()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + + + + + + + + + + + +rule__ALSSignatureBody__Group_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group_3__0__Impl + rule__ALSSignatureBody__Group_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getCommaKeyword_3_0()); } + + ',' + +{ after(grammarAccess.getALSSignatureBodyAccess().getCommaKeyword_3_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSSignatureBody__Group_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getDeclarationsAssignment_3_1()); } +(rule__ALSSignatureBody__DeclarationsAssignment_3_1) +{ after(grammarAccess.getALSSignatureBodyAccess().getDeclarationsAssignment_3_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSSignatureBody__Group_4_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group_4_0__0__Impl + rule__ALSSignatureBody__Group_4_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group_4_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getExtendsKeyword_4_0_0()); } + + 'extends' + +{ after(grammarAccess.getALSSignatureBodyAccess().getExtendsKeyword_4_0_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSSignatureBody__Group_4_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group_4_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group_4_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getSupertypeAssignment_4_0_1()); } +(rule__ALSSignatureBody__SupertypeAssignment_4_0_1) +{ after(grammarAccess.getALSSignatureBodyAccess().getSupertypeAssignment_4_0_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSSignatureBody__Group_4_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group_4_1__0__Impl + rule__ALSSignatureBody__Group_4_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group_4_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getInKeyword_4_1_0()); } + + 'in' + +{ after(grammarAccess.getALSSignatureBodyAccess().getInKeyword_4_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSSignatureBody__Group_4_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group_4_1__1__Impl + rule__ALSSignatureBody__Group_4_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group_4_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getSupersetAssignment_4_1_1()); } +(rule__ALSSignatureBody__SupersetAssignment_4_1_1) +{ after(grammarAccess.getALSSignatureBodyAccess().getSupersetAssignment_4_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSSignatureBody__Group_4_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group_4_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group_4_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getGroup_4_1_2()); } +(rule__ALSSignatureBody__Group_4_1_2__0)* +{ after(grammarAccess.getALSSignatureBodyAccess().getGroup_4_1_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSSignatureBody__Group_4_1_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group_4_1_2__0__Impl + rule__ALSSignatureBody__Group_4_1_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group_4_1_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getPlusSignKeyword_4_1_2_0()); } + + '+' + +{ after(grammarAccess.getALSSignatureBodyAccess().getPlusSignKeyword_4_1_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSSignatureBody__Group_4_1_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group_4_1_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group_4_1_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getSupersetAssignment_4_1_2_1()); } +(rule__ALSSignatureBody__SupersetAssignment_4_1_2_1) +{ after(grammarAccess.getALSSignatureBodyAccess().getSupersetAssignment_4_1_2_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSSignatureBody__Group_6__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group_6__0__Impl + rule__ALSSignatureBody__Group_6__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group_6__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getFieldsAssignment_6_0()); } +(rule__ALSSignatureBody__FieldsAssignment_6_0) +{ after(grammarAccess.getALSSignatureBodyAccess().getFieldsAssignment_6_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSSignatureBody__Group_6__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group_6__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group_6__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getGroup_6_1()); } +(rule__ALSSignatureBody__Group_6_1__0)* +{ after(grammarAccess.getALSSignatureBodyAccess().getGroup_6_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSSignatureBody__Group_6_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group_6_1__0__Impl + rule__ALSSignatureBody__Group_6_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group_6_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getCommaKeyword_6_1_0()); } + + ',' + +{ after(grammarAccess.getALSSignatureBodyAccess().getCommaKeyword_6_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSSignatureBody__Group_6_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__Group_6_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__Group_6_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getFieldsAssignment_6_1_1()); } +(rule__ALSSignatureBody__FieldsAssignment_6_1_1) +{ after(grammarAccess.getALSSignatureBodyAccess().getFieldsAssignment_6_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSFieldDeclaration__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFieldDeclaration__Group__0__Impl + rule__ALSFieldDeclaration__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFieldDeclaration__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFieldDeclarationAccess().getNameAssignment_0()); } +(rule__ALSFieldDeclaration__NameAssignment_0) +{ after(grammarAccess.getALSFieldDeclarationAccess().getNameAssignment_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSFieldDeclaration__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFieldDeclaration__Group__1__Impl + rule__ALSFieldDeclaration__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFieldDeclaration__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFieldDeclarationAccess().getColonKeyword_1()); } + + ':' + +{ after(grammarAccess.getALSFieldDeclarationAccess().getColonKeyword_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSFieldDeclaration__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFieldDeclaration__Group__2__Impl + rule__ALSFieldDeclaration__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFieldDeclaration__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFieldDeclarationAccess().getMultiplicityAssignment_2()); } +(rule__ALSFieldDeclaration__MultiplicityAssignment_2)? +{ after(grammarAccess.getALSFieldDeclarationAccess().getMultiplicityAssignment_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSFieldDeclaration__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFieldDeclaration__Group__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFieldDeclaration__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFieldDeclarationAccess().getTypeAssignment_3()); } +(rule__ALSFieldDeclaration__TypeAssignment_3) +{ after(grammarAccess.getALSFieldDeclarationAccess().getTypeAssignment_3()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + + + +rule__ALSFunctionDefinition__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFunctionDefinition__Group__0__Impl + rule__ALSFunctionDefinition__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFunctionDefinition__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFunctionDefinitionAccess().getFunKeyword_0()); } + + 'fun' + +{ after(grammarAccess.getALSFunctionDefinitionAccess().getFunKeyword_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSFunctionDefinition__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFunctionDefinition__Group__1__Impl + rule__ALSFunctionDefinition__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFunctionDefinition__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFunctionDefinitionAccess().getNameAssignment_1()); } +(rule__ALSFunctionDefinition__NameAssignment_1) +{ after(grammarAccess.getALSFunctionDefinitionAccess().getNameAssignment_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSFunctionDefinition__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFunctionDefinition__Group__2__Impl + rule__ALSFunctionDefinition__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFunctionDefinition__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFunctionDefinitionAccess().getLeftSquareBracketKeyword_2()); } + + '[' + +{ after(grammarAccess.getALSFunctionDefinitionAccess().getLeftSquareBracketKeyword_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSFunctionDefinition__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFunctionDefinition__Group__3__Impl + rule__ALSFunctionDefinition__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFunctionDefinition__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFunctionDefinitionAccess().getVariablesAssignment_3()); } +(rule__ALSFunctionDefinition__VariablesAssignment_3) +{ after(grammarAccess.getALSFunctionDefinitionAccess().getVariablesAssignment_3()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSFunctionDefinition__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFunctionDefinition__Group__4__Impl + rule__ALSFunctionDefinition__Group__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFunctionDefinition__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFunctionDefinitionAccess().getGroup_4()); } +(rule__ALSFunctionDefinition__Group_4__0)* +{ after(grammarAccess.getALSFunctionDefinitionAccess().getGroup_4()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSFunctionDefinition__Group__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFunctionDefinition__Group__5__Impl + rule__ALSFunctionDefinition__Group__6 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFunctionDefinition__Group__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFunctionDefinitionAccess().getRightSquareBracketKeyword_5()); } + + ']' + +{ after(grammarAccess.getALSFunctionDefinitionAccess().getRightSquareBracketKeyword_5()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSFunctionDefinition__Group__6 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFunctionDefinition__Group__6__Impl + rule__ALSFunctionDefinition__Group__7 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFunctionDefinition__Group__6__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFunctionDefinitionAccess().getColonKeyword_6()); } + + ':' + +{ after(grammarAccess.getALSFunctionDefinitionAccess().getColonKeyword_6()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSFunctionDefinition__Group__7 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFunctionDefinition__Group__7__Impl + rule__ALSFunctionDefinition__Group__8 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFunctionDefinition__Group__7__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFunctionDefinitionAccess().getTypeAssignment_7()); } +(rule__ALSFunctionDefinition__TypeAssignment_7) +{ after(grammarAccess.getALSFunctionDefinitionAccess().getTypeAssignment_7()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSFunctionDefinition__Group__8 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFunctionDefinition__Group__8__Impl + rule__ALSFunctionDefinition__Group__9 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFunctionDefinition__Group__8__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFunctionDefinitionAccess().getLeftCurlyBracketKeyword_8()); } + + '{' + +{ after(grammarAccess.getALSFunctionDefinitionAccess().getLeftCurlyBracketKeyword_8()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSFunctionDefinition__Group__9 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFunctionDefinition__Group__9__Impl + rule__ALSFunctionDefinition__Group__10 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFunctionDefinition__Group__9__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFunctionDefinitionAccess().getValueAssignment_9()); } +(rule__ALSFunctionDefinition__ValueAssignment_9) +{ after(grammarAccess.getALSFunctionDefinitionAccess().getValueAssignment_9()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSFunctionDefinition__Group__10 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFunctionDefinition__Group__10__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFunctionDefinition__Group__10__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFunctionDefinitionAccess().getRightCurlyBracketKeyword_10()); } + + '}' + +{ after(grammarAccess.getALSFunctionDefinitionAccess().getRightCurlyBracketKeyword_10()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + + + + + + + + + + + + + + + + + +rule__ALSFunctionDefinition__Group_4__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFunctionDefinition__Group_4__0__Impl + rule__ALSFunctionDefinition__Group_4__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFunctionDefinition__Group_4__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFunctionDefinitionAccess().getCommaKeyword_4_0()); } + + ',' + +{ after(grammarAccess.getALSFunctionDefinitionAccess().getCommaKeyword_4_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSFunctionDefinition__Group_4__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFunctionDefinition__Group_4__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFunctionDefinition__Group_4__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFunctionDefinitionAccess().getVariablesAssignment_4_1()); } +(rule__ALSFunctionDefinition__VariablesAssignment_4_1) +{ after(grammarAccess.getALSFunctionDefinitionAccess().getVariablesAssignment_4_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSRelationDefinition__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRelationDefinition__Group__0__Impl + rule__ALSRelationDefinition__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRelationDefinition__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRelationDefinitionAccess().getPredKeyword_0()); } + + 'pred' + +{ after(grammarAccess.getALSRelationDefinitionAccess().getPredKeyword_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRelationDefinition__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRelationDefinition__Group__1__Impl + rule__ALSRelationDefinition__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRelationDefinition__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRelationDefinitionAccess().getNameAssignment_1()); } +(rule__ALSRelationDefinition__NameAssignment_1) +{ after(grammarAccess.getALSRelationDefinitionAccess().getNameAssignment_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRelationDefinition__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRelationDefinition__Group__2__Impl + rule__ALSRelationDefinition__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRelationDefinition__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRelationDefinitionAccess().getLeftSquareBracketKeyword_2()); } + + '[' + +{ after(grammarAccess.getALSRelationDefinitionAccess().getLeftSquareBracketKeyword_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRelationDefinition__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRelationDefinition__Group__3__Impl + rule__ALSRelationDefinition__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRelationDefinition__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRelationDefinitionAccess().getVariablesAssignment_3()); } +(rule__ALSRelationDefinition__VariablesAssignment_3) +{ after(grammarAccess.getALSRelationDefinitionAccess().getVariablesAssignment_3()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRelationDefinition__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRelationDefinition__Group__4__Impl + rule__ALSRelationDefinition__Group__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRelationDefinition__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRelationDefinitionAccess().getGroup_4()); } +(rule__ALSRelationDefinition__Group_4__0)* +{ after(grammarAccess.getALSRelationDefinitionAccess().getGroup_4()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRelationDefinition__Group__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRelationDefinition__Group__5__Impl + rule__ALSRelationDefinition__Group__6 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRelationDefinition__Group__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRelationDefinitionAccess().getRightSquareBracketKeyword_5()); } + + ']' + +{ after(grammarAccess.getALSRelationDefinitionAccess().getRightSquareBracketKeyword_5()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRelationDefinition__Group__6 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRelationDefinition__Group__6__Impl + rule__ALSRelationDefinition__Group__7 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRelationDefinition__Group__6__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRelationDefinitionAccess().getLeftCurlyBracketKeyword_6()); } + + '{' + +{ after(grammarAccess.getALSRelationDefinitionAccess().getLeftCurlyBracketKeyword_6()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRelationDefinition__Group__7 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRelationDefinition__Group__7__Impl + rule__ALSRelationDefinition__Group__8 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRelationDefinition__Group__7__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRelationDefinitionAccess().getValueAssignment_7()); } +(rule__ALSRelationDefinition__ValueAssignment_7) +{ after(grammarAccess.getALSRelationDefinitionAccess().getValueAssignment_7()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRelationDefinition__Group__8 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRelationDefinition__Group__8__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRelationDefinition__Group__8__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRelationDefinitionAccess().getRightCurlyBracketKeyword_8()); } + + '}' + +{ after(grammarAccess.getALSRelationDefinitionAccess().getRightCurlyBracketKeyword_8()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + + + + + + + + + + + + + +rule__ALSRelationDefinition__Group_4__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRelationDefinition__Group_4__0__Impl + rule__ALSRelationDefinition__Group_4__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRelationDefinition__Group_4__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRelationDefinitionAccess().getCommaKeyword_4_0()); } + + ',' + +{ after(grammarAccess.getALSRelationDefinitionAccess().getCommaKeyword_4_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRelationDefinition__Group_4__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRelationDefinition__Group_4__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRelationDefinition__Group_4__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRelationDefinitionAccess().getVariablesAssignment_4_1()); } +(rule__ALSRelationDefinition__VariablesAssignment_4_1) +{ after(grammarAccess.getALSRelationDefinitionAccess().getVariablesAssignment_4_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSFactDeclaration__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFactDeclaration__Group__0__Impl + rule__ALSFactDeclaration__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFactDeclaration__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFactDeclarationAccess().getALSFactDeclarationAction_0()); } +( + +) +{ after(grammarAccess.getALSFactDeclarationAccess().getALSFactDeclarationAction_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSFactDeclaration__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFactDeclaration__Group__1__Impl + rule__ALSFactDeclaration__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFactDeclaration__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFactDeclarationAccess().getFactKeyword_1()); } + + 'fact' + +{ after(grammarAccess.getALSFactDeclarationAccess().getFactKeyword_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSFactDeclaration__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFactDeclaration__Group__2__Impl + rule__ALSFactDeclaration__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFactDeclaration__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFactDeclarationAccess().getNameAssignment_2()); } +(rule__ALSFactDeclaration__NameAssignment_2)? +{ after(grammarAccess.getALSFactDeclarationAccess().getNameAssignment_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSFactDeclaration__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFactDeclaration__Group__3__Impl + rule__ALSFactDeclaration__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFactDeclaration__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFactDeclarationAccess().getLeftCurlyBracketKeyword_3()); } + + '{' + +{ after(grammarAccess.getALSFactDeclarationAccess().getLeftCurlyBracketKeyword_3()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSFactDeclaration__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFactDeclaration__Group__4__Impl + rule__ALSFactDeclaration__Group__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFactDeclaration__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFactDeclarationAccess().getTermAssignment_4()); } +(rule__ALSFactDeclaration__TermAssignment_4) +{ after(grammarAccess.getALSFactDeclarationAccess().getTermAssignment_4()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSFactDeclaration__Group__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSFactDeclaration__Group__5__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFactDeclaration__Group__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFactDeclarationAccess().getRightCurlyBracketKeyword_5()); } + + '}' + +{ after(grammarAccess.getALSFactDeclarationAccess().getRightCurlyBracketKeyword_5()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + + + + + + + +rule__ALSQuantified__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSQuantified__Group_0__0__Impl + rule__ALSQuantified__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSQuantified__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSQuantifiedAccess().getALSQuantifiedExAction_0_0()); } +( + +) +{ after(grammarAccess.getALSQuantifiedAccess().getALSQuantifiedExAction_0_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSQuantified__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSQuantified__Group_0__1__Impl + rule__ALSQuantified__Group_0__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSQuantified__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSQuantifiedAccess().getTypeAssignment_0_1()); } +(rule__ALSQuantified__TypeAssignment_0_1) +{ after(grammarAccess.getALSQuantifiedAccess().getTypeAssignment_0_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSQuantified__Group_0__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSQuantified__Group_0__2__Impl + rule__ALSQuantified__Group_0__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSQuantified__Group_0__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSQuantifiedAccess().getDisjAssignment_0_2()); } +(rule__ALSQuantified__DisjAssignment_0_2)? +{ after(grammarAccess.getALSQuantifiedAccess().getDisjAssignment_0_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSQuantified__Group_0__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSQuantified__Group_0__3__Impl + rule__ALSQuantified__Group_0__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSQuantified__Group_0__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSQuantifiedAccess().getVariablesAssignment_0_3()); } +(rule__ALSQuantified__VariablesAssignment_0_3) +{ after(grammarAccess.getALSQuantifiedAccess().getVariablesAssignment_0_3()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSQuantified__Group_0__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSQuantified__Group_0__4__Impl + rule__ALSQuantified__Group_0__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSQuantified__Group_0__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSQuantifiedAccess().getGroup_0_4()); } +(rule__ALSQuantified__Group_0_4__0)* +{ after(grammarAccess.getALSQuantifiedAccess().getGroup_0_4()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSQuantified__Group_0__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSQuantified__Group_0__5__Impl + rule__ALSQuantified__Group_0__6 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSQuantified__Group_0__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSQuantifiedAccess().getLeftCurlyBracketKeyword_0_5()); } + + '{' + +{ after(grammarAccess.getALSQuantifiedAccess().getLeftCurlyBracketKeyword_0_5()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSQuantified__Group_0__6 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSQuantified__Group_0__6__Impl + rule__ALSQuantified__Group_0__7 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSQuantified__Group_0__6__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSQuantifiedAccess().getExpressionAssignment_0_6()); } +(rule__ALSQuantified__ExpressionAssignment_0_6) +{ after(grammarAccess.getALSQuantifiedAccess().getExpressionAssignment_0_6()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSQuantified__Group_0__7 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSQuantified__Group_0__7__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSQuantified__Group_0__7__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSQuantifiedAccess().getRightCurlyBracketKeyword_0_7()); } + + '}' + +{ after(grammarAccess.getALSQuantifiedAccess().getRightCurlyBracketKeyword_0_7()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + + + + + + + + + + + +rule__ALSQuantified__Group_0_4__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSQuantified__Group_0_4__0__Impl + rule__ALSQuantified__Group_0_4__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSQuantified__Group_0_4__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSQuantifiedAccess().getCommaKeyword_0_4_0()); } + + ',' + +{ after(grammarAccess.getALSQuantifiedAccess().getCommaKeyword_0_4_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSQuantified__Group_0_4__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSQuantified__Group_0_4__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSQuantified__Group_0_4__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSQuantifiedAccess().getVariablesAssignment_0_4_1()); } +(rule__ALSQuantified__VariablesAssignment_0_4_1) +{ after(grammarAccess.getALSQuantifiedAccess().getVariablesAssignment_0_4_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSOr__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSOr__Group__0__Impl + rule__ALSOr__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSOr__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSOrAccess().getALSIffParserRuleCall_0()); } + ruleALSIff +{ after(grammarAccess.getALSOrAccess().getALSIffParserRuleCall_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSOr__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSOr__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSOr__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSOrAccess().getGroup_1()); } +(rule__ALSOr__Group_1__0)? +{ after(grammarAccess.getALSOrAccess().getGroup_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSOr__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSOr__Group_1__0__Impl + rule__ALSOr__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSOr__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSOrAccess().getALSOrLeftOperandAction_1_0()); } +( + +) +{ after(grammarAccess.getALSOrAccess().getALSOrLeftOperandAction_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSOr__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSOr__Group_1__1__Impl + rule__ALSOr__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSOr__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSOrAccess().getAlternatives_1_1()); } +(rule__ALSOr__Alternatives_1_1) +{ after(grammarAccess.getALSOrAccess().getAlternatives_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSOr__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSOr__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSOr__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSOrAccess().getRightOperandAssignment_1_2()); } +(rule__ALSOr__RightOperandAssignment_1_2) +{ after(grammarAccess.getALSOrAccess().getRightOperandAssignment_1_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSIff__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSIff__Group__0__Impl + rule__ALSIff__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSIff__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSIffAccess().getALSImplParserRuleCall_0()); } + ruleALSImpl +{ after(grammarAccess.getALSIffAccess().getALSImplParserRuleCall_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSIff__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSIff__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSIff__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSIffAccess().getGroup_1()); } +(rule__ALSIff__Group_1__0)? +{ after(grammarAccess.getALSIffAccess().getGroup_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSIff__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSIff__Group_1__0__Impl + rule__ALSIff__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSIff__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSIffAccess().getALSIffLeftOperandAction_1_0()); } +( + +) +{ after(grammarAccess.getALSIffAccess().getALSIffLeftOperandAction_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSIff__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSIff__Group_1__1__Impl + rule__ALSIff__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSIff__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSIffAccess().getAlternatives_1_1()); } +(rule__ALSIff__Alternatives_1_1) +{ after(grammarAccess.getALSIffAccess().getAlternatives_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSIff__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSIff__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSIff__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSIffAccess().getRightOperandAssignment_1_2()); } +(rule__ALSIff__RightOperandAssignment_1_2) +{ after(grammarAccess.getALSIffAccess().getRightOperandAssignment_1_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSImpl__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSImpl__Group__0__Impl + rule__ALSImpl__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSImpl__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSImplAccess().getALSAndParserRuleCall_0()); } + ruleALSAnd +{ after(grammarAccess.getALSImplAccess().getALSAndParserRuleCall_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSImpl__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSImpl__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSImpl__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSImplAccess().getGroup_1()); } +(rule__ALSImpl__Group_1__0)? +{ after(grammarAccess.getALSImplAccess().getGroup_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSImpl__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSImpl__Group_1__0__Impl + rule__ALSImpl__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSImpl__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSImplAccess().getALSImplLeftOperandAction_1_0()); } +( + +) +{ after(grammarAccess.getALSImplAccess().getALSImplLeftOperandAction_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSImpl__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSImpl__Group_1__1__Impl + rule__ALSImpl__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSImpl__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSImplAccess().getAlternatives_1_1()); } +(rule__ALSImpl__Alternatives_1_1) +{ after(grammarAccess.getALSImplAccess().getAlternatives_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSImpl__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSImpl__Group_1__2__Impl + rule__ALSImpl__Group_1__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSImpl__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSImplAccess().getRightOperandAssignment_1_2()); } +(rule__ALSImpl__RightOperandAssignment_1_2) +{ after(grammarAccess.getALSImplAccess().getRightOperandAssignment_1_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSImpl__Group_1__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSImpl__Group_1__3__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSImpl__Group_1__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSImplAccess().getGroup_1_3()); } +(rule__ALSImpl__Group_1_3__0)? +{ after(grammarAccess.getALSImplAccess().getGroup_1_3()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + + + +rule__ALSImpl__Group_1_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSImpl__Group_1_3__0__Impl + rule__ALSImpl__Group_1_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSImpl__Group_1_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSImplAccess().getElseKeyword_1_3_0()); } + + 'else' + +{ after(grammarAccess.getALSImplAccess().getElseKeyword_1_3_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSImpl__Group_1_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSImpl__Group_1_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSImpl__Group_1_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSImplAccess().getElseOperandAssignment_1_3_1()); } +(rule__ALSImpl__ElseOperandAssignment_1_3_1) +{ after(grammarAccess.getALSImplAccess().getElseOperandAssignment_1_3_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSAnd__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSAnd__Group__0__Impl + rule__ALSAnd__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSAnd__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSAndAccess().getALSComparisonParserRuleCall_0()); } + ruleALSComparison +{ after(grammarAccess.getALSAndAccess().getALSComparisonParserRuleCall_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSAnd__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSAnd__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSAnd__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSAndAccess().getGroup_1()); } +(rule__ALSAnd__Group_1__0)? +{ after(grammarAccess.getALSAndAccess().getGroup_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSAnd__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSAnd__Group_1__0__Impl + rule__ALSAnd__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSAnd__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSAndAccess().getALSAndLeftOperandAction_1_0()); } +( + +) +{ after(grammarAccess.getALSAndAccess().getALSAndLeftOperandAction_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSAnd__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSAnd__Group_1__1__Impl + rule__ALSAnd__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSAnd__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSAndAccess().getAlternatives_1_1()); } +(rule__ALSAnd__Alternatives_1_1) +{ after(grammarAccess.getALSAndAccess().getAlternatives_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSAnd__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSAnd__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSAnd__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSAndAccess().getRightOperandAssignment_1_2()); } +(rule__ALSAnd__RightOperandAssignment_1_2) +{ after(grammarAccess.getALSAndAccess().getRightOperandAssignment_1_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSComparison__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSComparison__Group__0__Impl + rule__ALSComparison__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSComparison__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSComparisonAccess().getALSOverrideParserRuleCall_0()); } + ruleALSOverride +{ after(grammarAccess.getALSComparisonAccess().getALSOverrideParserRuleCall_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSComparison__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSComparison__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSComparison__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSComparisonAccess().getGroup_1()); } +(rule__ALSComparison__Group_1__0)? +{ after(grammarAccess.getALSComparisonAccess().getGroup_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSComparison__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSComparison__Group_1__0__Impl + rule__ALSComparison__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSComparison__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSComparisonAccess().getAlternatives_1_0()); } +(rule__ALSComparison__Alternatives_1_0) +{ after(grammarAccess.getALSComparisonAccess().getAlternatives_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSComparison__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSComparison__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSComparison__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSComparisonAccess().getRightOperandAssignment_1_1()); } +(rule__ALSComparison__RightOperandAssignment_1_1) +{ after(grammarAccess.getALSComparisonAccess().getRightOperandAssignment_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSComparison__Group_1_0_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSComparison__Group_1_0_0__0__Impl + rule__ALSComparison__Group_1_0_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSComparison__Group_1_0_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSComparisonAccess().getALSEqualsLeftOperandAction_1_0_0_0()); } +( + +) +{ after(grammarAccess.getALSComparisonAccess().getALSEqualsLeftOperandAction_1_0_0_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSComparison__Group_1_0_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSComparison__Group_1_0_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSComparison__Group_1_0_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSComparisonAccess().getEqualsSignKeyword_1_0_0_1()); } + + '=' + +{ after(grammarAccess.getALSComparisonAccess().getEqualsSignKeyword_1_0_0_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSComparison__Group_1_0_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSComparison__Group_1_0_1__0__Impl + rule__ALSComparison__Group_1_0_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSComparison__Group_1_0_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSComparisonAccess().getALSNotEqualsLeftOperandAction_1_0_1_0()); } +( + +) +{ after(grammarAccess.getALSComparisonAccess().getALSNotEqualsLeftOperandAction_1_0_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSComparison__Group_1_0_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSComparison__Group_1_0_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSComparison__Group_1_0_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSComparisonAccess().getExclamationMarkEqualsSignKeyword_1_0_1_1()); } + + '!=' + +{ after(grammarAccess.getALSComparisonAccess().getExclamationMarkEqualsSignKeyword_1_0_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSComparison__Group_1_0_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSComparison__Group_1_0_2__0__Impl + rule__ALSComparison__Group_1_0_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSComparison__Group_1_0_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSComparisonAccess().getALSSubsetLeftOperandAction_1_0_2_0()); } +( + +) +{ after(grammarAccess.getALSComparisonAccess().getALSSubsetLeftOperandAction_1_0_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSComparison__Group_1_0_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSComparison__Group_1_0_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSComparison__Group_1_0_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSComparisonAccess().getInKeyword_1_0_2_1()); } + + 'in' + +{ after(grammarAccess.getALSComparisonAccess().getInKeyword_1_0_2_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSComparison__Group_1_0_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSComparison__Group_1_0_3__0__Impl + rule__ALSComparison__Group_1_0_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSComparison__Group_1_0_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSComparisonAccess().getALSLessLeftOperandAction_1_0_3_0()); } +( + +) +{ after(grammarAccess.getALSComparisonAccess().getALSLessLeftOperandAction_1_0_3_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSComparison__Group_1_0_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSComparison__Group_1_0_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSComparison__Group_1_0_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSComparisonAccess().getGreaterThanSignKeyword_1_0_3_1()); } + + '>' + +{ after(grammarAccess.getALSComparisonAccess().getGreaterThanSignKeyword_1_0_3_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSComparison__Group_1_0_4__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSComparison__Group_1_0_4__0__Impl + rule__ALSComparison__Group_1_0_4__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSComparison__Group_1_0_4__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSComparisonAccess().getALSLeqLeftOperandAction_1_0_4_0()); } +( + +) +{ after(grammarAccess.getALSComparisonAccess().getALSLeqLeftOperandAction_1_0_4_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSComparison__Group_1_0_4__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSComparison__Group_1_0_4__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSComparison__Group_1_0_4__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSComparisonAccess().getGreaterThanSignEqualsSignKeyword_1_0_4_1()); } + + '>=' + +{ after(grammarAccess.getALSComparisonAccess().getGreaterThanSignEqualsSignKeyword_1_0_4_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSComparison__Group_1_0_5__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSComparison__Group_1_0_5__0__Impl + rule__ALSComparison__Group_1_0_5__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSComparison__Group_1_0_5__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSComparisonAccess().getALSMoreLeftOperandAction_1_0_5_0()); } +( + +) +{ after(grammarAccess.getALSComparisonAccess().getALSMoreLeftOperandAction_1_0_5_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSComparison__Group_1_0_5__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSComparison__Group_1_0_5__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSComparison__Group_1_0_5__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSComparisonAccess().getLessThanSignKeyword_1_0_5_1()); } + + '<' + +{ after(grammarAccess.getALSComparisonAccess().getLessThanSignKeyword_1_0_5_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSComparison__Group_1_0_6__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSComparison__Group_1_0_6__0__Impl + rule__ALSComparison__Group_1_0_6__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSComparison__Group_1_0_6__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSComparisonAccess().getALSMeqLeftOperandAction_1_0_6_0()); } +( + +) +{ after(grammarAccess.getALSComparisonAccess().getALSMeqLeftOperandAction_1_0_6_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSComparison__Group_1_0_6__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSComparison__Group_1_0_6__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSComparison__Group_1_0_6__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSComparisonAccess().getLessThanSignEqualsSignKeyword_1_0_6_1()); } + + '<=' + +{ after(grammarAccess.getALSComparisonAccess().getLessThanSignEqualsSignKeyword_1_0_6_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSOverride__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSOverride__Group__0__Impl + rule__ALSOverride__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSOverride__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSOverrideAccess().getALSRangeRestrictionRightParserRuleCall_0()); } + ruleALSRangeRestrictionRight +{ after(grammarAccess.getALSOverrideAccess().getALSRangeRestrictionRightParserRuleCall_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSOverride__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSOverride__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSOverride__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSOverrideAccess().getGroup_1()); } +(rule__ALSOverride__Group_1__0)? +{ after(grammarAccess.getALSOverrideAccess().getGroup_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSOverride__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSOverride__Group_1__0__Impl + rule__ALSOverride__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSOverride__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSOverrideAccess().getALSOverrideLeftOperandAction_1_0()); } +( + +) +{ after(grammarAccess.getALSOverrideAccess().getALSOverrideLeftOperandAction_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSOverride__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSOverride__Group_1__1__Impl + rule__ALSOverride__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSOverride__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSOverrideAccess().getPlusSignPlusSignKeyword_1_1()); } + + '++' + +{ after(grammarAccess.getALSOverrideAccess().getPlusSignPlusSignKeyword_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSOverride__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSOverride__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSOverride__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSOverrideAccess().getRightOperandAssignment_1_2()); } +(rule__ALSOverride__RightOperandAssignment_1_2) +{ after(grammarAccess.getALSOverrideAccess().getRightOperandAssignment_1_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSRangeRestrictionRight__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRangeRestrictionRight__Group__0__Impl + rule__ALSRangeRestrictionRight__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRangeRestrictionRight__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRangeRestrictionRightAccess().getALSRangeRestrictionLeftParserRuleCall_0()); } + ruleALSRangeRestrictionLeft +{ after(grammarAccess.getALSRangeRestrictionRightAccess().getALSRangeRestrictionLeftParserRuleCall_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRangeRestrictionRight__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRangeRestrictionRight__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRangeRestrictionRight__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRangeRestrictionRightAccess().getGroup_1()); } +(rule__ALSRangeRestrictionRight__Group_1__0)? +{ after(grammarAccess.getALSRangeRestrictionRightAccess().getGroup_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSRangeRestrictionRight__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRangeRestrictionRight__Group_1__0__Impl + rule__ALSRangeRestrictionRight__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRangeRestrictionRight__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRangeRestrictionRightAccess().getALSRangeRestrictionRightRelationAction_1_0()); } +( + +) +{ after(grammarAccess.getALSRangeRestrictionRightAccess().getALSRangeRestrictionRightRelationAction_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRangeRestrictionRight__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRangeRestrictionRight__Group_1__1__Impl + rule__ALSRangeRestrictionRight__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRangeRestrictionRight__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRangeRestrictionRightAccess().getColonGreaterThanSignKeyword_1_1()); } + + ':>' + +{ after(grammarAccess.getALSRangeRestrictionRightAccess().getColonGreaterThanSignKeyword_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRangeRestrictionRight__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRangeRestrictionRight__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRangeRestrictionRight__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRangeRestrictionRightAccess().getFilterAssignment_1_2()); } +(rule__ALSRangeRestrictionRight__FilterAssignment_1_2) +{ after(grammarAccess.getALSRangeRestrictionRightAccess().getFilterAssignment_1_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSRangeRestrictionLeft__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRangeRestrictionLeft__Group__0__Impl + rule__ALSRangeRestrictionLeft__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRangeRestrictionLeft__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRangeRestrictionLeftAccess().getALSJoinParserRuleCall_0()); } + ruleALSJoin +{ after(grammarAccess.getALSRangeRestrictionLeftAccess().getALSJoinParserRuleCall_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRangeRestrictionLeft__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRangeRestrictionLeft__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRangeRestrictionLeft__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRangeRestrictionLeftAccess().getGroup_1()); } +(rule__ALSRangeRestrictionLeft__Group_1__0)? +{ after(grammarAccess.getALSRangeRestrictionLeftAccess().getGroup_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSRangeRestrictionLeft__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRangeRestrictionLeft__Group_1__0__Impl + rule__ALSRangeRestrictionLeft__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRangeRestrictionLeft__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRangeRestrictionLeftAccess().getALSRangeRestrictionLeftFilterAction_1_0()); } +( + +) +{ after(grammarAccess.getALSRangeRestrictionLeftAccess().getALSRangeRestrictionLeftFilterAction_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRangeRestrictionLeft__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRangeRestrictionLeft__Group_1__1__Impl + rule__ALSRangeRestrictionLeft__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRangeRestrictionLeft__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRangeRestrictionLeftAccess().getLessThanSignColonKeyword_1_1()); } + + '<:' + +{ after(grammarAccess.getALSRangeRestrictionLeftAccess().getLessThanSignColonKeyword_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRangeRestrictionLeft__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRangeRestrictionLeft__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRangeRestrictionLeft__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRangeRestrictionLeftAccess().getRelationAssignment_1_2()); } +(rule__ALSRangeRestrictionLeft__RelationAssignment_1_2) +{ after(grammarAccess.getALSRangeRestrictionLeftAccess().getRelationAssignment_1_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSJoin__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSJoin__Group__0__Impl + rule__ALSJoin__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSJoin__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSJoinAccess().getALSMinusParserRuleCall_0()); } + ruleALSMinus +{ after(grammarAccess.getALSJoinAccess().getALSMinusParserRuleCall_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSJoin__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSJoin__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSJoin__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSJoinAccess().getGroup_1()); } +(rule__ALSJoin__Group_1__0)* +{ after(grammarAccess.getALSJoinAccess().getGroup_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSJoin__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSJoin__Group_1__0__Impl + rule__ALSJoin__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSJoin__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSJoinAccess().getALSJoinLeftOperandAction_1_0()); } +( + +) +{ after(grammarAccess.getALSJoinAccess().getALSJoinLeftOperandAction_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSJoin__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSJoin__Group_1__1__Impl + rule__ALSJoin__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSJoin__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSJoinAccess().getFullStopKeyword_1_1()); } + + '.' + +{ after(grammarAccess.getALSJoinAccess().getFullStopKeyword_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSJoin__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSJoin__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSJoin__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSJoinAccess().getRightOperandAssignment_1_2()); } +(rule__ALSJoin__RightOperandAssignment_1_2) +{ after(grammarAccess.getALSJoinAccess().getRightOperandAssignment_1_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSMinus__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSMinus__Group__0__Impl + rule__ALSMinus__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSMinus__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSMinusAccess().getALSPlusParserRuleCall_0()); } + ruleALSPlus +{ after(grammarAccess.getALSMinusAccess().getALSPlusParserRuleCall_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSMinus__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSMinus__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSMinus__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSMinusAccess().getGroup_1()); } +(rule__ALSMinus__Group_1__0)* +{ after(grammarAccess.getALSMinusAccess().getGroup_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSMinus__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSMinus__Group_1__0__Impl + rule__ALSMinus__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSMinus__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSMinusAccess().getALSMinusLeftOperandAction_1_0()); } +( + +) +{ after(grammarAccess.getALSMinusAccess().getALSMinusLeftOperandAction_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSMinus__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSMinus__Group_1__1__Impl + rule__ALSMinus__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSMinus__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSMinusAccess().getHyphenMinusKeyword_1_1()); } + + '-' + +{ after(grammarAccess.getALSMinusAccess().getHyphenMinusKeyword_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSMinus__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSMinus__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSMinus__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSMinusAccess().getRightOperandAssignment_1_2()); } +(rule__ALSMinus__RightOperandAssignment_1_2) +{ after(grammarAccess.getALSMinusAccess().getRightOperandAssignment_1_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSPlus__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPlus__Group__0__Impl + rule__ALSPlus__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPlus__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPlusAccess().getALSIntersectionParserRuleCall_0()); } + ruleALSIntersection +{ after(grammarAccess.getALSPlusAccess().getALSIntersectionParserRuleCall_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPlus__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPlus__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPlus__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPlusAccess().getGroup_1()); } +(rule__ALSPlus__Group_1__0)* +{ after(grammarAccess.getALSPlusAccess().getGroup_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSPlus__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPlus__Group_1__0__Impl + rule__ALSPlus__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPlus__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPlusAccess().getALSPlusLeftOperandAction_1_0()); } +( + +) +{ after(grammarAccess.getALSPlusAccess().getALSPlusLeftOperandAction_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPlus__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPlus__Group_1__1__Impl + rule__ALSPlus__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPlus__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPlusAccess().getPlusSignKeyword_1_1()); } + + '+' + +{ after(grammarAccess.getALSPlusAccess().getPlusSignKeyword_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPlus__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPlus__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPlus__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPlusAccess().getRightOperandAssignment_1_2()); } +(rule__ALSPlus__RightOperandAssignment_1_2) +{ after(grammarAccess.getALSPlusAccess().getRightOperandAssignment_1_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSIntersection__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSIntersection__Group__0__Impl + rule__ALSIntersection__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSIntersection__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSIntersectionAccess().getALSDirectProductParserRuleCall_0()); } + ruleALSDirectProduct +{ after(grammarAccess.getALSIntersectionAccess().getALSDirectProductParserRuleCall_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSIntersection__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSIntersection__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSIntersection__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSIntersectionAccess().getGroup_1()); } +(rule__ALSIntersection__Group_1__0)* +{ after(grammarAccess.getALSIntersectionAccess().getGroup_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSIntersection__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSIntersection__Group_1__0__Impl + rule__ALSIntersection__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSIntersection__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSIntersectionAccess().getALSIntersectionLeftOperandAction_1_0()); } +( + +) +{ after(grammarAccess.getALSIntersectionAccess().getALSIntersectionLeftOperandAction_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSIntersection__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSIntersection__Group_1__1__Impl + rule__ALSIntersection__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSIntersection__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSIntersectionAccess().getAmpersandKeyword_1_1()); } + + '&' + +{ after(grammarAccess.getALSIntersectionAccess().getAmpersandKeyword_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSIntersection__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSIntersection__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSIntersection__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSIntersectionAccess().getRightOperandAssignment_1_2()); } +(rule__ALSIntersection__RightOperandAssignment_1_2) +{ after(grammarAccess.getALSIntersectionAccess().getRightOperandAssignment_1_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSDirectProduct__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSDirectProduct__Group__0__Impl + rule__ALSDirectProduct__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSDirectProduct__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSDirectProductAccess().getALSPreficedParserRuleCall_0()); } + ruleALSPreficed +{ after(grammarAccess.getALSDirectProductAccess().getALSPreficedParserRuleCall_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSDirectProduct__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSDirectProduct__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSDirectProduct__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSDirectProductAccess().getGroup_1()); } +(rule__ALSDirectProduct__Group_1__0)? +{ after(grammarAccess.getALSDirectProductAccess().getGroup_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSDirectProduct__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSDirectProduct__Group_1__0__Impl + rule__ALSDirectProduct__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSDirectProduct__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSDirectProductAccess().getALSDirectProductLeftOperandAction_1_0()); } +( + +) +{ after(grammarAccess.getALSDirectProductAccess().getALSDirectProductLeftOperandAction_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSDirectProduct__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSDirectProduct__Group_1__1__Impl + rule__ALSDirectProduct__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSDirectProduct__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSDirectProductAccess().getLeftMultiplicitAssignment_1_1()); } +(rule__ALSDirectProduct__LeftMultiplicitAssignment_1_1)? +{ after(grammarAccess.getALSDirectProductAccess().getLeftMultiplicitAssignment_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSDirectProduct__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSDirectProduct__Group_1__2__Impl + rule__ALSDirectProduct__Group_1__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSDirectProduct__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSDirectProductAccess().getHyphenMinusGreaterThanSignKeyword_1_2()); } + + '->' + +{ after(grammarAccess.getALSDirectProductAccess().getHyphenMinusGreaterThanSignKeyword_1_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSDirectProduct__Group_1__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSDirectProduct__Group_1__3__Impl + rule__ALSDirectProduct__Group_1__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSDirectProduct__Group_1__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSDirectProductAccess().getRightMultiplicitAssignment_1_3()); } +(rule__ALSDirectProduct__RightMultiplicitAssignment_1_3)? +{ after(grammarAccess.getALSDirectProductAccess().getRightMultiplicitAssignment_1_3()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSDirectProduct__Group_1__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSDirectProduct__Group_1__4__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSDirectProduct__Group_1__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSDirectProductAccess().getRightOperandAssignment_1_4()); } +(rule__ALSDirectProduct__RightOperandAssignment_1_4) +{ after(grammarAccess.getALSDirectProductAccess().getRightOperandAssignment_1_4()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + + + + + +rule__ALSPreficed__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_0__0__Impl + rule__ALSPreficed__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getALSNotAction_0_0()); } +( + +) +{ after(grammarAccess.getALSPreficedAccess().getALSNotAction_0_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_0__1__Impl + rule__ALSPreficed__Group_0__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getGroup_0_1()); } +(rule__ALSPreficed__Group_0_1__0) +{ after(grammarAccess.getALSPreficedAccess().getGroup_0_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_0__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_0__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_0__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getOperandAssignment_0_2()); } +(rule__ALSPreficed__OperandAssignment_0_2) +{ after(grammarAccess.getALSPreficedAccess().getOperandAssignment_0_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSPreficed__Group_0_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_0_1__0__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_0_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getAlternatives_0_1_0()); } +(rule__ALSPreficed__Alternatives_0_1_0) +{ after(grammarAccess.getALSPreficedAccess().getAlternatives_0_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + +rule__ALSPreficed__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_1__0__Impl + rule__ALSPreficed__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getALSInverseRelationAction_1_0()); } +( + +) +{ after(grammarAccess.getALSPreficedAccess().getALSInverseRelationAction_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_1__1__Impl + rule__ALSPreficed__Group_1__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getTildeKeyword_1_1()); } +( + '~' +) +{ after(grammarAccess.getALSPreficedAccess().getTildeKeyword_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_1__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_1__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_1__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getOperandAssignment_1_2()); } +(rule__ALSPreficed__OperandAssignment_1_2) +{ after(grammarAccess.getALSPreficedAccess().getOperandAssignment_1_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSPreficed__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_2__0__Impl + rule__ALSPreficed__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getAlSTransitiveClosureAction_2_0()); } +( + +) +{ after(grammarAccess.getALSPreficedAccess().getAlSTransitiveClosureAction_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_2__1__Impl + rule__ALSPreficed__Group_2__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getCircumflexAccentKeyword_2_1()); } + + '^' + +{ after(grammarAccess.getALSPreficedAccess().getCircumflexAccentKeyword_2_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_2__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_2__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_2__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getOperandAssignment_2_2()); } +(rule__ALSPreficed__OperandAssignment_2_2) +{ after(grammarAccess.getALSPreficedAccess().getOperandAssignment_2_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSPreficed__Group_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_3__0__Impl + rule__ALSPreficed__Group_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getALSReflectiveTransitiveClosureAction_3_0()); } +( + +) +{ after(grammarAccess.getALSPreficedAccess().getALSReflectiveTransitiveClosureAction_3_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_3__1__Impl + rule__ALSPreficed__Group_3__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getAsteriskKeyword_3_1()); } + + '*' + +{ after(grammarAccess.getALSPreficedAccess().getAsteriskKeyword_3_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_3__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_3__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_3__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getOperandAssignment_3_2()); } +(rule__ALSPreficed__OperandAssignment_3_2) +{ after(grammarAccess.getALSPreficedAccess().getOperandAssignment_3_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSPreficed__Group_4__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_4__0__Impl + rule__ALSPreficed__Group_4__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_4__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getALSCardinalityAction_4_0()); } +( + +) +{ after(grammarAccess.getALSPreficedAccess().getALSCardinalityAction_4_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_4__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_4__1__Impl + rule__ALSPreficed__Group_4__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_4__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getNumberSignKeyword_4_1()); } + + '#' + +{ after(grammarAccess.getALSPreficedAccess().getNumberSignKeyword_4_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_4__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_4__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_4__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getOperandAssignment_4_2()); } +(rule__ALSPreficed__OperandAssignment_4_2) +{ after(grammarAccess.getALSPreficedAccess().getOperandAssignment_4_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSPreficed__Group_5__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_5__0__Impl + rule__ALSPreficed__Group_5__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_5__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getALSUnaryMinusAction_5_0()); } +( + +) +{ after(grammarAccess.getALSPreficedAccess().getALSUnaryMinusAction_5_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_5__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_5__1__Impl + rule__ALSPreficed__Group_5__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_5__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getHyphenMinusKeyword_5_1()); } +( + '-' +) +{ after(grammarAccess.getALSPreficedAccess().getHyphenMinusKeyword_5_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_5__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_5__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_5__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getOperandAssignment_5_2()); } +(rule__ALSPreficed__OperandAssignment_5_2) +{ after(grammarAccess.getALSPreficedAccess().getOperandAssignment_5_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSPreficed__Group_6__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_6__0__Impl + rule__ALSPreficed__Group_6__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_6__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getALSSumAction_6_0()); } +( + +) +{ after(grammarAccess.getALSPreficedAccess().getALSSumAction_6_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_6__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_6__1__Impl + rule__ALSPreficed__Group_6__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_6__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getSumKeyword_6_1()); } + + 'sum' + +{ after(grammarAccess.getALSPreficedAccess().getSumKeyword_6_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_6__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_6__2__Impl + rule__ALSPreficed__Group_6__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_6__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getVariablesAssignment_6_2()); } +(rule__ALSPreficed__VariablesAssignment_6_2) +{ after(grammarAccess.getALSPreficedAccess().getVariablesAssignment_6_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_6__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_6__3__Impl + rule__ALSPreficed__Group_6__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_6__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getGroup_6_3()); } +(rule__ALSPreficed__Group_6_3__0)* +{ after(grammarAccess.getALSPreficedAccess().getGroup_6_3()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_6__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_6__4__Impl + rule__ALSPreficed__Group_6__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_6__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getLeftCurlyBracketKeyword_6_4()); } + + '{' + +{ after(grammarAccess.getALSPreficedAccess().getLeftCurlyBracketKeyword_6_4()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_6__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_6__5__Impl + rule__ALSPreficed__Group_6__6 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_6__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getExpressionAssignment_6_5()); } +(rule__ALSPreficed__ExpressionAssignment_6_5) +{ after(grammarAccess.getALSPreficedAccess().getExpressionAssignment_6_5()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_6__6 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_6__6__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_6__6__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getRightCurlyBracketKeyword_6_6()); } + + '}' + +{ after(grammarAccess.getALSPreficedAccess().getRightCurlyBracketKeyword_6_6()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + + + + + + + + + +rule__ALSPreficed__Group_6_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_6_3__0__Impl + rule__ALSPreficed__Group_6_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_6_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getCommaKeyword_6_3_0()); } + + ',' + +{ after(grammarAccess.getALSPreficedAccess().getCommaKeyword_6_3_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_6_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_6_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_6_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getVariablesAssignment_6_3_1()); } +(rule__ALSPreficed__VariablesAssignment_6_3_1) +{ after(grammarAccess.getALSPreficedAccess().getVariablesAssignment_6_3_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSPreficed__Group_7__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_7__0__Impl + rule__ALSPreficed__Group_7__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_7__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getALSFunctionCallAction_7_0()); } +( + +) +{ after(grammarAccess.getALSPreficedAccess().getALSFunctionCallAction_7_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_7__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_7__1__Impl + rule__ALSPreficed__Group_7__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_7__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getAlternatives_7_1()); } +(rule__ALSPreficed__Alternatives_7_1) +{ after(grammarAccess.getALSPreficedAccess().getAlternatives_7_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_7__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_7__2__Impl + rule__ALSPreficed__Group_7__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_7__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getLeftSquareBracketKeyword_7_2()); } + + '[' + +{ after(grammarAccess.getALSPreficedAccess().getLeftSquareBracketKeyword_7_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_7__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_7__3__Impl + rule__ALSPreficed__Group_7__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_7__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getParamsAssignment_7_3()); } +(rule__ALSPreficed__ParamsAssignment_7_3) +{ after(grammarAccess.getALSPreficedAccess().getParamsAssignment_7_3()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_7__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_7__4__Impl + rule__ALSPreficed__Group_7__5 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_7__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getGroup_7_4()); } +(rule__ALSPreficed__Group_7_4__0)* +{ after(grammarAccess.getALSPreficedAccess().getGroup_7_4()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_7__5 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_7__5__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_7__5__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getRightSquareBracketKeyword_7_5()); } + + ']' + +{ after(grammarAccess.getALSPreficedAccess().getRightSquareBracketKeyword_7_5()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + + + + + + + +rule__ALSPreficed__Group_7_4__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_7_4__0__Impl + rule__ALSPreficed__Group_7_4__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_7_4__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getCommaKeyword_7_4_0()); } + + ',' + +{ after(grammarAccess.getALSPreficedAccess().getCommaKeyword_7_4_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSPreficed__Group_7_4__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSPreficed__Group_7_4__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__Group_7_4__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getParamsAssignment_7_4_1()); } +(rule__ALSPreficed__ParamsAssignment_7_4_1) +{ after(grammarAccess.getALSPreficedAccess().getParamsAssignment_7_4_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSVariableDeclaration__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSVariableDeclaration__Group__0__Impl + rule__ALSVariableDeclaration__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSVariableDeclaration__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSVariableDeclarationAccess().getNameAssignment_0()); } +(rule__ALSVariableDeclaration__NameAssignment_0) +{ after(grammarAccess.getALSVariableDeclarationAccess().getNameAssignment_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSVariableDeclaration__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSVariableDeclaration__Group__1__Impl + rule__ALSVariableDeclaration__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSVariableDeclaration__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSVariableDeclarationAccess().getColonKeyword_1()); } + + ':' + +{ after(grammarAccess.getALSVariableDeclarationAccess().getColonKeyword_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSVariableDeclaration__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSVariableDeclaration__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSVariableDeclaration__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSVariableDeclarationAccess().getRangeAssignment_2()); } +(rule__ALSVariableDeclaration__RangeAssignment_2) +{ after(grammarAccess.getALSVariableDeclarationAccess().getRangeAssignment_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSBasicRelationTerm__Group_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSBasicRelationTerm__Group_0__0__Impl + rule__ALSBasicRelationTerm__Group_0__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__Group_0__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getALSNoneAction_0_0()); } +( + +) +{ after(grammarAccess.getALSBasicRelationTermAccess().getALSNoneAction_0_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSBasicRelationTerm__Group_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSBasicRelationTerm__Group_0__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__Group_0__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getNoneKeyword_0_1()); } + + 'none' + +{ after(grammarAccess.getALSBasicRelationTermAccess().getNoneKeyword_0_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSBasicRelationTerm__Group_1__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSBasicRelationTerm__Group_1__0__Impl + rule__ALSBasicRelationTerm__Group_1__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__Group_1__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getALSIdenAction_1_0()); } +( + +) +{ after(grammarAccess.getALSBasicRelationTermAccess().getALSIdenAction_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSBasicRelationTerm__Group_1__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSBasicRelationTerm__Group_1__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__Group_1__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getIdenKeyword_1_1()); } + + 'iden' + +{ after(grammarAccess.getALSBasicRelationTermAccess().getIdenKeyword_1_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSBasicRelationTerm__Group_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSBasicRelationTerm__Group_2__0__Impl + rule__ALSBasicRelationTerm__Group_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__Group_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getALSUnivAction_2_0()); } +( + +) +{ after(grammarAccess.getALSBasicRelationTermAccess().getALSUnivAction_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSBasicRelationTerm__Group_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSBasicRelationTerm__Group_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__Group_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getUnivKeyword_2_1()); } + + 'univ' + +{ after(grammarAccess.getALSBasicRelationTermAccess().getUnivKeyword_2_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSBasicRelationTerm__Group_3__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSBasicRelationTerm__Group_3__0__Impl + rule__ALSBasicRelationTerm__Group_3__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__Group_3__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getALSIntAction_3_0()); } +( + +) +{ after(grammarAccess.getALSBasicRelationTermAccess().getALSIntAction_3_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSBasicRelationTerm__Group_3__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSBasicRelationTerm__Group_3__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__Group_3__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getIntKeyword_3_1()); } + + 'Int' + +{ after(grammarAccess.getALSBasicRelationTermAccess().getIntKeyword_3_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSBasicRelationTerm__Group_4__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSBasicRelationTerm__Group_4__0__Impl + rule__ALSBasicRelationTerm__Group_4__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__Group_4__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getALSStringAction_4_0()); } +( + +) +{ after(grammarAccess.getALSBasicRelationTermAccess().getALSStringAction_4_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSBasicRelationTerm__Group_4__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSBasicRelationTerm__Group_4__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__Group_4__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getStringKeyword_4_1()); } + + 'String' + +{ after(grammarAccess.getALSBasicRelationTermAccess().getStringKeyword_4_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSBasicRelationTerm__Group_5__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSBasicRelationTerm__Group_5__0__Impl + rule__ALSBasicRelationTerm__Group_5__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__Group_5__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getALSReferenceAction_5_0()); } +( + +) +{ after(grammarAccess.getALSBasicRelationTermAccess().getALSReferenceAction_5_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSBasicRelationTerm__Group_5__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSBasicRelationTerm__Group_5__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__Group_5__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getReferredAssignment_5_1()); } +(rule__ALSBasicRelationTerm__ReferredAssignment_5_1) +{ after(grammarAccess.getALSBasicRelationTermAccess().getReferredAssignment_5_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSBasicRelationTerm__Group_6__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSBasicRelationTerm__Group_6__0__Impl + rule__ALSBasicRelationTerm__Group_6__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__Group_6__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getALSNumberLiteralAction_6_0()); } +( + +) +{ after(grammarAccess.getALSBasicRelationTermAccess().getALSNumberLiteralAction_6_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSBasicRelationTerm__Group_6__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSBasicRelationTerm__Group_6__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__Group_6__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getValueAssignment_6_1()); } +(rule__ALSBasicRelationTerm__ValueAssignment_6_1) +{ after(grammarAccess.getALSBasicRelationTermAccess().getValueAssignment_6_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSBasicRelationTerm__Group_7__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSBasicRelationTerm__Group_7__0__Impl + rule__ALSBasicRelationTerm__Group_7__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__Group_7__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getALSStringLiteralAction_7_0()); } +( + +) +{ after(grammarAccess.getALSBasicRelationTermAccess().getALSStringLiteralAction_7_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSBasicRelationTerm__Group_7__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSBasicRelationTerm__Group_7__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__Group_7__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getValueAssignment_7_1()); } +(rule__ALSBasicRelationTerm__ValueAssignment_7_1) +{ after(grammarAccess.getALSBasicRelationTermAccess().getValueAssignment_7_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSBasicRelationTerm__Group_8__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSBasicRelationTerm__Group_8__0__Impl + rule__ALSBasicRelationTerm__Group_8__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__Group_8__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getLeftParenthesisKeyword_8_0()); } + + '(' + +{ after(grammarAccess.getALSBasicRelationTermAccess().getLeftParenthesisKeyword_8_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSBasicRelationTerm__Group_8__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSBasicRelationTerm__Group_8__1__Impl + rule__ALSBasicRelationTerm__Group_8__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__Group_8__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getALSTermParserRuleCall_8_1()); } + ruleALSTerm +{ after(grammarAccess.getALSBasicRelationTermAccess().getALSTermParserRuleCall_8_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSBasicRelationTerm__Group_8__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSBasicRelationTerm__Group_8__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__Group_8__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getRightParenthesisKeyword_8_2()); } + + ')' + +{ after(grammarAccess.getALSBasicRelationTermAccess().getRightParenthesisKeyword_8_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSRunCommand__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRunCommand__Group__0__Impl + rule__ALSRunCommand__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRunCommand__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRunCommandAccess().getALSRunCommandAction_0()); } +( + +) +{ after(grammarAccess.getALSRunCommandAccess().getALSRunCommandAction_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRunCommand__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRunCommand__Group__1__Impl + rule__ALSRunCommand__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRunCommand__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRunCommandAccess().getRunKeyword_1()); } + + 'run' + +{ after(grammarAccess.getALSRunCommandAccess().getRunKeyword_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRunCommand__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRunCommand__Group__2__Impl + rule__ALSRunCommand__Group__3 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRunCommand__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRunCommandAccess().getLeftCurlyBracketKeyword_2()); } + + '{' + +{ after(grammarAccess.getALSRunCommandAccess().getLeftCurlyBracketKeyword_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRunCommand__Group__3 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRunCommand__Group__3__Impl + rule__ALSRunCommand__Group__4 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRunCommand__Group__3__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRunCommandAccess().getRightCurlyBracketKeyword_3()); } + + '}' + +{ after(grammarAccess.getALSRunCommandAccess().getRightCurlyBracketKeyword_3()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRunCommand__Group__4 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRunCommand__Group__4__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRunCommand__Group__4__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRunCommandAccess().getGroup_4()); } +(rule__ALSRunCommand__Group_4__0)? +{ after(grammarAccess.getALSRunCommandAccess().getGroup_4()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + + + + + +rule__ALSRunCommand__Group_4__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRunCommand__Group_4__0__Impl + rule__ALSRunCommand__Group_4__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRunCommand__Group_4__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRunCommandAccess().getForKeyword_4_0()); } + + 'for' + +{ after(grammarAccess.getALSRunCommandAccess().getForKeyword_4_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRunCommand__Group_4__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRunCommand__Group_4__1__Impl + rule__ALSRunCommand__Group_4__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRunCommand__Group_4__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRunCommandAccess().getTypeScopesAssignment_4_1()); } +(rule__ALSRunCommand__TypeScopesAssignment_4_1) +{ after(grammarAccess.getALSRunCommandAccess().getTypeScopesAssignment_4_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRunCommand__Group_4__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRunCommand__Group_4__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRunCommand__Group_4__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRunCommandAccess().getGroup_4_2()); } +(rule__ALSRunCommand__Group_4_2__0)* +{ after(grammarAccess.getALSRunCommandAccess().getGroup_4_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSRunCommand__Group_4_2__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRunCommand__Group_4_2__0__Impl + rule__ALSRunCommand__Group_4_2__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRunCommand__Group_4_2__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRunCommandAccess().getCommaKeyword_4_2_0()); } + + ',' + +{ after(grammarAccess.getALSRunCommandAccess().getCommaKeyword_4_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSRunCommand__Group_4_2__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSRunCommand__Group_4_2__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRunCommand__Group_4_2__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRunCommandAccess().getTypeScopesAssignment_4_2_1()); } +(rule__ALSRunCommand__TypeScopesAssignment_4_2_1) +{ after(grammarAccess.getALSRunCommandAccess().getTypeScopesAssignment_4_2_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSSigScope__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSigScope__Group__0__Impl + rule__ALSSigScope__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSigScope__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSigScopeAccess().getExactlyAssignment_0()); } +(rule__ALSSigScope__ExactlyAssignment_0)? +{ after(grammarAccess.getALSSigScopeAccess().getExactlyAssignment_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSSigScope__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSigScope__Group__1__Impl + rule__ALSSigScope__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSigScope__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSigScopeAccess().getNumberAssignment_1()); } +(rule__ALSSigScope__NumberAssignment_1) +{ after(grammarAccess.getALSSigScopeAccess().getNumberAssignment_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSSigScope__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSigScope__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSigScope__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSigScopeAccess().getTypeAssignment_2()); } +(rule__ALSSigScope__TypeAssignment_2) +{ after(grammarAccess.getALSSigScopeAccess().getTypeAssignment_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + +rule__ALSIntScope__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSIntScope__Group__0__Impl + rule__ALSIntScope__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSIntScope__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSIntScopeAccess().getNumberAssignment_0()); } +(rule__ALSIntScope__NumberAssignment_0) +{ after(grammarAccess.getALSIntScopeAccess().getNumberAssignment_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSIntScope__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSIntScope__Group__1__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSIntScope__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSIntScopeAccess().getIntKeyword_1()); } + + 'Int' + +{ after(grammarAccess.getALSIntScopeAccess().getIntKeyword_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSStringScope__Group__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSStringScope__Group__0__Impl + rule__ALSStringScope__Group__1 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSStringScope__Group__0__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSStringScopeAccess().getExactlyKeyword_0()); } + + 'exactly' + +{ after(grammarAccess.getALSStringScopeAccess().getExactlyKeyword_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSStringScope__Group__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSStringScope__Group__1__Impl + rule__ALSStringScope__Group__2 +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSStringScope__Group__1__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSStringScopeAccess().getNumberAssignment_1()); } +(rule__ALSStringScope__NumberAssignment_1) +{ after(grammarAccess.getALSStringScopeAccess().getNumberAssignment_1()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSStringScope__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSStringScope__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSStringScope__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSStringScopeAccess().getStringKeyword_2()); } + + 'String' + +{ after(grammarAccess.getALSStringScopeAccess().getStringKeyword_2()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + + + + + + + + +rule__ALSSignatureBody__UnorderedGroup_0 + @init { + int stackSize = keepStackSize(); + getUnorderedGroupHelper().enter(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0()); + } +: + rule__ALSSignatureBody__UnorderedGroup_0__0 + ? + +; +finally { + getUnorderedGroupHelper().leave(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0()); + restoreStackSize(stackSize); +} + + +rule__ALSSignatureBody__UnorderedGroup_0__Impl + @init { + int stackSize = keepStackSize(); + boolean selected = false; + } +: + ( + + ( + {getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0)}?=>( + { + getUnorderedGroupHelper().select(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0); + } + { + selected = true; + } + ( + + { before(grammarAccess.getALSSignatureBodyAccess().getMultiplicityAssignment_0_0()); } + (rule__ALSSignatureBody__MultiplicityAssignment_0_0) + { after(grammarAccess.getALSSignatureBodyAccess().getMultiplicityAssignment_0_0()); } + ) + ) + ) | + + ( + {getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 1)}?=>( + { + getUnorderedGroupHelper().select(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 1); + } + { + selected = true; + } + ( + + { before(grammarAccess.getALSSignatureBodyAccess().getAbstractAssignment_0_1()); } + (rule__ALSSignatureBody__AbstractAssignment_0_1) + { after(grammarAccess.getALSSignatureBodyAccess().getAbstractAssignment_0_1()); } + ) + ) + ) + + ) +; +finally { + if (selected) + getUnorderedGroupHelper().returnFromSelection(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0()); + restoreStackSize(stackSize); +} + + +rule__ALSSignatureBody__UnorderedGroup_0__0 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__UnorderedGroup_0__Impl + rule__ALSSignatureBody__UnorderedGroup_0__1? +; +finally { + restoreStackSize(stackSize); +} + + +rule__ALSSignatureBody__UnorderedGroup_0__1 + @init { + int stackSize = keepStackSize(); + } +: + rule__ALSSignatureBody__UnorderedGroup_0__Impl +; +finally { + restoreStackSize(stackSize); +} + + + + + + +rule__ALSDocument__EnumDeclarationsAssignment_0_0 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSDocumentAccess().getEnumDeclarationsALSEnumDeclarationParserRuleCall_0_0_0()); } + ruleALSEnumDeclaration{ after(grammarAccess.getALSDocumentAccess().getEnumDeclarationsALSEnumDeclarationParserRuleCall_0_0_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSDocument__SignatureBodiesAssignment_0_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSDocumentAccess().getSignatureBodiesALSSignatureBodyParserRuleCall_0_1_0()); } + ruleALSSignatureBody{ after(grammarAccess.getALSDocumentAccess().getSignatureBodiesALSSignatureBodyParserRuleCall_0_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSDocument__FunctionDefinitionsAssignment_0_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSDocumentAccess().getFunctionDefinitionsALSFunctionDefinitionParserRuleCall_0_2_0()); } + ruleALSFunctionDefinition{ after(grammarAccess.getALSDocumentAccess().getFunctionDefinitionsALSFunctionDefinitionParserRuleCall_0_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSDocument__RelationDefinitionsAssignment_0_3 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSDocumentAccess().getRelationDefinitionsALSRelationDefinitionParserRuleCall_0_3_0()); } + ruleALSRelationDefinition{ after(grammarAccess.getALSDocumentAccess().getRelationDefinitionsALSRelationDefinitionParserRuleCall_0_3_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSDocument__FactDeclarationsAssignment_0_4 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSDocumentAccess().getFactDeclarationsALSFactDeclarationParserRuleCall_0_4_0()); } + ruleALSFactDeclaration{ after(grammarAccess.getALSDocumentAccess().getFactDeclarationsALSFactDeclarationParserRuleCall_0_4_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSDocument__RunCommandAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSDocumentAccess().getRunCommandALSRunCommandParserRuleCall_1_0()); } + ruleALSRunCommand{ after(grammarAccess.getALSDocumentAccess().getRunCommandALSRunCommandParserRuleCall_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSEnumDeclaration__NameAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSEnumDeclarationAccess().getNameALSIDParserRuleCall_1_0()); } + ruleALSID{ after(grammarAccess.getALSEnumDeclarationAccess().getNameALSIDParserRuleCall_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSEnumDeclaration__LiteralAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSEnumDeclarationAccess().getLiteralALSEnumLiteralParserRuleCall_3_0()); } + ruleALSEnumLiteral{ after(grammarAccess.getALSEnumDeclarationAccess().getLiteralALSEnumLiteralParserRuleCall_3_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSEnumDeclaration__LiteralAssignment_4_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSEnumDeclarationAccess().getLiteralALSEnumLiteralParserRuleCall_4_1_0()); } + ruleALSEnumLiteral{ after(grammarAccess.getALSEnumDeclarationAccess().getLiteralALSEnumLiteralParserRuleCall_4_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSEnumLiteral__NameAssignment + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSEnumLiteralAccess().getNameALSIDParserRuleCall_0()); } + ruleALSID{ after(grammarAccess.getALSEnumLiteralAccess().getNameALSIDParserRuleCall_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureDeclaration__NameAssignment + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureDeclarationAccess().getNameALSIDParserRuleCall_0()); } + ruleALSID{ after(grammarAccess.getALSSignatureDeclarationAccess().getNameALSIDParserRuleCall_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__MultiplicityAssignment_0_0 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getMultiplicityALSMultiplicityEnumRuleCall_0_0_0()); } + ruleALSMultiplicity{ after(grammarAccess.getALSSignatureBodyAccess().getMultiplicityALSMultiplicityEnumRuleCall_0_0_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__AbstractAssignment_0_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getAbstractAbstractKeyword_0_1_0()); } +( +{ before(grammarAccess.getALSSignatureBodyAccess().getAbstractAbstractKeyword_0_1_0()); } + + 'abstract' + +{ after(grammarAccess.getALSSignatureBodyAccess().getAbstractAbstractKeyword_0_1_0()); } +) + +{ after(grammarAccess.getALSSignatureBodyAccess().getAbstractAbstractKeyword_0_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__DeclarationsAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getDeclarationsALSSignatureDeclarationParserRuleCall_2_0()); } + ruleALSSignatureDeclaration{ after(grammarAccess.getALSSignatureBodyAccess().getDeclarationsALSSignatureDeclarationParserRuleCall_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__DeclarationsAssignment_3_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getDeclarationsALSSignatureDeclarationParserRuleCall_3_1_0()); } + ruleALSSignatureDeclaration{ after(grammarAccess.getALSSignatureBodyAccess().getDeclarationsALSSignatureDeclarationParserRuleCall_3_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__SupertypeAssignment_4_0_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getSupertypeALSSignatureDeclarationCrossReference_4_0_1_0()); } +( +{ before(grammarAccess.getALSSignatureBodyAccess().getSupertypeALSSignatureDeclarationIDTerminalRuleCall_4_0_1_0_1()); } + RULE_ID{ after(grammarAccess.getALSSignatureBodyAccess().getSupertypeALSSignatureDeclarationIDTerminalRuleCall_4_0_1_0_1()); } +) +{ after(grammarAccess.getALSSignatureBodyAccess().getSupertypeALSSignatureDeclarationCrossReference_4_0_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__SupersetAssignment_4_1_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getSupersetALSSignatureDeclarationCrossReference_4_1_1_0()); } +( +{ before(grammarAccess.getALSSignatureBodyAccess().getSupersetALSSignatureDeclarationIDTerminalRuleCall_4_1_1_0_1()); } + RULE_ID{ after(grammarAccess.getALSSignatureBodyAccess().getSupersetALSSignatureDeclarationIDTerminalRuleCall_4_1_1_0_1()); } +) +{ after(grammarAccess.getALSSignatureBodyAccess().getSupersetALSSignatureDeclarationCrossReference_4_1_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__SupersetAssignment_4_1_2_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getSupersetALSSignatureDeclarationCrossReference_4_1_2_1_0()); } +( +{ before(grammarAccess.getALSSignatureBodyAccess().getSupersetALSSignatureDeclarationIDTerminalRuleCall_4_1_2_1_0_1()); } + RULE_ID{ after(grammarAccess.getALSSignatureBodyAccess().getSupersetALSSignatureDeclarationIDTerminalRuleCall_4_1_2_1_0_1()); } +) +{ after(grammarAccess.getALSSignatureBodyAccess().getSupersetALSSignatureDeclarationCrossReference_4_1_2_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__FieldsAssignment_6_0 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getFieldsALSFieldDeclarationParserRuleCall_6_0_0()); } + ruleALSFieldDeclaration{ after(grammarAccess.getALSSignatureBodyAccess().getFieldsALSFieldDeclarationParserRuleCall_6_0_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSignatureBody__FieldsAssignment_6_1_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSignatureBodyAccess().getFieldsALSFieldDeclarationParserRuleCall_6_1_1_0()); } + ruleALSFieldDeclaration{ after(grammarAccess.getALSSignatureBodyAccess().getFieldsALSFieldDeclarationParserRuleCall_6_1_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFieldDeclaration__NameAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFieldDeclarationAccess().getNameALSIDParserRuleCall_0_0()); } + ruleALSID{ after(grammarAccess.getALSFieldDeclarationAccess().getNameALSIDParserRuleCall_0_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFieldDeclaration__MultiplicityAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFieldDeclarationAccess().getMultiplicityALSMultiplicityEnumRuleCall_2_0()); } + ruleALSMultiplicity{ after(grammarAccess.getALSFieldDeclarationAccess().getMultiplicityALSMultiplicityEnumRuleCall_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFieldDeclaration__TypeAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFieldDeclarationAccess().getTypeALSTermParserRuleCall_3_0()); } + ruleALSTerm{ after(grammarAccess.getALSFieldDeclarationAccess().getTypeALSTermParserRuleCall_3_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFunctionDefinition__NameAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFunctionDefinitionAccess().getNameALSIDParserRuleCall_1_0()); } + ruleALSID{ after(grammarAccess.getALSFunctionDefinitionAccess().getNameALSIDParserRuleCall_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFunctionDefinition__VariablesAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFunctionDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_3_0()); } + ruleALSVariableDeclaration{ after(grammarAccess.getALSFunctionDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_3_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFunctionDefinition__VariablesAssignment_4_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFunctionDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_4_1_0()); } + ruleALSVariableDeclaration{ after(grammarAccess.getALSFunctionDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_4_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFunctionDefinition__TypeAssignment_7 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFunctionDefinitionAccess().getTypeALSTermParserRuleCall_7_0()); } + ruleALSTerm{ after(grammarAccess.getALSFunctionDefinitionAccess().getTypeALSTermParserRuleCall_7_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFunctionDefinition__ValueAssignment_9 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFunctionDefinitionAccess().getValueALSTermParserRuleCall_9_0()); } + ruleALSTerm{ after(grammarAccess.getALSFunctionDefinitionAccess().getValueALSTermParserRuleCall_9_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRelationDefinition__NameAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRelationDefinitionAccess().getNameALSIDParserRuleCall_1_0()); } + ruleALSID{ after(grammarAccess.getALSRelationDefinitionAccess().getNameALSIDParserRuleCall_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRelationDefinition__VariablesAssignment_3 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRelationDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_3_0()); } + ruleALSVariableDeclaration{ after(grammarAccess.getALSRelationDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_3_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRelationDefinition__VariablesAssignment_4_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRelationDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_4_1_0()); } + ruleALSVariableDeclaration{ after(grammarAccess.getALSRelationDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_4_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRelationDefinition__ValueAssignment_7 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRelationDefinitionAccess().getValueALSTermParserRuleCall_7_0()); } + ruleALSTerm{ after(grammarAccess.getALSRelationDefinitionAccess().getValueALSTermParserRuleCall_7_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFactDeclaration__NameAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFactDeclarationAccess().getNameALSIDParserRuleCall_2_0()); } + ruleALSID{ after(grammarAccess.getALSFactDeclarationAccess().getNameALSIDParserRuleCall_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSFactDeclaration__TermAssignment_4 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSFactDeclarationAccess().getTermALSTermParserRuleCall_4_0()); } + ruleALSTerm{ after(grammarAccess.getALSFactDeclarationAccess().getTermALSTermParserRuleCall_4_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSQuantified__TypeAssignment_0_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSQuantifiedAccess().getTypeALSMultiplicityEnumRuleCall_0_1_0()); } + ruleALSMultiplicity{ after(grammarAccess.getALSQuantifiedAccess().getTypeALSMultiplicityEnumRuleCall_0_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSQuantified__DisjAssignment_0_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSQuantifiedAccess().getDisjDisjKeyword_0_2_0()); } +( +{ before(grammarAccess.getALSQuantifiedAccess().getDisjDisjKeyword_0_2_0()); } + + 'disj' + +{ after(grammarAccess.getALSQuantifiedAccess().getDisjDisjKeyword_0_2_0()); } +) + +{ after(grammarAccess.getALSQuantifiedAccess().getDisjDisjKeyword_0_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSQuantified__VariablesAssignment_0_3 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSQuantifiedAccess().getVariablesALSVariableDeclarationParserRuleCall_0_3_0()); } + ruleALSVariableDeclaration{ after(grammarAccess.getALSQuantifiedAccess().getVariablesALSVariableDeclarationParserRuleCall_0_3_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSQuantified__VariablesAssignment_0_4_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSQuantifiedAccess().getVariablesALSVariableDeclarationParserRuleCall_0_4_1_0()); } + ruleALSVariableDeclaration{ after(grammarAccess.getALSQuantifiedAccess().getVariablesALSVariableDeclarationParserRuleCall_0_4_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSQuantified__ExpressionAssignment_0_6 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSQuantifiedAccess().getExpressionALSTermParserRuleCall_0_6_0()); } + ruleALSTerm{ after(grammarAccess.getALSQuantifiedAccess().getExpressionALSTermParserRuleCall_0_6_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSOr__RightOperandAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSOrAccess().getRightOperandALSIffParserRuleCall_1_2_0()); } + ruleALSIff{ after(grammarAccess.getALSOrAccess().getRightOperandALSIffParserRuleCall_1_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSIff__RightOperandAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSIffAccess().getRightOperandALSImplParserRuleCall_1_2_0()); } + ruleALSImpl{ after(grammarAccess.getALSIffAccess().getRightOperandALSImplParserRuleCall_1_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSImpl__RightOperandAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSImplAccess().getRightOperandALSAndParserRuleCall_1_2_0()); } + ruleALSAnd{ after(grammarAccess.getALSImplAccess().getRightOperandALSAndParserRuleCall_1_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSImpl__ElseOperandAssignment_1_3_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSImplAccess().getElseOperandALSAndParserRuleCall_1_3_1_0()); } + ruleALSAnd{ after(grammarAccess.getALSImplAccess().getElseOperandALSAndParserRuleCall_1_3_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSAnd__RightOperandAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSAndAccess().getRightOperandALSComparisonParserRuleCall_1_2_0()); } + ruleALSComparison{ after(grammarAccess.getALSAndAccess().getRightOperandALSComparisonParserRuleCall_1_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSComparison__RightOperandAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSComparisonAccess().getRightOperandALSOverrideParserRuleCall_1_1_0()); } + ruleALSOverride{ after(grammarAccess.getALSComparisonAccess().getRightOperandALSOverrideParserRuleCall_1_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSOverride__RightOperandAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSOverrideAccess().getRightOperandALSRangeRestrictionRightParserRuleCall_1_2_0()); } + ruleALSRangeRestrictionRight{ after(grammarAccess.getALSOverrideAccess().getRightOperandALSRangeRestrictionRightParserRuleCall_1_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRangeRestrictionRight__FilterAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRangeRestrictionRightAccess().getFilterALSRangeRestrictionLeftParserRuleCall_1_2_0()); } + ruleALSRangeRestrictionLeft{ after(grammarAccess.getALSRangeRestrictionRightAccess().getFilterALSRangeRestrictionLeftParserRuleCall_1_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRangeRestrictionLeft__RelationAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRangeRestrictionLeftAccess().getRelationALSJoinParserRuleCall_1_2_0()); } + ruleALSJoin{ after(grammarAccess.getALSRangeRestrictionLeftAccess().getRelationALSJoinParserRuleCall_1_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSJoin__RightOperandAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSJoinAccess().getRightOperandALSMinusParserRuleCall_1_2_0()); } + ruleALSMinus{ after(grammarAccess.getALSJoinAccess().getRightOperandALSMinusParserRuleCall_1_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSMinus__RightOperandAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSMinusAccess().getRightOperandALSPlusParserRuleCall_1_2_0()); } + ruleALSPlus{ after(grammarAccess.getALSMinusAccess().getRightOperandALSPlusParserRuleCall_1_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPlus__RightOperandAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPlusAccess().getRightOperandALSIntersectionParserRuleCall_1_2_0()); } + ruleALSIntersection{ after(grammarAccess.getALSPlusAccess().getRightOperandALSIntersectionParserRuleCall_1_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSIntersection__RightOperandAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSIntersectionAccess().getRightOperandALSDirectProductParserRuleCall_1_2_0()); } + ruleALSDirectProduct{ after(grammarAccess.getALSIntersectionAccess().getRightOperandALSDirectProductParserRuleCall_1_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSDirectProduct__LeftMultiplicitAssignment_1_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSDirectProductAccess().getLeftMultiplicitALSMultiplicityEnumRuleCall_1_1_0()); } + ruleALSMultiplicity{ after(grammarAccess.getALSDirectProductAccess().getLeftMultiplicitALSMultiplicityEnumRuleCall_1_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSDirectProduct__RightMultiplicitAssignment_1_3 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSDirectProductAccess().getRightMultiplicitALSMultiplicityEnumRuleCall_1_3_0()); } + ruleALSMultiplicity{ after(grammarAccess.getALSDirectProductAccess().getRightMultiplicitALSMultiplicityEnumRuleCall_1_3_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSDirectProduct__RightOperandAssignment_1_4 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSDirectProductAccess().getRightOperandALSPreficedParserRuleCall_1_4_0()); } + ruleALSPreficed{ after(grammarAccess.getALSDirectProductAccess().getRightOperandALSPreficedParserRuleCall_1_4_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__OperandAssignment_0_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_0_2_0()); } + ruleALSBasicRelationTerm{ after(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_0_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__OperandAssignment_1_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_1_2_0()); } + ruleALSBasicRelationTerm{ after(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_1_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__OperandAssignment_2_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_2_2_0()); } + ruleALSBasicRelationTerm{ after(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_2_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__OperandAssignment_3_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_3_2_0()); } + ruleALSBasicRelationTerm{ after(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_3_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__OperandAssignment_4_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_4_2_0()); } + ruleALSBasicRelationTerm{ after(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_4_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__OperandAssignment_5_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_5_2_0()); } + ruleALSBasicRelationTerm{ after(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_5_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__VariablesAssignment_6_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getVariablesALSVariableDeclarationParserRuleCall_6_2_0()); } + ruleALSVariableDeclaration{ after(grammarAccess.getALSPreficedAccess().getVariablesALSVariableDeclarationParserRuleCall_6_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__VariablesAssignment_6_3_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getVariablesALSVariableDeclarationParserRuleCall_6_3_1_0()); } + ruleALSVariableDeclaration{ after(grammarAccess.getALSPreficedAccess().getVariablesALSVariableDeclarationParserRuleCall_6_3_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__ExpressionAssignment_6_5 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getExpressionALSTermParserRuleCall_6_5_0()); } + ruleALSTerm{ after(grammarAccess.getALSPreficedAccess().getExpressionALSTermParserRuleCall_6_5_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__ReferredDefinitionAssignment_7_1_0 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getReferredDefinitionALSDefinitionCrossReference_7_1_0_0()); } +( +{ before(grammarAccess.getALSPreficedAccess().getReferredDefinitionALSDefinitionIDTerminalRuleCall_7_1_0_0_1()); } + RULE_ID{ after(grammarAccess.getALSPreficedAccess().getReferredDefinitionALSDefinitionIDTerminalRuleCall_7_1_0_0_1()); } +) +{ after(grammarAccess.getALSPreficedAccess().getReferredDefinitionALSDefinitionCrossReference_7_1_0_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__ReferredNumericOperatorAssignment_7_1_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getReferredNumericOperatorALSNumericOperatorEnumRuleCall_7_1_1_0()); } + ruleALSNumericOperator{ after(grammarAccess.getALSPreficedAccess().getReferredNumericOperatorALSNumericOperatorEnumRuleCall_7_1_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__ParamsAssignment_7_3 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getParamsALSTermParserRuleCall_7_3_0()); } + ruleALSTerm{ after(grammarAccess.getALSPreficedAccess().getParamsALSTermParserRuleCall_7_3_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSPreficed__ParamsAssignment_7_4_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSPreficedAccess().getParamsALSTermParserRuleCall_7_4_1_0()); } + ruleALSTerm{ after(grammarAccess.getALSPreficedAccess().getParamsALSTermParserRuleCall_7_4_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSVariableDeclaration__NameAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSVariableDeclarationAccess().getNameALSIDParserRuleCall_0_0()); } + ruleALSID{ after(grammarAccess.getALSVariableDeclarationAccess().getNameALSIDParserRuleCall_0_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSVariableDeclaration__RangeAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSVariableDeclarationAccess().getRangeALSTermParserRuleCall_2_0()); } + ruleALSTerm{ after(grammarAccess.getALSVariableDeclarationAccess().getRangeALSTermParserRuleCall_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__ReferredAssignment_5_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getReferredALSRelationDeclarationCrossReference_5_1_0()); } +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getReferredALSRelationDeclarationIDTerminalRuleCall_5_1_0_1()); } + RULE_ID{ after(grammarAccess.getALSBasicRelationTermAccess().getReferredALSRelationDeclarationIDTerminalRuleCall_5_1_0_1()); } +) +{ after(grammarAccess.getALSBasicRelationTermAccess().getReferredALSRelationDeclarationCrossReference_5_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__ValueAssignment_6_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getValueINTTerminalRuleCall_6_1_0()); } + RULE_INT{ after(grammarAccess.getALSBasicRelationTermAccess().getValueINTTerminalRuleCall_6_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSBasicRelationTerm__ValueAssignment_7_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSBasicRelationTermAccess().getValueSTRINGTerminalRuleCall_7_1_0()); } + RULE_STRING{ after(grammarAccess.getALSBasicRelationTermAccess().getValueSTRINGTerminalRuleCall_7_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRunCommand__TypeScopesAssignment_4_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRunCommandAccess().getTypeScopesALSTypeScopeParserRuleCall_4_1_0()); } + ruleALSTypeScope{ after(grammarAccess.getALSRunCommandAccess().getTypeScopesALSTypeScopeParserRuleCall_4_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSRunCommand__TypeScopesAssignment_4_2_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSRunCommandAccess().getTypeScopesALSTypeScopeParserRuleCall_4_2_1_0()); } + ruleALSTypeScope{ after(grammarAccess.getALSRunCommandAccess().getTypeScopesALSTypeScopeParserRuleCall_4_2_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSigScope__ExactlyAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSigScopeAccess().getExactlyExactlyKeyword_0_0()); } +( +{ before(grammarAccess.getALSSigScopeAccess().getExactlyExactlyKeyword_0_0()); } + + 'exactly' + +{ after(grammarAccess.getALSSigScopeAccess().getExactlyExactlyKeyword_0_0()); } +) + +{ after(grammarAccess.getALSSigScopeAccess().getExactlyExactlyKeyword_0_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSigScope__NumberAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSigScopeAccess().getNumberINTTerminalRuleCall_1_0()); } + RULE_INT{ after(grammarAccess.getALSSigScopeAccess().getNumberINTTerminalRuleCall_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSSigScope__TypeAssignment_2 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSSigScopeAccess().getTypeALSSignatureDeclarationCrossReference_2_0()); } +( +{ before(grammarAccess.getALSSigScopeAccess().getTypeALSSignatureDeclarationIDTerminalRuleCall_2_0_1()); } + RULE_ID{ after(grammarAccess.getALSSigScopeAccess().getTypeALSSignatureDeclarationIDTerminalRuleCall_2_0_1()); } +) +{ after(grammarAccess.getALSSigScopeAccess().getTypeALSSignatureDeclarationCrossReference_2_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSIntScope__NumberAssignment_0 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSIntScopeAccess().getNumberINTTerminalRuleCall_0_0()); } + RULE_INT{ after(grammarAccess.getALSIntScopeAccess().getNumberINTTerminalRuleCall_0_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + +rule__ALSStringScope__NumberAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: +( +{ before(grammarAccess.getALSStringScopeAccess().getNumberINTTerminalRuleCall_1_0()); } + RULE_INT{ after(grammarAccess.getALSStringScopeAccess().getNumberINTTerminalRuleCall_1_0()); } +) + +; +finally { + restoreStackSize(stackSize); +} + + +RULE_ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'\''|'"'|'0'..'9')*; + +RULE_INT : ('0'..'9')+; + +RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\''); + +RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/'; + +RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?; + +RULE_WS : (' '|'\t'|'\r'|'\n')+; + +RULE_ANY_OTHER : .; + + diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/internal/InternalAlloyLanguage.tokens b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/internal/InternalAlloyLanguage.tokens new file mode 100644 index 00000000..a7695d52 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/internal/InternalAlloyLanguage.tokens @@ -0,0 +1,139 @@ +'!'=19 +'!='=48 +'#'=63 +'&&'=17 +'&'=58 +'('=70 +')'=71 +'*'=62 +'+'=39 +'++'=53 +','=35 +'-'=57 +'->'=59 +'.'=56 +':'=40 +':>'=54 +'<'=51 +'<:'=55 +'<='=52 +'<=>'=13 +'='=47 +'=>'=15 +'>'=49 +'>='=50 +'Int'=68 +'String'=69 +'['=42 +']'=43 +'^'=61 +'abstract'=75 +'all'=21 +'and'=18 +'disj'=76 +'div'=31 +'else'=46 +'enum'=32 +'exactly'=74 +'extends'=37 +'fact'=45 +'for'=73 +'fun'=41 +'iden'=66 +'iff'=14 +'implies'=16 +'in'=38 +'lone'=24 +'mul'=29 +'no'=22 +'none'=65 +'not'=20 +'one'=25 +'or'=12 +'plus'=27 +'pred'=44 +'rem'=30 +'run'=72 +'set'=26 +'sig'=36 +'some'=23 +'sub'=28 +'sum'=64 +'univ'=67 +'{'=33 +'||'=11 +'}'=34 +'~'=60 +RULE_ANY_OTHER=10 +RULE_ID=4 +RULE_INT=5 +RULE_ML_COMMENT=7 +RULE_SL_COMMENT=8 +RULE_STRING=6 +RULE_WS=9 +T__11=11 +T__12=12 +T__13=13 +T__14=14 +T__15=15 +T__16=16 +T__17=17 +T__18=18 +T__19=19 +T__20=20 +T__21=21 +T__22=22 +T__23=23 +T__24=24 +T__25=25 +T__26=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 +T__69=69 +T__70=70 +T__71=71 +T__72=72 +T__73=73 +T__74=74 +T__75=75 +T__76=76 diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/internal/InternalAlloyLanguageLexer.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/internal/InternalAlloyLanguageLexer.java new file mode 100644 index 00000000..410c21e7 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/internal/InternalAlloyLanguageLexer.java @@ -0,0 +1,2854 @@ +package hu.bme.mit.inf.dslreasoner.ui.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.ui.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 InternalAlloyLanguageLexer extends Lexer { + public static final int T__50=50; + public static final int T__19=19; + public static final int T__15=15; + public static final int T__59=59; + public static final int T__16=16; + public static final int T__17=17; + public static final int T__18=18; + public static final int T__11=11; + public static final int T__55=55; + public static final int T__12=12; + public static final int T__56=56; + public static final int T__13=13; + public static final int T__57=57; + public static final int T__14=14; + public static final int T__58=58; + public static final int T__51=51; + public static final int T__52=52; + public static final int T__53=53; + 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=4; + public static final int T__26=26; + public static final int T__27=27; + public static final int T__28=28; + public static final int RULE_INT=5; + public static final int T__29=29; + public static final int T__22=22; + public static final int T__66=66; + public static final int RULE_ML_COMMENT=7; + public static final int T__23=23; + public static final int T__67=67; + public static final int T__24=24; + public static final int T__68=68; + public static final int T__25=25; + public static final int T__69=69; + public static final int T__62=62; + public static final int T__63=63; + public static final int T__20=20; + public static final int T__64=64; + public static final int T__21=21; + public static final int T__65=65; + public static final int T__70=70; + public static final int T__71=71; + public static final int T__72=72; + public static final int RULE_STRING=6; + public static final int RULE_SL_COMMENT=8; + 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 T__73=73; + public static final int EOF=-1; + public static final int T__30=30; + public static final int T__74=74; + public static final int T__31=31; + public static final int T__75=75; + public static final int T__32=32; + public static final int T__76=76; + public static final int RULE_WS=9; + public static final int RULE_ANY_OTHER=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 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 InternalAlloyLanguageLexer() {;} + public InternalAlloyLanguageLexer(CharStream input) { + this(input, new RecognizerSharedState()); + } + public InternalAlloyLanguageLexer(CharStream input, RecognizerSharedState state) { + super(input,state); + + } + public String getGrammarFileName() { return "InternalAlloyLanguage.g"; } + + // $ANTLR start "T__11" + public final void mT__11() throws RecognitionException { + try { + int _type = T__11; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:11:7: ( '||' ) + // InternalAlloyLanguage.g:11:9: '||' + { + match("||"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__11" + + // $ANTLR start "T__12" + public final void mT__12() throws RecognitionException { + try { + int _type = T__12; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:12:7: ( 'or' ) + // InternalAlloyLanguage.g:12:9: 'or' + { + match("or"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__12" + + // $ANTLR start "T__13" + public final void mT__13() throws RecognitionException { + try { + int _type = T__13; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:13:7: ( '<=>' ) + // InternalAlloyLanguage.g:13:9: '<=>' + { + match("<=>"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__13" + + // $ANTLR start "T__14" + public final void mT__14() throws RecognitionException { + try { + int _type = T__14; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:14:7: ( 'iff' ) + // InternalAlloyLanguage.g:14:9: 'iff' + { + match("iff"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__14" + + // $ANTLR start "T__15" + public final void mT__15() throws RecognitionException { + try { + int _type = T__15; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:15:7: ( '=>' ) + // InternalAlloyLanguage.g:15:9: '=>' + { + match("=>"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__15" + + // $ANTLR start "T__16" + public final void mT__16() throws RecognitionException { + try { + int _type = T__16; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:16:7: ( 'implies' ) + // InternalAlloyLanguage.g:16:9: 'implies' + { + match("implies"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__16" + + // $ANTLR start "T__17" + public final void mT__17() throws RecognitionException { + try { + int _type = T__17; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:17:7: ( '&&' ) + // InternalAlloyLanguage.g:17:9: '&&' + { + match("&&"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__17" + + // $ANTLR start "T__18" + public final void mT__18() throws RecognitionException { + try { + int _type = T__18; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:18:7: ( 'and' ) + // InternalAlloyLanguage.g:18:9: 'and' + { + match("and"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__18" + + // $ANTLR start "T__19" + public final void mT__19() throws RecognitionException { + try { + int _type = T__19; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:19:7: ( '!' ) + // InternalAlloyLanguage.g:19:9: '!' + { + match('!'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__19" + + // $ANTLR start "T__20" + public final void mT__20() throws RecognitionException { + try { + int _type = T__20; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:20:7: ( 'not' ) + // InternalAlloyLanguage.g:20:9: 'not' + { + match("not"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__20" + + // $ANTLR start "T__21" + public final void mT__21() throws RecognitionException { + try { + int _type = T__21; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:21:7: ( 'all' ) + // InternalAlloyLanguage.g:21:9: 'all' + { + match("all"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__21" + + // $ANTLR start "T__22" + public final void mT__22() throws RecognitionException { + try { + int _type = T__22; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:22:7: ( 'no' ) + // InternalAlloyLanguage.g:22:9: 'no' + { + match("no"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__22" + + // $ANTLR start "T__23" + public final void mT__23() throws RecognitionException { + try { + int _type = T__23; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:23:7: ( 'some' ) + // InternalAlloyLanguage.g:23:9: 'some' + { + match("some"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__23" + + // $ANTLR start "T__24" + public final void mT__24() throws RecognitionException { + try { + int _type = T__24; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:24:7: ( 'lone' ) + // InternalAlloyLanguage.g:24:9: 'lone' + { + match("lone"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__24" + + // $ANTLR start "T__25" + public final void mT__25() throws RecognitionException { + try { + int _type = T__25; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:25:7: ( 'one' ) + // InternalAlloyLanguage.g:25:9: 'one' + { + match("one"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__25" + + // $ANTLR start "T__26" + public final void mT__26() throws RecognitionException { + try { + int _type = T__26; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:26:7: ( 'set' ) + // InternalAlloyLanguage.g:26:9: 'set' + { + match("set"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__26" + + // $ANTLR start "T__27" + public final void mT__27() throws RecognitionException { + try { + int _type = T__27; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:27:7: ( 'plus' ) + // InternalAlloyLanguage.g:27:9: 'plus' + { + match("plus"); + + + } + + 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; + // InternalAlloyLanguage.g:28:7: ( 'sub' ) + // InternalAlloyLanguage.g:28:9: 'sub' + { + match("sub"); + + + } + + 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; + // InternalAlloyLanguage.g:29:7: ( 'mul' ) + // InternalAlloyLanguage.g:29:9: 'mul' + { + match("mul"); + + + } + + 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; + // InternalAlloyLanguage.g:30:7: ( 'rem' ) + // InternalAlloyLanguage.g:30:9: 'rem' + { + match("rem"); + + + } + + 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; + // InternalAlloyLanguage.g:31:7: ( 'div' ) + // InternalAlloyLanguage.g:31:9: 'div' + { + match("div"); + + + } + + 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; + // InternalAlloyLanguage.g:32:7: ( 'enum' ) + // InternalAlloyLanguage.g:32:9: 'enum' + { + match("enum"); + + + } + + 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; + // InternalAlloyLanguage.g:33:7: ( '{' ) + // InternalAlloyLanguage.g:33: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; + // InternalAlloyLanguage.g:34:7: ( '}' ) + // InternalAlloyLanguage.g:34: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; + // InternalAlloyLanguage.g:35:7: ( ',' ) + // InternalAlloyLanguage.g:35:9: ',' + { + match(','); + + } + + 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; + // InternalAlloyLanguage.g:36:7: ( 'sig' ) + // InternalAlloyLanguage.g:36:9: 'sig' + { + match("sig"); + + + } + + 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; + // InternalAlloyLanguage.g:37:7: ( 'extends' ) + // InternalAlloyLanguage.g:37:9: 'extends' + { + match("extends"); + + + } + + 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; + // InternalAlloyLanguage.g:38:7: ( 'in' ) + // InternalAlloyLanguage.g:38:9: 'in' + { + match("in"); + + + } + + 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; + // InternalAlloyLanguage.g:39:7: ( '+' ) + // InternalAlloyLanguage.g:39:9: '+' + { + match('+'); + + } + + 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; + // InternalAlloyLanguage.g:40:7: ( ':' ) + // InternalAlloyLanguage.g:40:9: ':' + { + match(':'); + + } + + 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; + // InternalAlloyLanguage.g:41:7: ( 'fun' ) + // InternalAlloyLanguage.g:41:9: 'fun' + { + match("fun"); + + + } + + 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; + // InternalAlloyLanguage.g:42:7: ( '[' ) + // InternalAlloyLanguage.g:42:9: '[' + { + match('['); + + } + + 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; + // InternalAlloyLanguage.g:43:7: ( ']' ) + // InternalAlloyLanguage.g:43: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; + // InternalAlloyLanguage.g:44:7: ( 'pred' ) + // InternalAlloyLanguage.g:44:9: 'pred' + { + match("pred"); + + + } + + 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; + // InternalAlloyLanguage.g:45:7: ( 'fact' ) + // InternalAlloyLanguage.g:45:9: 'fact' + { + match("fact"); + + + } + + 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; + // InternalAlloyLanguage.g:46:7: ( 'else' ) + // InternalAlloyLanguage.g:46:9: 'else' + { + match("else"); + + + } + + 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; + // InternalAlloyLanguage.g:47:7: ( '=' ) + // InternalAlloyLanguage.g:47: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; + // InternalAlloyLanguage.g:48:7: ( '!=' ) + // InternalAlloyLanguage.g:48: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; + // InternalAlloyLanguage.g:49:7: ( '>' ) + // InternalAlloyLanguage.g:49: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; + // InternalAlloyLanguage.g:50:7: ( '>=' ) + // InternalAlloyLanguage.g:50: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; + // InternalAlloyLanguage.g:51:7: ( '<' ) + // InternalAlloyLanguage.g:51: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; + // InternalAlloyLanguage.g:52:7: ( '<=' ) + // InternalAlloyLanguage.g:52: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; + // InternalAlloyLanguage.g:53:7: ( '++' ) + // InternalAlloyLanguage.g:53: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; + // InternalAlloyLanguage.g:54:7: ( ':>' ) + // InternalAlloyLanguage.g:54: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; + // InternalAlloyLanguage.g:55:7: ( '<:' ) + // InternalAlloyLanguage.g:55: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; + // InternalAlloyLanguage.g:56:7: ( '.' ) + // InternalAlloyLanguage.g:56: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; + // InternalAlloyLanguage.g:57:7: ( '-' ) + // InternalAlloyLanguage.g:57: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; + // InternalAlloyLanguage.g:58:7: ( '&' ) + // InternalAlloyLanguage.g:58: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; + // InternalAlloyLanguage.g:59:7: ( '->' ) + // InternalAlloyLanguage.g:59: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; + // InternalAlloyLanguage.g:60:7: ( '~' ) + // InternalAlloyLanguage.g:60: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; + // InternalAlloyLanguage.g:61:7: ( '^' ) + // InternalAlloyLanguage.g:61: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; + // InternalAlloyLanguage.g:62:7: ( '*' ) + // InternalAlloyLanguage.g:62: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; + // InternalAlloyLanguage.g:63:7: ( '#' ) + // InternalAlloyLanguage.g:63: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; + // InternalAlloyLanguage.g:64:7: ( 'sum' ) + // InternalAlloyLanguage.g:64:9: 'sum' + { + match("sum"); + + + } + + 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; + // InternalAlloyLanguage.g:65:7: ( 'none' ) + // InternalAlloyLanguage.g:65:9: 'none' + { + match("none"); + + + } + + 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; + // InternalAlloyLanguage.g:66:7: ( 'iden' ) + // InternalAlloyLanguage.g:66:9: 'iden' + { + match("iden"); + + + } + + 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; + // InternalAlloyLanguage.g:67:7: ( 'univ' ) + // InternalAlloyLanguage.g:67:9: 'univ' + { + match("univ"); + + + } + + 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; + // InternalAlloyLanguage.g:68:7: ( 'Int' ) + // InternalAlloyLanguage.g:68:9: 'Int' + { + match("Int"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__68" + + // $ANTLR start "T__69" + public final void mT__69() throws RecognitionException { + try { + int _type = T__69; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:69:7: ( 'String' ) + // InternalAlloyLanguage.g:69:9: 'String' + { + match("String"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__69" + + // $ANTLR start "T__70" + public final void mT__70() throws RecognitionException { + try { + int _type = T__70; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:70:7: ( '(' ) + // InternalAlloyLanguage.g:70:9: '(' + { + match('('); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__70" + + // $ANTLR start "T__71" + public final void mT__71() throws RecognitionException { + try { + int _type = T__71; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:71:7: ( ')' ) + // InternalAlloyLanguage.g:71:9: ')' + { + match(')'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__71" + + // $ANTLR start "T__72" + public final void mT__72() throws RecognitionException { + try { + int _type = T__72; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:72:7: ( 'run' ) + // InternalAlloyLanguage.g:72:9: 'run' + { + match("run"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__72" + + // $ANTLR start "T__73" + public final void mT__73() throws RecognitionException { + try { + int _type = T__73; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:73:7: ( 'for' ) + // InternalAlloyLanguage.g:73:9: 'for' + { + match("for"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__73" + + // $ANTLR start "T__74" + public final void mT__74() throws RecognitionException { + try { + int _type = T__74; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:74:7: ( 'exactly' ) + // InternalAlloyLanguage.g:74:9: 'exactly' + { + match("exactly"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__74" + + // $ANTLR start "T__75" + public final void mT__75() throws RecognitionException { + try { + int _type = T__75; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:75:7: ( 'abstract' ) + // InternalAlloyLanguage.g:75:9: 'abstract' + { + match("abstract"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__75" + + // $ANTLR start "T__76" + public final void mT__76() throws RecognitionException { + try { + int _type = T__76; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:76:7: ( 'disj' ) + // InternalAlloyLanguage.g:76:9: 'disj' + { + match("disj"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__76" + + // $ANTLR start "RULE_ID" + public final void mRULE_ID() throws RecognitionException { + try { + int _type = RULE_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:10378:9: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '\\'' | '\"' | '0' .. '9' )* ) + // InternalAlloyLanguage.g:10378:11: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '\\'' | '\"' | '0' .. '9' )* + { + 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;} + + // InternalAlloyLanguage.g:10378:35: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '\\'' | '\"' | '0' .. '9' )* + loop1: + do { + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0=='\"'||LA1_0=='\''||(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 : + // InternalAlloyLanguage.g: + { + if ( input.LA(1)=='\"'||input.LA(1)=='\''||(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 loop1; + } + } 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 { + int _type = RULE_INT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:10380:10: ( ( '0' .. '9' )+ ) + // InternalAlloyLanguage.g:10380:12: ( '0' .. '9' )+ + { + // InternalAlloyLanguage.g:10380:12: ( '0' .. '9' )+ + int cnt2=0; + loop2: + do { + int alt2=2; + int LA2_0 = input.LA(1); + + if ( ((LA2_0>='0' && LA2_0<='9')) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // InternalAlloyLanguage.g:10380:13: '0' .. '9' + { + matchRange('0','9'); + + } + break; + + default : + if ( cnt2 >= 1 ) break loop2; + EarlyExitException eee = + new EarlyExitException(2, input); + throw eee; + } + cnt2++; + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + 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; + // InternalAlloyLanguage.g:10382:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) + // InternalAlloyLanguage.g:10382:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + { + // InternalAlloyLanguage.g:10382:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + int alt5=2; + int LA5_0 = input.LA(1); + + if ( (LA5_0=='\"') ) { + alt5=1; + } + else if ( (LA5_0=='\'') ) { + alt5=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 5, 0, input); + + throw nvae; + } + switch (alt5) { + case 1 : + // InternalAlloyLanguage.g:10382:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' + { + match('\"'); + // InternalAlloyLanguage.g:10382:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* + 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 : + // InternalAlloyLanguage.g:10382:21: '\\\\' . + { + match('\\'); + matchAny(); + + } + break; + case 2 : + // InternalAlloyLanguage.g:10382: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 loop3; + } + } while (true); + + match('\"'); + + } + break; + case 2 : + // InternalAlloyLanguage.g:10382:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' + { + match('\''); + // InternalAlloyLanguage.g:10382:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* + 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 : + // InternalAlloyLanguage.g:10382:54: '\\\\' . + { + match('\\'); + matchAny(); + + } + break; + case 2 : + // InternalAlloyLanguage.g:10382: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 loop4; + } + } 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; + // InternalAlloyLanguage.g:10384:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // InternalAlloyLanguage.g:10384:19: '/*' ( options {greedy=false; } : . )* '*/' + { + match("/*"); + + // InternalAlloyLanguage.g:10384:24: ( options {greedy=false; } : . )* + loop6: + do { + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0=='*') ) { + int LA6_1 = input.LA(2); + + if ( (LA6_1=='/') ) { + alt6=2; + } + else if ( ((LA6_1>='\u0000' && LA6_1<='.')||(LA6_1>='0' && LA6_1<='\uFFFF')) ) { + alt6=1; + } + + + } + else if ( ((LA6_0>='\u0000' && LA6_0<=')')||(LA6_0>='+' && LA6_0<='\uFFFF')) ) { + alt6=1; + } + + + switch (alt6) { + case 1 : + // InternalAlloyLanguage.g:10384:52: . + { + matchAny(); + + } + break; + + default : + break loop6; + } + } 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; + // InternalAlloyLanguage.g:10386:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) + // InternalAlloyLanguage.g:10386:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? + { + match("//"); + + // InternalAlloyLanguage.g:10386:24: (~ ( ( '\\n' | '\\r' ) ) )* + loop7: + do { + int alt7=2; + int LA7_0 = input.LA(1); + + if ( ((LA7_0>='\u0000' && LA7_0<='\t')||(LA7_0>='\u000B' && LA7_0<='\f')||(LA7_0>='\u000E' && LA7_0<='\uFFFF')) ) { + alt7=1; + } + + + switch (alt7) { + case 1 : + // InternalAlloyLanguage.g:10386: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 loop7; + } + } while (true); + + // InternalAlloyLanguage.g:10386:40: ( ( '\\r' )? '\\n' )? + int alt9=2; + int LA9_0 = input.LA(1); + + if ( (LA9_0=='\n'||LA9_0=='\r') ) { + alt9=1; + } + switch (alt9) { + case 1 : + // InternalAlloyLanguage.g:10386:41: ( '\\r' )? '\\n' + { + // InternalAlloyLanguage.g:10386:41: ( '\\r' )? + int alt8=2; + int LA8_0 = input.LA(1); + + if ( (LA8_0=='\r') ) { + alt8=1; + } + switch (alt8) { + case 1 : + // InternalAlloyLanguage.g:10386: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; + // InternalAlloyLanguage.g:10388:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // InternalAlloyLanguage.g:10388:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + { + // InternalAlloyLanguage.g:10388:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + int cnt10=0; + loop10: + do { + int alt10=2; + int LA10_0 = input.LA(1); + + if ( ((LA10_0>='\t' && LA10_0<='\n')||LA10_0=='\r'||LA10_0==' ') ) { + alt10=1; + } + + + switch (alt10) { + case 1 : + // InternalAlloyLanguage.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 ( cnt10 >= 1 ) break loop10; + EarlyExitException eee = + new EarlyExitException(10, input); + throw eee; + } + cnt10++; + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_WS" + + // $ANTLR start "RULE_ANY_OTHER" + public final void mRULE_ANY_OTHER() throws RecognitionException { + try { + int _type = RULE_ANY_OTHER; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:10390:16: ( . ) + // InternalAlloyLanguage.g:10390:18: . + { + matchAny(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_ANY_OTHER" + + public void mTokens() throws RecognitionException { + // InternalAlloyLanguage.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | 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 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) + int alt11=73; + alt11 = dfa11.predict(input); + switch (alt11) { + case 1 : + // InternalAlloyLanguage.g:1:10: T__11 + { + mT__11(); + + } + break; + case 2 : + // InternalAlloyLanguage.g:1:16: T__12 + { + mT__12(); + + } + break; + case 3 : + // InternalAlloyLanguage.g:1:22: T__13 + { + mT__13(); + + } + break; + case 4 : + // InternalAlloyLanguage.g:1:28: T__14 + { + mT__14(); + + } + break; + case 5 : + // InternalAlloyLanguage.g:1:34: T__15 + { + mT__15(); + + } + break; + case 6 : + // InternalAlloyLanguage.g:1:40: T__16 + { + mT__16(); + + } + break; + case 7 : + // InternalAlloyLanguage.g:1:46: T__17 + { + mT__17(); + + } + break; + case 8 : + // InternalAlloyLanguage.g:1:52: T__18 + { + mT__18(); + + } + break; + case 9 : + // InternalAlloyLanguage.g:1:58: T__19 + { + mT__19(); + + } + break; + case 10 : + // InternalAlloyLanguage.g:1:64: T__20 + { + mT__20(); + + } + break; + case 11 : + // InternalAlloyLanguage.g:1:70: T__21 + { + mT__21(); + + } + break; + case 12 : + // InternalAlloyLanguage.g:1:76: T__22 + { + mT__22(); + + } + break; + case 13 : + // InternalAlloyLanguage.g:1:82: T__23 + { + mT__23(); + + } + break; + case 14 : + // InternalAlloyLanguage.g:1:88: T__24 + { + mT__24(); + + } + break; + case 15 : + // InternalAlloyLanguage.g:1:94: T__25 + { + mT__25(); + + } + break; + case 16 : + // InternalAlloyLanguage.g:1:100: T__26 + { + mT__26(); + + } + break; + case 17 : + // InternalAlloyLanguage.g:1:106: T__27 + { + mT__27(); + + } + break; + case 18 : + // InternalAlloyLanguage.g:1:112: T__28 + { + mT__28(); + + } + break; + case 19 : + // InternalAlloyLanguage.g:1:118: T__29 + { + mT__29(); + + } + break; + case 20 : + // InternalAlloyLanguage.g:1:124: T__30 + { + mT__30(); + + } + break; + case 21 : + // InternalAlloyLanguage.g:1:130: T__31 + { + mT__31(); + + } + break; + case 22 : + // InternalAlloyLanguage.g:1:136: T__32 + { + mT__32(); + + } + break; + case 23 : + // InternalAlloyLanguage.g:1:142: T__33 + { + mT__33(); + + } + break; + case 24 : + // InternalAlloyLanguage.g:1:148: T__34 + { + mT__34(); + + } + break; + case 25 : + // InternalAlloyLanguage.g:1:154: T__35 + { + mT__35(); + + } + break; + case 26 : + // InternalAlloyLanguage.g:1:160: T__36 + { + mT__36(); + + } + break; + case 27 : + // InternalAlloyLanguage.g:1:166: T__37 + { + mT__37(); + + } + break; + case 28 : + // InternalAlloyLanguage.g:1:172: T__38 + { + mT__38(); + + } + break; + case 29 : + // InternalAlloyLanguage.g:1:178: T__39 + { + mT__39(); + + } + break; + case 30 : + // InternalAlloyLanguage.g:1:184: T__40 + { + mT__40(); + + } + break; + case 31 : + // InternalAlloyLanguage.g:1:190: T__41 + { + mT__41(); + + } + break; + case 32 : + // InternalAlloyLanguage.g:1:196: T__42 + { + mT__42(); + + } + break; + case 33 : + // InternalAlloyLanguage.g:1:202: T__43 + { + mT__43(); + + } + break; + case 34 : + // InternalAlloyLanguage.g:1:208: T__44 + { + mT__44(); + + } + break; + case 35 : + // InternalAlloyLanguage.g:1:214: T__45 + { + mT__45(); + + } + break; + case 36 : + // InternalAlloyLanguage.g:1:220: T__46 + { + mT__46(); + + } + break; + case 37 : + // InternalAlloyLanguage.g:1:226: T__47 + { + mT__47(); + + } + break; + case 38 : + // InternalAlloyLanguage.g:1:232: T__48 + { + mT__48(); + + } + break; + case 39 : + // InternalAlloyLanguage.g:1:238: T__49 + { + mT__49(); + + } + break; + case 40 : + // InternalAlloyLanguage.g:1:244: T__50 + { + mT__50(); + + } + break; + case 41 : + // InternalAlloyLanguage.g:1:250: T__51 + { + mT__51(); + + } + break; + case 42 : + // InternalAlloyLanguage.g:1:256: T__52 + { + mT__52(); + + } + break; + case 43 : + // InternalAlloyLanguage.g:1:262: T__53 + { + mT__53(); + + } + break; + case 44 : + // InternalAlloyLanguage.g:1:268: T__54 + { + mT__54(); + + } + break; + case 45 : + // InternalAlloyLanguage.g:1:274: T__55 + { + mT__55(); + + } + break; + case 46 : + // InternalAlloyLanguage.g:1:280: T__56 + { + mT__56(); + + } + break; + case 47 : + // InternalAlloyLanguage.g:1:286: T__57 + { + mT__57(); + + } + break; + case 48 : + // InternalAlloyLanguage.g:1:292: T__58 + { + mT__58(); + + } + break; + case 49 : + // InternalAlloyLanguage.g:1:298: T__59 + { + mT__59(); + + } + break; + case 50 : + // InternalAlloyLanguage.g:1:304: T__60 + { + mT__60(); + + } + break; + case 51 : + // InternalAlloyLanguage.g:1:310: T__61 + { + mT__61(); + + } + break; + case 52 : + // InternalAlloyLanguage.g:1:316: T__62 + { + mT__62(); + + } + break; + case 53 : + // InternalAlloyLanguage.g:1:322: T__63 + { + mT__63(); + + } + break; + case 54 : + // InternalAlloyLanguage.g:1:328: T__64 + { + mT__64(); + + } + break; + case 55 : + // InternalAlloyLanguage.g:1:334: T__65 + { + mT__65(); + + } + break; + case 56 : + // InternalAlloyLanguage.g:1:340: T__66 + { + mT__66(); + + } + break; + case 57 : + // InternalAlloyLanguage.g:1:346: T__67 + { + mT__67(); + + } + break; + case 58 : + // InternalAlloyLanguage.g:1:352: T__68 + { + mT__68(); + + } + break; + case 59 : + // InternalAlloyLanguage.g:1:358: T__69 + { + mT__69(); + + } + break; + case 60 : + // InternalAlloyLanguage.g:1:364: T__70 + { + mT__70(); + + } + break; + case 61 : + // InternalAlloyLanguage.g:1:370: T__71 + { + mT__71(); + + } + break; + case 62 : + // InternalAlloyLanguage.g:1:376: T__72 + { + mT__72(); + + } + break; + case 63 : + // InternalAlloyLanguage.g:1:382: T__73 + { + mT__73(); + + } + break; + case 64 : + // InternalAlloyLanguage.g:1:388: T__74 + { + mT__74(); + + } + break; + case 65 : + // InternalAlloyLanguage.g:1:394: T__75 + { + mT__75(); + + } + break; + case 66 : + // InternalAlloyLanguage.g:1:400: T__76 + { + mT__76(); + + } + break; + case 67 : + // InternalAlloyLanguage.g:1:406: RULE_ID + { + mRULE_ID(); + + } + break; + case 68 : + // InternalAlloyLanguage.g:1:414: RULE_INT + { + mRULE_INT(); + + } + break; + case 69 : + // InternalAlloyLanguage.g:1:423: RULE_STRING + { + mRULE_STRING(); + + } + break; + case 70 : + // InternalAlloyLanguage.g:1:435: RULE_ML_COMMENT + { + mRULE_ML_COMMENT(); + + } + break; + case 71 : + // InternalAlloyLanguage.g:1:451: RULE_SL_COMMENT + { + mRULE_SL_COMMENT(); + + } + break; + case 72 : + // InternalAlloyLanguage.g:1:467: RULE_WS + { + mRULE_WS(); + + } + break; + case 73 : + // InternalAlloyLanguage.g:1:475: RULE_ANY_OTHER + { + mRULE_ANY_OTHER(); + + } + break; + + } + + } + + + protected DFA11 dfa11 = new DFA11(this); + static final String DFA11_eotS = + "\1\uffff\1\53\1\57\1\62\1\57\1\70\1\72\1\57\1\77\10\57\3\uffff\1\123\1\125\1\57\2\uffff\1\134\1\uffff\1\137\4\uffff\3\57\4\uffff\3\53\3\uffff\1\156\1\57\1\uffff\1\161\2\uffff\2\57\1\164\1\57\4\uffff\3\57\2\uffff\1\173\16\57\7\uffff\3\57\13\uffff\3\57\10\uffff\1\u0093\2\uffff\1\u0094\1\57\1\uffff\1\57\1\u0097\1\u0098\1\57\1\u009a\1\57\1\uffff\1\57\1\u009d\1\u009e\1\u009f\1\u00a0\3\57\1\u00a4\1\u00a5\1\u00a6\1\u00a7\5\57\1\u00ad\1\57\1\u00af\1\57\1\u00b1\1\57\2\uffff\1\57\1\u00b4\2\uffff\1\57\1\uffff\1\u00b6\1\u00b7\4\uffff\1\u00b8\1\u00b9\1\u00ba\4\uffff\1\u00bb\1\u00bc\2\57\1\u00bf\1\uffff\1\u00c0\1\uffff\1\u00c1\1\uffff\2\57\1\uffff\1\57\7\uffff\2\57\3\uffff\5\57\1\u00cc\1\u00cd\1\57\1\u00cf\1\u00d0\2\uffff\1\u00d1\3\uffff"; + static final String DFA11_eofS = + "\u00d2\uffff"; + static final String DFA11_minS = + "\1\0\1\174\1\156\1\72\1\144\1\76\1\46\1\142\1\75\1\157\1\145\1\157\1\154\1\165\1\145\1\151\1\154\3\uffff\1\53\1\76\1\141\2\uffff\1\75\1\uffff\1\76\4\uffff\2\156\1\164\4\uffff\2\0\1\52\3\uffff\1\42\1\145\1\uffff\1\76\2\uffff\1\146\1\160\1\42\1\145\4\uffff\1\144\1\154\1\163\2\uffff\1\42\1\155\1\164\1\142\1\147\1\156\1\165\1\145\1\154\1\155\1\156\1\163\1\165\1\141\1\163\7\uffff\1\156\1\143\1\162\13\uffff\1\151\1\164\1\162\10\uffff\1\42\2\uffff\1\42\1\154\1\uffff\1\156\2\42\1\164\1\42\1\145\1\uffff\1\145\4\42\1\145\1\163\1\144\4\42\1\152\1\155\1\145\1\143\1\145\1\42\1\164\1\42\1\166\1\42\1\151\2\uffff\1\151\1\42\2\uffff\1\162\1\uffff\2\42\4\uffff\3\42\4\uffff\2\42\1\156\1\164\1\42\1\uffff\1\42\1\uffff\1\42\1\uffff\1\156\1\145\1\uffff\1\141\7\uffff\1\144\1\154\3\uffff\1\147\1\163\1\143\1\163\1\171\2\42\1\164\2\42\2\uffff\1\42\3\uffff"; + static final String DFA11_maxS = + "\1\uffff\1\174\1\162\1\75\1\156\1\76\1\46\1\156\1\75\1\157\1\165\1\157\1\162\2\165\1\151\1\170\3\uffff\1\53\1\76\1\165\2\uffff\1\75\1\uffff\1\76\4\uffff\2\156\1\164\4\uffff\2\uffff\1\57\3\uffff\1\172\1\145\1\uffff\1\76\2\uffff\1\146\1\160\1\172\1\145\4\uffff\1\144\1\154\1\163\2\uffff\1\172\1\155\1\164\1\155\1\147\1\156\1\165\1\145\1\154\1\155\1\156\1\166\1\165\1\164\1\163\7\uffff\1\156\1\143\1\162\13\uffff\1\151\1\164\1\162\10\uffff\1\172\2\uffff\1\172\1\154\1\uffff\1\156\2\172\1\164\1\172\1\145\1\uffff\1\145\4\172\1\145\1\163\1\144\4\172\1\152\1\155\1\145\1\143\1\145\1\172\1\164\1\172\1\166\1\172\1\151\2\uffff\1\151\1\172\2\uffff\1\162\1\uffff\2\172\4\uffff\3\172\4\uffff\2\172\1\156\1\164\1\172\1\uffff\1\172\1\uffff\1\172\1\uffff\1\156\1\145\1\uffff\1\141\7\uffff\1\144\1\154\3\uffff\1\147\1\163\1\143\1\163\1\171\2\172\1\164\2\172\2\uffff\1\172\3\uffff"; + static final String DFA11_acceptS = + "\21\uffff\1\27\1\30\1\31\3\uffff\1\40\1\41\1\uffff\1\56\1\uffff\1\62\1\63\1\64\1\65\3\uffff\1\74\1\75\1\103\1\104\3\uffff\1\110\1\111\1\1\2\uffff\1\103\1\uffff\1\55\1\51\4\uffff\1\5\1\45\1\7\1\60\3\uffff\1\46\1\11\17\uffff\1\27\1\30\1\31\1\53\1\35\1\54\1\36\3\uffff\1\40\1\41\1\50\1\47\1\56\1\61\1\57\1\62\1\63\1\64\1\65\3\uffff\1\74\1\75\1\104\1\105\1\106\1\107\1\110\1\2\1\uffff\1\3\1\52\2\uffff\1\34\6\uffff\1\14\27\uffff\1\17\1\4\2\uffff\1\10\1\13\1\uffff\1\12\2\uffff\1\20\1\22\1\66\1\32\3\uffff\1\23\1\24\1\76\1\25\5\uffff\1\37\1\uffff\1\77\1\uffff\1\72\2\uffff\1\70\1\uffff\1\67\1\15\1\16\1\21\1\42\1\102\1\26\2\uffff\1\44\1\43\1\71\12\uffff\1\73\1\6\1\uffff\1\33\1\100\1\101"; + static final String DFA11_specialS = + "\1\2\46\uffff\1\1\1\0\u00a9\uffff}>"; + static final String[] DFA11_transitionS = { + "\11\53\2\52\2\53\1\52\22\53\1\52\1\10\1\47\1\37\2\53\1\6\1\50\1\43\1\44\1\36\1\24\1\23\1\33\1\32\1\51\12\46\1\25\1\53\1\3\1\5\1\31\2\53\10\45\1\41\11\45\1\42\7\45\1\27\1\53\1\30\1\35\1\45\1\53\1\7\2\45\1\17\1\20\1\26\2\45\1\4\2\45\1\13\1\15\1\11\1\2\1\14\1\45\1\16\1\12\1\45\1\40\5\45\1\21\1\1\1\22\1\34\uff81\53", + "\1\54", + "\1\56\3\uffff\1\55", + "\1\61\2\uffff\1\60", + "\1\66\1\uffff\1\63\6\uffff\1\64\1\65", + "\1\67", + "\1\71", + "\1\75\11\uffff\1\74\1\uffff\1\73", + "\1\76", + "\1\100", + "\1\102\3\uffff\1\104\5\uffff\1\101\5\uffff\1\103", + "\1\105", + "\1\106\5\uffff\1\107", + "\1\110", + "\1\111\17\uffff\1\112", + "\1\113", + "\1\116\1\uffff\1\114\11\uffff\1\115", + "", + "", + "", + "\1\122", + "\1\124", + "\1\127\15\uffff\1\130\5\uffff\1\126", + "", + "", + "\1\133", + "", + "\1\136", + "", + "", + "", + "", + "\1\144", + "\1\145", + "\1\146", + "", + "", + "", + "", + "\0\152", + "\0\152", + "\1\153\4\uffff\1\154", + "", + "", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\157", + "", + "\1\160", + "", + "", + "\1\162", + "\1\163", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\165", + "", + "", + "", + "", + "\1\166", + "\1\167", + "\1\170", + "", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\15\57\1\172\5\57\1\171\6\57", + "\1\174", + "\1\175", + "\1\176\12\uffff\1\177", + "\1\u0080", + "\1\u0081", + "\1\u0082", + "\1\u0083", + "\1\u0084", + "\1\u0085", + "\1\u0086", + "\1\u0088\2\uffff\1\u0087", + "\1\u0089", + "\1\u008b\22\uffff\1\u008a", + "\1\u008c", + "", + "", + "", + "", + "", + "", + "", + "\1\u008d", + "\1\u008e", + "\1\u008f", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\u0090", + "\1\u0091", + "\1\u0092", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u0095", + "", + "\1\u0096", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u0099", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u009b", + "", + "\1\u009c", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u00a1", + "\1\u00a2", + "\1\u00a3", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u00a8", + "\1\u00a9", + "\1\u00aa", + "\1\u00ab", + "\1\u00ac", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u00ae", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u00b0", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u00b2", + "", + "", + "\1\u00b3", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "", + "", + "\1\u00b5", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "", + "", + "", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "", + "", + "", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u00bd", + "\1\u00be", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "", + "\1\u00c2", + "\1\u00c3", + "", + "\1\u00c4", + "", + "", + "", + "", + "", + "", + "", + "\1\u00c5", + "\1\u00c6", + "", + "", + "", + "\1\u00c7", + "\1\u00c8", + "\1\u00c9", + "\1\u00ca", + "\1\u00cb", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u00ce", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "", + "", + "" + }; + + 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='\u0000' && LA11_40<='\uFFFF')) ) {s = 106;} + + else s = 43; + + if ( s>=0 ) return s; + break; + case 1 : + int LA11_39 = input.LA(1); + + s = -1; + if ( ((LA11_39>='\u0000' && LA11_39<='\uFFFF')) ) {s = 106;} + + else s = 43; + + if ( s>=0 ) return s; + break; + case 2 : + int LA11_0 = input.LA(1); + + s = -1; + if ( (LA11_0=='|') ) {s = 1;} + + else if ( (LA11_0=='o') ) {s = 2;} + + else if ( (LA11_0=='<') ) {s = 3;} + + else if ( (LA11_0=='i') ) {s = 4;} + + else if ( (LA11_0=='=') ) {s = 5;} + + else if ( (LA11_0=='&') ) {s = 6;} + + else if ( (LA11_0=='a') ) {s = 7;} + + else if ( (LA11_0=='!') ) {s = 8;} + + else if ( (LA11_0=='n') ) {s = 9;} + + else if ( (LA11_0=='s') ) {s = 10;} + + else if ( (LA11_0=='l') ) {s = 11;} + + else if ( (LA11_0=='p') ) {s = 12;} + + else if ( (LA11_0=='m') ) {s = 13;} + + else if ( (LA11_0=='r') ) {s = 14;} + + else if ( (LA11_0=='d') ) {s = 15;} + + else if ( (LA11_0=='e') ) {s = 16;} + + else if ( (LA11_0=='{') ) {s = 17;} + + else if ( (LA11_0=='}') ) {s = 18;} + + else if ( (LA11_0==',') ) {s = 19;} + + else if ( (LA11_0=='+') ) {s = 20;} + + else if ( (LA11_0==':') ) {s = 21;} + + else if ( (LA11_0=='f') ) {s = 22;} + + else if ( (LA11_0=='[') ) {s = 23;} + + else if ( (LA11_0==']') ) {s = 24;} + + else if ( (LA11_0=='>') ) {s = 25;} + + else if ( (LA11_0=='.') ) {s = 26;} + + else if ( (LA11_0=='-') ) {s = 27;} + + else if ( (LA11_0=='~') ) {s = 28;} + + else if ( (LA11_0=='^') ) {s = 29;} + + else if ( (LA11_0=='*') ) {s = 30;} + + else if ( (LA11_0=='#') ) {s = 31;} + + else if ( (LA11_0=='u') ) {s = 32;} + + else if ( (LA11_0=='I') ) {s = 33;} + + else if ( (LA11_0=='S') ) {s = 34;} + + else if ( (LA11_0=='(') ) {s = 35;} + + else if ( (LA11_0==')') ) {s = 36;} + + else if ( ((LA11_0>='A' && LA11_0<='H')||(LA11_0>='J' && LA11_0<='R')||(LA11_0>='T' && LA11_0<='Z')||LA11_0=='_'||(LA11_0>='b' && LA11_0<='c')||(LA11_0>='g' && LA11_0<='h')||(LA11_0>='j' && LA11_0<='k')||LA11_0=='q'||LA11_0=='t'||(LA11_0>='v' && LA11_0<='z')) ) {s = 37;} + + else if ( ((LA11_0>='0' && LA11_0<='9')) ) {s = 38;} + + else if ( (LA11_0=='\"') ) {s = 39;} + + else if ( (LA11_0=='\'') ) {s = 40;} + + else if ( (LA11_0=='/') ) {s = 41;} + + else if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {s = 42;} + + else if ( ((LA11_0>='\u0000' && LA11_0<='\b')||(LA11_0>='\u000B' && LA11_0<='\f')||(LA11_0>='\u000E' && LA11_0<='\u001F')||(LA11_0>='$' && LA11_0<='%')||LA11_0==';'||(LA11_0>='?' && LA11_0<='@')||LA11_0=='\\'||LA11_0=='`'||(LA11_0>='\u007F' && LA11_0<='\uFFFF')) ) {s = 43;} + + if ( s>=0 ) return s; + break; + } + NoViableAltException nvae = + new NoViableAltException(getDescription(), 11, _s, input); + error(nvae); + throw nvae; + } + } + + +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/internal/InternalAlloyLanguageParser.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/internal/InternalAlloyLanguageParser.java new file mode 100644 index 00000000..96888ce4 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/contentassist/antlr/internal/InternalAlloyLanguageParser.java @@ -0,0 +1,29554 @@ +package hu.bme.mit.inf.dslreasoner.ui.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.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser; +import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA; +import hu.bme.mit.inf.dslreasoner.services.AlloyLanguageGrammarAccess; + + + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; +@SuppressWarnings("all") +public class InternalAlloyLanguageParser extends AbstractInternalContentAssistParser { + public static final String[] tokenNames = new String[] { + "", "", "", "", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'||'", "'or'", "'<=>'", "'iff'", "'=>'", "'implies'", "'&&'", "'and'", "'!'", "'not'", "'all'", "'no'", "'some'", "'lone'", "'one'", "'set'", "'plus'", "'sub'", "'mul'", "'rem'", "'div'", "'enum'", "'{'", "'}'", "','", "'sig'", "'extends'", "'in'", "'+'", "':'", "'fun'", "'['", "']'", "'pred'", "'fact'", "'else'", "'='", "'!='", "'>'", "'>='", "'<'", "'<='", "'++'", "':>'", "'<:'", "'.'", "'-'", "'&'", "'->'", "'~'", "'^'", "'*'", "'#'", "'sum'", "'none'", "'iden'", "'univ'", "'Int'", "'String'", "'('", "')'", "'run'", "'for'", "'exactly'", "'abstract'", "'disj'" + }; + public static final int T__50=50; + public static final int T__19=19; + public static final int T__15=15; + public static final int T__59=59; + public static final int T__16=16; + public static final int T__17=17; + public static final int T__18=18; + public static final int T__11=11; + public static final int T__55=55; + public static final int T__12=12; + public static final int T__56=56; + public static final int T__13=13; + public static final int T__57=57; + public static final int T__14=14; + public static final int T__58=58; + public static final int T__51=51; + public static final int T__52=52; + public static final int T__53=53; + 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=4; + public static final int T__26=26; + public static final int T__27=27; + public static final int T__28=28; + public static final int RULE_INT=5; + public static final int T__29=29; + public static final int T__22=22; + public static final int T__66=66; + public static final int RULE_ML_COMMENT=7; + public static final int T__23=23; + public static final int T__67=67; + public static final int T__24=24; + public static final int T__68=68; + public static final int T__25=25; + public static final int T__69=69; + public static final int T__62=62; + public static final int T__63=63; + public static final int T__20=20; + public static final int T__64=64; + public static final int T__21=21; + public static final int T__65=65; + public static final int T__70=70; + public static final int T__71=71; + public static final int T__72=72; + public static final int RULE_STRING=6; + public static final int RULE_SL_COMMENT=8; + 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 T__73=73; + public static final int EOF=-1; + public static final int T__30=30; + public static final int T__74=74; + public static final int T__31=31; + public static final int T__75=75; + public static final int T__32=32; + public static final int T__76=76; + public static final int RULE_WS=9; + public static final int RULE_ANY_OTHER=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 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 InternalAlloyLanguageParser(TokenStream input) { + this(input, new RecognizerSharedState()); + } + public InternalAlloyLanguageParser(TokenStream input, RecognizerSharedState state) { + super(input, state); + + } + + + public String[] getTokenNames() { return InternalAlloyLanguageParser.tokenNames; } + public String getGrammarFileName() { return "InternalAlloyLanguage.g"; } + + + + private AlloyLanguageGrammarAccess grammarAccess; + + public void setGrammarAccess(AlloyLanguageGrammarAccess grammarAccess) { + this.grammarAccess = grammarAccess; + } + + @Override + protected Grammar getGrammar() { + return grammarAccess.getGrammar(); + } + + @Override + protected String getValueForTokenName(String tokenName) { + return tokenName; + } + + + + + // $ANTLR start "entryRuleALSDocument" + // InternalAlloyLanguage.g:61:1: entryRuleALSDocument : ruleALSDocument EOF ; + public final void entryRuleALSDocument() throws RecognitionException { + try { + // InternalAlloyLanguage.g:62:1: ( ruleALSDocument EOF ) + // InternalAlloyLanguage.g:63:1: ruleALSDocument EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDocumentRule()); + } + pushFollow(FOLLOW_1); + ruleALSDocument(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDocumentRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSDocument" + + + // $ANTLR start "ruleALSDocument" + // InternalAlloyLanguage.g:70:1: ruleALSDocument : ( ( rule__ALSDocument__Group__0 ) ) ; + public final void ruleALSDocument() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:74:2: ( ( ( rule__ALSDocument__Group__0 ) ) ) + // InternalAlloyLanguage.g:75:1: ( ( rule__ALSDocument__Group__0 ) ) + { + // InternalAlloyLanguage.g:75:1: ( ( rule__ALSDocument__Group__0 ) ) + // InternalAlloyLanguage.g:76:1: ( rule__ALSDocument__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDocumentAccess().getGroup()); + } + // InternalAlloyLanguage.g:77:1: ( rule__ALSDocument__Group__0 ) + // InternalAlloyLanguage.g:77:2: rule__ALSDocument__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSDocument__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDocumentAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSDocument" + + + // $ANTLR start "entryRuleALSID" + // InternalAlloyLanguage.g:89:1: entryRuleALSID : ruleALSID EOF ; + public final void entryRuleALSID() throws RecognitionException { + try { + // InternalAlloyLanguage.g:90:1: ( ruleALSID EOF ) + // InternalAlloyLanguage.g:91:1: ruleALSID EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIDRule()); + } + pushFollow(FOLLOW_1); + ruleALSID(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIDRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSID" + + + // $ANTLR start "ruleALSID" + // InternalAlloyLanguage.g:98:1: ruleALSID : ( RULE_ID ) ; + public final void ruleALSID() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:102:2: ( ( RULE_ID ) ) + // InternalAlloyLanguage.g:103:1: ( RULE_ID ) + { + // InternalAlloyLanguage.g:103:1: ( RULE_ID ) + // InternalAlloyLanguage.g:104:1: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIDAccess().getIDTerminalRuleCall()); + } + match(input,RULE_ID,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIDAccess().getIDTerminalRuleCall()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSID" + + + // $ANTLR start "entryRuleALSTypeDeclaration" + // InternalAlloyLanguage.g:119:1: entryRuleALSTypeDeclaration : ruleALSTypeDeclaration EOF ; + public final void entryRuleALSTypeDeclaration() throws RecognitionException { + try { + // InternalAlloyLanguage.g:120:1: ( ruleALSTypeDeclaration EOF ) + // InternalAlloyLanguage.g:121:1: ruleALSTypeDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSTypeDeclarationRule()); + } + pushFollow(FOLLOW_1); + ruleALSTypeDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSTypeDeclarationRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSTypeDeclaration" + + + // $ANTLR start "ruleALSTypeDeclaration" + // InternalAlloyLanguage.g:128:1: ruleALSTypeDeclaration : ( ( rule__ALSTypeDeclaration__Alternatives ) ) ; + public final void ruleALSTypeDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:132:2: ( ( ( rule__ALSTypeDeclaration__Alternatives ) ) ) + // InternalAlloyLanguage.g:133:1: ( ( rule__ALSTypeDeclaration__Alternatives ) ) + { + // InternalAlloyLanguage.g:133:1: ( ( rule__ALSTypeDeclaration__Alternatives ) ) + // InternalAlloyLanguage.g:134:1: ( rule__ALSTypeDeclaration__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSTypeDeclarationAccess().getAlternatives()); + } + // InternalAlloyLanguage.g:135:1: ( rule__ALSTypeDeclaration__Alternatives ) + // InternalAlloyLanguage.g:135:2: rule__ALSTypeDeclaration__Alternatives + { + pushFollow(FOLLOW_2); + rule__ALSTypeDeclaration__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSTypeDeclarationAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSTypeDeclaration" + + + // $ANTLR start "entryRuleALSEnumDeclaration" + // InternalAlloyLanguage.g:147:1: entryRuleALSEnumDeclaration : ruleALSEnumDeclaration EOF ; + public final void entryRuleALSEnumDeclaration() throws RecognitionException { + try { + // InternalAlloyLanguage.g:148:1: ( ruleALSEnumDeclaration EOF ) + // InternalAlloyLanguage.g:149:1: ruleALSEnumDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSEnumDeclarationRule()); + } + pushFollow(FOLLOW_1); + ruleALSEnumDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSEnumDeclarationRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSEnumDeclaration" + + + // $ANTLR start "ruleALSEnumDeclaration" + // InternalAlloyLanguage.g:156:1: ruleALSEnumDeclaration : ( ( rule__ALSEnumDeclaration__Group__0 ) ) ; + public final void ruleALSEnumDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:160:2: ( ( ( rule__ALSEnumDeclaration__Group__0 ) ) ) + // InternalAlloyLanguage.g:161:1: ( ( rule__ALSEnumDeclaration__Group__0 ) ) + { + // InternalAlloyLanguage.g:161:1: ( ( rule__ALSEnumDeclaration__Group__0 ) ) + // InternalAlloyLanguage.g:162:1: ( rule__ALSEnumDeclaration__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSEnumDeclarationAccess().getGroup()); + } + // InternalAlloyLanguage.g:163:1: ( rule__ALSEnumDeclaration__Group__0 ) + // InternalAlloyLanguage.g:163:2: rule__ALSEnumDeclaration__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSEnumDeclaration__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSEnumDeclarationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSEnumDeclaration" + + + // $ANTLR start "entryRuleALSEnumLiteral" + // InternalAlloyLanguage.g:175:1: entryRuleALSEnumLiteral : ruleALSEnumLiteral EOF ; + public final void entryRuleALSEnumLiteral() throws RecognitionException { + try { + // InternalAlloyLanguage.g:176:1: ( ruleALSEnumLiteral EOF ) + // InternalAlloyLanguage.g:177:1: ruleALSEnumLiteral EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSEnumLiteralRule()); + } + pushFollow(FOLLOW_1); + ruleALSEnumLiteral(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSEnumLiteralRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSEnumLiteral" + + + // $ANTLR start "ruleALSEnumLiteral" + // InternalAlloyLanguage.g:184:1: ruleALSEnumLiteral : ( ( rule__ALSEnumLiteral__NameAssignment ) ) ; + public final void ruleALSEnumLiteral() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:188:2: ( ( ( rule__ALSEnumLiteral__NameAssignment ) ) ) + // InternalAlloyLanguage.g:189:1: ( ( rule__ALSEnumLiteral__NameAssignment ) ) + { + // InternalAlloyLanguage.g:189:1: ( ( rule__ALSEnumLiteral__NameAssignment ) ) + // InternalAlloyLanguage.g:190:1: ( rule__ALSEnumLiteral__NameAssignment ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSEnumLiteralAccess().getNameAssignment()); + } + // InternalAlloyLanguage.g:191:1: ( rule__ALSEnumLiteral__NameAssignment ) + // InternalAlloyLanguage.g:191:2: rule__ALSEnumLiteral__NameAssignment + { + pushFollow(FOLLOW_2); + rule__ALSEnumLiteral__NameAssignment(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSEnumLiteralAccess().getNameAssignment()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSEnumLiteral" + + + // $ANTLR start "entryRuleALSSignatureDeclaration" + // InternalAlloyLanguage.g:203:1: entryRuleALSSignatureDeclaration : ruleALSSignatureDeclaration EOF ; + public final void entryRuleALSSignatureDeclaration() throws RecognitionException { + try { + // InternalAlloyLanguage.g:204:1: ( ruleALSSignatureDeclaration EOF ) + // InternalAlloyLanguage.g:205:1: ruleALSSignatureDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureDeclarationRule()); + } + pushFollow(FOLLOW_1); + ruleALSSignatureDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureDeclarationRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSSignatureDeclaration" + + + // $ANTLR start "ruleALSSignatureDeclaration" + // InternalAlloyLanguage.g:212:1: ruleALSSignatureDeclaration : ( ( rule__ALSSignatureDeclaration__NameAssignment ) ) ; + public final void ruleALSSignatureDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:216:2: ( ( ( rule__ALSSignatureDeclaration__NameAssignment ) ) ) + // InternalAlloyLanguage.g:217:1: ( ( rule__ALSSignatureDeclaration__NameAssignment ) ) + { + // InternalAlloyLanguage.g:217:1: ( ( rule__ALSSignatureDeclaration__NameAssignment ) ) + // InternalAlloyLanguage.g:218:1: ( rule__ALSSignatureDeclaration__NameAssignment ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureDeclarationAccess().getNameAssignment()); + } + // InternalAlloyLanguage.g:219:1: ( rule__ALSSignatureDeclaration__NameAssignment ) + // InternalAlloyLanguage.g:219:2: rule__ALSSignatureDeclaration__NameAssignment + { + pushFollow(FOLLOW_2); + rule__ALSSignatureDeclaration__NameAssignment(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureDeclarationAccess().getNameAssignment()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSSignatureDeclaration" + + + // $ANTLR start "entryRuleALSSignatureBody" + // InternalAlloyLanguage.g:231:1: entryRuleALSSignatureBody : ruleALSSignatureBody EOF ; + public final void entryRuleALSSignatureBody() throws RecognitionException { + try { + // InternalAlloyLanguage.g:232:1: ( ruleALSSignatureBody EOF ) + // InternalAlloyLanguage.g:233:1: ruleALSSignatureBody EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyRule()); + } + pushFollow(FOLLOW_1); + ruleALSSignatureBody(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSSignatureBody" + + + // $ANTLR start "ruleALSSignatureBody" + // InternalAlloyLanguage.g:240:1: ruleALSSignatureBody : ( ( rule__ALSSignatureBody__Group__0 ) ) ; + public final void ruleALSSignatureBody() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:244:2: ( ( ( rule__ALSSignatureBody__Group__0 ) ) ) + // InternalAlloyLanguage.g:245:1: ( ( rule__ALSSignatureBody__Group__0 ) ) + { + // InternalAlloyLanguage.g:245:1: ( ( rule__ALSSignatureBody__Group__0 ) ) + // InternalAlloyLanguage.g:246:1: ( rule__ALSSignatureBody__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getGroup()); + } + // InternalAlloyLanguage.g:247:1: ( rule__ALSSignatureBody__Group__0 ) + // InternalAlloyLanguage.g:247:2: rule__ALSSignatureBody__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSSignatureBody" + + + // $ANTLR start "entryRuleALSFieldDeclaration" + // InternalAlloyLanguage.g:259:1: entryRuleALSFieldDeclaration : ruleALSFieldDeclaration EOF ; + public final void entryRuleALSFieldDeclaration() throws RecognitionException { + try { + // InternalAlloyLanguage.g:260:1: ( ruleALSFieldDeclaration EOF ) + // InternalAlloyLanguage.g:261:1: ruleALSFieldDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFieldDeclarationRule()); + } + pushFollow(FOLLOW_1); + ruleALSFieldDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFieldDeclarationRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSFieldDeclaration" + + + // $ANTLR start "ruleALSFieldDeclaration" + // InternalAlloyLanguage.g:268:1: ruleALSFieldDeclaration : ( ( rule__ALSFieldDeclaration__Group__0 ) ) ; + public final void ruleALSFieldDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:272:2: ( ( ( rule__ALSFieldDeclaration__Group__0 ) ) ) + // InternalAlloyLanguage.g:273:1: ( ( rule__ALSFieldDeclaration__Group__0 ) ) + { + // InternalAlloyLanguage.g:273:1: ( ( rule__ALSFieldDeclaration__Group__0 ) ) + // InternalAlloyLanguage.g:274:1: ( rule__ALSFieldDeclaration__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFieldDeclarationAccess().getGroup()); + } + // InternalAlloyLanguage.g:275:1: ( rule__ALSFieldDeclaration__Group__0 ) + // InternalAlloyLanguage.g:275:2: rule__ALSFieldDeclaration__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSFieldDeclaration__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFieldDeclarationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSFieldDeclaration" + + + // $ANTLR start "entryRuleALSFunctionDefinition" + // InternalAlloyLanguage.g:289:1: entryRuleALSFunctionDefinition : ruleALSFunctionDefinition EOF ; + public final void entryRuleALSFunctionDefinition() throws RecognitionException { + try { + // InternalAlloyLanguage.g:290:1: ( ruleALSFunctionDefinition EOF ) + // InternalAlloyLanguage.g:291:1: ruleALSFunctionDefinition EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFunctionDefinitionRule()); + } + pushFollow(FOLLOW_1); + ruleALSFunctionDefinition(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFunctionDefinitionRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSFunctionDefinition" + + + // $ANTLR start "ruleALSFunctionDefinition" + // InternalAlloyLanguage.g:298:1: ruleALSFunctionDefinition : ( ( rule__ALSFunctionDefinition__Group__0 ) ) ; + public final void ruleALSFunctionDefinition() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:302:2: ( ( ( rule__ALSFunctionDefinition__Group__0 ) ) ) + // InternalAlloyLanguage.g:303:1: ( ( rule__ALSFunctionDefinition__Group__0 ) ) + { + // InternalAlloyLanguage.g:303:1: ( ( rule__ALSFunctionDefinition__Group__0 ) ) + // InternalAlloyLanguage.g:304:1: ( rule__ALSFunctionDefinition__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFunctionDefinitionAccess().getGroup()); + } + // InternalAlloyLanguage.g:305:1: ( rule__ALSFunctionDefinition__Group__0 ) + // InternalAlloyLanguage.g:305:2: rule__ALSFunctionDefinition__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSFunctionDefinition__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFunctionDefinitionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSFunctionDefinition" + + + // $ANTLR start "entryRuleALSRelationDefinition" + // InternalAlloyLanguage.g:317:1: entryRuleALSRelationDefinition : ruleALSRelationDefinition EOF ; + public final void entryRuleALSRelationDefinition() throws RecognitionException { + try { + // InternalAlloyLanguage.g:318:1: ( ruleALSRelationDefinition EOF ) + // InternalAlloyLanguage.g:319:1: ruleALSRelationDefinition EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRelationDefinitionRule()); + } + pushFollow(FOLLOW_1); + ruleALSRelationDefinition(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRelationDefinitionRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSRelationDefinition" + + + // $ANTLR start "ruleALSRelationDefinition" + // InternalAlloyLanguage.g:326:1: ruleALSRelationDefinition : ( ( rule__ALSRelationDefinition__Group__0 ) ) ; + public final void ruleALSRelationDefinition() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:330:2: ( ( ( rule__ALSRelationDefinition__Group__0 ) ) ) + // InternalAlloyLanguage.g:331:1: ( ( rule__ALSRelationDefinition__Group__0 ) ) + { + // InternalAlloyLanguage.g:331:1: ( ( rule__ALSRelationDefinition__Group__0 ) ) + // InternalAlloyLanguage.g:332:1: ( rule__ALSRelationDefinition__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRelationDefinitionAccess().getGroup()); + } + // InternalAlloyLanguage.g:333:1: ( rule__ALSRelationDefinition__Group__0 ) + // InternalAlloyLanguage.g:333:2: rule__ALSRelationDefinition__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSRelationDefinition__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRelationDefinitionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSRelationDefinition" + + + // $ANTLR start "entryRuleALSFactDeclaration" + // InternalAlloyLanguage.g:345:1: entryRuleALSFactDeclaration : ruleALSFactDeclaration EOF ; + public final void entryRuleALSFactDeclaration() throws RecognitionException { + try { + // InternalAlloyLanguage.g:346:1: ( ruleALSFactDeclaration EOF ) + // InternalAlloyLanguage.g:347:1: ruleALSFactDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFactDeclarationRule()); + } + pushFollow(FOLLOW_1); + ruleALSFactDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFactDeclarationRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSFactDeclaration" + + + // $ANTLR start "ruleALSFactDeclaration" + // InternalAlloyLanguage.g:354:1: ruleALSFactDeclaration : ( ( rule__ALSFactDeclaration__Group__0 ) ) ; + public final void ruleALSFactDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:358:2: ( ( ( rule__ALSFactDeclaration__Group__0 ) ) ) + // InternalAlloyLanguage.g:359:1: ( ( rule__ALSFactDeclaration__Group__0 ) ) + { + // InternalAlloyLanguage.g:359:1: ( ( rule__ALSFactDeclaration__Group__0 ) ) + // InternalAlloyLanguage.g:360:1: ( rule__ALSFactDeclaration__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFactDeclarationAccess().getGroup()); + } + // InternalAlloyLanguage.g:361:1: ( rule__ALSFactDeclaration__Group__0 ) + // InternalAlloyLanguage.g:361:2: rule__ALSFactDeclaration__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSFactDeclaration__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFactDeclarationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSFactDeclaration" + + + // $ANTLR start "entryRuleALSTerm" + // InternalAlloyLanguage.g:373:1: entryRuleALSTerm : ruleALSTerm EOF ; + public final void entryRuleALSTerm() throws RecognitionException { + try { + // InternalAlloyLanguage.g:374:1: ( ruleALSTerm EOF ) + // InternalAlloyLanguage.g:375:1: ruleALSTerm EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSTermRule()); + } + pushFollow(FOLLOW_1); + ruleALSTerm(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSTermRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSTerm" + + + // $ANTLR start "ruleALSTerm" + // InternalAlloyLanguage.g:382:1: ruleALSTerm : ( ruleALSQuantified ) ; + public final void ruleALSTerm() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:386:2: ( ( ruleALSQuantified ) ) + // InternalAlloyLanguage.g:387:1: ( ruleALSQuantified ) + { + // InternalAlloyLanguage.g:387:1: ( ruleALSQuantified ) + // InternalAlloyLanguage.g:388:1: ruleALSQuantified + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSTermAccess().getALSQuantifiedParserRuleCall()); + } + pushFollow(FOLLOW_2); + ruleALSQuantified(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSTermAccess().getALSQuantifiedParserRuleCall()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSTerm" + + + // $ANTLR start "entryRuleALSQuantified" + // InternalAlloyLanguage.g:401:1: entryRuleALSQuantified : ruleALSQuantified EOF ; + public final void entryRuleALSQuantified() throws RecognitionException { + try { + // InternalAlloyLanguage.g:402:1: ( ruleALSQuantified EOF ) + // InternalAlloyLanguage.g:403:1: ruleALSQuantified EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSQuantifiedRule()); + } + pushFollow(FOLLOW_1); + ruleALSQuantified(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSQuantifiedRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSQuantified" + + + // $ANTLR start "ruleALSQuantified" + // InternalAlloyLanguage.g:410:1: ruleALSQuantified : ( ( rule__ALSQuantified__Alternatives ) ) ; + public final void ruleALSQuantified() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:414:2: ( ( ( rule__ALSQuantified__Alternatives ) ) ) + // InternalAlloyLanguage.g:415:1: ( ( rule__ALSQuantified__Alternatives ) ) + { + // InternalAlloyLanguage.g:415:1: ( ( rule__ALSQuantified__Alternatives ) ) + // InternalAlloyLanguage.g:416:1: ( rule__ALSQuantified__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSQuantifiedAccess().getAlternatives()); + } + // InternalAlloyLanguage.g:417:1: ( rule__ALSQuantified__Alternatives ) + // InternalAlloyLanguage.g:417:2: rule__ALSQuantified__Alternatives + { + pushFollow(FOLLOW_2); + rule__ALSQuantified__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSQuantifiedAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSQuantified" + + + // $ANTLR start "entryRuleALSOr" + // InternalAlloyLanguage.g:429:1: entryRuleALSOr : ruleALSOr EOF ; + public final void entryRuleALSOr() throws RecognitionException { + try { + // InternalAlloyLanguage.g:430:1: ( ruleALSOr EOF ) + // InternalAlloyLanguage.g:431:1: ruleALSOr EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSOrRule()); + } + pushFollow(FOLLOW_1); + ruleALSOr(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSOrRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSOr" + + + // $ANTLR start "ruleALSOr" + // InternalAlloyLanguage.g:438:1: ruleALSOr : ( ( rule__ALSOr__Group__0 ) ) ; + public final void ruleALSOr() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:442:2: ( ( ( rule__ALSOr__Group__0 ) ) ) + // InternalAlloyLanguage.g:443:1: ( ( rule__ALSOr__Group__0 ) ) + { + // InternalAlloyLanguage.g:443:1: ( ( rule__ALSOr__Group__0 ) ) + // InternalAlloyLanguage.g:444:1: ( rule__ALSOr__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSOrAccess().getGroup()); + } + // InternalAlloyLanguage.g:445:1: ( rule__ALSOr__Group__0 ) + // InternalAlloyLanguage.g:445:2: rule__ALSOr__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSOr__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSOrAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSOr" + + + // $ANTLR start "entryRuleALSIff" + // InternalAlloyLanguage.g:457:1: entryRuleALSIff : ruleALSIff EOF ; + public final void entryRuleALSIff() throws RecognitionException { + try { + // InternalAlloyLanguage.g:458:1: ( ruleALSIff EOF ) + // InternalAlloyLanguage.g:459:1: ruleALSIff EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIffRule()); + } + pushFollow(FOLLOW_1); + ruleALSIff(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIffRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSIff" + + + // $ANTLR start "ruleALSIff" + // InternalAlloyLanguage.g:466:1: ruleALSIff : ( ( rule__ALSIff__Group__0 ) ) ; + public final void ruleALSIff() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:470:2: ( ( ( rule__ALSIff__Group__0 ) ) ) + // InternalAlloyLanguage.g:471:1: ( ( rule__ALSIff__Group__0 ) ) + { + // InternalAlloyLanguage.g:471:1: ( ( rule__ALSIff__Group__0 ) ) + // InternalAlloyLanguage.g:472:1: ( rule__ALSIff__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIffAccess().getGroup()); + } + // InternalAlloyLanguage.g:473:1: ( rule__ALSIff__Group__0 ) + // InternalAlloyLanguage.g:473:2: rule__ALSIff__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSIff__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIffAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSIff" + + + // $ANTLR start "entryRuleALSImpl" + // InternalAlloyLanguage.g:485:1: entryRuleALSImpl : ruleALSImpl EOF ; + public final void entryRuleALSImpl() throws RecognitionException { + try { + // InternalAlloyLanguage.g:486:1: ( ruleALSImpl EOF ) + // InternalAlloyLanguage.g:487:1: ruleALSImpl EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSImplRule()); + } + pushFollow(FOLLOW_1); + ruleALSImpl(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSImplRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSImpl" + + + // $ANTLR start "ruleALSImpl" + // InternalAlloyLanguage.g:494:1: ruleALSImpl : ( ( rule__ALSImpl__Group__0 ) ) ; + public final void ruleALSImpl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:498:2: ( ( ( rule__ALSImpl__Group__0 ) ) ) + // InternalAlloyLanguage.g:499:1: ( ( rule__ALSImpl__Group__0 ) ) + { + // InternalAlloyLanguage.g:499:1: ( ( rule__ALSImpl__Group__0 ) ) + // InternalAlloyLanguage.g:500:1: ( rule__ALSImpl__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSImplAccess().getGroup()); + } + // InternalAlloyLanguage.g:501:1: ( rule__ALSImpl__Group__0 ) + // InternalAlloyLanguage.g:501:2: rule__ALSImpl__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSImpl__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSImplAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSImpl" + + + // $ANTLR start "entryRuleALSAnd" + // InternalAlloyLanguage.g:513:1: entryRuleALSAnd : ruleALSAnd EOF ; + public final void entryRuleALSAnd() throws RecognitionException { + try { + // InternalAlloyLanguage.g:514:1: ( ruleALSAnd EOF ) + // InternalAlloyLanguage.g:515:1: ruleALSAnd EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSAndRule()); + } + pushFollow(FOLLOW_1); + ruleALSAnd(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSAndRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSAnd" + + + // $ANTLR start "ruleALSAnd" + // InternalAlloyLanguage.g:522:1: ruleALSAnd : ( ( rule__ALSAnd__Group__0 ) ) ; + public final void ruleALSAnd() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:526:2: ( ( ( rule__ALSAnd__Group__0 ) ) ) + // InternalAlloyLanguage.g:527:1: ( ( rule__ALSAnd__Group__0 ) ) + { + // InternalAlloyLanguage.g:527:1: ( ( rule__ALSAnd__Group__0 ) ) + // InternalAlloyLanguage.g:528:1: ( rule__ALSAnd__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSAndAccess().getGroup()); + } + // InternalAlloyLanguage.g:529:1: ( rule__ALSAnd__Group__0 ) + // InternalAlloyLanguage.g:529:2: rule__ALSAnd__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSAnd__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSAndAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSAnd" + + + // $ANTLR start "entryRuleALSComparison" + // InternalAlloyLanguage.g:541:1: entryRuleALSComparison : ruleALSComparison EOF ; + public final void entryRuleALSComparison() throws RecognitionException { + try { + // InternalAlloyLanguage.g:542:1: ( ruleALSComparison EOF ) + // InternalAlloyLanguage.g:543:1: ruleALSComparison EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonRule()); + } + pushFollow(FOLLOW_1); + ruleALSComparison(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSComparison" + + + // $ANTLR start "ruleALSComparison" + // InternalAlloyLanguage.g:550:1: ruleALSComparison : ( ( rule__ALSComparison__Group__0 ) ) ; + public final void ruleALSComparison() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:554:2: ( ( ( rule__ALSComparison__Group__0 ) ) ) + // InternalAlloyLanguage.g:555:1: ( ( rule__ALSComparison__Group__0 ) ) + { + // InternalAlloyLanguage.g:555:1: ( ( rule__ALSComparison__Group__0 ) ) + // InternalAlloyLanguage.g:556:1: ( rule__ALSComparison__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getGroup()); + } + // InternalAlloyLanguage.g:557:1: ( rule__ALSComparison__Group__0 ) + // InternalAlloyLanguage.g:557:2: rule__ALSComparison__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSComparison__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSComparison" + + + // $ANTLR start "entryRuleALSOverride" + // InternalAlloyLanguage.g:569:1: entryRuleALSOverride : ruleALSOverride EOF ; + public final void entryRuleALSOverride() throws RecognitionException { + try { + // InternalAlloyLanguage.g:570:1: ( ruleALSOverride EOF ) + // InternalAlloyLanguage.g:571:1: ruleALSOverride EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSOverrideRule()); + } + pushFollow(FOLLOW_1); + ruleALSOverride(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSOverrideRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSOverride" + + + // $ANTLR start "ruleALSOverride" + // InternalAlloyLanguage.g:578:1: ruleALSOverride : ( ( rule__ALSOverride__Group__0 ) ) ; + public final void ruleALSOverride() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:582:2: ( ( ( rule__ALSOverride__Group__0 ) ) ) + // InternalAlloyLanguage.g:583:1: ( ( rule__ALSOverride__Group__0 ) ) + { + // InternalAlloyLanguage.g:583:1: ( ( rule__ALSOverride__Group__0 ) ) + // InternalAlloyLanguage.g:584:1: ( rule__ALSOverride__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSOverrideAccess().getGroup()); + } + // InternalAlloyLanguage.g:585:1: ( rule__ALSOverride__Group__0 ) + // InternalAlloyLanguage.g:585:2: rule__ALSOverride__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSOverride__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSOverrideAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSOverride" + + + // $ANTLR start "entryRuleALSRangeRestrictionRight" + // InternalAlloyLanguage.g:597:1: entryRuleALSRangeRestrictionRight : ruleALSRangeRestrictionRight EOF ; + public final void entryRuleALSRangeRestrictionRight() throws RecognitionException { + try { + // InternalAlloyLanguage.g:598:1: ( ruleALSRangeRestrictionRight EOF ) + // InternalAlloyLanguage.g:599:1: ruleALSRangeRestrictionRight EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRangeRestrictionRightRule()); + } + pushFollow(FOLLOW_1); + ruleALSRangeRestrictionRight(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRangeRestrictionRightRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSRangeRestrictionRight" + + + // $ANTLR start "ruleALSRangeRestrictionRight" + // InternalAlloyLanguage.g:606:1: ruleALSRangeRestrictionRight : ( ( rule__ALSRangeRestrictionRight__Group__0 ) ) ; + public final void ruleALSRangeRestrictionRight() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:610:2: ( ( ( rule__ALSRangeRestrictionRight__Group__0 ) ) ) + // InternalAlloyLanguage.g:611:1: ( ( rule__ALSRangeRestrictionRight__Group__0 ) ) + { + // InternalAlloyLanguage.g:611:1: ( ( rule__ALSRangeRestrictionRight__Group__0 ) ) + // InternalAlloyLanguage.g:612:1: ( rule__ALSRangeRestrictionRight__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRangeRestrictionRightAccess().getGroup()); + } + // InternalAlloyLanguage.g:613:1: ( rule__ALSRangeRestrictionRight__Group__0 ) + // InternalAlloyLanguage.g:613:2: rule__ALSRangeRestrictionRight__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSRangeRestrictionRight__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRangeRestrictionRightAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSRangeRestrictionRight" + + + // $ANTLR start "entryRuleALSRangeRestrictionLeft" + // InternalAlloyLanguage.g:625:1: entryRuleALSRangeRestrictionLeft : ruleALSRangeRestrictionLeft EOF ; + public final void entryRuleALSRangeRestrictionLeft() throws RecognitionException { + try { + // InternalAlloyLanguage.g:626:1: ( ruleALSRangeRestrictionLeft EOF ) + // InternalAlloyLanguage.g:627:1: ruleALSRangeRestrictionLeft EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRangeRestrictionLeftRule()); + } + pushFollow(FOLLOW_1); + ruleALSRangeRestrictionLeft(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRangeRestrictionLeftRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSRangeRestrictionLeft" + + + // $ANTLR start "ruleALSRangeRestrictionLeft" + // InternalAlloyLanguage.g:634:1: ruleALSRangeRestrictionLeft : ( ( rule__ALSRangeRestrictionLeft__Group__0 ) ) ; + public final void ruleALSRangeRestrictionLeft() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:638:2: ( ( ( rule__ALSRangeRestrictionLeft__Group__0 ) ) ) + // InternalAlloyLanguage.g:639:1: ( ( rule__ALSRangeRestrictionLeft__Group__0 ) ) + { + // InternalAlloyLanguage.g:639:1: ( ( rule__ALSRangeRestrictionLeft__Group__0 ) ) + // InternalAlloyLanguage.g:640:1: ( rule__ALSRangeRestrictionLeft__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRangeRestrictionLeftAccess().getGroup()); + } + // InternalAlloyLanguage.g:641:1: ( rule__ALSRangeRestrictionLeft__Group__0 ) + // InternalAlloyLanguage.g:641:2: rule__ALSRangeRestrictionLeft__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSRangeRestrictionLeft__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRangeRestrictionLeftAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSRangeRestrictionLeft" + + + // $ANTLR start "entryRuleALSJoin" + // InternalAlloyLanguage.g:653:1: entryRuleALSJoin : ruleALSJoin EOF ; + public final void entryRuleALSJoin() throws RecognitionException { + try { + // InternalAlloyLanguage.g:654:1: ( ruleALSJoin EOF ) + // InternalAlloyLanguage.g:655:1: ruleALSJoin EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSJoinRule()); + } + pushFollow(FOLLOW_1); + ruleALSJoin(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSJoinRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSJoin" + + + // $ANTLR start "ruleALSJoin" + // InternalAlloyLanguage.g:662:1: ruleALSJoin : ( ( rule__ALSJoin__Group__0 ) ) ; + public final void ruleALSJoin() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:666:2: ( ( ( rule__ALSJoin__Group__0 ) ) ) + // InternalAlloyLanguage.g:667:1: ( ( rule__ALSJoin__Group__0 ) ) + { + // InternalAlloyLanguage.g:667:1: ( ( rule__ALSJoin__Group__0 ) ) + // InternalAlloyLanguage.g:668:1: ( rule__ALSJoin__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSJoinAccess().getGroup()); + } + // InternalAlloyLanguage.g:669:1: ( rule__ALSJoin__Group__0 ) + // InternalAlloyLanguage.g:669:2: rule__ALSJoin__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSJoin__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSJoinAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSJoin" + + + // $ANTLR start "entryRuleALSMinus" + // InternalAlloyLanguage.g:681:1: entryRuleALSMinus : ruleALSMinus EOF ; + public final void entryRuleALSMinus() throws RecognitionException { + try { + // InternalAlloyLanguage.g:682:1: ( ruleALSMinus EOF ) + // InternalAlloyLanguage.g:683:1: ruleALSMinus EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSMinusRule()); + } + pushFollow(FOLLOW_1); + ruleALSMinus(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSMinusRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSMinus" + + + // $ANTLR start "ruleALSMinus" + // InternalAlloyLanguage.g:690:1: ruleALSMinus : ( ( rule__ALSMinus__Group__0 ) ) ; + public final void ruleALSMinus() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:694:2: ( ( ( rule__ALSMinus__Group__0 ) ) ) + // InternalAlloyLanguage.g:695:1: ( ( rule__ALSMinus__Group__0 ) ) + { + // InternalAlloyLanguage.g:695:1: ( ( rule__ALSMinus__Group__0 ) ) + // InternalAlloyLanguage.g:696:1: ( rule__ALSMinus__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSMinusAccess().getGroup()); + } + // InternalAlloyLanguage.g:697:1: ( rule__ALSMinus__Group__0 ) + // InternalAlloyLanguage.g:697:2: rule__ALSMinus__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSMinus__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSMinusAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSMinus" + + + // $ANTLR start "entryRuleALSPlus" + // InternalAlloyLanguage.g:709:1: entryRuleALSPlus : ruleALSPlus EOF ; + public final void entryRuleALSPlus() throws RecognitionException { + try { + // InternalAlloyLanguage.g:710:1: ( ruleALSPlus EOF ) + // InternalAlloyLanguage.g:711:1: ruleALSPlus EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPlusRule()); + } + pushFollow(FOLLOW_1); + ruleALSPlus(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPlusRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSPlus" + + + // $ANTLR start "ruleALSPlus" + // InternalAlloyLanguage.g:718:1: ruleALSPlus : ( ( rule__ALSPlus__Group__0 ) ) ; + public final void ruleALSPlus() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:722:2: ( ( ( rule__ALSPlus__Group__0 ) ) ) + // InternalAlloyLanguage.g:723:1: ( ( rule__ALSPlus__Group__0 ) ) + { + // InternalAlloyLanguage.g:723:1: ( ( rule__ALSPlus__Group__0 ) ) + // InternalAlloyLanguage.g:724:1: ( rule__ALSPlus__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPlusAccess().getGroup()); + } + // InternalAlloyLanguage.g:725:1: ( rule__ALSPlus__Group__0 ) + // InternalAlloyLanguage.g:725:2: rule__ALSPlus__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSPlus__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPlusAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSPlus" + + + // $ANTLR start "entryRuleALSIntersection" + // InternalAlloyLanguage.g:737:1: entryRuleALSIntersection : ruleALSIntersection EOF ; + public final void entryRuleALSIntersection() throws RecognitionException { + try { + // InternalAlloyLanguage.g:738:1: ( ruleALSIntersection EOF ) + // InternalAlloyLanguage.g:739:1: ruleALSIntersection EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIntersectionRule()); + } + pushFollow(FOLLOW_1); + ruleALSIntersection(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIntersectionRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSIntersection" + + + // $ANTLR start "ruleALSIntersection" + // InternalAlloyLanguage.g:746:1: ruleALSIntersection : ( ( rule__ALSIntersection__Group__0 ) ) ; + public final void ruleALSIntersection() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:750:2: ( ( ( rule__ALSIntersection__Group__0 ) ) ) + // InternalAlloyLanguage.g:751:1: ( ( rule__ALSIntersection__Group__0 ) ) + { + // InternalAlloyLanguage.g:751:1: ( ( rule__ALSIntersection__Group__0 ) ) + // InternalAlloyLanguage.g:752:1: ( rule__ALSIntersection__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIntersectionAccess().getGroup()); + } + // InternalAlloyLanguage.g:753:1: ( rule__ALSIntersection__Group__0 ) + // InternalAlloyLanguage.g:753:2: rule__ALSIntersection__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSIntersection__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIntersectionAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSIntersection" + + + // $ANTLR start "entryRuleALSDirectProduct" + // InternalAlloyLanguage.g:765:1: entryRuleALSDirectProduct : ruleALSDirectProduct EOF ; + public final void entryRuleALSDirectProduct() throws RecognitionException { + try { + // InternalAlloyLanguage.g:766:1: ( ruleALSDirectProduct EOF ) + // InternalAlloyLanguage.g:767:1: ruleALSDirectProduct EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDirectProductRule()); + } + pushFollow(FOLLOW_1); + ruleALSDirectProduct(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDirectProductRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSDirectProduct" + + + // $ANTLR start "ruleALSDirectProduct" + // InternalAlloyLanguage.g:774:1: ruleALSDirectProduct : ( ( rule__ALSDirectProduct__Group__0 ) ) ; + public final void ruleALSDirectProduct() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:778:2: ( ( ( rule__ALSDirectProduct__Group__0 ) ) ) + // InternalAlloyLanguage.g:779:1: ( ( rule__ALSDirectProduct__Group__0 ) ) + { + // InternalAlloyLanguage.g:779:1: ( ( rule__ALSDirectProduct__Group__0 ) ) + // InternalAlloyLanguage.g:780:1: ( rule__ALSDirectProduct__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDirectProductAccess().getGroup()); + } + // InternalAlloyLanguage.g:781:1: ( rule__ALSDirectProduct__Group__0 ) + // InternalAlloyLanguage.g:781:2: rule__ALSDirectProduct__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSDirectProduct__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDirectProductAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSDirectProduct" + + + // $ANTLR start "entryRuleALSPreficed" + // InternalAlloyLanguage.g:793:1: entryRuleALSPreficed : ruleALSPreficed EOF ; + public final void entryRuleALSPreficed() throws RecognitionException { + try { + // InternalAlloyLanguage.g:794:1: ( ruleALSPreficed EOF ) + // InternalAlloyLanguage.g:795:1: ruleALSPreficed EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedRule()); + } + pushFollow(FOLLOW_1); + ruleALSPreficed(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSPreficed" + + + // $ANTLR start "ruleALSPreficed" + // InternalAlloyLanguage.g:802:1: ruleALSPreficed : ( ( rule__ALSPreficed__Alternatives ) ) ; + public final void ruleALSPreficed() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:806:2: ( ( ( rule__ALSPreficed__Alternatives ) ) ) + // InternalAlloyLanguage.g:807:1: ( ( rule__ALSPreficed__Alternatives ) ) + { + // InternalAlloyLanguage.g:807:1: ( ( rule__ALSPreficed__Alternatives ) ) + // InternalAlloyLanguage.g:808:1: ( rule__ALSPreficed__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getAlternatives()); + } + // InternalAlloyLanguage.g:809:1: ( rule__ALSPreficed__Alternatives ) + // InternalAlloyLanguage.g:809:2: rule__ALSPreficed__Alternatives + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSPreficed" + + + // $ANTLR start "entryRuleALSVariableDeclaration" + // InternalAlloyLanguage.g:821:1: entryRuleALSVariableDeclaration : ruleALSVariableDeclaration EOF ; + public final void entryRuleALSVariableDeclaration() throws RecognitionException { + try { + // InternalAlloyLanguage.g:822:1: ( ruleALSVariableDeclaration EOF ) + // InternalAlloyLanguage.g:823:1: ruleALSVariableDeclaration EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSVariableDeclarationRule()); + } + pushFollow(FOLLOW_1); + ruleALSVariableDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSVariableDeclarationRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSVariableDeclaration" + + + // $ANTLR start "ruleALSVariableDeclaration" + // InternalAlloyLanguage.g:830:1: ruleALSVariableDeclaration : ( ( rule__ALSVariableDeclaration__Group__0 ) ) ; + public final void ruleALSVariableDeclaration() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:834:2: ( ( ( rule__ALSVariableDeclaration__Group__0 ) ) ) + // InternalAlloyLanguage.g:835:1: ( ( rule__ALSVariableDeclaration__Group__0 ) ) + { + // InternalAlloyLanguage.g:835:1: ( ( rule__ALSVariableDeclaration__Group__0 ) ) + // InternalAlloyLanguage.g:836:1: ( rule__ALSVariableDeclaration__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSVariableDeclarationAccess().getGroup()); + } + // InternalAlloyLanguage.g:837:1: ( rule__ALSVariableDeclaration__Group__0 ) + // InternalAlloyLanguage.g:837:2: rule__ALSVariableDeclaration__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSVariableDeclaration__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSVariableDeclarationAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSVariableDeclaration" + + + // $ANTLR start "entryRuleALSBasicRelationTerm" + // InternalAlloyLanguage.g:849:1: entryRuleALSBasicRelationTerm : ruleALSBasicRelationTerm EOF ; + public final void entryRuleALSBasicRelationTerm() throws RecognitionException { + try { + // InternalAlloyLanguage.g:850:1: ( ruleALSBasicRelationTerm EOF ) + // InternalAlloyLanguage.g:851:1: ruleALSBasicRelationTerm EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermRule()); + } + pushFollow(FOLLOW_1); + ruleALSBasicRelationTerm(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSBasicRelationTerm" + + + // $ANTLR start "ruleALSBasicRelationTerm" + // InternalAlloyLanguage.g:858:1: ruleALSBasicRelationTerm : ( ( rule__ALSBasicRelationTerm__Alternatives ) ) ; + public final void ruleALSBasicRelationTerm() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:862:2: ( ( ( rule__ALSBasicRelationTerm__Alternatives ) ) ) + // InternalAlloyLanguage.g:863:1: ( ( rule__ALSBasicRelationTerm__Alternatives ) ) + { + // InternalAlloyLanguage.g:863:1: ( ( rule__ALSBasicRelationTerm__Alternatives ) ) + // InternalAlloyLanguage.g:864:1: ( rule__ALSBasicRelationTerm__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getAlternatives()); + } + // InternalAlloyLanguage.g:865:1: ( rule__ALSBasicRelationTerm__Alternatives ) + // InternalAlloyLanguage.g:865:2: rule__ALSBasicRelationTerm__Alternatives + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSBasicRelationTerm" + + + // $ANTLR start "entryRuleALSRunCommand" + // InternalAlloyLanguage.g:877:1: entryRuleALSRunCommand : ruleALSRunCommand EOF ; + public final void entryRuleALSRunCommand() throws RecognitionException { + try { + // InternalAlloyLanguage.g:878:1: ( ruleALSRunCommand EOF ) + // InternalAlloyLanguage.g:879:1: ruleALSRunCommand EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRunCommandRule()); + } + pushFollow(FOLLOW_1); + ruleALSRunCommand(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRunCommandRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSRunCommand" + + + // $ANTLR start "ruleALSRunCommand" + // InternalAlloyLanguage.g:886:1: ruleALSRunCommand : ( ( rule__ALSRunCommand__Group__0 ) ) ; + public final void ruleALSRunCommand() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:890:2: ( ( ( rule__ALSRunCommand__Group__0 ) ) ) + // InternalAlloyLanguage.g:891:1: ( ( rule__ALSRunCommand__Group__0 ) ) + { + // InternalAlloyLanguage.g:891:1: ( ( rule__ALSRunCommand__Group__0 ) ) + // InternalAlloyLanguage.g:892:1: ( rule__ALSRunCommand__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRunCommandAccess().getGroup()); + } + // InternalAlloyLanguage.g:893:1: ( rule__ALSRunCommand__Group__0 ) + // InternalAlloyLanguage.g:893:2: rule__ALSRunCommand__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSRunCommand__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRunCommandAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSRunCommand" + + + // $ANTLR start "entryRuleALSTypeScope" + // InternalAlloyLanguage.g:905:1: entryRuleALSTypeScope : ruleALSTypeScope EOF ; + public final void entryRuleALSTypeScope() throws RecognitionException { + try { + // InternalAlloyLanguage.g:906:1: ( ruleALSTypeScope EOF ) + // InternalAlloyLanguage.g:907:1: ruleALSTypeScope EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSTypeScopeRule()); + } + pushFollow(FOLLOW_1); + ruleALSTypeScope(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSTypeScopeRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSTypeScope" + + + // $ANTLR start "ruleALSTypeScope" + // InternalAlloyLanguage.g:914:1: ruleALSTypeScope : ( ( rule__ALSTypeScope__Alternatives ) ) ; + public final void ruleALSTypeScope() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:918:2: ( ( ( rule__ALSTypeScope__Alternatives ) ) ) + // InternalAlloyLanguage.g:919:1: ( ( rule__ALSTypeScope__Alternatives ) ) + { + // InternalAlloyLanguage.g:919:1: ( ( rule__ALSTypeScope__Alternatives ) ) + // InternalAlloyLanguage.g:920:1: ( rule__ALSTypeScope__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSTypeScopeAccess().getAlternatives()); + } + // InternalAlloyLanguage.g:921:1: ( rule__ALSTypeScope__Alternatives ) + // InternalAlloyLanguage.g:921:2: rule__ALSTypeScope__Alternatives + { + pushFollow(FOLLOW_2); + rule__ALSTypeScope__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSTypeScopeAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSTypeScope" + + + // $ANTLR start "entryRuleALSSigScope" + // InternalAlloyLanguage.g:933:1: entryRuleALSSigScope : ruleALSSigScope EOF ; + public final void entryRuleALSSigScope() throws RecognitionException { + try { + // InternalAlloyLanguage.g:934:1: ( ruleALSSigScope EOF ) + // InternalAlloyLanguage.g:935:1: ruleALSSigScope EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSigScopeRule()); + } + pushFollow(FOLLOW_1); + ruleALSSigScope(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSigScopeRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSSigScope" + + + // $ANTLR start "ruleALSSigScope" + // InternalAlloyLanguage.g:942:1: ruleALSSigScope : ( ( rule__ALSSigScope__Group__0 ) ) ; + public final void ruleALSSigScope() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:946:2: ( ( ( rule__ALSSigScope__Group__0 ) ) ) + // InternalAlloyLanguage.g:947:1: ( ( rule__ALSSigScope__Group__0 ) ) + { + // InternalAlloyLanguage.g:947:1: ( ( rule__ALSSigScope__Group__0 ) ) + // InternalAlloyLanguage.g:948:1: ( rule__ALSSigScope__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSigScopeAccess().getGroup()); + } + // InternalAlloyLanguage.g:949:1: ( rule__ALSSigScope__Group__0 ) + // InternalAlloyLanguage.g:949:2: rule__ALSSigScope__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSSigScope__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSigScopeAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSSigScope" + + + // $ANTLR start "entryRuleALSIntScope" + // InternalAlloyLanguage.g:961:1: entryRuleALSIntScope : ruleALSIntScope EOF ; + public final void entryRuleALSIntScope() throws RecognitionException { + try { + // InternalAlloyLanguage.g:962:1: ( ruleALSIntScope EOF ) + // InternalAlloyLanguage.g:963:1: ruleALSIntScope EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIntScopeRule()); + } + pushFollow(FOLLOW_1); + ruleALSIntScope(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIntScopeRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSIntScope" + + + // $ANTLR start "ruleALSIntScope" + // InternalAlloyLanguage.g:970:1: ruleALSIntScope : ( ( rule__ALSIntScope__Group__0 ) ) ; + public final void ruleALSIntScope() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:974:2: ( ( ( rule__ALSIntScope__Group__0 ) ) ) + // InternalAlloyLanguage.g:975:1: ( ( rule__ALSIntScope__Group__0 ) ) + { + // InternalAlloyLanguage.g:975:1: ( ( rule__ALSIntScope__Group__0 ) ) + // InternalAlloyLanguage.g:976:1: ( rule__ALSIntScope__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIntScopeAccess().getGroup()); + } + // InternalAlloyLanguage.g:977:1: ( rule__ALSIntScope__Group__0 ) + // InternalAlloyLanguage.g:977:2: rule__ALSIntScope__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSIntScope__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIntScopeAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSIntScope" + + + // $ANTLR start "entryRuleALSStringScope" + // InternalAlloyLanguage.g:989:1: entryRuleALSStringScope : ruleALSStringScope EOF ; + public final void entryRuleALSStringScope() throws RecognitionException { + try { + // InternalAlloyLanguage.g:990:1: ( ruleALSStringScope EOF ) + // InternalAlloyLanguage.g:991:1: ruleALSStringScope EOF + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSStringScopeRule()); + } + pushFollow(FOLLOW_1); + ruleALSStringScope(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSStringScopeRule()); + } + match(input,EOF,FOLLOW_2); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + } + return ; + } + // $ANTLR end "entryRuleALSStringScope" + + + // $ANTLR start "ruleALSStringScope" + // InternalAlloyLanguage.g:998:1: ruleALSStringScope : ( ( rule__ALSStringScope__Group__0 ) ) ; + public final void ruleALSStringScope() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1002:2: ( ( ( rule__ALSStringScope__Group__0 ) ) ) + // InternalAlloyLanguage.g:1003:1: ( ( rule__ALSStringScope__Group__0 ) ) + { + // InternalAlloyLanguage.g:1003:1: ( ( rule__ALSStringScope__Group__0 ) ) + // InternalAlloyLanguage.g:1004:1: ( rule__ALSStringScope__Group__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSStringScopeAccess().getGroup()); + } + // InternalAlloyLanguage.g:1005:1: ( rule__ALSStringScope__Group__0 ) + // InternalAlloyLanguage.g:1005:2: rule__ALSStringScope__Group__0 + { + pushFollow(FOLLOW_2); + rule__ALSStringScope__Group__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSStringScopeAccess().getGroup()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSStringScope" + + + // $ANTLR start "ruleALSMultiplicity" + // InternalAlloyLanguage.g:1018:1: ruleALSMultiplicity : ( ( rule__ALSMultiplicity__Alternatives ) ) ; + public final void ruleALSMultiplicity() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1022:1: ( ( ( rule__ALSMultiplicity__Alternatives ) ) ) + // InternalAlloyLanguage.g:1023:1: ( ( rule__ALSMultiplicity__Alternatives ) ) + { + // InternalAlloyLanguage.g:1023:1: ( ( rule__ALSMultiplicity__Alternatives ) ) + // InternalAlloyLanguage.g:1024:1: ( rule__ALSMultiplicity__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSMultiplicityAccess().getAlternatives()); + } + // InternalAlloyLanguage.g:1025:1: ( rule__ALSMultiplicity__Alternatives ) + // InternalAlloyLanguage.g:1025:2: rule__ALSMultiplicity__Alternatives + { + pushFollow(FOLLOW_2); + rule__ALSMultiplicity__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSMultiplicityAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSMultiplicity" + + + // $ANTLR start "ruleALSNumericOperator" + // InternalAlloyLanguage.g:1037:1: ruleALSNumericOperator : ( ( rule__ALSNumericOperator__Alternatives ) ) ; + public final void ruleALSNumericOperator() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1041:1: ( ( ( rule__ALSNumericOperator__Alternatives ) ) ) + // InternalAlloyLanguage.g:1042:1: ( ( rule__ALSNumericOperator__Alternatives ) ) + { + // InternalAlloyLanguage.g:1042:1: ( ( rule__ALSNumericOperator__Alternatives ) ) + // InternalAlloyLanguage.g:1043:1: ( rule__ALSNumericOperator__Alternatives ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSNumericOperatorAccess().getAlternatives()); + } + // InternalAlloyLanguage.g:1044:1: ( rule__ALSNumericOperator__Alternatives ) + // InternalAlloyLanguage.g:1044:2: rule__ALSNumericOperator__Alternatives + { + pushFollow(FOLLOW_2); + rule__ALSNumericOperator__Alternatives(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSNumericOperatorAccess().getAlternatives()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleALSNumericOperator" + + + // $ANTLR start "rule__ALSDocument__Alternatives_0" + // InternalAlloyLanguage.g:1055:1: rule__ALSDocument__Alternatives_0 : ( ( ( rule__ALSDocument__EnumDeclarationsAssignment_0_0 ) ) | ( ( rule__ALSDocument__SignatureBodiesAssignment_0_1 ) ) | ( ( rule__ALSDocument__FunctionDefinitionsAssignment_0_2 ) ) | ( ( rule__ALSDocument__RelationDefinitionsAssignment_0_3 ) ) | ( ( rule__ALSDocument__FactDeclarationsAssignment_0_4 ) ) ); + public final void rule__ALSDocument__Alternatives_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1059:1: ( ( ( rule__ALSDocument__EnumDeclarationsAssignment_0_0 ) ) | ( ( rule__ALSDocument__SignatureBodiesAssignment_0_1 ) ) | ( ( rule__ALSDocument__FunctionDefinitionsAssignment_0_2 ) ) | ( ( rule__ALSDocument__RelationDefinitionsAssignment_0_3 ) ) | ( ( rule__ALSDocument__FactDeclarationsAssignment_0_4 ) ) ) + int alt1=5; + switch ( input.LA(1) ) { + case 32: + { + alt1=1; + } + break; + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 36: + case 75: + { + alt1=2; + } + break; + case 41: + { + alt1=3; + } + break; + case 44: + { + alt1=4; + } + break; + case 45: + { + alt1=5; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 1, 0, input); + + throw nvae; + } + + switch (alt1) { + case 1 : + // InternalAlloyLanguage.g:1060:1: ( ( rule__ALSDocument__EnumDeclarationsAssignment_0_0 ) ) + { + // InternalAlloyLanguage.g:1060:1: ( ( rule__ALSDocument__EnumDeclarationsAssignment_0_0 ) ) + // InternalAlloyLanguage.g:1061:1: ( rule__ALSDocument__EnumDeclarationsAssignment_0_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDocumentAccess().getEnumDeclarationsAssignment_0_0()); + } + // InternalAlloyLanguage.g:1062:1: ( rule__ALSDocument__EnumDeclarationsAssignment_0_0 ) + // InternalAlloyLanguage.g:1062:2: rule__ALSDocument__EnumDeclarationsAssignment_0_0 + { + pushFollow(FOLLOW_2); + rule__ALSDocument__EnumDeclarationsAssignment_0_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDocumentAccess().getEnumDeclarationsAssignment_0_0()); + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:1066:6: ( ( rule__ALSDocument__SignatureBodiesAssignment_0_1 ) ) + { + // InternalAlloyLanguage.g:1066:6: ( ( rule__ALSDocument__SignatureBodiesAssignment_0_1 ) ) + // InternalAlloyLanguage.g:1067:1: ( rule__ALSDocument__SignatureBodiesAssignment_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDocumentAccess().getSignatureBodiesAssignment_0_1()); + } + // InternalAlloyLanguage.g:1068:1: ( rule__ALSDocument__SignatureBodiesAssignment_0_1 ) + // InternalAlloyLanguage.g:1068:2: rule__ALSDocument__SignatureBodiesAssignment_0_1 + { + pushFollow(FOLLOW_2); + rule__ALSDocument__SignatureBodiesAssignment_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDocumentAccess().getSignatureBodiesAssignment_0_1()); + } + + } + + + } + break; + case 3 : + // InternalAlloyLanguage.g:1072:6: ( ( rule__ALSDocument__FunctionDefinitionsAssignment_0_2 ) ) + { + // InternalAlloyLanguage.g:1072:6: ( ( rule__ALSDocument__FunctionDefinitionsAssignment_0_2 ) ) + // InternalAlloyLanguage.g:1073:1: ( rule__ALSDocument__FunctionDefinitionsAssignment_0_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDocumentAccess().getFunctionDefinitionsAssignment_0_2()); + } + // InternalAlloyLanguage.g:1074:1: ( rule__ALSDocument__FunctionDefinitionsAssignment_0_2 ) + // InternalAlloyLanguage.g:1074:2: rule__ALSDocument__FunctionDefinitionsAssignment_0_2 + { + pushFollow(FOLLOW_2); + rule__ALSDocument__FunctionDefinitionsAssignment_0_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDocumentAccess().getFunctionDefinitionsAssignment_0_2()); + } + + } + + + } + break; + case 4 : + // InternalAlloyLanguage.g:1078:6: ( ( rule__ALSDocument__RelationDefinitionsAssignment_0_3 ) ) + { + // InternalAlloyLanguage.g:1078:6: ( ( rule__ALSDocument__RelationDefinitionsAssignment_0_3 ) ) + // InternalAlloyLanguage.g:1079:1: ( rule__ALSDocument__RelationDefinitionsAssignment_0_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDocumentAccess().getRelationDefinitionsAssignment_0_3()); + } + // InternalAlloyLanguage.g:1080:1: ( rule__ALSDocument__RelationDefinitionsAssignment_0_3 ) + // InternalAlloyLanguage.g:1080:2: rule__ALSDocument__RelationDefinitionsAssignment_0_3 + { + pushFollow(FOLLOW_2); + rule__ALSDocument__RelationDefinitionsAssignment_0_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDocumentAccess().getRelationDefinitionsAssignment_0_3()); + } + + } + + + } + break; + case 5 : + // InternalAlloyLanguage.g:1084:6: ( ( rule__ALSDocument__FactDeclarationsAssignment_0_4 ) ) + { + // InternalAlloyLanguage.g:1084:6: ( ( rule__ALSDocument__FactDeclarationsAssignment_0_4 ) ) + // InternalAlloyLanguage.g:1085:1: ( rule__ALSDocument__FactDeclarationsAssignment_0_4 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDocumentAccess().getFactDeclarationsAssignment_0_4()); + } + // InternalAlloyLanguage.g:1086:1: ( rule__ALSDocument__FactDeclarationsAssignment_0_4 ) + // InternalAlloyLanguage.g:1086:2: rule__ALSDocument__FactDeclarationsAssignment_0_4 + { + pushFollow(FOLLOW_2); + rule__ALSDocument__FactDeclarationsAssignment_0_4(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDocumentAccess().getFactDeclarationsAssignment_0_4()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDocument__Alternatives_0" + + + // $ANTLR start "rule__ALSTypeDeclaration__Alternatives" + // InternalAlloyLanguage.g:1096:1: rule__ALSTypeDeclaration__Alternatives : ( ( ruleALSEnumDeclaration ) | ( ruleALSSignatureDeclaration ) ); + public final void rule__ALSTypeDeclaration__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1100:1: ( ( ruleALSEnumDeclaration ) | ( ruleALSSignatureDeclaration ) ) + int alt2=2; + int LA2_0 = input.LA(1); + + if ( (LA2_0==32) ) { + alt2=1; + } + else if ( (LA2_0==RULE_ID) ) { + alt2=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 2, 0, input); + + throw nvae; + } + switch (alt2) { + case 1 : + // InternalAlloyLanguage.g:1101:1: ( ruleALSEnumDeclaration ) + { + // InternalAlloyLanguage.g:1101:1: ( ruleALSEnumDeclaration ) + // InternalAlloyLanguage.g:1102:1: ruleALSEnumDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSTypeDeclarationAccess().getALSEnumDeclarationParserRuleCall_0()); + } + pushFollow(FOLLOW_2); + ruleALSEnumDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSTypeDeclarationAccess().getALSEnumDeclarationParserRuleCall_0()); + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:1107:6: ( ruleALSSignatureDeclaration ) + { + // InternalAlloyLanguage.g:1107:6: ( ruleALSSignatureDeclaration ) + // InternalAlloyLanguage.g:1108:1: ruleALSSignatureDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSTypeDeclarationAccess().getALSSignatureDeclarationParserRuleCall_1()); + } + pushFollow(FOLLOW_2); + ruleALSSignatureDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSTypeDeclarationAccess().getALSSignatureDeclarationParserRuleCall_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSTypeDeclaration__Alternatives" + + + // $ANTLR start "rule__ALSSignatureBody__Alternatives_4" + // InternalAlloyLanguage.g:1118:1: rule__ALSSignatureBody__Alternatives_4 : ( ( ( rule__ALSSignatureBody__Group_4_0__0 ) ) | ( ( rule__ALSSignatureBody__Group_4_1__0 ) ) ); + public final void rule__ALSSignatureBody__Alternatives_4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1122:1: ( ( ( rule__ALSSignatureBody__Group_4_0__0 ) ) | ( ( rule__ALSSignatureBody__Group_4_1__0 ) ) ) + int alt3=2; + int LA3_0 = input.LA(1); + + if ( (LA3_0==37) ) { + alt3=1; + } + else if ( (LA3_0==38) ) { + alt3=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 3, 0, input); + + throw nvae; + } + switch (alt3) { + case 1 : + // InternalAlloyLanguage.g:1123:1: ( ( rule__ALSSignatureBody__Group_4_0__0 ) ) + { + // InternalAlloyLanguage.g:1123:1: ( ( rule__ALSSignatureBody__Group_4_0__0 ) ) + // InternalAlloyLanguage.g:1124:1: ( rule__ALSSignatureBody__Group_4_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getGroup_4_0()); + } + // InternalAlloyLanguage.g:1125:1: ( rule__ALSSignatureBody__Group_4_0__0 ) + // InternalAlloyLanguage.g:1125:2: rule__ALSSignatureBody__Group_4_0__0 + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group_4_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getGroup_4_0()); + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:1129:6: ( ( rule__ALSSignatureBody__Group_4_1__0 ) ) + { + // InternalAlloyLanguage.g:1129:6: ( ( rule__ALSSignatureBody__Group_4_1__0 ) ) + // InternalAlloyLanguage.g:1130:1: ( rule__ALSSignatureBody__Group_4_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getGroup_4_1()); + } + // InternalAlloyLanguage.g:1131:1: ( rule__ALSSignatureBody__Group_4_1__0 ) + // InternalAlloyLanguage.g:1131:2: rule__ALSSignatureBody__Group_4_1__0 + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group_4_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getGroup_4_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Alternatives_4" + + + // $ANTLR start "rule__ALSQuantified__Alternatives" + // InternalAlloyLanguage.g:1141:1: rule__ALSQuantified__Alternatives : ( ( ( rule__ALSQuantified__Group_0__0 ) ) | ( ruleALSOr ) ); + public final void rule__ALSQuantified__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1145:1: ( ( ( rule__ALSQuantified__Group_0__0 ) ) | ( ruleALSOr ) ) + int alt4=2; + int LA4_0 = input.LA(1); + + if ( ((LA4_0>=21 && LA4_0<=26)) ) { + alt4=1; + } + else if ( ((LA4_0>=RULE_ID && LA4_0<=RULE_STRING)||(LA4_0>=19 && LA4_0<=20)||(LA4_0>=27 && LA4_0<=31)||LA4_0==57||(LA4_0>=60 && LA4_0<=70)) ) { + alt4=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 4, 0, input); + + throw nvae; + } + switch (alt4) { + case 1 : + // InternalAlloyLanguage.g:1146:1: ( ( rule__ALSQuantified__Group_0__0 ) ) + { + // InternalAlloyLanguage.g:1146:1: ( ( rule__ALSQuantified__Group_0__0 ) ) + // InternalAlloyLanguage.g:1147:1: ( rule__ALSQuantified__Group_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSQuantifiedAccess().getGroup_0()); + } + // InternalAlloyLanguage.g:1148:1: ( rule__ALSQuantified__Group_0__0 ) + // InternalAlloyLanguage.g:1148:2: rule__ALSQuantified__Group_0__0 + { + pushFollow(FOLLOW_2); + rule__ALSQuantified__Group_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSQuantifiedAccess().getGroup_0()); + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:1152:6: ( ruleALSOr ) + { + // InternalAlloyLanguage.g:1152:6: ( ruleALSOr ) + // InternalAlloyLanguage.g:1153:1: ruleALSOr + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSQuantifiedAccess().getALSOrParserRuleCall_1()); + } + pushFollow(FOLLOW_2); + ruleALSOr(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSQuantifiedAccess().getALSOrParserRuleCall_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Alternatives" + + + // $ANTLR start "rule__ALSOr__Alternatives_1_1" + // InternalAlloyLanguage.g:1163:1: rule__ALSOr__Alternatives_1_1 : ( ( '||' ) | ( 'or' ) ); + public final void rule__ALSOr__Alternatives_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1167:1: ( ( '||' ) | ( 'or' ) ) + int alt5=2; + int LA5_0 = input.LA(1); + + if ( (LA5_0==11) ) { + alt5=1; + } + else if ( (LA5_0==12) ) { + alt5=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 5, 0, input); + + throw nvae; + } + switch (alt5) { + case 1 : + // InternalAlloyLanguage.g:1168:1: ( '||' ) + { + // InternalAlloyLanguage.g:1168:1: ( '||' ) + // InternalAlloyLanguage.g:1169:1: '||' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSOrAccess().getVerticalLineVerticalLineKeyword_1_1_0()); + } + match(input,11,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSOrAccess().getVerticalLineVerticalLineKeyword_1_1_0()); + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:1176:6: ( 'or' ) + { + // InternalAlloyLanguage.g:1176:6: ( 'or' ) + // InternalAlloyLanguage.g:1177:1: 'or' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSOrAccess().getOrKeyword_1_1_1()); + } + match(input,12,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSOrAccess().getOrKeyword_1_1_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOr__Alternatives_1_1" + + + // $ANTLR start "rule__ALSIff__Alternatives_1_1" + // InternalAlloyLanguage.g:1189:1: rule__ALSIff__Alternatives_1_1 : ( ( '<=>' ) | ( 'iff' ) ); + public final void rule__ALSIff__Alternatives_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1193:1: ( ( '<=>' ) | ( 'iff' ) ) + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0==13) ) { + alt6=1; + } + else if ( (LA6_0==14) ) { + alt6=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 6, 0, input); + + throw nvae; + } + switch (alt6) { + case 1 : + // InternalAlloyLanguage.g:1194:1: ( '<=>' ) + { + // InternalAlloyLanguage.g:1194:1: ( '<=>' ) + // InternalAlloyLanguage.g:1195:1: '<=>' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIffAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_1_1_0()); + } + match(input,13,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIffAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_1_1_0()); + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:1202:6: ( 'iff' ) + { + // InternalAlloyLanguage.g:1202:6: ( 'iff' ) + // InternalAlloyLanguage.g:1203:1: 'iff' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIffAccess().getIffKeyword_1_1_1()); + } + match(input,14,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIffAccess().getIffKeyword_1_1_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIff__Alternatives_1_1" + + + // $ANTLR start "rule__ALSImpl__Alternatives_1_1" + // InternalAlloyLanguage.g:1215:1: rule__ALSImpl__Alternatives_1_1 : ( ( '=>' ) | ( 'implies' ) ); + public final void rule__ALSImpl__Alternatives_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1219:1: ( ( '=>' ) | ( 'implies' ) ) + int alt7=2; + int LA7_0 = input.LA(1); + + if ( (LA7_0==15) ) { + alt7=1; + } + else if ( (LA7_0==16) ) { + alt7=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 7, 0, input); + + throw nvae; + } + switch (alt7) { + case 1 : + // InternalAlloyLanguage.g:1220:1: ( '=>' ) + { + // InternalAlloyLanguage.g:1220:1: ( '=>' ) + // InternalAlloyLanguage.g:1221:1: '=>' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSImplAccess().getEqualsSignGreaterThanSignKeyword_1_1_0()); + } + match(input,15,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSImplAccess().getEqualsSignGreaterThanSignKeyword_1_1_0()); + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:1228:6: ( 'implies' ) + { + // InternalAlloyLanguage.g:1228:6: ( 'implies' ) + // InternalAlloyLanguage.g:1229:1: 'implies' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSImplAccess().getImpliesKeyword_1_1_1()); + } + match(input,16,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSImplAccess().getImpliesKeyword_1_1_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSImpl__Alternatives_1_1" + + + // $ANTLR start "rule__ALSAnd__Alternatives_1_1" + // InternalAlloyLanguage.g:1241:1: rule__ALSAnd__Alternatives_1_1 : ( ( '&&' ) | ( 'and' ) ); + public final void rule__ALSAnd__Alternatives_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1245:1: ( ( '&&' ) | ( 'and' ) ) + int alt8=2; + int LA8_0 = input.LA(1); + + if ( (LA8_0==17) ) { + alt8=1; + } + else if ( (LA8_0==18) ) { + alt8=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 8, 0, input); + + throw nvae; + } + switch (alt8) { + case 1 : + // InternalAlloyLanguage.g:1246:1: ( '&&' ) + { + // InternalAlloyLanguage.g:1246:1: ( '&&' ) + // InternalAlloyLanguage.g:1247:1: '&&' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSAndAccess().getAmpersandAmpersandKeyword_1_1_0()); + } + match(input,17,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSAndAccess().getAmpersandAmpersandKeyword_1_1_0()); + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:1254:6: ( 'and' ) + { + // InternalAlloyLanguage.g:1254:6: ( 'and' ) + // InternalAlloyLanguage.g:1255:1: 'and' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSAndAccess().getAndKeyword_1_1_1()); + } + match(input,18,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSAndAccess().getAndKeyword_1_1_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSAnd__Alternatives_1_1" + + + // $ANTLR start "rule__ALSComparison__Alternatives_1_0" + // InternalAlloyLanguage.g:1267:1: rule__ALSComparison__Alternatives_1_0 : ( ( ( rule__ALSComparison__Group_1_0_0__0 ) ) | ( ( rule__ALSComparison__Group_1_0_1__0 ) ) | ( ( rule__ALSComparison__Group_1_0_2__0 ) ) | ( ( rule__ALSComparison__Group_1_0_3__0 ) ) | ( ( rule__ALSComparison__Group_1_0_4__0 ) ) | ( ( rule__ALSComparison__Group_1_0_5__0 ) ) | ( ( rule__ALSComparison__Group_1_0_6__0 ) ) ); + public final void rule__ALSComparison__Alternatives_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1271:1: ( ( ( rule__ALSComparison__Group_1_0_0__0 ) ) | ( ( rule__ALSComparison__Group_1_0_1__0 ) ) | ( ( rule__ALSComparison__Group_1_0_2__0 ) ) | ( ( rule__ALSComparison__Group_1_0_3__0 ) ) | ( ( rule__ALSComparison__Group_1_0_4__0 ) ) | ( ( rule__ALSComparison__Group_1_0_5__0 ) ) | ( ( rule__ALSComparison__Group_1_0_6__0 ) ) ) + int alt9=7; + switch ( input.LA(1) ) { + case 47: + { + alt9=1; + } + break; + case 48: + { + alt9=2; + } + break; + case 38: + { + alt9=3; + } + break; + case 49: + { + alt9=4; + } + break; + case 50: + { + alt9=5; + } + break; + case 51: + { + alt9=6; + } + break; + case 52: + { + alt9=7; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 9, 0, input); + + throw nvae; + } + + switch (alt9) { + case 1 : + // InternalAlloyLanguage.g:1272:1: ( ( rule__ALSComparison__Group_1_0_0__0 ) ) + { + // InternalAlloyLanguage.g:1272:1: ( ( rule__ALSComparison__Group_1_0_0__0 ) ) + // InternalAlloyLanguage.g:1273:1: ( rule__ALSComparison__Group_1_0_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getGroup_1_0_0()); + } + // InternalAlloyLanguage.g:1274:1: ( rule__ALSComparison__Group_1_0_0__0 ) + // InternalAlloyLanguage.g:1274:2: rule__ALSComparison__Group_1_0_0__0 + { + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getGroup_1_0_0()); + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:1278:6: ( ( rule__ALSComparison__Group_1_0_1__0 ) ) + { + // InternalAlloyLanguage.g:1278:6: ( ( rule__ALSComparison__Group_1_0_1__0 ) ) + // InternalAlloyLanguage.g:1279:1: ( rule__ALSComparison__Group_1_0_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getGroup_1_0_1()); + } + // InternalAlloyLanguage.g:1280:1: ( rule__ALSComparison__Group_1_0_1__0 ) + // InternalAlloyLanguage.g:1280:2: rule__ALSComparison__Group_1_0_1__0 + { + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getGroup_1_0_1()); + } + + } + + + } + break; + case 3 : + // InternalAlloyLanguage.g:1284:6: ( ( rule__ALSComparison__Group_1_0_2__0 ) ) + { + // InternalAlloyLanguage.g:1284:6: ( ( rule__ALSComparison__Group_1_0_2__0 ) ) + // InternalAlloyLanguage.g:1285:1: ( rule__ALSComparison__Group_1_0_2__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getGroup_1_0_2()); + } + // InternalAlloyLanguage.g:1286:1: ( rule__ALSComparison__Group_1_0_2__0 ) + // InternalAlloyLanguage.g:1286:2: rule__ALSComparison__Group_1_0_2__0 + { + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getGroup_1_0_2()); + } + + } + + + } + break; + case 4 : + // InternalAlloyLanguage.g:1290:6: ( ( rule__ALSComparison__Group_1_0_3__0 ) ) + { + // InternalAlloyLanguage.g:1290:6: ( ( rule__ALSComparison__Group_1_0_3__0 ) ) + // InternalAlloyLanguage.g:1291:1: ( rule__ALSComparison__Group_1_0_3__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getGroup_1_0_3()); + } + // InternalAlloyLanguage.g:1292:1: ( rule__ALSComparison__Group_1_0_3__0 ) + // InternalAlloyLanguage.g:1292:2: rule__ALSComparison__Group_1_0_3__0 + { + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getGroup_1_0_3()); + } + + } + + + } + break; + case 5 : + // InternalAlloyLanguage.g:1296:6: ( ( rule__ALSComparison__Group_1_0_4__0 ) ) + { + // InternalAlloyLanguage.g:1296:6: ( ( rule__ALSComparison__Group_1_0_4__0 ) ) + // InternalAlloyLanguage.g:1297:1: ( rule__ALSComparison__Group_1_0_4__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getGroup_1_0_4()); + } + // InternalAlloyLanguage.g:1298:1: ( rule__ALSComparison__Group_1_0_4__0 ) + // InternalAlloyLanguage.g:1298:2: rule__ALSComparison__Group_1_0_4__0 + { + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_4__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getGroup_1_0_4()); + } + + } + + + } + break; + case 6 : + // InternalAlloyLanguage.g:1302:6: ( ( rule__ALSComparison__Group_1_0_5__0 ) ) + { + // InternalAlloyLanguage.g:1302:6: ( ( rule__ALSComparison__Group_1_0_5__0 ) ) + // InternalAlloyLanguage.g:1303:1: ( rule__ALSComparison__Group_1_0_5__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getGroup_1_0_5()); + } + // InternalAlloyLanguage.g:1304:1: ( rule__ALSComparison__Group_1_0_5__0 ) + // InternalAlloyLanguage.g:1304:2: rule__ALSComparison__Group_1_0_5__0 + { + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_5__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getGroup_1_0_5()); + } + + } + + + } + break; + case 7 : + // InternalAlloyLanguage.g:1308:6: ( ( rule__ALSComparison__Group_1_0_6__0 ) ) + { + // InternalAlloyLanguage.g:1308:6: ( ( rule__ALSComparison__Group_1_0_6__0 ) ) + // InternalAlloyLanguage.g:1309:1: ( rule__ALSComparison__Group_1_0_6__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getGroup_1_0_6()); + } + // InternalAlloyLanguage.g:1310:1: ( rule__ALSComparison__Group_1_0_6__0 ) + // InternalAlloyLanguage.g:1310:2: rule__ALSComparison__Group_1_0_6__0 + { + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_6__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getGroup_1_0_6()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Alternatives_1_0" + + + // $ANTLR start "rule__ALSPreficed__Alternatives" + // InternalAlloyLanguage.g:1319:1: rule__ALSPreficed__Alternatives : ( ( ( rule__ALSPreficed__Group_0__0 ) ) | ( ( rule__ALSPreficed__Group_1__0 ) ) | ( ( rule__ALSPreficed__Group_2__0 ) ) | ( ( rule__ALSPreficed__Group_3__0 ) ) | ( ( rule__ALSPreficed__Group_4__0 ) ) | ( ( rule__ALSPreficed__Group_5__0 ) ) | ( ( rule__ALSPreficed__Group_6__0 ) ) | ( ( rule__ALSPreficed__Group_7__0 ) ) | ( ruleALSBasicRelationTerm ) ); + public final void rule__ALSPreficed__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1323:1: ( ( ( rule__ALSPreficed__Group_0__0 ) ) | ( ( rule__ALSPreficed__Group_1__0 ) ) | ( ( rule__ALSPreficed__Group_2__0 ) ) | ( ( rule__ALSPreficed__Group_3__0 ) ) | ( ( rule__ALSPreficed__Group_4__0 ) ) | ( ( rule__ALSPreficed__Group_5__0 ) ) | ( ( rule__ALSPreficed__Group_6__0 ) ) | ( ( rule__ALSPreficed__Group_7__0 ) ) | ( ruleALSBasicRelationTerm ) ) + int alt10=9; + alt10 = dfa10.predict(input); + switch (alt10) { + case 1 : + // InternalAlloyLanguage.g:1324:1: ( ( rule__ALSPreficed__Group_0__0 ) ) + { + // InternalAlloyLanguage.g:1324:1: ( ( rule__ALSPreficed__Group_0__0 ) ) + // InternalAlloyLanguage.g:1325:1: ( rule__ALSPreficed__Group_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getGroup_0()); + } + // InternalAlloyLanguage.g:1326:1: ( rule__ALSPreficed__Group_0__0 ) + // InternalAlloyLanguage.g:1326:2: rule__ALSPreficed__Group_0__0 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getGroup_0()); + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:1330:6: ( ( rule__ALSPreficed__Group_1__0 ) ) + { + // InternalAlloyLanguage.g:1330:6: ( ( rule__ALSPreficed__Group_1__0 ) ) + // InternalAlloyLanguage.g:1331:1: ( rule__ALSPreficed__Group_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getGroup_1()); + } + // InternalAlloyLanguage.g:1332:1: ( rule__ALSPreficed__Group_1__0 ) + // InternalAlloyLanguage.g:1332:2: rule__ALSPreficed__Group_1__0 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getGroup_1()); + } + + } + + + } + break; + case 3 : + // InternalAlloyLanguage.g:1336:6: ( ( rule__ALSPreficed__Group_2__0 ) ) + { + // InternalAlloyLanguage.g:1336:6: ( ( rule__ALSPreficed__Group_2__0 ) ) + // InternalAlloyLanguage.g:1337:1: ( rule__ALSPreficed__Group_2__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getGroup_2()); + } + // InternalAlloyLanguage.g:1338:1: ( rule__ALSPreficed__Group_2__0 ) + // InternalAlloyLanguage.g:1338:2: rule__ALSPreficed__Group_2__0 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getGroup_2()); + } + + } + + + } + break; + case 4 : + // InternalAlloyLanguage.g:1342:6: ( ( rule__ALSPreficed__Group_3__0 ) ) + { + // InternalAlloyLanguage.g:1342:6: ( ( rule__ALSPreficed__Group_3__0 ) ) + // InternalAlloyLanguage.g:1343:1: ( rule__ALSPreficed__Group_3__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getGroup_3()); + } + // InternalAlloyLanguage.g:1344:1: ( rule__ALSPreficed__Group_3__0 ) + // InternalAlloyLanguage.g:1344:2: rule__ALSPreficed__Group_3__0 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getGroup_3()); + } + + } + + + } + break; + case 5 : + // InternalAlloyLanguage.g:1348:6: ( ( rule__ALSPreficed__Group_4__0 ) ) + { + // InternalAlloyLanguage.g:1348:6: ( ( rule__ALSPreficed__Group_4__0 ) ) + // InternalAlloyLanguage.g:1349:1: ( rule__ALSPreficed__Group_4__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getGroup_4()); + } + // InternalAlloyLanguage.g:1350:1: ( rule__ALSPreficed__Group_4__0 ) + // InternalAlloyLanguage.g:1350:2: rule__ALSPreficed__Group_4__0 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_4__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getGroup_4()); + } + + } + + + } + break; + case 6 : + // InternalAlloyLanguage.g:1354:6: ( ( rule__ALSPreficed__Group_5__0 ) ) + { + // InternalAlloyLanguage.g:1354:6: ( ( rule__ALSPreficed__Group_5__0 ) ) + // InternalAlloyLanguage.g:1355:1: ( rule__ALSPreficed__Group_5__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getGroup_5()); + } + // InternalAlloyLanguage.g:1356:1: ( rule__ALSPreficed__Group_5__0 ) + // InternalAlloyLanguage.g:1356:2: rule__ALSPreficed__Group_5__0 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_5__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getGroup_5()); + } + + } + + + } + break; + case 7 : + // InternalAlloyLanguage.g:1360:6: ( ( rule__ALSPreficed__Group_6__0 ) ) + { + // InternalAlloyLanguage.g:1360:6: ( ( rule__ALSPreficed__Group_6__0 ) ) + // InternalAlloyLanguage.g:1361:1: ( rule__ALSPreficed__Group_6__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getGroup_6()); + } + // InternalAlloyLanguage.g:1362:1: ( rule__ALSPreficed__Group_6__0 ) + // InternalAlloyLanguage.g:1362:2: rule__ALSPreficed__Group_6__0 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_6__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getGroup_6()); + } + + } + + + } + break; + case 8 : + // InternalAlloyLanguage.g:1366:6: ( ( rule__ALSPreficed__Group_7__0 ) ) + { + // InternalAlloyLanguage.g:1366:6: ( ( rule__ALSPreficed__Group_7__0 ) ) + // InternalAlloyLanguage.g:1367:1: ( rule__ALSPreficed__Group_7__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getGroup_7()); + } + // InternalAlloyLanguage.g:1368:1: ( rule__ALSPreficed__Group_7__0 ) + // InternalAlloyLanguage.g:1368:2: rule__ALSPreficed__Group_7__0 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_7__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getGroup_7()); + } + + } + + + } + break; + case 9 : + // InternalAlloyLanguage.g:1372:6: ( ruleALSBasicRelationTerm ) + { + // InternalAlloyLanguage.g:1372:6: ( ruleALSBasicRelationTerm ) + // InternalAlloyLanguage.g:1373:1: ruleALSBasicRelationTerm + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getALSBasicRelationTermParserRuleCall_8()); + } + pushFollow(FOLLOW_2); + ruleALSBasicRelationTerm(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getALSBasicRelationTermParserRuleCall_8()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Alternatives" + + + // $ANTLR start "rule__ALSPreficed__Alternatives_0_1_0" + // InternalAlloyLanguage.g:1383:1: rule__ALSPreficed__Alternatives_0_1_0 : ( ( '!' ) | ( 'not' ) ); + public final void rule__ALSPreficed__Alternatives_0_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1387:1: ( ( '!' ) | ( 'not' ) ) + int alt11=2; + int LA11_0 = input.LA(1); + + if ( (LA11_0==19) ) { + alt11=1; + } + else if ( (LA11_0==20) ) { + alt11=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 11, 0, input); + + throw nvae; + } + switch (alt11) { + case 1 : + // InternalAlloyLanguage.g:1388:1: ( '!' ) + { + // InternalAlloyLanguage.g:1388:1: ( '!' ) + // InternalAlloyLanguage.g:1389:1: '!' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getExclamationMarkKeyword_0_1_0_0()); + } + match(input,19,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getExclamationMarkKeyword_0_1_0_0()); + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:1396:6: ( 'not' ) + { + // InternalAlloyLanguage.g:1396:6: ( 'not' ) + // InternalAlloyLanguage.g:1397:1: 'not' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getNotKeyword_0_1_0_1()); + } + match(input,20,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getNotKeyword_0_1_0_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Alternatives_0_1_0" + + + // $ANTLR start "rule__ALSPreficed__Alternatives_7_1" + // InternalAlloyLanguage.g:1409:1: rule__ALSPreficed__Alternatives_7_1 : ( ( ( rule__ALSPreficed__ReferredDefinitionAssignment_7_1_0 ) ) | ( ( rule__ALSPreficed__ReferredNumericOperatorAssignment_7_1_1 ) ) ); + public final void rule__ALSPreficed__Alternatives_7_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1413:1: ( ( ( rule__ALSPreficed__ReferredDefinitionAssignment_7_1_0 ) ) | ( ( rule__ALSPreficed__ReferredNumericOperatorAssignment_7_1_1 ) ) ) + int alt12=2; + int LA12_0 = input.LA(1); + + if ( (LA12_0==RULE_ID) ) { + alt12=1; + } + else if ( ((LA12_0>=27 && LA12_0<=31)) ) { + alt12=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 12, 0, input); + + throw nvae; + } + switch (alt12) { + case 1 : + // InternalAlloyLanguage.g:1414:1: ( ( rule__ALSPreficed__ReferredDefinitionAssignment_7_1_0 ) ) + { + // InternalAlloyLanguage.g:1414:1: ( ( rule__ALSPreficed__ReferredDefinitionAssignment_7_1_0 ) ) + // InternalAlloyLanguage.g:1415:1: ( rule__ALSPreficed__ReferredDefinitionAssignment_7_1_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getReferredDefinitionAssignment_7_1_0()); + } + // InternalAlloyLanguage.g:1416:1: ( rule__ALSPreficed__ReferredDefinitionAssignment_7_1_0 ) + // InternalAlloyLanguage.g:1416:2: rule__ALSPreficed__ReferredDefinitionAssignment_7_1_0 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__ReferredDefinitionAssignment_7_1_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getReferredDefinitionAssignment_7_1_0()); + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:1420:6: ( ( rule__ALSPreficed__ReferredNumericOperatorAssignment_7_1_1 ) ) + { + // InternalAlloyLanguage.g:1420:6: ( ( rule__ALSPreficed__ReferredNumericOperatorAssignment_7_1_1 ) ) + // InternalAlloyLanguage.g:1421:1: ( rule__ALSPreficed__ReferredNumericOperatorAssignment_7_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getReferredNumericOperatorAssignment_7_1_1()); + } + // InternalAlloyLanguage.g:1422:1: ( rule__ALSPreficed__ReferredNumericOperatorAssignment_7_1_1 ) + // InternalAlloyLanguage.g:1422:2: rule__ALSPreficed__ReferredNumericOperatorAssignment_7_1_1 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__ReferredNumericOperatorAssignment_7_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getReferredNumericOperatorAssignment_7_1_1()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Alternatives_7_1" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Alternatives" + // InternalAlloyLanguage.g:1431:1: rule__ALSBasicRelationTerm__Alternatives : ( ( ( rule__ALSBasicRelationTerm__Group_0__0 ) ) | ( ( rule__ALSBasicRelationTerm__Group_1__0 ) ) | ( ( rule__ALSBasicRelationTerm__Group_2__0 ) ) | ( ( rule__ALSBasicRelationTerm__Group_3__0 ) ) | ( ( rule__ALSBasicRelationTerm__Group_4__0 ) ) | ( ( rule__ALSBasicRelationTerm__Group_5__0 ) ) | ( ( rule__ALSBasicRelationTerm__Group_6__0 ) ) | ( ( rule__ALSBasicRelationTerm__Group_7__0 ) ) | ( ( rule__ALSBasicRelationTerm__Group_8__0 ) ) ); + public final void rule__ALSBasicRelationTerm__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1435:1: ( ( ( rule__ALSBasicRelationTerm__Group_0__0 ) ) | ( ( rule__ALSBasicRelationTerm__Group_1__0 ) ) | ( ( rule__ALSBasicRelationTerm__Group_2__0 ) ) | ( ( rule__ALSBasicRelationTerm__Group_3__0 ) ) | ( ( rule__ALSBasicRelationTerm__Group_4__0 ) ) | ( ( rule__ALSBasicRelationTerm__Group_5__0 ) ) | ( ( rule__ALSBasicRelationTerm__Group_6__0 ) ) | ( ( rule__ALSBasicRelationTerm__Group_7__0 ) ) | ( ( rule__ALSBasicRelationTerm__Group_8__0 ) ) ) + int alt13=9; + switch ( input.LA(1) ) { + case 65: + { + alt13=1; + } + break; + case 66: + { + alt13=2; + } + break; + case 67: + { + alt13=3; + } + break; + case 68: + { + alt13=4; + } + break; + case 69: + { + alt13=5; + } + break; + case RULE_ID: + { + alt13=6; + } + break; + case RULE_INT: + { + alt13=7; + } + break; + case RULE_STRING: + { + alt13=8; + } + break; + case 70: + { + alt13=9; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 13, 0, input); + + throw nvae; + } + + switch (alt13) { + case 1 : + // InternalAlloyLanguage.g:1436:1: ( ( rule__ALSBasicRelationTerm__Group_0__0 ) ) + { + // InternalAlloyLanguage.g:1436:1: ( ( rule__ALSBasicRelationTerm__Group_0__0 ) ) + // InternalAlloyLanguage.g:1437:1: ( rule__ALSBasicRelationTerm__Group_0__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getGroup_0()); + } + // InternalAlloyLanguage.g:1438:1: ( rule__ALSBasicRelationTerm__Group_0__0 ) + // InternalAlloyLanguage.g:1438:2: rule__ALSBasicRelationTerm__Group_0__0 + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getGroup_0()); + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:1442:6: ( ( rule__ALSBasicRelationTerm__Group_1__0 ) ) + { + // InternalAlloyLanguage.g:1442:6: ( ( rule__ALSBasicRelationTerm__Group_1__0 ) ) + // InternalAlloyLanguage.g:1443:1: ( rule__ALSBasicRelationTerm__Group_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getGroup_1()); + } + // InternalAlloyLanguage.g:1444:1: ( rule__ALSBasicRelationTerm__Group_1__0 ) + // InternalAlloyLanguage.g:1444:2: rule__ALSBasicRelationTerm__Group_1__0 + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getGroup_1()); + } + + } + + + } + break; + case 3 : + // InternalAlloyLanguage.g:1448:6: ( ( rule__ALSBasicRelationTerm__Group_2__0 ) ) + { + // InternalAlloyLanguage.g:1448:6: ( ( rule__ALSBasicRelationTerm__Group_2__0 ) ) + // InternalAlloyLanguage.g:1449:1: ( rule__ALSBasicRelationTerm__Group_2__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getGroup_2()); + } + // InternalAlloyLanguage.g:1450:1: ( rule__ALSBasicRelationTerm__Group_2__0 ) + // InternalAlloyLanguage.g:1450:2: rule__ALSBasicRelationTerm__Group_2__0 + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getGroup_2()); + } + + } + + + } + break; + case 4 : + // InternalAlloyLanguage.g:1454:6: ( ( rule__ALSBasicRelationTerm__Group_3__0 ) ) + { + // InternalAlloyLanguage.g:1454:6: ( ( rule__ALSBasicRelationTerm__Group_3__0 ) ) + // InternalAlloyLanguage.g:1455:1: ( rule__ALSBasicRelationTerm__Group_3__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getGroup_3()); + } + // InternalAlloyLanguage.g:1456:1: ( rule__ALSBasicRelationTerm__Group_3__0 ) + // InternalAlloyLanguage.g:1456:2: rule__ALSBasicRelationTerm__Group_3__0 + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getGroup_3()); + } + + } + + + } + break; + case 5 : + // InternalAlloyLanguage.g:1460:6: ( ( rule__ALSBasicRelationTerm__Group_4__0 ) ) + { + // InternalAlloyLanguage.g:1460:6: ( ( rule__ALSBasicRelationTerm__Group_4__0 ) ) + // InternalAlloyLanguage.g:1461:1: ( rule__ALSBasicRelationTerm__Group_4__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getGroup_4()); + } + // InternalAlloyLanguage.g:1462:1: ( rule__ALSBasicRelationTerm__Group_4__0 ) + // InternalAlloyLanguage.g:1462:2: rule__ALSBasicRelationTerm__Group_4__0 + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_4__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getGroup_4()); + } + + } + + + } + break; + case 6 : + // InternalAlloyLanguage.g:1466:6: ( ( rule__ALSBasicRelationTerm__Group_5__0 ) ) + { + // InternalAlloyLanguage.g:1466:6: ( ( rule__ALSBasicRelationTerm__Group_5__0 ) ) + // InternalAlloyLanguage.g:1467:1: ( rule__ALSBasicRelationTerm__Group_5__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getGroup_5()); + } + // InternalAlloyLanguage.g:1468:1: ( rule__ALSBasicRelationTerm__Group_5__0 ) + // InternalAlloyLanguage.g:1468:2: rule__ALSBasicRelationTerm__Group_5__0 + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_5__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getGroup_5()); + } + + } + + + } + break; + case 7 : + // InternalAlloyLanguage.g:1472:6: ( ( rule__ALSBasicRelationTerm__Group_6__0 ) ) + { + // InternalAlloyLanguage.g:1472:6: ( ( rule__ALSBasicRelationTerm__Group_6__0 ) ) + // InternalAlloyLanguage.g:1473:1: ( rule__ALSBasicRelationTerm__Group_6__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getGroup_6()); + } + // InternalAlloyLanguage.g:1474:1: ( rule__ALSBasicRelationTerm__Group_6__0 ) + // InternalAlloyLanguage.g:1474:2: rule__ALSBasicRelationTerm__Group_6__0 + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_6__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getGroup_6()); + } + + } + + + } + break; + case 8 : + // InternalAlloyLanguage.g:1478:6: ( ( rule__ALSBasicRelationTerm__Group_7__0 ) ) + { + // InternalAlloyLanguage.g:1478:6: ( ( rule__ALSBasicRelationTerm__Group_7__0 ) ) + // InternalAlloyLanguage.g:1479:1: ( rule__ALSBasicRelationTerm__Group_7__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getGroup_7()); + } + // InternalAlloyLanguage.g:1480:1: ( rule__ALSBasicRelationTerm__Group_7__0 ) + // InternalAlloyLanguage.g:1480:2: rule__ALSBasicRelationTerm__Group_7__0 + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_7__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getGroup_7()); + } + + } + + + } + break; + case 9 : + // InternalAlloyLanguage.g:1484:6: ( ( rule__ALSBasicRelationTerm__Group_8__0 ) ) + { + // InternalAlloyLanguage.g:1484:6: ( ( rule__ALSBasicRelationTerm__Group_8__0 ) ) + // InternalAlloyLanguage.g:1485:1: ( rule__ALSBasicRelationTerm__Group_8__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getGroup_8()); + } + // InternalAlloyLanguage.g:1486:1: ( rule__ALSBasicRelationTerm__Group_8__0 ) + // InternalAlloyLanguage.g:1486:2: rule__ALSBasicRelationTerm__Group_8__0 + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_8__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getGroup_8()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Alternatives" + + + // $ANTLR start "rule__ALSTypeScope__Alternatives" + // InternalAlloyLanguage.g:1495:1: rule__ALSTypeScope__Alternatives : ( ( ruleALSSigScope ) | ( ruleALSIntScope ) | ( ruleALSStringScope ) ); + public final void rule__ALSTypeScope__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1499:1: ( ( ruleALSSigScope ) | ( ruleALSIntScope ) | ( ruleALSStringScope ) ) + int alt14=3; + int LA14_0 = input.LA(1); + + if ( (LA14_0==74) ) { + int LA14_1 = input.LA(2); + + if ( (LA14_1==RULE_INT) ) { + int LA14_3 = input.LA(3); + + if ( (LA14_3==69) ) { + alt14=3; + } + else if ( (LA14_3==RULE_ID) ) { + alt14=1; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 14, 3, input); + + throw nvae; + } + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 14, 1, input); + + throw nvae; + } + } + else if ( (LA14_0==RULE_INT) ) { + int LA14_2 = input.LA(2); + + if ( (LA14_2==68) ) { + alt14=2; + } + else if ( (LA14_2==RULE_ID) ) { + alt14=1; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 14, 2, input); + + throw nvae; + } + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 14, 0, input); + + throw nvae; + } + switch (alt14) { + case 1 : + // InternalAlloyLanguage.g:1500:1: ( ruleALSSigScope ) + { + // InternalAlloyLanguage.g:1500:1: ( ruleALSSigScope ) + // InternalAlloyLanguage.g:1501:1: ruleALSSigScope + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSTypeScopeAccess().getALSSigScopeParserRuleCall_0()); + } + pushFollow(FOLLOW_2); + ruleALSSigScope(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSTypeScopeAccess().getALSSigScopeParserRuleCall_0()); + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:1506:6: ( ruleALSIntScope ) + { + // InternalAlloyLanguage.g:1506:6: ( ruleALSIntScope ) + // InternalAlloyLanguage.g:1507:1: ruleALSIntScope + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSTypeScopeAccess().getALSIntScopeParserRuleCall_1()); + } + pushFollow(FOLLOW_2); + ruleALSIntScope(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSTypeScopeAccess().getALSIntScopeParserRuleCall_1()); + } + + } + + + } + break; + case 3 : + // InternalAlloyLanguage.g:1512:6: ( ruleALSStringScope ) + { + // InternalAlloyLanguage.g:1512:6: ( ruleALSStringScope ) + // InternalAlloyLanguage.g:1513:1: ruleALSStringScope + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSTypeScopeAccess().getALSStringScopeParserRuleCall_2()); + } + pushFollow(FOLLOW_2); + ruleALSStringScope(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSTypeScopeAccess().getALSStringScopeParserRuleCall_2()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSTypeScope__Alternatives" + + + // $ANTLR start "rule__ALSMultiplicity__Alternatives" + // InternalAlloyLanguage.g:1523:1: rule__ALSMultiplicity__Alternatives : ( ( ( 'all' ) ) | ( ( 'no' ) ) | ( ( 'some' ) ) | ( ( 'lone' ) ) | ( ( 'one' ) ) | ( ( 'set' ) ) ); + public final void rule__ALSMultiplicity__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1527:1: ( ( ( 'all' ) ) | ( ( 'no' ) ) | ( ( 'some' ) ) | ( ( 'lone' ) ) | ( ( 'one' ) ) | ( ( 'set' ) ) ) + int alt15=6; + switch ( input.LA(1) ) { + case 21: + { + alt15=1; + } + break; + case 22: + { + alt15=2; + } + break; + case 23: + { + alt15=3; + } + break; + case 24: + { + alt15=4; + } + break; + case 25: + { + alt15=5; + } + break; + case 26: + { + alt15=6; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 15, 0, input); + + throw nvae; + } + + switch (alt15) { + case 1 : + // InternalAlloyLanguage.g:1528:1: ( ( 'all' ) ) + { + // InternalAlloyLanguage.g:1528:1: ( ( 'all' ) ) + // InternalAlloyLanguage.g:1529:1: ( 'all' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSMultiplicityAccess().getAllEnumLiteralDeclaration_0()); + } + // InternalAlloyLanguage.g:1530:1: ( 'all' ) + // InternalAlloyLanguage.g:1530:3: 'all' + { + match(input,21,FOLLOW_2); if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSMultiplicityAccess().getAllEnumLiteralDeclaration_0()); + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:1535:6: ( ( 'no' ) ) + { + // InternalAlloyLanguage.g:1535:6: ( ( 'no' ) ) + // InternalAlloyLanguage.g:1536:1: ( 'no' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSMultiplicityAccess().getNoEnumLiteralDeclaration_1()); + } + // InternalAlloyLanguage.g:1537:1: ( 'no' ) + // InternalAlloyLanguage.g:1537:3: 'no' + { + match(input,22,FOLLOW_2); if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSMultiplicityAccess().getNoEnumLiteralDeclaration_1()); + } + + } + + + } + break; + case 3 : + // InternalAlloyLanguage.g:1542:6: ( ( 'some' ) ) + { + // InternalAlloyLanguage.g:1542:6: ( ( 'some' ) ) + // InternalAlloyLanguage.g:1543:1: ( 'some' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSMultiplicityAccess().getSomeEnumLiteralDeclaration_2()); + } + // InternalAlloyLanguage.g:1544:1: ( 'some' ) + // InternalAlloyLanguage.g:1544:3: 'some' + { + match(input,23,FOLLOW_2); if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSMultiplicityAccess().getSomeEnumLiteralDeclaration_2()); + } + + } + + + } + break; + case 4 : + // InternalAlloyLanguage.g:1549:6: ( ( 'lone' ) ) + { + // InternalAlloyLanguage.g:1549:6: ( ( 'lone' ) ) + // InternalAlloyLanguage.g:1550:1: ( 'lone' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSMultiplicityAccess().getLoneEnumLiteralDeclaration_3()); + } + // InternalAlloyLanguage.g:1551:1: ( 'lone' ) + // InternalAlloyLanguage.g:1551:3: 'lone' + { + match(input,24,FOLLOW_2); if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSMultiplicityAccess().getLoneEnumLiteralDeclaration_3()); + } + + } + + + } + break; + case 5 : + // InternalAlloyLanguage.g:1556:6: ( ( 'one' ) ) + { + // InternalAlloyLanguage.g:1556:6: ( ( 'one' ) ) + // InternalAlloyLanguage.g:1557:1: ( 'one' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSMultiplicityAccess().getOneEnumLiteralDeclaration_4()); + } + // InternalAlloyLanguage.g:1558:1: ( 'one' ) + // InternalAlloyLanguage.g:1558:3: 'one' + { + match(input,25,FOLLOW_2); if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSMultiplicityAccess().getOneEnumLiteralDeclaration_4()); + } + + } + + + } + break; + case 6 : + // InternalAlloyLanguage.g:1563:6: ( ( 'set' ) ) + { + // InternalAlloyLanguage.g:1563:6: ( ( 'set' ) ) + // InternalAlloyLanguage.g:1564:1: ( 'set' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSMultiplicityAccess().getSetEnumLiteralDeclaration_5()); + } + // InternalAlloyLanguage.g:1565:1: ( 'set' ) + // InternalAlloyLanguage.g:1565:3: 'set' + { + match(input,26,FOLLOW_2); if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSMultiplicityAccess().getSetEnumLiteralDeclaration_5()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSMultiplicity__Alternatives" + + + // $ANTLR start "rule__ALSNumericOperator__Alternatives" + // InternalAlloyLanguage.g:1575:1: rule__ALSNumericOperator__Alternatives : ( ( ( 'plus' ) ) | ( ( 'sub' ) ) | ( ( 'mul' ) ) | ( ( 'rem' ) ) | ( ( 'div' ) ) ); + public final void rule__ALSNumericOperator__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1579:1: ( ( ( 'plus' ) ) | ( ( 'sub' ) ) | ( ( 'mul' ) ) | ( ( 'rem' ) ) | ( ( 'div' ) ) ) + int alt16=5; + switch ( input.LA(1) ) { + case 27: + { + alt16=1; + } + break; + case 28: + { + alt16=2; + } + break; + case 29: + { + alt16=3; + } + break; + case 30: + { + alt16=4; + } + break; + case 31: + { + alt16=5; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 16, 0, input); + + throw nvae; + } + + switch (alt16) { + case 1 : + // InternalAlloyLanguage.g:1580:1: ( ( 'plus' ) ) + { + // InternalAlloyLanguage.g:1580:1: ( ( 'plus' ) ) + // InternalAlloyLanguage.g:1581:1: ( 'plus' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSNumericOperatorAccess().getPlusEnumLiteralDeclaration_0()); + } + // InternalAlloyLanguage.g:1582:1: ( 'plus' ) + // InternalAlloyLanguage.g:1582:3: 'plus' + { + match(input,27,FOLLOW_2); if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSNumericOperatorAccess().getPlusEnumLiteralDeclaration_0()); + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:1587:6: ( ( 'sub' ) ) + { + // InternalAlloyLanguage.g:1587:6: ( ( 'sub' ) ) + // InternalAlloyLanguage.g:1588:1: ( 'sub' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSNumericOperatorAccess().getSubEnumLiteralDeclaration_1()); + } + // InternalAlloyLanguage.g:1589:1: ( 'sub' ) + // InternalAlloyLanguage.g:1589:3: 'sub' + { + match(input,28,FOLLOW_2); if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSNumericOperatorAccess().getSubEnumLiteralDeclaration_1()); + } + + } + + + } + break; + case 3 : + // InternalAlloyLanguage.g:1594:6: ( ( 'mul' ) ) + { + // InternalAlloyLanguage.g:1594:6: ( ( 'mul' ) ) + // InternalAlloyLanguage.g:1595:1: ( 'mul' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSNumericOperatorAccess().getMulEnumLiteralDeclaration_2()); + } + // InternalAlloyLanguage.g:1596:1: ( 'mul' ) + // InternalAlloyLanguage.g:1596:3: 'mul' + { + match(input,29,FOLLOW_2); if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSNumericOperatorAccess().getMulEnumLiteralDeclaration_2()); + } + + } + + + } + break; + case 4 : + // InternalAlloyLanguage.g:1601:6: ( ( 'rem' ) ) + { + // InternalAlloyLanguage.g:1601:6: ( ( 'rem' ) ) + // InternalAlloyLanguage.g:1602:1: ( 'rem' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSNumericOperatorAccess().getRemEnumLiteralDeclaration_3()); + } + // InternalAlloyLanguage.g:1603:1: ( 'rem' ) + // InternalAlloyLanguage.g:1603:3: 'rem' + { + match(input,30,FOLLOW_2); if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSNumericOperatorAccess().getRemEnumLiteralDeclaration_3()); + } + + } + + + } + break; + case 5 : + // InternalAlloyLanguage.g:1608:6: ( ( 'div' ) ) + { + // InternalAlloyLanguage.g:1608:6: ( ( 'div' ) ) + // InternalAlloyLanguage.g:1609:1: ( 'div' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSNumericOperatorAccess().getDivEnumLiteralDeclaration_4()); + } + // InternalAlloyLanguage.g:1610:1: ( 'div' ) + // InternalAlloyLanguage.g:1610:3: 'div' + { + match(input,31,FOLLOW_2); if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSNumericOperatorAccess().getDivEnumLiteralDeclaration_4()); + } + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSNumericOperator__Alternatives" + + + // $ANTLR start "rule__ALSDocument__Group__0" + // InternalAlloyLanguage.g:1622:1: rule__ALSDocument__Group__0 : rule__ALSDocument__Group__0__Impl rule__ALSDocument__Group__1 ; + public final void rule__ALSDocument__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1626:1: ( rule__ALSDocument__Group__0__Impl rule__ALSDocument__Group__1 ) + // InternalAlloyLanguage.g:1627:2: rule__ALSDocument__Group__0__Impl rule__ALSDocument__Group__1 + { + pushFollow(FOLLOW_3); + rule__ALSDocument__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSDocument__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDocument__Group__0" + + + // $ANTLR start "rule__ALSDocument__Group__0__Impl" + // InternalAlloyLanguage.g:1634:1: rule__ALSDocument__Group__0__Impl : ( ( ( rule__ALSDocument__Alternatives_0 ) ) ( ( rule__ALSDocument__Alternatives_0 )* ) ) ; + public final void rule__ALSDocument__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1638:1: ( ( ( ( rule__ALSDocument__Alternatives_0 ) ) ( ( rule__ALSDocument__Alternatives_0 )* ) ) ) + // InternalAlloyLanguage.g:1639:1: ( ( ( rule__ALSDocument__Alternatives_0 ) ) ( ( rule__ALSDocument__Alternatives_0 )* ) ) + { + // InternalAlloyLanguage.g:1639:1: ( ( ( rule__ALSDocument__Alternatives_0 ) ) ( ( rule__ALSDocument__Alternatives_0 )* ) ) + // InternalAlloyLanguage.g:1640:1: ( ( rule__ALSDocument__Alternatives_0 ) ) ( ( rule__ALSDocument__Alternatives_0 )* ) + { + // InternalAlloyLanguage.g:1640:1: ( ( rule__ALSDocument__Alternatives_0 ) ) + // InternalAlloyLanguage.g:1641:1: ( rule__ALSDocument__Alternatives_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDocumentAccess().getAlternatives_0()); + } + // InternalAlloyLanguage.g:1642:1: ( rule__ALSDocument__Alternatives_0 ) + // InternalAlloyLanguage.g:1642:2: rule__ALSDocument__Alternatives_0 + { + pushFollow(FOLLOW_4); + rule__ALSDocument__Alternatives_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDocumentAccess().getAlternatives_0()); + } + + } + + // InternalAlloyLanguage.g:1645:1: ( ( rule__ALSDocument__Alternatives_0 )* ) + // InternalAlloyLanguage.g:1646:1: ( rule__ALSDocument__Alternatives_0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDocumentAccess().getAlternatives_0()); + } + // InternalAlloyLanguage.g:1647:1: ( rule__ALSDocument__Alternatives_0 )* + loop17: + do { + int alt17=2; + int LA17_0 = input.LA(1); + + if ( ((LA17_0>=21 && LA17_0<=26)||LA17_0==32||LA17_0==36||LA17_0==41||(LA17_0>=44 && LA17_0<=45)||LA17_0==75) ) { + alt17=1; + } + + + switch (alt17) { + case 1 : + // InternalAlloyLanguage.g:1647:2: rule__ALSDocument__Alternatives_0 + { + pushFollow(FOLLOW_4); + rule__ALSDocument__Alternatives_0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop17; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDocumentAccess().getAlternatives_0()); + } + + } + + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDocument__Group__0__Impl" + + + // $ANTLR start "rule__ALSDocument__Group__1" + // InternalAlloyLanguage.g:1658:1: rule__ALSDocument__Group__1 : rule__ALSDocument__Group__1__Impl ; + public final void rule__ALSDocument__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1662:1: ( rule__ALSDocument__Group__1__Impl ) + // InternalAlloyLanguage.g:1663:2: rule__ALSDocument__Group__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSDocument__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDocument__Group__1" + + + // $ANTLR start "rule__ALSDocument__Group__1__Impl" + // InternalAlloyLanguage.g:1669:1: rule__ALSDocument__Group__1__Impl : ( ( rule__ALSDocument__RunCommandAssignment_1 ) ) ; + public final void rule__ALSDocument__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1673:1: ( ( ( rule__ALSDocument__RunCommandAssignment_1 ) ) ) + // InternalAlloyLanguage.g:1674:1: ( ( rule__ALSDocument__RunCommandAssignment_1 ) ) + { + // InternalAlloyLanguage.g:1674:1: ( ( rule__ALSDocument__RunCommandAssignment_1 ) ) + // InternalAlloyLanguage.g:1675:1: ( rule__ALSDocument__RunCommandAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDocumentAccess().getRunCommandAssignment_1()); + } + // InternalAlloyLanguage.g:1676:1: ( rule__ALSDocument__RunCommandAssignment_1 ) + // InternalAlloyLanguage.g:1676:2: rule__ALSDocument__RunCommandAssignment_1 + { + pushFollow(FOLLOW_2); + rule__ALSDocument__RunCommandAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDocumentAccess().getRunCommandAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDocument__Group__1__Impl" + + + // $ANTLR start "rule__ALSEnumDeclaration__Group__0" + // InternalAlloyLanguage.g:1690:1: rule__ALSEnumDeclaration__Group__0 : rule__ALSEnumDeclaration__Group__0__Impl rule__ALSEnumDeclaration__Group__1 ; + public final void rule__ALSEnumDeclaration__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1694:1: ( rule__ALSEnumDeclaration__Group__0__Impl rule__ALSEnumDeclaration__Group__1 ) + // InternalAlloyLanguage.g:1695:2: rule__ALSEnumDeclaration__Group__0__Impl rule__ALSEnumDeclaration__Group__1 + { + pushFollow(FOLLOW_5); + rule__ALSEnumDeclaration__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSEnumDeclaration__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSEnumDeclaration__Group__0" + + + // $ANTLR start "rule__ALSEnumDeclaration__Group__0__Impl" + // InternalAlloyLanguage.g:1702:1: rule__ALSEnumDeclaration__Group__0__Impl : ( 'enum' ) ; + public final void rule__ALSEnumDeclaration__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1706:1: ( ( 'enum' ) ) + // InternalAlloyLanguage.g:1707:1: ( 'enum' ) + { + // InternalAlloyLanguage.g:1707:1: ( 'enum' ) + // InternalAlloyLanguage.g:1708:1: 'enum' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSEnumDeclarationAccess().getEnumKeyword_0()); + } + match(input,32,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSEnumDeclarationAccess().getEnumKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSEnumDeclaration__Group__0__Impl" + + + // $ANTLR start "rule__ALSEnumDeclaration__Group__1" + // InternalAlloyLanguage.g:1721:1: rule__ALSEnumDeclaration__Group__1 : rule__ALSEnumDeclaration__Group__1__Impl rule__ALSEnumDeclaration__Group__2 ; + public final void rule__ALSEnumDeclaration__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1725:1: ( rule__ALSEnumDeclaration__Group__1__Impl rule__ALSEnumDeclaration__Group__2 ) + // InternalAlloyLanguage.g:1726:2: rule__ALSEnumDeclaration__Group__1__Impl rule__ALSEnumDeclaration__Group__2 + { + pushFollow(FOLLOW_6); + rule__ALSEnumDeclaration__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSEnumDeclaration__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSEnumDeclaration__Group__1" + + + // $ANTLR start "rule__ALSEnumDeclaration__Group__1__Impl" + // InternalAlloyLanguage.g:1733:1: rule__ALSEnumDeclaration__Group__1__Impl : ( ( rule__ALSEnumDeclaration__NameAssignment_1 ) ) ; + public final void rule__ALSEnumDeclaration__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1737:1: ( ( ( rule__ALSEnumDeclaration__NameAssignment_1 ) ) ) + // InternalAlloyLanguage.g:1738:1: ( ( rule__ALSEnumDeclaration__NameAssignment_1 ) ) + { + // InternalAlloyLanguage.g:1738:1: ( ( rule__ALSEnumDeclaration__NameAssignment_1 ) ) + // InternalAlloyLanguage.g:1739:1: ( rule__ALSEnumDeclaration__NameAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSEnumDeclarationAccess().getNameAssignment_1()); + } + // InternalAlloyLanguage.g:1740:1: ( rule__ALSEnumDeclaration__NameAssignment_1 ) + // InternalAlloyLanguage.g:1740:2: rule__ALSEnumDeclaration__NameAssignment_1 + { + pushFollow(FOLLOW_2); + rule__ALSEnumDeclaration__NameAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSEnumDeclarationAccess().getNameAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSEnumDeclaration__Group__1__Impl" + + + // $ANTLR start "rule__ALSEnumDeclaration__Group__2" + // InternalAlloyLanguage.g:1750:1: rule__ALSEnumDeclaration__Group__2 : rule__ALSEnumDeclaration__Group__2__Impl rule__ALSEnumDeclaration__Group__3 ; + public final void rule__ALSEnumDeclaration__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1754:1: ( rule__ALSEnumDeclaration__Group__2__Impl rule__ALSEnumDeclaration__Group__3 ) + // InternalAlloyLanguage.g:1755:2: rule__ALSEnumDeclaration__Group__2__Impl rule__ALSEnumDeclaration__Group__3 + { + pushFollow(FOLLOW_5); + rule__ALSEnumDeclaration__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSEnumDeclaration__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSEnumDeclaration__Group__2" + + + // $ANTLR start "rule__ALSEnumDeclaration__Group__2__Impl" + // InternalAlloyLanguage.g:1762:1: rule__ALSEnumDeclaration__Group__2__Impl : ( '{' ) ; + public final void rule__ALSEnumDeclaration__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1766:1: ( ( '{' ) ) + // InternalAlloyLanguage.g:1767:1: ( '{' ) + { + // InternalAlloyLanguage.g:1767:1: ( '{' ) + // InternalAlloyLanguage.g:1768:1: '{' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSEnumDeclarationAccess().getLeftCurlyBracketKeyword_2()); + } + match(input,33,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSEnumDeclarationAccess().getLeftCurlyBracketKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSEnumDeclaration__Group__2__Impl" + + + // $ANTLR start "rule__ALSEnumDeclaration__Group__3" + // InternalAlloyLanguage.g:1781:1: rule__ALSEnumDeclaration__Group__3 : rule__ALSEnumDeclaration__Group__3__Impl rule__ALSEnumDeclaration__Group__4 ; + public final void rule__ALSEnumDeclaration__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1785:1: ( rule__ALSEnumDeclaration__Group__3__Impl rule__ALSEnumDeclaration__Group__4 ) + // InternalAlloyLanguage.g:1786:2: rule__ALSEnumDeclaration__Group__3__Impl rule__ALSEnumDeclaration__Group__4 + { + pushFollow(FOLLOW_7); + rule__ALSEnumDeclaration__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSEnumDeclaration__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSEnumDeclaration__Group__3" + + + // $ANTLR start "rule__ALSEnumDeclaration__Group__3__Impl" + // InternalAlloyLanguage.g:1793:1: rule__ALSEnumDeclaration__Group__3__Impl : ( ( rule__ALSEnumDeclaration__LiteralAssignment_3 ) ) ; + public final void rule__ALSEnumDeclaration__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1797:1: ( ( ( rule__ALSEnumDeclaration__LiteralAssignment_3 ) ) ) + // InternalAlloyLanguage.g:1798:1: ( ( rule__ALSEnumDeclaration__LiteralAssignment_3 ) ) + { + // InternalAlloyLanguage.g:1798:1: ( ( rule__ALSEnumDeclaration__LiteralAssignment_3 ) ) + // InternalAlloyLanguage.g:1799:1: ( rule__ALSEnumDeclaration__LiteralAssignment_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSEnumDeclarationAccess().getLiteralAssignment_3()); + } + // InternalAlloyLanguage.g:1800:1: ( rule__ALSEnumDeclaration__LiteralAssignment_3 ) + // InternalAlloyLanguage.g:1800:2: rule__ALSEnumDeclaration__LiteralAssignment_3 + { + pushFollow(FOLLOW_2); + rule__ALSEnumDeclaration__LiteralAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSEnumDeclarationAccess().getLiteralAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSEnumDeclaration__Group__3__Impl" + + + // $ANTLR start "rule__ALSEnumDeclaration__Group__4" + // InternalAlloyLanguage.g:1810:1: rule__ALSEnumDeclaration__Group__4 : rule__ALSEnumDeclaration__Group__4__Impl rule__ALSEnumDeclaration__Group__5 ; + public final void rule__ALSEnumDeclaration__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1814:1: ( rule__ALSEnumDeclaration__Group__4__Impl rule__ALSEnumDeclaration__Group__5 ) + // InternalAlloyLanguage.g:1815:2: rule__ALSEnumDeclaration__Group__4__Impl rule__ALSEnumDeclaration__Group__5 + { + pushFollow(FOLLOW_7); + rule__ALSEnumDeclaration__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSEnumDeclaration__Group__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSEnumDeclaration__Group__4" + + + // $ANTLR start "rule__ALSEnumDeclaration__Group__4__Impl" + // InternalAlloyLanguage.g:1822:1: rule__ALSEnumDeclaration__Group__4__Impl : ( ( rule__ALSEnumDeclaration__Group_4__0 )* ) ; + public final void rule__ALSEnumDeclaration__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1826:1: ( ( ( rule__ALSEnumDeclaration__Group_4__0 )* ) ) + // InternalAlloyLanguage.g:1827:1: ( ( rule__ALSEnumDeclaration__Group_4__0 )* ) + { + // InternalAlloyLanguage.g:1827:1: ( ( rule__ALSEnumDeclaration__Group_4__0 )* ) + // InternalAlloyLanguage.g:1828:1: ( rule__ALSEnumDeclaration__Group_4__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSEnumDeclarationAccess().getGroup_4()); + } + // InternalAlloyLanguage.g:1829:1: ( rule__ALSEnumDeclaration__Group_4__0 )* + loop18: + do { + int alt18=2; + int LA18_0 = input.LA(1); + + if ( (LA18_0==35) ) { + alt18=1; + } + + + switch (alt18) { + case 1 : + // InternalAlloyLanguage.g:1829:2: rule__ALSEnumDeclaration__Group_4__0 + { + pushFollow(FOLLOW_8); + rule__ALSEnumDeclaration__Group_4__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop18; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSEnumDeclarationAccess().getGroup_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSEnumDeclaration__Group__4__Impl" + + + // $ANTLR start "rule__ALSEnumDeclaration__Group__5" + // InternalAlloyLanguage.g:1839:1: rule__ALSEnumDeclaration__Group__5 : rule__ALSEnumDeclaration__Group__5__Impl ; + public final void rule__ALSEnumDeclaration__Group__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1843:1: ( rule__ALSEnumDeclaration__Group__5__Impl ) + // InternalAlloyLanguage.g:1844:2: rule__ALSEnumDeclaration__Group__5__Impl + { + pushFollow(FOLLOW_2); + rule__ALSEnumDeclaration__Group__5__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSEnumDeclaration__Group__5" + + + // $ANTLR start "rule__ALSEnumDeclaration__Group__5__Impl" + // InternalAlloyLanguage.g:1850:1: rule__ALSEnumDeclaration__Group__5__Impl : ( '}' ) ; + public final void rule__ALSEnumDeclaration__Group__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1854:1: ( ( '}' ) ) + // InternalAlloyLanguage.g:1855:1: ( '}' ) + { + // InternalAlloyLanguage.g:1855:1: ( '}' ) + // InternalAlloyLanguage.g:1856:1: '}' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSEnumDeclarationAccess().getRightCurlyBracketKeyword_5()); + } + match(input,34,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSEnumDeclarationAccess().getRightCurlyBracketKeyword_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSEnumDeclaration__Group__5__Impl" + + + // $ANTLR start "rule__ALSEnumDeclaration__Group_4__0" + // InternalAlloyLanguage.g:1881:1: rule__ALSEnumDeclaration__Group_4__0 : rule__ALSEnumDeclaration__Group_4__0__Impl rule__ALSEnumDeclaration__Group_4__1 ; + public final void rule__ALSEnumDeclaration__Group_4__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1885:1: ( rule__ALSEnumDeclaration__Group_4__0__Impl rule__ALSEnumDeclaration__Group_4__1 ) + // InternalAlloyLanguage.g:1886:2: rule__ALSEnumDeclaration__Group_4__0__Impl rule__ALSEnumDeclaration__Group_4__1 + { + pushFollow(FOLLOW_5); + rule__ALSEnumDeclaration__Group_4__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSEnumDeclaration__Group_4__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSEnumDeclaration__Group_4__0" + + + // $ANTLR start "rule__ALSEnumDeclaration__Group_4__0__Impl" + // InternalAlloyLanguage.g:1893:1: rule__ALSEnumDeclaration__Group_4__0__Impl : ( ',' ) ; + public final void rule__ALSEnumDeclaration__Group_4__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1897:1: ( ( ',' ) ) + // InternalAlloyLanguage.g:1898:1: ( ',' ) + { + // InternalAlloyLanguage.g:1898:1: ( ',' ) + // InternalAlloyLanguage.g:1899:1: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSEnumDeclarationAccess().getCommaKeyword_4_0()); + } + match(input,35,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSEnumDeclarationAccess().getCommaKeyword_4_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSEnumDeclaration__Group_4__0__Impl" + + + // $ANTLR start "rule__ALSEnumDeclaration__Group_4__1" + // InternalAlloyLanguage.g:1912:1: rule__ALSEnumDeclaration__Group_4__1 : rule__ALSEnumDeclaration__Group_4__1__Impl ; + public final void rule__ALSEnumDeclaration__Group_4__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1916:1: ( rule__ALSEnumDeclaration__Group_4__1__Impl ) + // InternalAlloyLanguage.g:1917:2: rule__ALSEnumDeclaration__Group_4__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSEnumDeclaration__Group_4__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSEnumDeclaration__Group_4__1" + + + // $ANTLR start "rule__ALSEnumDeclaration__Group_4__1__Impl" + // InternalAlloyLanguage.g:1923:1: rule__ALSEnumDeclaration__Group_4__1__Impl : ( ( rule__ALSEnumDeclaration__LiteralAssignment_4_1 ) ) ; + public final void rule__ALSEnumDeclaration__Group_4__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1927:1: ( ( ( rule__ALSEnumDeclaration__LiteralAssignment_4_1 ) ) ) + // InternalAlloyLanguage.g:1928:1: ( ( rule__ALSEnumDeclaration__LiteralAssignment_4_1 ) ) + { + // InternalAlloyLanguage.g:1928:1: ( ( rule__ALSEnumDeclaration__LiteralAssignment_4_1 ) ) + // InternalAlloyLanguage.g:1929:1: ( rule__ALSEnumDeclaration__LiteralAssignment_4_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSEnumDeclarationAccess().getLiteralAssignment_4_1()); + } + // InternalAlloyLanguage.g:1930:1: ( rule__ALSEnumDeclaration__LiteralAssignment_4_1 ) + // InternalAlloyLanguage.g:1930:2: rule__ALSEnumDeclaration__LiteralAssignment_4_1 + { + pushFollow(FOLLOW_2); + rule__ALSEnumDeclaration__LiteralAssignment_4_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSEnumDeclarationAccess().getLiteralAssignment_4_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSEnumDeclaration__Group_4__1__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group__0" + // InternalAlloyLanguage.g:1944:1: rule__ALSSignatureBody__Group__0 : rule__ALSSignatureBody__Group__0__Impl rule__ALSSignatureBody__Group__1 ; + public final void rule__ALSSignatureBody__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1948:1: ( rule__ALSSignatureBody__Group__0__Impl rule__ALSSignatureBody__Group__1 ) + // InternalAlloyLanguage.g:1949:2: rule__ALSSignatureBody__Group__0__Impl rule__ALSSignatureBody__Group__1 + { + pushFollow(FOLLOW_9); + rule__ALSSignatureBody__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group__0" + + + // $ANTLR start "rule__ALSSignatureBody__Group__0__Impl" + // InternalAlloyLanguage.g:1956:1: rule__ALSSignatureBody__Group__0__Impl : ( ( rule__ALSSignatureBody__UnorderedGroup_0 ) ) ; + public final void rule__ALSSignatureBody__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1960:1: ( ( ( rule__ALSSignatureBody__UnorderedGroup_0 ) ) ) + // InternalAlloyLanguage.g:1961:1: ( ( rule__ALSSignatureBody__UnorderedGroup_0 ) ) + { + // InternalAlloyLanguage.g:1961:1: ( ( rule__ALSSignatureBody__UnorderedGroup_0 ) ) + // InternalAlloyLanguage.g:1962:1: ( rule__ALSSignatureBody__UnorderedGroup_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0()); + } + // InternalAlloyLanguage.g:1963:1: ( rule__ALSSignatureBody__UnorderedGroup_0 ) + // InternalAlloyLanguage.g:1963:2: rule__ALSSignatureBody__UnorderedGroup_0 + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__UnorderedGroup_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group__0__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group__1" + // InternalAlloyLanguage.g:1973:1: rule__ALSSignatureBody__Group__1 : rule__ALSSignatureBody__Group__1__Impl rule__ALSSignatureBody__Group__2 ; + public final void rule__ALSSignatureBody__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1977:1: ( rule__ALSSignatureBody__Group__1__Impl rule__ALSSignatureBody__Group__2 ) + // InternalAlloyLanguage.g:1978:2: rule__ALSSignatureBody__Group__1__Impl rule__ALSSignatureBody__Group__2 + { + pushFollow(FOLLOW_5); + rule__ALSSignatureBody__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group__1" + + + // $ANTLR start "rule__ALSSignatureBody__Group__1__Impl" + // InternalAlloyLanguage.g:1985:1: rule__ALSSignatureBody__Group__1__Impl : ( 'sig' ) ; + public final void rule__ALSSignatureBody__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:1989:1: ( ( 'sig' ) ) + // InternalAlloyLanguage.g:1990:1: ( 'sig' ) + { + // InternalAlloyLanguage.g:1990:1: ( 'sig' ) + // InternalAlloyLanguage.g:1991:1: 'sig' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getSigKeyword_1()); + } + match(input,36,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getSigKeyword_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group__1__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group__2" + // InternalAlloyLanguage.g:2004:1: rule__ALSSignatureBody__Group__2 : rule__ALSSignatureBody__Group__2__Impl rule__ALSSignatureBody__Group__3 ; + public final void rule__ALSSignatureBody__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2008:1: ( rule__ALSSignatureBody__Group__2__Impl rule__ALSSignatureBody__Group__3 ) + // InternalAlloyLanguage.g:2009:2: rule__ALSSignatureBody__Group__2__Impl rule__ALSSignatureBody__Group__3 + { + pushFollow(FOLLOW_10); + rule__ALSSignatureBody__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group__2" + + + // $ANTLR start "rule__ALSSignatureBody__Group__2__Impl" + // InternalAlloyLanguage.g:2016:1: rule__ALSSignatureBody__Group__2__Impl : ( ( rule__ALSSignatureBody__DeclarationsAssignment_2 ) ) ; + public final void rule__ALSSignatureBody__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2020:1: ( ( ( rule__ALSSignatureBody__DeclarationsAssignment_2 ) ) ) + // InternalAlloyLanguage.g:2021:1: ( ( rule__ALSSignatureBody__DeclarationsAssignment_2 ) ) + { + // InternalAlloyLanguage.g:2021:1: ( ( rule__ALSSignatureBody__DeclarationsAssignment_2 ) ) + // InternalAlloyLanguage.g:2022:1: ( rule__ALSSignatureBody__DeclarationsAssignment_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getDeclarationsAssignment_2()); + } + // InternalAlloyLanguage.g:2023:1: ( rule__ALSSignatureBody__DeclarationsAssignment_2 ) + // InternalAlloyLanguage.g:2023:2: rule__ALSSignatureBody__DeclarationsAssignment_2 + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__DeclarationsAssignment_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getDeclarationsAssignment_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group__2__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group__3" + // InternalAlloyLanguage.g:2033:1: rule__ALSSignatureBody__Group__3 : rule__ALSSignatureBody__Group__3__Impl rule__ALSSignatureBody__Group__4 ; + public final void rule__ALSSignatureBody__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2037:1: ( rule__ALSSignatureBody__Group__3__Impl rule__ALSSignatureBody__Group__4 ) + // InternalAlloyLanguage.g:2038:2: rule__ALSSignatureBody__Group__3__Impl rule__ALSSignatureBody__Group__4 + { + pushFollow(FOLLOW_10); + rule__ALSSignatureBody__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group__3" + + + // $ANTLR start "rule__ALSSignatureBody__Group__3__Impl" + // InternalAlloyLanguage.g:2045:1: rule__ALSSignatureBody__Group__3__Impl : ( ( rule__ALSSignatureBody__Group_3__0 )* ) ; + public final void rule__ALSSignatureBody__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2049:1: ( ( ( rule__ALSSignatureBody__Group_3__0 )* ) ) + // InternalAlloyLanguage.g:2050:1: ( ( rule__ALSSignatureBody__Group_3__0 )* ) + { + // InternalAlloyLanguage.g:2050:1: ( ( rule__ALSSignatureBody__Group_3__0 )* ) + // InternalAlloyLanguage.g:2051:1: ( rule__ALSSignatureBody__Group_3__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getGroup_3()); + } + // InternalAlloyLanguage.g:2052:1: ( rule__ALSSignatureBody__Group_3__0 )* + loop19: + do { + int alt19=2; + int LA19_0 = input.LA(1); + + if ( (LA19_0==35) ) { + alt19=1; + } + + + switch (alt19) { + case 1 : + // InternalAlloyLanguage.g:2052:2: rule__ALSSignatureBody__Group_3__0 + { + pushFollow(FOLLOW_8); + rule__ALSSignatureBody__Group_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop19; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getGroup_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group__3__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group__4" + // InternalAlloyLanguage.g:2062:1: rule__ALSSignatureBody__Group__4 : rule__ALSSignatureBody__Group__4__Impl rule__ALSSignatureBody__Group__5 ; + public final void rule__ALSSignatureBody__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2066:1: ( rule__ALSSignatureBody__Group__4__Impl rule__ALSSignatureBody__Group__5 ) + // InternalAlloyLanguage.g:2067:2: rule__ALSSignatureBody__Group__4__Impl rule__ALSSignatureBody__Group__5 + { + pushFollow(FOLLOW_10); + rule__ALSSignatureBody__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group__4" + + + // $ANTLR start "rule__ALSSignatureBody__Group__4__Impl" + // InternalAlloyLanguage.g:2074:1: rule__ALSSignatureBody__Group__4__Impl : ( ( rule__ALSSignatureBody__Alternatives_4 )? ) ; + public final void rule__ALSSignatureBody__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2078:1: ( ( ( rule__ALSSignatureBody__Alternatives_4 )? ) ) + // InternalAlloyLanguage.g:2079:1: ( ( rule__ALSSignatureBody__Alternatives_4 )? ) + { + // InternalAlloyLanguage.g:2079:1: ( ( rule__ALSSignatureBody__Alternatives_4 )? ) + // InternalAlloyLanguage.g:2080:1: ( rule__ALSSignatureBody__Alternatives_4 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getAlternatives_4()); + } + // InternalAlloyLanguage.g:2081:1: ( rule__ALSSignatureBody__Alternatives_4 )? + int alt20=2; + int LA20_0 = input.LA(1); + + if ( ((LA20_0>=37 && LA20_0<=38)) ) { + alt20=1; + } + switch (alt20) { + case 1 : + // InternalAlloyLanguage.g:2081:2: rule__ALSSignatureBody__Alternatives_4 + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Alternatives_4(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getAlternatives_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group__4__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group__5" + // InternalAlloyLanguage.g:2091:1: rule__ALSSignatureBody__Group__5 : rule__ALSSignatureBody__Group__5__Impl rule__ALSSignatureBody__Group__6 ; + public final void rule__ALSSignatureBody__Group__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2095:1: ( rule__ALSSignatureBody__Group__5__Impl rule__ALSSignatureBody__Group__6 ) + // InternalAlloyLanguage.g:2096:2: rule__ALSSignatureBody__Group__5__Impl rule__ALSSignatureBody__Group__6 + { + pushFollow(FOLLOW_11); + rule__ALSSignatureBody__Group__5__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group__6(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group__5" + + + // $ANTLR start "rule__ALSSignatureBody__Group__5__Impl" + // InternalAlloyLanguage.g:2103:1: rule__ALSSignatureBody__Group__5__Impl : ( '{' ) ; + public final void rule__ALSSignatureBody__Group__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2107:1: ( ( '{' ) ) + // InternalAlloyLanguage.g:2108:1: ( '{' ) + { + // InternalAlloyLanguage.g:2108:1: ( '{' ) + // InternalAlloyLanguage.g:2109:1: '{' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getLeftCurlyBracketKeyword_5()); + } + match(input,33,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getLeftCurlyBracketKeyword_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group__5__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group__6" + // InternalAlloyLanguage.g:2122:1: rule__ALSSignatureBody__Group__6 : rule__ALSSignatureBody__Group__6__Impl rule__ALSSignatureBody__Group__7 ; + public final void rule__ALSSignatureBody__Group__6() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2126:1: ( rule__ALSSignatureBody__Group__6__Impl rule__ALSSignatureBody__Group__7 ) + // InternalAlloyLanguage.g:2127:2: rule__ALSSignatureBody__Group__6__Impl rule__ALSSignatureBody__Group__7 + { + pushFollow(FOLLOW_11); + rule__ALSSignatureBody__Group__6__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group__7(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group__6" + + + // $ANTLR start "rule__ALSSignatureBody__Group__6__Impl" + // InternalAlloyLanguage.g:2134:1: rule__ALSSignatureBody__Group__6__Impl : ( ( rule__ALSSignatureBody__Group_6__0 )? ) ; + public final void rule__ALSSignatureBody__Group__6__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2138:1: ( ( ( rule__ALSSignatureBody__Group_6__0 )? ) ) + // InternalAlloyLanguage.g:2139:1: ( ( rule__ALSSignatureBody__Group_6__0 )? ) + { + // InternalAlloyLanguage.g:2139:1: ( ( rule__ALSSignatureBody__Group_6__0 )? ) + // InternalAlloyLanguage.g:2140:1: ( rule__ALSSignatureBody__Group_6__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getGroup_6()); + } + // InternalAlloyLanguage.g:2141:1: ( rule__ALSSignatureBody__Group_6__0 )? + int alt21=2; + int LA21_0 = input.LA(1); + + if ( (LA21_0==RULE_ID) ) { + alt21=1; + } + switch (alt21) { + case 1 : + // InternalAlloyLanguage.g:2141:2: rule__ALSSignatureBody__Group_6__0 + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group_6__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getGroup_6()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group__6__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group__7" + // InternalAlloyLanguage.g:2151:1: rule__ALSSignatureBody__Group__7 : rule__ALSSignatureBody__Group__7__Impl ; + public final void rule__ALSSignatureBody__Group__7() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2155:1: ( rule__ALSSignatureBody__Group__7__Impl ) + // InternalAlloyLanguage.g:2156:2: rule__ALSSignatureBody__Group__7__Impl + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group__7__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group__7" + + + // $ANTLR start "rule__ALSSignatureBody__Group__7__Impl" + // InternalAlloyLanguage.g:2162:1: rule__ALSSignatureBody__Group__7__Impl : ( '}' ) ; + public final void rule__ALSSignatureBody__Group__7__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2166:1: ( ( '}' ) ) + // InternalAlloyLanguage.g:2167:1: ( '}' ) + { + // InternalAlloyLanguage.g:2167:1: ( '}' ) + // InternalAlloyLanguage.g:2168:1: '}' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getRightCurlyBracketKeyword_7()); + } + match(input,34,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getRightCurlyBracketKeyword_7()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group__7__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group_3__0" + // InternalAlloyLanguage.g:2197:1: rule__ALSSignatureBody__Group_3__0 : rule__ALSSignatureBody__Group_3__0__Impl rule__ALSSignatureBody__Group_3__1 ; + public final void rule__ALSSignatureBody__Group_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2201:1: ( rule__ALSSignatureBody__Group_3__0__Impl rule__ALSSignatureBody__Group_3__1 ) + // InternalAlloyLanguage.g:2202:2: rule__ALSSignatureBody__Group_3__0__Impl rule__ALSSignatureBody__Group_3__1 + { + pushFollow(FOLLOW_5); + rule__ALSSignatureBody__Group_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_3__0" + + + // $ANTLR start "rule__ALSSignatureBody__Group_3__0__Impl" + // InternalAlloyLanguage.g:2209:1: rule__ALSSignatureBody__Group_3__0__Impl : ( ',' ) ; + public final void rule__ALSSignatureBody__Group_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2213:1: ( ( ',' ) ) + // InternalAlloyLanguage.g:2214:1: ( ',' ) + { + // InternalAlloyLanguage.g:2214:1: ( ',' ) + // InternalAlloyLanguage.g:2215:1: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getCommaKeyword_3_0()); + } + match(input,35,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getCommaKeyword_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_3__0__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group_3__1" + // InternalAlloyLanguage.g:2228:1: rule__ALSSignatureBody__Group_3__1 : rule__ALSSignatureBody__Group_3__1__Impl ; + public final void rule__ALSSignatureBody__Group_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2232:1: ( rule__ALSSignatureBody__Group_3__1__Impl ) + // InternalAlloyLanguage.g:2233:2: rule__ALSSignatureBody__Group_3__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group_3__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_3__1" + + + // $ANTLR start "rule__ALSSignatureBody__Group_3__1__Impl" + // InternalAlloyLanguage.g:2239:1: rule__ALSSignatureBody__Group_3__1__Impl : ( ( rule__ALSSignatureBody__DeclarationsAssignment_3_1 ) ) ; + public final void rule__ALSSignatureBody__Group_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2243:1: ( ( ( rule__ALSSignatureBody__DeclarationsAssignment_3_1 ) ) ) + // InternalAlloyLanguage.g:2244:1: ( ( rule__ALSSignatureBody__DeclarationsAssignment_3_1 ) ) + { + // InternalAlloyLanguage.g:2244:1: ( ( rule__ALSSignatureBody__DeclarationsAssignment_3_1 ) ) + // InternalAlloyLanguage.g:2245:1: ( rule__ALSSignatureBody__DeclarationsAssignment_3_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getDeclarationsAssignment_3_1()); + } + // InternalAlloyLanguage.g:2246:1: ( rule__ALSSignatureBody__DeclarationsAssignment_3_1 ) + // InternalAlloyLanguage.g:2246:2: rule__ALSSignatureBody__DeclarationsAssignment_3_1 + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__DeclarationsAssignment_3_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getDeclarationsAssignment_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_3__1__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group_4_0__0" + // InternalAlloyLanguage.g:2260:1: rule__ALSSignatureBody__Group_4_0__0 : rule__ALSSignatureBody__Group_4_0__0__Impl rule__ALSSignatureBody__Group_4_0__1 ; + public final void rule__ALSSignatureBody__Group_4_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2264:1: ( rule__ALSSignatureBody__Group_4_0__0__Impl rule__ALSSignatureBody__Group_4_0__1 ) + // InternalAlloyLanguage.g:2265:2: rule__ALSSignatureBody__Group_4_0__0__Impl rule__ALSSignatureBody__Group_4_0__1 + { + pushFollow(FOLLOW_5); + rule__ALSSignatureBody__Group_4_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group_4_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_4_0__0" + + + // $ANTLR start "rule__ALSSignatureBody__Group_4_0__0__Impl" + // InternalAlloyLanguage.g:2272:1: rule__ALSSignatureBody__Group_4_0__0__Impl : ( 'extends' ) ; + public final void rule__ALSSignatureBody__Group_4_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2276:1: ( ( 'extends' ) ) + // InternalAlloyLanguage.g:2277:1: ( 'extends' ) + { + // InternalAlloyLanguage.g:2277:1: ( 'extends' ) + // InternalAlloyLanguage.g:2278:1: 'extends' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getExtendsKeyword_4_0_0()); + } + match(input,37,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getExtendsKeyword_4_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_4_0__0__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group_4_0__1" + // InternalAlloyLanguage.g:2291:1: rule__ALSSignatureBody__Group_4_0__1 : rule__ALSSignatureBody__Group_4_0__1__Impl ; + public final void rule__ALSSignatureBody__Group_4_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2295:1: ( rule__ALSSignatureBody__Group_4_0__1__Impl ) + // InternalAlloyLanguage.g:2296:2: rule__ALSSignatureBody__Group_4_0__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group_4_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_4_0__1" + + + // $ANTLR start "rule__ALSSignatureBody__Group_4_0__1__Impl" + // InternalAlloyLanguage.g:2302:1: rule__ALSSignatureBody__Group_4_0__1__Impl : ( ( rule__ALSSignatureBody__SupertypeAssignment_4_0_1 ) ) ; + public final void rule__ALSSignatureBody__Group_4_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2306:1: ( ( ( rule__ALSSignatureBody__SupertypeAssignment_4_0_1 ) ) ) + // InternalAlloyLanguage.g:2307:1: ( ( rule__ALSSignatureBody__SupertypeAssignment_4_0_1 ) ) + { + // InternalAlloyLanguage.g:2307:1: ( ( rule__ALSSignatureBody__SupertypeAssignment_4_0_1 ) ) + // InternalAlloyLanguage.g:2308:1: ( rule__ALSSignatureBody__SupertypeAssignment_4_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getSupertypeAssignment_4_0_1()); + } + // InternalAlloyLanguage.g:2309:1: ( rule__ALSSignatureBody__SupertypeAssignment_4_0_1 ) + // InternalAlloyLanguage.g:2309:2: rule__ALSSignatureBody__SupertypeAssignment_4_0_1 + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__SupertypeAssignment_4_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getSupertypeAssignment_4_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_4_0__1__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group_4_1__0" + // InternalAlloyLanguage.g:2323:1: rule__ALSSignatureBody__Group_4_1__0 : rule__ALSSignatureBody__Group_4_1__0__Impl rule__ALSSignatureBody__Group_4_1__1 ; + public final void rule__ALSSignatureBody__Group_4_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2327:1: ( rule__ALSSignatureBody__Group_4_1__0__Impl rule__ALSSignatureBody__Group_4_1__1 ) + // InternalAlloyLanguage.g:2328:2: rule__ALSSignatureBody__Group_4_1__0__Impl rule__ALSSignatureBody__Group_4_1__1 + { + pushFollow(FOLLOW_5); + rule__ALSSignatureBody__Group_4_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group_4_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_4_1__0" + + + // $ANTLR start "rule__ALSSignatureBody__Group_4_1__0__Impl" + // InternalAlloyLanguage.g:2335:1: rule__ALSSignatureBody__Group_4_1__0__Impl : ( 'in' ) ; + public final void rule__ALSSignatureBody__Group_4_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2339:1: ( ( 'in' ) ) + // InternalAlloyLanguage.g:2340:1: ( 'in' ) + { + // InternalAlloyLanguage.g:2340:1: ( 'in' ) + // InternalAlloyLanguage.g:2341:1: 'in' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getInKeyword_4_1_0()); + } + match(input,38,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getInKeyword_4_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_4_1__0__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group_4_1__1" + // InternalAlloyLanguage.g:2354:1: rule__ALSSignatureBody__Group_4_1__1 : rule__ALSSignatureBody__Group_4_1__1__Impl rule__ALSSignatureBody__Group_4_1__2 ; + public final void rule__ALSSignatureBody__Group_4_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2358:1: ( rule__ALSSignatureBody__Group_4_1__1__Impl rule__ALSSignatureBody__Group_4_1__2 ) + // InternalAlloyLanguage.g:2359:2: rule__ALSSignatureBody__Group_4_1__1__Impl rule__ALSSignatureBody__Group_4_1__2 + { + pushFollow(FOLLOW_12); + rule__ALSSignatureBody__Group_4_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group_4_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_4_1__1" + + + // $ANTLR start "rule__ALSSignatureBody__Group_4_1__1__Impl" + // InternalAlloyLanguage.g:2366:1: rule__ALSSignatureBody__Group_4_1__1__Impl : ( ( rule__ALSSignatureBody__SupersetAssignment_4_1_1 ) ) ; + public final void rule__ALSSignatureBody__Group_4_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2370:1: ( ( ( rule__ALSSignatureBody__SupersetAssignment_4_1_1 ) ) ) + // InternalAlloyLanguage.g:2371:1: ( ( rule__ALSSignatureBody__SupersetAssignment_4_1_1 ) ) + { + // InternalAlloyLanguage.g:2371:1: ( ( rule__ALSSignatureBody__SupersetAssignment_4_1_1 ) ) + // InternalAlloyLanguage.g:2372:1: ( rule__ALSSignatureBody__SupersetAssignment_4_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getSupersetAssignment_4_1_1()); + } + // InternalAlloyLanguage.g:2373:1: ( rule__ALSSignatureBody__SupersetAssignment_4_1_1 ) + // InternalAlloyLanguage.g:2373:2: rule__ALSSignatureBody__SupersetAssignment_4_1_1 + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__SupersetAssignment_4_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getSupersetAssignment_4_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_4_1__1__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group_4_1__2" + // InternalAlloyLanguage.g:2383:1: rule__ALSSignatureBody__Group_4_1__2 : rule__ALSSignatureBody__Group_4_1__2__Impl ; + public final void rule__ALSSignatureBody__Group_4_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2387:1: ( rule__ALSSignatureBody__Group_4_1__2__Impl ) + // InternalAlloyLanguage.g:2388:2: rule__ALSSignatureBody__Group_4_1__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group_4_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_4_1__2" + + + // $ANTLR start "rule__ALSSignatureBody__Group_4_1__2__Impl" + // InternalAlloyLanguage.g:2394:1: rule__ALSSignatureBody__Group_4_1__2__Impl : ( ( rule__ALSSignatureBody__Group_4_1_2__0 )* ) ; + public final void rule__ALSSignatureBody__Group_4_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2398:1: ( ( ( rule__ALSSignatureBody__Group_4_1_2__0 )* ) ) + // InternalAlloyLanguage.g:2399:1: ( ( rule__ALSSignatureBody__Group_4_1_2__0 )* ) + { + // InternalAlloyLanguage.g:2399:1: ( ( rule__ALSSignatureBody__Group_4_1_2__0 )* ) + // InternalAlloyLanguage.g:2400:1: ( rule__ALSSignatureBody__Group_4_1_2__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getGroup_4_1_2()); + } + // InternalAlloyLanguage.g:2401:1: ( rule__ALSSignatureBody__Group_4_1_2__0 )* + loop22: + do { + int alt22=2; + int LA22_0 = input.LA(1); + + if ( (LA22_0==39) ) { + alt22=1; + } + + + switch (alt22) { + case 1 : + // InternalAlloyLanguage.g:2401:2: rule__ALSSignatureBody__Group_4_1_2__0 + { + pushFollow(FOLLOW_13); + rule__ALSSignatureBody__Group_4_1_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop22; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getGroup_4_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_4_1__2__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group_4_1_2__0" + // InternalAlloyLanguage.g:2417:1: rule__ALSSignatureBody__Group_4_1_2__0 : rule__ALSSignatureBody__Group_4_1_2__0__Impl rule__ALSSignatureBody__Group_4_1_2__1 ; + public final void rule__ALSSignatureBody__Group_4_1_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2421:1: ( rule__ALSSignatureBody__Group_4_1_2__0__Impl rule__ALSSignatureBody__Group_4_1_2__1 ) + // InternalAlloyLanguage.g:2422:2: rule__ALSSignatureBody__Group_4_1_2__0__Impl rule__ALSSignatureBody__Group_4_1_2__1 + { + pushFollow(FOLLOW_5); + rule__ALSSignatureBody__Group_4_1_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group_4_1_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_4_1_2__0" + + + // $ANTLR start "rule__ALSSignatureBody__Group_4_1_2__0__Impl" + // InternalAlloyLanguage.g:2429:1: rule__ALSSignatureBody__Group_4_1_2__0__Impl : ( '+' ) ; + public final void rule__ALSSignatureBody__Group_4_1_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2433:1: ( ( '+' ) ) + // InternalAlloyLanguage.g:2434:1: ( '+' ) + { + // InternalAlloyLanguage.g:2434:1: ( '+' ) + // InternalAlloyLanguage.g:2435:1: '+' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getPlusSignKeyword_4_1_2_0()); + } + match(input,39,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getPlusSignKeyword_4_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_4_1_2__0__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group_4_1_2__1" + // InternalAlloyLanguage.g:2448:1: rule__ALSSignatureBody__Group_4_1_2__1 : rule__ALSSignatureBody__Group_4_1_2__1__Impl ; + public final void rule__ALSSignatureBody__Group_4_1_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2452:1: ( rule__ALSSignatureBody__Group_4_1_2__1__Impl ) + // InternalAlloyLanguage.g:2453:2: rule__ALSSignatureBody__Group_4_1_2__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group_4_1_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_4_1_2__1" + + + // $ANTLR start "rule__ALSSignatureBody__Group_4_1_2__1__Impl" + // InternalAlloyLanguage.g:2459:1: rule__ALSSignatureBody__Group_4_1_2__1__Impl : ( ( rule__ALSSignatureBody__SupersetAssignment_4_1_2_1 ) ) ; + public final void rule__ALSSignatureBody__Group_4_1_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2463:1: ( ( ( rule__ALSSignatureBody__SupersetAssignment_4_1_2_1 ) ) ) + // InternalAlloyLanguage.g:2464:1: ( ( rule__ALSSignatureBody__SupersetAssignment_4_1_2_1 ) ) + { + // InternalAlloyLanguage.g:2464:1: ( ( rule__ALSSignatureBody__SupersetAssignment_4_1_2_1 ) ) + // InternalAlloyLanguage.g:2465:1: ( rule__ALSSignatureBody__SupersetAssignment_4_1_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getSupersetAssignment_4_1_2_1()); + } + // InternalAlloyLanguage.g:2466:1: ( rule__ALSSignatureBody__SupersetAssignment_4_1_2_1 ) + // InternalAlloyLanguage.g:2466:2: rule__ALSSignatureBody__SupersetAssignment_4_1_2_1 + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__SupersetAssignment_4_1_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getSupersetAssignment_4_1_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_4_1_2__1__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group_6__0" + // InternalAlloyLanguage.g:2480:1: rule__ALSSignatureBody__Group_6__0 : rule__ALSSignatureBody__Group_6__0__Impl rule__ALSSignatureBody__Group_6__1 ; + public final void rule__ALSSignatureBody__Group_6__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2484:1: ( rule__ALSSignatureBody__Group_6__0__Impl rule__ALSSignatureBody__Group_6__1 ) + // InternalAlloyLanguage.g:2485:2: rule__ALSSignatureBody__Group_6__0__Impl rule__ALSSignatureBody__Group_6__1 + { + pushFollow(FOLLOW_14); + rule__ALSSignatureBody__Group_6__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group_6__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_6__0" + + + // $ANTLR start "rule__ALSSignatureBody__Group_6__0__Impl" + // InternalAlloyLanguage.g:2492:1: rule__ALSSignatureBody__Group_6__0__Impl : ( ( rule__ALSSignatureBody__FieldsAssignment_6_0 ) ) ; + public final void rule__ALSSignatureBody__Group_6__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2496:1: ( ( ( rule__ALSSignatureBody__FieldsAssignment_6_0 ) ) ) + // InternalAlloyLanguage.g:2497:1: ( ( rule__ALSSignatureBody__FieldsAssignment_6_0 ) ) + { + // InternalAlloyLanguage.g:2497:1: ( ( rule__ALSSignatureBody__FieldsAssignment_6_0 ) ) + // InternalAlloyLanguage.g:2498:1: ( rule__ALSSignatureBody__FieldsAssignment_6_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getFieldsAssignment_6_0()); + } + // InternalAlloyLanguage.g:2499:1: ( rule__ALSSignatureBody__FieldsAssignment_6_0 ) + // InternalAlloyLanguage.g:2499:2: rule__ALSSignatureBody__FieldsAssignment_6_0 + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__FieldsAssignment_6_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getFieldsAssignment_6_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_6__0__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group_6__1" + // InternalAlloyLanguage.g:2509:1: rule__ALSSignatureBody__Group_6__1 : rule__ALSSignatureBody__Group_6__1__Impl ; + public final void rule__ALSSignatureBody__Group_6__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2513:1: ( rule__ALSSignatureBody__Group_6__1__Impl ) + // InternalAlloyLanguage.g:2514:2: rule__ALSSignatureBody__Group_6__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group_6__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_6__1" + + + // $ANTLR start "rule__ALSSignatureBody__Group_6__1__Impl" + // InternalAlloyLanguage.g:2520:1: rule__ALSSignatureBody__Group_6__1__Impl : ( ( rule__ALSSignatureBody__Group_6_1__0 )* ) ; + public final void rule__ALSSignatureBody__Group_6__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2524:1: ( ( ( rule__ALSSignatureBody__Group_6_1__0 )* ) ) + // InternalAlloyLanguage.g:2525:1: ( ( rule__ALSSignatureBody__Group_6_1__0 )* ) + { + // InternalAlloyLanguage.g:2525:1: ( ( rule__ALSSignatureBody__Group_6_1__0 )* ) + // InternalAlloyLanguage.g:2526:1: ( rule__ALSSignatureBody__Group_6_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getGroup_6_1()); + } + // InternalAlloyLanguage.g:2527:1: ( rule__ALSSignatureBody__Group_6_1__0 )* + loop23: + do { + int alt23=2; + int LA23_0 = input.LA(1); + + if ( (LA23_0==35) ) { + alt23=1; + } + + + switch (alt23) { + case 1 : + // InternalAlloyLanguage.g:2527:2: rule__ALSSignatureBody__Group_6_1__0 + { + pushFollow(FOLLOW_8); + rule__ALSSignatureBody__Group_6_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop23; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getGroup_6_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_6__1__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group_6_1__0" + // InternalAlloyLanguage.g:2541:1: rule__ALSSignatureBody__Group_6_1__0 : rule__ALSSignatureBody__Group_6_1__0__Impl rule__ALSSignatureBody__Group_6_1__1 ; + public final void rule__ALSSignatureBody__Group_6_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2545:1: ( rule__ALSSignatureBody__Group_6_1__0__Impl rule__ALSSignatureBody__Group_6_1__1 ) + // InternalAlloyLanguage.g:2546:2: rule__ALSSignatureBody__Group_6_1__0__Impl rule__ALSSignatureBody__Group_6_1__1 + { + pushFollow(FOLLOW_5); + rule__ALSSignatureBody__Group_6_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group_6_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_6_1__0" + + + // $ANTLR start "rule__ALSSignatureBody__Group_6_1__0__Impl" + // InternalAlloyLanguage.g:2553:1: rule__ALSSignatureBody__Group_6_1__0__Impl : ( ',' ) ; + public final void rule__ALSSignatureBody__Group_6_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2557:1: ( ( ',' ) ) + // InternalAlloyLanguage.g:2558:1: ( ',' ) + { + // InternalAlloyLanguage.g:2558:1: ( ',' ) + // InternalAlloyLanguage.g:2559:1: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getCommaKeyword_6_1_0()); + } + match(input,35,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getCommaKeyword_6_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_6_1__0__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__Group_6_1__1" + // InternalAlloyLanguage.g:2572:1: rule__ALSSignatureBody__Group_6_1__1 : rule__ALSSignatureBody__Group_6_1__1__Impl ; + public final void rule__ALSSignatureBody__Group_6_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2576:1: ( rule__ALSSignatureBody__Group_6_1__1__Impl ) + // InternalAlloyLanguage.g:2577:2: rule__ALSSignatureBody__Group_6_1__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__Group_6_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_6_1__1" + + + // $ANTLR start "rule__ALSSignatureBody__Group_6_1__1__Impl" + // InternalAlloyLanguage.g:2583:1: rule__ALSSignatureBody__Group_6_1__1__Impl : ( ( rule__ALSSignatureBody__FieldsAssignment_6_1_1 ) ) ; + public final void rule__ALSSignatureBody__Group_6_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2587:1: ( ( ( rule__ALSSignatureBody__FieldsAssignment_6_1_1 ) ) ) + // InternalAlloyLanguage.g:2588:1: ( ( rule__ALSSignatureBody__FieldsAssignment_6_1_1 ) ) + { + // InternalAlloyLanguage.g:2588:1: ( ( rule__ALSSignatureBody__FieldsAssignment_6_1_1 ) ) + // InternalAlloyLanguage.g:2589:1: ( rule__ALSSignatureBody__FieldsAssignment_6_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getFieldsAssignment_6_1_1()); + } + // InternalAlloyLanguage.g:2590:1: ( rule__ALSSignatureBody__FieldsAssignment_6_1_1 ) + // InternalAlloyLanguage.g:2590:2: rule__ALSSignatureBody__FieldsAssignment_6_1_1 + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__FieldsAssignment_6_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getFieldsAssignment_6_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__Group_6_1__1__Impl" + + + // $ANTLR start "rule__ALSFieldDeclaration__Group__0" + // InternalAlloyLanguage.g:2604:1: rule__ALSFieldDeclaration__Group__0 : rule__ALSFieldDeclaration__Group__0__Impl rule__ALSFieldDeclaration__Group__1 ; + public final void rule__ALSFieldDeclaration__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2608:1: ( rule__ALSFieldDeclaration__Group__0__Impl rule__ALSFieldDeclaration__Group__1 ) + // InternalAlloyLanguage.g:2609:2: rule__ALSFieldDeclaration__Group__0__Impl rule__ALSFieldDeclaration__Group__1 + { + pushFollow(FOLLOW_15); + rule__ALSFieldDeclaration__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSFieldDeclaration__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFieldDeclaration__Group__0" + + + // $ANTLR start "rule__ALSFieldDeclaration__Group__0__Impl" + // InternalAlloyLanguage.g:2616:1: rule__ALSFieldDeclaration__Group__0__Impl : ( ( rule__ALSFieldDeclaration__NameAssignment_0 ) ) ; + public final void rule__ALSFieldDeclaration__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2620:1: ( ( ( rule__ALSFieldDeclaration__NameAssignment_0 ) ) ) + // InternalAlloyLanguage.g:2621:1: ( ( rule__ALSFieldDeclaration__NameAssignment_0 ) ) + { + // InternalAlloyLanguage.g:2621:1: ( ( rule__ALSFieldDeclaration__NameAssignment_0 ) ) + // InternalAlloyLanguage.g:2622:1: ( rule__ALSFieldDeclaration__NameAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFieldDeclarationAccess().getNameAssignment_0()); + } + // InternalAlloyLanguage.g:2623:1: ( rule__ALSFieldDeclaration__NameAssignment_0 ) + // InternalAlloyLanguage.g:2623:2: rule__ALSFieldDeclaration__NameAssignment_0 + { + pushFollow(FOLLOW_2); + rule__ALSFieldDeclaration__NameAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFieldDeclarationAccess().getNameAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFieldDeclaration__Group__0__Impl" + + + // $ANTLR start "rule__ALSFieldDeclaration__Group__1" + // InternalAlloyLanguage.g:2633:1: rule__ALSFieldDeclaration__Group__1 : rule__ALSFieldDeclaration__Group__1__Impl rule__ALSFieldDeclaration__Group__2 ; + public final void rule__ALSFieldDeclaration__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2637:1: ( rule__ALSFieldDeclaration__Group__1__Impl rule__ALSFieldDeclaration__Group__2 ) + // InternalAlloyLanguage.g:2638:2: rule__ALSFieldDeclaration__Group__1__Impl rule__ALSFieldDeclaration__Group__2 + { + pushFollow(FOLLOW_16); + rule__ALSFieldDeclaration__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSFieldDeclaration__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFieldDeclaration__Group__1" + + + // $ANTLR start "rule__ALSFieldDeclaration__Group__1__Impl" + // InternalAlloyLanguage.g:2645:1: rule__ALSFieldDeclaration__Group__1__Impl : ( ':' ) ; + public final void rule__ALSFieldDeclaration__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2649:1: ( ( ':' ) ) + // InternalAlloyLanguage.g:2650:1: ( ':' ) + { + // InternalAlloyLanguage.g:2650:1: ( ':' ) + // InternalAlloyLanguage.g:2651:1: ':' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFieldDeclarationAccess().getColonKeyword_1()); + } + match(input,40,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFieldDeclarationAccess().getColonKeyword_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFieldDeclaration__Group__1__Impl" + + + // $ANTLR start "rule__ALSFieldDeclaration__Group__2" + // InternalAlloyLanguage.g:2664:1: rule__ALSFieldDeclaration__Group__2 : rule__ALSFieldDeclaration__Group__2__Impl rule__ALSFieldDeclaration__Group__3 ; + public final void rule__ALSFieldDeclaration__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2668:1: ( rule__ALSFieldDeclaration__Group__2__Impl rule__ALSFieldDeclaration__Group__3 ) + // InternalAlloyLanguage.g:2669:2: rule__ALSFieldDeclaration__Group__2__Impl rule__ALSFieldDeclaration__Group__3 + { + pushFollow(FOLLOW_16); + rule__ALSFieldDeclaration__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSFieldDeclaration__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFieldDeclaration__Group__2" + + + // $ANTLR start "rule__ALSFieldDeclaration__Group__2__Impl" + // InternalAlloyLanguage.g:2676:1: rule__ALSFieldDeclaration__Group__2__Impl : ( ( rule__ALSFieldDeclaration__MultiplicityAssignment_2 )? ) ; + public final void rule__ALSFieldDeclaration__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2680:1: ( ( ( rule__ALSFieldDeclaration__MultiplicityAssignment_2 )? ) ) + // InternalAlloyLanguage.g:2681:1: ( ( rule__ALSFieldDeclaration__MultiplicityAssignment_2 )? ) + { + // InternalAlloyLanguage.g:2681:1: ( ( rule__ALSFieldDeclaration__MultiplicityAssignment_2 )? ) + // InternalAlloyLanguage.g:2682:1: ( rule__ALSFieldDeclaration__MultiplicityAssignment_2 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFieldDeclarationAccess().getMultiplicityAssignment_2()); + } + // InternalAlloyLanguage.g:2683:1: ( rule__ALSFieldDeclaration__MultiplicityAssignment_2 )? + int alt24=2; + alt24 = dfa24.predict(input); + switch (alt24) { + case 1 : + // InternalAlloyLanguage.g:2683:2: rule__ALSFieldDeclaration__MultiplicityAssignment_2 + { + pushFollow(FOLLOW_2); + rule__ALSFieldDeclaration__MultiplicityAssignment_2(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFieldDeclarationAccess().getMultiplicityAssignment_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFieldDeclaration__Group__2__Impl" + + + // $ANTLR start "rule__ALSFieldDeclaration__Group__3" + // InternalAlloyLanguage.g:2693:1: rule__ALSFieldDeclaration__Group__3 : rule__ALSFieldDeclaration__Group__3__Impl ; + public final void rule__ALSFieldDeclaration__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2697:1: ( rule__ALSFieldDeclaration__Group__3__Impl ) + // InternalAlloyLanguage.g:2698:2: rule__ALSFieldDeclaration__Group__3__Impl + { + pushFollow(FOLLOW_2); + rule__ALSFieldDeclaration__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFieldDeclaration__Group__3" + + + // $ANTLR start "rule__ALSFieldDeclaration__Group__3__Impl" + // InternalAlloyLanguage.g:2704:1: rule__ALSFieldDeclaration__Group__3__Impl : ( ( rule__ALSFieldDeclaration__TypeAssignment_3 ) ) ; + public final void rule__ALSFieldDeclaration__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2708:1: ( ( ( rule__ALSFieldDeclaration__TypeAssignment_3 ) ) ) + // InternalAlloyLanguage.g:2709:1: ( ( rule__ALSFieldDeclaration__TypeAssignment_3 ) ) + { + // InternalAlloyLanguage.g:2709:1: ( ( rule__ALSFieldDeclaration__TypeAssignment_3 ) ) + // InternalAlloyLanguage.g:2710:1: ( rule__ALSFieldDeclaration__TypeAssignment_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFieldDeclarationAccess().getTypeAssignment_3()); + } + // InternalAlloyLanguage.g:2711:1: ( rule__ALSFieldDeclaration__TypeAssignment_3 ) + // InternalAlloyLanguage.g:2711:2: rule__ALSFieldDeclaration__TypeAssignment_3 + { + pushFollow(FOLLOW_2); + rule__ALSFieldDeclaration__TypeAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFieldDeclarationAccess().getTypeAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFieldDeclaration__Group__3__Impl" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__0" + // InternalAlloyLanguage.g:2729:1: rule__ALSFunctionDefinition__Group__0 : rule__ALSFunctionDefinition__Group__0__Impl rule__ALSFunctionDefinition__Group__1 ; + public final void rule__ALSFunctionDefinition__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2733:1: ( rule__ALSFunctionDefinition__Group__0__Impl rule__ALSFunctionDefinition__Group__1 ) + // InternalAlloyLanguage.g:2734:2: rule__ALSFunctionDefinition__Group__0__Impl rule__ALSFunctionDefinition__Group__1 + { + pushFollow(FOLLOW_5); + rule__ALSFunctionDefinition__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSFunctionDefinition__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__0" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__0__Impl" + // InternalAlloyLanguage.g:2741:1: rule__ALSFunctionDefinition__Group__0__Impl : ( 'fun' ) ; + public final void rule__ALSFunctionDefinition__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2745:1: ( ( 'fun' ) ) + // InternalAlloyLanguage.g:2746:1: ( 'fun' ) + { + // InternalAlloyLanguage.g:2746:1: ( 'fun' ) + // InternalAlloyLanguage.g:2747:1: 'fun' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFunctionDefinitionAccess().getFunKeyword_0()); + } + match(input,41,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFunctionDefinitionAccess().getFunKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__0__Impl" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__1" + // InternalAlloyLanguage.g:2760:1: rule__ALSFunctionDefinition__Group__1 : rule__ALSFunctionDefinition__Group__1__Impl rule__ALSFunctionDefinition__Group__2 ; + public final void rule__ALSFunctionDefinition__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2764:1: ( rule__ALSFunctionDefinition__Group__1__Impl rule__ALSFunctionDefinition__Group__2 ) + // InternalAlloyLanguage.g:2765:2: rule__ALSFunctionDefinition__Group__1__Impl rule__ALSFunctionDefinition__Group__2 + { + pushFollow(FOLLOW_17); + rule__ALSFunctionDefinition__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSFunctionDefinition__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__1" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__1__Impl" + // InternalAlloyLanguage.g:2772:1: rule__ALSFunctionDefinition__Group__1__Impl : ( ( rule__ALSFunctionDefinition__NameAssignment_1 ) ) ; + public final void rule__ALSFunctionDefinition__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2776:1: ( ( ( rule__ALSFunctionDefinition__NameAssignment_1 ) ) ) + // InternalAlloyLanguage.g:2777:1: ( ( rule__ALSFunctionDefinition__NameAssignment_1 ) ) + { + // InternalAlloyLanguage.g:2777:1: ( ( rule__ALSFunctionDefinition__NameAssignment_1 ) ) + // InternalAlloyLanguage.g:2778:1: ( rule__ALSFunctionDefinition__NameAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFunctionDefinitionAccess().getNameAssignment_1()); + } + // InternalAlloyLanguage.g:2779:1: ( rule__ALSFunctionDefinition__NameAssignment_1 ) + // InternalAlloyLanguage.g:2779:2: rule__ALSFunctionDefinition__NameAssignment_1 + { + pushFollow(FOLLOW_2); + rule__ALSFunctionDefinition__NameAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFunctionDefinitionAccess().getNameAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__1__Impl" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__2" + // InternalAlloyLanguage.g:2789:1: rule__ALSFunctionDefinition__Group__2 : rule__ALSFunctionDefinition__Group__2__Impl rule__ALSFunctionDefinition__Group__3 ; + public final void rule__ALSFunctionDefinition__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2793:1: ( rule__ALSFunctionDefinition__Group__2__Impl rule__ALSFunctionDefinition__Group__3 ) + // InternalAlloyLanguage.g:2794:2: rule__ALSFunctionDefinition__Group__2__Impl rule__ALSFunctionDefinition__Group__3 + { + pushFollow(FOLLOW_5); + rule__ALSFunctionDefinition__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSFunctionDefinition__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__2" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__2__Impl" + // InternalAlloyLanguage.g:2801:1: rule__ALSFunctionDefinition__Group__2__Impl : ( '[' ) ; + public final void rule__ALSFunctionDefinition__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2805:1: ( ( '[' ) ) + // InternalAlloyLanguage.g:2806:1: ( '[' ) + { + // InternalAlloyLanguage.g:2806:1: ( '[' ) + // InternalAlloyLanguage.g:2807:1: '[' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFunctionDefinitionAccess().getLeftSquareBracketKeyword_2()); + } + match(input,42,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFunctionDefinitionAccess().getLeftSquareBracketKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__2__Impl" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__3" + // InternalAlloyLanguage.g:2820:1: rule__ALSFunctionDefinition__Group__3 : rule__ALSFunctionDefinition__Group__3__Impl rule__ALSFunctionDefinition__Group__4 ; + public final void rule__ALSFunctionDefinition__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2824:1: ( rule__ALSFunctionDefinition__Group__3__Impl rule__ALSFunctionDefinition__Group__4 ) + // InternalAlloyLanguage.g:2825:2: rule__ALSFunctionDefinition__Group__3__Impl rule__ALSFunctionDefinition__Group__4 + { + pushFollow(FOLLOW_18); + rule__ALSFunctionDefinition__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSFunctionDefinition__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__3" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__3__Impl" + // InternalAlloyLanguage.g:2832:1: rule__ALSFunctionDefinition__Group__3__Impl : ( ( rule__ALSFunctionDefinition__VariablesAssignment_3 ) ) ; + public final void rule__ALSFunctionDefinition__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2836:1: ( ( ( rule__ALSFunctionDefinition__VariablesAssignment_3 ) ) ) + // InternalAlloyLanguage.g:2837:1: ( ( rule__ALSFunctionDefinition__VariablesAssignment_3 ) ) + { + // InternalAlloyLanguage.g:2837:1: ( ( rule__ALSFunctionDefinition__VariablesAssignment_3 ) ) + // InternalAlloyLanguage.g:2838:1: ( rule__ALSFunctionDefinition__VariablesAssignment_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFunctionDefinitionAccess().getVariablesAssignment_3()); + } + // InternalAlloyLanguage.g:2839:1: ( rule__ALSFunctionDefinition__VariablesAssignment_3 ) + // InternalAlloyLanguage.g:2839:2: rule__ALSFunctionDefinition__VariablesAssignment_3 + { + pushFollow(FOLLOW_2); + rule__ALSFunctionDefinition__VariablesAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFunctionDefinitionAccess().getVariablesAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__3__Impl" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__4" + // InternalAlloyLanguage.g:2849:1: rule__ALSFunctionDefinition__Group__4 : rule__ALSFunctionDefinition__Group__4__Impl rule__ALSFunctionDefinition__Group__5 ; + public final void rule__ALSFunctionDefinition__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2853:1: ( rule__ALSFunctionDefinition__Group__4__Impl rule__ALSFunctionDefinition__Group__5 ) + // InternalAlloyLanguage.g:2854:2: rule__ALSFunctionDefinition__Group__4__Impl rule__ALSFunctionDefinition__Group__5 + { + pushFollow(FOLLOW_18); + rule__ALSFunctionDefinition__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSFunctionDefinition__Group__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__4" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__4__Impl" + // InternalAlloyLanguage.g:2861:1: rule__ALSFunctionDefinition__Group__4__Impl : ( ( rule__ALSFunctionDefinition__Group_4__0 )* ) ; + public final void rule__ALSFunctionDefinition__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2865:1: ( ( ( rule__ALSFunctionDefinition__Group_4__0 )* ) ) + // InternalAlloyLanguage.g:2866:1: ( ( rule__ALSFunctionDefinition__Group_4__0 )* ) + { + // InternalAlloyLanguage.g:2866:1: ( ( rule__ALSFunctionDefinition__Group_4__0 )* ) + // InternalAlloyLanguage.g:2867:1: ( rule__ALSFunctionDefinition__Group_4__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFunctionDefinitionAccess().getGroup_4()); + } + // InternalAlloyLanguage.g:2868:1: ( rule__ALSFunctionDefinition__Group_4__0 )* + loop25: + do { + int alt25=2; + int LA25_0 = input.LA(1); + + if ( (LA25_0==35) ) { + alt25=1; + } + + + switch (alt25) { + case 1 : + // InternalAlloyLanguage.g:2868:2: rule__ALSFunctionDefinition__Group_4__0 + { + pushFollow(FOLLOW_8); + rule__ALSFunctionDefinition__Group_4__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop25; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFunctionDefinitionAccess().getGroup_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__4__Impl" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__5" + // InternalAlloyLanguage.g:2878:1: rule__ALSFunctionDefinition__Group__5 : rule__ALSFunctionDefinition__Group__5__Impl rule__ALSFunctionDefinition__Group__6 ; + public final void rule__ALSFunctionDefinition__Group__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2882:1: ( rule__ALSFunctionDefinition__Group__5__Impl rule__ALSFunctionDefinition__Group__6 ) + // InternalAlloyLanguage.g:2883:2: rule__ALSFunctionDefinition__Group__5__Impl rule__ALSFunctionDefinition__Group__6 + { + pushFollow(FOLLOW_15); + rule__ALSFunctionDefinition__Group__5__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSFunctionDefinition__Group__6(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__5" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__5__Impl" + // InternalAlloyLanguage.g:2890:1: rule__ALSFunctionDefinition__Group__5__Impl : ( ']' ) ; + public final void rule__ALSFunctionDefinition__Group__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2894:1: ( ( ']' ) ) + // InternalAlloyLanguage.g:2895:1: ( ']' ) + { + // InternalAlloyLanguage.g:2895:1: ( ']' ) + // InternalAlloyLanguage.g:2896:1: ']' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFunctionDefinitionAccess().getRightSquareBracketKeyword_5()); + } + match(input,43,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFunctionDefinitionAccess().getRightSquareBracketKeyword_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__5__Impl" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__6" + // InternalAlloyLanguage.g:2909:1: rule__ALSFunctionDefinition__Group__6 : rule__ALSFunctionDefinition__Group__6__Impl rule__ALSFunctionDefinition__Group__7 ; + public final void rule__ALSFunctionDefinition__Group__6() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2913:1: ( rule__ALSFunctionDefinition__Group__6__Impl rule__ALSFunctionDefinition__Group__7 ) + // InternalAlloyLanguage.g:2914:2: rule__ALSFunctionDefinition__Group__6__Impl rule__ALSFunctionDefinition__Group__7 + { + pushFollow(FOLLOW_16); + rule__ALSFunctionDefinition__Group__6__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSFunctionDefinition__Group__7(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__6" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__6__Impl" + // InternalAlloyLanguage.g:2921:1: rule__ALSFunctionDefinition__Group__6__Impl : ( ':' ) ; + public final void rule__ALSFunctionDefinition__Group__6__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2925:1: ( ( ':' ) ) + // InternalAlloyLanguage.g:2926:1: ( ':' ) + { + // InternalAlloyLanguage.g:2926:1: ( ':' ) + // InternalAlloyLanguage.g:2927:1: ':' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFunctionDefinitionAccess().getColonKeyword_6()); + } + match(input,40,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFunctionDefinitionAccess().getColonKeyword_6()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__6__Impl" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__7" + // InternalAlloyLanguage.g:2940:1: rule__ALSFunctionDefinition__Group__7 : rule__ALSFunctionDefinition__Group__7__Impl rule__ALSFunctionDefinition__Group__8 ; + public final void rule__ALSFunctionDefinition__Group__7() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2944:1: ( rule__ALSFunctionDefinition__Group__7__Impl rule__ALSFunctionDefinition__Group__8 ) + // InternalAlloyLanguage.g:2945:2: rule__ALSFunctionDefinition__Group__7__Impl rule__ALSFunctionDefinition__Group__8 + { + pushFollow(FOLLOW_6); + rule__ALSFunctionDefinition__Group__7__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSFunctionDefinition__Group__8(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__7" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__7__Impl" + // InternalAlloyLanguage.g:2952:1: rule__ALSFunctionDefinition__Group__7__Impl : ( ( rule__ALSFunctionDefinition__TypeAssignment_7 ) ) ; + public final void rule__ALSFunctionDefinition__Group__7__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2956:1: ( ( ( rule__ALSFunctionDefinition__TypeAssignment_7 ) ) ) + // InternalAlloyLanguage.g:2957:1: ( ( rule__ALSFunctionDefinition__TypeAssignment_7 ) ) + { + // InternalAlloyLanguage.g:2957:1: ( ( rule__ALSFunctionDefinition__TypeAssignment_7 ) ) + // InternalAlloyLanguage.g:2958:1: ( rule__ALSFunctionDefinition__TypeAssignment_7 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFunctionDefinitionAccess().getTypeAssignment_7()); + } + // InternalAlloyLanguage.g:2959:1: ( rule__ALSFunctionDefinition__TypeAssignment_7 ) + // InternalAlloyLanguage.g:2959:2: rule__ALSFunctionDefinition__TypeAssignment_7 + { + pushFollow(FOLLOW_2); + rule__ALSFunctionDefinition__TypeAssignment_7(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFunctionDefinitionAccess().getTypeAssignment_7()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__7__Impl" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__8" + // InternalAlloyLanguage.g:2969:1: rule__ALSFunctionDefinition__Group__8 : rule__ALSFunctionDefinition__Group__8__Impl rule__ALSFunctionDefinition__Group__9 ; + public final void rule__ALSFunctionDefinition__Group__8() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2973:1: ( rule__ALSFunctionDefinition__Group__8__Impl rule__ALSFunctionDefinition__Group__9 ) + // InternalAlloyLanguage.g:2974:2: rule__ALSFunctionDefinition__Group__8__Impl rule__ALSFunctionDefinition__Group__9 + { + pushFollow(FOLLOW_16); + rule__ALSFunctionDefinition__Group__8__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSFunctionDefinition__Group__9(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__8" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__8__Impl" + // InternalAlloyLanguage.g:2981:1: rule__ALSFunctionDefinition__Group__8__Impl : ( '{' ) ; + public final void rule__ALSFunctionDefinition__Group__8__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:2985:1: ( ( '{' ) ) + // InternalAlloyLanguage.g:2986:1: ( '{' ) + { + // InternalAlloyLanguage.g:2986:1: ( '{' ) + // InternalAlloyLanguage.g:2987:1: '{' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFunctionDefinitionAccess().getLeftCurlyBracketKeyword_8()); + } + match(input,33,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFunctionDefinitionAccess().getLeftCurlyBracketKeyword_8()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__8__Impl" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__9" + // InternalAlloyLanguage.g:3000:1: rule__ALSFunctionDefinition__Group__9 : rule__ALSFunctionDefinition__Group__9__Impl rule__ALSFunctionDefinition__Group__10 ; + public final void rule__ALSFunctionDefinition__Group__9() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3004:1: ( rule__ALSFunctionDefinition__Group__9__Impl rule__ALSFunctionDefinition__Group__10 ) + // InternalAlloyLanguage.g:3005:2: rule__ALSFunctionDefinition__Group__9__Impl rule__ALSFunctionDefinition__Group__10 + { + pushFollow(FOLLOW_19); + rule__ALSFunctionDefinition__Group__9__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSFunctionDefinition__Group__10(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__9" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__9__Impl" + // InternalAlloyLanguage.g:3012:1: rule__ALSFunctionDefinition__Group__9__Impl : ( ( rule__ALSFunctionDefinition__ValueAssignment_9 ) ) ; + public final void rule__ALSFunctionDefinition__Group__9__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3016:1: ( ( ( rule__ALSFunctionDefinition__ValueAssignment_9 ) ) ) + // InternalAlloyLanguage.g:3017:1: ( ( rule__ALSFunctionDefinition__ValueAssignment_9 ) ) + { + // InternalAlloyLanguage.g:3017:1: ( ( rule__ALSFunctionDefinition__ValueAssignment_9 ) ) + // InternalAlloyLanguage.g:3018:1: ( rule__ALSFunctionDefinition__ValueAssignment_9 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFunctionDefinitionAccess().getValueAssignment_9()); + } + // InternalAlloyLanguage.g:3019:1: ( rule__ALSFunctionDefinition__ValueAssignment_9 ) + // InternalAlloyLanguage.g:3019:2: rule__ALSFunctionDefinition__ValueAssignment_9 + { + pushFollow(FOLLOW_2); + rule__ALSFunctionDefinition__ValueAssignment_9(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFunctionDefinitionAccess().getValueAssignment_9()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__9__Impl" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__10" + // InternalAlloyLanguage.g:3029:1: rule__ALSFunctionDefinition__Group__10 : rule__ALSFunctionDefinition__Group__10__Impl ; + public final void rule__ALSFunctionDefinition__Group__10() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3033:1: ( rule__ALSFunctionDefinition__Group__10__Impl ) + // InternalAlloyLanguage.g:3034:2: rule__ALSFunctionDefinition__Group__10__Impl + { + pushFollow(FOLLOW_2); + rule__ALSFunctionDefinition__Group__10__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__10" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group__10__Impl" + // InternalAlloyLanguage.g:3040:1: rule__ALSFunctionDefinition__Group__10__Impl : ( '}' ) ; + public final void rule__ALSFunctionDefinition__Group__10__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3044:1: ( ( '}' ) ) + // InternalAlloyLanguage.g:3045:1: ( '}' ) + { + // InternalAlloyLanguage.g:3045:1: ( '}' ) + // InternalAlloyLanguage.g:3046:1: '}' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFunctionDefinitionAccess().getRightCurlyBracketKeyword_10()); + } + match(input,34,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFunctionDefinitionAccess().getRightCurlyBracketKeyword_10()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group__10__Impl" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group_4__0" + // InternalAlloyLanguage.g:3081:1: rule__ALSFunctionDefinition__Group_4__0 : rule__ALSFunctionDefinition__Group_4__0__Impl rule__ALSFunctionDefinition__Group_4__1 ; + public final void rule__ALSFunctionDefinition__Group_4__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3085:1: ( rule__ALSFunctionDefinition__Group_4__0__Impl rule__ALSFunctionDefinition__Group_4__1 ) + // InternalAlloyLanguage.g:3086:2: rule__ALSFunctionDefinition__Group_4__0__Impl rule__ALSFunctionDefinition__Group_4__1 + { + pushFollow(FOLLOW_5); + rule__ALSFunctionDefinition__Group_4__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSFunctionDefinition__Group_4__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group_4__0" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group_4__0__Impl" + // InternalAlloyLanguage.g:3093:1: rule__ALSFunctionDefinition__Group_4__0__Impl : ( ',' ) ; + public final void rule__ALSFunctionDefinition__Group_4__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3097:1: ( ( ',' ) ) + // InternalAlloyLanguage.g:3098:1: ( ',' ) + { + // InternalAlloyLanguage.g:3098:1: ( ',' ) + // InternalAlloyLanguage.g:3099:1: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFunctionDefinitionAccess().getCommaKeyword_4_0()); + } + match(input,35,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFunctionDefinitionAccess().getCommaKeyword_4_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group_4__0__Impl" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group_4__1" + // InternalAlloyLanguage.g:3112:1: rule__ALSFunctionDefinition__Group_4__1 : rule__ALSFunctionDefinition__Group_4__1__Impl ; + public final void rule__ALSFunctionDefinition__Group_4__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3116:1: ( rule__ALSFunctionDefinition__Group_4__1__Impl ) + // InternalAlloyLanguage.g:3117:2: rule__ALSFunctionDefinition__Group_4__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSFunctionDefinition__Group_4__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group_4__1" + + + // $ANTLR start "rule__ALSFunctionDefinition__Group_4__1__Impl" + // InternalAlloyLanguage.g:3123:1: rule__ALSFunctionDefinition__Group_4__1__Impl : ( ( rule__ALSFunctionDefinition__VariablesAssignment_4_1 ) ) ; + public final void rule__ALSFunctionDefinition__Group_4__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3127:1: ( ( ( rule__ALSFunctionDefinition__VariablesAssignment_4_1 ) ) ) + // InternalAlloyLanguage.g:3128:1: ( ( rule__ALSFunctionDefinition__VariablesAssignment_4_1 ) ) + { + // InternalAlloyLanguage.g:3128:1: ( ( rule__ALSFunctionDefinition__VariablesAssignment_4_1 ) ) + // InternalAlloyLanguage.g:3129:1: ( rule__ALSFunctionDefinition__VariablesAssignment_4_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFunctionDefinitionAccess().getVariablesAssignment_4_1()); + } + // InternalAlloyLanguage.g:3130:1: ( rule__ALSFunctionDefinition__VariablesAssignment_4_1 ) + // InternalAlloyLanguage.g:3130:2: rule__ALSFunctionDefinition__VariablesAssignment_4_1 + { + pushFollow(FOLLOW_2); + rule__ALSFunctionDefinition__VariablesAssignment_4_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFunctionDefinitionAccess().getVariablesAssignment_4_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__Group_4__1__Impl" + + + // $ANTLR start "rule__ALSRelationDefinition__Group__0" + // InternalAlloyLanguage.g:3144:1: rule__ALSRelationDefinition__Group__0 : rule__ALSRelationDefinition__Group__0__Impl rule__ALSRelationDefinition__Group__1 ; + public final void rule__ALSRelationDefinition__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3148:1: ( rule__ALSRelationDefinition__Group__0__Impl rule__ALSRelationDefinition__Group__1 ) + // InternalAlloyLanguage.g:3149:2: rule__ALSRelationDefinition__Group__0__Impl rule__ALSRelationDefinition__Group__1 + { + pushFollow(FOLLOW_5); + rule__ALSRelationDefinition__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRelationDefinition__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group__0" + + + // $ANTLR start "rule__ALSRelationDefinition__Group__0__Impl" + // InternalAlloyLanguage.g:3156:1: rule__ALSRelationDefinition__Group__0__Impl : ( 'pred' ) ; + public final void rule__ALSRelationDefinition__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3160:1: ( ( 'pred' ) ) + // InternalAlloyLanguage.g:3161:1: ( 'pred' ) + { + // InternalAlloyLanguage.g:3161:1: ( 'pred' ) + // InternalAlloyLanguage.g:3162:1: 'pred' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRelationDefinitionAccess().getPredKeyword_0()); + } + match(input,44,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRelationDefinitionAccess().getPredKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group__0__Impl" + + + // $ANTLR start "rule__ALSRelationDefinition__Group__1" + // InternalAlloyLanguage.g:3175:1: rule__ALSRelationDefinition__Group__1 : rule__ALSRelationDefinition__Group__1__Impl rule__ALSRelationDefinition__Group__2 ; + public final void rule__ALSRelationDefinition__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3179:1: ( rule__ALSRelationDefinition__Group__1__Impl rule__ALSRelationDefinition__Group__2 ) + // InternalAlloyLanguage.g:3180:2: rule__ALSRelationDefinition__Group__1__Impl rule__ALSRelationDefinition__Group__2 + { + pushFollow(FOLLOW_17); + rule__ALSRelationDefinition__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRelationDefinition__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group__1" + + + // $ANTLR start "rule__ALSRelationDefinition__Group__1__Impl" + // InternalAlloyLanguage.g:3187:1: rule__ALSRelationDefinition__Group__1__Impl : ( ( rule__ALSRelationDefinition__NameAssignment_1 ) ) ; + public final void rule__ALSRelationDefinition__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3191:1: ( ( ( rule__ALSRelationDefinition__NameAssignment_1 ) ) ) + // InternalAlloyLanguage.g:3192:1: ( ( rule__ALSRelationDefinition__NameAssignment_1 ) ) + { + // InternalAlloyLanguage.g:3192:1: ( ( rule__ALSRelationDefinition__NameAssignment_1 ) ) + // InternalAlloyLanguage.g:3193:1: ( rule__ALSRelationDefinition__NameAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRelationDefinitionAccess().getNameAssignment_1()); + } + // InternalAlloyLanguage.g:3194:1: ( rule__ALSRelationDefinition__NameAssignment_1 ) + // InternalAlloyLanguage.g:3194:2: rule__ALSRelationDefinition__NameAssignment_1 + { + pushFollow(FOLLOW_2); + rule__ALSRelationDefinition__NameAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRelationDefinitionAccess().getNameAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group__1__Impl" + + + // $ANTLR start "rule__ALSRelationDefinition__Group__2" + // InternalAlloyLanguage.g:3204:1: rule__ALSRelationDefinition__Group__2 : rule__ALSRelationDefinition__Group__2__Impl rule__ALSRelationDefinition__Group__3 ; + public final void rule__ALSRelationDefinition__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3208:1: ( rule__ALSRelationDefinition__Group__2__Impl rule__ALSRelationDefinition__Group__3 ) + // InternalAlloyLanguage.g:3209:2: rule__ALSRelationDefinition__Group__2__Impl rule__ALSRelationDefinition__Group__3 + { + pushFollow(FOLLOW_5); + rule__ALSRelationDefinition__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRelationDefinition__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group__2" + + + // $ANTLR start "rule__ALSRelationDefinition__Group__2__Impl" + // InternalAlloyLanguage.g:3216:1: rule__ALSRelationDefinition__Group__2__Impl : ( '[' ) ; + public final void rule__ALSRelationDefinition__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3220:1: ( ( '[' ) ) + // InternalAlloyLanguage.g:3221:1: ( '[' ) + { + // InternalAlloyLanguage.g:3221:1: ( '[' ) + // InternalAlloyLanguage.g:3222:1: '[' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRelationDefinitionAccess().getLeftSquareBracketKeyword_2()); + } + match(input,42,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRelationDefinitionAccess().getLeftSquareBracketKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group__2__Impl" + + + // $ANTLR start "rule__ALSRelationDefinition__Group__3" + // InternalAlloyLanguage.g:3235:1: rule__ALSRelationDefinition__Group__3 : rule__ALSRelationDefinition__Group__3__Impl rule__ALSRelationDefinition__Group__4 ; + public final void rule__ALSRelationDefinition__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3239:1: ( rule__ALSRelationDefinition__Group__3__Impl rule__ALSRelationDefinition__Group__4 ) + // InternalAlloyLanguage.g:3240:2: rule__ALSRelationDefinition__Group__3__Impl rule__ALSRelationDefinition__Group__4 + { + pushFollow(FOLLOW_18); + rule__ALSRelationDefinition__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRelationDefinition__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group__3" + + + // $ANTLR start "rule__ALSRelationDefinition__Group__3__Impl" + // InternalAlloyLanguage.g:3247:1: rule__ALSRelationDefinition__Group__3__Impl : ( ( rule__ALSRelationDefinition__VariablesAssignment_3 ) ) ; + public final void rule__ALSRelationDefinition__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3251:1: ( ( ( rule__ALSRelationDefinition__VariablesAssignment_3 ) ) ) + // InternalAlloyLanguage.g:3252:1: ( ( rule__ALSRelationDefinition__VariablesAssignment_3 ) ) + { + // InternalAlloyLanguage.g:3252:1: ( ( rule__ALSRelationDefinition__VariablesAssignment_3 ) ) + // InternalAlloyLanguage.g:3253:1: ( rule__ALSRelationDefinition__VariablesAssignment_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRelationDefinitionAccess().getVariablesAssignment_3()); + } + // InternalAlloyLanguage.g:3254:1: ( rule__ALSRelationDefinition__VariablesAssignment_3 ) + // InternalAlloyLanguage.g:3254:2: rule__ALSRelationDefinition__VariablesAssignment_3 + { + pushFollow(FOLLOW_2); + rule__ALSRelationDefinition__VariablesAssignment_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRelationDefinitionAccess().getVariablesAssignment_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group__3__Impl" + + + // $ANTLR start "rule__ALSRelationDefinition__Group__4" + // InternalAlloyLanguage.g:3264:1: rule__ALSRelationDefinition__Group__4 : rule__ALSRelationDefinition__Group__4__Impl rule__ALSRelationDefinition__Group__5 ; + public final void rule__ALSRelationDefinition__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3268:1: ( rule__ALSRelationDefinition__Group__4__Impl rule__ALSRelationDefinition__Group__5 ) + // InternalAlloyLanguage.g:3269:2: rule__ALSRelationDefinition__Group__4__Impl rule__ALSRelationDefinition__Group__5 + { + pushFollow(FOLLOW_18); + rule__ALSRelationDefinition__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRelationDefinition__Group__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group__4" + + + // $ANTLR start "rule__ALSRelationDefinition__Group__4__Impl" + // InternalAlloyLanguage.g:3276:1: rule__ALSRelationDefinition__Group__4__Impl : ( ( rule__ALSRelationDefinition__Group_4__0 )* ) ; + public final void rule__ALSRelationDefinition__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3280:1: ( ( ( rule__ALSRelationDefinition__Group_4__0 )* ) ) + // InternalAlloyLanguage.g:3281:1: ( ( rule__ALSRelationDefinition__Group_4__0 )* ) + { + // InternalAlloyLanguage.g:3281:1: ( ( rule__ALSRelationDefinition__Group_4__0 )* ) + // InternalAlloyLanguage.g:3282:1: ( rule__ALSRelationDefinition__Group_4__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRelationDefinitionAccess().getGroup_4()); + } + // InternalAlloyLanguage.g:3283:1: ( rule__ALSRelationDefinition__Group_4__0 )* + loop26: + do { + int alt26=2; + int LA26_0 = input.LA(1); + + if ( (LA26_0==35) ) { + alt26=1; + } + + + switch (alt26) { + case 1 : + // InternalAlloyLanguage.g:3283:2: rule__ALSRelationDefinition__Group_4__0 + { + pushFollow(FOLLOW_8); + rule__ALSRelationDefinition__Group_4__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop26; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRelationDefinitionAccess().getGroup_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group__4__Impl" + + + // $ANTLR start "rule__ALSRelationDefinition__Group__5" + // InternalAlloyLanguage.g:3293:1: rule__ALSRelationDefinition__Group__5 : rule__ALSRelationDefinition__Group__5__Impl rule__ALSRelationDefinition__Group__6 ; + public final void rule__ALSRelationDefinition__Group__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3297:1: ( rule__ALSRelationDefinition__Group__5__Impl rule__ALSRelationDefinition__Group__6 ) + // InternalAlloyLanguage.g:3298:2: rule__ALSRelationDefinition__Group__5__Impl rule__ALSRelationDefinition__Group__6 + { + pushFollow(FOLLOW_6); + rule__ALSRelationDefinition__Group__5__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRelationDefinition__Group__6(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group__5" + + + // $ANTLR start "rule__ALSRelationDefinition__Group__5__Impl" + // InternalAlloyLanguage.g:3305:1: rule__ALSRelationDefinition__Group__5__Impl : ( ']' ) ; + public final void rule__ALSRelationDefinition__Group__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3309:1: ( ( ']' ) ) + // InternalAlloyLanguage.g:3310:1: ( ']' ) + { + // InternalAlloyLanguage.g:3310:1: ( ']' ) + // InternalAlloyLanguage.g:3311:1: ']' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRelationDefinitionAccess().getRightSquareBracketKeyword_5()); + } + match(input,43,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRelationDefinitionAccess().getRightSquareBracketKeyword_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group__5__Impl" + + + // $ANTLR start "rule__ALSRelationDefinition__Group__6" + // InternalAlloyLanguage.g:3324:1: rule__ALSRelationDefinition__Group__6 : rule__ALSRelationDefinition__Group__6__Impl rule__ALSRelationDefinition__Group__7 ; + public final void rule__ALSRelationDefinition__Group__6() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3328:1: ( rule__ALSRelationDefinition__Group__6__Impl rule__ALSRelationDefinition__Group__7 ) + // InternalAlloyLanguage.g:3329:2: rule__ALSRelationDefinition__Group__6__Impl rule__ALSRelationDefinition__Group__7 + { + pushFollow(FOLLOW_16); + rule__ALSRelationDefinition__Group__6__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRelationDefinition__Group__7(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group__6" + + + // $ANTLR start "rule__ALSRelationDefinition__Group__6__Impl" + // InternalAlloyLanguage.g:3336:1: rule__ALSRelationDefinition__Group__6__Impl : ( '{' ) ; + public final void rule__ALSRelationDefinition__Group__6__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3340:1: ( ( '{' ) ) + // InternalAlloyLanguage.g:3341:1: ( '{' ) + { + // InternalAlloyLanguage.g:3341:1: ( '{' ) + // InternalAlloyLanguage.g:3342:1: '{' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRelationDefinitionAccess().getLeftCurlyBracketKeyword_6()); + } + match(input,33,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRelationDefinitionAccess().getLeftCurlyBracketKeyword_6()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group__6__Impl" + + + // $ANTLR start "rule__ALSRelationDefinition__Group__7" + // InternalAlloyLanguage.g:3355:1: rule__ALSRelationDefinition__Group__7 : rule__ALSRelationDefinition__Group__7__Impl rule__ALSRelationDefinition__Group__8 ; + public final void rule__ALSRelationDefinition__Group__7() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3359:1: ( rule__ALSRelationDefinition__Group__7__Impl rule__ALSRelationDefinition__Group__8 ) + // InternalAlloyLanguage.g:3360:2: rule__ALSRelationDefinition__Group__7__Impl rule__ALSRelationDefinition__Group__8 + { + pushFollow(FOLLOW_19); + rule__ALSRelationDefinition__Group__7__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRelationDefinition__Group__8(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group__7" + + + // $ANTLR start "rule__ALSRelationDefinition__Group__7__Impl" + // InternalAlloyLanguage.g:3367:1: rule__ALSRelationDefinition__Group__7__Impl : ( ( rule__ALSRelationDefinition__ValueAssignment_7 ) ) ; + public final void rule__ALSRelationDefinition__Group__7__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3371:1: ( ( ( rule__ALSRelationDefinition__ValueAssignment_7 ) ) ) + // InternalAlloyLanguage.g:3372:1: ( ( rule__ALSRelationDefinition__ValueAssignment_7 ) ) + { + // InternalAlloyLanguage.g:3372:1: ( ( rule__ALSRelationDefinition__ValueAssignment_7 ) ) + // InternalAlloyLanguage.g:3373:1: ( rule__ALSRelationDefinition__ValueAssignment_7 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRelationDefinitionAccess().getValueAssignment_7()); + } + // InternalAlloyLanguage.g:3374:1: ( rule__ALSRelationDefinition__ValueAssignment_7 ) + // InternalAlloyLanguage.g:3374:2: rule__ALSRelationDefinition__ValueAssignment_7 + { + pushFollow(FOLLOW_2); + rule__ALSRelationDefinition__ValueAssignment_7(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRelationDefinitionAccess().getValueAssignment_7()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group__7__Impl" + + + // $ANTLR start "rule__ALSRelationDefinition__Group__8" + // InternalAlloyLanguage.g:3384:1: rule__ALSRelationDefinition__Group__8 : rule__ALSRelationDefinition__Group__8__Impl ; + public final void rule__ALSRelationDefinition__Group__8() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3388:1: ( rule__ALSRelationDefinition__Group__8__Impl ) + // InternalAlloyLanguage.g:3389:2: rule__ALSRelationDefinition__Group__8__Impl + { + pushFollow(FOLLOW_2); + rule__ALSRelationDefinition__Group__8__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group__8" + + + // $ANTLR start "rule__ALSRelationDefinition__Group__8__Impl" + // InternalAlloyLanguage.g:3395:1: rule__ALSRelationDefinition__Group__8__Impl : ( '}' ) ; + public final void rule__ALSRelationDefinition__Group__8__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3399:1: ( ( '}' ) ) + // InternalAlloyLanguage.g:3400:1: ( '}' ) + { + // InternalAlloyLanguage.g:3400:1: ( '}' ) + // InternalAlloyLanguage.g:3401:1: '}' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRelationDefinitionAccess().getRightCurlyBracketKeyword_8()); + } + match(input,34,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRelationDefinitionAccess().getRightCurlyBracketKeyword_8()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group__8__Impl" + + + // $ANTLR start "rule__ALSRelationDefinition__Group_4__0" + // InternalAlloyLanguage.g:3432:1: rule__ALSRelationDefinition__Group_4__0 : rule__ALSRelationDefinition__Group_4__0__Impl rule__ALSRelationDefinition__Group_4__1 ; + public final void rule__ALSRelationDefinition__Group_4__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3436:1: ( rule__ALSRelationDefinition__Group_4__0__Impl rule__ALSRelationDefinition__Group_4__1 ) + // InternalAlloyLanguage.g:3437:2: rule__ALSRelationDefinition__Group_4__0__Impl rule__ALSRelationDefinition__Group_4__1 + { + pushFollow(FOLLOW_5); + rule__ALSRelationDefinition__Group_4__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRelationDefinition__Group_4__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group_4__0" + + + // $ANTLR start "rule__ALSRelationDefinition__Group_4__0__Impl" + // InternalAlloyLanguage.g:3444:1: rule__ALSRelationDefinition__Group_4__0__Impl : ( ',' ) ; + public final void rule__ALSRelationDefinition__Group_4__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3448:1: ( ( ',' ) ) + // InternalAlloyLanguage.g:3449:1: ( ',' ) + { + // InternalAlloyLanguage.g:3449:1: ( ',' ) + // InternalAlloyLanguage.g:3450:1: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRelationDefinitionAccess().getCommaKeyword_4_0()); + } + match(input,35,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRelationDefinitionAccess().getCommaKeyword_4_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group_4__0__Impl" + + + // $ANTLR start "rule__ALSRelationDefinition__Group_4__1" + // InternalAlloyLanguage.g:3463:1: rule__ALSRelationDefinition__Group_4__1 : rule__ALSRelationDefinition__Group_4__1__Impl ; + public final void rule__ALSRelationDefinition__Group_4__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3467:1: ( rule__ALSRelationDefinition__Group_4__1__Impl ) + // InternalAlloyLanguage.g:3468:2: rule__ALSRelationDefinition__Group_4__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSRelationDefinition__Group_4__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group_4__1" + + + // $ANTLR start "rule__ALSRelationDefinition__Group_4__1__Impl" + // InternalAlloyLanguage.g:3474:1: rule__ALSRelationDefinition__Group_4__1__Impl : ( ( rule__ALSRelationDefinition__VariablesAssignment_4_1 ) ) ; + public final void rule__ALSRelationDefinition__Group_4__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3478:1: ( ( ( rule__ALSRelationDefinition__VariablesAssignment_4_1 ) ) ) + // InternalAlloyLanguage.g:3479:1: ( ( rule__ALSRelationDefinition__VariablesAssignment_4_1 ) ) + { + // InternalAlloyLanguage.g:3479:1: ( ( rule__ALSRelationDefinition__VariablesAssignment_4_1 ) ) + // InternalAlloyLanguage.g:3480:1: ( rule__ALSRelationDefinition__VariablesAssignment_4_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRelationDefinitionAccess().getVariablesAssignment_4_1()); + } + // InternalAlloyLanguage.g:3481:1: ( rule__ALSRelationDefinition__VariablesAssignment_4_1 ) + // InternalAlloyLanguage.g:3481:2: rule__ALSRelationDefinition__VariablesAssignment_4_1 + { + pushFollow(FOLLOW_2); + rule__ALSRelationDefinition__VariablesAssignment_4_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRelationDefinitionAccess().getVariablesAssignment_4_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__Group_4__1__Impl" + + + // $ANTLR start "rule__ALSFactDeclaration__Group__0" + // InternalAlloyLanguage.g:3495:1: rule__ALSFactDeclaration__Group__0 : rule__ALSFactDeclaration__Group__0__Impl rule__ALSFactDeclaration__Group__1 ; + public final void rule__ALSFactDeclaration__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3499:1: ( rule__ALSFactDeclaration__Group__0__Impl rule__ALSFactDeclaration__Group__1 ) + // InternalAlloyLanguage.g:3500:2: rule__ALSFactDeclaration__Group__0__Impl rule__ALSFactDeclaration__Group__1 + { + pushFollow(FOLLOW_20); + rule__ALSFactDeclaration__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSFactDeclaration__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFactDeclaration__Group__0" + + + // $ANTLR start "rule__ALSFactDeclaration__Group__0__Impl" + // InternalAlloyLanguage.g:3507:1: rule__ALSFactDeclaration__Group__0__Impl : ( () ) ; + public final void rule__ALSFactDeclaration__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3511:1: ( ( () ) ) + // InternalAlloyLanguage.g:3512:1: ( () ) + { + // InternalAlloyLanguage.g:3512:1: ( () ) + // InternalAlloyLanguage.g:3513:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFactDeclarationAccess().getALSFactDeclarationAction_0()); + } + // InternalAlloyLanguage.g:3514:1: () + // InternalAlloyLanguage.g:3516:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFactDeclarationAccess().getALSFactDeclarationAction_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFactDeclaration__Group__0__Impl" + + + // $ANTLR start "rule__ALSFactDeclaration__Group__1" + // InternalAlloyLanguage.g:3526:1: rule__ALSFactDeclaration__Group__1 : rule__ALSFactDeclaration__Group__1__Impl rule__ALSFactDeclaration__Group__2 ; + public final void rule__ALSFactDeclaration__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3530:1: ( rule__ALSFactDeclaration__Group__1__Impl rule__ALSFactDeclaration__Group__2 ) + // InternalAlloyLanguage.g:3531:2: rule__ALSFactDeclaration__Group__1__Impl rule__ALSFactDeclaration__Group__2 + { + pushFollow(FOLLOW_21); + rule__ALSFactDeclaration__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSFactDeclaration__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFactDeclaration__Group__1" + + + // $ANTLR start "rule__ALSFactDeclaration__Group__1__Impl" + // InternalAlloyLanguage.g:3538:1: rule__ALSFactDeclaration__Group__1__Impl : ( 'fact' ) ; + public final void rule__ALSFactDeclaration__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3542:1: ( ( 'fact' ) ) + // InternalAlloyLanguage.g:3543:1: ( 'fact' ) + { + // InternalAlloyLanguage.g:3543:1: ( 'fact' ) + // InternalAlloyLanguage.g:3544:1: 'fact' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFactDeclarationAccess().getFactKeyword_1()); + } + match(input,45,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFactDeclarationAccess().getFactKeyword_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFactDeclaration__Group__1__Impl" + + + // $ANTLR start "rule__ALSFactDeclaration__Group__2" + // InternalAlloyLanguage.g:3557:1: rule__ALSFactDeclaration__Group__2 : rule__ALSFactDeclaration__Group__2__Impl rule__ALSFactDeclaration__Group__3 ; + public final void rule__ALSFactDeclaration__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3561:1: ( rule__ALSFactDeclaration__Group__2__Impl rule__ALSFactDeclaration__Group__3 ) + // InternalAlloyLanguage.g:3562:2: rule__ALSFactDeclaration__Group__2__Impl rule__ALSFactDeclaration__Group__3 + { + pushFollow(FOLLOW_21); + rule__ALSFactDeclaration__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSFactDeclaration__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFactDeclaration__Group__2" + + + // $ANTLR start "rule__ALSFactDeclaration__Group__2__Impl" + // InternalAlloyLanguage.g:3569:1: rule__ALSFactDeclaration__Group__2__Impl : ( ( rule__ALSFactDeclaration__NameAssignment_2 )? ) ; + public final void rule__ALSFactDeclaration__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3573:1: ( ( ( rule__ALSFactDeclaration__NameAssignment_2 )? ) ) + // InternalAlloyLanguage.g:3574:1: ( ( rule__ALSFactDeclaration__NameAssignment_2 )? ) + { + // InternalAlloyLanguage.g:3574:1: ( ( rule__ALSFactDeclaration__NameAssignment_2 )? ) + // InternalAlloyLanguage.g:3575:1: ( rule__ALSFactDeclaration__NameAssignment_2 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFactDeclarationAccess().getNameAssignment_2()); + } + // InternalAlloyLanguage.g:3576:1: ( rule__ALSFactDeclaration__NameAssignment_2 )? + int alt27=2; + int LA27_0 = input.LA(1); + + if ( (LA27_0==RULE_ID) ) { + alt27=1; + } + switch (alt27) { + case 1 : + // InternalAlloyLanguage.g:3576:2: rule__ALSFactDeclaration__NameAssignment_2 + { + pushFollow(FOLLOW_2); + rule__ALSFactDeclaration__NameAssignment_2(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFactDeclarationAccess().getNameAssignment_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFactDeclaration__Group__2__Impl" + + + // $ANTLR start "rule__ALSFactDeclaration__Group__3" + // InternalAlloyLanguage.g:3586:1: rule__ALSFactDeclaration__Group__3 : rule__ALSFactDeclaration__Group__3__Impl rule__ALSFactDeclaration__Group__4 ; + public final void rule__ALSFactDeclaration__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3590:1: ( rule__ALSFactDeclaration__Group__3__Impl rule__ALSFactDeclaration__Group__4 ) + // InternalAlloyLanguage.g:3591:2: rule__ALSFactDeclaration__Group__3__Impl rule__ALSFactDeclaration__Group__4 + { + pushFollow(FOLLOW_16); + rule__ALSFactDeclaration__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSFactDeclaration__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFactDeclaration__Group__3" + + + // $ANTLR start "rule__ALSFactDeclaration__Group__3__Impl" + // InternalAlloyLanguage.g:3598:1: rule__ALSFactDeclaration__Group__3__Impl : ( '{' ) ; + public final void rule__ALSFactDeclaration__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3602:1: ( ( '{' ) ) + // InternalAlloyLanguage.g:3603:1: ( '{' ) + { + // InternalAlloyLanguage.g:3603:1: ( '{' ) + // InternalAlloyLanguage.g:3604:1: '{' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFactDeclarationAccess().getLeftCurlyBracketKeyword_3()); + } + match(input,33,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFactDeclarationAccess().getLeftCurlyBracketKeyword_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFactDeclaration__Group__3__Impl" + + + // $ANTLR start "rule__ALSFactDeclaration__Group__4" + // InternalAlloyLanguage.g:3617:1: rule__ALSFactDeclaration__Group__4 : rule__ALSFactDeclaration__Group__4__Impl rule__ALSFactDeclaration__Group__5 ; + public final void rule__ALSFactDeclaration__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3621:1: ( rule__ALSFactDeclaration__Group__4__Impl rule__ALSFactDeclaration__Group__5 ) + // InternalAlloyLanguage.g:3622:2: rule__ALSFactDeclaration__Group__4__Impl rule__ALSFactDeclaration__Group__5 + { + pushFollow(FOLLOW_19); + rule__ALSFactDeclaration__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSFactDeclaration__Group__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFactDeclaration__Group__4" + + + // $ANTLR start "rule__ALSFactDeclaration__Group__4__Impl" + // InternalAlloyLanguage.g:3629:1: rule__ALSFactDeclaration__Group__4__Impl : ( ( rule__ALSFactDeclaration__TermAssignment_4 ) ) ; + public final void rule__ALSFactDeclaration__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3633:1: ( ( ( rule__ALSFactDeclaration__TermAssignment_4 ) ) ) + // InternalAlloyLanguage.g:3634:1: ( ( rule__ALSFactDeclaration__TermAssignment_4 ) ) + { + // InternalAlloyLanguage.g:3634:1: ( ( rule__ALSFactDeclaration__TermAssignment_4 ) ) + // InternalAlloyLanguage.g:3635:1: ( rule__ALSFactDeclaration__TermAssignment_4 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFactDeclarationAccess().getTermAssignment_4()); + } + // InternalAlloyLanguage.g:3636:1: ( rule__ALSFactDeclaration__TermAssignment_4 ) + // InternalAlloyLanguage.g:3636:2: rule__ALSFactDeclaration__TermAssignment_4 + { + pushFollow(FOLLOW_2); + rule__ALSFactDeclaration__TermAssignment_4(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFactDeclarationAccess().getTermAssignment_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFactDeclaration__Group__4__Impl" + + + // $ANTLR start "rule__ALSFactDeclaration__Group__5" + // InternalAlloyLanguage.g:3646:1: rule__ALSFactDeclaration__Group__5 : rule__ALSFactDeclaration__Group__5__Impl ; + public final void rule__ALSFactDeclaration__Group__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3650:1: ( rule__ALSFactDeclaration__Group__5__Impl ) + // InternalAlloyLanguage.g:3651:2: rule__ALSFactDeclaration__Group__5__Impl + { + pushFollow(FOLLOW_2); + rule__ALSFactDeclaration__Group__5__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFactDeclaration__Group__5" + + + // $ANTLR start "rule__ALSFactDeclaration__Group__5__Impl" + // InternalAlloyLanguage.g:3657:1: rule__ALSFactDeclaration__Group__5__Impl : ( '}' ) ; + public final void rule__ALSFactDeclaration__Group__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3661:1: ( ( '}' ) ) + // InternalAlloyLanguage.g:3662:1: ( '}' ) + { + // InternalAlloyLanguage.g:3662:1: ( '}' ) + // InternalAlloyLanguage.g:3663:1: '}' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFactDeclarationAccess().getRightCurlyBracketKeyword_5()); + } + match(input,34,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFactDeclarationAccess().getRightCurlyBracketKeyword_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFactDeclaration__Group__5__Impl" + + + // $ANTLR start "rule__ALSQuantified__Group_0__0" + // InternalAlloyLanguage.g:3688:1: rule__ALSQuantified__Group_0__0 : rule__ALSQuantified__Group_0__0__Impl rule__ALSQuantified__Group_0__1 ; + public final void rule__ALSQuantified__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3692:1: ( rule__ALSQuantified__Group_0__0__Impl rule__ALSQuantified__Group_0__1 ) + // InternalAlloyLanguage.g:3693:2: rule__ALSQuantified__Group_0__0__Impl rule__ALSQuantified__Group_0__1 + { + pushFollow(FOLLOW_22); + rule__ALSQuantified__Group_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSQuantified__Group_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Group_0__0" + + + // $ANTLR start "rule__ALSQuantified__Group_0__0__Impl" + // InternalAlloyLanguage.g:3700:1: rule__ALSQuantified__Group_0__0__Impl : ( () ) ; + public final void rule__ALSQuantified__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3704:1: ( ( () ) ) + // InternalAlloyLanguage.g:3705:1: ( () ) + { + // InternalAlloyLanguage.g:3705:1: ( () ) + // InternalAlloyLanguage.g:3706:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSQuantifiedAccess().getALSQuantifiedExAction_0_0()); + } + // InternalAlloyLanguage.g:3707:1: () + // InternalAlloyLanguage.g:3709:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSQuantifiedAccess().getALSQuantifiedExAction_0_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Group_0__0__Impl" + + + // $ANTLR start "rule__ALSQuantified__Group_0__1" + // InternalAlloyLanguage.g:3719:1: rule__ALSQuantified__Group_0__1 : rule__ALSQuantified__Group_0__1__Impl rule__ALSQuantified__Group_0__2 ; + public final void rule__ALSQuantified__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3723:1: ( rule__ALSQuantified__Group_0__1__Impl rule__ALSQuantified__Group_0__2 ) + // InternalAlloyLanguage.g:3724:2: rule__ALSQuantified__Group_0__1__Impl rule__ALSQuantified__Group_0__2 + { + pushFollow(FOLLOW_23); + rule__ALSQuantified__Group_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSQuantified__Group_0__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Group_0__1" + + + // $ANTLR start "rule__ALSQuantified__Group_0__1__Impl" + // InternalAlloyLanguage.g:3731:1: rule__ALSQuantified__Group_0__1__Impl : ( ( rule__ALSQuantified__TypeAssignment_0_1 ) ) ; + public final void rule__ALSQuantified__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3735:1: ( ( ( rule__ALSQuantified__TypeAssignment_0_1 ) ) ) + // InternalAlloyLanguage.g:3736:1: ( ( rule__ALSQuantified__TypeAssignment_0_1 ) ) + { + // InternalAlloyLanguage.g:3736:1: ( ( rule__ALSQuantified__TypeAssignment_0_1 ) ) + // InternalAlloyLanguage.g:3737:1: ( rule__ALSQuantified__TypeAssignment_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSQuantifiedAccess().getTypeAssignment_0_1()); + } + // InternalAlloyLanguage.g:3738:1: ( rule__ALSQuantified__TypeAssignment_0_1 ) + // InternalAlloyLanguage.g:3738:2: rule__ALSQuantified__TypeAssignment_0_1 + { + pushFollow(FOLLOW_2); + rule__ALSQuantified__TypeAssignment_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSQuantifiedAccess().getTypeAssignment_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Group_0__1__Impl" + + + // $ANTLR start "rule__ALSQuantified__Group_0__2" + // InternalAlloyLanguage.g:3748:1: rule__ALSQuantified__Group_0__2 : rule__ALSQuantified__Group_0__2__Impl rule__ALSQuantified__Group_0__3 ; + public final void rule__ALSQuantified__Group_0__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3752:1: ( rule__ALSQuantified__Group_0__2__Impl rule__ALSQuantified__Group_0__3 ) + // InternalAlloyLanguage.g:3753:2: rule__ALSQuantified__Group_0__2__Impl rule__ALSQuantified__Group_0__3 + { + pushFollow(FOLLOW_23); + rule__ALSQuantified__Group_0__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSQuantified__Group_0__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Group_0__2" + + + // $ANTLR start "rule__ALSQuantified__Group_0__2__Impl" + // InternalAlloyLanguage.g:3760:1: rule__ALSQuantified__Group_0__2__Impl : ( ( rule__ALSQuantified__DisjAssignment_0_2 )? ) ; + public final void rule__ALSQuantified__Group_0__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3764:1: ( ( ( rule__ALSQuantified__DisjAssignment_0_2 )? ) ) + // InternalAlloyLanguage.g:3765:1: ( ( rule__ALSQuantified__DisjAssignment_0_2 )? ) + { + // InternalAlloyLanguage.g:3765:1: ( ( rule__ALSQuantified__DisjAssignment_0_2 )? ) + // InternalAlloyLanguage.g:3766:1: ( rule__ALSQuantified__DisjAssignment_0_2 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSQuantifiedAccess().getDisjAssignment_0_2()); + } + // InternalAlloyLanguage.g:3767:1: ( rule__ALSQuantified__DisjAssignment_0_2 )? + int alt28=2; + int LA28_0 = input.LA(1); + + if ( (LA28_0==76) ) { + alt28=1; + } + switch (alt28) { + case 1 : + // InternalAlloyLanguage.g:3767:2: rule__ALSQuantified__DisjAssignment_0_2 + { + pushFollow(FOLLOW_2); + rule__ALSQuantified__DisjAssignment_0_2(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSQuantifiedAccess().getDisjAssignment_0_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Group_0__2__Impl" + + + // $ANTLR start "rule__ALSQuantified__Group_0__3" + // InternalAlloyLanguage.g:3777:1: rule__ALSQuantified__Group_0__3 : rule__ALSQuantified__Group_0__3__Impl rule__ALSQuantified__Group_0__4 ; + public final void rule__ALSQuantified__Group_0__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3781:1: ( rule__ALSQuantified__Group_0__3__Impl rule__ALSQuantified__Group_0__4 ) + // InternalAlloyLanguage.g:3782:2: rule__ALSQuantified__Group_0__3__Impl rule__ALSQuantified__Group_0__4 + { + pushFollow(FOLLOW_24); + rule__ALSQuantified__Group_0__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSQuantified__Group_0__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Group_0__3" + + + // $ANTLR start "rule__ALSQuantified__Group_0__3__Impl" + // InternalAlloyLanguage.g:3789:1: rule__ALSQuantified__Group_0__3__Impl : ( ( rule__ALSQuantified__VariablesAssignment_0_3 ) ) ; + public final void rule__ALSQuantified__Group_0__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3793:1: ( ( ( rule__ALSQuantified__VariablesAssignment_0_3 ) ) ) + // InternalAlloyLanguage.g:3794:1: ( ( rule__ALSQuantified__VariablesAssignment_0_3 ) ) + { + // InternalAlloyLanguage.g:3794:1: ( ( rule__ALSQuantified__VariablesAssignment_0_3 ) ) + // InternalAlloyLanguage.g:3795:1: ( rule__ALSQuantified__VariablesAssignment_0_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSQuantifiedAccess().getVariablesAssignment_0_3()); + } + // InternalAlloyLanguage.g:3796:1: ( rule__ALSQuantified__VariablesAssignment_0_3 ) + // InternalAlloyLanguage.g:3796:2: rule__ALSQuantified__VariablesAssignment_0_3 + { + pushFollow(FOLLOW_2); + rule__ALSQuantified__VariablesAssignment_0_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSQuantifiedAccess().getVariablesAssignment_0_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Group_0__3__Impl" + + + // $ANTLR start "rule__ALSQuantified__Group_0__4" + // InternalAlloyLanguage.g:3806:1: rule__ALSQuantified__Group_0__4 : rule__ALSQuantified__Group_0__4__Impl rule__ALSQuantified__Group_0__5 ; + public final void rule__ALSQuantified__Group_0__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3810:1: ( rule__ALSQuantified__Group_0__4__Impl rule__ALSQuantified__Group_0__5 ) + // InternalAlloyLanguage.g:3811:2: rule__ALSQuantified__Group_0__4__Impl rule__ALSQuantified__Group_0__5 + { + pushFollow(FOLLOW_24); + rule__ALSQuantified__Group_0__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSQuantified__Group_0__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Group_0__4" + + + // $ANTLR start "rule__ALSQuantified__Group_0__4__Impl" + // InternalAlloyLanguage.g:3818:1: rule__ALSQuantified__Group_0__4__Impl : ( ( rule__ALSQuantified__Group_0_4__0 )* ) ; + public final void rule__ALSQuantified__Group_0__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3822:1: ( ( ( rule__ALSQuantified__Group_0_4__0 )* ) ) + // InternalAlloyLanguage.g:3823:1: ( ( rule__ALSQuantified__Group_0_4__0 )* ) + { + // InternalAlloyLanguage.g:3823:1: ( ( rule__ALSQuantified__Group_0_4__0 )* ) + // InternalAlloyLanguage.g:3824:1: ( rule__ALSQuantified__Group_0_4__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSQuantifiedAccess().getGroup_0_4()); + } + // InternalAlloyLanguage.g:3825:1: ( rule__ALSQuantified__Group_0_4__0 )* + loop29: + do { + int alt29=2; + int LA29_0 = input.LA(1); + + if ( (LA29_0==35) ) { + alt29=1; + } + + + switch (alt29) { + case 1 : + // InternalAlloyLanguage.g:3825:2: rule__ALSQuantified__Group_0_4__0 + { + pushFollow(FOLLOW_8); + rule__ALSQuantified__Group_0_4__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop29; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSQuantifiedAccess().getGroup_0_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Group_0__4__Impl" + + + // $ANTLR start "rule__ALSQuantified__Group_0__5" + // InternalAlloyLanguage.g:3835:1: rule__ALSQuantified__Group_0__5 : rule__ALSQuantified__Group_0__5__Impl rule__ALSQuantified__Group_0__6 ; + public final void rule__ALSQuantified__Group_0__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3839:1: ( rule__ALSQuantified__Group_0__5__Impl rule__ALSQuantified__Group_0__6 ) + // InternalAlloyLanguage.g:3840:2: rule__ALSQuantified__Group_0__5__Impl rule__ALSQuantified__Group_0__6 + { + pushFollow(FOLLOW_16); + rule__ALSQuantified__Group_0__5__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSQuantified__Group_0__6(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Group_0__5" + + + // $ANTLR start "rule__ALSQuantified__Group_0__5__Impl" + // InternalAlloyLanguage.g:3847:1: rule__ALSQuantified__Group_0__5__Impl : ( '{' ) ; + public final void rule__ALSQuantified__Group_0__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3851:1: ( ( '{' ) ) + // InternalAlloyLanguage.g:3852:1: ( '{' ) + { + // InternalAlloyLanguage.g:3852:1: ( '{' ) + // InternalAlloyLanguage.g:3853:1: '{' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSQuantifiedAccess().getLeftCurlyBracketKeyword_0_5()); + } + match(input,33,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSQuantifiedAccess().getLeftCurlyBracketKeyword_0_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Group_0__5__Impl" + + + // $ANTLR start "rule__ALSQuantified__Group_0__6" + // InternalAlloyLanguage.g:3866:1: rule__ALSQuantified__Group_0__6 : rule__ALSQuantified__Group_0__6__Impl rule__ALSQuantified__Group_0__7 ; + public final void rule__ALSQuantified__Group_0__6() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3870:1: ( rule__ALSQuantified__Group_0__6__Impl rule__ALSQuantified__Group_0__7 ) + // InternalAlloyLanguage.g:3871:2: rule__ALSQuantified__Group_0__6__Impl rule__ALSQuantified__Group_0__7 + { + pushFollow(FOLLOW_19); + rule__ALSQuantified__Group_0__6__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSQuantified__Group_0__7(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Group_0__6" + + + // $ANTLR start "rule__ALSQuantified__Group_0__6__Impl" + // InternalAlloyLanguage.g:3878:1: rule__ALSQuantified__Group_0__6__Impl : ( ( rule__ALSQuantified__ExpressionAssignment_0_6 ) ) ; + public final void rule__ALSQuantified__Group_0__6__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3882:1: ( ( ( rule__ALSQuantified__ExpressionAssignment_0_6 ) ) ) + // InternalAlloyLanguage.g:3883:1: ( ( rule__ALSQuantified__ExpressionAssignment_0_6 ) ) + { + // InternalAlloyLanguage.g:3883:1: ( ( rule__ALSQuantified__ExpressionAssignment_0_6 ) ) + // InternalAlloyLanguage.g:3884:1: ( rule__ALSQuantified__ExpressionAssignment_0_6 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSQuantifiedAccess().getExpressionAssignment_0_6()); + } + // InternalAlloyLanguage.g:3885:1: ( rule__ALSQuantified__ExpressionAssignment_0_6 ) + // InternalAlloyLanguage.g:3885:2: rule__ALSQuantified__ExpressionAssignment_0_6 + { + pushFollow(FOLLOW_2); + rule__ALSQuantified__ExpressionAssignment_0_6(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSQuantifiedAccess().getExpressionAssignment_0_6()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Group_0__6__Impl" + + + // $ANTLR start "rule__ALSQuantified__Group_0__7" + // InternalAlloyLanguage.g:3895:1: rule__ALSQuantified__Group_0__7 : rule__ALSQuantified__Group_0__7__Impl ; + public final void rule__ALSQuantified__Group_0__7() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3899:1: ( rule__ALSQuantified__Group_0__7__Impl ) + // InternalAlloyLanguage.g:3900:2: rule__ALSQuantified__Group_0__7__Impl + { + pushFollow(FOLLOW_2); + rule__ALSQuantified__Group_0__7__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Group_0__7" + + + // $ANTLR start "rule__ALSQuantified__Group_0__7__Impl" + // InternalAlloyLanguage.g:3906:1: rule__ALSQuantified__Group_0__7__Impl : ( '}' ) ; + public final void rule__ALSQuantified__Group_0__7__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3910:1: ( ( '}' ) ) + // InternalAlloyLanguage.g:3911:1: ( '}' ) + { + // InternalAlloyLanguage.g:3911:1: ( '}' ) + // InternalAlloyLanguage.g:3912:1: '}' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSQuantifiedAccess().getRightCurlyBracketKeyword_0_7()); + } + match(input,34,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSQuantifiedAccess().getRightCurlyBracketKeyword_0_7()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Group_0__7__Impl" + + + // $ANTLR start "rule__ALSQuantified__Group_0_4__0" + // InternalAlloyLanguage.g:3941:1: rule__ALSQuantified__Group_0_4__0 : rule__ALSQuantified__Group_0_4__0__Impl rule__ALSQuantified__Group_0_4__1 ; + public final void rule__ALSQuantified__Group_0_4__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3945:1: ( rule__ALSQuantified__Group_0_4__0__Impl rule__ALSQuantified__Group_0_4__1 ) + // InternalAlloyLanguage.g:3946:2: rule__ALSQuantified__Group_0_4__0__Impl rule__ALSQuantified__Group_0_4__1 + { + pushFollow(FOLLOW_5); + rule__ALSQuantified__Group_0_4__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSQuantified__Group_0_4__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Group_0_4__0" + + + // $ANTLR start "rule__ALSQuantified__Group_0_4__0__Impl" + // InternalAlloyLanguage.g:3953:1: rule__ALSQuantified__Group_0_4__0__Impl : ( ',' ) ; + public final void rule__ALSQuantified__Group_0_4__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3957:1: ( ( ',' ) ) + // InternalAlloyLanguage.g:3958:1: ( ',' ) + { + // InternalAlloyLanguage.g:3958:1: ( ',' ) + // InternalAlloyLanguage.g:3959:1: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSQuantifiedAccess().getCommaKeyword_0_4_0()); + } + match(input,35,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSQuantifiedAccess().getCommaKeyword_0_4_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Group_0_4__0__Impl" + + + // $ANTLR start "rule__ALSQuantified__Group_0_4__1" + // InternalAlloyLanguage.g:3972:1: rule__ALSQuantified__Group_0_4__1 : rule__ALSQuantified__Group_0_4__1__Impl ; + public final void rule__ALSQuantified__Group_0_4__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3976:1: ( rule__ALSQuantified__Group_0_4__1__Impl ) + // InternalAlloyLanguage.g:3977:2: rule__ALSQuantified__Group_0_4__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSQuantified__Group_0_4__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Group_0_4__1" + + + // $ANTLR start "rule__ALSQuantified__Group_0_4__1__Impl" + // InternalAlloyLanguage.g:3983:1: rule__ALSQuantified__Group_0_4__1__Impl : ( ( rule__ALSQuantified__VariablesAssignment_0_4_1 ) ) ; + public final void rule__ALSQuantified__Group_0_4__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:3987:1: ( ( ( rule__ALSQuantified__VariablesAssignment_0_4_1 ) ) ) + // InternalAlloyLanguage.g:3988:1: ( ( rule__ALSQuantified__VariablesAssignment_0_4_1 ) ) + { + // InternalAlloyLanguage.g:3988:1: ( ( rule__ALSQuantified__VariablesAssignment_0_4_1 ) ) + // InternalAlloyLanguage.g:3989:1: ( rule__ALSQuantified__VariablesAssignment_0_4_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSQuantifiedAccess().getVariablesAssignment_0_4_1()); + } + // InternalAlloyLanguage.g:3990:1: ( rule__ALSQuantified__VariablesAssignment_0_4_1 ) + // InternalAlloyLanguage.g:3990:2: rule__ALSQuantified__VariablesAssignment_0_4_1 + { + pushFollow(FOLLOW_2); + rule__ALSQuantified__VariablesAssignment_0_4_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSQuantifiedAccess().getVariablesAssignment_0_4_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__Group_0_4__1__Impl" + + + // $ANTLR start "rule__ALSOr__Group__0" + // InternalAlloyLanguage.g:4004:1: rule__ALSOr__Group__0 : rule__ALSOr__Group__0__Impl rule__ALSOr__Group__1 ; + public final void rule__ALSOr__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4008:1: ( rule__ALSOr__Group__0__Impl rule__ALSOr__Group__1 ) + // InternalAlloyLanguage.g:4009:2: rule__ALSOr__Group__0__Impl rule__ALSOr__Group__1 + { + pushFollow(FOLLOW_25); + rule__ALSOr__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSOr__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOr__Group__0" + + + // $ANTLR start "rule__ALSOr__Group__0__Impl" + // InternalAlloyLanguage.g:4016:1: rule__ALSOr__Group__0__Impl : ( ruleALSIff ) ; + public final void rule__ALSOr__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4020:1: ( ( ruleALSIff ) ) + // InternalAlloyLanguage.g:4021:1: ( ruleALSIff ) + { + // InternalAlloyLanguage.g:4021:1: ( ruleALSIff ) + // InternalAlloyLanguage.g:4022:1: ruleALSIff + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSOrAccess().getALSIffParserRuleCall_0()); + } + pushFollow(FOLLOW_2); + ruleALSIff(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSOrAccess().getALSIffParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOr__Group__0__Impl" + + + // $ANTLR start "rule__ALSOr__Group__1" + // InternalAlloyLanguage.g:4033:1: rule__ALSOr__Group__1 : rule__ALSOr__Group__1__Impl ; + public final void rule__ALSOr__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4037:1: ( rule__ALSOr__Group__1__Impl ) + // InternalAlloyLanguage.g:4038:2: rule__ALSOr__Group__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSOr__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOr__Group__1" + + + // $ANTLR start "rule__ALSOr__Group__1__Impl" + // InternalAlloyLanguage.g:4044:1: rule__ALSOr__Group__1__Impl : ( ( rule__ALSOr__Group_1__0 )? ) ; + public final void rule__ALSOr__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4048:1: ( ( ( rule__ALSOr__Group_1__0 )? ) ) + // InternalAlloyLanguage.g:4049:1: ( ( rule__ALSOr__Group_1__0 )? ) + { + // InternalAlloyLanguage.g:4049:1: ( ( rule__ALSOr__Group_1__0 )? ) + // InternalAlloyLanguage.g:4050:1: ( rule__ALSOr__Group_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSOrAccess().getGroup_1()); + } + // InternalAlloyLanguage.g:4051:1: ( rule__ALSOr__Group_1__0 )? + int alt30=2; + int LA30_0 = input.LA(1); + + if ( ((LA30_0>=11 && LA30_0<=12)) ) { + alt30=1; + } + switch (alt30) { + case 1 : + // InternalAlloyLanguage.g:4051:2: rule__ALSOr__Group_1__0 + { + pushFollow(FOLLOW_2); + rule__ALSOr__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSOrAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOr__Group__1__Impl" + + + // $ANTLR start "rule__ALSOr__Group_1__0" + // InternalAlloyLanguage.g:4065:1: rule__ALSOr__Group_1__0 : rule__ALSOr__Group_1__0__Impl rule__ALSOr__Group_1__1 ; + public final void rule__ALSOr__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4069:1: ( rule__ALSOr__Group_1__0__Impl rule__ALSOr__Group_1__1 ) + // InternalAlloyLanguage.g:4070:2: rule__ALSOr__Group_1__0__Impl rule__ALSOr__Group_1__1 + { + pushFollow(FOLLOW_25); + rule__ALSOr__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSOr__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOr__Group_1__0" + + + // $ANTLR start "rule__ALSOr__Group_1__0__Impl" + // InternalAlloyLanguage.g:4077:1: rule__ALSOr__Group_1__0__Impl : ( () ) ; + public final void rule__ALSOr__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4081:1: ( ( () ) ) + // InternalAlloyLanguage.g:4082:1: ( () ) + { + // InternalAlloyLanguage.g:4082:1: ( () ) + // InternalAlloyLanguage.g:4083:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSOrAccess().getALSOrLeftOperandAction_1_0()); + } + // InternalAlloyLanguage.g:4084:1: () + // InternalAlloyLanguage.g:4086:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSOrAccess().getALSOrLeftOperandAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOr__Group_1__0__Impl" + + + // $ANTLR start "rule__ALSOr__Group_1__1" + // InternalAlloyLanguage.g:4096:1: rule__ALSOr__Group_1__1 : rule__ALSOr__Group_1__1__Impl rule__ALSOr__Group_1__2 ; + public final void rule__ALSOr__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4100:1: ( rule__ALSOr__Group_1__1__Impl rule__ALSOr__Group_1__2 ) + // InternalAlloyLanguage.g:4101:2: rule__ALSOr__Group_1__1__Impl rule__ALSOr__Group_1__2 + { + pushFollow(FOLLOW_16); + rule__ALSOr__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSOr__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOr__Group_1__1" + + + // $ANTLR start "rule__ALSOr__Group_1__1__Impl" + // InternalAlloyLanguage.g:4108:1: rule__ALSOr__Group_1__1__Impl : ( ( rule__ALSOr__Alternatives_1_1 ) ) ; + public final void rule__ALSOr__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4112:1: ( ( ( rule__ALSOr__Alternatives_1_1 ) ) ) + // InternalAlloyLanguage.g:4113:1: ( ( rule__ALSOr__Alternatives_1_1 ) ) + { + // InternalAlloyLanguage.g:4113:1: ( ( rule__ALSOr__Alternatives_1_1 ) ) + // InternalAlloyLanguage.g:4114:1: ( rule__ALSOr__Alternatives_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSOrAccess().getAlternatives_1_1()); + } + // InternalAlloyLanguage.g:4115:1: ( rule__ALSOr__Alternatives_1_1 ) + // InternalAlloyLanguage.g:4115:2: rule__ALSOr__Alternatives_1_1 + { + pushFollow(FOLLOW_2); + rule__ALSOr__Alternatives_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSOrAccess().getAlternatives_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOr__Group_1__1__Impl" + + + // $ANTLR start "rule__ALSOr__Group_1__2" + // InternalAlloyLanguage.g:4125:1: rule__ALSOr__Group_1__2 : rule__ALSOr__Group_1__2__Impl ; + public final void rule__ALSOr__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4129:1: ( rule__ALSOr__Group_1__2__Impl ) + // InternalAlloyLanguage.g:4130:2: rule__ALSOr__Group_1__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSOr__Group_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOr__Group_1__2" + + + // $ANTLR start "rule__ALSOr__Group_1__2__Impl" + // InternalAlloyLanguage.g:4136:1: rule__ALSOr__Group_1__2__Impl : ( ( rule__ALSOr__RightOperandAssignment_1_2 ) ) ; + public final void rule__ALSOr__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4140:1: ( ( ( rule__ALSOr__RightOperandAssignment_1_2 ) ) ) + // InternalAlloyLanguage.g:4141:1: ( ( rule__ALSOr__RightOperandAssignment_1_2 ) ) + { + // InternalAlloyLanguage.g:4141:1: ( ( rule__ALSOr__RightOperandAssignment_1_2 ) ) + // InternalAlloyLanguage.g:4142:1: ( rule__ALSOr__RightOperandAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSOrAccess().getRightOperandAssignment_1_2()); + } + // InternalAlloyLanguage.g:4143:1: ( rule__ALSOr__RightOperandAssignment_1_2 ) + // InternalAlloyLanguage.g:4143:2: rule__ALSOr__RightOperandAssignment_1_2 + { + pushFollow(FOLLOW_2); + rule__ALSOr__RightOperandAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSOrAccess().getRightOperandAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOr__Group_1__2__Impl" + + + // $ANTLR start "rule__ALSIff__Group__0" + // InternalAlloyLanguage.g:4159:1: rule__ALSIff__Group__0 : rule__ALSIff__Group__0__Impl rule__ALSIff__Group__1 ; + public final void rule__ALSIff__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4163:1: ( rule__ALSIff__Group__0__Impl rule__ALSIff__Group__1 ) + // InternalAlloyLanguage.g:4164:2: rule__ALSIff__Group__0__Impl rule__ALSIff__Group__1 + { + pushFollow(FOLLOW_26); + rule__ALSIff__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSIff__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIff__Group__0" + + + // $ANTLR start "rule__ALSIff__Group__0__Impl" + // InternalAlloyLanguage.g:4171:1: rule__ALSIff__Group__0__Impl : ( ruleALSImpl ) ; + public final void rule__ALSIff__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4175:1: ( ( ruleALSImpl ) ) + // InternalAlloyLanguage.g:4176:1: ( ruleALSImpl ) + { + // InternalAlloyLanguage.g:4176:1: ( ruleALSImpl ) + // InternalAlloyLanguage.g:4177:1: ruleALSImpl + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIffAccess().getALSImplParserRuleCall_0()); + } + pushFollow(FOLLOW_2); + ruleALSImpl(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIffAccess().getALSImplParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIff__Group__0__Impl" + + + // $ANTLR start "rule__ALSIff__Group__1" + // InternalAlloyLanguage.g:4188:1: rule__ALSIff__Group__1 : rule__ALSIff__Group__1__Impl ; + public final void rule__ALSIff__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4192:1: ( rule__ALSIff__Group__1__Impl ) + // InternalAlloyLanguage.g:4193:2: rule__ALSIff__Group__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSIff__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIff__Group__1" + + + // $ANTLR start "rule__ALSIff__Group__1__Impl" + // InternalAlloyLanguage.g:4199:1: rule__ALSIff__Group__1__Impl : ( ( rule__ALSIff__Group_1__0 )? ) ; + public final void rule__ALSIff__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4203:1: ( ( ( rule__ALSIff__Group_1__0 )? ) ) + // InternalAlloyLanguage.g:4204:1: ( ( rule__ALSIff__Group_1__0 )? ) + { + // InternalAlloyLanguage.g:4204:1: ( ( rule__ALSIff__Group_1__0 )? ) + // InternalAlloyLanguage.g:4205:1: ( rule__ALSIff__Group_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIffAccess().getGroup_1()); + } + // InternalAlloyLanguage.g:4206:1: ( rule__ALSIff__Group_1__0 )? + int alt31=2; + int LA31_0 = input.LA(1); + + if ( ((LA31_0>=13 && LA31_0<=14)) ) { + alt31=1; + } + switch (alt31) { + case 1 : + // InternalAlloyLanguage.g:4206:2: rule__ALSIff__Group_1__0 + { + pushFollow(FOLLOW_2); + rule__ALSIff__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIffAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIff__Group__1__Impl" + + + // $ANTLR start "rule__ALSIff__Group_1__0" + // InternalAlloyLanguage.g:4220:1: rule__ALSIff__Group_1__0 : rule__ALSIff__Group_1__0__Impl rule__ALSIff__Group_1__1 ; + public final void rule__ALSIff__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4224:1: ( rule__ALSIff__Group_1__0__Impl rule__ALSIff__Group_1__1 ) + // InternalAlloyLanguage.g:4225:2: rule__ALSIff__Group_1__0__Impl rule__ALSIff__Group_1__1 + { + pushFollow(FOLLOW_26); + rule__ALSIff__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSIff__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIff__Group_1__0" + + + // $ANTLR start "rule__ALSIff__Group_1__0__Impl" + // InternalAlloyLanguage.g:4232:1: rule__ALSIff__Group_1__0__Impl : ( () ) ; + public final void rule__ALSIff__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4236:1: ( ( () ) ) + // InternalAlloyLanguage.g:4237:1: ( () ) + { + // InternalAlloyLanguage.g:4237:1: ( () ) + // InternalAlloyLanguage.g:4238:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIffAccess().getALSIffLeftOperandAction_1_0()); + } + // InternalAlloyLanguage.g:4239:1: () + // InternalAlloyLanguage.g:4241:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIffAccess().getALSIffLeftOperandAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIff__Group_1__0__Impl" + + + // $ANTLR start "rule__ALSIff__Group_1__1" + // InternalAlloyLanguage.g:4251:1: rule__ALSIff__Group_1__1 : rule__ALSIff__Group_1__1__Impl rule__ALSIff__Group_1__2 ; + public final void rule__ALSIff__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4255:1: ( rule__ALSIff__Group_1__1__Impl rule__ALSIff__Group_1__2 ) + // InternalAlloyLanguage.g:4256:2: rule__ALSIff__Group_1__1__Impl rule__ALSIff__Group_1__2 + { + pushFollow(FOLLOW_16); + rule__ALSIff__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSIff__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIff__Group_1__1" + + + // $ANTLR start "rule__ALSIff__Group_1__1__Impl" + // InternalAlloyLanguage.g:4263:1: rule__ALSIff__Group_1__1__Impl : ( ( rule__ALSIff__Alternatives_1_1 ) ) ; + public final void rule__ALSIff__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4267:1: ( ( ( rule__ALSIff__Alternatives_1_1 ) ) ) + // InternalAlloyLanguage.g:4268:1: ( ( rule__ALSIff__Alternatives_1_1 ) ) + { + // InternalAlloyLanguage.g:4268:1: ( ( rule__ALSIff__Alternatives_1_1 ) ) + // InternalAlloyLanguage.g:4269:1: ( rule__ALSIff__Alternatives_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIffAccess().getAlternatives_1_1()); + } + // InternalAlloyLanguage.g:4270:1: ( rule__ALSIff__Alternatives_1_1 ) + // InternalAlloyLanguage.g:4270:2: rule__ALSIff__Alternatives_1_1 + { + pushFollow(FOLLOW_2); + rule__ALSIff__Alternatives_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIffAccess().getAlternatives_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIff__Group_1__1__Impl" + + + // $ANTLR start "rule__ALSIff__Group_1__2" + // InternalAlloyLanguage.g:4280:1: rule__ALSIff__Group_1__2 : rule__ALSIff__Group_1__2__Impl ; + public final void rule__ALSIff__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4284:1: ( rule__ALSIff__Group_1__2__Impl ) + // InternalAlloyLanguage.g:4285:2: rule__ALSIff__Group_1__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSIff__Group_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIff__Group_1__2" + + + // $ANTLR start "rule__ALSIff__Group_1__2__Impl" + // InternalAlloyLanguage.g:4291:1: rule__ALSIff__Group_1__2__Impl : ( ( rule__ALSIff__RightOperandAssignment_1_2 ) ) ; + public final void rule__ALSIff__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4295:1: ( ( ( rule__ALSIff__RightOperandAssignment_1_2 ) ) ) + // InternalAlloyLanguage.g:4296:1: ( ( rule__ALSIff__RightOperandAssignment_1_2 ) ) + { + // InternalAlloyLanguage.g:4296:1: ( ( rule__ALSIff__RightOperandAssignment_1_2 ) ) + // InternalAlloyLanguage.g:4297:1: ( rule__ALSIff__RightOperandAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIffAccess().getRightOperandAssignment_1_2()); + } + // InternalAlloyLanguage.g:4298:1: ( rule__ALSIff__RightOperandAssignment_1_2 ) + // InternalAlloyLanguage.g:4298:2: rule__ALSIff__RightOperandAssignment_1_2 + { + pushFollow(FOLLOW_2); + rule__ALSIff__RightOperandAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIffAccess().getRightOperandAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIff__Group_1__2__Impl" + + + // $ANTLR start "rule__ALSImpl__Group__0" + // InternalAlloyLanguage.g:4314:1: rule__ALSImpl__Group__0 : rule__ALSImpl__Group__0__Impl rule__ALSImpl__Group__1 ; + public final void rule__ALSImpl__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4318:1: ( rule__ALSImpl__Group__0__Impl rule__ALSImpl__Group__1 ) + // InternalAlloyLanguage.g:4319:2: rule__ALSImpl__Group__0__Impl rule__ALSImpl__Group__1 + { + pushFollow(FOLLOW_27); + rule__ALSImpl__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSImpl__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSImpl__Group__0" + + + // $ANTLR start "rule__ALSImpl__Group__0__Impl" + // InternalAlloyLanguage.g:4326:1: rule__ALSImpl__Group__0__Impl : ( ruleALSAnd ) ; + public final void rule__ALSImpl__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4330:1: ( ( ruleALSAnd ) ) + // InternalAlloyLanguage.g:4331:1: ( ruleALSAnd ) + { + // InternalAlloyLanguage.g:4331:1: ( ruleALSAnd ) + // InternalAlloyLanguage.g:4332:1: ruleALSAnd + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSImplAccess().getALSAndParserRuleCall_0()); + } + pushFollow(FOLLOW_2); + ruleALSAnd(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSImplAccess().getALSAndParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSImpl__Group__0__Impl" + + + // $ANTLR start "rule__ALSImpl__Group__1" + // InternalAlloyLanguage.g:4343:1: rule__ALSImpl__Group__1 : rule__ALSImpl__Group__1__Impl ; + public final void rule__ALSImpl__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4347:1: ( rule__ALSImpl__Group__1__Impl ) + // InternalAlloyLanguage.g:4348:2: rule__ALSImpl__Group__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSImpl__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSImpl__Group__1" + + + // $ANTLR start "rule__ALSImpl__Group__1__Impl" + // InternalAlloyLanguage.g:4354:1: rule__ALSImpl__Group__1__Impl : ( ( rule__ALSImpl__Group_1__0 )? ) ; + public final void rule__ALSImpl__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4358:1: ( ( ( rule__ALSImpl__Group_1__0 )? ) ) + // InternalAlloyLanguage.g:4359:1: ( ( rule__ALSImpl__Group_1__0 )? ) + { + // InternalAlloyLanguage.g:4359:1: ( ( rule__ALSImpl__Group_1__0 )? ) + // InternalAlloyLanguage.g:4360:1: ( rule__ALSImpl__Group_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSImplAccess().getGroup_1()); + } + // InternalAlloyLanguage.g:4361:1: ( rule__ALSImpl__Group_1__0 )? + int alt32=2; + int LA32_0 = input.LA(1); + + if ( ((LA32_0>=15 && LA32_0<=16)) ) { + alt32=1; + } + switch (alt32) { + case 1 : + // InternalAlloyLanguage.g:4361:2: rule__ALSImpl__Group_1__0 + { + pushFollow(FOLLOW_2); + rule__ALSImpl__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSImplAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSImpl__Group__1__Impl" + + + // $ANTLR start "rule__ALSImpl__Group_1__0" + // InternalAlloyLanguage.g:4375:1: rule__ALSImpl__Group_1__0 : rule__ALSImpl__Group_1__0__Impl rule__ALSImpl__Group_1__1 ; + public final void rule__ALSImpl__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4379:1: ( rule__ALSImpl__Group_1__0__Impl rule__ALSImpl__Group_1__1 ) + // InternalAlloyLanguage.g:4380:2: rule__ALSImpl__Group_1__0__Impl rule__ALSImpl__Group_1__1 + { + pushFollow(FOLLOW_27); + rule__ALSImpl__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSImpl__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSImpl__Group_1__0" + + + // $ANTLR start "rule__ALSImpl__Group_1__0__Impl" + // InternalAlloyLanguage.g:4387:1: rule__ALSImpl__Group_1__0__Impl : ( () ) ; + public final void rule__ALSImpl__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4391:1: ( ( () ) ) + // InternalAlloyLanguage.g:4392:1: ( () ) + { + // InternalAlloyLanguage.g:4392:1: ( () ) + // InternalAlloyLanguage.g:4393:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSImplAccess().getALSImplLeftOperandAction_1_0()); + } + // InternalAlloyLanguage.g:4394:1: () + // InternalAlloyLanguage.g:4396:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSImplAccess().getALSImplLeftOperandAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSImpl__Group_1__0__Impl" + + + // $ANTLR start "rule__ALSImpl__Group_1__1" + // InternalAlloyLanguage.g:4406:1: rule__ALSImpl__Group_1__1 : rule__ALSImpl__Group_1__1__Impl rule__ALSImpl__Group_1__2 ; + public final void rule__ALSImpl__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4410:1: ( rule__ALSImpl__Group_1__1__Impl rule__ALSImpl__Group_1__2 ) + // InternalAlloyLanguage.g:4411:2: rule__ALSImpl__Group_1__1__Impl rule__ALSImpl__Group_1__2 + { + pushFollow(FOLLOW_16); + rule__ALSImpl__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSImpl__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSImpl__Group_1__1" + + + // $ANTLR start "rule__ALSImpl__Group_1__1__Impl" + // InternalAlloyLanguage.g:4418:1: rule__ALSImpl__Group_1__1__Impl : ( ( rule__ALSImpl__Alternatives_1_1 ) ) ; + public final void rule__ALSImpl__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4422:1: ( ( ( rule__ALSImpl__Alternatives_1_1 ) ) ) + // InternalAlloyLanguage.g:4423:1: ( ( rule__ALSImpl__Alternatives_1_1 ) ) + { + // InternalAlloyLanguage.g:4423:1: ( ( rule__ALSImpl__Alternatives_1_1 ) ) + // InternalAlloyLanguage.g:4424:1: ( rule__ALSImpl__Alternatives_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSImplAccess().getAlternatives_1_1()); + } + // InternalAlloyLanguage.g:4425:1: ( rule__ALSImpl__Alternatives_1_1 ) + // InternalAlloyLanguage.g:4425:2: rule__ALSImpl__Alternatives_1_1 + { + pushFollow(FOLLOW_2); + rule__ALSImpl__Alternatives_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSImplAccess().getAlternatives_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSImpl__Group_1__1__Impl" + + + // $ANTLR start "rule__ALSImpl__Group_1__2" + // InternalAlloyLanguage.g:4435:1: rule__ALSImpl__Group_1__2 : rule__ALSImpl__Group_1__2__Impl rule__ALSImpl__Group_1__3 ; + public final void rule__ALSImpl__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4439:1: ( rule__ALSImpl__Group_1__2__Impl rule__ALSImpl__Group_1__3 ) + // InternalAlloyLanguage.g:4440:2: rule__ALSImpl__Group_1__2__Impl rule__ALSImpl__Group_1__3 + { + pushFollow(FOLLOW_28); + rule__ALSImpl__Group_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSImpl__Group_1__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSImpl__Group_1__2" + + + // $ANTLR start "rule__ALSImpl__Group_1__2__Impl" + // InternalAlloyLanguage.g:4447:1: rule__ALSImpl__Group_1__2__Impl : ( ( rule__ALSImpl__RightOperandAssignment_1_2 ) ) ; + public final void rule__ALSImpl__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4451:1: ( ( ( rule__ALSImpl__RightOperandAssignment_1_2 ) ) ) + // InternalAlloyLanguage.g:4452:1: ( ( rule__ALSImpl__RightOperandAssignment_1_2 ) ) + { + // InternalAlloyLanguage.g:4452:1: ( ( rule__ALSImpl__RightOperandAssignment_1_2 ) ) + // InternalAlloyLanguage.g:4453:1: ( rule__ALSImpl__RightOperandAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSImplAccess().getRightOperandAssignment_1_2()); + } + // InternalAlloyLanguage.g:4454:1: ( rule__ALSImpl__RightOperandAssignment_1_2 ) + // InternalAlloyLanguage.g:4454:2: rule__ALSImpl__RightOperandAssignment_1_2 + { + pushFollow(FOLLOW_2); + rule__ALSImpl__RightOperandAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSImplAccess().getRightOperandAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSImpl__Group_1__2__Impl" + + + // $ANTLR start "rule__ALSImpl__Group_1__3" + // InternalAlloyLanguage.g:4464:1: rule__ALSImpl__Group_1__3 : rule__ALSImpl__Group_1__3__Impl ; + public final void rule__ALSImpl__Group_1__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4468:1: ( rule__ALSImpl__Group_1__3__Impl ) + // InternalAlloyLanguage.g:4469:2: rule__ALSImpl__Group_1__3__Impl + { + pushFollow(FOLLOW_2); + rule__ALSImpl__Group_1__3__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSImpl__Group_1__3" + + + // $ANTLR start "rule__ALSImpl__Group_1__3__Impl" + // InternalAlloyLanguage.g:4475:1: rule__ALSImpl__Group_1__3__Impl : ( ( rule__ALSImpl__Group_1_3__0 )? ) ; + public final void rule__ALSImpl__Group_1__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4479:1: ( ( ( rule__ALSImpl__Group_1_3__0 )? ) ) + // InternalAlloyLanguage.g:4480:1: ( ( rule__ALSImpl__Group_1_3__0 )? ) + { + // InternalAlloyLanguage.g:4480:1: ( ( rule__ALSImpl__Group_1_3__0 )? ) + // InternalAlloyLanguage.g:4481:1: ( rule__ALSImpl__Group_1_3__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSImplAccess().getGroup_1_3()); + } + // InternalAlloyLanguage.g:4482:1: ( rule__ALSImpl__Group_1_3__0 )? + int alt33=2; + int LA33_0 = input.LA(1); + + if ( (LA33_0==46) ) { + alt33=1; + } + switch (alt33) { + case 1 : + // InternalAlloyLanguage.g:4482:2: rule__ALSImpl__Group_1_3__0 + { + pushFollow(FOLLOW_2); + rule__ALSImpl__Group_1_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSImplAccess().getGroup_1_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSImpl__Group_1__3__Impl" + + + // $ANTLR start "rule__ALSImpl__Group_1_3__0" + // InternalAlloyLanguage.g:4500:1: rule__ALSImpl__Group_1_3__0 : rule__ALSImpl__Group_1_3__0__Impl rule__ALSImpl__Group_1_3__1 ; + public final void rule__ALSImpl__Group_1_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4504:1: ( rule__ALSImpl__Group_1_3__0__Impl rule__ALSImpl__Group_1_3__1 ) + // InternalAlloyLanguage.g:4505:2: rule__ALSImpl__Group_1_3__0__Impl rule__ALSImpl__Group_1_3__1 + { + pushFollow(FOLLOW_16); + rule__ALSImpl__Group_1_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSImpl__Group_1_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSImpl__Group_1_3__0" + + + // $ANTLR start "rule__ALSImpl__Group_1_3__0__Impl" + // InternalAlloyLanguage.g:4512:1: rule__ALSImpl__Group_1_3__0__Impl : ( 'else' ) ; + public final void rule__ALSImpl__Group_1_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4516:1: ( ( 'else' ) ) + // InternalAlloyLanguage.g:4517:1: ( 'else' ) + { + // InternalAlloyLanguage.g:4517:1: ( 'else' ) + // InternalAlloyLanguage.g:4518:1: 'else' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSImplAccess().getElseKeyword_1_3_0()); + } + match(input,46,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSImplAccess().getElseKeyword_1_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSImpl__Group_1_3__0__Impl" + + + // $ANTLR start "rule__ALSImpl__Group_1_3__1" + // InternalAlloyLanguage.g:4531:1: rule__ALSImpl__Group_1_3__1 : rule__ALSImpl__Group_1_3__1__Impl ; + public final void rule__ALSImpl__Group_1_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4535:1: ( rule__ALSImpl__Group_1_3__1__Impl ) + // InternalAlloyLanguage.g:4536:2: rule__ALSImpl__Group_1_3__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSImpl__Group_1_3__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSImpl__Group_1_3__1" + + + // $ANTLR start "rule__ALSImpl__Group_1_3__1__Impl" + // InternalAlloyLanguage.g:4542:1: rule__ALSImpl__Group_1_3__1__Impl : ( ( rule__ALSImpl__ElseOperandAssignment_1_3_1 ) ) ; + public final void rule__ALSImpl__Group_1_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4546:1: ( ( ( rule__ALSImpl__ElseOperandAssignment_1_3_1 ) ) ) + // InternalAlloyLanguage.g:4547:1: ( ( rule__ALSImpl__ElseOperandAssignment_1_3_1 ) ) + { + // InternalAlloyLanguage.g:4547:1: ( ( rule__ALSImpl__ElseOperandAssignment_1_3_1 ) ) + // InternalAlloyLanguage.g:4548:1: ( rule__ALSImpl__ElseOperandAssignment_1_3_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSImplAccess().getElseOperandAssignment_1_3_1()); + } + // InternalAlloyLanguage.g:4549:1: ( rule__ALSImpl__ElseOperandAssignment_1_3_1 ) + // InternalAlloyLanguage.g:4549:2: rule__ALSImpl__ElseOperandAssignment_1_3_1 + { + pushFollow(FOLLOW_2); + rule__ALSImpl__ElseOperandAssignment_1_3_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSImplAccess().getElseOperandAssignment_1_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSImpl__Group_1_3__1__Impl" + + + // $ANTLR start "rule__ALSAnd__Group__0" + // InternalAlloyLanguage.g:4563:1: rule__ALSAnd__Group__0 : rule__ALSAnd__Group__0__Impl rule__ALSAnd__Group__1 ; + public final void rule__ALSAnd__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4567:1: ( rule__ALSAnd__Group__0__Impl rule__ALSAnd__Group__1 ) + // InternalAlloyLanguage.g:4568:2: rule__ALSAnd__Group__0__Impl rule__ALSAnd__Group__1 + { + pushFollow(FOLLOW_29); + rule__ALSAnd__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSAnd__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSAnd__Group__0" + + + // $ANTLR start "rule__ALSAnd__Group__0__Impl" + // InternalAlloyLanguage.g:4575:1: rule__ALSAnd__Group__0__Impl : ( ruleALSComparison ) ; + public final void rule__ALSAnd__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4579:1: ( ( ruleALSComparison ) ) + // InternalAlloyLanguage.g:4580:1: ( ruleALSComparison ) + { + // InternalAlloyLanguage.g:4580:1: ( ruleALSComparison ) + // InternalAlloyLanguage.g:4581:1: ruleALSComparison + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSAndAccess().getALSComparisonParserRuleCall_0()); + } + pushFollow(FOLLOW_2); + ruleALSComparison(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSAndAccess().getALSComparisonParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSAnd__Group__0__Impl" + + + // $ANTLR start "rule__ALSAnd__Group__1" + // InternalAlloyLanguage.g:4592:1: rule__ALSAnd__Group__1 : rule__ALSAnd__Group__1__Impl ; + public final void rule__ALSAnd__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4596:1: ( rule__ALSAnd__Group__1__Impl ) + // InternalAlloyLanguage.g:4597:2: rule__ALSAnd__Group__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSAnd__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSAnd__Group__1" + + + // $ANTLR start "rule__ALSAnd__Group__1__Impl" + // InternalAlloyLanguage.g:4603:1: rule__ALSAnd__Group__1__Impl : ( ( rule__ALSAnd__Group_1__0 )? ) ; + public final void rule__ALSAnd__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4607:1: ( ( ( rule__ALSAnd__Group_1__0 )? ) ) + // InternalAlloyLanguage.g:4608:1: ( ( rule__ALSAnd__Group_1__0 )? ) + { + // InternalAlloyLanguage.g:4608:1: ( ( rule__ALSAnd__Group_1__0 )? ) + // InternalAlloyLanguage.g:4609:1: ( rule__ALSAnd__Group_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSAndAccess().getGroup_1()); + } + // InternalAlloyLanguage.g:4610:1: ( rule__ALSAnd__Group_1__0 )? + int alt34=2; + int LA34_0 = input.LA(1); + + if ( ((LA34_0>=17 && LA34_0<=18)) ) { + alt34=1; + } + switch (alt34) { + case 1 : + // InternalAlloyLanguage.g:4610:2: rule__ALSAnd__Group_1__0 + { + pushFollow(FOLLOW_2); + rule__ALSAnd__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSAndAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSAnd__Group__1__Impl" + + + // $ANTLR start "rule__ALSAnd__Group_1__0" + // InternalAlloyLanguage.g:4624:1: rule__ALSAnd__Group_1__0 : rule__ALSAnd__Group_1__0__Impl rule__ALSAnd__Group_1__1 ; + public final void rule__ALSAnd__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4628:1: ( rule__ALSAnd__Group_1__0__Impl rule__ALSAnd__Group_1__1 ) + // InternalAlloyLanguage.g:4629:2: rule__ALSAnd__Group_1__0__Impl rule__ALSAnd__Group_1__1 + { + pushFollow(FOLLOW_29); + rule__ALSAnd__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSAnd__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSAnd__Group_1__0" + + + // $ANTLR start "rule__ALSAnd__Group_1__0__Impl" + // InternalAlloyLanguage.g:4636:1: rule__ALSAnd__Group_1__0__Impl : ( () ) ; + public final void rule__ALSAnd__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4640:1: ( ( () ) ) + // InternalAlloyLanguage.g:4641:1: ( () ) + { + // InternalAlloyLanguage.g:4641:1: ( () ) + // InternalAlloyLanguage.g:4642:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSAndAccess().getALSAndLeftOperandAction_1_0()); + } + // InternalAlloyLanguage.g:4643:1: () + // InternalAlloyLanguage.g:4645:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSAndAccess().getALSAndLeftOperandAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSAnd__Group_1__0__Impl" + + + // $ANTLR start "rule__ALSAnd__Group_1__1" + // InternalAlloyLanguage.g:4655:1: rule__ALSAnd__Group_1__1 : rule__ALSAnd__Group_1__1__Impl rule__ALSAnd__Group_1__2 ; + public final void rule__ALSAnd__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4659:1: ( rule__ALSAnd__Group_1__1__Impl rule__ALSAnd__Group_1__2 ) + // InternalAlloyLanguage.g:4660:2: rule__ALSAnd__Group_1__1__Impl rule__ALSAnd__Group_1__2 + { + pushFollow(FOLLOW_16); + rule__ALSAnd__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSAnd__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSAnd__Group_1__1" + + + // $ANTLR start "rule__ALSAnd__Group_1__1__Impl" + // InternalAlloyLanguage.g:4667:1: rule__ALSAnd__Group_1__1__Impl : ( ( rule__ALSAnd__Alternatives_1_1 ) ) ; + public final void rule__ALSAnd__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4671:1: ( ( ( rule__ALSAnd__Alternatives_1_1 ) ) ) + // InternalAlloyLanguage.g:4672:1: ( ( rule__ALSAnd__Alternatives_1_1 ) ) + { + // InternalAlloyLanguage.g:4672:1: ( ( rule__ALSAnd__Alternatives_1_1 ) ) + // InternalAlloyLanguage.g:4673:1: ( rule__ALSAnd__Alternatives_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSAndAccess().getAlternatives_1_1()); + } + // InternalAlloyLanguage.g:4674:1: ( rule__ALSAnd__Alternatives_1_1 ) + // InternalAlloyLanguage.g:4674:2: rule__ALSAnd__Alternatives_1_1 + { + pushFollow(FOLLOW_2); + rule__ALSAnd__Alternatives_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSAndAccess().getAlternatives_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSAnd__Group_1__1__Impl" + + + // $ANTLR start "rule__ALSAnd__Group_1__2" + // InternalAlloyLanguage.g:4684:1: rule__ALSAnd__Group_1__2 : rule__ALSAnd__Group_1__2__Impl ; + public final void rule__ALSAnd__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4688:1: ( rule__ALSAnd__Group_1__2__Impl ) + // InternalAlloyLanguage.g:4689:2: rule__ALSAnd__Group_1__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSAnd__Group_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSAnd__Group_1__2" + + + // $ANTLR start "rule__ALSAnd__Group_1__2__Impl" + // InternalAlloyLanguage.g:4695:1: rule__ALSAnd__Group_1__2__Impl : ( ( rule__ALSAnd__RightOperandAssignment_1_2 ) ) ; + public final void rule__ALSAnd__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4699:1: ( ( ( rule__ALSAnd__RightOperandAssignment_1_2 ) ) ) + // InternalAlloyLanguage.g:4700:1: ( ( rule__ALSAnd__RightOperandAssignment_1_2 ) ) + { + // InternalAlloyLanguage.g:4700:1: ( ( rule__ALSAnd__RightOperandAssignment_1_2 ) ) + // InternalAlloyLanguage.g:4701:1: ( rule__ALSAnd__RightOperandAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSAndAccess().getRightOperandAssignment_1_2()); + } + // InternalAlloyLanguage.g:4702:1: ( rule__ALSAnd__RightOperandAssignment_1_2 ) + // InternalAlloyLanguage.g:4702:2: rule__ALSAnd__RightOperandAssignment_1_2 + { + pushFollow(FOLLOW_2); + rule__ALSAnd__RightOperandAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSAndAccess().getRightOperandAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSAnd__Group_1__2__Impl" + + + // $ANTLR start "rule__ALSComparison__Group__0" + // InternalAlloyLanguage.g:4718:1: rule__ALSComparison__Group__0 : rule__ALSComparison__Group__0__Impl rule__ALSComparison__Group__1 ; + public final void rule__ALSComparison__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4722:1: ( rule__ALSComparison__Group__0__Impl rule__ALSComparison__Group__1 ) + // InternalAlloyLanguage.g:4723:2: rule__ALSComparison__Group__0__Impl rule__ALSComparison__Group__1 + { + pushFollow(FOLLOW_30); + rule__ALSComparison__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSComparison__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group__0" + + + // $ANTLR start "rule__ALSComparison__Group__0__Impl" + // InternalAlloyLanguage.g:4730:1: rule__ALSComparison__Group__0__Impl : ( ruleALSOverride ) ; + public final void rule__ALSComparison__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4734:1: ( ( ruleALSOverride ) ) + // InternalAlloyLanguage.g:4735:1: ( ruleALSOverride ) + { + // InternalAlloyLanguage.g:4735:1: ( ruleALSOverride ) + // InternalAlloyLanguage.g:4736:1: ruleALSOverride + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getALSOverrideParserRuleCall_0()); + } + pushFollow(FOLLOW_2); + ruleALSOverride(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getALSOverrideParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group__0__Impl" + + + // $ANTLR start "rule__ALSComparison__Group__1" + // InternalAlloyLanguage.g:4747:1: rule__ALSComparison__Group__1 : rule__ALSComparison__Group__1__Impl ; + public final void rule__ALSComparison__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4751:1: ( rule__ALSComparison__Group__1__Impl ) + // InternalAlloyLanguage.g:4752:2: rule__ALSComparison__Group__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSComparison__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group__1" + + + // $ANTLR start "rule__ALSComparison__Group__1__Impl" + // InternalAlloyLanguage.g:4758:1: rule__ALSComparison__Group__1__Impl : ( ( rule__ALSComparison__Group_1__0 )? ) ; + public final void rule__ALSComparison__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4762:1: ( ( ( rule__ALSComparison__Group_1__0 )? ) ) + // InternalAlloyLanguage.g:4763:1: ( ( rule__ALSComparison__Group_1__0 )? ) + { + // InternalAlloyLanguage.g:4763:1: ( ( rule__ALSComparison__Group_1__0 )? ) + // InternalAlloyLanguage.g:4764:1: ( rule__ALSComparison__Group_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getGroup_1()); + } + // InternalAlloyLanguage.g:4765:1: ( rule__ALSComparison__Group_1__0 )? + int alt35=2; + int LA35_0 = input.LA(1); + + if ( (LA35_0==38||(LA35_0>=47 && LA35_0<=52)) ) { + alt35=1; + } + switch (alt35) { + case 1 : + // InternalAlloyLanguage.g:4765:2: rule__ALSComparison__Group_1__0 + { + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group__1__Impl" + + + // $ANTLR start "rule__ALSComparison__Group_1__0" + // InternalAlloyLanguage.g:4779:1: rule__ALSComparison__Group_1__0 : rule__ALSComparison__Group_1__0__Impl rule__ALSComparison__Group_1__1 ; + public final void rule__ALSComparison__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4783:1: ( rule__ALSComparison__Group_1__0__Impl rule__ALSComparison__Group_1__1 ) + // InternalAlloyLanguage.g:4784:2: rule__ALSComparison__Group_1__0__Impl rule__ALSComparison__Group_1__1 + { + pushFollow(FOLLOW_16); + rule__ALSComparison__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1__0" + + + // $ANTLR start "rule__ALSComparison__Group_1__0__Impl" + // InternalAlloyLanguage.g:4791:1: rule__ALSComparison__Group_1__0__Impl : ( ( rule__ALSComparison__Alternatives_1_0 ) ) ; + public final void rule__ALSComparison__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4795:1: ( ( ( rule__ALSComparison__Alternatives_1_0 ) ) ) + // InternalAlloyLanguage.g:4796:1: ( ( rule__ALSComparison__Alternatives_1_0 ) ) + { + // InternalAlloyLanguage.g:4796:1: ( ( rule__ALSComparison__Alternatives_1_0 ) ) + // InternalAlloyLanguage.g:4797:1: ( rule__ALSComparison__Alternatives_1_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getAlternatives_1_0()); + } + // InternalAlloyLanguage.g:4798:1: ( rule__ALSComparison__Alternatives_1_0 ) + // InternalAlloyLanguage.g:4798:2: rule__ALSComparison__Alternatives_1_0 + { + pushFollow(FOLLOW_2); + rule__ALSComparison__Alternatives_1_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getAlternatives_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1__0__Impl" + + + // $ANTLR start "rule__ALSComparison__Group_1__1" + // InternalAlloyLanguage.g:4808:1: rule__ALSComparison__Group_1__1 : rule__ALSComparison__Group_1__1__Impl ; + public final void rule__ALSComparison__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4812:1: ( rule__ALSComparison__Group_1__1__Impl ) + // InternalAlloyLanguage.g:4813:2: rule__ALSComparison__Group_1__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1__1" + + + // $ANTLR start "rule__ALSComparison__Group_1__1__Impl" + // InternalAlloyLanguage.g:4819:1: rule__ALSComparison__Group_1__1__Impl : ( ( rule__ALSComparison__RightOperandAssignment_1_1 ) ) ; + public final void rule__ALSComparison__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4823:1: ( ( ( rule__ALSComparison__RightOperandAssignment_1_1 ) ) ) + // InternalAlloyLanguage.g:4824:1: ( ( rule__ALSComparison__RightOperandAssignment_1_1 ) ) + { + // InternalAlloyLanguage.g:4824:1: ( ( rule__ALSComparison__RightOperandAssignment_1_1 ) ) + // InternalAlloyLanguage.g:4825:1: ( rule__ALSComparison__RightOperandAssignment_1_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getRightOperandAssignment_1_1()); + } + // InternalAlloyLanguage.g:4826:1: ( rule__ALSComparison__RightOperandAssignment_1_1 ) + // InternalAlloyLanguage.g:4826:2: rule__ALSComparison__RightOperandAssignment_1_1 + { + pushFollow(FOLLOW_2); + rule__ALSComparison__RightOperandAssignment_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getRightOperandAssignment_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1__1__Impl" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_0__0" + // InternalAlloyLanguage.g:4840:1: rule__ALSComparison__Group_1_0_0__0 : rule__ALSComparison__Group_1_0_0__0__Impl rule__ALSComparison__Group_1_0_0__1 ; + public final void rule__ALSComparison__Group_1_0_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4844:1: ( rule__ALSComparison__Group_1_0_0__0__Impl rule__ALSComparison__Group_1_0_0__1 ) + // InternalAlloyLanguage.g:4845:2: rule__ALSComparison__Group_1_0_0__0__Impl rule__ALSComparison__Group_1_0_0__1 + { + pushFollow(FOLLOW_31); + rule__ALSComparison__Group_1_0_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_0__0" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_0__0__Impl" + // InternalAlloyLanguage.g:4852:1: rule__ALSComparison__Group_1_0_0__0__Impl : ( () ) ; + public final void rule__ALSComparison__Group_1_0_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4856:1: ( ( () ) ) + // InternalAlloyLanguage.g:4857:1: ( () ) + { + // InternalAlloyLanguage.g:4857:1: ( () ) + // InternalAlloyLanguage.g:4858:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getALSEqualsLeftOperandAction_1_0_0_0()); + } + // InternalAlloyLanguage.g:4859:1: () + // InternalAlloyLanguage.g:4861:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getALSEqualsLeftOperandAction_1_0_0_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_0__0__Impl" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_0__1" + // InternalAlloyLanguage.g:4871:1: rule__ALSComparison__Group_1_0_0__1 : rule__ALSComparison__Group_1_0_0__1__Impl ; + public final void rule__ALSComparison__Group_1_0_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4875:1: ( rule__ALSComparison__Group_1_0_0__1__Impl ) + // InternalAlloyLanguage.g:4876:2: rule__ALSComparison__Group_1_0_0__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_0__1" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_0__1__Impl" + // InternalAlloyLanguage.g:4882:1: rule__ALSComparison__Group_1_0_0__1__Impl : ( '=' ) ; + public final void rule__ALSComparison__Group_1_0_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4886:1: ( ( '=' ) ) + // InternalAlloyLanguage.g:4887:1: ( '=' ) + { + // InternalAlloyLanguage.g:4887:1: ( '=' ) + // InternalAlloyLanguage.g:4888:1: '=' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getEqualsSignKeyword_1_0_0_1()); + } + match(input,47,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getEqualsSignKeyword_1_0_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_0__1__Impl" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_1__0" + // InternalAlloyLanguage.g:4905:1: rule__ALSComparison__Group_1_0_1__0 : rule__ALSComparison__Group_1_0_1__0__Impl rule__ALSComparison__Group_1_0_1__1 ; + public final void rule__ALSComparison__Group_1_0_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4909:1: ( rule__ALSComparison__Group_1_0_1__0__Impl rule__ALSComparison__Group_1_0_1__1 ) + // InternalAlloyLanguage.g:4910:2: rule__ALSComparison__Group_1_0_1__0__Impl rule__ALSComparison__Group_1_0_1__1 + { + pushFollow(FOLLOW_32); + rule__ALSComparison__Group_1_0_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_1__0" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_1__0__Impl" + // InternalAlloyLanguage.g:4917:1: rule__ALSComparison__Group_1_0_1__0__Impl : ( () ) ; + public final void rule__ALSComparison__Group_1_0_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4921:1: ( ( () ) ) + // InternalAlloyLanguage.g:4922:1: ( () ) + { + // InternalAlloyLanguage.g:4922:1: ( () ) + // InternalAlloyLanguage.g:4923:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getALSNotEqualsLeftOperandAction_1_0_1_0()); + } + // InternalAlloyLanguage.g:4924:1: () + // InternalAlloyLanguage.g:4926:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getALSNotEqualsLeftOperandAction_1_0_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_1__0__Impl" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_1__1" + // InternalAlloyLanguage.g:4936:1: rule__ALSComparison__Group_1_0_1__1 : rule__ALSComparison__Group_1_0_1__1__Impl ; + public final void rule__ALSComparison__Group_1_0_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4940:1: ( rule__ALSComparison__Group_1_0_1__1__Impl ) + // InternalAlloyLanguage.g:4941:2: rule__ALSComparison__Group_1_0_1__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_1__1" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_1__1__Impl" + // InternalAlloyLanguage.g:4947:1: rule__ALSComparison__Group_1_0_1__1__Impl : ( '!=' ) ; + public final void rule__ALSComparison__Group_1_0_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4951:1: ( ( '!=' ) ) + // InternalAlloyLanguage.g:4952:1: ( '!=' ) + { + // InternalAlloyLanguage.g:4952:1: ( '!=' ) + // InternalAlloyLanguage.g:4953:1: '!=' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getExclamationMarkEqualsSignKeyword_1_0_1_1()); + } + match(input,48,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getExclamationMarkEqualsSignKeyword_1_0_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_1__1__Impl" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_2__0" + // InternalAlloyLanguage.g:4970:1: rule__ALSComparison__Group_1_0_2__0 : rule__ALSComparison__Group_1_0_2__0__Impl rule__ALSComparison__Group_1_0_2__1 ; + public final void rule__ALSComparison__Group_1_0_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4974:1: ( rule__ALSComparison__Group_1_0_2__0__Impl rule__ALSComparison__Group_1_0_2__1 ) + // InternalAlloyLanguage.g:4975:2: rule__ALSComparison__Group_1_0_2__0__Impl rule__ALSComparison__Group_1_0_2__1 + { + pushFollow(FOLLOW_33); + rule__ALSComparison__Group_1_0_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_2__0" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_2__0__Impl" + // InternalAlloyLanguage.g:4982:1: rule__ALSComparison__Group_1_0_2__0__Impl : ( () ) ; + public final void rule__ALSComparison__Group_1_0_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:4986:1: ( ( () ) ) + // InternalAlloyLanguage.g:4987:1: ( () ) + { + // InternalAlloyLanguage.g:4987:1: ( () ) + // InternalAlloyLanguage.g:4988:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getALSSubsetLeftOperandAction_1_0_2_0()); + } + // InternalAlloyLanguage.g:4989:1: () + // InternalAlloyLanguage.g:4991:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getALSSubsetLeftOperandAction_1_0_2_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_2__0__Impl" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_2__1" + // InternalAlloyLanguage.g:5001:1: rule__ALSComparison__Group_1_0_2__1 : rule__ALSComparison__Group_1_0_2__1__Impl ; + public final void rule__ALSComparison__Group_1_0_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5005:1: ( rule__ALSComparison__Group_1_0_2__1__Impl ) + // InternalAlloyLanguage.g:5006:2: rule__ALSComparison__Group_1_0_2__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_2__1" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_2__1__Impl" + // InternalAlloyLanguage.g:5012:1: rule__ALSComparison__Group_1_0_2__1__Impl : ( 'in' ) ; + public final void rule__ALSComparison__Group_1_0_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5016:1: ( ( 'in' ) ) + // InternalAlloyLanguage.g:5017:1: ( 'in' ) + { + // InternalAlloyLanguage.g:5017:1: ( 'in' ) + // InternalAlloyLanguage.g:5018:1: 'in' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getInKeyword_1_0_2_1()); + } + match(input,38,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getInKeyword_1_0_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_2__1__Impl" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_3__0" + // InternalAlloyLanguage.g:5035:1: rule__ALSComparison__Group_1_0_3__0 : rule__ALSComparison__Group_1_0_3__0__Impl rule__ALSComparison__Group_1_0_3__1 ; + public final void rule__ALSComparison__Group_1_0_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5039:1: ( rule__ALSComparison__Group_1_0_3__0__Impl rule__ALSComparison__Group_1_0_3__1 ) + // InternalAlloyLanguage.g:5040:2: rule__ALSComparison__Group_1_0_3__0__Impl rule__ALSComparison__Group_1_0_3__1 + { + pushFollow(FOLLOW_34); + rule__ALSComparison__Group_1_0_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_3__0" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_3__0__Impl" + // InternalAlloyLanguage.g:5047:1: rule__ALSComparison__Group_1_0_3__0__Impl : ( () ) ; + public final void rule__ALSComparison__Group_1_0_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5051:1: ( ( () ) ) + // InternalAlloyLanguage.g:5052:1: ( () ) + { + // InternalAlloyLanguage.g:5052:1: ( () ) + // InternalAlloyLanguage.g:5053:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getALSLessLeftOperandAction_1_0_3_0()); + } + // InternalAlloyLanguage.g:5054:1: () + // InternalAlloyLanguage.g:5056:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getALSLessLeftOperandAction_1_0_3_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_3__0__Impl" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_3__1" + // InternalAlloyLanguage.g:5066:1: rule__ALSComparison__Group_1_0_3__1 : rule__ALSComparison__Group_1_0_3__1__Impl ; + public final void rule__ALSComparison__Group_1_0_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5070:1: ( rule__ALSComparison__Group_1_0_3__1__Impl ) + // InternalAlloyLanguage.g:5071:2: rule__ALSComparison__Group_1_0_3__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_3__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_3__1" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_3__1__Impl" + // InternalAlloyLanguage.g:5077:1: rule__ALSComparison__Group_1_0_3__1__Impl : ( '>' ) ; + public final void rule__ALSComparison__Group_1_0_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5081:1: ( ( '>' ) ) + // InternalAlloyLanguage.g:5082:1: ( '>' ) + { + // InternalAlloyLanguage.g:5082:1: ( '>' ) + // InternalAlloyLanguage.g:5083:1: '>' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getGreaterThanSignKeyword_1_0_3_1()); + } + match(input,49,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getGreaterThanSignKeyword_1_0_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_3__1__Impl" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_4__0" + // InternalAlloyLanguage.g:5100:1: rule__ALSComparison__Group_1_0_4__0 : rule__ALSComparison__Group_1_0_4__0__Impl rule__ALSComparison__Group_1_0_4__1 ; + public final void rule__ALSComparison__Group_1_0_4__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5104:1: ( rule__ALSComparison__Group_1_0_4__0__Impl rule__ALSComparison__Group_1_0_4__1 ) + // InternalAlloyLanguage.g:5105:2: rule__ALSComparison__Group_1_0_4__0__Impl rule__ALSComparison__Group_1_0_4__1 + { + pushFollow(FOLLOW_35); + rule__ALSComparison__Group_1_0_4__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_4__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_4__0" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_4__0__Impl" + // InternalAlloyLanguage.g:5112:1: rule__ALSComparison__Group_1_0_4__0__Impl : ( () ) ; + public final void rule__ALSComparison__Group_1_0_4__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5116:1: ( ( () ) ) + // InternalAlloyLanguage.g:5117:1: ( () ) + { + // InternalAlloyLanguage.g:5117:1: ( () ) + // InternalAlloyLanguage.g:5118:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getALSLeqLeftOperandAction_1_0_4_0()); + } + // InternalAlloyLanguage.g:5119:1: () + // InternalAlloyLanguage.g:5121:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getALSLeqLeftOperandAction_1_0_4_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_4__0__Impl" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_4__1" + // InternalAlloyLanguage.g:5131:1: rule__ALSComparison__Group_1_0_4__1 : rule__ALSComparison__Group_1_0_4__1__Impl ; + public final void rule__ALSComparison__Group_1_0_4__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5135:1: ( rule__ALSComparison__Group_1_0_4__1__Impl ) + // InternalAlloyLanguage.g:5136:2: rule__ALSComparison__Group_1_0_4__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_4__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_4__1" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_4__1__Impl" + // InternalAlloyLanguage.g:5142:1: rule__ALSComparison__Group_1_0_4__1__Impl : ( '>=' ) ; + public final void rule__ALSComparison__Group_1_0_4__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5146:1: ( ( '>=' ) ) + // InternalAlloyLanguage.g:5147:1: ( '>=' ) + { + // InternalAlloyLanguage.g:5147:1: ( '>=' ) + // InternalAlloyLanguage.g:5148:1: '>=' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getGreaterThanSignEqualsSignKeyword_1_0_4_1()); + } + match(input,50,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getGreaterThanSignEqualsSignKeyword_1_0_4_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_4__1__Impl" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_5__0" + // InternalAlloyLanguage.g:5165:1: rule__ALSComparison__Group_1_0_5__0 : rule__ALSComparison__Group_1_0_5__0__Impl rule__ALSComparison__Group_1_0_5__1 ; + public final void rule__ALSComparison__Group_1_0_5__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5169:1: ( rule__ALSComparison__Group_1_0_5__0__Impl rule__ALSComparison__Group_1_0_5__1 ) + // InternalAlloyLanguage.g:5170:2: rule__ALSComparison__Group_1_0_5__0__Impl rule__ALSComparison__Group_1_0_5__1 + { + pushFollow(FOLLOW_36); + rule__ALSComparison__Group_1_0_5__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_5__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_5__0" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_5__0__Impl" + // InternalAlloyLanguage.g:5177:1: rule__ALSComparison__Group_1_0_5__0__Impl : ( () ) ; + public final void rule__ALSComparison__Group_1_0_5__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5181:1: ( ( () ) ) + // InternalAlloyLanguage.g:5182:1: ( () ) + { + // InternalAlloyLanguage.g:5182:1: ( () ) + // InternalAlloyLanguage.g:5183:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getALSMoreLeftOperandAction_1_0_5_0()); + } + // InternalAlloyLanguage.g:5184:1: () + // InternalAlloyLanguage.g:5186:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getALSMoreLeftOperandAction_1_0_5_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_5__0__Impl" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_5__1" + // InternalAlloyLanguage.g:5196:1: rule__ALSComparison__Group_1_0_5__1 : rule__ALSComparison__Group_1_0_5__1__Impl ; + public final void rule__ALSComparison__Group_1_0_5__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5200:1: ( rule__ALSComparison__Group_1_0_5__1__Impl ) + // InternalAlloyLanguage.g:5201:2: rule__ALSComparison__Group_1_0_5__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_5__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_5__1" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_5__1__Impl" + // InternalAlloyLanguage.g:5207:1: rule__ALSComparison__Group_1_0_5__1__Impl : ( '<' ) ; + public final void rule__ALSComparison__Group_1_0_5__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5211:1: ( ( '<' ) ) + // InternalAlloyLanguage.g:5212:1: ( '<' ) + { + // InternalAlloyLanguage.g:5212:1: ( '<' ) + // InternalAlloyLanguage.g:5213:1: '<' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getLessThanSignKeyword_1_0_5_1()); + } + match(input,51,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getLessThanSignKeyword_1_0_5_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_5__1__Impl" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_6__0" + // InternalAlloyLanguage.g:5230:1: rule__ALSComparison__Group_1_0_6__0 : rule__ALSComparison__Group_1_0_6__0__Impl rule__ALSComparison__Group_1_0_6__1 ; + public final void rule__ALSComparison__Group_1_0_6__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5234:1: ( rule__ALSComparison__Group_1_0_6__0__Impl rule__ALSComparison__Group_1_0_6__1 ) + // InternalAlloyLanguage.g:5235:2: rule__ALSComparison__Group_1_0_6__0__Impl rule__ALSComparison__Group_1_0_6__1 + { + pushFollow(FOLLOW_30); + rule__ALSComparison__Group_1_0_6__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_6__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_6__0" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_6__0__Impl" + // InternalAlloyLanguage.g:5242:1: rule__ALSComparison__Group_1_0_6__0__Impl : ( () ) ; + public final void rule__ALSComparison__Group_1_0_6__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5246:1: ( ( () ) ) + // InternalAlloyLanguage.g:5247:1: ( () ) + { + // InternalAlloyLanguage.g:5247:1: ( () ) + // InternalAlloyLanguage.g:5248:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getALSMeqLeftOperandAction_1_0_6_0()); + } + // InternalAlloyLanguage.g:5249:1: () + // InternalAlloyLanguage.g:5251:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getALSMeqLeftOperandAction_1_0_6_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_6__0__Impl" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_6__1" + // InternalAlloyLanguage.g:5261:1: rule__ALSComparison__Group_1_0_6__1 : rule__ALSComparison__Group_1_0_6__1__Impl ; + public final void rule__ALSComparison__Group_1_0_6__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5265:1: ( rule__ALSComparison__Group_1_0_6__1__Impl ) + // InternalAlloyLanguage.g:5266:2: rule__ALSComparison__Group_1_0_6__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSComparison__Group_1_0_6__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_6__1" + + + // $ANTLR start "rule__ALSComparison__Group_1_0_6__1__Impl" + // InternalAlloyLanguage.g:5272:1: rule__ALSComparison__Group_1_0_6__1__Impl : ( '<=' ) ; + public final void rule__ALSComparison__Group_1_0_6__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5276:1: ( ( '<=' ) ) + // InternalAlloyLanguage.g:5277:1: ( '<=' ) + { + // InternalAlloyLanguage.g:5277:1: ( '<=' ) + // InternalAlloyLanguage.g:5278:1: '<=' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getLessThanSignEqualsSignKeyword_1_0_6_1()); + } + match(input,52,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getLessThanSignEqualsSignKeyword_1_0_6_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__Group_1_0_6__1__Impl" + + + // $ANTLR start "rule__ALSOverride__Group__0" + // InternalAlloyLanguage.g:5295:1: rule__ALSOverride__Group__0 : rule__ALSOverride__Group__0__Impl rule__ALSOverride__Group__1 ; + public final void rule__ALSOverride__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5299:1: ( rule__ALSOverride__Group__0__Impl rule__ALSOverride__Group__1 ) + // InternalAlloyLanguage.g:5300:2: rule__ALSOverride__Group__0__Impl rule__ALSOverride__Group__1 + { + pushFollow(FOLLOW_37); + rule__ALSOverride__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSOverride__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOverride__Group__0" + + + // $ANTLR start "rule__ALSOverride__Group__0__Impl" + // InternalAlloyLanguage.g:5307:1: rule__ALSOverride__Group__0__Impl : ( ruleALSRangeRestrictionRight ) ; + public final void rule__ALSOverride__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5311:1: ( ( ruleALSRangeRestrictionRight ) ) + // InternalAlloyLanguage.g:5312:1: ( ruleALSRangeRestrictionRight ) + { + // InternalAlloyLanguage.g:5312:1: ( ruleALSRangeRestrictionRight ) + // InternalAlloyLanguage.g:5313:1: ruleALSRangeRestrictionRight + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSOverrideAccess().getALSRangeRestrictionRightParserRuleCall_0()); + } + pushFollow(FOLLOW_2); + ruleALSRangeRestrictionRight(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSOverrideAccess().getALSRangeRestrictionRightParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOverride__Group__0__Impl" + + + // $ANTLR start "rule__ALSOverride__Group__1" + // InternalAlloyLanguage.g:5324:1: rule__ALSOverride__Group__1 : rule__ALSOverride__Group__1__Impl ; + public final void rule__ALSOverride__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5328:1: ( rule__ALSOverride__Group__1__Impl ) + // InternalAlloyLanguage.g:5329:2: rule__ALSOverride__Group__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSOverride__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOverride__Group__1" + + + // $ANTLR start "rule__ALSOverride__Group__1__Impl" + // InternalAlloyLanguage.g:5335:1: rule__ALSOverride__Group__1__Impl : ( ( rule__ALSOverride__Group_1__0 )? ) ; + public final void rule__ALSOverride__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5339:1: ( ( ( rule__ALSOverride__Group_1__0 )? ) ) + // InternalAlloyLanguage.g:5340:1: ( ( rule__ALSOverride__Group_1__0 )? ) + { + // InternalAlloyLanguage.g:5340:1: ( ( rule__ALSOverride__Group_1__0 )? ) + // InternalAlloyLanguage.g:5341:1: ( rule__ALSOverride__Group_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSOverrideAccess().getGroup_1()); + } + // InternalAlloyLanguage.g:5342:1: ( rule__ALSOverride__Group_1__0 )? + int alt36=2; + int LA36_0 = input.LA(1); + + if ( (LA36_0==53) ) { + alt36=1; + } + switch (alt36) { + case 1 : + // InternalAlloyLanguage.g:5342:2: rule__ALSOverride__Group_1__0 + { + pushFollow(FOLLOW_2); + rule__ALSOverride__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSOverrideAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOverride__Group__1__Impl" + + + // $ANTLR start "rule__ALSOverride__Group_1__0" + // InternalAlloyLanguage.g:5356:1: rule__ALSOverride__Group_1__0 : rule__ALSOverride__Group_1__0__Impl rule__ALSOverride__Group_1__1 ; + public final void rule__ALSOverride__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5360:1: ( rule__ALSOverride__Group_1__0__Impl rule__ALSOverride__Group_1__1 ) + // InternalAlloyLanguage.g:5361:2: rule__ALSOverride__Group_1__0__Impl rule__ALSOverride__Group_1__1 + { + pushFollow(FOLLOW_37); + rule__ALSOverride__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSOverride__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOverride__Group_1__0" + + + // $ANTLR start "rule__ALSOverride__Group_1__0__Impl" + // InternalAlloyLanguage.g:5368:1: rule__ALSOverride__Group_1__0__Impl : ( () ) ; + public final void rule__ALSOverride__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5372:1: ( ( () ) ) + // InternalAlloyLanguage.g:5373:1: ( () ) + { + // InternalAlloyLanguage.g:5373:1: ( () ) + // InternalAlloyLanguage.g:5374:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSOverrideAccess().getALSOverrideLeftOperandAction_1_0()); + } + // InternalAlloyLanguage.g:5375:1: () + // InternalAlloyLanguage.g:5377:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSOverrideAccess().getALSOverrideLeftOperandAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOverride__Group_1__0__Impl" + + + // $ANTLR start "rule__ALSOverride__Group_1__1" + // InternalAlloyLanguage.g:5387:1: rule__ALSOverride__Group_1__1 : rule__ALSOverride__Group_1__1__Impl rule__ALSOverride__Group_1__2 ; + public final void rule__ALSOverride__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5391:1: ( rule__ALSOverride__Group_1__1__Impl rule__ALSOverride__Group_1__2 ) + // InternalAlloyLanguage.g:5392:2: rule__ALSOverride__Group_1__1__Impl rule__ALSOverride__Group_1__2 + { + pushFollow(FOLLOW_16); + rule__ALSOverride__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSOverride__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOverride__Group_1__1" + + + // $ANTLR start "rule__ALSOverride__Group_1__1__Impl" + // InternalAlloyLanguage.g:5399:1: rule__ALSOverride__Group_1__1__Impl : ( '++' ) ; + public final void rule__ALSOverride__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5403:1: ( ( '++' ) ) + // InternalAlloyLanguage.g:5404:1: ( '++' ) + { + // InternalAlloyLanguage.g:5404:1: ( '++' ) + // InternalAlloyLanguage.g:5405:1: '++' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSOverrideAccess().getPlusSignPlusSignKeyword_1_1()); + } + match(input,53,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSOverrideAccess().getPlusSignPlusSignKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOverride__Group_1__1__Impl" + + + // $ANTLR start "rule__ALSOverride__Group_1__2" + // InternalAlloyLanguage.g:5418:1: rule__ALSOverride__Group_1__2 : rule__ALSOverride__Group_1__2__Impl ; + public final void rule__ALSOverride__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5422:1: ( rule__ALSOverride__Group_1__2__Impl ) + // InternalAlloyLanguage.g:5423:2: rule__ALSOverride__Group_1__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSOverride__Group_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOverride__Group_1__2" + + + // $ANTLR start "rule__ALSOverride__Group_1__2__Impl" + // InternalAlloyLanguage.g:5429:1: rule__ALSOverride__Group_1__2__Impl : ( ( rule__ALSOverride__RightOperandAssignment_1_2 ) ) ; + public final void rule__ALSOverride__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5433:1: ( ( ( rule__ALSOverride__RightOperandAssignment_1_2 ) ) ) + // InternalAlloyLanguage.g:5434:1: ( ( rule__ALSOverride__RightOperandAssignment_1_2 ) ) + { + // InternalAlloyLanguage.g:5434:1: ( ( rule__ALSOverride__RightOperandAssignment_1_2 ) ) + // InternalAlloyLanguage.g:5435:1: ( rule__ALSOverride__RightOperandAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSOverrideAccess().getRightOperandAssignment_1_2()); + } + // InternalAlloyLanguage.g:5436:1: ( rule__ALSOverride__RightOperandAssignment_1_2 ) + // InternalAlloyLanguage.g:5436:2: rule__ALSOverride__RightOperandAssignment_1_2 + { + pushFollow(FOLLOW_2); + rule__ALSOverride__RightOperandAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSOverrideAccess().getRightOperandAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOverride__Group_1__2__Impl" + + + // $ANTLR start "rule__ALSRangeRestrictionRight__Group__0" + // InternalAlloyLanguage.g:5452:1: rule__ALSRangeRestrictionRight__Group__0 : rule__ALSRangeRestrictionRight__Group__0__Impl rule__ALSRangeRestrictionRight__Group__1 ; + public final void rule__ALSRangeRestrictionRight__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5456:1: ( rule__ALSRangeRestrictionRight__Group__0__Impl rule__ALSRangeRestrictionRight__Group__1 ) + // InternalAlloyLanguage.g:5457:2: rule__ALSRangeRestrictionRight__Group__0__Impl rule__ALSRangeRestrictionRight__Group__1 + { + pushFollow(FOLLOW_38); + rule__ALSRangeRestrictionRight__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRangeRestrictionRight__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionRight__Group__0" + + + // $ANTLR start "rule__ALSRangeRestrictionRight__Group__0__Impl" + // InternalAlloyLanguage.g:5464:1: rule__ALSRangeRestrictionRight__Group__0__Impl : ( ruleALSRangeRestrictionLeft ) ; + public final void rule__ALSRangeRestrictionRight__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5468:1: ( ( ruleALSRangeRestrictionLeft ) ) + // InternalAlloyLanguage.g:5469:1: ( ruleALSRangeRestrictionLeft ) + { + // InternalAlloyLanguage.g:5469:1: ( ruleALSRangeRestrictionLeft ) + // InternalAlloyLanguage.g:5470:1: ruleALSRangeRestrictionLeft + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRangeRestrictionRightAccess().getALSRangeRestrictionLeftParserRuleCall_0()); + } + pushFollow(FOLLOW_2); + ruleALSRangeRestrictionLeft(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRangeRestrictionRightAccess().getALSRangeRestrictionLeftParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionRight__Group__0__Impl" + + + // $ANTLR start "rule__ALSRangeRestrictionRight__Group__1" + // InternalAlloyLanguage.g:5481:1: rule__ALSRangeRestrictionRight__Group__1 : rule__ALSRangeRestrictionRight__Group__1__Impl ; + public final void rule__ALSRangeRestrictionRight__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5485:1: ( rule__ALSRangeRestrictionRight__Group__1__Impl ) + // InternalAlloyLanguage.g:5486:2: rule__ALSRangeRestrictionRight__Group__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSRangeRestrictionRight__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionRight__Group__1" + + + // $ANTLR start "rule__ALSRangeRestrictionRight__Group__1__Impl" + // InternalAlloyLanguage.g:5492:1: rule__ALSRangeRestrictionRight__Group__1__Impl : ( ( rule__ALSRangeRestrictionRight__Group_1__0 )? ) ; + public final void rule__ALSRangeRestrictionRight__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5496:1: ( ( ( rule__ALSRangeRestrictionRight__Group_1__0 )? ) ) + // InternalAlloyLanguage.g:5497:1: ( ( rule__ALSRangeRestrictionRight__Group_1__0 )? ) + { + // InternalAlloyLanguage.g:5497:1: ( ( rule__ALSRangeRestrictionRight__Group_1__0 )? ) + // InternalAlloyLanguage.g:5498:1: ( rule__ALSRangeRestrictionRight__Group_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRangeRestrictionRightAccess().getGroup_1()); + } + // InternalAlloyLanguage.g:5499:1: ( rule__ALSRangeRestrictionRight__Group_1__0 )? + int alt37=2; + int LA37_0 = input.LA(1); + + if ( (LA37_0==54) ) { + alt37=1; + } + switch (alt37) { + case 1 : + // InternalAlloyLanguage.g:5499:2: rule__ALSRangeRestrictionRight__Group_1__0 + { + pushFollow(FOLLOW_2); + rule__ALSRangeRestrictionRight__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRangeRestrictionRightAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionRight__Group__1__Impl" + + + // $ANTLR start "rule__ALSRangeRestrictionRight__Group_1__0" + // InternalAlloyLanguage.g:5513:1: rule__ALSRangeRestrictionRight__Group_1__0 : rule__ALSRangeRestrictionRight__Group_1__0__Impl rule__ALSRangeRestrictionRight__Group_1__1 ; + public final void rule__ALSRangeRestrictionRight__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5517:1: ( rule__ALSRangeRestrictionRight__Group_1__0__Impl rule__ALSRangeRestrictionRight__Group_1__1 ) + // InternalAlloyLanguage.g:5518:2: rule__ALSRangeRestrictionRight__Group_1__0__Impl rule__ALSRangeRestrictionRight__Group_1__1 + { + pushFollow(FOLLOW_38); + rule__ALSRangeRestrictionRight__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRangeRestrictionRight__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionRight__Group_1__0" + + + // $ANTLR start "rule__ALSRangeRestrictionRight__Group_1__0__Impl" + // InternalAlloyLanguage.g:5525:1: rule__ALSRangeRestrictionRight__Group_1__0__Impl : ( () ) ; + public final void rule__ALSRangeRestrictionRight__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5529:1: ( ( () ) ) + // InternalAlloyLanguage.g:5530:1: ( () ) + { + // InternalAlloyLanguage.g:5530:1: ( () ) + // InternalAlloyLanguage.g:5531:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRangeRestrictionRightAccess().getALSRangeRestrictionRightRelationAction_1_0()); + } + // InternalAlloyLanguage.g:5532:1: () + // InternalAlloyLanguage.g:5534:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRangeRestrictionRightAccess().getALSRangeRestrictionRightRelationAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionRight__Group_1__0__Impl" + + + // $ANTLR start "rule__ALSRangeRestrictionRight__Group_1__1" + // InternalAlloyLanguage.g:5544:1: rule__ALSRangeRestrictionRight__Group_1__1 : rule__ALSRangeRestrictionRight__Group_1__1__Impl rule__ALSRangeRestrictionRight__Group_1__2 ; + public final void rule__ALSRangeRestrictionRight__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5548:1: ( rule__ALSRangeRestrictionRight__Group_1__1__Impl rule__ALSRangeRestrictionRight__Group_1__2 ) + // InternalAlloyLanguage.g:5549:2: rule__ALSRangeRestrictionRight__Group_1__1__Impl rule__ALSRangeRestrictionRight__Group_1__2 + { + pushFollow(FOLLOW_16); + rule__ALSRangeRestrictionRight__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRangeRestrictionRight__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionRight__Group_1__1" + + + // $ANTLR start "rule__ALSRangeRestrictionRight__Group_1__1__Impl" + // InternalAlloyLanguage.g:5556:1: rule__ALSRangeRestrictionRight__Group_1__1__Impl : ( ':>' ) ; + public final void rule__ALSRangeRestrictionRight__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5560:1: ( ( ':>' ) ) + // InternalAlloyLanguage.g:5561:1: ( ':>' ) + { + // InternalAlloyLanguage.g:5561:1: ( ':>' ) + // InternalAlloyLanguage.g:5562:1: ':>' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRangeRestrictionRightAccess().getColonGreaterThanSignKeyword_1_1()); + } + match(input,54,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRangeRestrictionRightAccess().getColonGreaterThanSignKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionRight__Group_1__1__Impl" + + + // $ANTLR start "rule__ALSRangeRestrictionRight__Group_1__2" + // InternalAlloyLanguage.g:5575:1: rule__ALSRangeRestrictionRight__Group_1__2 : rule__ALSRangeRestrictionRight__Group_1__2__Impl ; + public final void rule__ALSRangeRestrictionRight__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5579:1: ( rule__ALSRangeRestrictionRight__Group_1__2__Impl ) + // InternalAlloyLanguage.g:5580:2: rule__ALSRangeRestrictionRight__Group_1__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSRangeRestrictionRight__Group_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionRight__Group_1__2" + + + // $ANTLR start "rule__ALSRangeRestrictionRight__Group_1__2__Impl" + // InternalAlloyLanguage.g:5586:1: rule__ALSRangeRestrictionRight__Group_1__2__Impl : ( ( rule__ALSRangeRestrictionRight__FilterAssignment_1_2 ) ) ; + public final void rule__ALSRangeRestrictionRight__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5590:1: ( ( ( rule__ALSRangeRestrictionRight__FilterAssignment_1_2 ) ) ) + // InternalAlloyLanguage.g:5591:1: ( ( rule__ALSRangeRestrictionRight__FilterAssignment_1_2 ) ) + { + // InternalAlloyLanguage.g:5591:1: ( ( rule__ALSRangeRestrictionRight__FilterAssignment_1_2 ) ) + // InternalAlloyLanguage.g:5592:1: ( rule__ALSRangeRestrictionRight__FilterAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRangeRestrictionRightAccess().getFilterAssignment_1_2()); + } + // InternalAlloyLanguage.g:5593:1: ( rule__ALSRangeRestrictionRight__FilterAssignment_1_2 ) + // InternalAlloyLanguage.g:5593:2: rule__ALSRangeRestrictionRight__FilterAssignment_1_2 + { + pushFollow(FOLLOW_2); + rule__ALSRangeRestrictionRight__FilterAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRangeRestrictionRightAccess().getFilterAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionRight__Group_1__2__Impl" + + + // $ANTLR start "rule__ALSRangeRestrictionLeft__Group__0" + // InternalAlloyLanguage.g:5609:1: rule__ALSRangeRestrictionLeft__Group__0 : rule__ALSRangeRestrictionLeft__Group__0__Impl rule__ALSRangeRestrictionLeft__Group__1 ; + public final void rule__ALSRangeRestrictionLeft__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5613:1: ( rule__ALSRangeRestrictionLeft__Group__0__Impl rule__ALSRangeRestrictionLeft__Group__1 ) + // InternalAlloyLanguage.g:5614:2: rule__ALSRangeRestrictionLeft__Group__0__Impl rule__ALSRangeRestrictionLeft__Group__1 + { + pushFollow(FOLLOW_39); + rule__ALSRangeRestrictionLeft__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRangeRestrictionLeft__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionLeft__Group__0" + + + // $ANTLR start "rule__ALSRangeRestrictionLeft__Group__0__Impl" + // InternalAlloyLanguage.g:5621:1: rule__ALSRangeRestrictionLeft__Group__0__Impl : ( ruleALSJoin ) ; + public final void rule__ALSRangeRestrictionLeft__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5625:1: ( ( ruleALSJoin ) ) + // InternalAlloyLanguage.g:5626:1: ( ruleALSJoin ) + { + // InternalAlloyLanguage.g:5626:1: ( ruleALSJoin ) + // InternalAlloyLanguage.g:5627:1: ruleALSJoin + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRangeRestrictionLeftAccess().getALSJoinParserRuleCall_0()); + } + pushFollow(FOLLOW_2); + ruleALSJoin(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRangeRestrictionLeftAccess().getALSJoinParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionLeft__Group__0__Impl" + + + // $ANTLR start "rule__ALSRangeRestrictionLeft__Group__1" + // InternalAlloyLanguage.g:5638:1: rule__ALSRangeRestrictionLeft__Group__1 : rule__ALSRangeRestrictionLeft__Group__1__Impl ; + public final void rule__ALSRangeRestrictionLeft__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5642:1: ( rule__ALSRangeRestrictionLeft__Group__1__Impl ) + // InternalAlloyLanguage.g:5643:2: rule__ALSRangeRestrictionLeft__Group__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSRangeRestrictionLeft__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionLeft__Group__1" + + + // $ANTLR start "rule__ALSRangeRestrictionLeft__Group__1__Impl" + // InternalAlloyLanguage.g:5649:1: rule__ALSRangeRestrictionLeft__Group__1__Impl : ( ( rule__ALSRangeRestrictionLeft__Group_1__0 )? ) ; + public final void rule__ALSRangeRestrictionLeft__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5653:1: ( ( ( rule__ALSRangeRestrictionLeft__Group_1__0 )? ) ) + // InternalAlloyLanguage.g:5654:1: ( ( rule__ALSRangeRestrictionLeft__Group_1__0 )? ) + { + // InternalAlloyLanguage.g:5654:1: ( ( rule__ALSRangeRestrictionLeft__Group_1__0 )? ) + // InternalAlloyLanguage.g:5655:1: ( rule__ALSRangeRestrictionLeft__Group_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRangeRestrictionLeftAccess().getGroup_1()); + } + // InternalAlloyLanguage.g:5656:1: ( rule__ALSRangeRestrictionLeft__Group_1__0 )? + int alt38=2; + int LA38_0 = input.LA(1); + + if ( (LA38_0==55) ) { + alt38=1; + } + switch (alt38) { + case 1 : + // InternalAlloyLanguage.g:5656:2: rule__ALSRangeRestrictionLeft__Group_1__0 + { + pushFollow(FOLLOW_2); + rule__ALSRangeRestrictionLeft__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRangeRestrictionLeftAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionLeft__Group__1__Impl" + + + // $ANTLR start "rule__ALSRangeRestrictionLeft__Group_1__0" + // InternalAlloyLanguage.g:5670:1: rule__ALSRangeRestrictionLeft__Group_1__0 : rule__ALSRangeRestrictionLeft__Group_1__0__Impl rule__ALSRangeRestrictionLeft__Group_1__1 ; + public final void rule__ALSRangeRestrictionLeft__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5674:1: ( rule__ALSRangeRestrictionLeft__Group_1__0__Impl rule__ALSRangeRestrictionLeft__Group_1__1 ) + // InternalAlloyLanguage.g:5675:2: rule__ALSRangeRestrictionLeft__Group_1__0__Impl rule__ALSRangeRestrictionLeft__Group_1__1 + { + pushFollow(FOLLOW_39); + rule__ALSRangeRestrictionLeft__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRangeRestrictionLeft__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionLeft__Group_1__0" + + + // $ANTLR start "rule__ALSRangeRestrictionLeft__Group_1__0__Impl" + // InternalAlloyLanguage.g:5682:1: rule__ALSRangeRestrictionLeft__Group_1__0__Impl : ( () ) ; + public final void rule__ALSRangeRestrictionLeft__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5686:1: ( ( () ) ) + // InternalAlloyLanguage.g:5687:1: ( () ) + { + // InternalAlloyLanguage.g:5687:1: ( () ) + // InternalAlloyLanguage.g:5688:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRangeRestrictionLeftAccess().getALSRangeRestrictionLeftFilterAction_1_0()); + } + // InternalAlloyLanguage.g:5689:1: () + // InternalAlloyLanguage.g:5691:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRangeRestrictionLeftAccess().getALSRangeRestrictionLeftFilterAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionLeft__Group_1__0__Impl" + + + // $ANTLR start "rule__ALSRangeRestrictionLeft__Group_1__1" + // InternalAlloyLanguage.g:5701:1: rule__ALSRangeRestrictionLeft__Group_1__1 : rule__ALSRangeRestrictionLeft__Group_1__1__Impl rule__ALSRangeRestrictionLeft__Group_1__2 ; + public final void rule__ALSRangeRestrictionLeft__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5705:1: ( rule__ALSRangeRestrictionLeft__Group_1__1__Impl rule__ALSRangeRestrictionLeft__Group_1__2 ) + // InternalAlloyLanguage.g:5706:2: rule__ALSRangeRestrictionLeft__Group_1__1__Impl rule__ALSRangeRestrictionLeft__Group_1__2 + { + pushFollow(FOLLOW_16); + rule__ALSRangeRestrictionLeft__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRangeRestrictionLeft__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionLeft__Group_1__1" + + + // $ANTLR start "rule__ALSRangeRestrictionLeft__Group_1__1__Impl" + // InternalAlloyLanguage.g:5713:1: rule__ALSRangeRestrictionLeft__Group_1__1__Impl : ( '<:' ) ; + public final void rule__ALSRangeRestrictionLeft__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5717:1: ( ( '<:' ) ) + // InternalAlloyLanguage.g:5718:1: ( '<:' ) + { + // InternalAlloyLanguage.g:5718:1: ( '<:' ) + // InternalAlloyLanguage.g:5719:1: '<:' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRangeRestrictionLeftAccess().getLessThanSignColonKeyword_1_1()); + } + match(input,55,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRangeRestrictionLeftAccess().getLessThanSignColonKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionLeft__Group_1__1__Impl" + + + // $ANTLR start "rule__ALSRangeRestrictionLeft__Group_1__2" + // InternalAlloyLanguage.g:5732:1: rule__ALSRangeRestrictionLeft__Group_1__2 : rule__ALSRangeRestrictionLeft__Group_1__2__Impl ; + public final void rule__ALSRangeRestrictionLeft__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5736:1: ( rule__ALSRangeRestrictionLeft__Group_1__2__Impl ) + // InternalAlloyLanguage.g:5737:2: rule__ALSRangeRestrictionLeft__Group_1__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSRangeRestrictionLeft__Group_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionLeft__Group_1__2" + + + // $ANTLR start "rule__ALSRangeRestrictionLeft__Group_1__2__Impl" + // InternalAlloyLanguage.g:5743:1: rule__ALSRangeRestrictionLeft__Group_1__2__Impl : ( ( rule__ALSRangeRestrictionLeft__RelationAssignment_1_2 ) ) ; + public final void rule__ALSRangeRestrictionLeft__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5747:1: ( ( ( rule__ALSRangeRestrictionLeft__RelationAssignment_1_2 ) ) ) + // InternalAlloyLanguage.g:5748:1: ( ( rule__ALSRangeRestrictionLeft__RelationAssignment_1_2 ) ) + { + // InternalAlloyLanguage.g:5748:1: ( ( rule__ALSRangeRestrictionLeft__RelationAssignment_1_2 ) ) + // InternalAlloyLanguage.g:5749:1: ( rule__ALSRangeRestrictionLeft__RelationAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRangeRestrictionLeftAccess().getRelationAssignment_1_2()); + } + // InternalAlloyLanguage.g:5750:1: ( rule__ALSRangeRestrictionLeft__RelationAssignment_1_2 ) + // InternalAlloyLanguage.g:5750:2: rule__ALSRangeRestrictionLeft__RelationAssignment_1_2 + { + pushFollow(FOLLOW_2); + rule__ALSRangeRestrictionLeft__RelationAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRangeRestrictionLeftAccess().getRelationAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionLeft__Group_1__2__Impl" + + + // $ANTLR start "rule__ALSJoin__Group__0" + // InternalAlloyLanguage.g:5766:1: rule__ALSJoin__Group__0 : rule__ALSJoin__Group__0__Impl rule__ALSJoin__Group__1 ; + public final void rule__ALSJoin__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5770:1: ( rule__ALSJoin__Group__0__Impl rule__ALSJoin__Group__1 ) + // InternalAlloyLanguage.g:5771:2: rule__ALSJoin__Group__0__Impl rule__ALSJoin__Group__1 + { + pushFollow(FOLLOW_40); + rule__ALSJoin__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSJoin__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSJoin__Group__0" + + + // $ANTLR start "rule__ALSJoin__Group__0__Impl" + // InternalAlloyLanguage.g:5778:1: rule__ALSJoin__Group__0__Impl : ( ruleALSMinus ) ; + public final void rule__ALSJoin__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5782:1: ( ( ruleALSMinus ) ) + // InternalAlloyLanguage.g:5783:1: ( ruleALSMinus ) + { + // InternalAlloyLanguage.g:5783:1: ( ruleALSMinus ) + // InternalAlloyLanguage.g:5784:1: ruleALSMinus + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSJoinAccess().getALSMinusParserRuleCall_0()); + } + pushFollow(FOLLOW_2); + ruleALSMinus(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSJoinAccess().getALSMinusParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSJoin__Group__0__Impl" + + + // $ANTLR start "rule__ALSJoin__Group__1" + // InternalAlloyLanguage.g:5795:1: rule__ALSJoin__Group__1 : rule__ALSJoin__Group__1__Impl ; + public final void rule__ALSJoin__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5799:1: ( rule__ALSJoin__Group__1__Impl ) + // InternalAlloyLanguage.g:5800:2: rule__ALSJoin__Group__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSJoin__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSJoin__Group__1" + + + // $ANTLR start "rule__ALSJoin__Group__1__Impl" + // InternalAlloyLanguage.g:5806:1: rule__ALSJoin__Group__1__Impl : ( ( rule__ALSJoin__Group_1__0 )* ) ; + public final void rule__ALSJoin__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5810:1: ( ( ( rule__ALSJoin__Group_1__0 )* ) ) + // InternalAlloyLanguage.g:5811:1: ( ( rule__ALSJoin__Group_1__0 )* ) + { + // InternalAlloyLanguage.g:5811:1: ( ( rule__ALSJoin__Group_1__0 )* ) + // InternalAlloyLanguage.g:5812:1: ( rule__ALSJoin__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSJoinAccess().getGroup_1()); + } + // InternalAlloyLanguage.g:5813:1: ( rule__ALSJoin__Group_1__0 )* + loop39: + do { + int alt39=2; + int LA39_0 = input.LA(1); + + if ( (LA39_0==56) ) { + alt39=1; + } + + + switch (alt39) { + case 1 : + // InternalAlloyLanguage.g:5813:2: rule__ALSJoin__Group_1__0 + { + pushFollow(FOLLOW_41); + rule__ALSJoin__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop39; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSJoinAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSJoin__Group__1__Impl" + + + // $ANTLR start "rule__ALSJoin__Group_1__0" + // InternalAlloyLanguage.g:5827:1: rule__ALSJoin__Group_1__0 : rule__ALSJoin__Group_1__0__Impl rule__ALSJoin__Group_1__1 ; + public final void rule__ALSJoin__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5831:1: ( rule__ALSJoin__Group_1__0__Impl rule__ALSJoin__Group_1__1 ) + // InternalAlloyLanguage.g:5832:2: rule__ALSJoin__Group_1__0__Impl rule__ALSJoin__Group_1__1 + { + pushFollow(FOLLOW_40); + rule__ALSJoin__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSJoin__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSJoin__Group_1__0" + + + // $ANTLR start "rule__ALSJoin__Group_1__0__Impl" + // InternalAlloyLanguage.g:5839:1: rule__ALSJoin__Group_1__0__Impl : ( () ) ; + public final void rule__ALSJoin__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5843:1: ( ( () ) ) + // InternalAlloyLanguage.g:5844:1: ( () ) + { + // InternalAlloyLanguage.g:5844:1: ( () ) + // InternalAlloyLanguage.g:5845:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSJoinAccess().getALSJoinLeftOperandAction_1_0()); + } + // InternalAlloyLanguage.g:5846:1: () + // InternalAlloyLanguage.g:5848:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSJoinAccess().getALSJoinLeftOperandAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSJoin__Group_1__0__Impl" + + + // $ANTLR start "rule__ALSJoin__Group_1__1" + // InternalAlloyLanguage.g:5858:1: rule__ALSJoin__Group_1__1 : rule__ALSJoin__Group_1__1__Impl rule__ALSJoin__Group_1__2 ; + public final void rule__ALSJoin__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5862:1: ( rule__ALSJoin__Group_1__1__Impl rule__ALSJoin__Group_1__2 ) + // InternalAlloyLanguage.g:5863:2: rule__ALSJoin__Group_1__1__Impl rule__ALSJoin__Group_1__2 + { + pushFollow(FOLLOW_16); + rule__ALSJoin__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSJoin__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSJoin__Group_1__1" + + + // $ANTLR start "rule__ALSJoin__Group_1__1__Impl" + // InternalAlloyLanguage.g:5870:1: rule__ALSJoin__Group_1__1__Impl : ( '.' ) ; + public final void rule__ALSJoin__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5874:1: ( ( '.' ) ) + // InternalAlloyLanguage.g:5875:1: ( '.' ) + { + // InternalAlloyLanguage.g:5875:1: ( '.' ) + // InternalAlloyLanguage.g:5876:1: '.' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSJoinAccess().getFullStopKeyword_1_1()); + } + match(input,56,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSJoinAccess().getFullStopKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSJoin__Group_1__1__Impl" + + + // $ANTLR start "rule__ALSJoin__Group_1__2" + // InternalAlloyLanguage.g:5889:1: rule__ALSJoin__Group_1__2 : rule__ALSJoin__Group_1__2__Impl ; + public final void rule__ALSJoin__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5893:1: ( rule__ALSJoin__Group_1__2__Impl ) + // InternalAlloyLanguage.g:5894:2: rule__ALSJoin__Group_1__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSJoin__Group_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSJoin__Group_1__2" + + + // $ANTLR start "rule__ALSJoin__Group_1__2__Impl" + // InternalAlloyLanguage.g:5900:1: rule__ALSJoin__Group_1__2__Impl : ( ( rule__ALSJoin__RightOperandAssignment_1_2 ) ) ; + public final void rule__ALSJoin__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5904:1: ( ( ( rule__ALSJoin__RightOperandAssignment_1_2 ) ) ) + // InternalAlloyLanguage.g:5905:1: ( ( rule__ALSJoin__RightOperandAssignment_1_2 ) ) + { + // InternalAlloyLanguage.g:5905:1: ( ( rule__ALSJoin__RightOperandAssignment_1_2 ) ) + // InternalAlloyLanguage.g:5906:1: ( rule__ALSJoin__RightOperandAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSJoinAccess().getRightOperandAssignment_1_2()); + } + // InternalAlloyLanguage.g:5907:1: ( rule__ALSJoin__RightOperandAssignment_1_2 ) + // InternalAlloyLanguage.g:5907:2: rule__ALSJoin__RightOperandAssignment_1_2 + { + pushFollow(FOLLOW_2); + rule__ALSJoin__RightOperandAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSJoinAccess().getRightOperandAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSJoin__Group_1__2__Impl" + + + // $ANTLR start "rule__ALSMinus__Group__0" + // InternalAlloyLanguage.g:5923:1: rule__ALSMinus__Group__0 : rule__ALSMinus__Group__0__Impl rule__ALSMinus__Group__1 ; + public final void rule__ALSMinus__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5927:1: ( rule__ALSMinus__Group__0__Impl rule__ALSMinus__Group__1 ) + // InternalAlloyLanguage.g:5928:2: rule__ALSMinus__Group__0__Impl rule__ALSMinus__Group__1 + { + pushFollow(FOLLOW_42); + rule__ALSMinus__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSMinus__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSMinus__Group__0" + + + // $ANTLR start "rule__ALSMinus__Group__0__Impl" + // InternalAlloyLanguage.g:5935:1: rule__ALSMinus__Group__0__Impl : ( ruleALSPlus ) ; + public final void rule__ALSMinus__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5939:1: ( ( ruleALSPlus ) ) + // InternalAlloyLanguage.g:5940:1: ( ruleALSPlus ) + { + // InternalAlloyLanguage.g:5940:1: ( ruleALSPlus ) + // InternalAlloyLanguage.g:5941:1: ruleALSPlus + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSMinusAccess().getALSPlusParserRuleCall_0()); + } + pushFollow(FOLLOW_2); + ruleALSPlus(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSMinusAccess().getALSPlusParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSMinus__Group__0__Impl" + + + // $ANTLR start "rule__ALSMinus__Group__1" + // InternalAlloyLanguage.g:5952:1: rule__ALSMinus__Group__1 : rule__ALSMinus__Group__1__Impl ; + public final void rule__ALSMinus__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5956:1: ( rule__ALSMinus__Group__1__Impl ) + // InternalAlloyLanguage.g:5957:2: rule__ALSMinus__Group__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSMinus__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSMinus__Group__1" + + + // $ANTLR start "rule__ALSMinus__Group__1__Impl" + // InternalAlloyLanguage.g:5963:1: rule__ALSMinus__Group__1__Impl : ( ( rule__ALSMinus__Group_1__0 )* ) ; + public final void rule__ALSMinus__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5967:1: ( ( ( rule__ALSMinus__Group_1__0 )* ) ) + // InternalAlloyLanguage.g:5968:1: ( ( rule__ALSMinus__Group_1__0 )* ) + { + // InternalAlloyLanguage.g:5968:1: ( ( rule__ALSMinus__Group_1__0 )* ) + // InternalAlloyLanguage.g:5969:1: ( rule__ALSMinus__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSMinusAccess().getGroup_1()); + } + // InternalAlloyLanguage.g:5970:1: ( rule__ALSMinus__Group_1__0 )* + loop40: + do { + int alt40=2; + int LA40_0 = input.LA(1); + + if ( (LA40_0==57) ) { + alt40=1; + } + + + switch (alt40) { + case 1 : + // InternalAlloyLanguage.g:5970:2: rule__ALSMinus__Group_1__0 + { + pushFollow(FOLLOW_43); + rule__ALSMinus__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop40; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSMinusAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSMinus__Group__1__Impl" + + + // $ANTLR start "rule__ALSMinus__Group_1__0" + // InternalAlloyLanguage.g:5984:1: rule__ALSMinus__Group_1__0 : rule__ALSMinus__Group_1__0__Impl rule__ALSMinus__Group_1__1 ; + public final void rule__ALSMinus__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:5988:1: ( rule__ALSMinus__Group_1__0__Impl rule__ALSMinus__Group_1__1 ) + // InternalAlloyLanguage.g:5989:2: rule__ALSMinus__Group_1__0__Impl rule__ALSMinus__Group_1__1 + { + pushFollow(FOLLOW_42); + rule__ALSMinus__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSMinus__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSMinus__Group_1__0" + + + // $ANTLR start "rule__ALSMinus__Group_1__0__Impl" + // InternalAlloyLanguage.g:5996:1: rule__ALSMinus__Group_1__0__Impl : ( () ) ; + public final void rule__ALSMinus__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6000:1: ( ( () ) ) + // InternalAlloyLanguage.g:6001:1: ( () ) + { + // InternalAlloyLanguage.g:6001:1: ( () ) + // InternalAlloyLanguage.g:6002:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSMinusAccess().getALSMinusLeftOperandAction_1_0()); + } + // InternalAlloyLanguage.g:6003:1: () + // InternalAlloyLanguage.g:6005:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSMinusAccess().getALSMinusLeftOperandAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSMinus__Group_1__0__Impl" + + + // $ANTLR start "rule__ALSMinus__Group_1__1" + // InternalAlloyLanguage.g:6015:1: rule__ALSMinus__Group_1__1 : rule__ALSMinus__Group_1__1__Impl rule__ALSMinus__Group_1__2 ; + public final void rule__ALSMinus__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6019:1: ( rule__ALSMinus__Group_1__1__Impl rule__ALSMinus__Group_1__2 ) + // InternalAlloyLanguage.g:6020:2: rule__ALSMinus__Group_1__1__Impl rule__ALSMinus__Group_1__2 + { + pushFollow(FOLLOW_16); + rule__ALSMinus__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSMinus__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSMinus__Group_1__1" + + + // $ANTLR start "rule__ALSMinus__Group_1__1__Impl" + // InternalAlloyLanguage.g:6027:1: rule__ALSMinus__Group_1__1__Impl : ( '-' ) ; + public final void rule__ALSMinus__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6031:1: ( ( '-' ) ) + // InternalAlloyLanguage.g:6032:1: ( '-' ) + { + // InternalAlloyLanguage.g:6032:1: ( '-' ) + // InternalAlloyLanguage.g:6033:1: '-' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSMinusAccess().getHyphenMinusKeyword_1_1()); + } + match(input,57,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSMinusAccess().getHyphenMinusKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSMinus__Group_1__1__Impl" + + + // $ANTLR start "rule__ALSMinus__Group_1__2" + // InternalAlloyLanguage.g:6046:1: rule__ALSMinus__Group_1__2 : rule__ALSMinus__Group_1__2__Impl ; + public final void rule__ALSMinus__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6050:1: ( rule__ALSMinus__Group_1__2__Impl ) + // InternalAlloyLanguage.g:6051:2: rule__ALSMinus__Group_1__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSMinus__Group_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSMinus__Group_1__2" + + + // $ANTLR start "rule__ALSMinus__Group_1__2__Impl" + // InternalAlloyLanguage.g:6057:1: rule__ALSMinus__Group_1__2__Impl : ( ( rule__ALSMinus__RightOperandAssignment_1_2 ) ) ; + public final void rule__ALSMinus__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6061:1: ( ( ( rule__ALSMinus__RightOperandAssignment_1_2 ) ) ) + // InternalAlloyLanguage.g:6062:1: ( ( rule__ALSMinus__RightOperandAssignment_1_2 ) ) + { + // InternalAlloyLanguage.g:6062:1: ( ( rule__ALSMinus__RightOperandAssignment_1_2 ) ) + // InternalAlloyLanguage.g:6063:1: ( rule__ALSMinus__RightOperandAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSMinusAccess().getRightOperandAssignment_1_2()); + } + // InternalAlloyLanguage.g:6064:1: ( rule__ALSMinus__RightOperandAssignment_1_2 ) + // InternalAlloyLanguage.g:6064:2: rule__ALSMinus__RightOperandAssignment_1_2 + { + pushFollow(FOLLOW_2); + rule__ALSMinus__RightOperandAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSMinusAccess().getRightOperandAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSMinus__Group_1__2__Impl" + + + // $ANTLR start "rule__ALSPlus__Group__0" + // InternalAlloyLanguage.g:6080:1: rule__ALSPlus__Group__0 : rule__ALSPlus__Group__0__Impl rule__ALSPlus__Group__1 ; + public final void rule__ALSPlus__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6084:1: ( rule__ALSPlus__Group__0__Impl rule__ALSPlus__Group__1 ) + // InternalAlloyLanguage.g:6085:2: rule__ALSPlus__Group__0__Impl rule__ALSPlus__Group__1 + { + pushFollow(FOLLOW_12); + rule__ALSPlus__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPlus__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPlus__Group__0" + + + // $ANTLR start "rule__ALSPlus__Group__0__Impl" + // InternalAlloyLanguage.g:6092:1: rule__ALSPlus__Group__0__Impl : ( ruleALSIntersection ) ; + public final void rule__ALSPlus__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6096:1: ( ( ruleALSIntersection ) ) + // InternalAlloyLanguage.g:6097:1: ( ruleALSIntersection ) + { + // InternalAlloyLanguage.g:6097:1: ( ruleALSIntersection ) + // InternalAlloyLanguage.g:6098:1: ruleALSIntersection + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPlusAccess().getALSIntersectionParserRuleCall_0()); + } + pushFollow(FOLLOW_2); + ruleALSIntersection(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPlusAccess().getALSIntersectionParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPlus__Group__0__Impl" + + + // $ANTLR start "rule__ALSPlus__Group__1" + // InternalAlloyLanguage.g:6109:1: rule__ALSPlus__Group__1 : rule__ALSPlus__Group__1__Impl ; + public final void rule__ALSPlus__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6113:1: ( rule__ALSPlus__Group__1__Impl ) + // InternalAlloyLanguage.g:6114:2: rule__ALSPlus__Group__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSPlus__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPlus__Group__1" + + + // $ANTLR start "rule__ALSPlus__Group__1__Impl" + // InternalAlloyLanguage.g:6120:1: rule__ALSPlus__Group__1__Impl : ( ( rule__ALSPlus__Group_1__0 )* ) ; + public final void rule__ALSPlus__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6124:1: ( ( ( rule__ALSPlus__Group_1__0 )* ) ) + // InternalAlloyLanguage.g:6125:1: ( ( rule__ALSPlus__Group_1__0 )* ) + { + // InternalAlloyLanguage.g:6125:1: ( ( rule__ALSPlus__Group_1__0 )* ) + // InternalAlloyLanguage.g:6126:1: ( rule__ALSPlus__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPlusAccess().getGroup_1()); + } + // InternalAlloyLanguage.g:6127:1: ( rule__ALSPlus__Group_1__0 )* + loop41: + do { + int alt41=2; + int LA41_0 = input.LA(1); + + if ( (LA41_0==39) ) { + alt41=1; + } + + + switch (alt41) { + case 1 : + // InternalAlloyLanguage.g:6127:2: rule__ALSPlus__Group_1__0 + { + pushFollow(FOLLOW_13); + rule__ALSPlus__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop41; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPlusAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPlus__Group__1__Impl" + + + // $ANTLR start "rule__ALSPlus__Group_1__0" + // InternalAlloyLanguage.g:6141:1: rule__ALSPlus__Group_1__0 : rule__ALSPlus__Group_1__0__Impl rule__ALSPlus__Group_1__1 ; + public final void rule__ALSPlus__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6145:1: ( rule__ALSPlus__Group_1__0__Impl rule__ALSPlus__Group_1__1 ) + // InternalAlloyLanguage.g:6146:2: rule__ALSPlus__Group_1__0__Impl rule__ALSPlus__Group_1__1 + { + pushFollow(FOLLOW_12); + rule__ALSPlus__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPlus__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPlus__Group_1__0" + + + // $ANTLR start "rule__ALSPlus__Group_1__0__Impl" + // InternalAlloyLanguage.g:6153:1: rule__ALSPlus__Group_1__0__Impl : ( () ) ; + public final void rule__ALSPlus__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6157:1: ( ( () ) ) + // InternalAlloyLanguage.g:6158:1: ( () ) + { + // InternalAlloyLanguage.g:6158:1: ( () ) + // InternalAlloyLanguage.g:6159:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPlusAccess().getALSPlusLeftOperandAction_1_0()); + } + // InternalAlloyLanguage.g:6160:1: () + // InternalAlloyLanguage.g:6162:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPlusAccess().getALSPlusLeftOperandAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPlus__Group_1__0__Impl" + + + // $ANTLR start "rule__ALSPlus__Group_1__1" + // InternalAlloyLanguage.g:6172:1: rule__ALSPlus__Group_1__1 : rule__ALSPlus__Group_1__1__Impl rule__ALSPlus__Group_1__2 ; + public final void rule__ALSPlus__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6176:1: ( rule__ALSPlus__Group_1__1__Impl rule__ALSPlus__Group_1__2 ) + // InternalAlloyLanguage.g:6177:2: rule__ALSPlus__Group_1__1__Impl rule__ALSPlus__Group_1__2 + { + pushFollow(FOLLOW_16); + rule__ALSPlus__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPlus__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPlus__Group_1__1" + + + // $ANTLR start "rule__ALSPlus__Group_1__1__Impl" + // InternalAlloyLanguage.g:6184:1: rule__ALSPlus__Group_1__1__Impl : ( '+' ) ; + public final void rule__ALSPlus__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6188:1: ( ( '+' ) ) + // InternalAlloyLanguage.g:6189:1: ( '+' ) + { + // InternalAlloyLanguage.g:6189:1: ( '+' ) + // InternalAlloyLanguage.g:6190:1: '+' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPlusAccess().getPlusSignKeyword_1_1()); + } + match(input,39,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPlusAccess().getPlusSignKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPlus__Group_1__1__Impl" + + + // $ANTLR start "rule__ALSPlus__Group_1__2" + // InternalAlloyLanguage.g:6203:1: rule__ALSPlus__Group_1__2 : rule__ALSPlus__Group_1__2__Impl ; + public final void rule__ALSPlus__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6207:1: ( rule__ALSPlus__Group_1__2__Impl ) + // InternalAlloyLanguage.g:6208:2: rule__ALSPlus__Group_1__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSPlus__Group_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPlus__Group_1__2" + + + // $ANTLR start "rule__ALSPlus__Group_1__2__Impl" + // InternalAlloyLanguage.g:6214:1: rule__ALSPlus__Group_1__2__Impl : ( ( rule__ALSPlus__RightOperandAssignment_1_2 ) ) ; + public final void rule__ALSPlus__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6218:1: ( ( ( rule__ALSPlus__RightOperandAssignment_1_2 ) ) ) + // InternalAlloyLanguage.g:6219:1: ( ( rule__ALSPlus__RightOperandAssignment_1_2 ) ) + { + // InternalAlloyLanguage.g:6219:1: ( ( rule__ALSPlus__RightOperandAssignment_1_2 ) ) + // InternalAlloyLanguage.g:6220:1: ( rule__ALSPlus__RightOperandAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPlusAccess().getRightOperandAssignment_1_2()); + } + // InternalAlloyLanguage.g:6221:1: ( rule__ALSPlus__RightOperandAssignment_1_2 ) + // InternalAlloyLanguage.g:6221:2: rule__ALSPlus__RightOperandAssignment_1_2 + { + pushFollow(FOLLOW_2); + rule__ALSPlus__RightOperandAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPlusAccess().getRightOperandAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPlus__Group_1__2__Impl" + + + // $ANTLR start "rule__ALSIntersection__Group__0" + // InternalAlloyLanguage.g:6237:1: rule__ALSIntersection__Group__0 : rule__ALSIntersection__Group__0__Impl rule__ALSIntersection__Group__1 ; + public final void rule__ALSIntersection__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6241:1: ( rule__ALSIntersection__Group__0__Impl rule__ALSIntersection__Group__1 ) + // InternalAlloyLanguage.g:6242:2: rule__ALSIntersection__Group__0__Impl rule__ALSIntersection__Group__1 + { + pushFollow(FOLLOW_44); + rule__ALSIntersection__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSIntersection__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIntersection__Group__0" + + + // $ANTLR start "rule__ALSIntersection__Group__0__Impl" + // InternalAlloyLanguage.g:6249:1: rule__ALSIntersection__Group__0__Impl : ( ruleALSDirectProduct ) ; + public final void rule__ALSIntersection__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6253:1: ( ( ruleALSDirectProduct ) ) + // InternalAlloyLanguage.g:6254:1: ( ruleALSDirectProduct ) + { + // InternalAlloyLanguage.g:6254:1: ( ruleALSDirectProduct ) + // InternalAlloyLanguage.g:6255:1: ruleALSDirectProduct + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIntersectionAccess().getALSDirectProductParserRuleCall_0()); + } + pushFollow(FOLLOW_2); + ruleALSDirectProduct(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIntersectionAccess().getALSDirectProductParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIntersection__Group__0__Impl" + + + // $ANTLR start "rule__ALSIntersection__Group__1" + // InternalAlloyLanguage.g:6266:1: rule__ALSIntersection__Group__1 : rule__ALSIntersection__Group__1__Impl ; + public final void rule__ALSIntersection__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6270:1: ( rule__ALSIntersection__Group__1__Impl ) + // InternalAlloyLanguage.g:6271:2: rule__ALSIntersection__Group__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSIntersection__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIntersection__Group__1" + + + // $ANTLR start "rule__ALSIntersection__Group__1__Impl" + // InternalAlloyLanguage.g:6277:1: rule__ALSIntersection__Group__1__Impl : ( ( rule__ALSIntersection__Group_1__0 )* ) ; + public final void rule__ALSIntersection__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6281:1: ( ( ( rule__ALSIntersection__Group_1__0 )* ) ) + // InternalAlloyLanguage.g:6282:1: ( ( rule__ALSIntersection__Group_1__0 )* ) + { + // InternalAlloyLanguage.g:6282:1: ( ( rule__ALSIntersection__Group_1__0 )* ) + // InternalAlloyLanguage.g:6283:1: ( rule__ALSIntersection__Group_1__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIntersectionAccess().getGroup_1()); + } + // InternalAlloyLanguage.g:6284:1: ( rule__ALSIntersection__Group_1__0 )* + loop42: + do { + int alt42=2; + int LA42_0 = input.LA(1); + + if ( (LA42_0==58) ) { + alt42=1; + } + + + switch (alt42) { + case 1 : + // InternalAlloyLanguage.g:6284:2: rule__ALSIntersection__Group_1__0 + { + pushFollow(FOLLOW_45); + rule__ALSIntersection__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop42; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIntersectionAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIntersection__Group__1__Impl" + + + // $ANTLR start "rule__ALSIntersection__Group_1__0" + // InternalAlloyLanguage.g:6298:1: rule__ALSIntersection__Group_1__0 : rule__ALSIntersection__Group_1__0__Impl rule__ALSIntersection__Group_1__1 ; + public final void rule__ALSIntersection__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6302:1: ( rule__ALSIntersection__Group_1__0__Impl rule__ALSIntersection__Group_1__1 ) + // InternalAlloyLanguage.g:6303:2: rule__ALSIntersection__Group_1__0__Impl rule__ALSIntersection__Group_1__1 + { + pushFollow(FOLLOW_44); + rule__ALSIntersection__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSIntersection__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIntersection__Group_1__0" + + + // $ANTLR start "rule__ALSIntersection__Group_1__0__Impl" + // InternalAlloyLanguage.g:6310:1: rule__ALSIntersection__Group_1__0__Impl : ( () ) ; + public final void rule__ALSIntersection__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6314:1: ( ( () ) ) + // InternalAlloyLanguage.g:6315:1: ( () ) + { + // InternalAlloyLanguage.g:6315:1: ( () ) + // InternalAlloyLanguage.g:6316:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIntersectionAccess().getALSIntersectionLeftOperandAction_1_0()); + } + // InternalAlloyLanguage.g:6317:1: () + // InternalAlloyLanguage.g:6319:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIntersectionAccess().getALSIntersectionLeftOperandAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIntersection__Group_1__0__Impl" + + + // $ANTLR start "rule__ALSIntersection__Group_1__1" + // InternalAlloyLanguage.g:6329:1: rule__ALSIntersection__Group_1__1 : rule__ALSIntersection__Group_1__1__Impl rule__ALSIntersection__Group_1__2 ; + public final void rule__ALSIntersection__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6333:1: ( rule__ALSIntersection__Group_1__1__Impl rule__ALSIntersection__Group_1__2 ) + // InternalAlloyLanguage.g:6334:2: rule__ALSIntersection__Group_1__1__Impl rule__ALSIntersection__Group_1__2 + { + pushFollow(FOLLOW_16); + rule__ALSIntersection__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSIntersection__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIntersection__Group_1__1" + + + // $ANTLR start "rule__ALSIntersection__Group_1__1__Impl" + // InternalAlloyLanguage.g:6341:1: rule__ALSIntersection__Group_1__1__Impl : ( '&' ) ; + public final void rule__ALSIntersection__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6345:1: ( ( '&' ) ) + // InternalAlloyLanguage.g:6346:1: ( '&' ) + { + // InternalAlloyLanguage.g:6346:1: ( '&' ) + // InternalAlloyLanguage.g:6347:1: '&' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIntersectionAccess().getAmpersandKeyword_1_1()); + } + match(input,58,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIntersectionAccess().getAmpersandKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIntersection__Group_1__1__Impl" + + + // $ANTLR start "rule__ALSIntersection__Group_1__2" + // InternalAlloyLanguage.g:6360:1: rule__ALSIntersection__Group_1__2 : rule__ALSIntersection__Group_1__2__Impl ; + public final void rule__ALSIntersection__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6364:1: ( rule__ALSIntersection__Group_1__2__Impl ) + // InternalAlloyLanguage.g:6365:2: rule__ALSIntersection__Group_1__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSIntersection__Group_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIntersection__Group_1__2" + + + // $ANTLR start "rule__ALSIntersection__Group_1__2__Impl" + // InternalAlloyLanguage.g:6371:1: rule__ALSIntersection__Group_1__2__Impl : ( ( rule__ALSIntersection__RightOperandAssignment_1_2 ) ) ; + public final void rule__ALSIntersection__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6375:1: ( ( ( rule__ALSIntersection__RightOperandAssignment_1_2 ) ) ) + // InternalAlloyLanguage.g:6376:1: ( ( rule__ALSIntersection__RightOperandAssignment_1_2 ) ) + { + // InternalAlloyLanguage.g:6376:1: ( ( rule__ALSIntersection__RightOperandAssignment_1_2 ) ) + // InternalAlloyLanguage.g:6377:1: ( rule__ALSIntersection__RightOperandAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIntersectionAccess().getRightOperandAssignment_1_2()); + } + // InternalAlloyLanguage.g:6378:1: ( rule__ALSIntersection__RightOperandAssignment_1_2 ) + // InternalAlloyLanguage.g:6378:2: rule__ALSIntersection__RightOperandAssignment_1_2 + { + pushFollow(FOLLOW_2); + rule__ALSIntersection__RightOperandAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIntersectionAccess().getRightOperandAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIntersection__Group_1__2__Impl" + + + // $ANTLR start "rule__ALSDirectProduct__Group__0" + // InternalAlloyLanguage.g:6394:1: rule__ALSDirectProduct__Group__0 : rule__ALSDirectProduct__Group__0__Impl rule__ALSDirectProduct__Group__1 ; + public final void rule__ALSDirectProduct__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6398:1: ( rule__ALSDirectProduct__Group__0__Impl rule__ALSDirectProduct__Group__1 ) + // InternalAlloyLanguage.g:6399:2: rule__ALSDirectProduct__Group__0__Impl rule__ALSDirectProduct__Group__1 + { + pushFollow(FOLLOW_46); + rule__ALSDirectProduct__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSDirectProduct__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDirectProduct__Group__0" + + + // $ANTLR start "rule__ALSDirectProduct__Group__0__Impl" + // InternalAlloyLanguage.g:6406:1: rule__ALSDirectProduct__Group__0__Impl : ( ruleALSPreficed ) ; + public final void rule__ALSDirectProduct__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6410:1: ( ( ruleALSPreficed ) ) + // InternalAlloyLanguage.g:6411:1: ( ruleALSPreficed ) + { + // InternalAlloyLanguage.g:6411:1: ( ruleALSPreficed ) + // InternalAlloyLanguage.g:6412:1: ruleALSPreficed + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDirectProductAccess().getALSPreficedParserRuleCall_0()); + } + pushFollow(FOLLOW_2); + ruleALSPreficed(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDirectProductAccess().getALSPreficedParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDirectProduct__Group__0__Impl" + + + // $ANTLR start "rule__ALSDirectProduct__Group__1" + // InternalAlloyLanguage.g:6423:1: rule__ALSDirectProduct__Group__1 : rule__ALSDirectProduct__Group__1__Impl ; + public final void rule__ALSDirectProduct__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6427:1: ( rule__ALSDirectProduct__Group__1__Impl ) + // InternalAlloyLanguage.g:6428:2: rule__ALSDirectProduct__Group__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSDirectProduct__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDirectProduct__Group__1" + + + // $ANTLR start "rule__ALSDirectProduct__Group__1__Impl" + // InternalAlloyLanguage.g:6434:1: rule__ALSDirectProduct__Group__1__Impl : ( ( rule__ALSDirectProduct__Group_1__0 )? ) ; + public final void rule__ALSDirectProduct__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6438:1: ( ( ( rule__ALSDirectProduct__Group_1__0 )? ) ) + // InternalAlloyLanguage.g:6439:1: ( ( rule__ALSDirectProduct__Group_1__0 )? ) + { + // InternalAlloyLanguage.g:6439:1: ( ( rule__ALSDirectProduct__Group_1__0 )? ) + // InternalAlloyLanguage.g:6440:1: ( rule__ALSDirectProduct__Group_1__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDirectProductAccess().getGroup_1()); + } + // InternalAlloyLanguage.g:6441:1: ( rule__ALSDirectProduct__Group_1__0 )? + int alt43=2; + int LA43_0 = input.LA(1); + + if ( ((LA43_0>=21 && LA43_0<=26)||LA43_0==59) ) { + alt43=1; + } + switch (alt43) { + case 1 : + // InternalAlloyLanguage.g:6441:2: rule__ALSDirectProduct__Group_1__0 + { + pushFollow(FOLLOW_2); + rule__ALSDirectProduct__Group_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDirectProductAccess().getGroup_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDirectProduct__Group__1__Impl" + + + // $ANTLR start "rule__ALSDirectProduct__Group_1__0" + // InternalAlloyLanguage.g:6455:1: rule__ALSDirectProduct__Group_1__0 : rule__ALSDirectProduct__Group_1__0__Impl rule__ALSDirectProduct__Group_1__1 ; + public final void rule__ALSDirectProduct__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6459:1: ( rule__ALSDirectProduct__Group_1__0__Impl rule__ALSDirectProduct__Group_1__1 ) + // InternalAlloyLanguage.g:6460:2: rule__ALSDirectProduct__Group_1__0__Impl rule__ALSDirectProduct__Group_1__1 + { + pushFollow(FOLLOW_46); + rule__ALSDirectProduct__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSDirectProduct__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDirectProduct__Group_1__0" + + + // $ANTLR start "rule__ALSDirectProduct__Group_1__0__Impl" + // InternalAlloyLanguage.g:6467:1: rule__ALSDirectProduct__Group_1__0__Impl : ( () ) ; + public final void rule__ALSDirectProduct__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6471:1: ( ( () ) ) + // InternalAlloyLanguage.g:6472:1: ( () ) + { + // InternalAlloyLanguage.g:6472:1: ( () ) + // InternalAlloyLanguage.g:6473:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDirectProductAccess().getALSDirectProductLeftOperandAction_1_0()); + } + // InternalAlloyLanguage.g:6474:1: () + // InternalAlloyLanguage.g:6476:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDirectProductAccess().getALSDirectProductLeftOperandAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDirectProduct__Group_1__0__Impl" + + + // $ANTLR start "rule__ALSDirectProduct__Group_1__1" + // InternalAlloyLanguage.g:6486:1: rule__ALSDirectProduct__Group_1__1 : rule__ALSDirectProduct__Group_1__1__Impl rule__ALSDirectProduct__Group_1__2 ; + public final void rule__ALSDirectProduct__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6490:1: ( rule__ALSDirectProduct__Group_1__1__Impl rule__ALSDirectProduct__Group_1__2 ) + // InternalAlloyLanguage.g:6491:2: rule__ALSDirectProduct__Group_1__1__Impl rule__ALSDirectProduct__Group_1__2 + { + pushFollow(FOLLOW_46); + rule__ALSDirectProduct__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSDirectProduct__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDirectProduct__Group_1__1" + + + // $ANTLR start "rule__ALSDirectProduct__Group_1__1__Impl" + // InternalAlloyLanguage.g:6498:1: rule__ALSDirectProduct__Group_1__1__Impl : ( ( rule__ALSDirectProduct__LeftMultiplicitAssignment_1_1 )? ) ; + public final void rule__ALSDirectProduct__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6502:1: ( ( ( rule__ALSDirectProduct__LeftMultiplicitAssignment_1_1 )? ) ) + // InternalAlloyLanguage.g:6503:1: ( ( rule__ALSDirectProduct__LeftMultiplicitAssignment_1_1 )? ) + { + // InternalAlloyLanguage.g:6503:1: ( ( rule__ALSDirectProduct__LeftMultiplicitAssignment_1_1 )? ) + // InternalAlloyLanguage.g:6504:1: ( rule__ALSDirectProduct__LeftMultiplicitAssignment_1_1 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDirectProductAccess().getLeftMultiplicitAssignment_1_1()); + } + // InternalAlloyLanguage.g:6505:1: ( rule__ALSDirectProduct__LeftMultiplicitAssignment_1_1 )? + int alt44=2; + int LA44_0 = input.LA(1); + + if ( ((LA44_0>=21 && LA44_0<=26)) ) { + alt44=1; + } + switch (alt44) { + case 1 : + // InternalAlloyLanguage.g:6505:2: rule__ALSDirectProduct__LeftMultiplicitAssignment_1_1 + { + pushFollow(FOLLOW_2); + rule__ALSDirectProduct__LeftMultiplicitAssignment_1_1(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDirectProductAccess().getLeftMultiplicitAssignment_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDirectProduct__Group_1__1__Impl" + + + // $ANTLR start "rule__ALSDirectProduct__Group_1__2" + // InternalAlloyLanguage.g:6515:1: rule__ALSDirectProduct__Group_1__2 : rule__ALSDirectProduct__Group_1__2__Impl rule__ALSDirectProduct__Group_1__3 ; + public final void rule__ALSDirectProduct__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6519:1: ( rule__ALSDirectProduct__Group_1__2__Impl rule__ALSDirectProduct__Group_1__3 ) + // InternalAlloyLanguage.g:6520:2: rule__ALSDirectProduct__Group_1__2__Impl rule__ALSDirectProduct__Group_1__3 + { + pushFollow(FOLLOW_16); + rule__ALSDirectProduct__Group_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSDirectProduct__Group_1__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDirectProduct__Group_1__2" + + + // $ANTLR start "rule__ALSDirectProduct__Group_1__2__Impl" + // InternalAlloyLanguage.g:6527:1: rule__ALSDirectProduct__Group_1__2__Impl : ( '->' ) ; + public final void rule__ALSDirectProduct__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6531:1: ( ( '->' ) ) + // InternalAlloyLanguage.g:6532:1: ( '->' ) + { + // InternalAlloyLanguage.g:6532:1: ( '->' ) + // InternalAlloyLanguage.g:6533:1: '->' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDirectProductAccess().getHyphenMinusGreaterThanSignKeyword_1_2()); + } + match(input,59,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDirectProductAccess().getHyphenMinusGreaterThanSignKeyword_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDirectProduct__Group_1__2__Impl" + + + // $ANTLR start "rule__ALSDirectProduct__Group_1__3" + // InternalAlloyLanguage.g:6546:1: rule__ALSDirectProduct__Group_1__3 : rule__ALSDirectProduct__Group_1__3__Impl rule__ALSDirectProduct__Group_1__4 ; + public final void rule__ALSDirectProduct__Group_1__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6550:1: ( rule__ALSDirectProduct__Group_1__3__Impl rule__ALSDirectProduct__Group_1__4 ) + // InternalAlloyLanguage.g:6551:2: rule__ALSDirectProduct__Group_1__3__Impl rule__ALSDirectProduct__Group_1__4 + { + pushFollow(FOLLOW_16); + rule__ALSDirectProduct__Group_1__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSDirectProduct__Group_1__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDirectProduct__Group_1__3" + + + // $ANTLR start "rule__ALSDirectProduct__Group_1__3__Impl" + // InternalAlloyLanguage.g:6558:1: rule__ALSDirectProduct__Group_1__3__Impl : ( ( rule__ALSDirectProduct__RightMultiplicitAssignment_1_3 )? ) ; + public final void rule__ALSDirectProduct__Group_1__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6562:1: ( ( ( rule__ALSDirectProduct__RightMultiplicitAssignment_1_3 )? ) ) + // InternalAlloyLanguage.g:6563:1: ( ( rule__ALSDirectProduct__RightMultiplicitAssignment_1_3 )? ) + { + // InternalAlloyLanguage.g:6563:1: ( ( rule__ALSDirectProduct__RightMultiplicitAssignment_1_3 )? ) + // InternalAlloyLanguage.g:6564:1: ( rule__ALSDirectProduct__RightMultiplicitAssignment_1_3 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDirectProductAccess().getRightMultiplicitAssignment_1_3()); + } + // InternalAlloyLanguage.g:6565:1: ( rule__ALSDirectProduct__RightMultiplicitAssignment_1_3 )? + int alt45=2; + int LA45_0 = input.LA(1); + + if ( ((LA45_0>=21 && LA45_0<=26)) ) { + alt45=1; + } + switch (alt45) { + case 1 : + // InternalAlloyLanguage.g:6565:2: rule__ALSDirectProduct__RightMultiplicitAssignment_1_3 + { + pushFollow(FOLLOW_2); + rule__ALSDirectProduct__RightMultiplicitAssignment_1_3(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDirectProductAccess().getRightMultiplicitAssignment_1_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDirectProduct__Group_1__3__Impl" + + + // $ANTLR start "rule__ALSDirectProduct__Group_1__4" + // InternalAlloyLanguage.g:6575:1: rule__ALSDirectProduct__Group_1__4 : rule__ALSDirectProduct__Group_1__4__Impl ; + public final void rule__ALSDirectProduct__Group_1__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6579:1: ( rule__ALSDirectProduct__Group_1__4__Impl ) + // InternalAlloyLanguage.g:6580:2: rule__ALSDirectProduct__Group_1__4__Impl + { + pushFollow(FOLLOW_2); + rule__ALSDirectProduct__Group_1__4__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDirectProduct__Group_1__4" + + + // $ANTLR start "rule__ALSDirectProduct__Group_1__4__Impl" + // InternalAlloyLanguage.g:6586:1: rule__ALSDirectProduct__Group_1__4__Impl : ( ( rule__ALSDirectProduct__RightOperandAssignment_1_4 ) ) ; + public final void rule__ALSDirectProduct__Group_1__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6590:1: ( ( ( rule__ALSDirectProduct__RightOperandAssignment_1_4 ) ) ) + // InternalAlloyLanguage.g:6591:1: ( ( rule__ALSDirectProduct__RightOperandAssignment_1_4 ) ) + { + // InternalAlloyLanguage.g:6591:1: ( ( rule__ALSDirectProduct__RightOperandAssignment_1_4 ) ) + // InternalAlloyLanguage.g:6592:1: ( rule__ALSDirectProduct__RightOperandAssignment_1_4 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDirectProductAccess().getRightOperandAssignment_1_4()); + } + // InternalAlloyLanguage.g:6593:1: ( rule__ALSDirectProduct__RightOperandAssignment_1_4 ) + // InternalAlloyLanguage.g:6593:2: rule__ALSDirectProduct__RightOperandAssignment_1_4 + { + pushFollow(FOLLOW_2); + rule__ALSDirectProduct__RightOperandAssignment_1_4(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDirectProductAccess().getRightOperandAssignment_1_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDirectProduct__Group_1__4__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_0__0" + // InternalAlloyLanguage.g:6613:1: rule__ALSPreficed__Group_0__0 : rule__ALSPreficed__Group_0__0__Impl rule__ALSPreficed__Group_0__1 ; + public final void rule__ALSPreficed__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6617:1: ( rule__ALSPreficed__Group_0__0__Impl rule__ALSPreficed__Group_0__1 ) + // InternalAlloyLanguage.g:6618:2: rule__ALSPreficed__Group_0__0__Impl rule__ALSPreficed__Group_0__1 + { + pushFollow(FOLLOW_47); + rule__ALSPreficed__Group_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_0__0" + + + // $ANTLR start "rule__ALSPreficed__Group_0__0__Impl" + // InternalAlloyLanguage.g:6625:1: rule__ALSPreficed__Group_0__0__Impl : ( () ) ; + public final void rule__ALSPreficed__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6629:1: ( ( () ) ) + // InternalAlloyLanguage.g:6630:1: ( () ) + { + // InternalAlloyLanguage.g:6630:1: ( () ) + // InternalAlloyLanguage.g:6631:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getALSNotAction_0_0()); + } + // InternalAlloyLanguage.g:6632:1: () + // InternalAlloyLanguage.g:6634:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getALSNotAction_0_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_0__0__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_0__1" + // InternalAlloyLanguage.g:6644:1: rule__ALSPreficed__Group_0__1 : rule__ALSPreficed__Group_0__1__Impl rule__ALSPreficed__Group_0__2 ; + public final void rule__ALSPreficed__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6648:1: ( rule__ALSPreficed__Group_0__1__Impl rule__ALSPreficed__Group_0__2 ) + // InternalAlloyLanguage.g:6649:2: rule__ALSPreficed__Group_0__1__Impl rule__ALSPreficed__Group_0__2 + { + pushFollow(FOLLOW_16); + rule__ALSPreficed__Group_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_0__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_0__1" + + + // $ANTLR start "rule__ALSPreficed__Group_0__1__Impl" + // InternalAlloyLanguage.g:6656:1: rule__ALSPreficed__Group_0__1__Impl : ( ( rule__ALSPreficed__Group_0_1__0 ) ) ; + public final void rule__ALSPreficed__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6660:1: ( ( ( rule__ALSPreficed__Group_0_1__0 ) ) ) + // InternalAlloyLanguage.g:6661:1: ( ( rule__ALSPreficed__Group_0_1__0 ) ) + { + // InternalAlloyLanguage.g:6661:1: ( ( rule__ALSPreficed__Group_0_1__0 ) ) + // InternalAlloyLanguage.g:6662:1: ( rule__ALSPreficed__Group_0_1__0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getGroup_0_1()); + } + // InternalAlloyLanguage.g:6663:1: ( rule__ALSPreficed__Group_0_1__0 ) + // InternalAlloyLanguage.g:6663:2: rule__ALSPreficed__Group_0_1__0 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_0_1__0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getGroup_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_0__1__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_0__2" + // InternalAlloyLanguage.g:6673:1: rule__ALSPreficed__Group_0__2 : rule__ALSPreficed__Group_0__2__Impl ; + public final void rule__ALSPreficed__Group_0__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6677:1: ( rule__ALSPreficed__Group_0__2__Impl ) + // InternalAlloyLanguage.g:6678:2: rule__ALSPreficed__Group_0__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_0__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_0__2" + + + // $ANTLR start "rule__ALSPreficed__Group_0__2__Impl" + // InternalAlloyLanguage.g:6684:1: rule__ALSPreficed__Group_0__2__Impl : ( ( rule__ALSPreficed__OperandAssignment_0_2 ) ) ; + public final void rule__ALSPreficed__Group_0__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6688:1: ( ( ( rule__ALSPreficed__OperandAssignment_0_2 ) ) ) + // InternalAlloyLanguage.g:6689:1: ( ( rule__ALSPreficed__OperandAssignment_0_2 ) ) + { + // InternalAlloyLanguage.g:6689:1: ( ( rule__ALSPreficed__OperandAssignment_0_2 ) ) + // InternalAlloyLanguage.g:6690:1: ( rule__ALSPreficed__OperandAssignment_0_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getOperandAssignment_0_2()); + } + // InternalAlloyLanguage.g:6691:1: ( rule__ALSPreficed__OperandAssignment_0_2 ) + // InternalAlloyLanguage.g:6691:2: rule__ALSPreficed__OperandAssignment_0_2 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__OperandAssignment_0_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getOperandAssignment_0_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_0__2__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_0_1__0" + // InternalAlloyLanguage.g:6707:1: rule__ALSPreficed__Group_0_1__0 : rule__ALSPreficed__Group_0_1__0__Impl ; + public final void rule__ALSPreficed__Group_0_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6711:1: ( rule__ALSPreficed__Group_0_1__0__Impl ) + // InternalAlloyLanguage.g:6712:2: rule__ALSPreficed__Group_0_1__0__Impl + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_0_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_0_1__0" + + + // $ANTLR start "rule__ALSPreficed__Group_0_1__0__Impl" + // InternalAlloyLanguage.g:6718:1: rule__ALSPreficed__Group_0_1__0__Impl : ( ( rule__ALSPreficed__Alternatives_0_1_0 ) ) ; + public final void rule__ALSPreficed__Group_0_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6722:1: ( ( ( rule__ALSPreficed__Alternatives_0_1_0 ) ) ) + // InternalAlloyLanguage.g:6723:1: ( ( rule__ALSPreficed__Alternatives_0_1_0 ) ) + { + // InternalAlloyLanguage.g:6723:1: ( ( rule__ALSPreficed__Alternatives_0_1_0 ) ) + // InternalAlloyLanguage.g:6724:1: ( rule__ALSPreficed__Alternatives_0_1_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getAlternatives_0_1_0()); + } + // InternalAlloyLanguage.g:6725:1: ( rule__ALSPreficed__Alternatives_0_1_0 ) + // InternalAlloyLanguage.g:6725:2: rule__ALSPreficed__Alternatives_0_1_0 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Alternatives_0_1_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getAlternatives_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_0_1__0__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_1__0" + // InternalAlloyLanguage.g:6737:1: rule__ALSPreficed__Group_1__0 : rule__ALSPreficed__Group_1__0__Impl rule__ALSPreficed__Group_1__1 ; + public final void rule__ALSPreficed__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6741:1: ( rule__ALSPreficed__Group_1__0__Impl rule__ALSPreficed__Group_1__1 ) + // InternalAlloyLanguage.g:6742:2: rule__ALSPreficed__Group_1__0__Impl rule__ALSPreficed__Group_1__1 + { + pushFollow(FOLLOW_48); + rule__ALSPreficed__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_1__0" + + + // $ANTLR start "rule__ALSPreficed__Group_1__0__Impl" + // InternalAlloyLanguage.g:6749:1: rule__ALSPreficed__Group_1__0__Impl : ( () ) ; + public final void rule__ALSPreficed__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6753:1: ( ( () ) ) + // InternalAlloyLanguage.g:6754:1: ( () ) + { + // InternalAlloyLanguage.g:6754:1: ( () ) + // InternalAlloyLanguage.g:6755:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getALSInverseRelationAction_1_0()); + } + // InternalAlloyLanguage.g:6756:1: () + // InternalAlloyLanguage.g:6758:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getALSInverseRelationAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_1__0__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_1__1" + // InternalAlloyLanguage.g:6768:1: rule__ALSPreficed__Group_1__1 : rule__ALSPreficed__Group_1__1__Impl rule__ALSPreficed__Group_1__2 ; + public final void rule__ALSPreficed__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6772:1: ( rule__ALSPreficed__Group_1__1__Impl rule__ALSPreficed__Group_1__2 ) + // InternalAlloyLanguage.g:6773:2: rule__ALSPreficed__Group_1__1__Impl rule__ALSPreficed__Group_1__2 + { + pushFollow(FOLLOW_16); + rule__ALSPreficed__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_1__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_1__1" + + + // $ANTLR start "rule__ALSPreficed__Group_1__1__Impl" + // InternalAlloyLanguage.g:6780:1: rule__ALSPreficed__Group_1__1__Impl : ( ( '~' ) ) ; + public final void rule__ALSPreficed__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6784:1: ( ( ( '~' ) ) ) + // InternalAlloyLanguage.g:6785:1: ( ( '~' ) ) + { + // InternalAlloyLanguage.g:6785:1: ( ( '~' ) ) + // InternalAlloyLanguage.g:6786:1: ( '~' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getTildeKeyword_1_1()); + } + // InternalAlloyLanguage.g:6787:1: ( '~' ) + // InternalAlloyLanguage.g:6788:2: '~' + { + match(input,60,FOLLOW_2); if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getTildeKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_1__1__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_1__2" + // InternalAlloyLanguage.g:6799:1: rule__ALSPreficed__Group_1__2 : rule__ALSPreficed__Group_1__2__Impl ; + public final void rule__ALSPreficed__Group_1__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6803:1: ( rule__ALSPreficed__Group_1__2__Impl ) + // InternalAlloyLanguage.g:6804:2: rule__ALSPreficed__Group_1__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_1__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_1__2" + + + // $ANTLR start "rule__ALSPreficed__Group_1__2__Impl" + // InternalAlloyLanguage.g:6810:1: rule__ALSPreficed__Group_1__2__Impl : ( ( rule__ALSPreficed__OperandAssignment_1_2 ) ) ; + public final void rule__ALSPreficed__Group_1__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6814:1: ( ( ( rule__ALSPreficed__OperandAssignment_1_2 ) ) ) + // InternalAlloyLanguage.g:6815:1: ( ( rule__ALSPreficed__OperandAssignment_1_2 ) ) + { + // InternalAlloyLanguage.g:6815:1: ( ( rule__ALSPreficed__OperandAssignment_1_2 ) ) + // InternalAlloyLanguage.g:6816:1: ( rule__ALSPreficed__OperandAssignment_1_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getOperandAssignment_1_2()); + } + // InternalAlloyLanguage.g:6817:1: ( rule__ALSPreficed__OperandAssignment_1_2 ) + // InternalAlloyLanguage.g:6817:2: rule__ALSPreficed__OperandAssignment_1_2 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__OperandAssignment_1_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getOperandAssignment_1_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_1__2__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_2__0" + // InternalAlloyLanguage.g:6833:1: rule__ALSPreficed__Group_2__0 : rule__ALSPreficed__Group_2__0__Impl rule__ALSPreficed__Group_2__1 ; + public final void rule__ALSPreficed__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6837:1: ( rule__ALSPreficed__Group_2__0__Impl rule__ALSPreficed__Group_2__1 ) + // InternalAlloyLanguage.g:6838:2: rule__ALSPreficed__Group_2__0__Impl rule__ALSPreficed__Group_2__1 + { + pushFollow(FOLLOW_49); + rule__ALSPreficed__Group_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_2__0" + + + // $ANTLR start "rule__ALSPreficed__Group_2__0__Impl" + // InternalAlloyLanguage.g:6845:1: rule__ALSPreficed__Group_2__0__Impl : ( () ) ; + public final void rule__ALSPreficed__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6849:1: ( ( () ) ) + // InternalAlloyLanguage.g:6850:1: ( () ) + { + // InternalAlloyLanguage.g:6850:1: ( () ) + // InternalAlloyLanguage.g:6851:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getAlSTransitiveClosureAction_2_0()); + } + // InternalAlloyLanguage.g:6852:1: () + // InternalAlloyLanguage.g:6854:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getAlSTransitiveClosureAction_2_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_2__0__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_2__1" + // InternalAlloyLanguage.g:6864:1: rule__ALSPreficed__Group_2__1 : rule__ALSPreficed__Group_2__1__Impl rule__ALSPreficed__Group_2__2 ; + public final void rule__ALSPreficed__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6868:1: ( rule__ALSPreficed__Group_2__1__Impl rule__ALSPreficed__Group_2__2 ) + // InternalAlloyLanguage.g:6869:2: rule__ALSPreficed__Group_2__1__Impl rule__ALSPreficed__Group_2__2 + { + pushFollow(FOLLOW_16); + rule__ALSPreficed__Group_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_2__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_2__1" + + + // $ANTLR start "rule__ALSPreficed__Group_2__1__Impl" + // InternalAlloyLanguage.g:6876:1: rule__ALSPreficed__Group_2__1__Impl : ( '^' ) ; + public final void rule__ALSPreficed__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6880:1: ( ( '^' ) ) + // InternalAlloyLanguage.g:6881:1: ( '^' ) + { + // InternalAlloyLanguage.g:6881:1: ( '^' ) + // InternalAlloyLanguage.g:6882:1: '^' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getCircumflexAccentKeyword_2_1()); + } + match(input,61,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getCircumflexAccentKeyword_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_2__1__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_2__2" + // InternalAlloyLanguage.g:6895:1: rule__ALSPreficed__Group_2__2 : rule__ALSPreficed__Group_2__2__Impl ; + public final void rule__ALSPreficed__Group_2__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6899:1: ( rule__ALSPreficed__Group_2__2__Impl ) + // InternalAlloyLanguage.g:6900:2: rule__ALSPreficed__Group_2__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_2__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_2__2" + + + // $ANTLR start "rule__ALSPreficed__Group_2__2__Impl" + // InternalAlloyLanguage.g:6906:1: rule__ALSPreficed__Group_2__2__Impl : ( ( rule__ALSPreficed__OperandAssignment_2_2 ) ) ; + public final void rule__ALSPreficed__Group_2__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6910:1: ( ( ( rule__ALSPreficed__OperandAssignment_2_2 ) ) ) + // InternalAlloyLanguage.g:6911:1: ( ( rule__ALSPreficed__OperandAssignment_2_2 ) ) + { + // InternalAlloyLanguage.g:6911:1: ( ( rule__ALSPreficed__OperandAssignment_2_2 ) ) + // InternalAlloyLanguage.g:6912:1: ( rule__ALSPreficed__OperandAssignment_2_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getOperandAssignment_2_2()); + } + // InternalAlloyLanguage.g:6913:1: ( rule__ALSPreficed__OperandAssignment_2_2 ) + // InternalAlloyLanguage.g:6913:2: rule__ALSPreficed__OperandAssignment_2_2 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__OperandAssignment_2_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getOperandAssignment_2_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_2__2__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_3__0" + // InternalAlloyLanguage.g:6929:1: rule__ALSPreficed__Group_3__0 : rule__ALSPreficed__Group_3__0__Impl rule__ALSPreficed__Group_3__1 ; + public final void rule__ALSPreficed__Group_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6933:1: ( rule__ALSPreficed__Group_3__0__Impl rule__ALSPreficed__Group_3__1 ) + // InternalAlloyLanguage.g:6934:2: rule__ALSPreficed__Group_3__0__Impl rule__ALSPreficed__Group_3__1 + { + pushFollow(FOLLOW_50); + rule__ALSPreficed__Group_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_3__0" + + + // $ANTLR start "rule__ALSPreficed__Group_3__0__Impl" + // InternalAlloyLanguage.g:6941:1: rule__ALSPreficed__Group_3__0__Impl : ( () ) ; + public final void rule__ALSPreficed__Group_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6945:1: ( ( () ) ) + // InternalAlloyLanguage.g:6946:1: ( () ) + { + // InternalAlloyLanguage.g:6946:1: ( () ) + // InternalAlloyLanguage.g:6947:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getALSReflectiveTransitiveClosureAction_3_0()); + } + // InternalAlloyLanguage.g:6948:1: () + // InternalAlloyLanguage.g:6950:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getALSReflectiveTransitiveClosureAction_3_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_3__0__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_3__1" + // InternalAlloyLanguage.g:6960:1: rule__ALSPreficed__Group_3__1 : rule__ALSPreficed__Group_3__1__Impl rule__ALSPreficed__Group_3__2 ; + public final void rule__ALSPreficed__Group_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6964:1: ( rule__ALSPreficed__Group_3__1__Impl rule__ALSPreficed__Group_3__2 ) + // InternalAlloyLanguage.g:6965:2: rule__ALSPreficed__Group_3__1__Impl rule__ALSPreficed__Group_3__2 + { + pushFollow(FOLLOW_16); + rule__ALSPreficed__Group_3__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_3__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_3__1" + + + // $ANTLR start "rule__ALSPreficed__Group_3__1__Impl" + // InternalAlloyLanguage.g:6972:1: rule__ALSPreficed__Group_3__1__Impl : ( '*' ) ; + public final void rule__ALSPreficed__Group_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6976:1: ( ( '*' ) ) + // InternalAlloyLanguage.g:6977:1: ( '*' ) + { + // InternalAlloyLanguage.g:6977:1: ( '*' ) + // InternalAlloyLanguage.g:6978:1: '*' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getAsteriskKeyword_3_1()); + } + match(input,62,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getAsteriskKeyword_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_3__1__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_3__2" + // InternalAlloyLanguage.g:6991:1: rule__ALSPreficed__Group_3__2 : rule__ALSPreficed__Group_3__2__Impl ; + public final void rule__ALSPreficed__Group_3__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:6995:1: ( rule__ALSPreficed__Group_3__2__Impl ) + // InternalAlloyLanguage.g:6996:2: rule__ALSPreficed__Group_3__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_3__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_3__2" + + + // $ANTLR start "rule__ALSPreficed__Group_3__2__Impl" + // InternalAlloyLanguage.g:7002:1: rule__ALSPreficed__Group_3__2__Impl : ( ( rule__ALSPreficed__OperandAssignment_3_2 ) ) ; + public final void rule__ALSPreficed__Group_3__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7006:1: ( ( ( rule__ALSPreficed__OperandAssignment_3_2 ) ) ) + // InternalAlloyLanguage.g:7007:1: ( ( rule__ALSPreficed__OperandAssignment_3_2 ) ) + { + // InternalAlloyLanguage.g:7007:1: ( ( rule__ALSPreficed__OperandAssignment_3_2 ) ) + // InternalAlloyLanguage.g:7008:1: ( rule__ALSPreficed__OperandAssignment_3_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getOperandAssignment_3_2()); + } + // InternalAlloyLanguage.g:7009:1: ( rule__ALSPreficed__OperandAssignment_3_2 ) + // InternalAlloyLanguage.g:7009:2: rule__ALSPreficed__OperandAssignment_3_2 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__OperandAssignment_3_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getOperandAssignment_3_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_3__2__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_4__0" + // InternalAlloyLanguage.g:7025:1: rule__ALSPreficed__Group_4__0 : rule__ALSPreficed__Group_4__0__Impl rule__ALSPreficed__Group_4__1 ; + public final void rule__ALSPreficed__Group_4__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7029:1: ( rule__ALSPreficed__Group_4__0__Impl rule__ALSPreficed__Group_4__1 ) + // InternalAlloyLanguage.g:7030:2: rule__ALSPreficed__Group_4__0__Impl rule__ALSPreficed__Group_4__1 + { + pushFollow(FOLLOW_51); + rule__ALSPreficed__Group_4__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_4__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_4__0" + + + // $ANTLR start "rule__ALSPreficed__Group_4__0__Impl" + // InternalAlloyLanguage.g:7037:1: rule__ALSPreficed__Group_4__0__Impl : ( () ) ; + public final void rule__ALSPreficed__Group_4__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7041:1: ( ( () ) ) + // InternalAlloyLanguage.g:7042:1: ( () ) + { + // InternalAlloyLanguage.g:7042:1: ( () ) + // InternalAlloyLanguage.g:7043:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getALSCardinalityAction_4_0()); + } + // InternalAlloyLanguage.g:7044:1: () + // InternalAlloyLanguage.g:7046:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getALSCardinalityAction_4_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_4__0__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_4__1" + // InternalAlloyLanguage.g:7056:1: rule__ALSPreficed__Group_4__1 : rule__ALSPreficed__Group_4__1__Impl rule__ALSPreficed__Group_4__2 ; + public final void rule__ALSPreficed__Group_4__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7060:1: ( rule__ALSPreficed__Group_4__1__Impl rule__ALSPreficed__Group_4__2 ) + // InternalAlloyLanguage.g:7061:2: rule__ALSPreficed__Group_4__1__Impl rule__ALSPreficed__Group_4__2 + { + pushFollow(FOLLOW_16); + rule__ALSPreficed__Group_4__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_4__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_4__1" + + + // $ANTLR start "rule__ALSPreficed__Group_4__1__Impl" + // InternalAlloyLanguage.g:7068:1: rule__ALSPreficed__Group_4__1__Impl : ( '#' ) ; + public final void rule__ALSPreficed__Group_4__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7072:1: ( ( '#' ) ) + // InternalAlloyLanguage.g:7073:1: ( '#' ) + { + // InternalAlloyLanguage.g:7073:1: ( '#' ) + // InternalAlloyLanguage.g:7074:1: '#' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getNumberSignKeyword_4_1()); + } + match(input,63,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getNumberSignKeyword_4_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_4__1__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_4__2" + // InternalAlloyLanguage.g:7087:1: rule__ALSPreficed__Group_4__2 : rule__ALSPreficed__Group_4__2__Impl ; + public final void rule__ALSPreficed__Group_4__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7091:1: ( rule__ALSPreficed__Group_4__2__Impl ) + // InternalAlloyLanguage.g:7092:2: rule__ALSPreficed__Group_4__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_4__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_4__2" + + + // $ANTLR start "rule__ALSPreficed__Group_4__2__Impl" + // InternalAlloyLanguage.g:7098:1: rule__ALSPreficed__Group_4__2__Impl : ( ( rule__ALSPreficed__OperandAssignment_4_2 ) ) ; + public final void rule__ALSPreficed__Group_4__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7102:1: ( ( ( rule__ALSPreficed__OperandAssignment_4_2 ) ) ) + // InternalAlloyLanguage.g:7103:1: ( ( rule__ALSPreficed__OperandAssignment_4_2 ) ) + { + // InternalAlloyLanguage.g:7103:1: ( ( rule__ALSPreficed__OperandAssignment_4_2 ) ) + // InternalAlloyLanguage.g:7104:1: ( rule__ALSPreficed__OperandAssignment_4_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getOperandAssignment_4_2()); + } + // InternalAlloyLanguage.g:7105:1: ( rule__ALSPreficed__OperandAssignment_4_2 ) + // InternalAlloyLanguage.g:7105:2: rule__ALSPreficed__OperandAssignment_4_2 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__OperandAssignment_4_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getOperandAssignment_4_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_4__2__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_5__0" + // InternalAlloyLanguage.g:7121:1: rule__ALSPreficed__Group_5__0 : rule__ALSPreficed__Group_5__0__Impl rule__ALSPreficed__Group_5__1 ; + public final void rule__ALSPreficed__Group_5__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7125:1: ( rule__ALSPreficed__Group_5__0__Impl rule__ALSPreficed__Group_5__1 ) + // InternalAlloyLanguage.g:7126:2: rule__ALSPreficed__Group_5__0__Impl rule__ALSPreficed__Group_5__1 + { + pushFollow(FOLLOW_42); + rule__ALSPreficed__Group_5__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_5__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_5__0" + + + // $ANTLR start "rule__ALSPreficed__Group_5__0__Impl" + // InternalAlloyLanguage.g:7133:1: rule__ALSPreficed__Group_5__0__Impl : ( () ) ; + public final void rule__ALSPreficed__Group_5__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7137:1: ( ( () ) ) + // InternalAlloyLanguage.g:7138:1: ( () ) + { + // InternalAlloyLanguage.g:7138:1: ( () ) + // InternalAlloyLanguage.g:7139:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getALSUnaryMinusAction_5_0()); + } + // InternalAlloyLanguage.g:7140:1: () + // InternalAlloyLanguage.g:7142:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getALSUnaryMinusAction_5_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_5__0__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_5__1" + // InternalAlloyLanguage.g:7152:1: rule__ALSPreficed__Group_5__1 : rule__ALSPreficed__Group_5__1__Impl rule__ALSPreficed__Group_5__2 ; + public final void rule__ALSPreficed__Group_5__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7156:1: ( rule__ALSPreficed__Group_5__1__Impl rule__ALSPreficed__Group_5__2 ) + // InternalAlloyLanguage.g:7157:2: rule__ALSPreficed__Group_5__1__Impl rule__ALSPreficed__Group_5__2 + { + pushFollow(FOLLOW_16); + rule__ALSPreficed__Group_5__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_5__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_5__1" + + + // $ANTLR start "rule__ALSPreficed__Group_5__1__Impl" + // InternalAlloyLanguage.g:7164:1: rule__ALSPreficed__Group_5__1__Impl : ( ( '-' ) ) ; + public final void rule__ALSPreficed__Group_5__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7168:1: ( ( ( '-' ) ) ) + // InternalAlloyLanguage.g:7169:1: ( ( '-' ) ) + { + // InternalAlloyLanguage.g:7169:1: ( ( '-' ) ) + // InternalAlloyLanguage.g:7170:1: ( '-' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getHyphenMinusKeyword_5_1()); + } + // InternalAlloyLanguage.g:7171:1: ( '-' ) + // InternalAlloyLanguage.g:7172:2: '-' + { + match(input,57,FOLLOW_2); if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getHyphenMinusKeyword_5_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_5__1__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_5__2" + // InternalAlloyLanguage.g:7183:1: rule__ALSPreficed__Group_5__2 : rule__ALSPreficed__Group_5__2__Impl ; + public final void rule__ALSPreficed__Group_5__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7187:1: ( rule__ALSPreficed__Group_5__2__Impl ) + // InternalAlloyLanguage.g:7188:2: rule__ALSPreficed__Group_5__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_5__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_5__2" + + + // $ANTLR start "rule__ALSPreficed__Group_5__2__Impl" + // InternalAlloyLanguage.g:7194:1: rule__ALSPreficed__Group_5__2__Impl : ( ( rule__ALSPreficed__OperandAssignment_5_2 ) ) ; + public final void rule__ALSPreficed__Group_5__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7198:1: ( ( ( rule__ALSPreficed__OperandAssignment_5_2 ) ) ) + // InternalAlloyLanguage.g:7199:1: ( ( rule__ALSPreficed__OperandAssignment_5_2 ) ) + { + // InternalAlloyLanguage.g:7199:1: ( ( rule__ALSPreficed__OperandAssignment_5_2 ) ) + // InternalAlloyLanguage.g:7200:1: ( rule__ALSPreficed__OperandAssignment_5_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getOperandAssignment_5_2()); + } + // InternalAlloyLanguage.g:7201:1: ( rule__ALSPreficed__OperandAssignment_5_2 ) + // InternalAlloyLanguage.g:7201:2: rule__ALSPreficed__OperandAssignment_5_2 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__OperandAssignment_5_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getOperandAssignment_5_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_5__2__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_6__0" + // InternalAlloyLanguage.g:7217:1: rule__ALSPreficed__Group_6__0 : rule__ALSPreficed__Group_6__0__Impl rule__ALSPreficed__Group_6__1 ; + public final void rule__ALSPreficed__Group_6__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7221:1: ( rule__ALSPreficed__Group_6__0__Impl rule__ALSPreficed__Group_6__1 ) + // InternalAlloyLanguage.g:7222:2: rule__ALSPreficed__Group_6__0__Impl rule__ALSPreficed__Group_6__1 + { + pushFollow(FOLLOW_52); + rule__ALSPreficed__Group_6__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_6__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_6__0" + + + // $ANTLR start "rule__ALSPreficed__Group_6__0__Impl" + // InternalAlloyLanguage.g:7229:1: rule__ALSPreficed__Group_6__0__Impl : ( () ) ; + public final void rule__ALSPreficed__Group_6__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7233:1: ( ( () ) ) + // InternalAlloyLanguage.g:7234:1: ( () ) + { + // InternalAlloyLanguage.g:7234:1: ( () ) + // InternalAlloyLanguage.g:7235:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getALSSumAction_6_0()); + } + // InternalAlloyLanguage.g:7236:1: () + // InternalAlloyLanguage.g:7238:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getALSSumAction_6_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_6__0__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_6__1" + // InternalAlloyLanguage.g:7248:1: rule__ALSPreficed__Group_6__1 : rule__ALSPreficed__Group_6__1__Impl rule__ALSPreficed__Group_6__2 ; + public final void rule__ALSPreficed__Group_6__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7252:1: ( rule__ALSPreficed__Group_6__1__Impl rule__ALSPreficed__Group_6__2 ) + // InternalAlloyLanguage.g:7253:2: rule__ALSPreficed__Group_6__1__Impl rule__ALSPreficed__Group_6__2 + { + pushFollow(FOLLOW_5); + rule__ALSPreficed__Group_6__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_6__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_6__1" + + + // $ANTLR start "rule__ALSPreficed__Group_6__1__Impl" + // InternalAlloyLanguage.g:7260:1: rule__ALSPreficed__Group_6__1__Impl : ( 'sum' ) ; + public final void rule__ALSPreficed__Group_6__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7264:1: ( ( 'sum' ) ) + // InternalAlloyLanguage.g:7265:1: ( 'sum' ) + { + // InternalAlloyLanguage.g:7265:1: ( 'sum' ) + // InternalAlloyLanguage.g:7266:1: 'sum' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getSumKeyword_6_1()); + } + match(input,64,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getSumKeyword_6_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_6__1__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_6__2" + // InternalAlloyLanguage.g:7279:1: rule__ALSPreficed__Group_6__2 : rule__ALSPreficed__Group_6__2__Impl rule__ALSPreficed__Group_6__3 ; + public final void rule__ALSPreficed__Group_6__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7283:1: ( rule__ALSPreficed__Group_6__2__Impl rule__ALSPreficed__Group_6__3 ) + // InternalAlloyLanguage.g:7284:2: rule__ALSPreficed__Group_6__2__Impl rule__ALSPreficed__Group_6__3 + { + pushFollow(FOLLOW_24); + rule__ALSPreficed__Group_6__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_6__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_6__2" + + + // $ANTLR start "rule__ALSPreficed__Group_6__2__Impl" + // InternalAlloyLanguage.g:7291:1: rule__ALSPreficed__Group_6__2__Impl : ( ( rule__ALSPreficed__VariablesAssignment_6_2 ) ) ; + public final void rule__ALSPreficed__Group_6__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7295:1: ( ( ( rule__ALSPreficed__VariablesAssignment_6_2 ) ) ) + // InternalAlloyLanguage.g:7296:1: ( ( rule__ALSPreficed__VariablesAssignment_6_2 ) ) + { + // InternalAlloyLanguage.g:7296:1: ( ( rule__ALSPreficed__VariablesAssignment_6_2 ) ) + // InternalAlloyLanguage.g:7297:1: ( rule__ALSPreficed__VariablesAssignment_6_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getVariablesAssignment_6_2()); + } + // InternalAlloyLanguage.g:7298:1: ( rule__ALSPreficed__VariablesAssignment_6_2 ) + // InternalAlloyLanguage.g:7298:2: rule__ALSPreficed__VariablesAssignment_6_2 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__VariablesAssignment_6_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getVariablesAssignment_6_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_6__2__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_6__3" + // InternalAlloyLanguage.g:7308:1: rule__ALSPreficed__Group_6__3 : rule__ALSPreficed__Group_6__3__Impl rule__ALSPreficed__Group_6__4 ; + public final void rule__ALSPreficed__Group_6__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7312:1: ( rule__ALSPreficed__Group_6__3__Impl rule__ALSPreficed__Group_6__4 ) + // InternalAlloyLanguage.g:7313:2: rule__ALSPreficed__Group_6__3__Impl rule__ALSPreficed__Group_6__4 + { + pushFollow(FOLLOW_24); + rule__ALSPreficed__Group_6__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_6__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_6__3" + + + // $ANTLR start "rule__ALSPreficed__Group_6__3__Impl" + // InternalAlloyLanguage.g:7320:1: rule__ALSPreficed__Group_6__3__Impl : ( ( rule__ALSPreficed__Group_6_3__0 )* ) ; + public final void rule__ALSPreficed__Group_6__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7324:1: ( ( ( rule__ALSPreficed__Group_6_3__0 )* ) ) + // InternalAlloyLanguage.g:7325:1: ( ( rule__ALSPreficed__Group_6_3__0 )* ) + { + // InternalAlloyLanguage.g:7325:1: ( ( rule__ALSPreficed__Group_6_3__0 )* ) + // InternalAlloyLanguage.g:7326:1: ( rule__ALSPreficed__Group_6_3__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getGroup_6_3()); + } + // InternalAlloyLanguage.g:7327:1: ( rule__ALSPreficed__Group_6_3__0 )* + loop46: + do { + int alt46=2; + int LA46_0 = input.LA(1); + + if ( (LA46_0==35) ) { + alt46=1; + } + + + switch (alt46) { + case 1 : + // InternalAlloyLanguage.g:7327:2: rule__ALSPreficed__Group_6_3__0 + { + pushFollow(FOLLOW_8); + rule__ALSPreficed__Group_6_3__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop46; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getGroup_6_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_6__3__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_6__4" + // InternalAlloyLanguage.g:7337:1: rule__ALSPreficed__Group_6__4 : rule__ALSPreficed__Group_6__4__Impl rule__ALSPreficed__Group_6__5 ; + public final void rule__ALSPreficed__Group_6__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7341:1: ( rule__ALSPreficed__Group_6__4__Impl rule__ALSPreficed__Group_6__5 ) + // InternalAlloyLanguage.g:7342:2: rule__ALSPreficed__Group_6__4__Impl rule__ALSPreficed__Group_6__5 + { + pushFollow(FOLLOW_16); + rule__ALSPreficed__Group_6__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_6__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_6__4" + + + // $ANTLR start "rule__ALSPreficed__Group_6__4__Impl" + // InternalAlloyLanguage.g:7349:1: rule__ALSPreficed__Group_6__4__Impl : ( '{' ) ; + public final void rule__ALSPreficed__Group_6__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7353:1: ( ( '{' ) ) + // InternalAlloyLanguage.g:7354:1: ( '{' ) + { + // InternalAlloyLanguage.g:7354:1: ( '{' ) + // InternalAlloyLanguage.g:7355:1: '{' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getLeftCurlyBracketKeyword_6_4()); + } + match(input,33,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getLeftCurlyBracketKeyword_6_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_6__4__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_6__5" + // InternalAlloyLanguage.g:7368:1: rule__ALSPreficed__Group_6__5 : rule__ALSPreficed__Group_6__5__Impl rule__ALSPreficed__Group_6__6 ; + public final void rule__ALSPreficed__Group_6__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7372:1: ( rule__ALSPreficed__Group_6__5__Impl rule__ALSPreficed__Group_6__6 ) + // InternalAlloyLanguage.g:7373:2: rule__ALSPreficed__Group_6__5__Impl rule__ALSPreficed__Group_6__6 + { + pushFollow(FOLLOW_19); + rule__ALSPreficed__Group_6__5__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_6__6(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_6__5" + + + // $ANTLR start "rule__ALSPreficed__Group_6__5__Impl" + // InternalAlloyLanguage.g:7380:1: rule__ALSPreficed__Group_6__5__Impl : ( ( rule__ALSPreficed__ExpressionAssignment_6_5 ) ) ; + public final void rule__ALSPreficed__Group_6__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7384:1: ( ( ( rule__ALSPreficed__ExpressionAssignment_6_5 ) ) ) + // InternalAlloyLanguage.g:7385:1: ( ( rule__ALSPreficed__ExpressionAssignment_6_5 ) ) + { + // InternalAlloyLanguage.g:7385:1: ( ( rule__ALSPreficed__ExpressionAssignment_6_5 ) ) + // InternalAlloyLanguage.g:7386:1: ( rule__ALSPreficed__ExpressionAssignment_6_5 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getExpressionAssignment_6_5()); + } + // InternalAlloyLanguage.g:7387:1: ( rule__ALSPreficed__ExpressionAssignment_6_5 ) + // InternalAlloyLanguage.g:7387:2: rule__ALSPreficed__ExpressionAssignment_6_5 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__ExpressionAssignment_6_5(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getExpressionAssignment_6_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_6__5__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_6__6" + // InternalAlloyLanguage.g:7397:1: rule__ALSPreficed__Group_6__6 : rule__ALSPreficed__Group_6__6__Impl ; + public final void rule__ALSPreficed__Group_6__6() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7401:1: ( rule__ALSPreficed__Group_6__6__Impl ) + // InternalAlloyLanguage.g:7402:2: rule__ALSPreficed__Group_6__6__Impl + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_6__6__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_6__6" + + + // $ANTLR start "rule__ALSPreficed__Group_6__6__Impl" + // InternalAlloyLanguage.g:7408:1: rule__ALSPreficed__Group_6__6__Impl : ( '}' ) ; + public final void rule__ALSPreficed__Group_6__6__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7412:1: ( ( '}' ) ) + // InternalAlloyLanguage.g:7413:1: ( '}' ) + { + // InternalAlloyLanguage.g:7413:1: ( '}' ) + // InternalAlloyLanguage.g:7414:1: '}' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getRightCurlyBracketKeyword_6_6()); + } + match(input,34,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getRightCurlyBracketKeyword_6_6()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_6__6__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_6_3__0" + // InternalAlloyLanguage.g:7441:1: rule__ALSPreficed__Group_6_3__0 : rule__ALSPreficed__Group_6_3__0__Impl rule__ALSPreficed__Group_6_3__1 ; + public final void rule__ALSPreficed__Group_6_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7445:1: ( rule__ALSPreficed__Group_6_3__0__Impl rule__ALSPreficed__Group_6_3__1 ) + // InternalAlloyLanguage.g:7446:2: rule__ALSPreficed__Group_6_3__0__Impl rule__ALSPreficed__Group_6_3__1 + { + pushFollow(FOLLOW_5); + rule__ALSPreficed__Group_6_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_6_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_6_3__0" + + + // $ANTLR start "rule__ALSPreficed__Group_6_3__0__Impl" + // InternalAlloyLanguage.g:7453:1: rule__ALSPreficed__Group_6_3__0__Impl : ( ',' ) ; + public final void rule__ALSPreficed__Group_6_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7457:1: ( ( ',' ) ) + // InternalAlloyLanguage.g:7458:1: ( ',' ) + { + // InternalAlloyLanguage.g:7458:1: ( ',' ) + // InternalAlloyLanguage.g:7459:1: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getCommaKeyword_6_3_0()); + } + match(input,35,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getCommaKeyword_6_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_6_3__0__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_6_3__1" + // InternalAlloyLanguage.g:7472:1: rule__ALSPreficed__Group_6_3__1 : rule__ALSPreficed__Group_6_3__1__Impl ; + public final void rule__ALSPreficed__Group_6_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7476:1: ( rule__ALSPreficed__Group_6_3__1__Impl ) + // InternalAlloyLanguage.g:7477:2: rule__ALSPreficed__Group_6_3__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_6_3__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_6_3__1" + + + // $ANTLR start "rule__ALSPreficed__Group_6_3__1__Impl" + // InternalAlloyLanguage.g:7483:1: rule__ALSPreficed__Group_6_3__1__Impl : ( ( rule__ALSPreficed__VariablesAssignment_6_3_1 ) ) ; + public final void rule__ALSPreficed__Group_6_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7487:1: ( ( ( rule__ALSPreficed__VariablesAssignment_6_3_1 ) ) ) + // InternalAlloyLanguage.g:7488:1: ( ( rule__ALSPreficed__VariablesAssignment_6_3_1 ) ) + { + // InternalAlloyLanguage.g:7488:1: ( ( rule__ALSPreficed__VariablesAssignment_6_3_1 ) ) + // InternalAlloyLanguage.g:7489:1: ( rule__ALSPreficed__VariablesAssignment_6_3_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getVariablesAssignment_6_3_1()); + } + // InternalAlloyLanguage.g:7490:1: ( rule__ALSPreficed__VariablesAssignment_6_3_1 ) + // InternalAlloyLanguage.g:7490:2: rule__ALSPreficed__VariablesAssignment_6_3_1 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__VariablesAssignment_6_3_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getVariablesAssignment_6_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_6_3__1__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_7__0" + // InternalAlloyLanguage.g:7504:1: rule__ALSPreficed__Group_7__0 : rule__ALSPreficed__Group_7__0__Impl rule__ALSPreficed__Group_7__1 ; + public final void rule__ALSPreficed__Group_7__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7508:1: ( rule__ALSPreficed__Group_7__0__Impl rule__ALSPreficed__Group_7__1 ) + // InternalAlloyLanguage.g:7509:2: rule__ALSPreficed__Group_7__0__Impl rule__ALSPreficed__Group_7__1 + { + pushFollow(FOLLOW_53); + rule__ALSPreficed__Group_7__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_7__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_7__0" + + + // $ANTLR start "rule__ALSPreficed__Group_7__0__Impl" + // InternalAlloyLanguage.g:7516:1: rule__ALSPreficed__Group_7__0__Impl : ( () ) ; + public final void rule__ALSPreficed__Group_7__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7520:1: ( ( () ) ) + // InternalAlloyLanguage.g:7521:1: ( () ) + { + // InternalAlloyLanguage.g:7521:1: ( () ) + // InternalAlloyLanguage.g:7522:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getALSFunctionCallAction_7_0()); + } + // InternalAlloyLanguage.g:7523:1: () + // InternalAlloyLanguage.g:7525:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getALSFunctionCallAction_7_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_7__0__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_7__1" + // InternalAlloyLanguage.g:7535:1: rule__ALSPreficed__Group_7__1 : rule__ALSPreficed__Group_7__1__Impl rule__ALSPreficed__Group_7__2 ; + public final void rule__ALSPreficed__Group_7__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7539:1: ( rule__ALSPreficed__Group_7__1__Impl rule__ALSPreficed__Group_7__2 ) + // InternalAlloyLanguage.g:7540:2: rule__ALSPreficed__Group_7__1__Impl rule__ALSPreficed__Group_7__2 + { + pushFollow(FOLLOW_17); + rule__ALSPreficed__Group_7__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_7__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_7__1" + + + // $ANTLR start "rule__ALSPreficed__Group_7__1__Impl" + // InternalAlloyLanguage.g:7547:1: rule__ALSPreficed__Group_7__1__Impl : ( ( rule__ALSPreficed__Alternatives_7_1 ) ) ; + public final void rule__ALSPreficed__Group_7__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7551:1: ( ( ( rule__ALSPreficed__Alternatives_7_1 ) ) ) + // InternalAlloyLanguage.g:7552:1: ( ( rule__ALSPreficed__Alternatives_7_1 ) ) + { + // InternalAlloyLanguage.g:7552:1: ( ( rule__ALSPreficed__Alternatives_7_1 ) ) + // InternalAlloyLanguage.g:7553:1: ( rule__ALSPreficed__Alternatives_7_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getAlternatives_7_1()); + } + // InternalAlloyLanguage.g:7554:1: ( rule__ALSPreficed__Alternatives_7_1 ) + // InternalAlloyLanguage.g:7554:2: rule__ALSPreficed__Alternatives_7_1 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Alternatives_7_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getAlternatives_7_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_7__1__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_7__2" + // InternalAlloyLanguage.g:7564:1: rule__ALSPreficed__Group_7__2 : rule__ALSPreficed__Group_7__2__Impl rule__ALSPreficed__Group_7__3 ; + public final void rule__ALSPreficed__Group_7__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7568:1: ( rule__ALSPreficed__Group_7__2__Impl rule__ALSPreficed__Group_7__3 ) + // InternalAlloyLanguage.g:7569:2: rule__ALSPreficed__Group_7__2__Impl rule__ALSPreficed__Group_7__3 + { + pushFollow(FOLLOW_16); + rule__ALSPreficed__Group_7__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_7__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_7__2" + + + // $ANTLR start "rule__ALSPreficed__Group_7__2__Impl" + // InternalAlloyLanguage.g:7576:1: rule__ALSPreficed__Group_7__2__Impl : ( '[' ) ; + public final void rule__ALSPreficed__Group_7__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7580:1: ( ( '[' ) ) + // InternalAlloyLanguage.g:7581:1: ( '[' ) + { + // InternalAlloyLanguage.g:7581:1: ( '[' ) + // InternalAlloyLanguage.g:7582:1: '[' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getLeftSquareBracketKeyword_7_2()); + } + match(input,42,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getLeftSquareBracketKeyword_7_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_7__2__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_7__3" + // InternalAlloyLanguage.g:7595:1: rule__ALSPreficed__Group_7__3 : rule__ALSPreficed__Group_7__3__Impl rule__ALSPreficed__Group_7__4 ; + public final void rule__ALSPreficed__Group_7__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7599:1: ( rule__ALSPreficed__Group_7__3__Impl rule__ALSPreficed__Group_7__4 ) + // InternalAlloyLanguage.g:7600:2: rule__ALSPreficed__Group_7__3__Impl rule__ALSPreficed__Group_7__4 + { + pushFollow(FOLLOW_18); + rule__ALSPreficed__Group_7__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_7__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_7__3" + + + // $ANTLR start "rule__ALSPreficed__Group_7__3__Impl" + // InternalAlloyLanguage.g:7607:1: rule__ALSPreficed__Group_7__3__Impl : ( ( rule__ALSPreficed__ParamsAssignment_7_3 ) ) ; + public final void rule__ALSPreficed__Group_7__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7611:1: ( ( ( rule__ALSPreficed__ParamsAssignment_7_3 ) ) ) + // InternalAlloyLanguage.g:7612:1: ( ( rule__ALSPreficed__ParamsAssignment_7_3 ) ) + { + // InternalAlloyLanguage.g:7612:1: ( ( rule__ALSPreficed__ParamsAssignment_7_3 ) ) + // InternalAlloyLanguage.g:7613:1: ( rule__ALSPreficed__ParamsAssignment_7_3 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getParamsAssignment_7_3()); + } + // InternalAlloyLanguage.g:7614:1: ( rule__ALSPreficed__ParamsAssignment_7_3 ) + // InternalAlloyLanguage.g:7614:2: rule__ALSPreficed__ParamsAssignment_7_3 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__ParamsAssignment_7_3(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getParamsAssignment_7_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_7__3__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_7__4" + // InternalAlloyLanguage.g:7624:1: rule__ALSPreficed__Group_7__4 : rule__ALSPreficed__Group_7__4__Impl rule__ALSPreficed__Group_7__5 ; + public final void rule__ALSPreficed__Group_7__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7628:1: ( rule__ALSPreficed__Group_7__4__Impl rule__ALSPreficed__Group_7__5 ) + // InternalAlloyLanguage.g:7629:2: rule__ALSPreficed__Group_7__4__Impl rule__ALSPreficed__Group_7__5 + { + pushFollow(FOLLOW_18); + rule__ALSPreficed__Group_7__4__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_7__5(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_7__4" + + + // $ANTLR start "rule__ALSPreficed__Group_7__4__Impl" + // InternalAlloyLanguage.g:7636:1: rule__ALSPreficed__Group_7__4__Impl : ( ( rule__ALSPreficed__Group_7_4__0 )* ) ; + public final void rule__ALSPreficed__Group_7__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7640:1: ( ( ( rule__ALSPreficed__Group_7_4__0 )* ) ) + // InternalAlloyLanguage.g:7641:1: ( ( rule__ALSPreficed__Group_7_4__0 )* ) + { + // InternalAlloyLanguage.g:7641:1: ( ( rule__ALSPreficed__Group_7_4__0 )* ) + // InternalAlloyLanguage.g:7642:1: ( rule__ALSPreficed__Group_7_4__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getGroup_7_4()); + } + // InternalAlloyLanguage.g:7643:1: ( rule__ALSPreficed__Group_7_4__0 )* + loop47: + do { + int alt47=2; + int LA47_0 = input.LA(1); + + if ( (LA47_0==35) ) { + alt47=1; + } + + + switch (alt47) { + case 1 : + // InternalAlloyLanguage.g:7643:2: rule__ALSPreficed__Group_7_4__0 + { + pushFollow(FOLLOW_8); + rule__ALSPreficed__Group_7_4__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop47; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getGroup_7_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_7__4__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_7__5" + // InternalAlloyLanguage.g:7653:1: rule__ALSPreficed__Group_7__5 : rule__ALSPreficed__Group_7__5__Impl ; + public final void rule__ALSPreficed__Group_7__5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7657:1: ( rule__ALSPreficed__Group_7__5__Impl ) + // InternalAlloyLanguage.g:7658:2: rule__ALSPreficed__Group_7__5__Impl + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_7__5__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_7__5" + + + // $ANTLR start "rule__ALSPreficed__Group_7__5__Impl" + // InternalAlloyLanguage.g:7664:1: rule__ALSPreficed__Group_7__5__Impl : ( ']' ) ; + public final void rule__ALSPreficed__Group_7__5__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7668:1: ( ( ']' ) ) + // InternalAlloyLanguage.g:7669:1: ( ']' ) + { + // InternalAlloyLanguage.g:7669:1: ( ']' ) + // InternalAlloyLanguage.g:7670:1: ']' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getRightSquareBracketKeyword_7_5()); + } + match(input,43,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getRightSquareBracketKeyword_7_5()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_7__5__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_7_4__0" + // InternalAlloyLanguage.g:7695:1: rule__ALSPreficed__Group_7_4__0 : rule__ALSPreficed__Group_7_4__0__Impl rule__ALSPreficed__Group_7_4__1 ; + public final void rule__ALSPreficed__Group_7_4__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7699:1: ( rule__ALSPreficed__Group_7_4__0__Impl rule__ALSPreficed__Group_7_4__1 ) + // InternalAlloyLanguage.g:7700:2: rule__ALSPreficed__Group_7_4__0__Impl rule__ALSPreficed__Group_7_4__1 + { + pushFollow(FOLLOW_16); + rule__ALSPreficed__Group_7_4__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_7_4__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_7_4__0" + + + // $ANTLR start "rule__ALSPreficed__Group_7_4__0__Impl" + // InternalAlloyLanguage.g:7707:1: rule__ALSPreficed__Group_7_4__0__Impl : ( ',' ) ; + public final void rule__ALSPreficed__Group_7_4__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7711:1: ( ( ',' ) ) + // InternalAlloyLanguage.g:7712:1: ( ',' ) + { + // InternalAlloyLanguage.g:7712:1: ( ',' ) + // InternalAlloyLanguage.g:7713:1: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getCommaKeyword_7_4_0()); + } + match(input,35,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getCommaKeyword_7_4_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_7_4__0__Impl" + + + // $ANTLR start "rule__ALSPreficed__Group_7_4__1" + // InternalAlloyLanguage.g:7726:1: rule__ALSPreficed__Group_7_4__1 : rule__ALSPreficed__Group_7_4__1__Impl ; + public final void rule__ALSPreficed__Group_7_4__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7730:1: ( rule__ALSPreficed__Group_7_4__1__Impl ) + // InternalAlloyLanguage.g:7731:2: rule__ALSPreficed__Group_7_4__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__Group_7_4__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_7_4__1" + + + // $ANTLR start "rule__ALSPreficed__Group_7_4__1__Impl" + // InternalAlloyLanguage.g:7737:1: rule__ALSPreficed__Group_7_4__1__Impl : ( ( rule__ALSPreficed__ParamsAssignment_7_4_1 ) ) ; + public final void rule__ALSPreficed__Group_7_4__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7741:1: ( ( ( rule__ALSPreficed__ParamsAssignment_7_4_1 ) ) ) + // InternalAlloyLanguage.g:7742:1: ( ( rule__ALSPreficed__ParamsAssignment_7_4_1 ) ) + { + // InternalAlloyLanguage.g:7742:1: ( ( rule__ALSPreficed__ParamsAssignment_7_4_1 ) ) + // InternalAlloyLanguage.g:7743:1: ( rule__ALSPreficed__ParamsAssignment_7_4_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getParamsAssignment_7_4_1()); + } + // InternalAlloyLanguage.g:7744:1: ( rule__ALSPreficed__ParamsAssignment_7_4_1 ) + // InternalAlloyLanguage.g:7744:2: rule__ALSPreficed__ParamsAssignment_7_4_1 + { + pushFollow(FOLLOW_2); + rule__ALSPreficed__ParamsAssignment_7_4_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getParamsAssignment_7_4_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__Group_7_4__1__Impl" + + + // $ANTLR start "rule__ALSVariableDeclaration__Group__0" + // InternalAlloyLanguage.g:7758:1: rule__ALSVariableDeclaration__Group__0 : rule__ALSVariableDeclaration__Group__0__Impl rule__ALSVariableDeclaration__Group__1 ; + public final void rule__ALSVariableDeclaration__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7762:1: ( rule__ALSVariableDeclaration__Group__0__Impl rule__ALSVariableDeclaration__Group__1 ) + // InternalAlloyLanguage.g:7763:2: rule__ALSVariableDeclaration__Group__0__Impl rule__ALSVariableDeclaration__Group__1 + { + pushFollow(FOLLOW_15); + rule__ALSVariableDeclaration__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSVariableDeclaration__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSVariableDeclaration__Group__0" + + + // $ANTLR start "rule__ALSVariableDeclaration__Group__0__Impl" + // InternalAlloyLanguage.g:7770:1: rule__ALSVariableDeclaration__Group__0__Impl : ( ( rule__ALSVariableDeclaration__NameAssignment_0 ) ) ; + public final void rule__ALSVariableDeclaration__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7774:1: ( ( ( rule__ALSVariableDeclaration__NameAssignment_0 ) ) ) + // InternalAlloyLanguage.g:7775:1: ( ( rule__ALSVariableDeclaration__NameAssignment_0 ) ) + { + // InternalAlloyLanguage.g:7775:1: ( ( rule__ALSVariableDeclaration__NameAssignment_0 ) ) + // InternalAlloyLanguage.g:7776:1: ( rule__ALSVariableDeclaration__NameAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSVariableDeclarationAccess().getNameAssignment_0()); + } + // InternalAlloyLanguage.g:7777:1: ( rule__ALSVariableDeclaration__NameAssignment_0 ) + // InternalAlloyLanguage.g:7777:2: rule__ALSVariableDeclaration__NameAssignment_0 + { + pushFollow(FOLLOW_2); + rule__ALSVariableDeclaration__NameAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSVariableDeclarationAccess().getNameAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSVariableDeclaration__Group__0__Impl" + + + // $ANTLR start "rule__ALSVariableDeclaration__Group__1" + // InternalAlloyLanguage.g:7787:1: rule__ALSVariableDeclaration__Group__1 : rule__ALSVariableDeclaration__Group__1__Impl rule__ALSVariableDeclaration__Group__2 ; + public final void rule__ALSVariableDeclaration__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7791:1: ( rule__ALSVariableDeclaration__Group__1__Impl rule__ALSVariableDeclaration__Group__2 ) + // InternalAlloyLanguage.g:7792:2: rule__ALSVariableDeclaration__Group__1__Impl rule__ALSVariableDeclaration__Group__2 + { + pushFollow(FOLLOW_16); + rule__ALSVariableDeclaration__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSVariableDeclaration__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSVariableDeclaration__Group__1" + + + // $ANTLR start "rule__ALSVariableDeclaration__Group__1__Impl" + // InternalAlloyLanguage.g:7799:1: rule__ALSVariableDeclaration__Group__1__Impl : ( ':' ) ; + public final void rule__ALSVariableDeclaration__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7803:1: ( ( ':' ) ) + // InternalAlloyLanguage.g:7804:1: ( ':' ) + { + // InternalAlloyLanguage.g:7804:1: ( ':' ) + // InternalAlloyLanguage.g:7805:1: ':' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSVariableDeclarationAccess().getColonKeyword_1()); + } + match(input,40,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSVariableDeclarationAccess().getColonKeyword_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSVariableDeclaration__Group__1__Impl" + + + // $ANTLR start "rule__ALSVariableDeclaration__Group__2" + // InternalAlloyLanguage.g:7818:1: rule__ALSVariableDeclaration__Group__2 : rule__ALSVariableDeclaration__Group__2__Impl ; + public final void rule__ALSVariableDeclaration__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7822:1: ( rule__ALSVariableDeclaration__Group__2__Impl ) + // InternalAlloyLanguage.g:7823:2: rule__ALSVariableDeclaration__Group__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSVariableDeclaration__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSVariableDeclaration__Group__2" + + + // $ANTLR start "rule__ALSVariableDeclaration__Group__2__Impl" + // InternalAlloyLanguage.g:7829:1: rule__ALSVariableDeclaration__Group__2__Impl : ( ( rule__ALSVariableDeclaration__RangeAssignment_2 ) ) ; + public final void rule__ALSVariableDeclaration__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7833:1: ( ( ( rule__ALSVariableDeclaration__RangeAssignment_2 ) ) ) + // InternalAlloyLanguage.g:7834:1: ( ( rule__ALSVariableDeclaration__RangeAssignment_2 ) ) + { + // InternalAlloyLanguage.g:7834:1: ( ( rule__ALSVariableDeclaration__RangeAssignment_2 ) ) + // InternalAlloyLanguage.g:7835:1: ( rule__ALSVariableDeclaration__RangeAssignment_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSVariableDeclarationAccess().getRangeAssignment_2()); + } + // InternalAlloyLanguage.g:7836:1: ( rule__ALSVariableDeclaration__RangeAssignment_2 ) + // InternalAlloyLanguage.g:7836:2: rule__ALSVariableDeclaration__RangeAssignment_2 + { + pushFollow(FOLLOW_2); + rule__ALSVariableDeclaration__RangeAssignment_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSVariableDeclarationAccess().getRangeAssignment_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSVariableDeclaration__Group__2__Impl" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_0__0" + // InternalAlloyLanguage.g:7852:1: rule__ALSBasicRelationTerm__Group_0__0 : rule__ALSBasicRelationTerm__Group_0__0__Impl rule__ALSBasicRelationTerm__Group_0__1 ; + public final void rule__ALSBasicRelationTerm__Group_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7856:1: ( rule__ALSBasicRelationTerm__Group_0__0__Impl rule__ALSBasicRelationTerm__Group_0__1 ) + // InternalAlloyLanguage.g:7857:2: rule__ALSBasicRelationTerm__Group_0__0__Impl rule__ALSBasicRelationTerm__Group_0__1 + { + pushFollow(FOLLOW_54); + rule__ALSBasicRelationTerm__Group_0__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_0__0" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_0__0__Impl" + // InternalAlloyLanguage.g:7864:1: rule__ALSBasicRelationTerm__Group_0__0__Impl : ( () ) ; + public final void rule__ALSBasicRelationTerm__Group_0__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7868:1: ( ( () ) ) + // InternalAlloyLanguage.g:7869:1: ( () ) + { + // InternalAlloyLanguage.g:7869:1: ( () ) + // InternalAlloyLanguage.g:7870:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getALSNoneAction_0_0()); + } + // InternalAlloyLanguage.g:7871:1: () + // InternalAlloyLanguage.g:7873:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getALSNoneAction_0_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_0__0__Impl" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_0__1" + // InternalAlloyLanguage.g:7883:1: rule__ALSBasicRelationTerm__Group_0__1 : rule__ALSBasicRelationTerm__Group_0__1__Impl ; + public final void rule__ALSBasicRelationTerm__Group_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7887:1: ( rule__ALSBasicRelationTerm__Group_0__1__Impl ) + // InternalAlloyLanguage.g:7888:2: rule__ALSBasicRelationTerm__Group_0__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_0__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_0__1" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_0__1__Impl" + // InternalAlloyLanguage.g:7894:1: rule__ALSBasicRelationTerm__Group_0__1__Impl : ( 'none' ) ; + public final void rule__ALSBasicRelationTerm__Group_0__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7898:1: ( ( 'none' ) ) + // InternalAlloyLanguage.g:7899:1: ( 'none' ) + { + // InternalAlloyLanguage.g:7899:1: ( 'none' ) + // InternalAlloyLanguage.g:7900:1: 'none' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getNoneKeyword_0_1()); + } + match(input,65,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getNoneKeyword_0_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_0__1__Impl" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_1__0" + // InternalAlloyLanguage.g:7917:1: rule__ALSBasicRelationTerm__Group_1__0 : rule__ALSBasicRelationTerm__Group_1__0__Impl rule__ALSBasicRelationTerm__Group_1__1 ; + public final void rule__ALSBasicRelationTerm__Group_1__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7921:1: ( rule__ALSBasicRelationTerm__Group_1__0__Impl rule__ALSBasicRelationTerm__Group_1__1 ) + // InternalAlloyLanguage.g:7922:2: rule__ALSBasicRelationTerm__Group_1__0__Impl rule__ALSBasicRelationTerm__Group_1__1 + { + pushFollow(FOLLOW_55); + rule__ALSBasicRelationTerm__Group_1__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_1__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_1__0" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_1__0__Impl" + // InternalAlloyLanguage.g:7929:1: rule__ALSBasicRelationTerm__Group_1__0__Impl : ( () ) ; + public final void rule__ALSBasicRelationTerm__Group_1__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7933:1: ( ( () ) ) + // InternalAlloyLanguage.g:7934:1: ( () ) + { + // InternalAlloyLanguage.g:7934:1: ( () ) + // InternalAlloyLanguage.g:7935:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getALSIdenAction_1_0()); + } + // InternalAlloyLanguage.g:7936:1: () + // InternalAlloyLanguage.g:7938:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getALSIdenAction_1_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_1__0__Impl" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_1__1" + // InternalAlloyLanguage.g:7948:1: rule__ALSBasicRelationTerm__Group_1__1 : rule__ALSBasicRelationTerm__Group_1__1__Impl ; + public final void rule__ALSBasicRelationTerm__Group_1__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7952:1: ( rule__ALSBasicRelationTerm__Group_1__1__Impl ) + // InternalAlloyLanguage.g:7953:2: rule__ALSBasicRelationTerm__Group_1__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_1__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_1__1" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_1__1__Impl" + // InternalAlloyLanguage.g:7959:1: rule__ALSBasicRelationTerm__Group_1__1__Impl : ( 'iden' ) ; + public final void rule__ALSBasicRelationTerm__Group_1__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7963:1: ( ( 'iden' ) ) + // InternalAlloyLanguage.g:7964:1: ( 'iden' ) + { + // InternalAlloyLanguage.g:7964:1: ( 'iden' ) + // InternalAlloyLanguage.g:7965:1: 'iden' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getIdenKeyword_1_1()); + } + match(input,66,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getIdenKeyword_1_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_1__1__Impl" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_2__0" + // InternalAlloyLanguage.g:7982:1: rule__ALSBasicRelationTerm__Group_2__0 : rule__ALSBasicRelationTerm__Group_2__0__Impl rule__ALSBasicRelationTerm__Group_2__1 ; + public final void rule__ALSBasicRelationTerm__Group_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7986:1: ( rule__ALSBasicRelationTerm__Group_2__0__Impl rule__ALSBasicRelationTerm__Group_2__1 ) + // InternalAlloyLanguage.g:7987:2: rule__ALSBasicRelationTerm__Group_2__0__Impl rule__ALSBasicRelationTerm__Group_2__1 + { + pushFollow(FOLLOW_56); + rule__ALSBasicRelationTerm__Group_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_2__0" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_2__0__Impl" + // InternalAlloyLanguage.g:7994:1: rule__ALSBasicRelationTerm__Group_2__0__Impl : ( () ) ; + public final void rule__ALSBasicRelationTerm__Group_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:7998:1: ( ( () ) ) + // InternalAlloyLanguage.g:7999:1: ( () ) + { + // InternalAlloyLanguage.g:7999:1: ( () ) + // InternalAlloyLanguage.g:8000:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getALSUnivAction_2_0()); + } + // InternalAlloyLanguage.g:8001:1: () + // InternalAlloyLanguage.g:8003:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getALSUnivAction_2_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_2__0__Impl" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_2__1" + // InternalAlloyLanguage.g:8013:1: rule__ALSBasicRelationTerm__Group_2__1 : rule__ALSBasicRelationTerm__Group_2__1__Impl ; + public final void rule__ALSBasicRelationTerm__Group_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8017:1: ( rule__ALSBasicRelationTerm__Group_2__1__Impl ) + // InternalAlloyLanguage.g:8018:2: rule__ALSBasicRelationTerm__Group_2__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_2__1" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_2__1__Impl" + // InternalAlloyLanguage.g:8024:1: rule__ALSBasicRelationTerm__Group_2__1__Impl : ( 'univ' ) ; + public final void rule__ALSBasicRelationTerm__Group_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8028:1: ( ( 'univ' ) ) + // InternalAlloyLanguage.g:8029:1: ( 'univ' ) + { + // InternalAlloyLanguage.g:8029:1: ( 'univ' ) + // InternalAlloyLanguage.g:8030:1: 'univ' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getUnivKeyword_2_1()); + } + match(input,67,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getUnivKeyword_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_2__1__Impl" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_3__0" + // InternalAlloyLanguage.g:8047:1: rule__ALSBasicRelationTerm__Group_3__0 : rule__ALSBasicRelationTerm__Group_3__0__Impl rule__ALSBasicRelationTerm__Group_3__1 ; + public final void rule__ALSBasicRelationTerm__Group_3__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8051:1: ( rule__ALSBasicRelationTerm__Group_3__0__Impl rule__ALSBasicRelationTerm__Group_3__1 ) + // InternalAlloyLanguage.g:8052:2: rule__ALSBasicRelationTerm__Group_3__0__Impl rule__ALSBasicRelationTerm__Group_3__1 + { + pushFollow(FOLLOW_57); + rule__ALSBasicRelationTerm__Group_3__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_3__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_3__0" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_3__0__Impl" + // InternalAlloyLanguage.g:8059:1: rule__ALSBasicRelationTerm__Group_3__0__Impl : ( () ) ; + public final void rule__ALSBasicRelationTerm__Group_3__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8063:1: ( ( () ) ) + // InternalAlloyLanguage.g:8064:1: ( () ) + { + // InternalAlloyLanguage.g:8064:1: ( () ) + // InternalAlloyLanguage.g:8065:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getALSIntAction_3_0()); + } + // InternalAlloyLanguage.g:8066:1: () + // InternalAlloyLanguage.g:8068:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getALSIntAction_3_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_3__0__Impl" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_3__1" + // InternalAlloyLanguage.g:8078:1: rule__ALSBasicRelationTerm__Group_3__1 : rule__ALSBasicRelationTerm__Group_3__1__Impl ; + public final void rule__ALSBasicRelationTerm__Group_3__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8082:1: ( rule__ALSBasicRelationTerm__Group_3__1__Impl ) + // InternalAlloyLanguage.g:8083:2: rule__ALSBasicRelationTerm__Group_3__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_3__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_3__1" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_3__1__Impl" + // InternalAlloyLanguage.g:8089:1: rule__ALSBasicRelationTerm__Group_3__1__Impl : ( 'Int' ) ; + public final void rule__ALSBasicRelationTerm__Group_3__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8093:1: ( ( 'Int' ) ) + // InternalAlloyLanguage.g:8094:1: ( 'Int' ) + { + // InternalAlloyLanguage.g:8094:1: ( 'Int' ) + // InternalAlloyLanguage.g:8095:1: 'Int' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getIntKeyword_3_1()); + } + match(input,68,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getIntKeyword_3_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_3__1__Impl" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_4__0" + // InternalAlloyLanguage.g:8112:1: rule__ALSBasicRelationTerm__Group_4__0 : rule__ALSBasicRelationTerm__Group_4__0__Impl rule__ALSBasicRelationTerm__Group_4__1 ; + public final void rule__ALSBasicRelationTerm__Group_4__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8116:1: ( rule__ALSBasicRelationTerm__Group_4__0__Impl rule__ALSBasicRelationTerm__Group_4__1 ) + // InternalAlloyLanguage.g:8117:2: rule__ALSBasicRelationTerm__Group_4__0__Impl rule__ALSBasicRelationTerm__Group_4__1 + { + pushFollow(FOLLOW_58); + rule__ALSBasicRelationTerm__Group_4__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_4__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_4__0" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_4__0__Impl" + // InternalAlloyLanguage.g:8124:1: rule__ALSBasicRelationTerm__Group_4__0__Impl : ( () ) ; + public final void rule__ALSBasicRelationTerm__Group_4__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8128:1: ( ( () ) ) + // InternalAlloyLanguage.g:8129:1: ( () ) + { + // InternalAlloyLanguage.g:8129:1: ( () ) + // InternalAlloyLanguage.g:8130:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getALSStringAction_4_0()); + } + // InternalAlloyLanguage.g:8131:1: () + // InternalAlloyLanguage.g:8133:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getALSStringAction_4_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_4__0__Impl" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_4__1" + // InternalAlloyLanguage.g:8143:1: rule__ALSBasicRelationTerm__Group_4__1 : rule__ALSBasicRelationTerm__Group_4__1__Impl ; + public final void rule__ALSBasicRelationTerm__Group_4__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8147:1: ( rule__ALSBasicRelationTerm__Group_4__1__Impl ) + // InternalAlloyLanguage.g:8148:2: rule__ALSBasicRelationTerm__Group_4__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_4__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_4__1" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_4__1__Impl" + // InternalAlloyLanguage.g:8154:1: rule__ALSBasicRelationTerm__Group_4__1__Impl : ( 'String' ) ; + public final void rule__ALSBasicRelationTerm__Group_4__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8158:1: ( ( 'String' ) ) + // InternalAlloyLanguage.g:8159:1: ( 'String' ) + { + // InternalAlloyLanguage.g:8159:1: ( 'String' ) + // InternalAlloyLanguage.g:8160:1: 'String' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getStringKeyword_4_1()); + } + match(input,69,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getStringKeyword_4_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_4__1__Impl" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_5__0" + // InternalAlloyLanguage.g:8177:1: rule__ALSBasicRelationTerm__Group_5__0 : rule__ALSBasicRelationTerm__Group_5__0__Impl rule__ALSBasicRelationTerm__Group_5__1 ; + public final void rule__ALSBasicRelationTerm__Group_5__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8181:1: ( rule__ALSBasicRelationTerm__Group_5__0__Impl rule__ALSBasicRelationTerm__Group_5__1 ) + // InternalAlloyLanguage.g:8182:2: rule__ALSBasicRelationTerm__Group_5__0__Impl rule__ALSBasicRelationTerm__Group_5__1 + { + pushFollow(FOLLOW_5); + rule__ALSBasicRelationTerm__Group_5__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_5__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_5__0" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_5__0__Impl" + // InternalAlloyLanguage.g:8189:1: rule__ALSBasicRelationTerm__Group_5__0__Impl : ( () ) ; + public final void rule__ALSBasicRelationTerm__Group_5__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8193:1: ( ( () ) ) + // InternalAlloyLanguage.g:8194:1: ( () ) + { + // InternalAlloyLanguage.g:8194:1: ( () ) + // InternalAlloyLanguage.g:8195:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getALSReferenceAction_5_0()); + } + // InternalAlloyLanguage.g:8196:1: () + // InternalAlloyLanguage.g:8198:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getALSReferenceAction_5_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_5__0__Impl" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_5__1" + // InternalAlloyLanguage.g:8208:1: rule__ALSBasicRelationTerm__Group_5__1 : rule__ALSBasicRelationTerm__Group_5__1__Impl ; + public final void rule__ALSBasicRelationTerm__Group_5__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8212:1: ( rule__ALSBasicRelationTerm__Group_5__1__Impl ) + // InternalAlloyLanguage.g:8213:2: rule__ALSBasicRelationTerm__Group_5__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_5__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_5__1" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_5__1__Impl" + // InternalAlloyLanguage.g:8219:1: rule__ALSBasicRelationTerm__Group_5__1__Impl : ( ( rule__ALSBasicRelationTerm__ReferredAssignment_5_1 ) ) ; + public final void rule__ALSBasicRelationTerm__Group_5__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8223:1: ( ( ( rule__ALSBasicRelationTerm__ReferredAssignment_5_1 ) ) ) + // InternalAlloyLanguage.g:8224:1: ( ( rule__ALSBasicRelationTerm__ReferredAssignment_5_1 ) ) + { + // InternalAlloyLanguage.g:8224:1: ( ( rule__ALSBasicRelationTerm__ReferredAssignment_5_1 ) ) + // InternalAlloyLanguage.g:8225:1: ( rule__ALSBasicRelationTerm__ReferredAssignment_5_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getReferredAssignment_5_1()); + } + // InternalAlloyLanguage.g:8226:1: ( rule__ALSBasicRelationTerm__ReferredAssignment_5_1 ) + // InternalAlloyLanguage.g:8226:2: rule__ALSBasicRelationTerm__ReferredAssignment_5_1 + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__ReferredAssignment_5_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getReferredAssignment_5_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_5__1__Impl" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_6__0" + // InternalAlloyLanguage.g:8240:1: rule__ALSBasicRelationTerm__Group_6__0 : rule__ALSBasicRelationTerm__Group_6__0__Impl rule__ALSBasicRelationTerm__Group_6__1 ; + public final void rule__ALSBasicRelationTerm__Group_6__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8244:1: ( rule__ALSBasicRelationTerm__Group_6__0__Impl rule__ALSBasicRelationTerm__Group_6__1 ) + // InternalAlloyLanguage.g:8245:2: rule__ALSBasicRelationTerm__Group_6__0__Impl rule__ALSBasicRelationTerm__Group_6__1 + { + pushFollow(FOLLOW_59); + rule__ALSBasicRelationTerm__Group_6__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_6__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_6__0" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_6__0__Impl" + // InternalAlloyLanguage.g:8252:1: rule__ALSBasicRelationTerm__Group_6__0__Impl : ( () ) ; + public final void rule__ALSBasicRelationTerm__Group_6__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8256:1: ( ( () ) ) + // InternalAlloyLanguage.g:8257:1: ( () ) + { + // InternalAlloyLanguage.g:8257:1: ( () ) + // InternalAlloyLanguage.g:8258:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getALSNumberLiteralAction_6_0()); + } + // InternalAlloyLanguage.g:8259:1: () + // InternalAlloyLanguage.g:8261:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getALSNumberLiteralAction_6_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_6__0__Impl" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_6__1" + // InternalAlloyLanguage.g:8271:1: rule__ALSBasicRelationTerm__Group_6__1 : rule__ALSBasicRelationTerm__Group_6__1__Impl ; + public final void rule__ALSBasicRelationTerm__Group_6__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8275:1: ( rule__ALSBasicRelationTerm__Group_6__1__Impl ) + // InternalAlloyLanguage.g:8276:2: rule__ALSBasicRelationTerm__Group_6__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_6__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_6__1" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_6__1__Impl" + // InternalAlloyLanguage.g:8282:1: rule__ALSBasicRelationTerm__Group_6__1__Impl : ( ( rule__ALSBasicRelationTerm__ValueAssignment_6_1 ) ) ; + public final void rule__ALSBasicRelationTerm__Group_6__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8286:1: ( ( ( rule__ALSBasicRelationTerm__ValueAssignment_6_1 ) ) ) + // InternalAlloyLanguage.g:8287:1: ( ( rule__ALSBasicRelationTerm__ValueAssignment_6_1 ) ) + { + // InternalAlloyLanguage.g:8287:1: ( ( rule__ALSBasicRelationTerm__ValueAssignment_6_1 ) ) + // InternalAlloyLanguage.g:8288:1: ( rule__ALSBasicRelationTerm__ValueAssignment_6_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getValueAssignment_6_1()); + } + // InternalAlloyLanguage.g:8289:1: ( rule__ALSBasicRelationTerm__ValueAssignment_6_1 ) + // InternalAlloyLanguage.g:8289:2: rule__ALSBasicRelationTerm__ValueAssignment_6_1 + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__ValueAssignment_6_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getValueAssignment_6_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_6__1__Impl" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_7__0" + // InternalAlloyLanguage.g:8303:1: rule__ALSBasicRelationTerm__Group_7__0 : rule__ALSBasicRelationTerm__Group_7__0__Impl rule__ALSBasicRelationTerm__Group_7__1 ; + public final void rule__ALSBasicRelationTerm__Group_7__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8307:1: ( rule__ALSBasicRelationTerm__Group_7__0__Impl rule__ALSBasicRelationTerm__Group_7__1 ) + // InternalAlloyLanguage.g:8308:2: rule__ALSBasicRelationTerm__Group_7__0__Impl rule__ALSBasicRelationTerm__Group_7__1 + { + pushFollow(FOLLOW_60); + rule__ALSBasicRelationTerm__Group_7__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_7__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_7__0" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_7__0__Impl" + // InternalAlloyLanguage.g:8315:1: rule__ALSBasicRelationTerm__Group_7__0__Impl : ( () ) ; + public final void rule__ALSBasicRelationTerm__Group_7__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8319:1: ( ( () ) ) + // InternalAlloyLanguage.g:8320:1: ( () ) + { + // InternalAlloyLanguage.g:8320:1: ( () ) + // InternalAlloyLanguage.g:8321:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getALSStringLiteralAction_7_0()); + } + // InternalAlloyLanguage.g:8322:1: () + // InternalAlloyLanguage.g:8324:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getALSStringLiteralAction_7_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_7__0__Impl" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_7__1" + // InternalAlloyLanguage.g:8334:1: rule__ALSBasicRelationTerm__Group_7__1 : rule__ALSBasicRelationTerm__Group_7__1__Impl ; + public final void rule__ALSBasicRelationTerm__Group_7__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8338:1: ( rule__ALSBasicRelationTerm__Group_7__1__Impl ) + // InternalAlloyLanguage.g:8339:2: rule__ALSBasicRelationTerm__Group_7__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_7__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_7__1" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_7__1__Impl" + // InternalAlloyLanguage.g:8345:1: rule__ALSBasicRelationTerm__Group_7__1__Impl : ( ( rule__ALSBasicRelationTerm__ValueAssignment_7_1 ) ) ; + public final void rule__ALSBasicRelationTerm__Group_7__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8349:1: ( ( ( rule__ALSBasicRelationTerm__ValueAssignment_7_1 ) ) ) + // InternalAlloyLanguage.g:8350:1: ( ( rule__ALSBasicRelationTerm__ValueAssignment_7_1 ) ) + { + // InternalAlloyLanguage.g:8350:1: ( ( rule__ALSBasicRelationTerm__ValueAssignment_7_1 ) ) + // InternalAlloyLanguage.g:8351:1: ( rule__ALSBasicRelationTerm__ValueAssignment_7_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getValueAssignment_7_1()); + } + // InternalAlloyLanguage.g:8352:1: ( rule__ALSBasicRelationTerm__ValueAssignment_7_1 ) + // InternalAlloyLanguage.g:8352:2: rule__ALSBasicRelationTerm__ValueAssignment_7_1 + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__ValueAssignment_7_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getValueAssignment_7_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_7__1__Impl" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_8__0" + // InternalAlloyLanguage.g:8366:1: rule__ALSBasicRelationTerm__Group_8__0 : rule__ALSBasicRelationTerm__Group_8__0__Impl rule__ALSBasicRelationTerm__Group_8__1 ; + public final void rule__ALSBasicRelationTerm__Group_8__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8370:1: ( rule__ALSBasicRelationTerm__Group_8__0__Impl rule__ALSBasicRelationTerm__Group_8__1 ) + // InternalAlloyLanguage.g:8371:2: rule__ALSBasicRelationTerm__Group_8__0__Impl rule__ALSBasicRelationTerm__Group_8__1 + { + pushFollow(FOLLOW_16); + rule__ALSBasicRelationTerm__Group_8__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_8__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_8__0" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_8__0__Impl" + // InternalAlloyLanguage.g:8378:1: rule__ALSBasicRelationTerm__Group_8__0__Impl : ( '(' ) ; + public final void rule__ALSBasicRelationTerm__Group_8__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8382:1: ( ( '(' ) ) + // InternalAlloyLanguage.g:8383:1: ( '(' ) + { + // InternalAlloyLanguage.g:8383:1: ( '(' ) + // InternalAlloyLanguage.g:8384:1: '(' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getLeftParenthesisKeyword_8_0()); + } + match(input,70,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getLeftParenthesisKeyword_8_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_8__0__Impl" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_8__1" + // InternalAlloyLanguage.g:8397:1: rule__ALSBasicRelationTerm__Group_8__1 : rule__ALSBasicRelationTerm__Group_8__1__Impl rule__ALSBasicRelationTerm__Group_8__2 ; + public final void rule__ALSBasicRelationTerm__Group_8__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8401:1: ( rule__ALSBasicRelationTerm__Group_8__1__Impl rule__ALSBasicRelationTerm__Group_8__2 ) + // InternalAlloyLanguage.g:8402:2: rule__ALSBasicRelationTerm__Group_8__1__Impl rule__ALSBasicRelationTerm__Group_8__2 + { + pushFollow(FOLLOW_61); + rule__ALSBasicRelationTerm__Group_8__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_8__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_8__1" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_8__1__Impl" + // InternalAlloyLanguage.g:8409:1: rule__ALSBasicRelationTerm__Group_8__1__Impl : ( ruleALSTerm ) ; + public final void rule__ALSBasicRelationTerm__Group_8__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8413:1: ( ( ruleALSTerm ) ) + // InternalAlloyLanguage.g:8414:1: ( ruleALSTerm ) + { + // InternalAlloyLanguage.g:8414:1: ( ruleALSTerm ) + // InternalAlloyLanguage.g:8415:1: ruleALSTerm + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getALSTermParserRuleCall_8_1()); + } + pushFollow(FOLLOW_2); + ruleALSTerm(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getALSTermParserRuleCall_8_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_8__1__Impl" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_8__2" + // InternalAlloyLanguage.g:8426:1: rule__ALSBasicRelationTerm__Group_8__2 : rule__ALSBasicRelationTerm__Group_8__2__Impl ; + public final void rule__ALSBasicRelationTerm__Group_8__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8430:1: ( rule__ALSBasicRelationTerm__Group_8__2__Impl ) + // InternalAlloyLanguage.g:8431:2: rule__ALSBasicRelationTerm__Group_8__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSBasicRelationTerm__Group_8__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_8__2" + + + // $ANTLR start "rule__ALSBasicRelationTerm__Group_8__2__Impl" + // InternalAlloyLanguage.g:8437:1: rule__ALSBasicRelationTerm__Group_8__2__Impl : ( ')' ) ; + public final void rule__ALSBasicRelationTerm__Group_8__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8441:1: ( ( ')' ) ) + // InternalAlloyLanguage.g:8442:1: ( ')' ) + { + // InternalAlloyLanguage.g:8442:1: ( ')' ) + // InternalAlloyLanguage.g:8443:1: ')' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getRightParenthesisKeyword_8_2()); + } + match(input,71,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getRightParenthesisKeyword_8_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__Group_8__2__Impl" + + + // $ANTLR start "rule__ALSRunCommand__Group__0" + // InternalAlloyLanguage.g:8462:1: rule__ALSRunCommand__Group__0 : rule__ALSRunCommand__Group__0__Impl rule__ALSRunCommand__Group__1 ; + public final void rule__ALSRunCommand__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8466:1: ( rule__ALSRunCommand__Group__0__Impl rule__ALSRunCommand__Group__1 ) + // InternalAlloyLanguage.g:8467:2: rule__ALSRunCommand__Group__0__Impl rule__ALSRunCommand__Group__1 + { + pushFollow(FOLLOW_3); + rule__ALSRunCommand__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRunCommand__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__Group__0" + + + // $ANTLR start "rule__ALSRunCommand__Group__0__Impl" + // InternalAlloyLanguage.g:8474:1: rule__ALSRunCommand__Group__0__Impl : ( () ) ; + public final void rule__ALSRunCommand__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8478:1: ( ( () ) ) + // InternalAlloyLanguage.g:8479:1: ( () ) + { + // InternalAlloyLanguage.g:8479:1: ( () ) + // InternalAlloyLanguage.g:8480:1: () + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRunCommandAccess().getALSRunCommandAction_0()); + } + // InternalAlloyLanguage.g:8481:1: () + // InternalAlloyLanguage.g:8483:1: + { + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRunCommandAccess().getALSRunCommandAction_0()); + } + + } + + + } + + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__Group__0__Impl" + + + // $ANTLR start "rule__ALSRunCommand__Group__1" + // InternalAlloyLanguage.g:8493:1: rule__ALSRunCommand__Group__1 : rule__ALSRunCommand__Group__1__Impl rule__ALSRunCommand__Group__2 ; + public final void rule__ALSRunCommand__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8497:1: ( rule__ALSRunCommand__Group__1__Impl rule__ALSRunCommand__Group__2 ) + // InternalAlloyLanguage.g:8498:2: rule__ALSRunCommand__Group__1__Impl rule__ALSRunCommand__Group__2 + { + pushFollow(FOLLOW_6); + rule__ALSRunCommand__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRunCommand__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__Group__1" + + + // $ANTLR start "rule__ALSRunCommand__Group__1__Impl" + // InternalAlloyLanguage.g:8505:1: rule__ALSRunCommand__Group__1__Impl : ( 'run' ) ; + public final void rule__ALSRunCommand__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8509:1: ( ( 'run' ) ) + // InternalAlloyLanguage.g:8510:1: ( 'run' ) + { + // InternalAlloyLanguage.g:8510:1: ( 'run' ) + // InternalAlloyLanguage.g:8511:1: 'run' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRunCommandAccess().getRunKeyword_1()); + } + match(input,72,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRunCommandAccess().getRunKeyword_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__Group__1__Impl" + + + // $ANTLR start "rule__ALSRunCommand__Group__2" + // InternalAlloyLanguage.g:8524:1: rule__ALSRunCommand__Group__2 : rule__ALSRunCommand__Group__2__Impl rule__ALSRunCommand__Group__3 ; + public final void rule__ALSRunCommand__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8528:1: ( rule__ALSRunCommand__Group__2__Impl rule__ALSRunCommand__Group__3 ) + // InternalAlloyLanguage.g:8529:2: rule__ALSRunCommand__Group__2__Impl rule__ALSRunCommand__Group__3 + { + pushFollow(FOLLOW_19); + rule__ALSRunCommand__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRunCommand__Group__3(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__Group__2" + + + // $ANTLR start "rule__ALSRunCommand__Group__2__Impl" + // InternalAlloyLanguage.g:8536:1: rule__ALSRunCommand__Group__2__Impl : ( '{' ) ; + public final void rule__ALSRunCommand__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8540:1: ( ( '{' ) ) + // InternalAlloyLanguage.g:8541:1: ( '{' ) + { + // InternalAlloyLanguage.g:8541:1: ( '{' ) + // InternalAlloyLanguage.g:8542:1: '{' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRunCommandAccess().getLeftCurlyBracketKeyword_2()); + } + match(input,33,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRunCommandAccess().getLeftCurlyBracketKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__Group__2__Impl" + + + // $ANTLR start "rule__ALSRunCommand__Group__3" + // InternalAlloyLanguage.g:8555:1: rule__ALSRunCommand__Group__3 : rule__ALSRunCommand__Group__3__Impl rule__ALSRunCommand__Group__4 ; + public final void rule__ALSRunCommand__Group__3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8559:1: ( rule__ALSRunCommand__Group__3__Impl rule__ALSRunCommand__Group__4 ) + // InternalAlloyLanguage.g:8560:2: rule__ALSRunCommand__Group__3__Impl rule__ALSRunCommand__Group__4 + { + pushFollow(FOLLOW_62); + rule__ALSRunCommand__Group__3__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRunCommand__Group__4(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__Group__3" + + + // $ANTLR start "rule__ALSRunCommand__Group__3__Impl" + // InternalAlloyLanguage.g:8567:1: rule__ALSRunCommand__Group__3__Impl : ( '}' ) ; + public final void rule__ALSRunCommand__Group__3__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8571:1: ( ( '}' ) ) + // InternalAlloyLanguage.g:8572:1: ( '}' ) + { + // InternalAlloyLanguage.g:8572:1: ( '}' ) + // InternalAlloyLanguage.g:8573:1: '}' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRunCommandAccess().getRightCurlyBracketKeyword_3()); + } + match(input,34,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRunCommandAccess().getRightCurlyBracketKeyword_3()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__Group__3__Impl" + + + // $ANTLR start "rule__ALSRunCommand__Group__4" + // InternalAlloyLanguage.g:8586:1: rule__ALSRunCommand__Group__4 : rule__ALSRunCommand__Group__4__Impl ; + public final void rule__ALSRunCommand__Group__4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8590:1: ( rule__ALSRunCommand__Group__4__Impl ) + // InternalAlloyLanguage.g:8591:2: rule__ALSRunCommand__Group__4__Impl + { + pushFollow(FOLLOW_2); + rule__ALSRunCommand__Group__4__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__Group__4" + + + // $ANTLR start "rule__ALSRunCommand__Group__4__Impl" + // InternalAlloyLanguage.g:8597:1: rule__ALSRunCommand__Group__4__Impl : ( ( rule__ALSRunCommand__Group_4__0 )? ) ; + public final void rule__ALSRunCommand__Group__4__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8601:1: ( ( ( rule__ALSRunCommand__Group_4__0 )? ) ) + // InternalAlloyLanguage.g:8602:1: ( ( rule__ALSRunCommand__Group_4__0 )? ) + { + // InternalAlloyLanguage.g:8602:1: ( ( rule__ALSRunCommand__Group_4__0 )? ) + // InternalAlloyLanguage.g:8603:1: ( rule__ALSRunCommand__Group_4__0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRunCommandAccess().getGroup_4()); + } + // InternalAlloyLanguage.g:8604:1: ( rule__ALSRunCommand__Group_4__0 )? + int alt48=2; + int LA48_0 = input.LA(1); + + if ( (LA48_0==73) ) { + alt48=1; + } + switch (alt48) { + case 1 : + // InternalAlloyLanguage.g:8604:2: rule__ALSRunCommand__Group_4__0 + { + pushFollow(FOLLOW_2); + rule__ALSRunCommand__Group_4__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRunCommandAccess().getGroup_4()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__Group__4__Impl" + + + // $ANTLR start "rule__ALSRunCommand__Group_4__0" + // InternalAlloyLanguage.g:8624:1: rule__ALSRunCommand__Group_4__0 : rule__ALSRunCommand__Group_4__0__Impl rule__ALSRunCommand__Group_4__1 ; + public final void rule__ALSRunCommand__Group_4__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8628:1: ( rule__ALSRunCommand__Group_4__0__Impl rule__ALSRunCommand__Group_4__1 ) + // InternalAlloyLanguage.g:8629:2: rule__ALSRunCommand__Group_4__0__Impl rule__ALSRunCommand__Group_4__1 + { + pushFollow(FOLLOW_63); + rule__ALSRunCommand__Group_4__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRunCommand__Group_4__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__Group_4__0" + + + // $ANTLR start "rule__ALSRunCommand__Group_4__0__Impl" + // InternalAlloyLanguage.g:8636:1: rule__ALSRunCommand__Group_4__0__Impl : ( 'for' ) ; + public final void rule__ALSRunCommand__Group_4__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8640:1: ( ( 'for' ) ) + // InternalAlloyLanguage.g:8641:1: ( 'for' ) + { + // InternalAlloyLanguage.g:8641:1: ( 'for' ) + // InternalAlloyLanguage.g:8642:1: 'for' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRunCommandAccess().getForKeyword_4_0()); + } + match(input,73,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRunCommandAccess().getForKeyword_4_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__Group_4__0__Impl" + + + // $ANTLR start "rule__ALSRunCommand__Group_4__1" + // InternalAlloyLanguage.g:8655:1: rule__ALSRunCommand__Group_4__1 : rule__ALSRunCommand__Group_4__1__Impl rule__ALSRunCommand__Group_4__2 ; + public final void rule__ALSRunCommand__Group_4__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8659:1: ( rule__ALSRunCommand__Group_4__1__Impl rule__ALSRunCommand__Group_4__2 ) + // InternalAlloyLanguage.g:8660:2: rule__ALSRunCommand__Group_4__1__Impl rule__ALSRunCommand__Group_4__2 + { + pushFollow(FOLLOW_14); + rule__ALSRunCommand__Group_4__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRunCommand__Group_4__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__Group_4__1" + + + // $ANTLR start "rule__ALSRunCommand__Group_4__1__Impl" + // InternalAlloyLanguage.g:8667:1: rule__ALSRunCommand__Group_4__1__Impl : ( ( rule__ALSRunCommand__TypeScopesAssignment_4_1 ) ) ; + public final void rule__ALSRunCommand__Group_4__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8671:1: ( ( ( rule__ALSRunCommand__TypeScopesAssignment_4_1 ) ) ) + // InternalAlloyLanguage.g:8672:1: ( ( rule__ALSRunCommand__TypeScopesAssignment_4_1 ) ) + { + // InternalAlloyLanguage.g:8672:1: ( ( rule__ALSRunCommand__TypeScopesAssignment_4_1 ) ) + // InternalAlloyLanguage.g:8673:1: ( rule__ALSRunCommand__TypeScopesAssignment_4_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRunCommandAccess().getTypeScopesAssignment_4_1()); + } + // InternalAlloyLanguage.g:8674:1: ( rule__ALSRunCommand__TypeScopesAssignment_4_1 ) + // InternalAlloyLanguage.g:8674:2: rule__ALSRunCommand__TypeScopesAssignment_4_1 + { + pushFollow(FOLLOW_2); + rule__ALSRunCommand__TypeScopesAssignment_4_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRunCommandAccess().getTypeScopesAssignment_4_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__Group_4__1__Impl" + + + // $ANTLR start "rule__ALSRunCommand__Group_4__2" + // InternalAlloyLanguage.g:8684:1: rule__ALSRunCommand__Group_4__2 : rule__ALSRunCommand__Group_4__2__Impl ; + public final void rule__ALSRunCommand__Group_4__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8688:1: ( rule__ALSRunCommand__Group_4__2__Impl ) + // InternalAlloyLanguage.g:8689:2: rule__ALSRunCommand__Group_4__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSRunCommand__Group_4__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__Group_4__2" + + + // $ANTLR start "rule__ALSRunCommand__Group_4__2__Impl" + // InternalAlloyLanguage.g:8695:1: rule__ALSRunCommand__Group_4__2__Impl : ( ( rule__ALSRunCommand__Group_4_2__0 )* ) ; + public final void rule__ALSRunCommand__Group_4__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8699:1: ( ( ( rule__ALSRunCommand__Group_4_2__0 )* ) ) + // InternalAlloyLanguage.g:8700:1: ( ( rule__ALSRunCommand__Group_4_2__0 )* ) + { + // InternalAlloyLanguage.g:8700:1: ( ( rule__ALSRunCommand__Group_4_2__0 )* ) + // InternalAlloyLanguage.g:8701:1: ( rule__ALSRunCommand__Group_4_2__0 )* + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRunCommandAccess().getGroup_4_2()); + } + // InternalAlloyLanguage.g:8702:1: ( rule__ALSRunCommand__Group_4_2__0 )* + loop49: + do { + int alt49=2; + int LA49_0 = input.LA(1); + + if ( (LA49_0==35) ) { + alt49=1; + } + + + switch (alt49) { + case 1 : + // InternalAlloyLanguage.g:8702:2: rule__ALSRunCommand__Group_4_2__0 + { + pushFollow(FOLLOW_8); + rule__ALSRunCommand__Group_4_2__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + default : + break loop49; + } + } while (true); + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRunCommandAccess().getGroup_4_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__Group_4__2__Impl" + + + // $ANTLR start "rule__ALSRunCommand__Group_4_2__0" + // InternalAlloyLanguage.g:8718:1: rule__ALSRunCommand__Group_4_2__0 : rule__ALSRunCommand__Group_4_2__0__Impl rule__ALSRunCommand__Group_4_2__1 ; + public final void rule__ALSRunCommand__Group_4_2__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8722:1: ( rule__ALSRunCommand__Group_4_2__0__Impl rule__ALSRunCommand__Group_4_2__1 ) + // InternalAlloyLanguage.g:8723:2: rule__ALSRunCommand__Group_4_2__0__Impl rule__ALSRunCommand__Group_4_2__1 + { + pushFollow(FOLLOW_63); + rule__ALSRunCommand__Group_4_2__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSRunCommand__Group_4_2__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__Group_4_2__0" + + + // $ANTLR start "rule__ALSRunCommand__Group_4_2__0__Impl" + // InternalAlloyLanguage.g:8730:1: rule__ALSRunCommand__Group_4_2__0__Impl : ( ',' ) ; + public final void rule__ALSRunCommand__Group_4_2__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8734:1: ( ( ',' ) ) + // InternalAlloyLanguage.g:8735:1: ( ',' ) + { + // InternalAlloyLanguage.g:8735:1: ( ',' ) + // InternalAlloyLanguage.g:8736:1: ',' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRunCommandAccess().getCommaKeyword_4_2_0()); + } + match(input,35,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRunCommandAccess().getCommaKeyword_4_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__Group_4_2__0__Impl" + + + // $ANTLR start "rule__ALSRunCommand__Group_4_2__1" + // InternalAlloyLanguage.g:8749:1: rule__ALSRunCommand__Group_4_2__1 : rule__ALSRunCommand__Group_4_2__1__Impl ; + public final void rule__ALSRunCommand__Group_4_2__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8753:1: ( rule__ALSRunCommand__Group_4_2__1__Impl ) + // InternalAlloyLanguage.g:8754:2: rule__ALSRunCommand__Group_4_2__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSRunCommand__Group_4_2__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__Group_4_2__1" + + + // $ANTLR start "rule__ALSRunCommand__Group_4_2__1__Impl" + // InternalAlloyLanguage.g:8760:1: rule__ALSRunCommand__Group_4_2__1__Impl : ( ( rule__ALSRunCommand__TypeScopesAssignment_4_2_1 ) ) ; + public final void rule__ALSRunCommand__Group_4_2__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8764:1: ( ( ( rule__ALSRunCommand__TypeScopesAssignment_4_2_1 ) ) ) + // InternalAlloyLanguage.g:8765:1: ( ( rule__ALSRunCommand__TypeScopesAssignment_4_2_1 ) ) + { + // InternalAlloyLanguage.g:8765:1: ( ( rule__ALSRunCommand__TypeScopesAssignment_4_2_1 ) ) + // InternalAlloyLanguage.g:8766:1: ( rule__ALSRunCommand__TypeScopesAssignment_4_2_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRunCommandAccess().getTypeScopesAssignment_4_2_1()); + } + // InternalAlloyLanguage.g:8767:1: ( rule__ALSRunCommand__TypeScopesAssignment_4_2_1 ) + // InternalAlloyLanguage.g:8767:2: rule__ALSRunCommand__TypeScopesAssignment_4_2_1 + { + pushFollow(FOLLOW_2); + rule__ALSRunCommand__TypeScopesAssignment_4_2_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRunCommandAccess().getTypeScopesAssignment_4_2_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__Group_4_2__1__Impl" + + + // $ANTLR start "rule__ALSSigScope__Group__0" + // InternalAlloyLanguage.g:8781:1: rule__ALSSigScope__Group__0 : rule__ALSSigScope__Group__0__Impl rule__ALSSigScope__Group__1 ; + public final void rule__ALSSigScope__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8785:1: ( rule__ALSSigScope__Group__0__Impl rule__ALSSigScope__Group__1 ) + // InternalAlloyLanguage.g:8786:2: rule__ALSSigScope__Group__0__Impl rule__ALSSigScope__Group__1 + { + pushFollow(FOLLOW_63); + rule__ALSSigScope__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSSigScope__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSigScope__Group__0" + + + // $ANTLR start "rule__ALSSigScope__Group__0__Impl" + // InternalAlloyLanguage.g:8793:1: rule__ALSSigScope__Group__0__Impl : ( ( rule__ALSSigScope__ExactlyAssignment_0 )? ) ; + public final void rule__ALSSigScope__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8797:1: ( ( ( rule__ALSSigScope__ExactlyAssignment_0 )? ) ) + // InternalAlloyLanguage.g:8798:1: ( ( rule__ALSSigScope__ExactlyAssignment_0 )? ) + { + // InternalAlloyLanguage.g:8798:1: ( ( rule__ALSSigScope__ExactlyAssignment_0 )? ) + // InternalAlloyLanguage.g:8799:1: ( rule__ALSSigScope__ExactlyAssignment_0 )? + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSigScopeAccess().getExactlyAssignment_0()); + } + // InternalAlloyLanguage.g:8800:1: ( rule__ALSSigScope__ExactlyAssignment_0 )? + int alt50=2; + int LA50_0 = input.LA(1); + + if ( (LA50_0==74) ) { + alt50=1; + } + switch (alt50) { + case 1 : + // InternalAlloyLanguage.g:8800:2: rule__ALSSigScope__ExactlyAssignment_0 + { + pushFollow(FOLLOW_2); + rule__ALSSigScope__ExactlyAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSigScopeAccess().getExactlyAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSigScope__Group__0__Impl" + + + // $ANTLR start "rule__ALSSigScope__Group__1" + // InternalAlloyLanguage.g:8810:1: rule__ALSSigScope__Group__1 : rule__ALSSigScope__Group__1__Impl rule__ALSSigScope__Group__2 ; + public final void rule__ALSSigScope__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8814:1: ( rule__ALSSigScope__Group__1__Impl rule__ALSSigScope__Group__2 ) + // InternalAlloyLanguage.g:8815:2: rule__ALSSigScope__Group__1__Impl rule__ALSSigScope__Group__2 + { + pushFollow(FOLLOW_5); + rule__ALSSigScope__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSSigScope__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSigScope__Group__1" + + + // $ANTLR start "rule__ALSSigScope__Group__1__Impl" + // InternalAlloyLanguage.g:8822:1: rule__ALSSigScope__Group__1__Impl : ( ( rule__ALSSigScope__NumberAssignment_1 ) ) ; + public final void rule__ALSSigScope__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8826:1: ( ( ( rule__ALSSigScope__NumberAssignment_1 ) ) ) + // InternalAlloyLanguage.g:8827:1: ( ( rule__ALSSigScope__NumberAssignment_1 ) ) + { + // InternalAlloyLanguage.g:8827:1: ( ( rule__ALSSigScope__NumberAssignment_1 ) ) + // InternalAlloyLanguage.g:8828:1: ( rule__ALSSigScope__NumberAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSigScopeAccess().getNumberAssignment_1()); + } + // InternalAlloyLanguage.g:8829:1: ( rule__ALSSigScope__NumberAssignment_1 ) + // InternalAlloyLanguage.g:8829:2: rule__ALSSigScope__NumberAssignment_1 + { + pushFollow(FOLLOW_2); + rule__ALSSigScope__NumberAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSigScopeAccess().getNumberAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSigScope__Group__1__Impl" + + + // $ANTLR start "rule__ALSSigScope__Group__2" + // InternalAlloyLanguage.g:8839:1: rule__ALSSigScope__Group__2 : rule__ALSSigScope__Group__2__Impl ; + public final void rule__ALSSigScope__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8843:1: ( rule__ALSSigScope__Group__2__Impl ) + // InternalAlloyLanguage.g:8844:2: rule__ALSSigScope__Group__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSSigScope__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSigScope__Group__2" + + + // $ANTLR start "rule__ALSSigScope__Group__2__Impl" + // InternalAlloyLanguage.g:8850:1: rule__ALSSigScope__Group__2__Impl : ( ( rule__ALSSigScope__TypeAssignment_2 ) ) ; + public final void rule__ALSSigScope__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8854:1: ( ( ( rule__ALSSigScope__TypeAssignment_2 ) ) ) + // InternalAlloyLanguage.g:8855:1: ( ( rule__ALSSigScope__TypeAssignment_2 ) ) + { + // InternalAlloyLanguage.g:8855:1: ( ( rule__ALSSigScope__TypeAssignment_2 ) ) + // InternalAlloyLanguage.g:8856:1: ( rule__ALSSigScope__TypeAssignment_2 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSigScopeAccess().getTypeAssignment_2()); + } + // InternalAlloyLanguage.g:8857:1: ( rule__ALSSigScope__TypeAssignment_2 ) + // InternalAlloyLanguage.g:8857:2: rule__ALSSigScope__TypeAssignment_2 + { + pushFollow(FOLLOW_2); + rule__ALSSigScope__TypeAssignment_2(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSigScopeAccess().getTypeAssignment_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSigScope__Group__2__Impl" + + + // $ANTLR start "rule__ALSIntScope__Group__0" + // InternalAlloyLanguage.g:8873:1: rule__ALSIntScope__Group__0 : rule__ALSIntScope__Group__0__Impl rule__ALSIntScope__Group__1 ; + public final void rule__ALSIntScope__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8877:1: ( rule__ALSIntScope__Group__0__Impl rule__ALSIntScope__Group__1 ) + // InternalAlloyLanguage.g:8878:2: rule__ALSIntScope__Group__0__Impl rule__ALSIntScope__Group__1 + { + pushFollow(FOLLOW_57); + rule__ALSIntScope__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSIntScope__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIntScope__Group__0" + + + // $ANTLR start "rule__ALSIntScope__Group__0__Impl" + // InternalAlloyLanguage.g:8885:1: rule__ALSIntScope__Group__0__Impl : ( ( rule__ALSIntScope__NumberAssignment_0 ) ) ; + public final void rule__ALSIntScope__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8889:1: ( ( ( rule__ALSIntScope__NumberAssignment_0 ) ) ) + // InternalAlloyLanguage.g:8890:1: ( ( rule__ALSIntScope__NumberAssignment_0 ) ) + { + // InternalAlloyLanguage.g:8890:1: ( ( rule__ALSIntScope__NumberAssignment_0 ) ) + // InternalAlloyLanguage.g:8891:1: ( rule__ALSIntScope__NumberAssignment_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIntScopeAccess().getNumberAssignment_0()); + } + // InternalAlloyLanguage.g:8892:1: ( rule__ALSIntScope__NumberAssignment_0 ) + // InternalAlloyLanguage.g:8892:2: rule__ALSIntScope__NumberAssignment_0 + { + pushFollow(FOLLOW_2); + rule__ALSIntScope__NumberAssignment_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIntScopeAccess().getNumberAssignment_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIntScope__Group__0__Impl" + + + // $ANTLR start "rule__ALSIntScope__Group__1" + // InternalAlloyLanguage.g:8902:1: rule__ALSIntScope__Group__1 : rule__ALSIntScope__Group__1__Impl ; + public final void rule__ALSIntScope__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8906:1: ( rule__ALSIntScope__Group__1__Impl ) + // InternalAlloyLanguage.g:8907:2: rule__ALSIntScope__Group__1__Impl + { + pushFollow(FOLLOW_2); + rule__ALSIntScope__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIntScope__Group__1" + + + // $ANTLR start "rule__ALSIntScope__Group__1__Impl" + // InternalAlloyLanguage.g:8913:1: rule__ALSIntScope__Group__1__Impl : ( 'Int' ) ; + public final void rule__ALSIntScope__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8917:1: ( ( 'Int' ) ) + // InternalAlloyLanguage.g:8918:1: ( 'Int' ) + { + // InternalAlloyLanguage.g:8918:1: ( 'Int' ) + // InternalAlloyLanguage.g:8919:1: 'Int' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIntScopeAccess().getIntKeyword_1()); + } + match(input,68,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIntScopeAccess().getIntKeyword_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIntScope__Group__1__Impl" + + + // $ANTLR start "rule__ALSStringScope__Group__0" + // InternalAlloyLanguage.g:8936:1: rule__ALSStringScope__Group__0 : rule__ALSStringScope__Group__0__Impl rule__ALSStringScope__Group__1 ; + public final void rule__ALSStringScope__Group__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8940:1: ( rule__ALSStringScope__Group__0__Impl rule__ALSStringScope__Group__1 ) + // InternalAlloyLanguage.g:8941:2: rule__ALSStringScope__Group__0__Impl rule__ALSStringScope__Group__1 + { + pushFollow(FOLLOW_59); + rule__ALSStringScope__Group__0__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSStringScope__Group__1(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSStringScope__Group__0" + + + // $ANTLR start "rule__ALSStringScope__Group__0__Impl" + // InternalAlloyLanguage.g:8948:1: rule__ALSStringScope__Group__0__Impl : ( 'exactly' ) ; + public final void rule__ALSStringScope__Group__0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8952:1: ( ( 'exactly' ) ) + // InternalAlloyLanguage.g:8953:1: ( 'exactly' ) + { + // InternalAlloyLanguage.g:8953:1: ( 'exactly' ) + // InternalAlloyLanguage.g:8954:1: 'exactly' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSStringScopeAccess().getExactlyKeyword_0()); + } + match(input,74,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSStringScopeAccess().getExactlyKeyword_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSStringScope__Group__0__Impl" + + + // $ANTLR start "rule__ALSStringScope__Group__1" + // InternalAlloyLanguage.g:8967:1: rule__ALSStringScope__Group__1 : rule__ALSStringScope__Group__1__Impl rule__ALSStringScope__Group__2 ; + public final void rule__ALSStringScope__Group__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8971:1: ( rule__ALSStringScope__Group__1__Impl rule__ALSStringScope__Group__2 ) + // InternalAlloyLanguage.g:8972:2: rule__ALSStringScope__Group__1__Impl rule__ALSStringScope__Group__2 + { + pushFollow(FOLLOW_58); + rule__ALSStringScope__Group__1__Impl(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_2); + rule__ALSStringScope__Group__2(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSStringScope__Group__1" + + + // $ANTLR start "rule__ALSStringScope__Group__1__Impl" + // InternalAlloyLanguage.g:8979:1: rule__ALSStringScope__Group__1__Impl : ( ( rule__ALSStringScope__NumberAssignment_1 ) ) ; + public final void rule__ALSStringScope__Group__1__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:8983:1: ( ( ( rule__ALSStringScope__NumberAssignment_1 ) ) ) + // InternalAlloyLanguage.g:8984:1: ( ( rule__ALSStringScope__NumberAssignment_1 ) ) + { + // InternalAlloyLanguage.g:8984:1: ( ( rule__ALSStringScope__NumberAssignment_1 ) ) + // InternalAlloyLanguage.g:8985:1: ( rule__ALSStringScope__NumberAssignment_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSStringScopeAccess().getNumberAssignment_1()); + } + // InternalAlloyLanguage.g:8986:1: ( rule__ALSStringScope__NumberAssignment_1 ) + // InternalAlloyLanguage.g:8986:2: rule__ALSStringScope__NumberAssignment_1 + { + pushFollow(FOLLOW_2); + rule__ALSStringScope__NumberAssignment_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSStringScopeAccess().getNumberAssignment_1()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSStringScope__Group__1__Impl" + + + // $ANTLR start "rule__ALSStringScope__Group__2" + // InternalAlloyLanguage.g:8996:1: rule__ALSStringScope__Group__2 : rule__ALSStringScope__Group__2__Impl ; + public final void rule__ALSStringScope__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9000:1: ( rule__ALSStringScope__Group__2__Impl ) + // InternalAlloyLanguage.g:9001:2: rule__ALSStringScope__Group__2__Impl + { + pushFollow(FOLLOW_2); + rule__ALSStringScope__Group__2__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSStringScope__Group__2" + + + // $ANTLR start "rule__ALSStringScope__Group__2__Impl" + // InternalAlloyLanguage.g:9007:1: rule__ALSStringScope__Group__2__Impl : ( 'String' ) ; + public final void rule__ALSStringScope__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9011:1: ( ( 'String' ) ) + // InternalAlloyLanguage.g:9012:1: ( 'String' ) + { + // InternalAlloyLanguage.g:9012:1: ( 'String' ) + // InternalAlloyLanguage.g:9013:1: 'String' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSStringScopeAccess().getStringKeyword_2()); + } + match(input,69,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSStringScopeAccess().getStringKeyword_2()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSStringScope__Group__2__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__UnorderedGroup_0" + // InternalAlloyLanguage.g:9033:1: rule__ALSSignatureBody__UnorderedGroup_0 : ( rule__ALSSignatureBody__UnorderedGroup_0__0 )? ; + public final void rule__ALSSignatureBody__UnorderedGroup_0() throws RecognitionException { + + int stackSize = keepStackSize(); + getUnorderedGroupHelper().enter(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0()); + + try { + // InternalAlloyLanguage.g:9038:1: ( ( rule__ALSSignatureBody__UnorderedGroup_0__0 )? ) + // InternalAlloyLanguage.g:9039:2: ( rule__ALSSignatureBody__UnorderedGroup_0__0 )? + { + // InternalAlloyLanguage.g:9039:2: ( rule__ALSSignatureBody__UnorderedGroup_0__0 )? + int alt51=2; + int LA51_0 = input.LA(1); + + if ( LA51_0 == 21 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + alt51=1; + } + else if ( LA51_0 == 22 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + alt51=1; + } + else if ( LA51_0 == 23 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + alt51=1; + } + else if ( LA51_0 == 24 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + alt51=1; + } + else if ( LA51_0 == 25 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + alt51=1; + } + else if ( LA51_0 == 26 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + alt51=1; + } + else if ( LA51_0 == 75 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 1) ) { + alt51=1; + } + switch (alt51) { + case 1 : + // InternalAlloyLanguage.g:0:0: rule__ALSSignatureBody__UnorderedGroup_0__0 + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__UnorderedGroup_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + getUnorderedGroupHelper().leave(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0()); + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__UnorderedGroup_0" + + + // $ANTLR start "rule__ALSSignatureBody__UnorderedGroup_0__Impl" + // InternalAlloyLanguage.g:9049:1: rule__ALSSignatureBody__UnorderedGroup_0__Impl : ( ({...}? => ( ( ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) ) ) ) | ({...}? => ( ( ( rule__ALSSignatureBody__AbstractAssignment_0_1 ) ) ) ) ) ; + public final void rule__ALSSignatureBody__UnorderedGroup_0__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + boolean selected = false; + + try { + // InternalAlloyLanguage.g:9054:1: ( ( ({...}? => ( ( ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) ) ) ) | ({...}? => ( ( ( rule__ALSSignatureBody__AbstractAssignment_0_1 ) ) ) ) ) ) + // InternalAlloyLanguage.g:9055:3: ( ({...}? => ( ( ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) ) ) ) | ({...}? => ( ( ( rule__ALSSignatureBody__AbstractAssignment_0_1 ) ) ) ) ) + { + // InternalAlloyLanguage.g:9055:3: ( ({...}? => ( ( ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) ) ) ) | ({...}? => ( ( ( rule__ALSSignatureBody__AbstractAssignment_0_1 ) ) ) ) ) + int alt52=2; + int LA52_0 = input.LA(1); + + if ( LA52_0 == 21 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + alt52=1; + } + else if ( LA52_0 == 22 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + alt52=1; + } + else if ( LA52_0 == 23 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + alt52=1; + } + else if ( LA52_0 == 24 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + alt52=1; + } + else if ( LA52_0 == 25 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + alt52=1; + } + else if ( LA52_0 == 26 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + alt52=1; + } + else if ( LA52_0 == 75 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 1) ) { + alt52=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 52, 0, input); + + throw nvae; + } + switch (alt52) { + case 1 : + // InternalAlloyLanguage.g:9057:4: ({...}? => ( ( ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) ) ) ) + { + // InternalAlloyLanguage.g:9057:4: ({...}? => ( ( ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) ) ) ) + // InternalAlloyLanguage.g:9058:5: {...}? => ( ( ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) ) ) + { + if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + if (state.backtracking>0) {state.failed=true; return ;} + throw new FailedPredicateException(input, "rule__ALSSignatureBody__UnorderedGroup_0__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0)"); + } + // InternalAlloyLanguage.g:9058:113: ( ( ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) ) ) + // InternalAlloyLanguage.g:9059:6: ( ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) ) + { + getUnorderedGroupHelper().select(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0); + selected = true; + // InternalAlloyLanguage.g:9065:6: ( ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) ) + // InternalAlloyLanguage.g:9067:7: ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getMultiplicityAssignment_0_0()); + } + // InternalAlloyLanguage.g:9068:7: ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) + // InternalAlloyLanguage.g:9068:8: rule__ALSSignatureBody__MultiplicityAssignment_0_0 + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__MultiplicityAssignment_0_0(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getMultiplicityAssignment_0_0()); + } + + } + + + } + + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:9074:4: ({...}? => ( ( ( rule__ALSSignatureBody__AbstractAssignment_0_1 ) ) ) ) + { + // InternalAlloyLanguage.g:9074:4: ({...}? => ( ( ( rule__ALSSignatureBody__AbstractAssignment_0_1 ) ) ) ) + // InternalAlloyLanguage.g:9075:5: {...}? => ( ( ( rule__ALSSignatureBody__AbstractAssignment_0_1 ) ) ) + { + if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 1) ) { + if (state.backtracking>0) {state.failed=true; return ;} + throw new FailedPredicateException(input, "rule__ALSSignatureBody__UnorderedGroup_0__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 1)"); + } + // InternalAlloyLanguage.g:9075:113: ( ( ( rule__ALSSignatureBody__AbstractAssignment_0_1 ) ) ) + // InternalAlloyLanguage.g:9076:6: ( ( rule__ALSSignatureBody__AbstractAssignment_0_1 ) ) + { + getUnorderedGroupHelper().select(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 1); + selected = true; + // InternalAlloyLanguage.g:9082:6: ( ( rule__ALSSignatureBody__AbstractAssignment_0_1 ) ) + // InternalAlloyLanguage.g:9084:7: ( rule__ALSSignatureBody__AbstractAssignment_0_1 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getAbstractAssignment_0_1()); + } + // InternalAlloyLanguage.g:9085:7: ( rule__ALSSignatureBody__AbstractAssignment_0_1 ) + // InternalAlloyLanguage.g:9085:8: rule__ALSSignatureBody__AbstractAssignment_0_1 + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__AbstractAssignment_0_1(); + + state._fsp--; + if (state.failed) return ; + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getAbstractAssignment_0_1()); + } + + } + + + } + + + } + + + } + break; + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + if (selected) + getUnorderedGroupHelper().returnFromSelection(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0()); + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__UnorderedGroup_0__Impl" + + + // $ANTLR start "rule__ALSSignatureBody__UnorderedGroup_0__0" + // InternalAlloyLanguage.g:9100:1: rule__ALSSignatureBody__UnorderedGroup_0__0 : rule__ALSSignatureBody__UnorderedGroup_0__Impl ( rule__ALSSignatureBody__UnorderedGroup_0__1 )? ; + public final void rule__ALSSignatureBody__UnorderedGroup_0__0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9104:1: ( rule__ALSSignatureBody__UnorderedGroup_0__Impl ( rule__ALSSignatureBody__UnorderedGroup_0__1 )? ) + // InternalAlloyLanguage.g:9105:2: rule__ALSSignatureBody__UnorderedGroup_0__Impl ( rule__ALSSignatureBody__UnorderedGroup_0__1 )? + { + pushFollow(FOLLOW_64); + rule__ALSSignatureBody__UnorderedGroup_0__Impl(); + + state._fsp--; + if (state.failed) return ; + // InternalAlloyLanguage.g:9106:2: ( rule__ALSSignatureBody__UnorderedGroup_0__1 )? + int alt53=2; + int LA53_0 = input.LA(1); + + if ( LA53_0 == 21 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + alt53=1; + } + else if ( LA53_0 == 22 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + alt53=1; + } + else if ( LA53_0 == 23 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + alt53=1; + } + else if ( LA53_0 == 24 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + alt53=1; + } + else if ( LA53_0 == 25 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + alt53=1; + } + else if ( LA53_0 == 26 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + alt53=1; + } + else if ( LA53_0 == 75 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 1) ) { + alt53=1; + } + switch (alt53) { + case 1 : + // InternalAlloyLanguage.g:0:0: rule__ALSSignatureBody__UnorderedGroup_0__1 + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__UnorderedGroup_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__UnorderedGroup_0__0" + + + // $ANTLR start "rule__ALSSignatureBody__UnorderedGroup_0__1" + // InternalAlloyLanguage.g:9113:1: rule__ALSSignatureBody__UnorderedGroup_0__1 : rule__ALSSignatureBody__UnorderedGroup_0__Impl ; + public final void rule__ALSSignatureBody__UnorderedGroup_0__1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9117:1: ( rule__ALSSignatureBody__UnorderedGroup_0__Impl ) + // InternalAlloyLanguage.g:9118:2: rule__ALSSignatureBody__UnorderedGroup_0__Impl + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__UnorderedGroup_0__Impl(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__UnorderedGroup_0__1" + + + // $ANTLR start "rule__ALSDocument__EnumDeclarationsAssignment_0_0" + // InternalAlloyLanguage.g:9129:1: rule__ALSDocument__EnumDeclarationsAssignment_0_0 : ( ruleALSEnumDeclaration ) ; + public final void rule__ALSDocument__EnumDeclarationsAssignment_0_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9133:1: ( ( ruleALSEnumDeclaration ) ) + // InternalAlloyLanguage.g:9134:1: ( ruleALSEnumDeclaration ) + { + // InternalAlloyLanguage.g:9134:1: ( ruleALSEnumDeclaration ) + // InternalAlloyLanguage.g:9135:1: ruleALSEnumDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDocumentAccess().getEnumDeclarationsALSEnumDeclarationParserRuleCall_0_0_0()); + } + pushFollow(FOLLOW_2); + ruleALSEnumDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDocumentAccess().getEnumDeclarationsALSEnumDeclarationParserRuleCall_0_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDocument__EnumDeclarationsAssignment_0_0" + + + // $ANTLR start "rule__ALSDocument__SignatureBodiesAssignment_0_1" + // InternalAlloyLanguage.g:9144:1: rule__ALSDocument__SignatureBodiesAssignment_0_1 : ( ruleALSSignatureBody ) ; + public final void rule__ALSDocument__SignatureBodiesAssignment_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9148:1: ( ( ruleALSSignatureBody ) ) + // InternalAlloyLanguage.g:9149:1: ( ruleALSSignatureBody ) + { + // InternalAlloyLanguage.g:9149:1: ( ruleALSSignatureBody ) + // InternalAlloyLanguage.g:9150:1: ruleALSSignatureBody + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDocumentAccess().getSignatureBodiesALSSignatureBodyParserRuleCall_0_1_0()); + } + pushFollow(FOLLOW_2); + ruleALSSignatureBody(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDocumentAccess().getSignatureBodiesALSSignatureBodyParserRuleCall_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDocument__SignatureBodiesAssignment_0_1" + + + // $ANTLR start "rule__ALSDocument__FunctionDefinitionsAssignment_0_2" + // InternalAlloyLanguage.g:9159:1: rule__ALSDocument__FunctionDefinitionsAssignment_0_2 : ( ruleALSFunctionDefinition ) ; + public final void rule__ALSDocument__FunctionDefinitionsAssignment_0_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9163:1: ( ( ruleALSFunctionDefinition ) ) + // InternalAlloyLanguage.g:9164:1: ( ruleALSFunctionDefinition ) + { + // InternalAlloyLanguage.g:9164:1: ( ruleALSFunctionDefinition ) + // InternalAlloyLanguage.g:9165:1: ruleALSFunctionDefinition + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDocumentAccess().getFunctionDefinitionsALSFunctionDefinitionParserRuleCall_0_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSFunctionDefinition(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDocumentAccess().getFunctionDefinitionsALSFunctionDefinitionParserRuleCall_0_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDocument__FunctionDefinitionsAssignment_0_2" + + + // $ANTLR start "rule__ALSDocument__RelationDefinitionsAssignment_0_3" + // InternalAlloyLanguage.g:9174:1: rule__ALSDocument__RelationDefinitionsAssignment_0_3 : ( ruleALSRelationDefinition ) ; + public final void rule__ALSDocument__RelationDefinitionsAssignment_0_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9178:1: ( ( ruleALSRelationDefinition ) ) + // InternalAlloyLanguage.g:9179:1: ( ruleALSRelationDefinition ) + { + // InternalAlloyLanguage.g:9179:1: ( ruleALSRelationDefinition ) + // InternalAlloyLanguage.g:9180:1: ruleALSRelationDefinition + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDocumentAccess().getRelationDefinitionsALSRelationDefinitionParserRuleCall_0_3_0()); + } + pushFollow(FOLLOW_2); + ruleALSRelationDefinition(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDocumentAccess().getRelationDefinitionsALSRelationDefinitionParserRuleCall_0_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDocument__RelationDefinitionsAssignment_0_3" + + + // $ANTLR start "rule__ALSDocument__FactDeclarationsAssignment_0_4" + // InternalAlloyLanguage.g:9189:1: rule__ALSDocument__FactDeclarationsAssignment_0_4 : ( ruleALSFactDeclaration ) ; + public final void rule__ALSDocument__FactDeclarationsAssignment_0_4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9193:1: ( ( ruleALSFactDeclaration ) ) + // InternalAlloyLanguage.g:9194:1: ( ruleALSFactDeclaration ) + { + // InternalAlloyLanguage.g:9194:1: ( ruleALSFactDeclaration ) + // InternalAlloyLanguage.g:9195:1: ruleALSFactDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDocumentAccess().getFactDeclarationsALSFactDeclarationParserRuleCall_0_4_0()); + } + pushFollow(FOLLOW_2); + ruleALSFactDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDocumentAccess().getFactDeclarationsALSFactDeclarationParserRuleCall_0_4_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDocument__FactDeclarationsAssignment_0_4" + + + // $ANTLR start "rule__ALSDocument__RunCommandAssignment_1" + // InternalAlloyLanguage.g:9204:1: rule__ALSDocument__RunCommandAssignment_1 : ( ruleALSRunCommand ) ; + public final void rule__ALSDocument__RunCommandAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9208:1: ( ( ruleALSRunCommand ) ) + // InternalAlloyLanguage.g:9209:1: ( ruleALSRunCommand ) + { + // InternalAlloyLanguage.g:9209:1: ( ruleALSRunCommand ) + // InternalAlloyLanguage.g:9210:1: ruleALSRunCommand + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDocumentAccess().getRunCommandALSRunCommandParserRuleCall_1_0()); + } + pushFollow(FOLLOW_2); + ruleALSRunCommand(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDocumentAccess().getRunCommandALSRunCommandParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDocument__RunCommandAssignment_1" + + + // $ANTLR start "rule__ALSEnumDeclaration__NameAssignment_1" + // InternalAlloyLanguage.g:9219:1: rule__ALSEnumDeclaration__NameAssignment_1 : ( ruleALSID ) ; + public final void rule__ALSEnumDeclaration__NameAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9223:1: ( ( ruleALSID ) ) + // InternalAlloyLanguage.g:9224:1: ( ruleALSID ) + { + // InternalAlloyLanguage.g:9224:1: ( ruleALSID ) + // InternalAlloyLanguage.g:9225:1: ruleALSID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSEnumDeclarationAccess().getNameALSIDParserRuleCall_1_0()); + } + pushFollow(FOLLOW_2); + ruleALSID(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSEnumDeclarationAccess().getNameALSIDParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSEnumDeclaration__NameAssignment_1" + + + // $ANTLR start "rule__ALSEnumDeclaration__LiteralAssignment_3" + // InternalAlloyLanguage.g:9234:1: rule__ALSEnumDeclaration__LiteralAssignment_3 : ( ruleALSEnumLiteral ) ; + public final void rule__ALSEnumDeclaration__LiteralAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9238:1: ( ( ruleALSEnumLiteral ) ) + // InternalAlloyLanguage.g:9239:1: ( ruleALSEnumLiteral ) + { + // InternalAlloyLanguage.g:9239:1: ( ruleALSEnumLiteral ) + // InternalAlloyLanguage.g:9240:1: ruleALSEnumLiteral + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSEnumDeclarationAccess().getLiteralALSEnumLiteralParserRuleCall_3_0()); + } + pushFollow(FOLLOW_2); + ruleALSEnumLiteral(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSEnumDeclarationAccess().getLiteralALSEnumLiteralParserRuleCall_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSEnumDeclaration__LiteralAssignment_3" + + + // $ANTLR start "rule__ALSEnumDeclaration__LiteralAssignment_4_1" + // InternalAlloyLanguage.g:9249:1: rule__ALSEnumDeclaration__LiteralAssignment_4_1 : ( ruleALSEnumLiteral ) ; + public final void rule__ALSEnumDeclaration__LiteralAssignment_4_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9253:1: ( ( ruleALSEnumLiteral ) ) + // InternalAlloyLanguage.g:9254:1: ( ruleALSEnumLiteral ) + { + // InternalAlloyLanguage.g:9254:1: ( ruleALSEnumLiteral ) + // InternalAlloyLanguage.g:9255:1: ruleALSEnumLiteral + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSEnumDeclarationAccess().getLiteralALSEnumLiteralParserRuleCall_4_1_0()); + } + pushFollow(FOLLOW_2); + ruleALSEnumLiteral(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSEnumDeclarationAccess().getLiteralALSEnumLiteralParserRuleCall_4_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSEnumDeclaration__LiteralAssignment_4_1" + + + // $ANTLR start "rule__ALSEnumLiteral__NameAssignment" + // InternalAlloyLanguage.g:9264:1: rule__ALSEnumLiteral__NameAssignment : ( ruleALSID ) ; + public final void rule__ALSEnumLiteral__NameAssignment() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9268:1: ( ( ruleALSID ) ) + // InternalAlloyLanguage.g:9269:1: ( ruleALSID ) + { + // InternalAlloyLanguage.g:9269:1: ( ruleALSID ) + // InternalAlloyLanguage.g:9270:1: ruleALSID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSEnumLiteralAccess().getNameALSIDParserRuleCall_0()); + } + pushFollow(FOLLOW_2); + ruleALSID(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSEnumLiteralAccess().getNameALSIDParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSEnumLiteral__NameAssignment" + + + // $ANTLR start "rule__ALSSignatureDeclaration__NameAssignment" + // InternalAlloyLanguage.g:9279:1: rule__ALSSignatureDeclaration__NameAssignment : ( ruleALSID ) ; + public final void rule__ALSSignatureDeclaration__NameAssignment() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9283:1: ( ( ruleALSID ) ) + // InternalAlloyLanguage.g:9284:1: ( ruleALSID ) + { + // InternalAlloyLanguage.g:9284:1: ( ruleALSID ) + // InternalAlloyLanguage.g:9285:1: ruleALSID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureDeclarationAccess().getNameALSIDParserRuleCall_0()); + } + pushFollow(FOLLOW_2); + ruleALSID(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureDeclarationAccess().getNameALSIDParserRuleCall_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureDeclaration__NameAssignment" + + + // $ANTLR start "rule__ALSSignatureBody__MultiplicityAssignment_0_0" + // InternalAlloyLanguage.g:9294:1: rule__ALSSignatureBody__MultiplicityAssignment_0_0 : ( ruleALSMultiplicity ) ; + public final void rule__ALSSignatureBody__MultiplicityAssignment_0_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9298:1: ( ( ruleALSMultiplicity ) ) + // InternalAlloyLanguage.g:9299:1: ( ruleALSMultiplicity ) + { + // InternalAlloyLanguage.g:9299:1: ( ruleALSMultiplicity ) + // InternalAlloyLanguage.g:9300:1: ruleALSMultiplicity + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getMultiplicityALSMultiplicityEnumRuleCall_0_0_0()); + } + pushFollow(FOLLOW_2); + ruleALSMultiplicity(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getMultiplicityALSMultiplicityEnumRuleCall_0_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__MultiplicityAssignment_0_0" + + + // $ANTLR start "rule__ALSSignatureBody__AbstractAssignment_0_1" + // InternalAlloyLanguage.g:9309:1: rule__ALSSignatureBody__AbstractAssignment_0_1 : ( ( 'abstract' ) ) ; + public final void rule__ALSSignatureBody__AbstractAssignment_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9313:1: ( ( ( 'abstract' ) ) ) + // InternalAlloyLanguage.g:9314:1: ( ( 'abstract' ) ) + { + // InternalAlloyLanguage.g:9314:1: ( ( 'abstract' ) ) + // InternalAlloyLanguage.g:9315:1: ( 'abstract' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getAbstractAbstractKeyword_0_1_0()); + } + // InternalAlloyLanguage.g:9316:1: ( 'abstract' ) + // InternalAlloyLanguage.g:9317:1: 'abstract' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getAbstractAbstractKeyword_0_1_0()); + } + match(input,75,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getAbstractAbstractKeyword_0_1_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getAbstractAbstractKeyword_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__AbstractAssignment_0_1" + + + // $ANTLR start "rule__ALSSignatureBody__DeclarationsAssignment_2" + // InternalAlloyLanguage.g:9332:1: rule__ALSSignatureBody__DeclarationsAssignment_2 : ( ruleALSSignatureDeclaration ) ; + public final void rule__ALSSignatureBody__DeclarationsAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9336:1: ( ( ruleALSSignatureDeclaration ) ) + // InternalAlloyLanguage.g:9337:1: ( ruleALSSignatureDeclaration ) + { + // InternalAlloyLanguage.g:9337:1: ( ruleALSSignatureDeclaration ) + // InternalAlloyLanguage.g:9338:1: ruleALSSignatureDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getDeclarationsALSSignatureDeclarationParserRuleCall_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSSignatureDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getDeclarationsALSSignatureDeclarationParserRuleCall_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__DeclarationsAssignment_2" + + + // $ANTLR start "rule__ALSSignatureBody__DeclarationsAssignment_3_1" + // InternalAlloyLanguage.g:9347:1: rule__ALSSignatureBody__DeclarationsAssignment_3_1 : ( ruleALSSignatureDeclaration ) ; + public final void rule__ALSSignatureBody__DeclarationsAssignment_3_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9351:1: ( ( ruleALSSignatureDeclaration ) ) + // InternalAlloyLanguage.g:9352:1: ( ruleALSSignatureDeclaration ) + { + // InternalAlloyLanguage.g:9352:1: ( ruleALSSignatureDeclaration ) + // InternalAlloyLanguage.g:9353:1: ruleALSSignatureDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getDeclarationsALSSignatureDeclarationParserRuleCall_3_1_0()); + } + pushFollow(FOLLOW_2); + ruleALSSignatureDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getDeclarationsALSSignatureDeclarationParserRuleCall_3_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__DeclarationsAssignment_3_1" + + + // $ANTLR start "rule__ALSSignatureBody__SupertypeAssignment_4_0_1" + // InternalAlloyLanguage.g:9362:1: rule__ALSSignatureBody__SupertypeAssignment_4_0_1 : ( ( RULE_ID ) ) ; + public final void rule__ALSSignatureBody__SupertypeAssignment_4_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9366:1: ( ( ( RULE_ID ) ) ) + // InternalAlloyLanguage.g:9367:1: ( ( RULE_ID ) ) + { + // InternalAlloyLanguage.g:9367:1: ( ( RULE_ID ) ) + // InternalAlloyLanguage.g:9368:1: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getSupertypeALSSignatureDeclarationCrossReference_4_0_1_0()); + } + // InternalAlloyLanguage.g:9369:1: ( RULE_ID ) + // InternalAlloyLanguage.g:9370:1: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getSupertypeALSSignatureDeclarationIDTerminalRuleCall_4_0_1_0_1()); + } + match(input,RULE_ID,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getSupertypeALSSignatureDeclarationIDTerminalRuleCall_4_0_1_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getSupertypeALSSignatureDeclarationCrossReference_4_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__SupertypeAssignment_4_0_1" + + + // $ANTLR start "rule__ALSSignatureBody__SupersetAssignment_4_1_1" + // InternalAlloyLanguage.g:9381:1: rule__ALSSignatureBody__SupersetAssignment_4_1_1 : ( ( RULE_ID ) ) ; + public final void rule__ALSSignatureBody__SupersetAssignment_4_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9385:1: ( ( ( RULE_ID ) ) ) + // InternalAlloyLanguage.g:9386:1: ( ( RULE_ID ) ) + { + // InternalAlloyLanguage.g:9386:1: ( ( RULE_ID ) ) + // InternalAlloyLanguage.g:9387:1: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getSupersetALSSignatureDeclarationCrossReference_4_1_1_0()); + } + // InternalAlloyLanguage.g:9388:1: ( RULE_ID ) + // InternalAlloyLanguage.g:9389:1: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getSupersetALSSignatureDeclarationIDTerminalRuleCall_4_1_1_0_1()); + } + match(input,RULE_ID,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getSupersetALSSignatureDeclarationIDTerminalRuleCall_4_1_1_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getSupersetALSSignatureDeclarationCrossReference_4_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__SupersetAssignment_4_1_1" + + + // $ANTLR start "rule__ALSSignatureBody__SupersetAssignment_4_1_2_1" + // InternalAlloyLanguage.g:9400:1: rule__ALSSignatureBody__SupersetAssignment_4_1_2_1 : ( ( RULE_ID ) ) ; + public final void rule__ALSSignatureBody__SupersetAssignment_4_1_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9404:1: ( ( ( RULE_ID ) ) ) + // InternalAlloyLanguage.g:9405:1: ( ( RULE_ID ) ) + { + // InternalAlloyLanguage.g:9405:1: ( ( RULE_ID ) ) + // InternalAlloyLanguage.g:9406:1: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getSupersetALSSignatureDeclarationCrossReference_4_1_2_1_0()); + } + // InternalAlloyLanguage.g:9407:1: ( RULE_ID ) + // InternalAlloyLanguage.g:9408:1: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getSupersetALSSignatureDeclarationIDTerminalRuleCall_4_1_2_1_0_1()); + } + match(input,RULE_ID,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getSupersetALSSignatureDeclarationIDTerminalRuleCall_4_1_2_1_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getSupersetALSSignatureDeclarationCrossReference_4_1_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__SupersetAssignment_4_1_2_1" + + + // $ANTLR start "rule__ALSSignatureBody__FieldsAssignment_6_0" + // InternalAlloyLanguage.g:9419:1: rule__ALSSignatureBody__FieldsAssignment_6_0 : ( ruleALSFieldDeclaration ) ; + public final void rule__ALSSignatureBody__FieldsAssignment_6_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9423:1: ( ( ruleALSFieldDeclaration ) ) + // InternalAlloyLanguage.g:9424:1: ( ruleALSFieldDeclaration ) + { + // InternalAlloyLanguage.g:9424:1: ( ruleALSFieldDeclaration ) + // InternalAlloyLanguage.g:9425:1: ruleALSFieldDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getFieldsALSFieldDeclarationParserRuleCall_6_0_0()); + } + pushFollow(FOLLOW_2); + ruleALSFieldDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getFieldsALSFieldDeclarationParserRuleCall_6_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__FieldsAssignment_6_0" + + + // $ANTLR start "rule__ALSSignatureBody__FieldsAssignment_6_1_1" + // InternalAlloyLanguage.g:9434:1: rule__ALSSignatureBody__FieldsAssignment_6_1_1 : ( ruleALSFieldDeclaration ) ; + public final void rule__ALSSignatureBody__FieldsAssignment_6_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9438:1: ( ( ruleALSFieldDeclaration ) ) + // InternalAlloyLanguage.g:9439:1: ( ruleALSFieldDeclaration ) + { + // InternalAlloyLanguage.g:9439:1: ( ruleALSFieldDeclaration ) + // InternalAlloyLanguage.g:9440:1: ruleALSFieldDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getFieldsALSFieldDeclarationParserRuleCall_6_1_1_0()); + } + pushFollow(FOLLOW_2); + ruleALSFieldDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSignatureBodyAccess().getFieldsALSFieldDeclarationParserRuleCall_6_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSignatureBody__FieldsAssignment_6_1_1" + + + // $ANTLR start "rule__ALSFieldDeclaration__NameAssignment_0" + // InternalAlloyLanguage.g:9449:1: rule__ALSFieldDeclaration__NameAssignment_0 : ( ruleALSID ) ; + public final void rule__ALSFieldDeclaration__NameAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9453:1: ( ( ruleALSID ) ) + // InternalAlloyLanguage.g:9454:1: ( ruleALSID ) + { + // InternalAlloyLanguage.g:9454:1: ( ruleALSID ) + // InternalAlloyLanguage.g:9455:1: ruleALSID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFieldDeclarationAccess().getNameALSIDParserRuleCall_0_0()); + } + pushFollow(FOLLOW_2); + ruleALSID(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFieldDeclarationAccess().getNameALSIDParserRuleCall_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFieldDeclaration__NameAssignment_0" + + + // $ANTLR start "rule__ALSFieldDeclaration__MultiplicityAssignment_2" + // InternalAlloyLanguage.g:9464:1: rule__ALSFieldDeclaration__MultiplicityAssignment_2 : ( ruleALSMultiplicity ) ; + public final void rule__ALSFieldDeclaration__MultiplicityAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9468:1: ( ( ruleALSMultiplicity ) ) + // InternalAlloyLanguage.g:9469:1: ( ruleALSMultiplicity ) + { + // InternalAlloyLanguage.g:9469:1: ( ruleALSMultiplicity ) + // InternalAlloyLanguage.g:9470:1: ruleALSMultiplicity + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFieldDeclarationAccess().getMultiplicityALSMultiplicityEnumRuleCall_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSMultiplicity(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFieldDeclarationAccess().getMultiplicityALSMultiplicityEnumRuleCall_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFieldDeclaration__MultiplicityAssignment_2" + + + // $ANTLR start "rule__ALSFieldDeclaration__TypeAssignment_3" + // InternalAlloyLanguage.g:9479:1: rule__ALSFieldDeclaration__TypeAssignment_3 : ( ruleALSTerm ) ; + public final void rule__ALSFieldDeclaration__TypeAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9483:1: ( ( ruleALSTerm ) ) + // InternalAlloyLanguage.g:9484:1: ( ruleALSTerm ) + { + // InternalAlloyLanguage.g:9484:1: ( ruleALSTerm ) + // InternalAlloyLanguage.g:9485:1: ruleALSTerm + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFieldDeclarationAccess().getTypeALSTermParserRuleCall_3_0()); + } + pushFollow(FOLLOW_2); + ruleALSTerm(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFieldDeclarationAccess().getTypeALSTermParserRuleCall_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFieldDeclaration__TypeAssignment_3" + + + // $ANTLR start "rule__ALSFunctionDefinition__NameAssignment_1" + // InternalAlloyLanguage.g:9494:1: rule__ALSFunctionDefinition__NameAssignment_1 : ( ruleALSID ) ; + public final void rule__ALSFunctionDefinition__NameAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9498:1: ( ( ruleALSID ) ) + // InternalAlloyLanguage.g:9499:1: ( ruleALSID ) + { + // InternalAlloyLanguage.g:9499:1: ( ruleALSID ) + // InternalAlloyLanguage.g:9500:1: ruleALSID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFunctionDefinitionAccess().getNameALSIDParserRuleCall_1_0()); + } + pushFollow(FOLLOW_2); + ruleALSID(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFunctionDefinitionAccess().getNameALSIDParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__NameAssignment_1" + + + // $ANTLR start "rule__ALSFunctionDefinition__VariablesAssignment_3" + // InternalAlloyLanguage.g:9509:1: rule__ALSFunctionDefinition__VariablesAssignment_3 : ( ruleALSVariableDeclaration ) ; + public final void rule__ALSFunctionDefinition__VariablesAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9513:1: ( ( ruleALSVariableDeclaration ) ) + // InternalAlloyLanguage.g:9514:1: ( ruleALSVariableDeclaration ) + { + // InternalAlloyLanguage.g:9514:1: ( ruleALSVariableDeclaration ) + // InternalAlloyLanguage.g:9515:1: ruleALSVariableDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFunctionDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_3_0()); + } + pushFollow(FOLLOW_2); + ruleALSVariableDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFunctionDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__VariablesAssignment_3" + + + // $ANTLR start "rule__ALSFunctionDefinition__VariablesAssignment_4_1" + // InternalAlloyLanguage.g:9524:1: rule__ALSFunctionDefinition__VariablesAssignment_4_1 : ( ruleALSVariableDeclaration ) ; + public final void rule__ALSFunctionDefinition__VariablesAssignment_4_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9528:1: ( ( ruleALSVariableDeclaration ) ) + // InternalAlloyLanguage.g:9529:1: ( ruleALSVariableDeclaration ) + { + // InternalAlloyLanguage.g:9529:1: ( ruleALSVariableDeclaration ) + // InternalAlloyLanguage.g:9530:1: ruleALSVariableDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFunctionDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_4_1_0()); + } + pushFollow(FOLLOW_2); + ruleALSVariableDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFunctionDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_4_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__VariablesAssignment_4_1" + + + // $ANTLR start "rule__ALSFunctionDefinition__TypeAssignment_7" + // InternalAlloyLanguage.g:9539:1: rule__ALSFunctionDefinition__TypeAssignment_7 : ( ruleALSTerm ) ; + public final void rule__ALSFunctionDefinition__TypeAssignment_7() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9543:1: ( ( ruleALSTerm ) ) + // InternalAlloyLanguage.g:9544:1: ( ruleALSTerm ) + { + // InternalAlloyLanguage.g:9544:1: ( ruleALSTerm ) + // InternalAlloyLanguage.g:9545:1: ruleALSTerm + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFunctionDefinitionAccess().getTypeALSTermParserRuleCall_7_0()); + } + pushFollow(FOLLOW_2); + ruleALSTerm(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFunctionDefinitionAccess().getTypeALSTermParserRuleCall_7_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__TypeAssignment_7" + + + // $ANTLR start "rule__ALSFunctionDefinition__ValueAssignment_9" + // InternalAlloyLanguage.g:9554:1: rule__ALSFunctionDefinition__ValueAssignment_9 : ( ruleALSTerm ) ; + public final void rule__ALSFunctionDefinition__ValueAssignment_9() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9558:1: ( ( ruleALSTerm ) ) + // InternalAlloyLanguage.g:9559:1: ( ruleALSTerm ) + { + // InternalAlloyLanguage.g:9559:1: ( ruleALSTerm ) + // InternalAlloyLanguage.g:9560:1: ruleALSTerm + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFunctionDefinitionAccess().getValueALSTermParserRuleCall_9_0()); + } + pushFollow(FOLLOW_2); + ruleALSTerm(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFunctionDefinitionAccess().getValueALSTermParserRuleCall_9_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFunctionDefinition__ValueAssignment_9" + + + // $ANTLR start "rule__ALSRelationDefinition__NameAssignment_1" + // InternalAlloyLanguage.g:9569:1: rule__ALSRelationDefinition__NameAssignment_1 : ( ruleALSID ) ; + public final void rule__ALSRelationDefinition__NameAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9573:1: ( ( ruleALSID ) ) + // InternalAlloyLanguage.g:9574:1: ( ruleALSID ) + { + // InternalAlloyLanguage.g:9574:1: ( ruleALSID ) + // InternalAlloyLanguage.g:9575:1: ruleALSID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRelationDefinitionAccess().getNameALSIDParserRuleCall_1_0()); + } + pushFollow(FOLLOW_2); + ruleALSID(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRelationDefinitionAccess().getNameALSIDParserRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__NameAssignment_1" + + + // $ANTLR start "rule__ALSRelationDefinition__VariablesAssignment_3" + // InternalAlloyLanguage.g:9584:1: rule__ALSRelationDefinition__VariablesAssignment_3 : ( ruleALSVariableDeclaration ) ; + public final void rule__ALSRelationDefinition__VariablesAssignment_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9588:1: ( ( ruleALSVariableDeclaration ) ) + // InternalAlloyLanguage.g:9589:1: ( ruleALSVariableDeclaration ) + { + // InternalAlloyLanguage.g:9589:1: ( ruleALSVariableDeclaration ) + // InternalAlloyLanguage.g:9590:1: ruleALSVariableDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRelationDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_3_0()); + } + pushFollow(FOLLOW_2); + ruleALSVariableDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRelationDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__VariablesAssignment_3" + + + // $ANTLR start "rule__ALSRelationDefinition__VariablesAssignment_4_1" + // InternalAlloyLanguage.g:9599:1: rule__ALSRelationDefinition__VariablesAssignment_4_1 : ( ruleALSVariableDeclaration ) ; + public final void rule__ALSRelationDefinition__VariablesAssignment_4_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9603:1: ( ( ruleALSVariableDeclaration ) ) + // InternalAlloyLanguage.g:9604:1: ( ruleALSVariableDeclaration ) + { + // InternalAlloyLanguage.g:9604:1: ( ruleALSVariableDeclaration ) + // InternalAlloyLanguage.g:9605:1: ruleALSVariableDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRelationDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_4_1_0()); + } + pushFollow(FOLLOW_2); + ruleALSVariableDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRelationDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_4_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__VariablesAssignment_4_1" + + + // $ANTLR start "rule__ALSRelationDefinition__ValueAssignment_7" + // InternalAlloyLanguage.g:9614:1: rule__ALSRelationDefinition__ValueAssignment_7 : ( ruleALSTerm ) ; + public final void rule__ALSRelationDefinition__ValueAssignment_7() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9618:1: ( ( ruleALSTerm ) ) + // InternalAlloyLanguage.g:9619:1: ( ruleALSTerm ) + { + // InternalAlloyLanguage.g:9619:1: ( ruleALSTerm ) + // InternalAlloyLanguage.g:9620:1: ruleALSTerm + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRelationDefinitionAccess().getValueALSTermParserRuleCall_7_0()); + } + pushFollow(FOLLOW_2); + ruleALSTerm(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRelationDefinitionAccess().getValueALSTermParserRuleCall_7_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRelationDefinition__ValueAssignment_7" + + + // $ANTLR start "rule__ALSFactDeclaration__NameAssignment_2" + // InternalAlloyLanguage.g:9629:1: rule__ALSFactDeclaration__NameAssignment_2 : ( ruleALSID ) ; + public final void rule__ALSFactDeclaration__NameAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9633:1: ( ( ruleALSID ) ) + // InternalAlloyLanguage.g:9634:1: ( ruleALSID ) + { + // InternalAlloyLanguage.g:9634:1: ( ruleALSID ) + // InternalAlloyLanguage.g:9635:1: ruleALSID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFactDeclarationAccess().getNameALSIDParserRuleCall_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSID(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFactDeclarationAccess().getNameALSIDParserRuleCall_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFactDeclaration__NameAssignment_2" + + + // $ANTLR start "rule__ALSFactDeclaration__TermAssignment_4" + // InternalAlloyLanguage.g:9644:1: rule__ALSFactDeclaration__TermAssignment_4 : ( ruleALSTerm ) ; + public final void rule__ALSFactDeclaration__TermAssignment_4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9648:1: ( ( ruleALSTerm ) ) + // InternalAlloyLanguage.g:9649:1: ( ruleALSTerm ) + { + // InternalAlloyLanguage.g:9649:1: ( ruleALSTerm ) + // InternalAlloyLanguage.g:9650:1: ruleALSTerm + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSFactDeclarationAccess().getTermALSTermParserRuleCall_4_0()); + } + pushFollow(FOLLOW_2); + ruleALSTerm(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSFactDeclarationAccess().getTermALSTermParserRuleCall_4_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSFactDeclaration__TermAssignment_4" + + + // $ANTLR start "rule__ALSQuantified__TypeAssignment_0_1" + // InternalAlloyLanguage.g:9659:1: rule__ALSQuantified__TypeAssignment_0_1 : ( ruleALSMultiplicity ) ; + public final void rule__ALSQuantified__TypeAssignment_0_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9663:1: ( ( ruleALSMultiplicity ) ) + // InternalAlloyLanguage.g:9664:1: ( ruleALSMultiplicity ) + { + // InternalAlloyLanguage.g:9664:1: ( ruleALSMultiplicity ) + // InternalAlloyLanguage.g:9665:1: ruleALSMultiplicity + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSQuantifiedAccess().getTypeALSMultiplicityEnumRuleCall_0_1_0()); + } + pushFollow(FOLLOW_2); + ruleALSMultiplicity(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSQuantifiedAccess().getTypeALSMultiplicityEnumRuleCall_0_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__TypeAssignment_0_1" + + + // $ANTLR start "rule__ALSQuantified__DisjAssignment_0_2" + // InternalAlloyLanguage.g:9674:1: rule__ALSQuantified__DisjAssignment_0_2 : ( ( 'disj' ) ) ; + public final void rule__ALSQuantified__DisjAssignment_0_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9678:1: ( ( ( 'disj' ) ) ) + // InternalAlloyLanguage.g:9679:1: ( ( 'disj' ) ) + { + // InternalAlloyLanguage.g:9679:1: ( ( 'disj' ) ) + // InternalAlloyLanguage.g:9680:1: ( 'disj' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSQuantifiedAccess().getDisjDisjKeyword_0_2_0()); + } + // InternalAlloyLanguage.g:9681:1: ( 'disj' ) + // InternalAlloyLanguage.g:9682:1: 'disj' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSQuantifiedAccess().getDisjDisjKeyword_0_2_0()); + } + match(input,76,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSQuantifiedAccess().getDisjDisjKeyword_0_2_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSQuantifiedAccess().getDisjDisjKeyword_0_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__DisjAssignment_0_2" + + + // $ANTLR start "rule__ALSQuantified__VariablesAssignment_0_3" + // InternalAlloyLanguage.g:9697:1: rule__ALSQuantified__VariablesAssignment_0_3 : ( ruleALSVariableDeclaration ) ; + public final void rule__ALSQuantified__VariablesAssignment_0_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9701:1: ( ( ruleALSVariableDeclaration ) ) + // InternalAlloyLanguage.g:9702:1: ( ruleALSVariableDeclaration ) + { + // InternalAlloyLanguage.g:9702:1: ( ruleALSVariableDeclaration ) + // InternalAlloyLanguage.g:9703:1: ruleALSVariableDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSQuantifiedAccess().getVariablesALSVariableDeclarationParserRuleCall_0_3_0()); + } + pushFollow(FOLLOW_2); + ruleALSVariableDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSQuantifiedAccess().getVariablesALSVariableDeclarationParserRuleCall_0_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__VariablesAssignment_0_3" + + + // $ANTLR start "rule__ALSQuantified__VariablesAssignment_0_4_1" + // InternalAlloyLanguage.g:9712:1: rule__ALSQuantified__VariablesAssignment_0_4_1 : ( ruleALSVariableDeclaration ) ; + public final void rule__ALSQuantified__VariablesAssignment_0_4_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9716:1: ( ( ruleALSVariableDeclaration ) ) + // InternalAlloyLanguage.g:9717:1: ( ruleALSVariableDeclaration ) + { + // InternalAlloyLanguage.g:9717:1: ( ruleALSVariableDeclaration ) + // InternalAlloyLanguage.g:9718:1: ruleALSVariableDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSQuantifiedAccess().getVariablesALSVariableDeclarationParserRuleCall_0_4_1_0()); + } + pushFollow(FOLLOW_2); + ruleALSVariableDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSQuantifiedAccess().getVariablesALSVariableDeclarationParserRuleCall_0_4_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__VariablesAssignment_0_4_1" + + + // $ANTLR start "rule__ALSQuantified__ExpressionAssignment_0_6" + // InternalAlloyLanguage.g:9727:1: rule__ALSQuantified__ExpressionAssignment_0_6 : ( ruleALSTerm ) ; + public final void rule__ALSQuantified__ExpressionAssignment_0_6() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9731:1: ( ( ruleALSTerm ) ) + // InternalAlloyLanguage.g:9732:1: ( ruleALSTerm ) + { + // InternalAlloyLanguage.g:9732:1: ( ruleALSTerm ) + // InternalAlloyLanguage.g:9733:1: ruleALSTerm + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSQuantifiedAccess().getExpressionALSTermParserRuleCall_0_6_0()); + } + pushFollow(FOLLOW_2); + ruleALSTerm(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSQuantifiedAccess().getExpressionALSTermParserRuleCall_0_6_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSQuantified__ExpressionAssignment_0_6" + + + // $ANTLR start "rule__ALSOr__RightOperandAssignment_1_2" + // InternalAlloyLanguage.g:9742:1: rule__ALSOr__RightOperandAssignment_1_2 : ( ruleALSIff ) ; + public final void rule__ALSOr__RightOperandAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9746:1: ( ( ruleALSIff ) ) + // InternalAlloyLanguage.g:9747:1: ( ruleALSIff ) + { + // InternalAlloyLanguage.g:9747:1: ( ruleALSIff ) + // InternalAlloyLanguage.g:9748:1: ruleALSIff + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSOrAccess().getRightOperandALSIffParserRuleCall_1_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSIff(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSOrAccess().getRightOperandALSIffParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOr__RightOperandAssignment_1_2" + + + // $ANTLR start "rule__ALSIff__RightOperandAssignment_1_2" + // InternalAlloyLanguage.g:9757:1: rule__ALSIff__RightOperandAssignment_1_2 : ( ruleALSImpl ) ; + public final void rule__ALSIff__RightOperandAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9761:1: ( ( ruleALSImpl ) ) + // InternalAlloyLanguage.g:9762:1: ( ruleALSImpl ) + { + // InternalAlloyLanguage.g:9762:1: ( ruleALSImpl ) + // InternalAlloyLanguage.g:9763:1: ruleALSImpl + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIffAccess().getRightOperandALSImplParserRuleCall_1_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSImpl(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIffAccess().getRightOperandALSImplParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIff__RightOperandAssignment_1_2" + + + // $ANTLR start "rule__ALSImpl__RightOperandAssignment_1_2" + // InternalAlloyLanguage.g:9772:1: rule__ALSImpl__RightOperandAssignment_1_2 : ( ruleALSAnd ) ; + public final void rule__ALSImpl__RightOperandAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9776:1: ( ( ruleALSAnd ) ) + // InternalAlloyLanguage.g:9777:1: ( ruleALSAnd ) + { + // InternalAlloyLanguage.g:9777:1: ( ruleALSAnd ) + // InternalAlloyLanguage.g:9778:1: ruleALSAnd + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSImplAccess().getRightOperandALSAndParserRuleCall_1_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSAnd(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSImplAccess().getRightOperandALSAndParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSImpl__RightOperandAssignment_1_2" + + + // $ANTLR start "rule__ALSImpl__ElseOperandAssignment_1_3_1" + // InternalAlloyLanguage.g:9787:1: rule__ALSImpl__ElseOperandAssignment_1_3_1 : ( ruleALSAnd ) ; + public final void rule__ALSImpl__ElseOperandAssignment_1_3_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9791:1: ( ( ruleALSAnd ) ) + // InternalAlloyLanguage.g:9792:1: ( ruleALSAnd ) + { + // InternalAlloyLanguage.g:9792:1: ( ruleALSAnd ) + // InternalAlloyLanguage.g:9793:1: ruleALSAnd + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSImplAccess().getElseOperandALSAndParserRuleCall_1_3_1_0()); + } + pushFollow(FOLLOW_2); + ruleALSAnd(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSImplAccess().getElseOperandALSAndParserRuleCall_1_3_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSImpl__ElseOperandAssignment_1_3_1" + + + // $ANTLR start "rule__ALSAnd__RightOperandAssignment_1_2" + // InternalAlloyLanguage.g:9802:1: rule__ALSAnd__RightOperandAssignment_1_2 : ( ruleALSComparison ) ; + public final void rule__ALSAnd__RightOperandAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9806:1: ( ( ruleALSComparison ) ) + // InternalAlloyLanguage.g:9807:1: ( ruleALSComparison ) + { + // InternalAlloyLanguage.g:9807:1: ( ruleALSComparison ) + // InternalAlloyLanguage.g:9808:1: ruleALSComparison + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSAndAccess().getRightOperandALSComparisonParserRuleCall_1_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSComparison(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSAndAccess().getRightOperandALSComparisonParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSAnd__RightOperandAssignment_1_2" + + + // $ANTLR start "rule__ALSComparison__RightOperandAssignment_1_1" + // InternalAlloyLanguage.g:9817:1: rule__ALSComparison__RightOperandAssignment_1_1 : ( ruleALSOverride ) ; + public final void rule__ALSComparison__RightOperandAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9821:1: ( ( ruleALSOverride ) ) + // InternalAlloyLanguage.g:9822:1: ( ruleALSOverride ) + { + // InternalAlloyLanguage.g:9822:1: ( ruleALSOverride ) + // InternalAlloyLanguage.g:9823:1: ruleALSOverride + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSComparisonAccess().getRightOperandALSOverrideParserRuleCall_1_1_0()); + } + pushFollow(FOLLOW_2); + ruleALSOverride(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSComparisonAccess().getRightOperandALSOverrideParserRuleCall_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSComparison__RightOperandAssignment_1_1" + + + // $ANTLR start "rule__ALSOverride__RightOperandAssignment_1_2" + // InternalAlloyLanguage.g:9832:1: rule__ALSOverride__RightOperandAssignment_1_2 : ( ruleALSRangeRestrictionRight ) ; + public final void rule__ALSOverride__RightOperandAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9836:1: ( ( ruleALSRangeRestrictionRight ) ) + // InternalAlloyLanguage.g:9837:1: ( ruleALSRangeRestrictionRight ) + { + // InternalAlloyLanguage.g:9837:1: ( ruleALSRangeRestrictionRight ) + // InternalAlloyLanguage.g:9838:1: ruleALSRangeRestrictionRight + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSOverrideAccess().getRightOperandALSRangeRestrictionRightParserRuleCall_1_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSRangeRestrictionRight(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSOverrideAccess().getRightOperandALSRangeRestrictionRightParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSOverride__RightOperandAssignment_1_2" + + + // $ANTLR start "rule__ALSRangeRestrictionRight__FilterAssignment_1_2" + // InternalAlloyLanguage.g:9847:1: rule__ALSRangeRestrictionRight__FilterAssignment_1_2 : ( ruleALSRangeRestrictionLeft ) ; + public final void rule__ALSRangeRestrictionRight__FilterAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9851:1: ( ( ruleALSRangeRestrictionLeft ) ) + // InternalAlloyLanguage.g:9852:1: ( ruleALSRangeRestrictionLeft ) + { + // InternalAlloyLanguage.g:9852:1: ( ruleALSRangeRestrictionLeft ) + // InternalAlloyLanguage.g:9853:1: ruleALSRangeRestrictionLeft + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRangeRestrictionRightAccess().getFilterALSRangeRestrictionLeftParserRuleCall_1_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSRangeRestrictionLeft(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRangeRestrictionRightAccess().getFilterALSRangeRestrictionLeftParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionRight__FilterAssignment_1_2" + + + // $ANTLR start "rule__ALSRangeRestrictionLeft__RelationAssignment_1_2" + // InternalAlloyLanguage.g:9862:1: rule__ALSRangeRestrictionLeft__RelationAssignment_1_2 : ( ruleALSJoin ) ; + public final void rule__ALSRangeRestrictionLeft__RelationAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9866:1: ( ( ruleALSJoin ) ) + // InternalAlloyLanguage.g:9867:1: ( ruleALSJoin ) + { + // InternalAlloyLanguage.g:9867:1: ( ruleALSJoin ) + // InternalAlloyLanguage.g:9868:1: ruleALSJoin + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRangeRestrictionLeftAccess().getRelationALSJoinParserRuleCall_1_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSJoin(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRangeRestrictionLeftAccess().getRelationALSJoinParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRangeRestrictionLeft__RelationAssignment_1_2" + + + // $ANTLR start "rule__ALSJoin__RightOperandAssignment_1_2" + // InternalAlloyLanguage.g:9877:1: rule__ALSJoin__RightOperandAssignment_1_2 : ( ruleALSMinus ) ; + public final void rule__ALSJoin__RightOperandAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9881:1: ( ( ruleALSMinus ) ) + // InternalAlloyLanguage.g:9882:1: ( ruleALSMinus ) + { + // InternalAlloyLanguage.g:9882:1: ( ruleALSMinus ) + // InternalAlloyLanguage.g:9883:1: ruleALSMinus + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSJoinAccess().getRightOperandALSMinusParserRuleCall_1_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSMinus(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSJoinAccess().getRightOperandALSMinusParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSJoin__RightOperandAssignment_1_2" + + + // $ANTLR start "rule__ALSMinus__RightOperandAssignment_1_2" + // InternalAlloyLanguage.g:9892:1: rule__ALSMinus__RightOperandAssignment_1_2 : ( ruleALSPlus ) ; + public final void rule__ALSMinus__RightOperandAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9896:1: ( ( ruleALSPlus ) ) + // InternalAlloyLanguage.g:9897:1: ( ruleALSPlus ) + { + // InternalAlloyLanguage.g:9897:1: ( ruleALSPlus ) + // InternalAlloyLanguage.g:9898:1: ruleALSPlus + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSMinusAccess().getRightOperandALSPlusParserRuleCall_1_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSPlus(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSMinusAccess().getRightOperandALSPlusParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSMinus__RightOperandAssignment_1_2" + + + // $ANTLR start "rule__ALSPlus__RightOperandAssignment_1_2" + // InternalAlloyLanguage.g:9907:1: rule__ALSPlus__RightOperandAssignment_1_2 : ( ruleALSIntersection ) ; + public final void rule__ALSPlus__RightOperandAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9911:1: ( ( ruleALSIntersection ) ) + // InternalAlloyLanguage.g:9912:1: ( ruleALSIntersection ) + { + // InternalAlloyLanguage.g:9912:1: ( ruleALSIntersection ) + // InternalAlloyLanguage.g:9913:1: ruleALSIntersection + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPlusAccess().getRightOperandALSIntersectionParserRuleCall_1_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSIntersection(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPlusAccess().getRightOperandALSIntersectionParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPlus__RightOperandAssignment_1_2" + + + // $ANTLR start "rule__ALSIntersection__RightOperandAssignment_1_2" + // InternalAlloyLanguage.g:9922:1: rule__ALSIntersection__RightOperandAssignment_1_2 : ( ruleALSDirectProduct ) ; + public final void rule__ALSIntersection__RightOperandAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9926:1: ( ( ruleALSDirectProduct ) ) + // InternalAlloyLanguage.g:9927:1: ( ruleALSDirectProduct ) + { + // InternalAlloyLanguage.g:9927:1: ( ruleALSDirectProduct ) + // InternalAlloyLanguage.g:9928:1: ruleALSDirectProduct + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIntersectionAccess().getRightOperandALSDirectProductParserRuleCall_1_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSDirectProduct(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIntersectionAccess().getRightOperandALSDirectProductParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIntersection__RightOperandAssignment_1_2" + + + // $ANTLR start "rule__ALSDirectProduct__LeftMultiplicitAssignment_1_1" + // InternalAlloyLanguage.g:9937:1: rule__ALSDirectProduct__LeftMultiplicitAssignment_1_1 : ( ruleALSMultiplicity ) ; + public final void rule__ALSDirectProduct__LeftMultiplicitAssignment_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9941:1: ( ( ruleALSMultiplicity ) ) + // InternalAlloyLanguage.g:9942:1: ( ruleALSMultiplicity ) + { + // InternalAlloyLanguage.g:9942:1: ( ruleALSMultiplicity ) + // InternalAlloyLanguage.g:9943:1: ruleALSMultiplicity + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDirectProductAccess().getLeftMultiplicitALSMultiplicityEnumRuleCall_1_1_0()); + } + pushFollow(FOLLOW_2); + ruleALSMultiplicity(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDirectProductAccess().getLeftMultiplicitALSMultiplicityEnumRuleCall_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDirectProduct__LeftMultiplicitAssignment_1_1" + + + // $ANTLR start "rule__ALSDirectProduct__RightMultiplicitAssignment_1_3" + // InternalAlloyLanguage.g:9952:1: rule__ALSDirectProduct__RightMultiplicitAssignment_1_3 : ( ruleALSMultiplicity ) ; + public final void rule__ALSDirectProduct__RightMultiplicitAssignment_1_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9956:1: ( ( ruleALSMultiplicity ) ) + // InternalAlloyLanguage.g:9957:1: ( ruleALSMultiplicity ) + { + // InternalAlloyLanguage.g:9957:1: ( ruleALSMultiplicity ) + // InternalAlloyLanguage.g:9958:1: ruleALSMultiplicity + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDirectProductAccess().getRightMultiplicitALSMultiplicityEnumRuleCall_1_3_0()); + } + pushFollow(FOLLOW_2); + ruleALSMultiplicity(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDirectProductAccess().getRightMultiplicitALSMultiplicityEnumRuleCall_1_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDirectProduct__RightMultiplicitAssignment_1_3" + + + // $ANTLR start "rule__ALSDirectProduct__RightOperandAssignment_1_4" + // InternalAlloyLanguage.g:9967:1: rule__ALSDirectProduct__RightOperandAssignment_1_4 : ( ruleALSPreficed ) ; + public final void rule__ALSDirectProduct__RightOperandAssignment_1_4() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9971:1: ( ( ruleALSPreficed ) ) + // InternalAlloyLanguage.g:9972:1: ( ruleALSPreficed ) + { + // InternalAlloyLanguage.g:9972:1: ( ruleALSPreficed ) + // InternalAlloyLanguage.g:9973:1: ruleALSPreficed + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSDirectProductAccess().getRightOperandALSPreficedParserRuleCall_1_4_0()); + } + pushFollow(FOLLOW_2); + ruleALSPreficed(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSDirectProductAccess().getRightOperandALSPreficedParserRuleCall_1_4_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSDirectProduct__RightOperandAssignment_1_4" + + + // $ANTLR start "rule__ALSPreficed__OperandAssignment_0_2" + // InternalAlloyLanguage.g:9982:1: rule__ALSPreficed__OperandAssignment_0_2 : ( ruleALSBasicRelationTerm ) ; + public final void rule__ALSPreficed__OperandAssignment_0_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:9986:1: ( ( ruleALSBasicRelationTerm ) ) + // InternalAlloyLanguage.g:9987:1: ( ruleALSBasicRelationTerm ) + { + // InternalAlloyLanguage.g:9987:1: ( ruleALSBasicRelationTerm ) + // InternalAlloyLanguage.g:9988:1: ruleALSBasicRelationTerm + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_0_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSBasicRelationTerm(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_0_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__OperandAssignment_0_2" + + + // $ANTLR start "rule__ALSPreficed__OperandAssignment_1_2" + // InternalAlloyLanguage.g:9997:1: rule__ALSPreficed__OperandAssignment_1_2 : ( ruleALSBasicRelationTerm ) ; + public final void rule__ALSPreficed__OperandAssignment_1_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10001:1: ( ( ruleALSBasicRelationTerm ) ) + // InternalAlloyLanguage.g:10002:1: ( ruleALSBasicRelationTerm ) + { + // InternalAlloyLanguage.g:10002:1: ( ruleALSBasicRelationTerm ) + // InternalAlloyLanguage.g:10003:1: ruleALSBasicRelationTerm + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_1_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSBasicRelationTerm(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_1_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__OperandAssignment_1_2" + + + // $ANTLR start "rule__ALSPreficed__OperandAssignment_2_2" + // InternalAlloyLanguage.g:10012:1: rule__ALSPreficed__OperandAssignment_2_2 : ( ruleALSBasicRelationTerm ) ; + public final void rule__ALSPreficed__OperandAssignment_2_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10016:1: ( ( ruleALSBasicRelationTerm ) ) + // InternalAlloyLanguage.g:10017:1: ( ruleALSBasicRelationTerm ) + { + // InternalAlloyLanguage.g:10017:1: ( ruleALSBasicRelationTerm ) + // InternalAlloyLanguage.g:10018:1: ruleALSBasicRelationTerm + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_2_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSBasicRelationTerm(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_2_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__OperandAssignment_2_2" + + + // $ANTLR start "rule__ALSPreficed__OperandAssignment_3_2" + // InternalAlloyLanguage.g:10027:1: rule__ALSPreficed__OperandAssignment_3_2 : ( ruleALSBasicRelationTerm ) ; + public final void rule__ALSPreficed__OperandAssignment_3_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10031:1: ( ( ruleALSBasicRelationTerm ) ) + // InternalAlloyLanguage.g:10032:1: ( ruleALSBasicRelationTerm ) + { + // InternalAlloyLanguage.g:10032:1: ( ruleALSBasicRelationTerm ) + // InternalAlloyLanguage.g:10033:1: ruleALSBasicRelationTerm + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_3_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSBasicRelationTerm(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_3_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__OperandAssignment_3_2" + + + // $ANTLR start "rule__ALSPreficed__OperandAssignment_4_2" + // InternalAlloyLanguage.g:10042:1: rule__ALSPreficed__OperandAssignment_4_2 : ( ruleALSBasicRelationTerm ) ; + public final void rule__ALSPreficed__OperandAssignment_4_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10046:1: ( ( ruleALSBasicRelationTerm ) ) + // InternalAlloyLanguage.g:10047:1: ( ruleALSBasicRelationTerm ) + { + // InternalAlloyLanguage.g:10047:1: ( ruleALSBasicRelationTerm ) + // InternalAlloyLanguage.g:10048:1: ruleALSBasicRelationTerm + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_4_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSBasicRelationTerm(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_4_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__OperandAssignment_4_2" + + + // $ANTLR start "rule__ALSPreficed__OperandAssignment_5_2" + // InternalAlloyLanguage.g:10057:1: rule__ALSPreficed__OperandAssignment_5_2 : ( ruleALSBasicRelationTerm ) ; + public final void rule__ALSPreficed__OperandAssignment_5_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10061:1: ( ( ruleALSBasicRelationTerm ) ) + // InternalAlloyLanguage.g:10062:1: ( ruleALSBasicRelationTerm ) + { + // InternalAlloyLanguage.g:10062:1: ( ruleALSBasicRelationTerm ) + // InternalAlloyLanguage.g:10063:1: ruleALSBasicRelationTerm + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_5_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSBasicRelationTerm(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_5_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__OperandAssignment_5_2" + + + // $ANTLR start "rule__ALSPreficed__VariablesAssignment_6_2" + // InternalAlloyLanguage.g:10072:1: rule__ALSPreficed__VariablesAssignment_6_2 : ( ruleALSVariableDeclaration ) ; + public final void rule__ALSPreficed__VariablesAssignment_6_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10076:1: ( ( ruleALSVariableDeclaration ) ) + // InternalAlloyLanguage.g:10077:1: ( ruleALSVariableDeclaration ) + { + // InternalAlloyLanguage.g:10077:1: ( ruleALSVariableDeclaration ) + // InternalAlloyLanguage.g:10078:1: ruleALSVariableDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getVariablesALSVariableDeclarationParserRuleCall_6_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSVariableDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getVariablesALSVariableDeclarationParserRuleCall_6_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__VariablesAssignment_6_2" + + + // $ANTLR start "rule__ALSPreficed__VariablesAssignment_6_3_1" + // InternalAlloyLanguage.g:10087:1: rule__ALSPreficed__VariablesAssignment_6_3_1 : ( ruleALSVariableDeclaration ) ; + public final void rule__ALSPreficed__VariablesAssignment_6_3_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10091:1: ( ( ruleALSVariableDeclaration ) ) + // InternalAlloyLanguage.g:10092:1: ( ruleALSVariableDeclaration ) + { + // InternalAlloyLanguage.g:10092:1: ( ruleALSVariableDeclaration ) + // InternalAlloyLanguage.g:10093:1: ruleALSVariableDeclaration + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getVariablesALSVariableDeclarationParserRuleCall_6_3_1_0()); + } + pushFollow(FOLLOW_2); + ruleALSVariableDeclaration(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getVariablesALSVariableDeclarationParserRuleCall_6_3_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__VariablesAssignment_6_3_1" + + + // $ANTLR start "rule__ALSPreficed__ExpressionAssignment_6_5" + // InternalAlloyLanguage.g:10102:1: rule__ALSPreficed__ExpressionAssignment_6_5 : ( ruleALSTerm ) ; + public final void rule__ALSPreficed__ExpressionAssignment_6_5() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10106:1: ( ( ruleALSTerm ) ) + // InternalAlloyLanguage.g:10107:1: ( ruleALSTerm ) + { + // InternalAlloyLanguage.g:10107:1: ( ruleALSTerm ) + // InternalAlloyLanguage.g:10108:1: ruleALSTerm + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getExpressionALSTermParserRuleCall_6_5_0()); + } + pushFollow(FOLLOW_2); + ruleALSTerm(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getExpressionALSTermParserRuleCall_6_5_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__ExpressionAssignment_6_5" + + + // $ANTLR start "rule__ALSPreficed__ReferredDefinitionAssignment_7_1_0" + // InternalAlloyLanguage.g:10117:1: rule__ALSPreficed__ReferredDefinitionAssignment_7_1_0 : ( ( RULE_ID ) ) ; + public final void rule__ALSPreficed__ReferredDefinitionAssignment_7_1_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10121:1: ( ( ( RULE_ID ) ) ) + // InternalAlloyLanguage.g:10122:1: ( ( RULE_ID ) ) + { + // InternalAlloyLanguage.g:10122:1: ( ( RULE_ID ) ) + // InternalAlloyLanguage.g:10123:1: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getReferredDefinitionALSDefinitionCrossReference_7_1_0_0()); + } + // InternalAlloyLanguage.g:10124:1: ( RULE_ID ) + // InternalAlloyLanguage.g:10125:1: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getReferredDefinitionALSDefinitionIDTerminalRuleCall_7_1_0_0_1()); + } + match(input,RULE_ID,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getReferredDefinitionALSDefinitionIDTerminalRuleCall_7_1_0_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getReferredDefinitionALSDefinitionCrossReference_7_1_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__ReferredDefinitionAssignment_7_1_0" + + + // $ANTLR start "rule__ALSPreficed__ReferredNumericOperatorAssignment_7_1_1" + // InternalAlloyLanguage.g:10136:1: rule__ALSPreficed__ReferredNumericOperatorAssignment_7_1_1 : ( ruleALSNumericOperator ) ; + public final void rule__ALSPreficed__ReferredNumericOperatorAssignment_7_1_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10140:1: ( ( ruleALSNumericOperator ) ) + // InternalAlloyLanguage.g:10141:1: ( ruleALSNumericOperator ) + { + // InternalAlloyLanguage.g:10141:1: ( ruleALSNumericOperator ) + // InternalAlloyLanguage.g:10142:1: ruleALSNumericOperator + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getReferredNumericOperatorALSNumericOperatorEnumRuleCall_7_1_1_0()); + } + pushFollow(FOLLOW_2); + ruleALSNumericOperator(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getReferredNumericOperatorALSNumericOperatorEnumRuleCall_7_1_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__ReferredNumericOperatorAssignment_7_1_1" + + + // $ANTLR start "rule__ALSPreficed__ParamsAssignment_7_3" + // InternalAlloyLanguage.g:10151:1: rule__ALSPreficed__ParamsAssignment_7_3 : ( ruleALSTerm ) ; + public final void rule__ALSPreficed__ParamsAssignment_7_3() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10155:1: ( ( ruleALSTerm ) ) + // InternalAlloyLanguage.g:10156:1: ( ruleALSTerm ) + { + // InternalAlloyLanguage.g:10156:1: ( ruleALSTerm ) + // InternalAlloyLanguage.g:10157:1: ruleALSTerm + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getParamsALSTermParserRuleCall_7_3_0()); + } + pushFollow(FOLLOW_2); + ruleALSTerm(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getParamsALSTermParserRuleCall_7_3_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__ParamsAssignment_7_3" + + + // $ANTLR start "rule__ALSPreficed__ParamsAssignment_7_4_1" + // InternalAlloyLanguage.g:10166:1: rule__ALSPreficed__ParamsAssignment_7_4_1 : ( ruleALSTerm ) ; + public final void rule__ALSPreficed__ParamsAssignment_7_4_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10170:1: ( ( ruleALSTerm ) ) + // InternalAlloyLanguage.g:10171:1: ( ruleALSTerm ) + { + // InternalAlloyLanguage.g:10171:1: ( ruleALSTerm ) + // InternalAlloyLanguage.g:10172:1: ruleALSTerm + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSPreficedAccess().getParamsALSTermParserRuleCall_7_4_1_0()); + } + pushFollow(FOLLOW_2); + ruleALSTerm(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSPreficedAccess().getParamsALSTermParserRuleCall_7_4_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSPreficed__ParamsAssignment_7_4_1" + + + // $ANTLR start "rule__ALSVariableDeclaration__NameAssignment_0" + // InternalAlloyLanguage.g:10181:1: rule__ALSVariableDeclaration__NameAssignment_0 : ( ruleALSID ) ; + public final void rule__ALSVariableDeclaration__NameAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10185:1: ( ( ruleALSID ) ) + // InternalAlloyLanguage.g:10186:1: ( ruleALSID ) + { + // InternalAlloyLanguage.g:10186:1: ( ruleALSID ) + // InternalAlloyLanguage.g:10187:1: ruleALSID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSVariableDeclarationAccess().getNameALSIDParserRuleCall_0_0()); + } + pushFollow(FOLLOW_2); + ruleALSID(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSVariableDeclarationAccess().getNameALSIDParserRuleCall_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSVariableDeclaration__NameAssignment_0" + + + // $ANTLR start "rule__ALSVariableDeclaration__RangeAssignment_2" + // InternalAlloyLanguage.g:10196:1: rule__ALSVariableDeclaration__RangeAssignment_2 : ( ruleALSTerm ) ; + public final void rule__ALSVariableDeclaration__RangeAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10200:1: ( ( ruleALSTerm ) ) + // InternalAlloyLanguage.g:10201:1: ( ruleALSTerm ) + { + // InternalAlloyLanguage.g:10201:1: ( ruleALSTerm ) + // InternalAlloyLanguage.g:10202:1: ruleALSTerm + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSVariableDeclarationAccess().getRangeALSTermParserRuleCall_2_0()); + } + pushFollow(FOLLOW_2); + ruleALSTerm(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSVariableDeclarationAccess().getRangeALSTermParserRuleCall_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSVariableDeclaration__RangeAssignment_2" + + + // $ANTLR start "rule__ALSBasicRelationTerm__ReferredAssignment_5_1" + // InternalAlloyLanguage.g:10211:1: rule__ALSBasicRelationTerm__ReferredAssignment_5_1 : ( ( RULE_ID ) ) ; + public final void rule__ALSBasicRelationTerm__ReferredAssignment_5_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10215:1: ( ( ( RULE_ID ) ) ) + // InternalAlloyLanguage.g:10216:1: ( ( RULE_ID ) ) + { + // InternalAlloyLanguage.g:10216:1: ( ( RULE_ID ) ) + // InternalAlloyLanguage.g:10217:1: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getReferredALSRelationDeclarationCrossReference_5_1_0()); + } + // InternalAlloyLanguage.g:10218:1: ( RULE_ID ) + // InternalAlloyLanguage.g:10219:1: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getReferredALSRelationDeclarationIDTerminalRuleCall_5_1_0_1()); + } + match(input,RULE_ID,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getReferredALSRelationDeclarationIDTerminalRuleCall_5_1_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getReferredALSRelationDeclarationCrossReference_5_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__ReferredAssignment_5_1" + + + // $ANTLR start "rule__ALSBasicRelationTerm__ValueAssignment_6_1" + // InternalAlloyLanguage.g:10230:1: rule__ALSBasicRelationTerm__ValueAssignment_6_1 : ( RULE_INT ) ; + public final void rule__ALSBasicRelationTerm__ValueAssignment_6_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10234:1: ( ( RULE_INT ) ) + // InternalAlloyLanguage.g:10235:1: ( RULE_INT ) + { + // InternalAlloyLanguage.g:10235:1: ( RULE_INT ) + // InternalAlloyLanguage.g:10236:1: RULE_INT + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getValueINTTerminalRuleCall_6_1_0()); + } + match(input,RULE_INT,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getValueINTTerminalRuleCall_6_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__ValueAssignment_6_1" + + + // $ANTLR start "rule__ALSBasicRelationTerm__ValueAssignment_7_1" + // InternalAlloyLanguage.g:10245:1: rule__ALSBasicRelationTerm__ValueAssignment_7_1 : ( RULE_STRING ) ; + public final void rule__ALSBasicRelationTerm__ValueAssignment_7_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10249:1: ( ( RULE_STRING ) ) + // InternalAlloyLanguage.g:10250:1: ( RULE_STRING ) + { + // InternalAlloyLanguage.g:10250:1: ( RULE_STRING ) + // InternalAlloyLanguage.g:10251:1: RULE_STRING + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSBasicRelationTermAccess().getValueSTRINGTerminalRuleCall_7_1_0()); + } + match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSBasicRelationTermAccess().getValueSTRINGTerminalRuleCall_7_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSBasicRelationTerm__ValueAssignment_7_1" + + + // $ANTLR start "rule__ALSRunCommand__TypeScopesAssignment_4_1" + // InternalAlloyLanguage.g:10260:1: rule__ALSRunCommand__TypeScopesAssignment_4_1 : ( ruleALSTypeScope ) ; + public final void rule__ALSRunCommand__TypeScopesAssignment_4_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10264:1: ( ( ruleALSTypeScope ) ) + // InternalAlloyLanguage.g:10265:1: ( ruleALSTypeScope ) + { + // InternalAlloyLanguage.g:10265:1: ( ruleALSTypeScope ) + // InternalAlloyLanguage.g:10266:1: ruleALSTypeScope + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRunCommandAccess().getTypeScopesALSTypeScopeParserRuleCall_4_1_0()); + } + pushFollow(FOLLOW_2); + ruleALSTypeScope(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRunCommandAccess().getTypeScopesALSTypeScopeParserRuleCall_4_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__TypeScopesAssignment_4_1" + + + // $ANTLR start "rule__ALSRunCommand__TypeScopesAssignment_4_2_1" + // InternalAlloyLanguage.g:10275:1: rule__ALSRunCommand__TypeScopesAssignment_4_2_1 : ( ruleALSTypeScope ) ; + public final void rule__ALSRunCommand__TypeScopesAssignment_4_2_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10279:1: ( ( ruleALSTypeScope ) ) + // InternalAlloyLanguage.g:10280:1: ( ruleALSTypeScope ) + { + // InternalAlloyLanguage.g:10280:1: ( ruleALSTypeScope ) + // InternalAlloyLanguage.g:10281:1: ruleALSTypeScope + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSRunCommandAccess().getTypeScopesALSTypeScopeParserRuleCall_4_2_1_0()); + } + pushFollow(FOLLOW_2); + ruleALSTypeScope(); + + state._fsp--; + if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSRunCommandAccess().getTypeScopesALSTypeScopeParserRuleCall_4_2_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSRunCommand__TypeScopesAssignment_4_2_1" + + + // $ANTLR start "rule__ALSSigScope__ExactlyAssignment_0" + // InternalAlloyLanguage.g:10290:1: rule__ALSSigScope__ExactlyAssignment_0 : ( ( 'exactly' ) ) ; + public final void rule__ALSSigScope__ExactlyAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10294:1: ( ( ( 'exactly' ) ) ) + // InternalAlloyLanguage.g:10295:1: ( ( 'exactly' ) ) + { + // InternalAlloyLanguage.g:10295:1: ( ( 'exactly' ) ) + // InternalAlloyLanguage.g:10296:1: ( 'exactly' ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSigScopeAccess().getExactlyExactlyKeyword_0_0()); + } + // InternalAlloyLanguage.g:10297:1: ( 'exactly' ) + // InternalAlloyLanguage.g:10298:1: 'exactly' + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSigScopeAccess().getExactlyExactlyKeyword_0_0()); + } + match(input,74,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSigScopeAccess().getExactlyExactlyKeyword_0_0()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSigScopeAccess().getExactlyExactlyKeyword_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSigScope__ExactlyAssignment_0" + + + // $ANTLR start "rule__ALSSigScope__NumberAssignment_1" + // InternalAlloyLanguage.g:10313:1: rule__ALSSigScope__NumberAssignment_1 : ( RULE_INT ) ; + public final void rule__ALSSigScope__NumberAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10317:1: ( ( RULE_INT ) ) + // InternalAlloyLanguage.g:10318:1: ( RULE_INT ) + { + // InternalAlloyLanguage.g:10318:1: ( RULE_INT ) + // InternalAlloyLanguage.g:10319:1: RULE_INT + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSigScopeAccess().getNumberINTTerminalRuleCall_1_0()); + } + match(input,RULE_INT,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSigScopeAccess().getNumberINTTerminalRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSigScope__NumberAssignment_1" + + + // $ANTLR start "rule__ALSSigScope__TypeAssignment_2" + // InternalAlloyLanguage.g:10328:1: rule__ALSSigScope__TypeAssignment_2 : ( ( RULE_ID ) ) ; + public final void rule__ALSSigScope__TypeAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10332:1: ( ( ( RULE_ID ) ) ) + // InternalAlloyLanguage.g:10333:1: ( ( RULE_ID ) ) + { + // InternalAlloyLanguage.g:10333:1: ( ( RULE_ID ) ) + // InternalAlloyLanguage.g:10334:1: ( RULE_ID ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSigScopeAccess().getTypeALSSignatureDeclarationCrossReference_2_0()); + } + // InternalAlloyLanguage.g:10335:1: ( RULE_ID ) + // InternalAlloyLanguage.g:10336:1: RULE_ID + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSigScopeAccess().getTypeALSSignatureDeclarationIDTerminalRuleCall_2_0_1()); + } + match(input,RULE_ID,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSigScopeAccess().getTypeALSSignatureDeclarationIDTerminalRuleCall_2_0_1()); + } + + } + + if ( state.backtracking==0 ) { + after(grammarAccess.getALSSigScopeAccess().getTypeALSSignatureDeclarationCrossReference_2_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSSigScope__TypeAssignment_2" + + + // $ANTLR start "rule__ALSIntScope__NumberAssignment_0" + // InternalAlloyLanguage.g:10347:1: rule__ALSIntScope__NumberAssignment_0 : ( RULE_INT ) ; + public final void rule__ALSIntScope__NumberAssignment_0() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10351:1: ( ( RULE_INT ) ) + // InternalAlloyLanguage.g:10352:1: ( RULE_INT ) + { + // InternalAlloyLanguage.g:10352:1: ( RULE_INT ) + // InternalAlloyLanguage.g:10353:1: RULE_INT + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSIntScopeAccess().getNumberINTTerminalRuleCall_0_0()); + } + match(input,RULE_INT,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSIntScopeAccess().getNumberINTTerminalRuleCall_0_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSIntScope__NumberAssignment_0" + + + // $ANTLR start "rule__ALSStringScope__NumberAssignment_1" + // InternalAlloyLanguage.g:10362:1: rule__ALSStringScope__NumberAssignment_1 : ( RULE_INT ) ; + public final void rule__ALSStringScope__NumberAssignment_1() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalAlloyLanguage.g:10366:1: ( ( RULE_INT ) ) + // InternalAlloyLanguage.g:10367:1: ( RULE_INT ) + { + // InternalAlloyLanguage.g:10367:1: ( RULE_INT ) + // InternalAlloyLanguage.g:10368:1: RULE_INT + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSStringScopeAccess().getNumberINTTerminalRuleCall_1_0()); + } + match(input,RULE_INT,FOLLOW_2); if (state.failed) return ; + if ( state.backtracking==0 ) { + after(grammarAccess.getALSStringScopeAccess().getNumberINTTerminalRuleCall_1_0()); + } + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__ALSStringScope__NumberAssignment_1" + + // $ANTLR start synpred81_InternalAlloyLanguage + public final void synpred81_InternalAlloyLanguage_fragment() throws RecognitionException { + // InternalAlloyLanguage.g:9039:2: ( rule__ALSSignatureBody__UnorderedGroup_0__0 ) + // InternalAlloyLanguage.g:9039:2: rule__ALSSignatureBody__UnorderedGroup_0__0 + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__UnorderedGroup_0__0(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred81_InternalAlloyLanguage + + // $ANTLR start synpred82_InternalAlloyLanguage + public final void synpred82_InternalAlloyLanguage_fragment() throws RecognitionException { + // InternalAlloyLanguage.g:9057:4: ( ({...}? => ( ( ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) ) ) ) ) + // InternalAlloyLanguage.g:9057:4: ({...}? => ( ( ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) ) ) ) + { + // InternalAlloyLanguage.g:9057:4: ({...}? => ( ( ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) ) ) ) + // InternalAlloyLanguage.g:9058:5: {...}? => ( ( ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) ) ) + { + if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + if (state.backtracking>0) {state.failed=true; return ;} + throw new FailedPredicateException(input, "synpred82_InternalAlloyLanguage", "getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0)"); + } + // InternalAlloyLanguage.g:9058:113: ( ( ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) ) ) + // InternalAlloyLanguage.g:9059:6: ( ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) ) + { + getUnorderedGroupHelper().select(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0); + // InternalAlloyLanguage.g:9065:6: ( ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) ) + // InternalAlloyLanguage.g:9067:7: ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) + { + if ( state.backtracking==0 ) { + before(grammarAccess.getALSSignatureBodyAccess().getMultiplicityAssignment_0_0()); + } + // InternalAlloyLanguage.g:9068:7: ( rule__ALSSignatureBody__MultiplicityAssignment_0_0 ) + // InternalAlloyLanguage.g:9068:8: rule__ALSSignatureBody__MultiplicityAssignment_0_0 + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__MultiplicityAssignment_0_0(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + + + } + + + } + } + // $ANTLR end synpred82_InternalAlloyLanguage + + // $ANTLR start synpred83_InternalAlloyLanguage + public final void synpred83_InternalAlloyLanguage_fragment() throws RecognitionException { + // InternalAlloyLanguage.g:9106:2: ( rule__ALSSignatureBody__UnorderedGroup_0__1 ) + // InternalAlloyLanguage.g:9106:2: rule__ALSSignatureBody__UnorderedGroup_0__1 + { + pushFollow(FOLLOW_2); + rule__ALSSignatureBody__UnorderedGroup_0__1(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred83_InternalAlloyLanguage + + // Delegated rules + + public final boolean synpred82_InternalAlloyLanguage() { + state.backtracking++; + int start = input.mark(); + try { + synpred82_InternalAlloyLanguage_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred81_InternalAlloyLanguage() { + state.backtracking++; + int start = input.mark(); + try { + synpred81_InternalAlloyLanguage_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred83_InternalAlloyLanguage() { + state.backtracking++; + int start = input.mark(); + try { + synpred83_InternalAlloyLanguage_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + + + protected DFA10 dfa10 = new DFA10(this); + protected DFA24 dfa24 = new DFA24(this); + static final String dfa_1s = "\13\uffff"; + static final String dfa_2s = "\10\uffff\1\12\2\uffff"; + static final String dfa_3s = "\1\4\7\uffff\1\13\2\uffff"; + static final String dfa_4s = "\1\106\7\uffff\1\107\2\uffff"; + static final String dfa_5s = "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\uffff\1\10\1\11"; + static final String dfa_6s = "\13\uffff}>"; + static final String[] dfa_7s = { + "\1\10\2\12\14\uffff\2\1\6\uffff\5\11\31\uffff\1\6\2\uffff\1\2\1\3\1\4\1\5\1\7\6\12", + "", + "", + "", + "", + "", + "", + "", + "\10\12\2\uffff\6\12\6\uffff\3\12\2\uffff\2\12\2\uffff\1\11\1\12\2\uffff\16\12\13\uffff\1\12", + "", + "" + }; + + 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 DFA10 extends DFA { + + public DFA10(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 10; + 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 "1319:1: rule__ALSPreficed__Alternatives : ( ( ( rule__ALSPreficed__Group_0__0 ) ) | ( ( rule__ALSPreficed__Group_1__0 ) ) | ( ( rule__ALSPreficed__Group_2__0 ) ) | ( ( rule__ALSPreficed__Group_3__0 ) ) | ( ( rule__ALSPreficed__Group_4__0 ) ) | ( ( rule__ALSPreficed__Group_5__0 ) ) | ( ( rule__ALSPreficed__Group_6__0 ) ) | ( ( rule__ALSPreficed__Group_7__0 ) ) | ( ruleALSBasicRelationTerm ) );"; + } + } + static final String dfa_8s = "\12\uffff"; + static final String dfa_9s = "\11\uffff\1\10"; + static final String dfa_10s = "\7\4\2\uffff\1\13"; + static final String dfa_11s = "\1\106\6\114\2\uffff\1\73"; + static final String dfa_12s = "\7\uffff\1\2\1\1\1\uffff"; + static final String dfa_13s = "\12\uffff}>"; + static final String[] dfa_14s = { + "\3\7\14\uffff\2\7\1\1\1\2\1\3\1\4\1\5\1\6\5\7\31\uffff\1\7\2\uffff\13\7", + "\1\11\2\10\14\uffff\15\10\31\uffff\1\10\2\uffff\13\10\5\uffff\1\7", + "\1\11\2\10\14\uffff\15\10\31\uffff\1\10\2\uffff\13\10\5\uffff\1\7", + "\1\11\2\10\14\uffff\15\10\31\uffff\1\10\2\uffff\13\10\5\uffff\1\7", + "\1\11\2\10\14\uffff\15\10\31\uffff\1\10\2\uffff\13\10\5\uffff\1\7", + "\1\11\2\10\14\uffff\15\10\31\uffff\1\10\2\uffff\13\10\5\uffff\1\7", + "\1\11\2\10\14\uffff\15\10\31\uffff\1\10\2\uffff\13\10\5\uffff\1\7", + "", + "", + "\10\10\2\uffff\6\10\7\uffff\2\10\2\uffff\2\10\1\7\1\uffff\1\10\4\uffff\15\10" + }; + + static final short[] dfa_8 = DFA.unpackEncodedString(dfa_8s); + static final short[] dfa_9 = DFA.unpackEncodedString(dfa_9s); + static final char[] dfa_10 = DFA.unpackEncodedStringToUnsignedChars(dfa_10s); + static final char[] dfa_11 = DFA.unpackEncodedStringToUnsignedChars(dfa_11s); + static final short[] dfa_12 = DFA.unpackEncodedString(dfa_12s); + static final short[] dfa_13 = DFA.unpackEncodedString(dfa_13s); + static final short[][] dfa_14 = unpackEncodedStringArray(dfa_14s); + + class DFA24 extends DFA { + + public DFA24(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 24; + this.eot = dfa_8; + this.eof = dfa_9; + this.min = dfa_10; + this.max = dfa_11; + this.accept = dfa_12; + this.special = dfa_13; + this.transition = dfa_14; + } + public String getDescription() { + return "2683:1: ( rule__ALSFieldDeclaration__MultiplicityAssignment_2 )?"; + } + } + + + 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[]{0x0000000000000000L,0x0000000000000100L}); + public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000320107E00002L,0x0000000000000800L}); + public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000200000000L}); + public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000C00000000L}); + public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000800000002L}); + public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000001000000000L}); + public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000006A00000000L}); + public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000400000010L}); + public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000008000000000L}); + public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000008000000002L}); + public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000010000000000L}); + public static final BitSet FOLLOW_16 = new BitSet(new long[]{0xF2000000FFF80070L,0x000000000000007FL}); + public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000080800000000L}); + public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000400000000L}); + public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000320107E00000L,0x0000000000000800L}); + public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000200000010L}); + public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000007E00000L}); + public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000000000010L,0x0000000000001000L}); + public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000A00000000L}); + public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000000001800L}); + public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000006000L}); + public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000018000L}); + public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000400000000000L}); + public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000000060000L}); + public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x001F804000000000L}); + public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000800000000000L}); + public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0001000000000000L}); + public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000004000000000L}); + public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0002000000000000L}); + public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0004000000000000L}); + public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0008000000000000L}); + public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0020000000000000L}); + public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0040000000000000L}); + public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0080000000000000L}); + public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0100000000000000L}); + public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0100000000000002L}); + public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0200000000000000L}); + public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0200000000000002L}); + public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0400000000000000L}); + public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0400000000000002L}); + public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0800000007E00000L}); + public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000180000L}); + public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x1000000000000000L}); + public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x2000000000000000L}); + public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x4000000000000000L}); + public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x8000000000000000L}); + public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L}); + public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x00000000F8000010L}); + public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L}); + public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L}); + public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L}); + public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L}); + public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L}); + public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000000000000020L}); + public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L}); + public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L}); + public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0000000000000020L,0x0000000000000400L}); + public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000000007E00002L,0x0000000000000800L}); + +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/internal/AlloyLanguageActivator.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/internal/AlloyLanguageActivator.java new file mode 100644 index 00000000..5eab6f1f --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu/bme/mit/inf/dslreasoner/ui/internal/AlloyLanguageActivator.java @@ -0,0 +1,95 @@ +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner.ui.internal; + +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; + +import com.google.common.collect.Maps; +import com.google.inject.Guice; +import com.google.inject.Injector; +import com.google.inject.Module; + +/** + * This class was generated. Customizations should only happen in a newly + * introduced subclass. + */ +public class AlloyLanguageActivator extends AbstractUIPlugin { + + public static final String HU_BME_MIT_INF_DSLREASONER_ALLOYLANGUAGE = "hu.bme.mit.inf.dslreasoner.AlloyLanguage"; + + private static final Logger logger = Logger.getLogger(AlloyLanguageActivator.class); + + private static AlloyLanguageActivator 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 AlloyLanguageActivator 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 (HU_BME_MIT_INF_DSLREASONER_ALLOYLANGUAGE.equals(grammar)) { + return new hu.bme.mit.inf.dslreasoner.AlloyLanguageRuntimeModule(); + } + + throw new IllegalArgumentException(grammar); + } + + protected Module getUiModule(String grammar) { + if (HU_BME_MIT_INF_DSLREASONER_ALLOYLANGUAGE.equals(grammar)) { + return new hu.bme.mit.inf.dslreasoner.ui.AlloyLanguageUiModule(this); + } + + throw new IllegalArgumentException(grammar); + } + + protected Module getSharedStateModule() { + return new SharedStateModule(); + } + +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/AlloyLanguageUiModule.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/AlloyLanguageUiModule.java new file mode 100644 index 00000000..bcbe21ab --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/AlloyLanguageUiModule.java @@ -0,0 +1,15 @@ +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner.ui; + +import org.eclipse.ui.plugin.AbstractUIPlugin; + +/** + * Use this class to register components to be used within the IDE. + */ +public class AlloyLanguageUiModule extends hu.bme.mit.inf.dslreasoner.ui.AbstractAlloyLanguageUiModule { + public AlloyLanguageUiModule(AbstractUIPlugin plugin) { + super(plugin); + } +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/contentassist/AlloyLanguageProposalProvider.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/contentassist/AlloyLanguageProposalProvider.xtend new file mode 100644 index 00000000..896aa484 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/contentassist/AlloyLanguageProposalProvider.xtend @@ -0,0 +1,12 @@ +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner.ui.contentassist + +import hu.bme.mit.inf.dslreasoner.ui.contentassist.AbstractAlloyLanguageProposalProvider + +/** + * see http://www.eclipse.org/Xtext/documentation.html#contentAssist on how to customize content assistant + */ +class AlloyLanguageProposalProvider extends AbstractAlloyLanguageProposalProvider { +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/labeling/AlloyLanguageDescriptionLabelProvider.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/labeling/AlloyLanguageDescriptionLabelProvider.xtend new file mode 100644 index 00000000..6a9a273e --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/labeling/AlloyLanguageDescriptionLabelProvider.xtend @@ -0,0 +1,24 @@ +/* +* generated by Xtext +*/ +package hu.bme.mit.inf.dslreasoner.ui.labeling + +//import org.eclipse.xtext.resource.IEObjectDescription + +/** + * Provides labels for a IEObjectDescriptions and IResourceDescriptions. + * + * see http://www.eclipse.org/Xtext/documentation.html#labelProvider + */ +class AlloyLanguageDescriptionLabelProvider extends org.eclipse.xtext.ui.label.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/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/labeling/AlloyLanguageLabelProvider.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/labeling/AlloyLanguageLabelProvider.xtend new file mode 100644 index 00000000..d6e00ca5 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/labeling/AlloyLanguageLabelProvider.xtend @@ -0,0 +1,29 @@ +/* +* generated by Xtext +*/ +package hu.bme.mit.inf.dslreasoner.ui.labeling + +import com.google.inject.Inject + +/** + * Provides labels for a EObjects. + * + * see http://www.eclipse.org/Xtext/documentation.html#labelProvider + */ +class AlloyLanguageLabelProvider extends org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider { + + @Inject + new(org.eclipse.emf.edit.ui.provider.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/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/outline/AlloyLanguageOutlineTreeProvider.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/outline/AlloyLanguageOutlineTreeProvider.xtend new file mode 100644 index 00000000..e75c3427 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/outline/AlloyLanguageOutlineTreeProvider.xtend @@ -0,0 +1,13 @@ +/* +* generated by Xtext +*/ +package hu.bme.mit.inf.dslreasoner.ui.outline + +/** + * Customization of the default outline structure. + * + * see http://www.eclipse.org/Xtext/documentation.html#outline + */ +class AlloyLanguageOutlineTreeProvider extends org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider { + +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/quickfix/AlloyLanguageQuickfixProvider.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/quickfix/AlloyLanguageQuickfixProvider.xtend new file mode 100644 index 00000000..d02bca52 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src/hu/bme/mit/inf/dslreasoner/ui/quickfix/AlloyLanguageQuickfixProvider.xtend @@ -0,0 +1,26 @@ +/* +* generated by Xtext +*/ +package hu.bme.mit.inf.dslreasoner.ui.quickfix + +//import org.eclipse.xtext.ui.editor.quickfix.Fix +//import org.eclipse.xtext.ui.editor.quickfix.IssueResolutionAcceptor +//import org.eclipse.xtext.validation.Issue + +/** + * Custom quickfixes. + * + * see http://www.eclipse.org/Xtext/documentation.html#quickfixes + */ +class AlloyLanguageQuickfixProvider extends org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider { + +// @Fix(MyDslValidator::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/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.classpath b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.classpath new file mode 100644 index 00000000..f933ee53 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.gitignore b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.gitignore new file mode 100644 index 00000000..f2741e97 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.gitignore @@ -0,0 +1,3 @@ +/bin/ +/vql-gen/ +/xtend-gen/ diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.launch/Generate Language Infrastructure (hu.bme.mit.inf.dslreasoner.alloy.language).launch b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.launch/Generate Language Infrastructure (hu.bme.mit.inf.dslreasoner.alloy.language).launch new file mode 100644 index 00000000..d761c4d9 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.launch/Generate Language Infrastructure (hu.bme.mit.inf.dslreasoner.alloy.language).launch @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.project b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.project new file mode 100644 index 00000000..9b0ddf04 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.project @@ -0,0 +1,34 @@ + + + hu.bme.mit.inf.dslreasoner.alloy.language + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + org.eclipse.xtext.ui.shared.xtextNature + + diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.settings/org.eclipse.core.resources.prefs b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..99f26c02 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.settings/org.eclipse.jdt.core.prefs b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..a698e596 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +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/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/META-INF/MANIFEST.MF b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/META-INF/MANIFEST.MF new file mode 100644 index 00000000..c9b34d94 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/META-INF/MANIFEST.MF @@ -0,0 +1,38 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: hu.bme.mit.inf.dslreasoner.alloy.language +Bundle-Vendor: My Company +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: hu.bme.mit.inf.dslreasoner.alloy.language; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.eclipse.xtext;visibility:=reexport, + org.eclipse.xtext.xbase;resolution:=optional;visibility:=reexport, + org.eclipse.xtext.generator;resolution:=optional, + org.apache.commons.logging;bundle-version="1.0.4";resolution:=optional, + org.eclipse.emf.codegen.ecore;resolution:=optional, + org.eclipse.emf.mwe.utils;resolution:=optional, + org.eclipse.emf.mwe2.launch;resolution:=optional, + org.eclipse.xtext.util, + org.eclipse.emf.ecore, + org.eclipse.emf.common, + org.eclipse.xtext.xbase.lib, + org.antlr.runtime, + org.eclipse.xtext.common.types, + org.objectweb.asm;bundle-version="[5.0.1,6.0.0)";resolution:=optional, + org.eclipse.equinox.common;bundle-version="3.7.0" +Import-Package: org.apache.log4j +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Export-Package: hu.bme.mit.inf.dslreasoner, + hu.bme.mit.inf.dslreasoner.services, + hu.bme.mit.inf.dslreasoner.alloyLanguage, + hu.bme.mit.inf.dslreasoner.alloyLanguage.impl, + hu.bme.mit.inf.dslreasoner.alloyLanguage.util, + hu.bme.mit.inf.dslreasoner.serializer, + hu.bme.mit.inf.dslreasoner.parser.antlr, + hu.bme.mit.inf.dslreasoner.parser.antlr.internal, + hu.bme.mit.inf.dslreasoner.validation, + hu.bme.mit.inf.dslreasoner.scoping, + hu.bme.mit.inf.dslreasoner.generator, + hu.bme.mit.inf.dslreasoner.formatting +Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.alloy.language + diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/build.properties b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/build.properties new file mode 100644 index 00000000..9b82d81d --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/build.properties @@ -0,0 +1,7 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = model/,\ + META-INF/,\ + .,\ + plugin.xml \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/model/generated/AlloyLanguage.ecore b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/model/generated/AlloyLanguage.ecore new file mode 100644 index 00000000..cc2b3c08 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/model/generated/AlloyLanguage.ecore @@ -0,0 +1,272 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/model/generated/AlloyLanguage.genmodel b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/model/generated/AlloyLanguage.genmodel new file mode 100644 index 00000000..ae44daf7 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/model/generated/AlloyLanguage.genmodel @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/plugin.xml b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/plugin.xml new file mode 100644 index 00000000..6ac9fdab --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/plugin.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/plugin.xml_gen b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/plugin.xml_gen new file mode 100644 index 00000000..6ac9fdab --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/plugin.xml_gen @@ -0,0 +1,16 @@ + + + + + + + + + + + + + diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/AbstractAlloyLanguageRuntimeModule.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/AbstractAlloyLanguageRuntimeModule.java new file mode 100644 index 00000000..32cd6c8c --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/AbstractAlloyLanguageRuntimeModule.java @@ -0,0 +1,161 @@ +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner; + +import java.util.Properties; + +import org.eclipse.xtext.Constants; + +import com.google.inject.Binder; +import com.google.inject.name.Names; + +/** + * Manual modifications go to {hu.bme.mit.inf.dslreasoner.AlloyLanguageRuntimeModule} + */ +@SuppressWarnings("all") +public abstract class AbstractAlloyLanguageRuntimeModule extends org.eclipse.xtext.common.types.DefaultCommonTypesRuntimeModule { + + protected Properties properties = null; + + @Override + public void configure(Binder binder) { + properties = tryBindProperties(binder, "hu/bme/mit/inf/dslreasoner/AlloyLanguage.properties"); + super.configure(binder); + } + + public void configureLanguageName(Binder binder) { + binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("hu.bme.mit.inf.dslreasoner.AlloyLanguage"); + } + + 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("als"); + } + + // contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment + public java.lang.ClassLoader bindClassLoaderToInstance() { + return getClass().getClassLoader(); + } + + // contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment + public Class bindIGrammarAccess() { + return hu.bme.mit.inf.dslreasoner.services.AlloyLanguageGrammarAccess.class; + } + + // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment + public Class bindISemanticSequencer() { + return hu.bme.mit.inf.dslreasoner.serializer.AlloyLanguageSemanticSequencer.class; + } + + // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment + public Class bindISyntacticSequencer() { + return hu.bme.mit.inf.dslreasoner.serializer.AlloyLanguageSyntacticSequencer.class; + } + + // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment + public Class bindISerializer() { + return org.eclipse.xtext.serializer.impl.Serializer.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public Class bindIParser() { + return hu.bme.mit.inf.dslreasoner.parser.antlr.AlloyLanguageParser.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public Class bindITokenToStringConverter() { + return org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public Class bindIAntlrTokenFileProvider() { + return hu.bme.mit.inf.dslreasoner.parser.antlr.AlloyLanguageAntlrTokenFileProvider.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public Class bindLexer() { + return hu.bme.mit.inf.dslreasoner.parser.antlr.internal.InternalAlloyLanguageLexer.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public com.google.inject.Provider provideInternalAlloyLanguageLexer() { + return org.eclipse.xtext.parser.antlr.LexerProvider.create(hu.bme.mit.inf.dslreasoner.parser.antlr.internal.InternalAlloyLanguageLexer.class); + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public void configureRuntimeLexer(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.parser.antlr.LexerBindings.RUNTIME)).to(hu.bme.mit.inf.dslreasoner.parser.antlr.internal.InternalAlloyLanguageLexer.class); + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public Class bindITokenDefProvider() { + return org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public Class bindIUnorderedGroupHelper() { + return org.eclipse.xtext.parser.antlr.UnorderedGroupHelper.class; + } + + // contributed by org.eclipse.xtext.generator.validation.ValidatorFragment + @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class bindAlloyLanguageValidator() { + return hu.bme.mit.inf.dslreasoner.validation.AlloyLanguageValidator.class; + } + + // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment + public Class bindIScopeProvider() { + return hu.bme.mit.inf.dslreasoner.scoping.AlloyLanguageScopeProvider.class; + } + + // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment + public void configureIScopeProviderDelegate(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider.class); + } + + // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment + public void configureIgnoreCaseLinking(com.google.inject.Binder binder) { + binder.bindConstant().annotatedWith(org.eclipse.xtext.scoping.IgnoreCaseLinking.class).to(false); + } + + // contributed by org.eclipse.xtext.generator.exporting.QualifiedNamesFragment + public Class bindIQualifiedNameProvider() { + return org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider.class; + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public Class bindIContainer$Manager() { + return org.eclipse.xtext.resource.containers.StateBasedContainerManager.class; + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public Class bindIAllContainersState$Provider() { + return org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider.class; + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public void configureIResourceDescriptions(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class); + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public void configureIResourceDescriptionsPersisted(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class); + } + + // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment + public Class bindIGenerator() { + return hu.bme.mit.inf.dslreasoner.generator.AlloyLanguageGenerator.class; + } + + // contributed by org.eclipse.xtext.generator.formatting.FormatterFragment + public Class bindIFormatter() { + return hu.bme.mit.inf.dslreasoner.formatting.AlloyLanguageFormatter.class; + } + + // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment + public Class bindIGlobalScopeProvider() { + return org.eclipse.xtext.common.types.xtext.TypesAwareDefaultGlobalScopeProvider.class; + } + +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtextbin b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtextbin new file mode 100644 index 00000000..f5684306 Binary files /dev/null and b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtextbin differ diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/AlloyLanguageStandaloneSetupGenerated.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/AlloyLanguageStandaloneSetupGenerated.java new file mode 100644 index 00000000..744dc1fe --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/AlloyLanguageStandaloneSetupGenerated.java @@ -0,0 +1,45 @@ +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner; + +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.xtext.ISetup; + +import com.google.inject.Guice; +import com.google.inject.Injector; + +/** + * Generated from StandaloneSetup.xpt! + */ +@SuppressWarnings("all") +public class AlloyLanguageStandaloneSetupGenerated implements ISetup { + + @Override + public Injector createInjectorAndDoEMFRegistration() { + org.eclipse.xtext.common.TerminalsStandaloneSetup.doSetup(); + + Injector injector = createInjector(); + register(injector); + return injector; + } + + public Injector createInjector() { + return Guice.createInjector(new hu.bme.mit.inf.dslreasoner.AlloyLanguageRuntimeModule()); + } + + public void register(Injector injector) { + if (!EPackage.Registry.INSTANCE.containsKey("http://www.bme.hu/mit/inf/dslreasoner/AlloyLanguage")) { + EPackage.Registry.INSTANCE.put("http://www.bme.hu/mit/inf/dslreasoner/AlloyLanguage", hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage.eINSTANCE); + } + + org.eclipse.xtext.resource.IResourceFactory resourceFactory = injector.getInstance(org.eclipse.xtext.resource.IResourceFactory.class); + org.eclipse.xtext.resource.IResourceServiceProvider serviceProvider = injector.getInstance(org.eclipse.xtext.resource.IResourceServiceProvider.class); + Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("als", resourceFactory); + org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("als", serviceProvider); + + + + } +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSAnd.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSAnd.java new file mode 100644 index 00000000..bc3dbb94 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSAnd.java @@ -0,0 +1,77 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS And'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSAnd#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSAnd#getRightOperand Right Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSAnd() + * @model + * @generated + */ +public interface ALSAnd extends ALSTerm +{ + /** + * Returns the value of the 'Left Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Left Operand' containment reference. + * @see #setLeftOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSAnd_LeftOperand() + * @model containment="true" + * @generated + */ + ALSTerm getLeftOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSAnd#getLeftOperand Left Operand}' containment reference. + * + * + * @param value the new value of the 'Left Operand' containment reference. + * @see #getLeftOperand() + * @generated + */ + void setLeftOperand(ALSTerm value); + + /** + * Returns the value of the 'Right Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Right Operand' containment reference. + * @see #setRightOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSAnd_RightOperand() + * @model containment="true" + * @generated + */ + ALSTerm getRightOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSAnd#getRightOperand Right Operand}' containment reference. + * + * + * @param value the new value of the 'Right Operand' containment reference. + * @see #getRightOperand() + * @generated + */ + void setRightOperand(ALSTerm value); + +} // ALSAnd diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSCardinality.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSCardinality.java new file mode 100644 index 00000000..03735557 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSCardinality.java @@ -0,0 +1,50 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Cardinality'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSCardinality#getOperand Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSCardinality() + * @model + * @generated + */ +public interface ALSCardinality extends ALSTerm +{ + /** + * 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(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSCardinality_Operand() + * @model containment="true" + * @generated + */ + ALSTerm getOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSCardinality#getOperand Operand}' containment reference. + * + * + * @param value the new value of the 'Operand' containment reference. + * @see #getOperand() + * @generated + */ + void setOperand(ALSTerm value); + +} // ALSCardinality diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSDefinition.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSDefinition.java new file mode 100644 index 00000000..32e4709a --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSDefinition.java @@ -0,0 +1,97 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'ALS Definition'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDefinition#getName Name}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDefinition#getVariables Variables}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDefinition#getValue Value}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSDefinition() + * @model + * @generated + */ +public interface ALSDefinition 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSDefinition_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDefinition#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Variables' containment reference list. + * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSVariableDeclaration}. + * + *

+ * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSDefinition_Variables() + * @model containment="true" + * @generated + */ + EList getVariables(); + + /** + * Returns the value of the 'Value' containment reference. + * + *

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

+ * + * @return the value of the 'Value' containment reference. + * @see #setValue(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSDefinition_Value() + * @model containment="true" + * @generated + */ + ALSTerm getValue(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDefinition#getValue Value}' containment reference. + * + * + * @param value the new value of the 'Value' containment reference. + * @see #getValue() + * @generated + */ + void setValue(ALSTerm value); + +} // ALSDefinition diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSDirectProduct.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSDirectProduct.java new file mode 100644 index 00000000..fba62e10 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSDirectProduct.java @@ -0,0 +1,137 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Direct Product'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct#getLeftMultiplicit Left Multiplicit}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct#getRightMultiplicit Right Multiplicit}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct#getRightOperand Right Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSDirectProduct() + * @model + * @generated + */ +public interface ALSDirectProduct extends ALSTerm +{ + /** + * Returns the value of the 'Left Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Left Operand' containment reference. + * @see #setLeftOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSDirectProduct_LeftOperand() + * @model containment="true" + * @generated + */ + ALSTerm getLeftOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct#getLeftOperand Left Operand}' containment reference. + * + * + * @param value the new value of the 'Left Operand' containment reference. + * @see #getLeftOperand() + * @generated + */ + void setLeftOperand(ALSTerm value); + + /** + * Returns the value of the 'Left Multiplicit' attribute. + * The literals are from the enumeration {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity}. + * + *

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

+ * + * @return the value of the 'Left Multiplicit' attribute. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity + * @see #setLeftMultiplicit(ALSMultiplicity) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSDirectProduct_LeftMultiplicit() + * @model + * @generated + */ + ALSMultiplicity getLeftMultiplicit(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct#getLeftMultiplicit Left Multiplicit}' attribute. + * + * + * @param value the new value of the 'Left Multiplicit' attribute. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity + * @see #getLeftMultiplicit() + * @generated + */ + void setLeftMultiplicit(ALSMultiplicity value); + + /** + * Returns the value of the 'Right Multiplicit' attribute. + * The literals are from the enumeration {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity}. + * + *

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

+ * + * @return the value of the 'Right Multiplicit' attribute. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity + * @see #setRightMultiplicit(ALSMultiplicity) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSDirectProduct_RightMultiplicit() + * @model + * @generated + */ + ALSMultiplicity getRightMultiplicit(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct#getRightMultiplicit Right Multiplicit}' attribute. + * + * + * @param value the new value of the 'Right Multiplicit' attribute. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity + * @see #getRightMultiplicit() + * @generated + */ + void setRightMultiplicit(ALSMultiplicity value); + + /** + * Returns the value of the 'Right Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Right Operand' containment reference. + * @see #setRightOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSDirectProduct_RightOperand() + * @model containment="true" + * @generated + */ + ALSTerm getRightOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct#getRightOperand Right Operand}' containment reference. + * + * + * @param value the new value of the 'Right Operand' containment reference. + * @see #getRightOperand() + * @generated + */ + void setRightOperand(ALSTerm value); + +} // ALSDirectProduct diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSDocument.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSDocument.java new file mode 100644 index 00000000..3f6d33c8 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSDocument.java @@ -0,0 +1,138 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'ALS Document'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument#getEnumDeclarations Enum Declarations}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument#getSignatureBodies Signature Bodies}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument#getFunctionDefinitions Function Definitions}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument#getRelationDefinitions Relation Definitions}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument#getFactDeclarations Fact Declarations}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument#getRunCommand Run Command}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSDocument() + * @model + * @generated + */ +public interface ALSDocument extends EObject +{ + /** + * Returns the value of the 'Enum Declarations' containment reference list. + * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumDeclaration}. + * + *

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

+ * + * @return the value of the 'Enum Declarations' containment reference list. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSDocument_EnumDeclarations() + * @model containment="true" + * @generated + */ + EList getEnumDeclarations(); + + /** + * Returns the value of the 'Signature Bodies' containment reference list. + * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody}. + * + *

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

+ * + * @return the value of the 'Signature Bodies' containment reference list. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSDocument_SignatureBodies() + * @model containment="true" + * @generated + */ + EList getSignatureBodies(); + + /** + * Returns the value of the 'Function Definitions' containment reference list. + * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionDefinition}. + * + *

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

+ * + * @return the value of the 'Function Definitions' containment reference list. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSDocument_FunctionDefinitions() + * @model containment="true" + * @generated + */ + EList getFunctionDefinitions(); + + /** + * Returns the value of the 'Relation Definitions' containment reference list. + * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDefinition}. + * + *

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

+ * + * @return the value of the 'Relation Definitions' containment reference list. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSDocument_RelationDefinitions() + * @model containment="true" + * @generated + */ + EList getRelationDefinitions(); + + /** + * Returns the value of the 'Fact Declarations' containment reference list. + * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFactDeclaration}. + * + *

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

+ * + * @return the value of the 'Fact Declarations' containment reference list. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSDocument_FactDeclarations() + * @model containment="true" + * @generated + */ + EList getFactDeclarations(); + + /** + * Returns the value of the 'Run Command' containment reference. + * + *

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

+ * + * @return the value of the 'Run Command' containment reference. + * @see #setRunCommand(ALSRunCommand) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSDocument_RunCommand() + * @model containment="true" + * @generated + */ + ALSRunCommand getRunCommand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument#getRunCommand Run Command}' containment reference. + * + * + * @param value the new value of the 'Run Command' containment reference. + * @see #getRunCommand() + * @generated + */ + void setRunCommand(ALSRunCommand value); + +} // ALSDocument diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSEnumDeclaration.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSEnumDeclaration.java new file mode 100644 index 00000000..e97d207f --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSEnumDeclaration.java @@ -0,0 +1,41 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'ALS Enum Declaration'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumDeclaration#getLiteral Literal}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSEnumDeclaration() + * @model + * @generated + */ +public interface ALSEnumDeclaration extends ALSTypeDeclaration +{ + /** + * Returns the value of the 'Literal' containment reference list. + * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumLiteral}. + * + *

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

+ * + * @return the value of the 'Literal' containment reference list. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSEnumDeclaration_Literal() + * @model containment="true" + * @generated + */ + EList getLiteral(); + +} // ALSEnumDeclaration diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSEnumLiteral.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSEnumLiteral.java new file mode 100644 index 00000000..f4f9282b --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSEnumLiteral.java @@ -0,0 +1,18 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Enum Literal'. + * + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSEnumLiteral() + * @model + * @generated + */ +public interface ALSEnumLiteral extends ALSRelationDeclaration +{ +} // ALSEnumLiteral diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSEquals.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSEquals.java new file mode 100644 index 00000000..8fca4ad5 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSEquals.java @@ -0,0 +1,77 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Equals'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEquals#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEquals#getRightOperand Right Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSEquals() + * @model + * @generated + */ +public interface ALSEquals extends ALSTerm +{ + /** + * Returns the value of the 'Left Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Left Operand' containment reference. + * @see #setLeftOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSEquals_LeftOperand() + * @model containment="true" + * @generated + */ + ALSTerm getLeftOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEquals#getLeftOperand Left Operand}' containment reference. + * + * + * @param value the new value of the 'Left Operand' containment reference. + * @see #getLeftOperand() + * @generated + */ + void setLeftOperand(ALSTerm value); + + /** + * Returns the value of the 'Right Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Right Operand' containment reference. + * @see #setRightOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSEquals_RightOperand() + * @model containment="true" + * @generated + */ + ALSTerm getRightOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEquals#getRightOperand Right Operand}' containment reference. + * + * + * @param value the new value of the 'Right Operand' containment reference. + * @see #getRightOperand() + * @generated + */ + void setRightOperand(ALSTerm value); + +} // ALSEquals diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSFactDeclaration.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSFactDeclaration.java new file mode 100644 index 00000000..f226a784 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSFactDeclaration.java @@ -0,0 +1,78 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'ALS Fact Declaration'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFactDeclaration#getName Name}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFactDeclaration#getTerm Term}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSFactDeclaration() + * @model + * @generated + */ +public interface ALSFactDeclaration 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSFactDeclaration_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFactDeclaration#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Term' containment reference. + * + *

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

+ * + * @return the value of the 'Term' containment reference. + * @see #setTerm(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSFactDeclaration_Term() + * @model containment="true" + * @generated + */ + ALSTerm getTerm(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFactDeclaration#getTerm Term}' containment reference. + * + * + * @param value the new value of the 'Term' containment reference. + * @see #getTerm() + * @generated + */ + void setTerm(ALSTerm value); + +} // ALSFactDeclaration diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSFieldDeclaration.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSFieldDeclaration.java new file mode 100644 index 00000000..060cb6ed --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSFieldDeclaration.java @@ -0,0 +1,80 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Field Declaration'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFieldDeclaration#getMultiplicity Multiplicity}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFieldDeclaration#getType Type}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSFieldDeclaration() + * @model + * @generated + */ +public interface ALSFieldDeclaration extends ALSRelationDeclaration +{ + /** + * Returns the value of the 'Multiplicity' attribute. + * The literals are from the enumeration {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity}. + * + *

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

+ * + * @return the value of the 'Multiplicity' attribute. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity + * @see #setMultiplicity(ALSMultiplicity) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSFieldDeclaration_Multiplicity() + * @model + * @generated + */ + ALSMultiplicity getMultiplicity(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFieldDeclaration#getMultiplicity Multiplicity}' attribute. + * + * + * @param value the new value of the 'Multiplicity' attribute. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity + * @see #getMultiplicity() + * @generated + */ + void setMultiplicity(ALSMultiplicity value); + + /** + * Returns the value of the 'Type' containment reference. + * + *

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

+ * + * @return the value of the 'Type' containment reference. + * @see #setType(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSFieldDeclaration_Type() + * @model containment="true" + * @generated + */ + ALSTerm getType(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFieldDeclaration#getType Type}' containment reference. + * + * + * @param value the new value of the 'Type' containment reference. + * @see #getType() + * @generated + */ + void setType(ALSTerm value); + +} // ALSFieldDeclaration diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSFunctionCall.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSFunctionCall.java new file mode 100644 index 00000000..967640e6 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSFunctionCall.java @@ -0,0 +1,98 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'ALS Function Call'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionCall#getReferredDefinition Referred Definition}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionCall#getReferredNumericOperator Referred Numeric Operator}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionCall#getParams Params}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSFunctionCall() + * @model + * @generated + */ +public interface ALSFunctionCall extends ALSTerm +{ + /** + * Returns the value of the 'Referred Definition' reference. + * + *

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

+ * + * @return the value of the 'Referred Definition' reference. + * @see #setReferredDefinition(ALSDefinition) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSFunctionCall_ReferredDefinition() + * @model + * @generated + */ + ALSDefinition getReferredDefinition(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionCall#getReferredDefinition Referred Definition}' reference. + * + * + * @param value the new value of the 'Referred Definition' reference. + * @see #getReferredDefinition() + * @generated + */ + void setReferredDefinition(ALSDefinition value); + + /** + * Returns the value of the 'Referred Numeric Operator' attribute. + * The literals are from the enumeration {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumericOperator}. + * + *

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

+ * + * @return the value of the 'Referred Numeric Operator' attribute. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumericOperator + * @see #setReferredNumericOperator(ALSNumericOperator) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSFunctionCall_ReferredNumericOperator() + * @model + * @generated + */ + ALSNumericOperator getReferredNumericOperator(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionCall#getReferredNumericOperator Referred Numeric Operator}' attribute. + * + * + * @param value the new value of the 'Referred Numeric Operator' attribute. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumericOperator + * @see #getReferredNumericOperator() + * @generated + */ + void setReferredNumericOperator(ALSNumericOperator value); + + /** + * Returns the value of the 'Params' containment reference list. + * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm}. + * + *

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

+ * + * @return the value of the 'Params' containment reference list. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSFunctionCall_Params() + * @model containment="true" + * @generated + */ + EList getParams(); + +} // ALSFunctionCall diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSFunctionDefinition.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSFunctionDefinition.java new file mode 100644 index 00000000..c2f009ec --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSFunctionDefinition.java @@ -0,0 +1,50 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Function Definition'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionDefinition#getType Type}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSFunctionDefinition() + * @model + * @generated + */ +public interface ALSFunctionDefinition extends ALSDefinition +{ + /** + * Returns the value of the 'Type' containment reference. + * + *

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

+ * + * @return the value of the 'Type' containment reference. + * @see #setType(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSFunctionDefinition_Type() + * @model containment="true" + * @generated + */ + ALSTerm getType(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionDefinition#getType Type}' containment reference. + * + * + * @param value the new value of the 'Type' containment reference. + * @see #getType() + * @generated + */ + void setType(ALSTerm value); + +} // ALSFunctionDefinition diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSIden.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSIden.java new file mode 100644 index 00000000..8e00ef8d --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSIden.java @@ -0,0 +1,18 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Iden'. + * + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSIden() + * @model + * @generated + */ +public interface ALSIden extends ALSTerm +{ +} // ALSIden diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSIff.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSIff.java new file mode 100644 index 00000000..54b3d0ca --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSIff.java @@ -0,0 +1,77 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Iff'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIff#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIff#getRightOperand Right Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSIff() + * @model + * @generated + */ +public interface ALSIff extends ALSTerm +{ + /** + * Returns the value of the 'Left Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Left Operand' containment reference. + * @see #setLeftOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSIff_LeftOperand() + * @model containment="true" + * @generated + */ + ALSTerm getLeftOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIff#getLeftOperand Left Operand}' containment reference. + * + * + * @param value the new value of the 'Left Operand' containment reference. + * @see #getLeftOperand() + * @generated + */ + void setLeftOperand(ALSTerm value); + + /** + * Returns the value of the 'Right Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Right Operand' containment reference. + * @see #setRightOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSIff_RightOperand() + * @model containment="true" + * @generated + */ + ALSTerm getRightOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIff#getRightOperand Right Operand}' containment reference. + * + * + * @param value the new value of the 'Right Operand' containment reference. + * @see #getRightOperand() + * @generated + */ + void setRightOperand(ALSTerm value); + +} // ALSIff diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSImpl.java new file mode 100644 index 00000000..29ddcdf8 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSImpl.java @@ -0,0 +1,104 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Impl'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSImpl#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSImpl#getRightOperand Right Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSImpl#getElseOperand Else Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSImpl() + * @model + * @generated + */ +public interface ALSImpl extends ALSTerm +{ + /** + * Returns the value of the 'Left Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Left Operand' containment reference. + * @see #setLeftOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSImpl_LeftOperand() + * @model containment="true" + * @generated + */ + ALSTerm getLeftOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSImpl#getLeftOperand Left Operand}' containment reference. + * + * + * @param value the new value of the 'Left Operand' containment reference. + * @see #getLeftOperand() + * @generated + */ + void setLeftOperand(ALSTerm value); + + /** + * Returns the value of the 'Right Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Right Operand' containment reference. + * @see #setRightOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSImpl_RightOperand() + * @model containment="true" + * @generated + */ + ALSTerm getRightOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSImpl#getRightOperand Right Operand}' containment reference. + * + * + * @param value the new value of the 'Right Operand' containment reference. + * @see #getRightOperand() + * @generated + */ + void setRightOperand(ALSTerm value); + + /** + * Returns the value of the 'Else Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Else Operand' containment reference. + * @see #setElseOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSImpl_ElseOperand() + * @model containment="true" + * @generated + */ + ALSTerm getElseOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSImpl#getElseOperand Else Operand}' containment reference. + * + * + * @param value the new value of the 'Else Operand' containment reference. + * @see #getElseOperand() + * @generated + */ + void setElseOperand(ALSTerm value); + +} // ALSImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSInt.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSInt.java new file mode 100644 index 00000000..e66d7524 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSInt.java @@ -0,0 +1,18 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Int'. + * + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSInt() + * @model + * @generated + */ +public interface ALSInt extends ALSTerm +{ +} // ALSInt diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSIntScope.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSIntScope.java new file mode 100644 index 00000000..5c47d66e --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSIntScope.java @@ -0,0 +1,18 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Int Scope'. + * + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSIntScope() + * @model + * @generated + */ +public interface ALSIntScope extends ALSTypeScope +{ +} // ALSIntScope diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSIntersection.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSIntersection.java new file mode 100644 index 00000000..0af5cee1 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSIntersection.java @@ -0,0 +1,77 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Intersection'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntersection#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntersection#getRightOperand Right Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSIntersection() + * @model + * @generated + */ +public interface ALSIntersection extends ALSTerm +{ + /** + * Returns the value of the 'Left Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Left Operand' containment reference. + * @see #setLeftOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSIntersection_LeftOperand() + * @model containment="true" + * @generated + */ + ALSTerm getLeftOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntersection#getLeftOperand Left Operand}' containment reference. + * + * + * @param value the new value of the 'Left Operand' containment reference. + * @see #getLeftOperand() + * @generated + */ + void setLeftOperand(ALSTerm value); + + /** + * Returns the value of the 'Right Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Right Operand' containment reference. + * @see #setRightOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSIntersection_RightOperand() + * @model containment="true" + * @generated + */ + ALSTerm getRightOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntersection#getRightOperand Right Operand}' containment reference. + * + * + * @param value the new value of the 'Right Operand' containment reference. + * @see #getRightOperand() + * @generated + */ + void setRightOperand(ALSTerm value); + +} // ALSIntersection diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSInverseRelation.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSInverseRelation.java new file mode 100644 index 00000000..f4c27497 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSInverseRelation.java @@ -0,0 +1,50 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Inverse Relation'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSInverseRelation#getOperand Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSInverseRelation() + * @model + * @generated + */ +public interface ALSInverseRelation extends ALSTerm +{ + /** + * 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(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSInverseRelation_Operand() + * @model containment="true" + * @generated + */ + ALSTerm getOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSInverseRelation#getOperand Operand}' containment reference. + * + * + * @param value the new value of the 'Operand' containment reference. + * @see #getOperand() + * @generated + */ + void setOperand(ALSTerm value); + +} // ALSInverseRelation diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSJoin.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSJoin.java new file mode 100644 index 00000000..b514e720 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSJoin.java @@ -0,0 +1,77 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Join'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSJoin#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSJoin#getRightOperand Right Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSJoin() + * @model + * @generated + */ +public interface ALSJoin extends ALSTerm +{ + /** + * Returns the value of the 'Left Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Left Operand' containment reference. + * @see #setLeftOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSJoin_LeftOperand() + * @model containment="true" + * @generated + */ + ALSTerm getLeftOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSJoin#getLeftOperand Left Operand}' containment reference. + * + * + * @param value the new value of the 'Left Operand' containment reference. + * @see #getLeftOperand() + * @generated + */ + void setLeftOperand(ALSTerm value); + + /** + * Returns the value of the 'Right Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Right Operand' containment reference. + * @see #setRightOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSJoin_RightOperand() + * @model containment="true" + * @generated + */ + ALSTerm getRightOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSJoin#getRightOperand Right Operand}' containment reference. + * + * + * @param value the new value of the 'Right Operand' containment reference. + * @see #getRightOperand() + * @generated + */ + void setRightOperand(ALSTerm value); + +} // ALSJoin diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSLeq.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSLeq.java new file mode 100644 index 00000000..e108ba3d --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSLeq.java @@ -0,0 +1,77 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Leq'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLeq#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLeq#getRightOperand Right Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSLeq() + * @model + * @generated + */ +public interface ALSLeq extends ALSTerm +{ + /** + * Returns the value of the 'Left Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Left Operand' containment reference. + * @see #setLeftOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSLeq_LeftOperand() + * @model containment="true" + * @generated + */ + ALSTerm getLeftOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLeq#getLeftOperand Left Operand}' containment reference. + * + * + * @param value the new value of the 'Left Operand' containment reference. + * @see #getLeftOperand() + * @generated + */ + void setLeftOperand(ALSTerm value); + + /** + * Returns the value of the 'Right Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Right Operand' containment reference. + * @see #setRightOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSLeq_RightOperand() + * @model containment="true" + * @generated + */ + ALSTerm getRightOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLeq#getRightOperand Right Operand}' containment reference. + * + * + * @param value the new value of the 'Right Operand' containment reference. + * @see #getRightOperand() + * @generated + */ + void setRightOperand(ALSTerm value); + +} // ALSLeq diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSLess.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSLess.java new file mode 100644 index 00000000..c9b9ac71 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSLess.java @@ -0,0 +1,77 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Less'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLess#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLess#getRightOperand Right Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSLess() + * @model + * @generated + */ +public interface ALSLess extends ALSTerm +{ + /** + * Returns the value of the 'Left Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Left Operand' containment reference. + * @see #setLeftOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSLess_LeftOperand() + * @model containment="true" + * @generated + */ + ALSTerm getLeftOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLess#getLeftOperand Left Operand}' containment reference. + * + * + * @param value the new value of the 'Left Operand' containment reference. + * @see #getLeftOperand() + * @generated + */ + void setLeftOperand(ALSTerm value); + + /** + * Returns the value of the 'Right Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Right Operand' containment reference. + * @see #setRightOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSLess_RightOperand() + * @model containment="true" + * @generated + */ + ALSTerm getRightOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLess#getRightOperand Right Operand}' containment reference. + * + * + * @param value the new value of the 'Right Operand' containment reference. + * @see #getRightOperand() + * @generated + */ + void setRightOperand(ALSTerm value); + +} // ALSLess diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSMeq.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSMeq.java new file mode 100644 index 00000000..7162da0b --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSMeq.java @@ -0,0 +1,77 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Meq'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMeq#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMeq#getRightOperand Right Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSMeq() + * @model + * @generated + */ +public interface ALSMeq extends ALSTerm +{ + /** + * Returns the value of the 'Left Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Left Operand' containment reference. + * @see #setLeftOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSMeq_LeftOperand() + * @model containment="true" + * @generated + */ + ALSTerm getLeftOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMeq#getLeftOperand Left Operand}' containment reference. + * + * + * @param value the new value of the 'Left Operand' containment reference. + * @see #getLeftOperand() + * @generated + */ + void setLeftOperand(ALSTerm value); + + /** + * Returns the value of the 'Right Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Right Operand' containment reference. + * @see #setRightOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSMeq_RightOperand() + * @model containment="true" + * @generated + */ + ALSTerm getRightOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMeq#getRightOperand Right Operand}' containment reference. + * + * + * @param value the new value of the 'Right Operand' containment reference. + * @see #getRightOperand() + * @generated + */ + void setRightOperand(ALSTerm value); + +} // ALSMeq diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSMinus.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSMinus.java new file mode 100644 index 00000000..ee09df77 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSMinus.java @@ -0,0 +1,77 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Minus'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMinus#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMinus#getRightOperand Right Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSMinus() + * @model + * @generated + */ +public interface ALSMinus extends ALSTerm +{ + /** + * Returns the value of the 'Left Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Left Operand' containment reference. + * @see #setLeftOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSMinus_LeftOperand() + * @model containment="true" + * @generated + */ + ALSTerm getLeftOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMinus#getLeftOperand Left Operand}' containment reference. + * + * + * @param value the new value of the 'Left Operand' containment reference. + * @see #getLeftOperand() + * @generated + */ + void setLeftOperand(ALSTerm value); + + /** + * Returns the value of the 'Right Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Right Operand' containment reference. + * @see #setRightOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSMinus_RightOperand() + * @model containment="true" + * @generated + */ + ALSTerm getRightOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMinus#getRightOperand Right Operand}' containment reference. + * + * + * @param value the new value of the 'Right Operand' containment reference. + * @see #getRightOperand() + * @generated + */ + void setRightOperand(ALSTerm value); + +} // ALSMinus diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSMore.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSMore.java new file mode 100644 index 00000000..6f5e7ad0 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSMore.java @@ -0,0 +1,77 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS More'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMore#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMore#getRightOperand Right Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSMore() + * @model + * @generated + */ +public interface ALSMore extends ALSTerm +{ + /** + * Returns the value of the 'Left Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Left Operand' containment reference. + * @see #setLeftOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSMore_LeftOperand() + * @model containment="true" + * @generated + */ + ALSTerm getLeftOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMore#getLeftOperand Left Operand}' containment reference. + * + * + * @param value the new value of the 'Left Operand' containment reference. + * @see #getLeftOperand() + * @generated + */ + void setLeftOperand(ALSTerm value); + + /** + * Returns the value of the 'Right Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Right Operand' containment reference. + * @see #setRightOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSMore_RightOperand() + * @model containment="true" + * @generated + */ + ALSTerm getRightOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMore#getRightOperand Right Operand}' containment reference. + * + * + * @param value the new value of the 'Right Operand' containment reference. + * @see #getRightOperand() + * @generated + */ + void setRightOperand(ALSTerm value); + +} // ALSMore diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSMultiplicity.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSMultiplicity.java new file mode 100644 index 00000000..16438e7f --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSMultiplicity.java @@ -0,0 +1,337 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'ALS Multiplicity', + * and utility methods for working with them. + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSMultiplicity() + * @model + * @generated + */ +public enum ALSMultiplicity implements Enumerator +{ + /** + * The 'All' literal object. + * + * + * @see #ALL_VALUE + * @generated + * @ordered + */ + ALL(0, "all", "all"), + + /** + * The 'No' literal object. + * + * + * @see #NO_VALUE + * @generated + * @ordered + */ + NO(1, "no", "no"), + + /** + * The 'Some' literal object. + * + * + * @see #SOME_VALUE + * @generated + * @ordered + */ + SOME(2, "some", "some"), + + /** + * The 'Lone' literal object. + * + * + * @see #LONE_VALUE + * @generated + * @ordered + */ + LONE(3, "lone", "lone"), + + /** + * The 'One' literal object. + * + * + * @see #ONE_VALUE + * @generated + * @ordered + */ + ONE(4, "one", "one"), + + /** + * The 'Set' literal object. + * + * + * @see #SET_VALUE + * @generated + * @ordered + */ + SET(5, "set", "set"); + + /** + * The 'All' literal value. + * + *

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

+ * + * @see #ALL + * @model name="all" + * @generated + * @ordered + */ + public static final int ALL_VALUE = 0; + + /** + * The 'No' literal value. + * + *

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

+ * + * @see #NO + * @model name="no" + * @generated + * @ordered + */ + public static final int NO_VALUE = 1; + + /** + * The 'Some' literal value. + * + *

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

+ * + * @see #SOME + * @model name="some" + * @generated + * @ordered + */ + public static final int SOME_VALUE = 2; + + /** + * The 'Lone' literal value. + * + *

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

+ * + * @see #LONE + * @model name="lone" + * @generated + * @ordered + */ + public static final int LONE_VALUE = 3; + + /** + * The 'One' literal value. + * + *

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

+ * + * @see #ONE + * @model name="one" + * @generated + * @ordered + */ + public static final int ONE_VALUE = 4; + + /** + * The 'Set' literal value. + * + *

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

+ * + * @see #SET + * @model name="set" + * @generated + * @ordered + */ + public static final int SET_VALUE = 5; + + /** + * An array of all the 'ALS Multiplicity' enumerators. + * + * + * @generated + */ + private static final ALSMultiplicity[] VALUES_ARRAY = + new ALSMultiplicity[] + { + ALL, + NO, + SOME, + LONE, + ONE, + SET, + }; + + /** + * A public read-only list of all the 'ALS Multiplicity' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'ALS Multiplicity' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static ALSMultiplicity get(String literal) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + ALSMultiplicity result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'ALS Multiplicity' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static ALSMultiplicity getByName(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + ALSMultiplicity result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'ALS Multiplicity' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static ALSMultiplicity get(int value) + { + switch (value) + { + case ALL_VALUE: return ALL; + case NO_VALUE: return NO; + case SOME_VALUE: return SOME; + case LONE_VALUE: return LONE; + case ONE_VALUE: return ONE; + case SET_VALUE: return SET; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private ALSMultiplicity(int value, String name, String literal) + { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + public int getValue() + { + return value; + } + + /** + * + * + * @generated + */ + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + public String getLiteral() + { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() + { + return literal; + } + +} //ALSMultiplicity diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSNone.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSNone.java new file mode 100644 index 00000000..7133576a --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSNone.java @@ -0,0 +1,18 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS None'. + * + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSNone() + * @model + * @generated + */ +public interface ALSNone extends ALSTerm +{ +} // ALSNone diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSNot.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSNot.java new file mode 100644 index 00000000..f2712605 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSNot.java @@ -0,0 +1,50 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Not'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNot#getOperand Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSNot() + * @model + * @generated + */ +public interface ALSNot extends ALSTerm +{ + /** + * 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(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSNot_Operand() + * @model containment="true" + * @generated + */ + ALSTerm getOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNot#getOperand Operand}' containment reference. + * + * + * @param value the new value of the 'Operand' containment reference. + * @see #getOperand() + * @generated + */ + void setOperand(ALSTerm value); + +} // ALSNot diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSNotEquals.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSNotEquals.java new file mode 100644 index 00000000..04a257e4 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSNotEquals.java @@ -0,0 +1,77 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Not Equals'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNotEquals#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNotEquals#getRightOperand Right Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSNotEquals() + * @model + * @generated + */ +public interface ALSNotEquals extends ALSTerm +{ + /** + * Returns the value of the 'Left Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Left Operand' containment reference. + * @see #setLeftOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSNotEquals_LeftOperand() + * @model containment="true" + * @generated + */ + ALSTerm getLeftOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNotEquals#getLeftOperand Left Operand}' containment reference. + * + * + * @param value the new value of the 'Left Operand' containment reference. + * @see #getLeftOperand() + * @generated + */ + void setLeftOperand(ALSTerm value); + + /** + * Returns the value of the 'Right Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Right Operand' containment reference. + * @see #setRightOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSNotEquals_RightOperand() + * @model containment="true" + * @generated + */ + ALSTerm getRightOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNotEquals#getRightOperand Right Operand}' containment reference. + * + * + * @param value the new value of the 'Right Operand' containment reference. + * @see #getRightOperand() + * @generated + */ + void setRightOperand(ALSTerm value); + +} // ALSNotEquals diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSNumberLiteral.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSNumberLiteral.java new file mode 100644 index 00000000..58fff50f --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSNumberLiteral.java @@ -0,0 +1,50 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Number Literal'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumberLiteral#getValue Value}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSNumberLiteral() + * @model + * @generated + */ +public interface ALSNumberLiteral extends ALSTerm +{ + /** + * 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(int) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSNumberLiteral_Value() + * @model + * @generated + */ + int getValue(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumberLiteral#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(int value); + +} // ALSNumberLiteral diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSNumericOperator.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSNumericOperator.java new file mode 100644 index 00000000..1d91d190 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSNumericOperator.java @@ -0,0 +1,310 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'ALS Numeric Operator', + * and utility methods for working with them. + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSNumericOperator() + * @model + * @generated + */ +public enum ALSNumericOperator implements Enumerator +{ + /** + * The 'Plus' literal object. + * + * + * @see #PLUS_VALUE + * @generated + * @ordered + */ + PLUS(0, "plus", "plus"), + + /** + * The 'Sub' literal object. + * + * + * @see #SUB_VALUE + * @generated + * @ordered + */ + SUB(1, "sub", "sub"), + + /** + * The 'Mul' literal object. + * + * + * @see #MUL_VALUE + * @generated + * @ordered + */ + MUL(2, "mul", "mul"), + + /** + * The 'Rem' literal object. + * + * + * @see #REM_VALUE + * @generated + * @ordered + */ + REM(3, "rem", "rem"), + + /** + * The 'Div' literal object. + * + * + * @see #DIV_VALUE + * @generated + * @ordered + */ + DIV(4, "div", "div"); + + /** + * The 'Plus' literal value. + * + *

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

+ * + * @see #PLUS + * @model name="plus" + * @generated + * @ordered + */ + public static final int PLUS_VALUE = 0; + + /** + * The 'Sub' literal value. + * + *

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

+ * + * @see #SUB + * @model name="sub" + * @generated + * @ordered + */ + public static final int SUB_VALUE = 1; + + /** + * The 'Mul' literal value. + * + *

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

+ * + * @see #MUL + * @model name="mul" + * @generated + * @ordered + */ + public static final int MUL_VALUE = 2; + + /** + * The 'Rem' literal value. + * + *

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

+ * + * @see #REM + * @model name="rem" + * @generated + * @ordered + */ + public static final int REM_VALUE = 3; + + /** + * The 'Div' literal value. + * + *

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

+ * + * @see #DIV + * @model name="div" + * @generated + * @ordered + */ + public static final int DIV_VALUE = 4; + + /** + * An array of all the 'ALS Numeric Operator' enumerators. + * + * + * @generated + */ + private static final ALSNumericOperator[] VALUES_ARRAY = + new ALSNumericOperator[] + { + PLUS, + SUB, + MUL, + REM, + DIV, + }; + + /** + * A public read-only list of all the 'ALS Numeric Operator' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'ALS Numeric Operator' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static ALSNumericOperator get(String literal) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + ALSNumericOperator result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'ALS Numeric Operator' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static ALSNumericOperator getByName(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + ALSNumericOperator result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'ALS Numeric Operator' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static ALSNumericOperator get(int value) + { + switch (value) + { + case PLUS_VALUE: return PLUS; + case SUB_VALUE: return SUB; + case MUL_VALUE: return MUL; + case REM_VALUE: return REM; + case DIV_VALUE: return DIV; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private ALSNumericOperator(int value, String name, String literal) + { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + public int getValue() + { + return value; + } + + /** + * + * + * @generated + */ + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + public String getLiteral() + { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() + { + return literal; + } + +} //ALSNumericOperator diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSOr.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSOr.java new file mode 100644 index 00000000..08eaf50f --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSOr.java @@ -0,0 +1,77 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Or'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOr#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOr#getRightOperand Right Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSOr() + * @model + * @generated + */ +public interface ALSOr extends ALSTerm +{ + /** + * Returns the value of the 'Left Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Left Operand' containment reference. + * @see #setLeftOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSOr_LeftOperand() + * @model containment="true" + * @generated + */ + ALSTerm getLeftOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOr#getLeftOperand Left Operand}' containment reference. + * + * + * @param value the new value of the 'Left Operand' containment reference. + * @see #getLeftOperand() + * @generated + */ + void setLeftOperand(ALSTerm value); + + /** + * Returns the value of the 'Right Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Right Operand' containment reference. + * @see #setRightOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSOr_RightOperand() + * @model containment="true" + * @generated + */ + ALSTerm getRightOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOr#getRightOperand Right Operand}' containment reference. + * + * + * @param value the new value of the 'Right Operand' containment reference. + * @see #getRightOperand() + * @generated + */ + void setRightOperand(ALSTerm value); + +} // ALSOr diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSOverride.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSOverride.java new file mode 100644 index 00000000..7d627e7e --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSOverride.java @@ -0,0 +1,77 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Override'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOverride#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOverride#getRightOperand Right Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSOverride() + * @model + * @generated + */ +public interface ALSOverride extends ALSTerm +{ + /** + * Returns the value of the 'Left Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Left Operand' containment reference. + * @see #setLeftOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSOverride_LeftOperand() + * @model containment="true" + * @generated + */ + ALSTerm getLeftOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOverride#getLeftOperand Left Operand}' containment reference. + * + * + * @param value the new value of the 'Left Operand' containment reference. + * @see #getLeftOperand() + * @generated + */ + void setLeftOperand(ALSTerm value); + + /** + * Returns the value of the 'Right Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Right Operand' containment reference. + * @see #setRightOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSOverride_RightOperand() + * @model containment="true" + * @generated + */ + ALSTerm getRightOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOverride#getRightOperand Right Operand}' containment reference. + * + * + * @param value the new value of the 'Right Operand' containment reference. + * @see #getRightOperand() + * @generated + */ + void setRightOperand(ALSTerm value); + +} // ALSOverride diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSPlus.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSPlus.java new file mode 100644 index 00000000..f923d2ea --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSPlus.java @@ -0,0 +1,77 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Plus'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSPlus#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSPlus#getRightOperand Right Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSPlus() + * @model + * @generated + */ +public interface ALSPlus extends ALSTerm +{ + /** + * Returns the value of the 'Left Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Left Operand' containment reference. + * @see #setLeftOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSPlus_LeftOperand() + * @model containment="true" + * @generated + */ + ALSTerm getLeftOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSPlus#getLeftOperand Left Operand}' containment reference. + * + * + * @param value the new value of the 'Left Operand' containment reference. + * @see #getLeftOperand() + * @generated + */ + void setLeftOperand(ALSTerm value); + + /** + * Returns the value of the 'Right Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Right Operand' containment reference. + * @see #setRightOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSPlus_RightOperand() + * @model containment="true" + * @generated + */ + ALSTerm getRightOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSPlus#getRightOperand Right Operand}' containment reference. + * + * + * @param value the new value of the 'Right Operand' containment reference. + * @see #getRightOperand() + * @generated + */ + void setRightOperand(ALSTerm value); + +} // ALSPlus diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSQuantifiedEx.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSQuantifiedEx.java new file mode 100644 index 00000000..077c8ad1 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSQuantifiedEx.java @@ -0,0 +1,125 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'ALS Quantified Ex'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx#getType Type}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx#isDisj Disj}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx#getVariables Variables}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx#getExpression Expression}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSQuantifiedEx() + * @model + * @generated + */ +public interface ALSQuantifiedEx extends ALSTerm +{ + /** + * Returns the value of the 'Type' attribute. + * The literals are from the enumeration {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity}. + * + *

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

+ * + * @return the value of the 'Type' attribute. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity + * @see #setType(ALSMultiplicity) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSQuantifiedEx_Type() + * @model + * @generated + */ + ALSMultiplicity getType(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx#getType Type}' attribute. + * + * + * @param value the new value of the 'Type' attribute. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity + * @see #getType() + * @generated + */ + void setType(ALSMultiplicity value); + + /** + * Returns the value of the 'Disj' attribute. + * + *

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

+ * + * @return the value of the 'Disj' attribute. + * @see #setDisj(boolean) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSQuantifiedEx_Disj() + * @model + * @generated + */ + boolean isDisj(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx#isDisj Disj}' attribute. + * + * + * @param value the new value of the 'Disj' attribute. + * @see #isDisj() + * @generated + */ + void setDisj(boolean value); + + /** + * Returns the value of the 'Variables' containment reference list. + * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSVariableDeclaration}. + * + *

+ * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSQuantifiedEx_Variables() + * @model containment="true" + * @generated + */ + EList getVariables(); + + /** + * Returns the value of the 'Expression' containment reference. + * + *

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

+ * + * @return the value of the 'Expression' containment reference. + * @see #setExpression(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSQuantifiedEx_Expression() + * @model containment="true" + * @generated + */ + ALSTerm getExpression(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx#getExpression Expression}' containment reference. + * + * + * @param value the new value of the 'Expression' containment reference. + * @see #getExpression() + * @generated + */ + void setExpression(ALSTerm value); + +} // ALSQuantifiedEx diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSRangeRestrictionLeft.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSRangeRestrictionLeft.java new file mode 100644 index 00000000..e81491df --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSRangeRestrictionLeft.java @@ -0,0 +1,77 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Range Restriction Left'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionLeft#getFilter Filter}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionLeft#getRelation Relation}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSRangeRestrictionLeft() + * @model + * @generated + */ +public interface ALSRangeRestrictionLeft extends ALSTerm +{ + /** + * Returns the value of the 'Filter' containment reference. + * + *

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

+ * + * @return the value of the 'Filter' containment reference. + * @see #setFilter(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSRangeRestrictionLeft_Filter() + * @model containment="true" + * @generated + */ + ALSTerm getFilter(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionLeft#getFilter Filter}' containment reference. + * + * + * @param value the new value of the 'Filter' containment reference. + * @see #getFilter() + * @generated + */ + void setFilter(ALSTerm value); + + /** + * Returns the value of the 'Relation' containment reference. + * + *

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

+ * + * @return the value of the 'Relation' containment reference. + * @see #setRelation(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSRangeRestrictionLeft_Relation() + * @model containment="true" + * @generated + */ + ALSTerm getRelation(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionLeft#getRelation Relation}' containment reference. + * + * + * @param value the new value of the 'Relation' containment reference. + * @see #getRelation() + * @generated + */ + void setRelation(ALSTerm value); + +} // ALSRangeRestrictionLeft diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSRangeRestrictionRight.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSRangeRestrictionRight.java new file mode 100644 index 00000000..6f9d55b3 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSRangeRestrictionRight.java @@ -0,0 +1,77 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Range Restriction Right'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionRight#getRelation Relation}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionRight#getFilter Filter}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSRangeRestrictionRight() + * @model + * @generated + */ +public interface ALSRangeRestrictionRight extends ALSTerm +{ + /** + * Returns the value of the 'Relation' containment reference. + * + *

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

+ * + * @return the value of the 'Relation' containment reference. + * @see #setRelation(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSRangeRestrictionRight_Relation() + * @model containment="true" + * @generated + */ + ALSTerm getRelation(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionRight#getRelation Relation}' containment reference. + * + * + * @param value the new value of the 'Relation' containment reference. + * @see #getRelation() + * @generated + */ + void setRelation(ALSTerm value); + + /** + * Returns the value of the 'Filter' containment reference. + * + *

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

+ * + * @return the value of the 'Filter' containment reference. + * @see #setFilter(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSRangeRestrictionRight_Filter() + * @model containment="true" + * @generated + */ + ALSTerm getFilter(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionRight#getFilter Filter}' containment reference. + * + * + * @param value the new value of the 'Filter' containment reference. + * @see #getFilter() + * @generated + */ + void setFilter(ALSTerm value); + +} // ALSRangeRestrictionRight diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSReference.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSReference.java new file mode 100644 index 00000000..828edf63 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSReference.java @@ -0,0 +1,50 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Reference'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReference#getReferred Referred}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSReference() + * @model + * @generated + */ +public interface ALSReference extends ALSTerm +{ + /** + * Returns the value of the 'Referred' reference. + * + *

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

+ * + * @return the value of the 'Referred' reference. + * @see #setReferred(ALSRelationDeclaration) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSReference_Referred() + * @model + * @generated + */ + ALSRelationDeclaration getReferred(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReference#getReferred Referred}' reference. + * + * + * @param value the new value of the 'Referred' reference. + * @see #getReferred() + * @generated + */ + void setReferred(ALSRelationDeclaration value); + +} // ALSReference diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSReflectiveTransitiveClosure.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSReflectiveTransitiveClosure.java new file mode 100644 index 00000000..0809a0e3 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSReflectiveTransitiveClosure.java @@ -0,0 +1,50 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Reflective Transitive Closure'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReflectiveTransitiveClosure#getOperand Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSReflectiveTransitiveClosure() + * @model + * @generated + */ +public interface ALSReflectiveTransitiveClosure extends ALSTerm +{ + /** + * 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(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSReflectiveTransitiveClosure_Operand() + * @model containment="true" + * @generated + */ + ALSTerm getOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReflectiveTransitiveClosure#getOperand Operand}' containment reference. + * + * + * @param value the new value of the 'Operand' containment reference. + * @see #getOperand() + * @generated + */ + void setOperand(ALSTerm value); + +} // ALSReflectiveTransitiveClosure diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSRelationDeclaration.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSRelationDeclaration.java new file mode 100644 index 00000000..08d0bcf1 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSRelationDeclaration.java @@ -0,0 +1,51 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'ALS Relation Declaration'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDeclaration#getName Name}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSRelationDeclaration() + * @model + * @generated + */ +public interface ALSRelationDeclaration 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSRelationDeclaration_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDeclaration#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + +} // ALSRelationDeclaration diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSRelationDefinition.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSRelationDefinition.java new file mode 100644 index 00000000..46ab5096 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSRelationDefinition.java @@ -0,0 +1,18 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Relation Definition'. + * + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSRelationDefinition() + * @model + * @generated + */ +public interface ALSRelationDefinition extends ALSDefinition +{ +} // ALSRelationDefinition diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSRunCommand.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSRunCommand.java new file mode 100644 index 00000000..e06c8b94 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSRunCommand.java @@ -0,0 +1,43 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'ALS Run Command'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRunCommand#getTypeScopes Type Scopes}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSRunCommand() + * @model + * @generated + */ +public interface ALSRunCommand extends EObject +{ + /** + * Returns the value of the 'Type Scopes' containment reference list. + * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTypeScope}. + * + *

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

+ * + * @return the value of the 'Type Scopes' containment reference list. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSRunCommand_TypeScopes() + * @model containment="true" + * @generated + */ + EList getTypeScopes(); + +} // ALSRunCommand diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSSigScope.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSSigScope.java new file mode 100644 index 00000000..851ebfb9 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSSigScope.java @@ -0,0 +1,77 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Sig Scope'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSigScope#isExactly Exactly}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSigScope#getType Type}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSSigScope() + * @model + * @generated + */ +public interface ALSSigScope extends ALSTypeScope +{ + /** + * Returns the value of the 'Exactly' attribute. + * + *

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

+ * + * @return the value of the 'Exactly' attribute. + * @see #setExactly(boolean) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSSigScope_Exactly() + * @model + * @generated + */ + boolean isExactly(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSigScope#isExactly Exactly}' attribute. + * + * + * @param value the new value of the 'Exactly' attribute. + * @see #isExactly() + * @generated + */ + void setExactly(boolean value); + + /** + * Returns the value of the 'Type' reference. + * + *

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

+ * + * @return the value of the 'Type' reference. + * @see #setType(ALSSignatureDeclaration) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSSigScope_Type() + * @model + * @generated + */ + ALSSignatureDeclaration getType(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSigScope#getType Type}' reference. + * + * + * @param value the new value of the 'Type' reference. + * @see #getType() + * @generated + */ + void setType(ALSSignatureDeclaration value); + +} // ALSSigScope diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSSignatureBody.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSSignatureBody.java new file mode 100644 index 00000000..8746f88a --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSSignatureBody.java @@ -0,0 +1,161 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'ALS Signature Body'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#getMultiplicity Multiplicity}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#isAbstract Abstract}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#getDeclarations Declarations}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#getSupertype Supertype}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#getSuperset Superset}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#getFields Fields}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSSignatureBody() + * @model + * @generated + */ +public interface ALSSignatureBody extends EObject +{ + /** + * Returns the value of the 'Multiplicity' attribute. + * The literals are from the enumeration {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity}. + * + *

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

+ * + * @return the value of the 'Multiplicity' attribute. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity + * @see #setMultiplicity(ALSMultiplicity) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSSignatureBody_Multiplicity() + * @model + * @generated + */ + ALSMultiplicity getMultiplicity(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#getMultiplicity Multiplicity}' attribute. + * + * + * @param value the new value of the 'Multiplicity' attribute. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity + * @see #getMultiplicity() + * @generated + */ + void setMultiplicity(ALSMultiplicity value); + + /** + * Returns the value of the 'Abstract' attribute. + * + *

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

+ * + * @return the value of the 'Abstract' attribute. + * @see #setAbstract(boolean) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSSignatureBody_Abstract() + * @model + * @generated + */ + boolean isAbstract(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#isAbstract Abstract}' attribute. + * + * + * @param value the new value of the 'Abstract' attribute. + * @see #isAbstract() + * @generated + */ + void setAbstract(boolean value); + + /** + * Returns the value of the 'Declarations' containment reference list. + * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureDeclaration}. + * + *

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

+ * + * @return the value of the 'Declarations' containment reference list. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSSignatureBody_Declarations() + * @model containment="true" + * @generated + */ + EList getDeclarations(); + + /** + * Returns the value of the 'Supertype' reference. + * + *

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

+ * + * @return the value of the 'Supertype' reference. + * @see #setSupertype(ALSSignatureDeclaration) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSSignatureBody_Supertype() + * @model + * @generated + */ + ALSSignatureDeclaration getSupertype(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#getSupertype Supertype}' reference. + * + * + * @param value the new value of the 'Supertype' reference. + * @see #getSupertype() + * @generated + */ + void setSupertype(ALSSignatureDeclaration value); + + /** + * Returns the value of the 'Superset' reference list. + * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureDeclaration}. + * + *

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

+ * + * @return the value of the 'Superset' reference list. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSSignatureBody_Superset() + * @model + * @generated + */ + EList getSuperset(); + + /** + * Returns the value of the 'Fields' containment reference list. + * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFieldDeclaration}. + * + *

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

+ * + * @return the value of the 'Fields' containment reference list. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSSignatureBody_Fields() + * @model containment="true" + * @generated + */ + EList getFields(); + +} // ALSSignatureBody diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSSignatureDeclaration.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSSignatureDeclaration.java new file mode 100644 index 00000000..967c3fb8 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSSignatureDeclaration.java @@ -0,0 +1,18 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Signature Declaration'. + * + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSSignatureDeclaration() + * @model + * @generated + */ +public interface ALSSignatureDeclaration extends ALSTypeDeclaration +{ +} // ALSSignatureDeclaration diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSString.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSString.java new file mode 100644 index 00000000..ccab0ded --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSString.java @@ -0,0 +1,18 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS String'. + * + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSString() + * @model + * @generated + */ +public interface ALSString extends ALSTerm +{ +} // ALSString diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSStringLiteral.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSStringLiteral.java new file mode 100644 index 00000000..80cda5be --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSStringLiteral.java @@ -0,0 +1,50 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS String Literal'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral#getValue Value}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSStringLiteral() + * @model + * @generated + */ +public interface ALSStringLiteral extends ALSTerm +{ + /** + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSStringLiteral_Value() + * @model + * @generated + */ + String getValue(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(String value); + +} // ALSStringLiteral diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSStringScope.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSStringScope.java new file mode 100644 index 00000000..acf95ddc --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSStringScope.java @@ -0,0 +1,18 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS String Scope'. + * + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSStringScope() + * @model + * @generated + */ +public interface ALSStringScope extends ALSTypeScope +{ +} // ALSStringScope diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSSubset.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSSubset.java new file mode 100644 index 00000000..739c0d8c --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSSubset.java @@ -0,0 +1,77 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Subset'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSubset#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSubset#getRightOperand Right Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSSubset() + * @model + * @generated + */ +public interface ALSSubset extends ALSTerm +{ + /** + * Returns the value of the 'Left Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Left Operand' containment reference. + * @see #setLeftOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSSubset_LeftOperand() + * @model containment="true" + * @generated + */ + ALSTerm getLeftOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSubset#getLeftOperand Left Operand}' containment reference. + * + * + * @param value the new value of the 'Left Operand' containment reference. + * @see #getLeftOperand() + * @generated + */ + void setLeftOperand(ALSTerm value); + + /** + * Returns the value of the 'Right Operand' containment reference. + * + *

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

+ * + * @return the value of the 'Right Operand' containment reference. + * @see #setRightOperand(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSSubset_RightOperand() + * @model containment="true" + * @generated + */ + ALSTerm getRightOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSubset#getRightOperand Right Operand}' containment reference. + * + * + * @param value the new value of the 'Right Operand' containment reference. + * @see #getRightOperand() + * @generated + */ + void setRightOperand(ALSTerm value); + +} // ALSSubset diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSSum.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSSum.java new file mode 100644 index 00000000..ab8ae493 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSSum.java @@ -0,0 +1,68 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'ALS Sum'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSum#getVariables Variables}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSum#getExpression Expression}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSSum() + * @model + * @generated + */ +public interface ALSSum extends ALSTerm +{ + /** + * Returns the value of the 'Variables' containment reference list. + * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSVariableDeclaration}. + * + *

+ * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSSum_Variables() + * @model containment="true" + * @generated + */ + EList getVariables(); + + /** + * Returns the value of the 'Expression' containment reference. + * + *

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

+ * + * @return the value of the 'Expression' containment reference. + * @see #setExpression(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSSum_Expression() + * @model containment="true" + * @generated + */ + ALSTerm getExpression(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSum#getExpression Expression}' containment reference. + * + * + * @param value the new value of the 'Expression' containment reference. + * @see #getExpression() + * @generated + */ + void setExpression(ALSTerm value); + +} // ALSSum diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSTerm.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSTerm.java new file mode 100644 index 00000000..4d1dc644 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSTerm.java @@ -0,0 +1,19 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'ALS Term'. + * + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSTerm() + * @model + * @generated + */ +public interface ALSTerm extends EObject +{ +} // ALSTerm diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSTypeDeclaration.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSTypeDeclaration.java new file mode 100644 index 00000000..d5c15717 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSTypeDeclaration.java @@ -0,0 +1,18 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Type Declaration'. + * + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSTypeDeclaration() + * @model + * @generated + */ +public interface ALSTypeDeclaration extends ALSRelationDeclaration +{ +} // ALSTypeDeclaration diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSTypeScope.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSTypeScope.java new file mode 100644 index 00000000..a73a6d39 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSTypeScope.java @@ -0,0 +1,51 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'ALS Type Scope'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTypeScope#getNumber Number}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSTypeScope() + * @model + * @generated + */ +public interface ALSTypeScope extends EObject +{ + /** + * Returns the value of the 'Number' attribute. + * + *

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

+ * + * @return the value of the 'Number' attribute. + * @see #setNumber(int) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSTypeScope_Number() + * @model + * @generated + */ + int getNumber(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTypeScope#getNumber Number}' attribute. + * + * + * @param value the new value of the 'Number' attribute. + * @see #getNumber() + * @generated + */ + void setNumber(int value); + +} // ALSTypeScope diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSUnaryMinus.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSUnaryMinus.java new file mode 100644 index 00000000..0d485870 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSUnaryMinus.java @@ -0,0 +1,50 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Unary Minus'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSUnaryMinus#getOperand Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSUnaryMinus() + * @model + * @generated + */ +public interface ALSUnaryMinus extends ALSTerm +{ + /** + * 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(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSUnaryMinus_Operand() + * @model containment="true" + * @generated + */ + ALSTerm getOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSUnaryMinus#getOperand Operand}' containment reference. + * + * + * @param value the new value of the 'Operand' containment reference. + * @see #getOperand() + * @generated + */ + void setOperand(ALSTerm value); + +} // ALSUnaryMinus diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSUniv.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSUniv.java new file mode 100644 index 00000000..1e39f628 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSUniv.java @@ -0,0 +1,18 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Univ'. + * + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSUniv() + * @model + * @generated + */ +public interface ALSUniv extends ALSTerm +{ +} // ALSUniv diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSVariableDeclaration.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSVariableDeclaration.java new file mode 100644 index 00000000..1c74e0a7 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/ALSVariableDeclaration.java @@ -0,0 +1,50 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'ALS Variable Declaration'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSVariableDeclaration#getRange Range}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSVariableDeclaration() + * @model + * @generated + */ +public interface ALSVariableDeclaration extends ALSRelationDeclaration +{ + /** + * Returns the value of the 'Range' containment reference. + * + *

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

+ * + * @return the value of the 'Range' containment reference. + * @see #setRange(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getALSVariableDeclaration_Range() + * @model containment="true" + * @generated + */ + ALSTerm getRange(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSVariableDeclaration#getRange Range}' containment reference. + * + * + * @param value the new value of the 'Range' containment reference. + * @see #getRange() + * @generated + */ + void setRange(ALSTerm value); + +} // ALSVariableDeclaration diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlSTransitiveClosure.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlSTransitiveClosure.java new file mode 100644 index 00000000..91b089f7 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlSTransitiveClosure.java @@ -0,0 +1,50 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + + +/** + * + * A representation of the model object 'Al STransitive Closure'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.AlSTransitiveClosure#getOperand Operand}
  • + *
+ * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getAlSTransitiveClosure() + * @model + * @generated + */ +public interface AlSTransitiveClosure extends ALSTerm +{ + /** + * 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(ALSTerm) + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#getAlSTransitiveClosure_Operand() + * @model containment="true" + * @generated + */ + ALSTerm getOperand(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.AlSTransitiveClosure#getOperand Operand}' containment reference. + * + * + * @param value the new value of the 'Operand' containment reference. + * @see #getOperand() + * @generated + */ + void setOperand(ALSTerm value); + +} // AlSTransitiveClosure diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlloyLanguageFactory.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlloyLanguageFactory.java new file mode 100644 index 00000000..e2d89ff1 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlloyLanguageFactory.java @@ -0,0 +1,529 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + +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 hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage + * @generated + */ +public interface AlloyLanguageFactory extends EFactory +{ + /** + * The singleton instance of the factory. + * + * + * @generated + */ + AlloyLanguageFactory eINSTANCE = hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguageFactoryImpl.init(); + + /** + * Returns a new object of class 'ALS Document'. + * + * + * @return a new object of class 'ALS Document'. + * @generated + */ + ALSDocument createALSDocument(); + + /** + * Returns a new object of class 'ALS Relation Declaration'. + * + * + * @return a new object of class 'ALS Relation Declaration'. + * @generated + */ + ALSRelationDeclaration createALSRelationDeclaration(); + + /** + * Returns a new object of class 'ALS Type Declaration'. + * + * + * @return a new object of class 'ALS Type Declaration'. + * @generated + */ + ALSTypeDeclaration createALSTypeDeclaration(); + + /** + * Returns a new object of class 'ALS Enum Declaration'. + * + * + * @return a new object of class 'ALS Enum Declaration'. + * @generated + */ + ALSEnumDeclaration createALSEnumDeclaration(); + + /** + * Returns a new object of class 'ALS Enum Literal'. + * + * + * @return a new object of class 'ALS Enum Literal'. + * @generated + */ + ALSEnumLiteral createALSEnumLiteral(); + + /** + * Returns a new object of class 'ALS Signature Declaration'. + * + * + * @return a new object of class 'ALS Signature Declaration'. + * @generated + */ + ALSSignatureDeclaration createALSSignatureDeclaration(); + + /** + * Returns a new object of class 'ALS Signature Body'. + * + * + * @return a new object of class 'ALS Signature Body'. + * @generated + */ + ALSSignatureBody createALSSignatureBody(); + + /** + * Returns a new object of class 'ALS Field Declaration'. + * + * + * @return a new object of class 'ALS Field Declaration'. + * @generated + */ + ALSFieldDeclaration createALSFieldDeclaration(); + + /** + * Returns a new object of class 'ALS Definition'. + * + * + * @return a new object of class 'ALS Definition'. + * @generated + */ + ALSDefinition createALSDefinition(); + + /** + * Returns a new object of class 'ALS Function Definition'. + * + * + * @return a new object of class 'ALS Function Definition'. + * @generated + */ + ALSFunctionDefinition createALSFunctionDefinition(); + + /** + * Returns a new object of class 'ALS Relation Definition'. + * + * + * @return a new object of class 'ALS Relation Definition'. + * @generated + */ + ALSRelationDefinition createALSRelationDefinition(); + + /** + * Returns a new object of class 'ALS Fact Declaration'. + * + * + * @return a new object of class 'ALS Fact Declaration'. + * @generated + */ + ALSFactDeclaration createALSFactDeclaration(); + + /** + * Returns a new object of class 'ALS Term'. + * + * + * @return a new object of class 'ALS Term'. + * @generated + */ + ALSTerm createALSTerm(); + + /** + * Returns a new object of class 'ALS Variable Declaration'. + * + * + * @return a new object of class 'ALS Variable Declaration'. + * @generated + */ + ALSVariableDeclaration createALSVariableDeclaration(); + + /** + * Returns a new object of class 'ALS Run Command'. + * + * + * @return a new object of class 'ALS Run Command'. + * @generated + */ + ALSRunCommand createALSRunCommand(); + + /** + * Returns a new object of class 'ALS Type Scope'. + * + * + * @return a new object of class 'ALS Type Scope'. + * @generated + */ + ALSTypeScope createALSTypeScope(); + + /** + * Returns a new object of class 'ALS Sig Scope'. + * + * + * @return a new object of class 'ALS Sig Scope'. + * @generated + */ + ALSSigScope createALSSigScope(); + + /** + * Returns a new object of class 'ALS Int Scope'. + * + * + * @return a new object of class 'ALS Int Scope'. + * @generated + */ + ALSIntScope createALSIntScope(); + + /** + * Returns a new object of class 'ALS String Scope'. + * + * + * @return a new object of class 'ALS String Scope'. + * @generated + */ + ALSStringScope createALSStringScope(); + + /** + * Returns a new object of class 'ALS Quantified Ex'. + * + * + * @return a new object of class 'ALS Quantified Ex'. + * @generated + */ + ALSQuantifiedEx createALSQuantifiedEx(); + + /** + * Returns a new object of class 'ALS Or'. + * + * + * @return a new object of class 'ALS Or'. + * @generated + */ + ALSOr createALSOr(); + + /** + * Returns a new object of class 'ALS Iff'. + * + * + * @return a new object of class 'ALS Iff'. + * @generated + */ + ALSIff createALSIff(); + + /** + * Returns a new object of class 'ALS Impl'. + * + * + * @return a new object of class 'ALS Impl'. + * @generated + */ + ALSImpl createALSImpl(); + + /** + * Returns a new object of class 'ALS And'. + * + * + * @return a new object of class 'ALS And'. + * @generated + */ + ALSAnd createALSAnd(); + + /** + * Returns a new object of class 'ALS Equals'. + * + * + * @return a new object of class 'ALS Equals'. + * @generated + */ + ALSEquals createALSEquals(); + + /** + * Returns a new object of class 'ALS Not Equals'. + * + * + * @return a new object of class 'ALS Not Equals'. + * @generated + */ + ALSNotEquals createALSNotEquals(); + + /** + * Returns a new object of class 'ALS Subset'. + * + * + * @return a new object of class 'ALS Subset'. + * @generated + */ + ALSSubset createALSSubset(); + + /** + * Returns a new object of class 'ALS Less'. + * + * + * @return a new object of class 'ALS Less'. + * @generated + */ + ALSLess createALSLess(); + + /** + * Returns a new object of class 'ALS Leq'. + * + * + * @return a new object of class 'ALS Leq'. + * @generated + */ + ALSLeq createALSLeq(); + + /** + * Returns a new object of class 'ALS More'. + * + * + * @return a new object of class 'ALS More'. + * @generated + */ + ALSMore createALSMore(); + + /** + * Returns a new object of class 'ALS Meq'. + * + * + * @return a new object of class 'ALS Meq'. + * @generated + */ + ALSMeq createALSMeq(); + + /** + * Returns a new object of class 'ALS Override'. + * + * + * @return a new object of class 'ALS Override'. + * @generated + */ + ALSOverride createALSOverride(); + + /** + * Returns a new object of class 'ALS Range Restriction Right'. + * + * + * @return a new object of class 'ALS Range Restriction Right'. + * @generated + */ + ALSRangeRestrictionRight createALSRangeRestrictionRight(); + + /** + * Returns a new object of class 'ALS Range Restriction Left'. + * + * + * @return a new object of class 'ALS Range Restriction Left'. + * @generated + */ + ALSRangeRestrictionLeft createALSRangeRestrictionLeft(); + + /** + * Returns a new object of class 'ALS Join'. + * + * + * @return a new object of class 'ALS Join'. + * @generated + */ + ALSJoin createALSJoin(); + + /** + * Returns a new object of class 'ALS Minus'. + * + * + * @return a new object of class 'ALS Minus'. + * @generated + */ + ALSMinus createALSMinus(); + + /** + * Returns a new object of class 'ALS Plus'. + * + * + * @return a new object of class 'ALS Plus'. + * @generated + */ + ALSPlus createALSPlus(); + + /** + * Returns a new object of class 'ALS Intersection'. + * + * + * @return a new object of class 'ALS Intersection'. + * @generated + */ + ALSIntersection createALSIntersection(); + + /** + * Returns a new object of class 'ALS Direct Product'. + * + * + * @return a new object of class 'ALS Direct Product'. + * @generated + */ + ALSDirectProduct createALSDirectProduct(); + + /** + * Returns a new object of class 'ALS Not'. + * + * + * @return a new object of class 'ALS Not'. + * @generated + */ + ALSNot createALSNot(); + + /** + * Returns a new object of class 'ALS Inverse Relation'. + * + * + * @return a new object of class 'ALS Inverse Relation'. + * @generated + */ + ALSInverseRelation createALSInverseRelation(); + + /** + * Returns a new object of class 'Al STransitive Closure'. + * + * + * @return a new object of class 'Al STransitive Closure'. + * @generated + */ + AlSTransitiveClosure createAlSTransitiveClosure(); + + /** + * Returns a new object of class 'ALS Reflective Transitive Closure'. + * + * + * @return a new object of class 'ALS Reflective Transitive Closure'. + * @generated + */ + ALSReflectiveTransitiveClosure createALSReflectiveTransitiveClosure(); + + /** + * Returns a new object of class 'ALS Cardinality'. + * + * + * @return a new object of class 'ALS Cardinality'. + * @generated + */ + ALSCardinality createALSCardinality(); + + /** + * Returns a new object of class 'ALS Unary Minus'. + * + * + * @return a new object of class 'ALS Unary Minus'. + * @generated + */ + ALSUnaryMinus createALSUnaryMinus(); + + /** + * Returns a new object of class 'ALS Sum'. + * + * + * @return a new object of class 'ALS Sum'. + * @generated + */ + ALSSum createALSSum(); + + /** + * Returns a new object of class 'ALS Function Call'. + * + * + * @return a new object of class 'ALS Function Call'. + * @generated + */ + ALSFunctionCall createALSFunctionCall(); + + /** + * Returns a new object of class 'ALS None'. + * + * + * @return a new object of class 'ALS None'. + * @generated + */ + ALSNone createALSNone(); + + /** + * Returns a new object of class 'ALS Iden'. + * + * + * @return a new object of class 'ALS Iden'. + * @generated + */ + ALSIden createALSIden(); + + /** + * Returns a new object of class 'ALS Univ'. + * + * + * @return a new object of class 'ALS Univ'. + * @generated + */ + ALSUniv createALSUniv(); + + /** + * Returns a new object of class 'ALS Int'. + * + * + * @return a new object of class 'ALS Int'. + * @generated + */ + ALSInt createALSInt(); + + /** + * Returns a new object of class 'ALS String'. + * + * + * @return a new object of class 'ALS String'. + * @generated + */ + ALSString createALSString(); + + /** + * Returns a new object of class 'ALS Reference'. + * + * + * @return a new object of class 'ALS Reference'. + * @generated + */ + ALSReference createALSReference(); + + /** + * Returns a new object of class 'ALS Number Literal'. + * + * + * @return a new object of class 'ALS Number Literal'. + * @generated + */ + ALSNumberLiteral createALSNumberLiteral(); + + /** + * Returns a new object of class 'ALS String Literal'. + * + * + * @return a new object of class 'ALS String Literal'. + * @generated + */ + ALSStringLiteral createALSStringLiteral(); + + /** + * Returns the package supported by this factory. + * + * + * @return the package supported by this factory. + * @generated + */ + AlloyLanguagePackage getAlloyLanguagePackage(); + +} //AlloyLanguageFactory diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlloyLanguagePackage.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlloyLanguagePackage.java new file mode 100644 index 00000000..46bfcc21 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/AlloyLanguagePackage.java @@ -0,0 +1,4834 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; +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 hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguageFactory + * @model kind="package" + * @generated + */ +public interface AlloyLanguagePackage extends EPackage +{ + /** + * The package name. + * + * + * @generated + */ + String eNAME = "alloyLanguage"; + + /** + * The package namespace URI. + * + * + * @generated + */ + String eNS_URI = "http://www.bme.hu/mit/inf/dslreasoner/AlloyLanguage"; + + /** + * The package namespace name. + * + * + * @generated + */ + String eNS_PREFIX = "alloyLanguage"; + + /** + * The singleton instance of the package. + * + * + * @generated + */ + AlloyLanguagePackage eINSTANCE = hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl.init(); + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDocumentImpl ALS Document}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDocumentImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSDocument() + * @generated + */ + int ALS_DOCUMENT = 0; + + /** + * The feature id for the 'Enum Declarations' containment reference list. + * + * + * @generated + * @ordered + */ + int ALS_DOCUMENT__ENUM_DECLARATIONS = 0; + + /** + * The feature id for the 'Signature Bodies' containment reference list. + * + * + * @generated + * @ordered + */ + int ALS_DOCUMENT__SIGNATURE_BODIES = 1; + + /** + * The feature id for the 'Function Definitions' containment reference list. + * + * + * @generated + * @ordered + */ + int ALS_DOCUMENT__FUNCTION_DEFINITIONS = 2; + + /** + * The feature id for the 'Relation Definitions' containment reference list. + * + * + * @generated + * @ordered + */ + int ALS_DOCUMENT__RELATION_DEFINITIONS = 3; + + /** + * The feature id for the 'Fact Declarations' containment reference list. + * + * + * @generated + * @ordered + */ + int ALS_DOCUMENT__FACT_DECLARATIONS = 4; + + /** + * The feature id for the 'Run Command' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_DOCUMENT__RUN_COMMAND = 5; + + /** + * The number of structural features of the 'ALS Document' class. + * + * + * @generated + * @ordered + */ + int ALS_DOCUMENT_FEATURE_COUNT = 6; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRelationDeclarationImpl ALS Relation Declaration}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRelationDeclarationImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSRelationDeclaration() + * @generated + */ + int ALS_RELATION_DECLARATION = 1; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ALS_RELATION_DECLARATION__NAME = 0; + + /** + * The number of structural features of the 'ALS Relation Declaration' class. + * + * + * @generated + * @ordered + */ + int ALS_RELATION_DECLARATION_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSTypeDeclarationImpl ALS Type Declaration}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSTypeDeclarationImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSTypeDeclaration() + * @generated + */ + int ALS_TYPE_DECLARATION = 2; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ALS_TYPE_DECLARATION__NAME = ALS_RELATION_DECLARATION__NAME; + + /** + * The number of structural features of the 'ALS Type Declaration' class. + * + * + * @generated + * @ordered + */ + int ALS_TYPE_DECLARATION_FEATURE_COUNT = ALS_RELATION_DECLARATION_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSEnumDeclarationImpl ALS Enum Declaration}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSEnumDeclarationImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSEnumDeclaration() + * @generated + */ + int ALS_ENUM_DECLARATION = 3; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ALS_ENUM_DECLARATION__NAME = ALS_TYPE_DECLARATION__NAME; + + /** + * The feature id for the 'Literal' containment reference list. + * + * + * @generated + * @ordered + */ + int ALS_ENUM_DECLARATION__LITERAL = ALS_TYPE_DECLARATION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'ALS Enum Declaration' class. + * + * + * @generated + * @ordered + */ + int ALS_ENUM_DECLARATION_FEATURE_COUNT = ALS_TYPE_DECLARATION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSEnumLiteralImpl ALS Enum Literal}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSEnumLiteralImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSEnumLiteral() + * @generated + */ + int ALS_ENUM_LITERAL = 4; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ALS_ENUM_LITERAL__NAME = ALS_RELATION_DECLARATION__NAME; + + /** + * The number of structural features of the 'ALS Enum Literal' class. + * + * + * @generated + * @ordered + */ + int ALS_ENUM_LITERAL_FEATURE_COUNT = ALS_RELATION_DECLARATION_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSignatureDeclarationImpl ALS Signature Declaration}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSignatureDeclarationImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSSignatureDeclaration() + * @generated + */ + int ALS_SIGNATURE_DECLARATION = 5; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ALS_SIGNATURE_DECLARATION__NAME = ALS_TYPE_DECLARATION__NAME; + + /** + * The number of structural features of the 'ALS Signature Declaration' class. + * + * + * @generated + * @ordered + */ + int ALS_SIGNATURE_DECLARATION_FEATURE_COUNT = ALS_TYPE_DECLARATION_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSignatureBodyImpl ALS Signature Body}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSignatureBodyImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSSignatureBody() + * @generated + */ + int ALS_SIGNATURE_BODY = 6; + + /** + * The feature id for the 'Multiplicity' attribute. + * + * + * @generated + * @ordered + */ + int ALS_SIGNATURE_BODY__MULTIPLICITY = 0; + + /** + * The feature id for the 'Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ALS_SIGNATURE_BODY__ABSTRACT = 1; + + /** + * The feature id for the 'Declarations' containment reference list. + * + * + * @generated + * @ordered + */ + int ALS_SIGNATURE_BODY__DECLARATIONS = 2; + + /** + * The feature id for the 'Supertype' reference. + * + * + * @generated + * @ordered + */ + int ALS_SIGNATURE_BODY__SUPERTYPE = 3; + + /** + * The feature id for the 'Superset' reference list. + * + * + * @generated + * @ordered + */ + int ALS_SIGNATURE_BODY__SUPERSET = 4; + + /** + * The feature id for the 'Fields' containment reference list. + * + * + * @generated + * @ordered + */ + int ALS_SIGNATURE_BODY__FIELDS = 5; + + /** + * The number of structural features of the 'ALS Signature Body' class. + * + * + * @generated + * @ordered + */ + int ALS_SIGNATURE_BODY_FEATURE_COUNT = 6; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFieldDeclarationImpl ALS Field Declaration}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFieldDeclarationImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSFieldDeclaration() + * @generated + */ + int ALS_FIELD_DECLARATION = 7; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ALS_FIELD_DECLARATION__NAME = ALS_RELATION_DECLARATION__NAME; + + /** + * The feature id for the 'Multiplicity' attribute. + * + * + * @generated + * @ordered + */ + int ALS_FIELD_DECLARATION__MULTIPLICITY = ALS_RELATION_DECLARATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Type' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_FIELD_DECLARATION__TYPE = ALS_RELATION_DECLARATION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'ALS Field Declaration' class. + * + * + * @generated + * @ordered + */ + int ALS_FIELD_DECLARATION_FEATURE_COUNT = ALS_RELATION_DECLARATION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDefinitionImpl ALS Definition}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDefinitionImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSDefinition() + * @generated + */ + int ALS_DEFINITION = 8; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ALS_DEFINITION__NAME = 0; + + /** + * The feature id for the 'Variables' containment reference list. + * + * + * @generated + * @ordered + */ + int ALS_DEFINITION__VARIABLES = 1; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_DEFINITION__VALUE = 2; + + /** + * The number of structural features of the 'ALS Definition' class. + * + * + * @generated + * @ordered + */ + int ALS_DEFINITION_FEATURE_COUNT = 3; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFunctionDefinitionImpl ALS Function Definition}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFunctionDefinitionImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSFunctionDefinition() + * @generated + */ + int ALS_FUNCTION_DEFINITION = 9; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ALS_FUNCTION_DEFINITION__NAME = ALS_DEFINITION__NAME; + + /** + * The feature id for the 'Variables' containment reference list. + * + * + * @generated + * @ordered + */ + int ALS_FUNCTION_DEFINITION__VARIABLES = ALS_DEFINITION__VARIABLES; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_FUNCTION_DEFINITION__VALUE = ALS_DEFINITION__VALUE; + + /** + * The feature id for the 'Type' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_FUNCTION_DEFINITION__TYPE = ALS_DEFINITION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'ALS Function Definition' class. + * + * + * @generated + * @ordered + */ + int ALS_FUNCTION_DEFINITION_FEATURE_COUNT = ALS_DEFINITION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRelationDefinitionImpl ALS Relation Definition}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRelationDefinitionImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSRelationDefinition() + * @generated + */ + int ALS_RELATION_DEFINITION = 10; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ALS_RELATION_DEFINITION__NAME = ALS_DEFINITION__NAME; + + /** + * The feature id for the 'Variables' containment reference list. + * + * + * @generated + * @ordered + */ + int ALS_RELATION_DEFINITION__VARIABLES = ALS_DEFINITION__VARIABLES; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_RELATION_DEFINITION__VALUE = ALS_DEFINITION__VALUE; + + /** + * The number of structural features of the 'ALS Relation Definition' class. + * + * + * @generated + * @ordered + */ + int ALS_RELATION_DEFINITION_FEATURE_COUNT = ALS_DEFINITION_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFactDeclarationImpl ALS Fact Declaration}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFactDeclarationImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSFactDeclaration() + * @generated + */ + int ALS_FACT_DECLARATION = 11; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ALS_FACT_DECLARATION__NAME = 0; + + /** + * The feature id for the 'Term' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_FACT_DECLARATION__TERM = 1; + + /** + * The number of structural features of the 'ALS Fact Declaration' class. + * + * + * @generated + * @ordered + */ + int ALS_FACT_DECLARATION_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSTermImpl ALS Term}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSTermImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSTerm() + * @generated + */ + int ALS_TERM = 12; + + /** + * The number of structural features of the 'ALS Term' class. + * + * + * @generated + * @ordered + */ + int ALS_TERM_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSVariableDeclarationImpl ALS Variable Declaration}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSVariableDeclarationImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSVariableDeclaration() + * @generated + */ + int ALS_VARIABLE_DECLARATION = 13; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ALS_VARIABLE_DECLARATION__NAME = ALS_RELATION_DECLARATION__NAME; + + /** + * The feature id for the 'Range' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_VARIABLE_DECLARATION__RANGE = ALS_RELATION_DECLARATION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'ALS Variable Declaration' class. + * + * + * @generated + * @ordered + */ + int ALS_VARIABLE_DECLARATION_FEATURE_COUNT = ALS_RELATION_DECLARATION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRunCommandImpl ALS Run Command}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRunCommandImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSRunCommand() + * @generated + */ + int ALS_RUN_COMMAND = 14; + + /** + * The feature id for the 'Type Scopes' containment reference list. + * + * + * @generated + * @ordered + */ + int ALS_RUN_COMMAND__TYPE_SCOPES = 0; + + /** + * The number of structural features of the 'ALS Run Command' class. + * + * + * @generated + * @ordered + */ + int ALS_RUN_COMMAND_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSTypeScopeImpl ALS Type Scope}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSTypeScopeImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSTypeScope() + * @generated + */ + int ALS_TYPE_SCOPE = 15; + + /** + * The feature id for the 'Number' attribute. + * + * + * @generated + * @ordered + */ + int ALS_TYPE_SCOPE__NUMBER = 0; + + /** + * The number of structural features of the 'ALS Type Scope' class. + * + * + * @generated + * @ordered + */ + int ALS_TYPE_SCOPE_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSigScopeImpl ALS Sig Scope}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSigScopeImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSSigScope() + * @generated + */ + int ALS_SIG_SCOPE = 16; + + /** + * The feature id for the 'Number' attribute. + * + * + * @generated + * @ordered + */ + int ALS_SIG_SCOPE__NUMBER = ALS_TYPE_SCOPE__NUMBER; + + /** + * The feature id for the 'Exactly' attribute. + * + * + * @generated + * @ordered + */ + int ALS_SIG_SCOPE__EXACTLY = ALS_TYPE_SCOPE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int ALS_SIG_SCOPE__TYPE = ALS_TYPE_SCOPE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'ALS Sig Scope' class. + * + * + * @generated + * @ordered + */ + int ALS_SIG_SCOPE_FEATURE_COUNT = ALS_TYPE_SCOPE_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIntScopeImpl ALS Int Scope}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIntScopeImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSIntScope() + * @generated + */ + int ALS_INT_SCOPE = 17; + + /** + * The feature id for the 'Number' attribute. + * + * + * @generated + * @ordered + */ + int ALS_INT_SCOPE__NUMBER = ALS_TYPE_SCOPE__NUMBER; + + /** + * The number of structural features of the 'ALS Int Scope' class. + * + * + * @generated + * @ordered + */ + int ALS_INT_SCOPE_FEATURE_COUNT = ALS_TYPE_SCOPE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringScopeImpl ALS String Scope}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringScopeImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSStringScope() + * @generated + */ + int ALS_STRING_SCOPE = 18; + + /** + * The feature id for the 'Number' attribute. + * + * + * @generated + * @ordered + */ + int ALS_STRING_SCOPE__NUMBER = ALS_TYPE_SCOPE__NUMBER; + + /** + * The number of structural features of the 'ALS String Scope' class. + * + * + * @generated + * @ordered + */ + int ALS_STRING_SCOPE_FEATURE_COUNT = ALS_TYPE_SCOPE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSQuantifiedExImpl ALS Quantified Ex}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSQuantifiedExImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSQuantifiedEx() + * @generated + */ + int ALS_QUANTIFIED_EX = 19; + + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int ALS_QUANTIFIED_EX__TYPE = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Disj' attribute. + * + * + * @generated + * @ordered + */ + int ALS_QUANTIFIED_EX__DISJ = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Variables' containment reference list. + * + * + * @generated + * @ordered + */ + int ALS_QUANTIFIED_EX__VARIABLES = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_QUANTIFIED_EX__EXPRESSION = ALS_TERM_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'ALS Quantified Ex' class. + * + * + * @generated + * @ordered + */ + int ALS_QUANTIFIED_EX_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 4; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSOrImpl ALS Or}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSOrImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSOr() + * @generated + */ + int ALS_OR = 20; + + /** + * The feature id for the 'Left Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_OR__LEFT_OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_OR__RIGHT_OPERAND = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'ALS Or' class. + * + * + * @generated + * @ordered + */ + int ALS_OR_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIffImpl ALS Iff}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIffImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSIff() + * @generated + */ + int ALS_IFF = 21; + + /** + * The feature id for the 'Left Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_IFF__LEFT_OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_IFF__RIGHT_OPERAND = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'ALS Iff' class. + * + * + * @generated + * @ordered + */ + int ALS_IFF_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSImplImpl ALS Impl}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSImplImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSImpl() + * @generated + */ + int ALS_IMPL = 22; + + /** + * The feature id for the 'Left Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_IMPL__LEFT_OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_IMPL__RIGHT_OPERAND = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Else Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_IMPL__ELSE_OPERAND = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'ALS Impl' class. + * + * + * @generated + * @ordered + */ + int ALS_IMPL_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSAndImpl ALS And}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSAndImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSAnd() + * @generated + */ + int ALS_AND = 23; + + /** + * The feature id for the 'Left Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_AND__LEFT_OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_AND__RIGHT_OPERAND = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'ALS And' class. + * + * + * @generated + * @ordered + */ + int ALS_AND_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSEqualsImpl ALS Equals}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSEqualsImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSEquals() + * @generated + */ + int ALS_EQUALS = 24; + + /** + * The feature id for the 'Left Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_EQUALS__LEFT_OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_EQUALS__RIGHT_OPERAND = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'ALS Equals' class. + * + * + * @generated + * @ordered + */ + int ALS_EQUALS_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSNotEqualsImpl ALS Not Equals}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSNotEqualsImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSNotEquals() + * @generated + */ + int ALS_NOT_EQUALS = 25; + + /** + * The feature id for the 'Left Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_NOT_EQUALS__LEFT_OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_NOT_EQUALS__RIGHT_OPERAND = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'ALS Not Equals' class. + * + * + * @generated + * @ordered + */ + int ALS_NOT_EQUALS_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSubsetImpl ALS Subset}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSubsetImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSSubset() + * @generated + */ + int ALS_SUBSET = 26; + + /** + * The feature id for the 'Left Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_SUBSET__LEFT_OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_SUBSET__RIGHT_OPERAND = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'ALS Subset' class. + * + * + * @generated + * @ordered + */ + int ALS_SUBSET_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSLessImpl ALS Less}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSLessImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSLess() + * @generated + */ + int ALS_LESS = 27; + + /** + * The feature id for the 'Left Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_LESS__LEFT_OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_LESS__RIGHT_OPERAND = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'ALS Less' class. + * + * + * @generated + * @ordered + */ + int ALS_LESS_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSLeqImpl ALS Leq}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSLeqImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSLeq() + * @generated + */ + int ALS_LEQ = 28; + + /** + * The feature id for the 'Left Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_LEQ__LEFT_OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_LEQ__RIGHT_OPERAND = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'ALS Leq' class. + * + * + * @generated + * @ordered + */ + int ALS_LEQ_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSMoreImpl ALS More}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSMoreImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSMore() + * @generated + */ + int ALS_MORE = 29; + + /** + * The feature id for the 'Left Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_MORE__LEFT_OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_MORE__RIGHT_OPERAND = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'ALS More' class. + * + * + * @generated + * @ordered + */ + int ALS_MORE_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSMeqImpl ALS Meq}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSMeqImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSMeq() + * @generated + */ + int ALS_MEQ = 30; + + /** + * The feature id for the 'Left Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_MEQ__LEFT_OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_MEQ__RIGHT_OPERAND = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'ALS Meq' class. + * + * + * @generated + * @ordered + */ + int ALS_MEQ_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSOverrideImpl ALS Override}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSOverrideImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSOverride() + * @generated + */ + int ALS_OVERRIDE = 31; + + /** + * The feature id for the 'Left Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_OVERRIDE__LEFT_OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_OVERRIDE__RIGHT_OPERAND = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'ALS Override' class. + * + * + * @generated + * @ordered + */ + int ALS_OVERRIDE_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRangeRestrictionRightImpl ALS Range Restriction Right}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRangeRestrictionRightImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSRangeRestrictionRight() + * @generated + */ + int ALS_RANGE_RESTRICTION_RIGHT = 32; + + /** + * The feature id for the 'Relation' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_RANGE_RESTRICTION_RIGHT__RELATION = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Filter' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_RANGE_RESTRICTION_RIGHT__FILTER = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'ALS Range Restriction Right' class. + * + * + * @generated + * @ordered + */ + int ALS_RANGE_RESTRICTION_RIGHT_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRangeRestrictionLeftImpl ALS Range Restriction Left}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRangeRestrictionLeftImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSRangeRestrictionLeft() + * @generated + */ + int ALS_RANGE_RESTRICTION_LEFT = 33; + + /** + * The feature id for the 'Filter' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_RANGE_RESTRICTION_LEFT__FILTER = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Relation' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_RANGE_RESTRICTION_LEFT__RELATION = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'ALS Range Restriction Left' class. + * + * + * @generated + * @ordered + */ + int ALS_RANGE_RESTRICTION_LEFT_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSJoinImpl ALS Join}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSJoinImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSJoin() + * @generated + */ + int ALS_JOIN = 34; + + /** + * The feature id for the 'Left Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_JOIN__LEFT_OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_JOIN__RIGHT_OPERAND = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'ALS Join' class. + * + * + * @generated + * @ordered + */ + int ALS_JOIN_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSMinusImpl ALS Minus}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSMinusImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSMinus() + * @generated + */ + int ALS_MINUS = 35; + + /** + * The feature id for the 'Left Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_MINUS__LEFT_OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_MINUS__RIGHT_OPERAND = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'ALS Minus' class. + * + * + * @generated + * @ordered + */ + int ALS_MINUS_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSPlusImpl ALS Plus}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSPlusImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSPlus() + * @generated + */ + int ALS_PLUS = 36; + + /** + * The feature id for the 'Left Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_PLUS__LEFT_OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_PLUS__RIGHT_OPERAND = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'ALS Plus' class. + * + * + * @generated + * @ordered + */ + int ALS_PLUS_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIntersectionImpl ALS Intersection}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIntersectionImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSIntersection() + * @generated + */ + int ALS_INTERSECTION = 37; + + /** + * The feature id for the 'Left Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_INTERSECTION__LEFT_OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Right Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_INTERSECTION__RIGHT_OPERAND = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'ALS Intersection' class. + * + * + * @generated + * @ordered + */ + int ALS_INTERSECTION_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDirectProductImpl ALS Direct Product}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDirectProductImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSDirectProduct() + * @generated + */ + int ALS_DIRECT_PRODUCT = 38; + + /** + * The feature id for the 'Left Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_DIRECT_PRODUCT__LEFT_OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Left Multiplicit' attribute. + * + * + * @generated + * @ordered + */ + int ALS_DIRECT_PRODUCT__LEFT_MULTIPLICIT = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Right Multiplicit' attribute. + * + * + * @generated + * @ordered + */ + int ALS_DIRECT_PRODUCT__RIGHT_MULTIPLICIT = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Right Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_DIRECT_PRODUCT__RIGHT_OPERAND = ALS_TERM_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'ALS Direct Product' class. + * + * + * @generated + * @ordered + */ + int ALS_DIRECT_PRODUCT_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 4; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSNotImpl ALS Not}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSNotImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSNot() + * @generated + */ + int ALS_NOT = 39; + + /** + * The feature id for the 'Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_NOT__OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'ALS Not' class. + * + * + * @generated + * @ordered + */ + int ALS_NOT_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSInverseRelationImpl ALS Inverse Relation}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSInverseRelationImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSInverseRelation() + * @generated + */ + int ALS_INVERSE_RELATION = 40; + + /** + * The feature id for the 'Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_INVERSE_RELATION__OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'ALS Inverse Relation' class. + * + * + * @generated + * @ordered + */ + int ALS_INVERSE_RELATION_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlSTransitiveClosureImpl Al STransitive Closure}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlSTransitiveClosureImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getAlSTransitiveClosure() + * @generated + */ + int AL_STRANSITIVE_CLOSURE = 41; + + /** + * The feature id for the 'Operand' containment reference. + * + * + * @generated + * @ordered + */ + int AL_STRANSITIVE_CLOSURE__OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Al STransitive Closure' class. + * + * + * @generated + * @ordered + */ + int AL_STRANSITIVE_CLOSURE_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSReflectiveTransitiveClosureImpl ALS Reflective Transitive Closure}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSReflectiveTransitiveClosureImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSReflectiveTransitiveClosure() + * @generated + */ + int ALS_REFLECTIVE_TRANSITIVE_CLOSURE = 42; + + /** + * The feature id for the 'Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_REFLECTIVE_TRANSITIVE_CLOSURE__OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'ALS Reflective Transitive Closure' class. + * + * + * @generated + * @ordered + */ + int ALS_REFLECTIVE_TRANSITIVE_CLOSURE_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSCardinalityImpl ALS Cardinality}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSCardinalityImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSCardinality() + * @generated + */ + int ALS_CARDINALITY = 43; + + /** + * The feature id for the 'Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_CARDINALITY__OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'ALS Cardinality' class. + * + * + * @generated + * @ordered + */ + int ALS_CARDINALITY_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSUnaryMinusImpl ALS Unary Minus}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSUnaryMinusImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSUnaryMinus() + * @generated + */ + int ALS_UNARY_MINUS = 44; + + /** + * The feature id for the 'Operand' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_UNARY_MINUS__OPERAND = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'ALS Unary Minus' class. + * + * + * @generated + * @ordered + */ + int ALS_UNARY_MINUS_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSumImpl ALS Sum}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSumImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSSum() + * @generated + */ + int ALS_SUM = 45; + + /** + * The feature id for the 'Variables' containment reference list. + * + * + * @generated + * @ordered + */ + int ALS_SUM__VARIABLES = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Expression' containment reference. + * + * + * @generated + * @ordered + */ + int ALS_SUM__EXPRESSION = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'ALS Sum' class. + * + * + * @generated + * @ordered + */ + int ALS_SUM_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFunctionCallImpl ALS Function Call}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFunctionCallImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSFunctionCall() + * @generated + */ + int ALS_FUNCTION_CALL = 46; + + /** + * The feature id for the 'Referred Definition' reference. + * + * + * @generated + * @ordered + */ + int ALS_FUNCTION_CALL__REFERRED_DEFINITION = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Referred Numeric Operator' attribute. + * + * + * @generated + * @ordered + */ + int ALS_FUNCTION_CALL__REFERRED_NUMERIC_OPERATOR = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Params' containment reference list. + * + * + * @generated + * @ordered + */ + int ALS_FUNCTION_CALL__PARAMS = ALS_TERM_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'ALS Function Call' class. + * + * + * @generated + * @ordered + */ + int ALS_FUNCTION_CALL_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSNoneImpl ALS None}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSNoneImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSNone() + * @generated + */ + int ALS_NONE = 47; + + /** + * The number of structural features of the 'ALS None' class. + * + * + * @generated + * @ordered + */ + int ALS_NONE_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIdenImpl ALS Iden}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIdenImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSIden() + * @generated + */ + int ALS_IDEN = 48; + + /** + * The number of structural features of the 'ALS Iden' class. + * + * + * @generated + * @ordered + */ + int ALS_IDEN_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSUnivImpl ALS Univ}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSUnivImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSUniv() + * @generated + */ + int ALS_UNIV = 49; + + /** + * The number of structural features of the 'ALS Univ' class. + * + * + * @generated + * @ordered + */ + int ALS_UNIV_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIntImpl ALS Int}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIntImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSInt() + * @generated + */ + int ALS_INT = 50; + + /** + * The number of structural features of the 'ALS Int' class. + * + * + * @generated + * @ordered + */ + int ALS_INT_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringImpl ALS String}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSString() + * @generated + */ + int ALS_STRING = 51; + + /** + * The number of structural features of the 'ALS String' class. + * + * + * @generated + * @ordered + */ + int ALS_STRING_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSReferenceImpl ALS Reference}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSReferenceImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSReference() + * @generated + */ + int ALS_REFERENCE = 52; + + /** + * The feature id for the 'Referred' reference. + * + * + * @generated + * @ordered + */ + int ALS_REFERENCE__REFERRED = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'ALS Reference' class. + * + * + * @generated + * @ordered + */ + int ALS_REFERENCE_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSNumberLiteralImpl ALS Number Literal}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSNumberLiteralImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSNumberLiteral() + * @generated + */ + int ALS_NUMBER_LITERAL = 53; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int ALS_NUMBER_LITERAL__VALUE = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'ALS Number Literal' class. + * + * + * @generated + * @ordered + */ + int ALS_NUMBER_LITERAL_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringLiteralImpl ALS String Literal}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringLiteralImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSStringLiteral() + * @generated + */ + int ALS_STRING_LITERAL = 54; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int ALS_STRING_LITERAL__VALUE = ALS_TERM_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'ALS String Literal' class. + * + * + * @generated + * @ordered + */ + int ALS_STRING_LITERAL_FEATURE_COUNT = ALS_TERM_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity ALS Multiplicity}' enum. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSMultiplicity() + * @generated + */ + int ALS_MULTIPLICITY = 55; + + /** + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumericOperator ALS Numeric Operator}' enum. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumericOperator + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSNumericOperator() + * @generated + */ + int ALS_NUMERIC_OPERATOR = 56; + + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument ALS Document}'. + * + * + * @return the meta object for class 'ALS Document'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument + * @generated + */ + EClass getALSDocument(); + + /** + * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument#getEnumDeclarations Enum Declarations}'. + * + * + * @return the meta object for the containment reference list 'Enum Declarations'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument#getEnumDeclarations() + * @see #getALSDocument() + * @generated + */ + EReference getALSDocument_EnumDeclarations(); + + /** + * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument#getSignatureBodies Signature Bodies}'. + * + * + * @return the meta object for the containment reference list 'Signature Bodies'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument#getSignatureBodies() + * @see #getALSDocument() + * @generated + */ + EReference getALSDocument_SignatureBodies(); + + /** + * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument#getFunctionDefinitions Function Definitions}'. + * + * + * @return the meta object for the containment reference list 'Function Definitions'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument#getFunctionDefinitions() + * @see #getALSDocument() + * @generated + */ + EReference getALSDocument_FunctionDefinitions(); + + /** + * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument#getRelationDefinitions Relation Definitions}'. + * + * + * @return the meta object for the containment reference list 'Relation Definitions'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument#getRelationDefinitions() + * @see #getALSDocument() + * @generated + */ + EReference getALSDocument_RelationDefinitions(); + + /** + * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument#getFactDeclarations Fact Declarations}'. + * + * + * @return the meta object for the containment reference list 'Fact Declarations'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument#getFactDeclarations() + * @see #getALSDocument() + * @generated + */ + EReference getALSDocument_FactDeclarations(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument#getRunCommand Run Command}'. + * + * + * @return the meta object for the containment reference 'Run Command'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument#getRunCommand() + * @see #getALSDocument() + * @generated + */ + EReference getALSDocument_RunCommand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDeclaration ALS Relation Declaration}'. + * + * + * @return the meta object for class 'ALS Relation Declaration'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDeclaration + * @generated + */ + EClass getALSRelationDeclaration(); + + /** + * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDeclaration#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDeclaration#getName() + * @see #getALSRelationDeclaration() + * @generated + */ + EAttribute getALSRelationDeclaration_Name(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTypeDeclaration ALS Type Declaration}'. + * + * + * @return the meta object for class 'ALS Type Declaration'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTypeDeclaration + * @generated + */ + EClass getALSTypeDeclaration(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumDeclaration ALS Enum Declaration}'. + * + * + * @return the meta object for class 'ALS Enum Declaration'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumDeclaration + * @generated + */ + EClass getALSEnumDeclaration(); + + /** + * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumDeclaration#getLiteral Literal}'. + * + * + * @return the meta object for the containment reference list 'Literal'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumDeclaration#getLiteral() + * @see #getALSEnumDeclaration() + * @generated + */ + EReference getALSEnumDeclaration_Literal(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumLiteral ALS Enum Literal}'. + * + * + * @return the meta object for class 'ALS Enum Literal'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumLiteral + * @generated + */ + EClass getALSEnumLiteral(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureDeclaration ALS Signature Declaration}'. + * + * + * @return the meta object for class 'ALS Signature Declaration'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureDeclaration + * @generated + */ + EClass getALSSignatureDeclaration(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody ALS Signature Body}'. + * + * + * @return the meta object for class 'ALS Signature Body'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody + * @generated + */ + EClass getALSSignatureBody(); + + /** + * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#getMultiplicity Multiplicity}'. + * + * + * @return the meta object for the attribute 'Multiplicity'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#getMultiplicity() + * @see #getALSSignatureBody() + * @generated + */ + EAttribute getALSSignatureBody_Multiplicity(); + + /** + * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#isAbstract Abstract}'. + * + * + * @return the meta object for the attribute 'Abstract'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#isAbstract() + * @see #getALSSignatureBody() + * @generated + */ + EAttribute getALSSignatureBody_Abstract(); + + /** + * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#getDeclarations Declarations}'. + * + * + * @return the meta object for the containment reference list 'Declarations'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#getDeclarations() + * @see #getALSSignatureBody() + * @generated + */ + EReference getALSSignatureBody_Declarations(); + + /** + * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#getSupertype Supertype}'. + * + * + * @return the meta object for the reference 'Supertype'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#getSupertype() + * @see #getALSSignatureBody() + * @generated + */ + EReference getALSSignatureBody_Supertype(); + + /** + * Returns the meta object for the reference list '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#getSuperset Superset}'. + * + * + * @return the meta object for the reference list 'Superset'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#getSuperset() + * @see #getALSSignatureBody() + * @generated + */ + EReference getALSSignatureBody_Superset(); + + /** + * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#getFields Fields}'. + * + * + * @return the meta object for the containment reference list 'Fields'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody#getFields() + * @see #getALSSignatureBody() + * @generated + */ + EReference getALSSignatureBody_Fields(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFieldDeclaration ALS Field Declaration}'. + * + * + * @return the meta object for class 'ALS Field Declaration'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFieldDeclaration + * @generated + */ + EClass getALSFieldDeclaration(); + + /** + * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFieldDeclaration#getMultiplicity Multiplicity}'. + * + * + * @return the meta object for the attribute 'Multiplicity'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFieldDeclaration#getMultiplicity() + * @see #getALSFieldDeclaration() + * @generated + */ + EAttribute getALSFieldDeclaration_Multiplicity(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFieldDeclaration#getType Type}'. + * + * + * @return the meta object for the containment reference 'Type'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFieldDeclaration#getType() + * @see #getALSFieldDeclaration() + * @generated + */ + EReference getALSFieldDeclaration_Type(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDefinition ALS Definition}'. + * + * + * @return the meta object for class 'ALS Definition'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDefinition + * @generated + */ + EClass getALSDefinition(); + + /** + * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDefinition#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDefinition#getName() + * @see #getALSDefinition() + * @generated + */ + EAttribute getALSDefinition_Name(); + + /** + * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDefinition#getVariables Variables}'. + * + * + * @return the meta object for the containment reference list 'Variables'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDefinition#getVariables() + * @see #getALSDefinition() + * @generated + */ + EReference getALSDefinition_Variables(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDefinition#getValue Value}'. + * + * + * @return the meta object for the containment reference 'Value'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDefinition#getValue() + * @see #getALSDefinition() + * @generated + */ + EReference getALSDefinition_Value(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionDefinition ALS Function Definition}'. + * + * + * @return the meta object for class 'ALS Function Definition'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionDefinition + * @generated + */ + EClass getALSFunctionDefinition(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionDefinition#getType Type}'. + * + * + * @return the meta object for the containment reference 'Type'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionDefinition#getType() + * @see #getALSFunctionDefinition() + * @generated + */ + EReference getALSFunctionDefinition_Type(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDefinition ALS Relation Definition}'. + * + * + * @return the meta object for class 'ALS Relation Definition'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDefinition + * @generated + */ + EClass getALSRelationDefinition(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFactDeclaration ALS Fact Declaration}'. + * + * + * @return the meta object for class 'ALS Fact Declaration'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFactDeclaration + * @generated + */ + EClass getALSFactDeclaration(); + + /** + * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFactDeclaration#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFactDeclaration#getName() + * @see #getALSFactDeclaration() + * @generated + */ + EAttribute getALSFactDeclaration_Name(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFactDeclaration#getTerm Term}'. + * + * + * @return the meta object for the containment reference 'Term'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFactDeclaration#getTerm() + * @see #getALSFactDeclaration() + * @generated + */ + EReference getALSFactDeclaration_Term(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm ALS Term}'. + * + * + * @return the meta object for class 'ALS Term'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm + * @generated + */ + EClass getALSTerm(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSVariableDeclaration ALS Variable Declaration}'. + * + * + * @return the meta object for class 'ALS Variable Declaration'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSVariableDeclaration + * @generated + */ + EClass getALSVariableDeclaration(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSVariableDeclaration#getRange Range}'. + * + * + * @return the meta object for the containment reference 'Range'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSVariableDeclaration#getRange() + * @see #getALSVariableDeclaration() + * @generated + */ + EReference getALSVariableDeclaration_Range(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRunCommand ALS Run Command}'. + * + * + * @return the meta object for class 'ALS Run Command'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRunCommand + * @generated + */ + EClass getALSRunCommand(); + + /** + * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRunCommand#getTypeScopes Type Scopes}'. + * + * + * @return the meta object for the containment reference list 'Type Scopes'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRunCommand#getTypeScopes() + * @see #getALSRunCommand() + * @generated + */ + EReference getALSRunCommand_TypeScopes(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTypeScope ALS Type Scope}'. + * + * + * @return the meta object for class 'ALS Type Scope'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTypeScope + * @generated + */ + EClass getALSTypeScope(); + + /** + * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTypeScope#getNumber Number}'. + * + * + * @return the meta object for the attribute 'Number'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTypeScope#getNumber() + * @see #getALSTypeScope() + * @generated + */ + EAttribute getALSTypeScope_Number(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSigScope ALS Sig Scope}'. + * + * + * @return the meta object for class 'ALS Sig Scope'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSigScope + * @generated + */ + EClass getALSSigScope(); + + /** + * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSigScope#isExactly Exactly}'. + * + * + * @return the meta object for the attribute 'Exactly'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSigScope#isExactly() + * @see #getALSSigScope() + * @generated + */ + EAttribute getALSSigScope_Exactly(); + + /** + * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSigScope#getType Type}'. + * + * + * @return the meta object for the reference 'Type'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSigScope#getType() + * @see #getALSSigScope() + * @generated + */ + EReference getALSSigScope_Type(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntScope ALS Int Scope}'. + * + * + * @return the meta object for class 'ALS Int Scope'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntScope + * @generated + */ + EClass getALSIntScope(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringScope ALS String Scope}'. + * + * + * @return the meta object for class 'ALS String Scope'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringScope + * @generated + */ + EClass getALSStringScope(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx ALS Quantified Ex}'. + * + * + * @return the meta object for class 'ALS Quantified Ex'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx + * @generated + */ + EClass getALSQuantifiedEx(); + + /** + * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx#getType Type}'. + * + * + * @return the meta object for the attribute 'Type'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx#getType() + * @see #getALSQuantifiedEx() + * @generated + */ + EAttribute getALSQuantifiedEx_Type(); + + /** + * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx#isDisj Disj}'. + * + * + * @return the meta object for the attribute 'Disj'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx#isDisj() + * @see #getALSQuantifiedEx() + * @generated + */ + EAttribute getALSQuantifiedEx_Disj(); + + /** + * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx#getVariables Variables}'. + * + * + * @return the meta object for the containment reference list 'Variables'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx#getVariables() + * @see #getALSQuantifiedEx() + * @generated + */ + EReference getALSQuantifiedEx_Variables(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx#getExpression Expression}'. + * + * + * @return the meta object for the containment reference 'Expression'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx#getExpression() + * @see #getALSQuantifiedEx() + * @generated + */ + EReference getALSQuantifiedEx_Expression(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOr ALS Or}'. + * + * + * @return the meta object for class 'ALS Or'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOr + * @generated + */ + EClass getALSOr(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOr#getLeftOperand Left Operand}'. + * + * + * @return the meta object for the containment reference 'Left Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOr#getLeftOperand() + * @see #getALSOr() + * @generated + */ + EReference getALSOr_LeftOperand(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOr#getRightOperand Right Operand}'. + * + * + * @return the meta object for the containment reference 'Right Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOr#getRightOperand() + * @see #getALSOr() + * @generated + */ + EReference getALSOr_RightOperand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIff ALS Iff}'. + * + * + * @return the meta object for class 'ALS Iff'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIff + * @generated + */ + EClass getALSIff(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIff#getLeftOperand Left Operand}'. + * + * + * @return the meta object for the containment reference 'Left Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIff#getLeftOperand() + * @see #getALSIff() + * @generated + */ + EReference getALSIff_LeftOperand(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIff#getRightOperand Right Operand}'. + * + * + * @return the meta object for the containment reference 'Right Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIff#getRightOperand() + * @see #getALSIff() + * @generated + */ + EReference getALSIff_RightOperand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSImpl ALS Impl}'. + * + * + * @return the meta object for class 'ALS Impl'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSImpl + * @generated + */ + EClass getALSImpl(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSImpl#getLeftOperand Left Operand}'. + * + * + * @return the meta object for the containment reference 'Left Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSImpl#getLeftOperand() + * @see #getALSImpl() + * @generated + */ + EReference getALSImpl_LeftOperand(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSImpl#getRightOperand Right Operand}'. + * + * + * @return the meta object for the containment reference 'Right Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSImpl#getRightOperand() + * @see #getALSImpl() + * @generated + */ + EReference getALSImpl_RightOperand(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSImpl#getElseOperand Else Operand}'. + * + * + * @return the meta object for the containment reference 'Else Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSImpl#getElseOperand() + * @see #getALSImpl() + * @generated + */ + EReference getALSImpl_ElseOperand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSAnd ALS And}'. + * + * + * @return the meta object for class 'ALS And'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSAnd + * @generated + */ + EClass getALSAnd(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSAnd#getLeftOperand Left Operand}'. + * + * + * @return the meta object for the containment reference 'Left Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSAnd#getLeftOperand() + * @see #getALSAnd() + * @generated + */ + EReference getALSAnd_LeftOperand(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSAnd#getRightOperand Right Operand}'. + * + * + * @return the meta object for the containment reference 'Right Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSAnd#getRightOperand() + * @see #getALSAnd() + * @generated + */ + EReference getALSAnd_RightOperand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEquals ALS Equals}'. + * + * + * @return the meta object for class 'ALS Equals'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEquals + * @generated + */ + EClass getALSEquals(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEquals#getLeftOperand Left Operand}'. + * + * + * @return the meta object for the containment reference 'Left Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEquals#getLeftOperand() + * @see #getALSEquals() + * @generated + */ + EReference getALSEquals_LeftOperand(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEquals#getRightOperand Right Operand}'. + * + * + * @return the meta object for the containment reference 'Right Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEquals#getRightOperand() + * @see #getALSEquals() + * @generated + */ + EReference getALSEquals_RightOperand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNotEquals ALS Not Equals}'. + * + * + * @return the meta object for class 'ALS Not Equals'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNotEquals + * @generated + */ + EClass getALSNotEquals(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNotEquals#getLeftOperand Left Operand}'. + * + * + * @return the meta object for the containment reference 'Left Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNotEquals#getLeftOperand() + * @see #getALSNotEquals() + * @generated + */ + EReference getALSNotEquals_LeftOperand(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNotEquals#getRightOperand Right Operand}'. + * + * + * @return the meta object for the containment reference 'Right Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNotEquals#getRightOperand() + * @see #getALSNotEquals() + * @generated + */ + EReference getALSNotEquals_RightOperand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSubset ALS Subset}'. + * + * + * @return the meta object for class 'ALS Subset'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSubset + * @generated + */ + EClass getALSSubset(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSubset#getLeftOperand Left Operand}'. + * + * + * @return the meta object for the containment reference 'Left Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSubset#getLeftOperand() + * @see #getALSSubset() + * @generated + */ + EReference getALSSubset_LeftOperand(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSubset#getRightOperand Right Operand}'. + * + * + * @return the meta object for the containment reference 'Right Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSubset#getRightOperand() + * @see #getALSSubset() + * @generated + */ + EReference getALSSubset_RightOperand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLess ALS Less}'. + * + * + * @return the meta object for class 'ALS Less'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLess + * @generated + */ + EClass getALSLess(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLess#getLeftOperand Left Operand}'. + * + * + * @return the meta object for the containment reference 'Left Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLess#getLeftOperand() + * @see #getALSLess() + * @generated + */ + EReference getALSLess_LeftOperand(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLess#getRightOperand Right Operand}'. + * + * + * @return the meta object for the containment reference 'Right Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLess#getRightOperand() + * @see #getALSLess() + * @generated + */ + EReference getALSLess_RightOperand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLeq ALS Leq}'. + * + * + * @return the meta object for class 'ALS Leq'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLeq + * @generated + */ + EClass getALSLeq(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLeq#getLeftOperand Left Operand}'. + * + * + * @return the meta object for the containment reference 'Left Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLeq#getLeftOperand() + * @see #getALSLeq() + * @generated + */ + EReference getALSLeq_LeftOperand(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLeq#getRightOperand Right Operand}'. + * + * + * @return the meta object for the containment reference 'Right Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLeq#getRightOperand() + * @see #getALSLeq() + * @generated + */ + EReference getALSLeq_RightOperand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMore ALS More}'. + * + * + * @return the meta object for class 'ALS More'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMore + * @generated + */ + EClass getALSMore(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMore#getLeftOperand Left Operand}'. + * + * + * @return the meta object for the containment reference 'Left Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMore#getLeftOperand() + * @see #getALSMore() + * @generated + */ + EReference getALSMore_LeftOperand(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMore#getRightOperand Right Operand}'. + * + * + * @return the meta object for the containment reference 'Right Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMore#getRightOperand() + * @see #getALSMore() + * @generated + */ + EReference getALSMore_RightOperand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMeq ALS Meq}'. + * + * + * @return the meta object for class 'ALS Meq'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMeq + * @generated + */ + EClass getALSMeq(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMeq#getLeftOperand Left Operand}'. + * + * + * @return the meta object for the containment reference 'Left Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMeq#getLeftOperand() + * @see #getALSMeq() + * @generated + */ + EReference getALSMeq_LeftOperand(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMeq#getRightOperand Right Operand}'. + * + * + * @return the meta object for the containment reference 'Right Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMeq#getRightOperand() + * @see #getALSMeq() + * @generated + */ + EReference getALSMeq_RightOperand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOverride ALS Override}'. + * + * + * @return the meta object for class 'ALS Override'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOverride + * @generated + */ + EClass getALSOverride(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOverride#getLeftOperand Left Operand}'. + * + * + * @return the meta object for the containment reference 'Left Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOverride#getLeftOperand() + * @see #getALSOverride() + * @generated + */ + EReference getALSOverride_LeftOperand(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOverride#getRightOperand Right Operand}'. + * + * + * @return the meta object for the containment reference 'Right Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOverride#getRightOperand() + * @see #getALSOverride() + * @generated + */ + EReference getALSOverride_RightOperand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionRight ALS Range Restriction Right}'. + * + * + * @return the meta object for class 'ALS Range Restriction Right'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionRight + * @generated + */ + EClass getALSRangeRestrictionRight(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionRight#getRelation Relation}'. + * + * + * @return the meta object for the containment reference 'Relation'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionRight#getRelation() + * @see #getALSRangeRestrictionRight() + * @generated + */ + EReference getALSRangeRestrictionRight_Relation(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionRight#getFilter Filter}'. + * + * + * @return the meta object for the containment reference 'Filter'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionRight#getFilter() + * @see #getALSRangeRestrictionRight() + * @generated + */ + EReference getALSRangeRestrictionRight_Filter(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionLeft ALS Range Restriction Left}'. + * + * + * @return the meta object for class 'ALS Range Restriction Left'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionLeft + * @generated + */ + EClass getALSRangeRestrictionLeft(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionLeft#getFilter Filter}'. + * + * + * @return the meta object for the containment reference 'Filter'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionLeft#getFilter() + * @see #getALSRangeRestrictionLeft() + * @generated + */ + EReference getALSRangeRestrictionLeft_Filter(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionLeft#getRelation Relation}'. + * + * + * @return the meta object for the containment reference 'Relation'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionLeft#getRelation() + * @see #getALSRangeRestrictionLeft() + * @generated + */ + EReference getALSRangeRestrictionLeft_Relation(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSJoin ALS Join}'. + * + * + * @return the meta object for class 'ALS Join'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSJoin + * @generated + */ + EClass getALSJoin(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSJoin#getLeftOperand Left Operand}'. + * + * + * @return the meta object for the containment reference 'Left Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSJoin#getLeftOperand() + * @see #getALSJoin() + * @generated + */ + EReference getALSJoin_LeftOperand(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSJoin#getRightOperand Right Operand}'. + * + * + * @return the meta object for the containment reference 'Right Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSJoin#getRightOperand() + * @see #getALSJoin() + * @generated + */ + EReference getALSJoin_RightOperand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMinus ALS Minus}'. + * + * + * @return the meta object for class 'ALS Minus'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMinus + * @generated + */ + EClass getALSMinus(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMinus#getLeftOperand Left Operand}'. + * + * + * @return the meta object for the containment reference 'Left Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMinus#getLeftOperand() + * @see #getALSMinus() + * @generated + */ + EReference getALSMinus_LeftOperand(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMinus#getRightOperand Right Operand}'. + * + * + * @return the meta object for the containment reference 'Right Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMinus#getRightOperand() + * @see #getALSMinus() + * @generated + */ + EReference getALSMinus_RightOperand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSPlus ALS Plus}'. + * + * + * @return the meta object for class 'ALS Plus'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSPlus + * @generated + */ + EClass getALSPlus(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSPlus#getLeftOperand Left Operand}'. + * + * + * @return the meta object for the containment reference 'Left Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSPlus#getLeftOperand() + * @see #getALSPlus() + * @generated + */ + EReference getALSPlus_LeftOperand(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSPlus#getRightOperand Right Operand}'. + * + * + * @return the meta object for the containment reference 'Right Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSPlus#getRightOperand() + * @see #getALSPlus() + * @generated + */ + EReference getALSPlus_RightOperand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntersection ALS Intersection}'. + * + * + * @return the meta object for class 'ALS Intersection'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntersection + * @generated + */ + EClass getALSIntersection(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntersection#getLeftOperand Left Operand}'. + * + * + * @return the meta object for the containment reference 'Left Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntersection#getLeftOperand() + * @see #getALSIntersection() + * @generated + */ + EReference getALSIntersection_LeftOperand(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntersection#getRightOperand Right Operand}'. + * + * + * @return the meta object for the containment reference 'Right Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntersection#getRightOperand() + * @see #getALSIntersection() + * @generated + */ + EReference getALSIntersection_RightOperand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct ALS Direct Product}'. + * + * + * @return the meta object for class 'ALS Direct Product'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct + * @generated + */ + EClass getALSDirectProduct(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct#getLeftOperand Left Operand}'. + * + * + * @return the meta object for the containment reference 'Left Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct#getLeftOperand() + * @see #getALSDirectProduct() + * @generated + */ + EReference getALSDirectProduct_LeftOperand(); + + /** + * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct#getLeftMultiplicit Left Multiplicit}'. + * + * + * @return the meta object for the attribute 'Left Multiplicit'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct#getLeftMultiplicit() + * @see #getALSDirectProduct() + * @generated + */ + EAttribute getALSDirectProduct_LeftMultiplicit(); + + /** + * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct#getRightMultiplicit Right Multiplicit}'. + * + * + * @return the meta object for the attribute 'Right Multiplicit'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct#getRightMultiplicit() + * @see #getALSDirectProduct() + * @generated + */ + EAttribute getALSDirectProduct_RightMultiplicit(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct#getRightOperand Right Operand}'. + * + * + * @return the meta object for the containment reference 'Right Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct#getRightOperand() + * @see #getALSDirectProduct() + * @generated + */ + EReference getALSDirectProduct_RightOperand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNot ALS Not}'. + * + * + * @return the meta object for class 'ALS Not'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNot + * @generated + */ + EClass getALSNot(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNot#getOperand Operand}'. + * + * + * @return the meta object for the containment reference 'Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNot#getOperand() + * @see #getALSNot() + * @generated + */ + EReference getALSNot_Operand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSInverseRelation ALS Inverse Relation}'. + * + * + * @return the meta object for class 'ALS Inverse Relation'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSInverseRelation + * @generated + */ + EClass getALSInverseRelation(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSInverseRelation#getOperand Operand}'. + * + * + * @return the meta object for the containment reference 'Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSInverseRelation#getOperand() + * @see #getALSInverseRelation() + * @generated + */ + EReference getALSInverseRelation_Operand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.AlSTransitiveClosure Al STransitive Closure}'. + * + * + * @return the meta object for class 'Al STransitive Closure'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlSTransitiveClosure + * @generated + */ + EClass getAlSTransitiveClosure(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.AlSTransitiveClosure#getOperand Operand}'. + * + * + * @return the meta object for the containment reference 'Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.AlSTransitiveClosure#getOperand() + * @see #getAlSTransitiveClosure() + * @generated + */ + EReference getAlSTransitiveClosure_Operand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReflectiveTransitiveClosure ALS Reflective Transitive Closure}'. + * + * + * @return the meta object for class 'ALS Reflective Transitive Closure'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReflectiveTransitiveClosure + * @generated + */ + EClass getALSReflectiveTransitiveClosure(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReflectiveTransitiveClosure#getOperand Operand}'. + * + * + * @return the meta object for the containment reference 'Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReflectiveTransitiveClosure#getOperand() + * @see #getALSReflectiveTransitiveClosure() + * @generated + */ + EReference getALSReflectiveTransitiveClosure_Operand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSCardinality ALS Cardinality}'. + * + * + * @return the meta object for class 'ALS Cardinality'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSCardinality + * @generated + */ + EClass getALSCardinality(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSCardinality#getOperand Operand}'. + * + * + * @return the meta object for the containment reference 'Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSCardinality#getOperand() + * @see #getALSCardinality() + * @generated + */ + EReference getALSCardinality_Operand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSUnaryMinus ALS Unary Minus}'. + * + * + * @return the meta object for class 'ALS Unary Minus'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSUnaryMinus + * @generated + */ + EClass getALSUnaryMinus(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSUnaryMinus#getOperand Operand}'. + * + * + * @return the meta object for the containment reference 'Operand'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSUnaryMinus#getOperand() + * @see #getALSUnaryMinus() + * @generated + */ + EReference getALSUnaryMinus_Operand(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSum ALS Sum}'. + * + * + * @return the meta object for class 'ALS Sum'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSum + * @generated + */ + EClass getALSSum(); + + /** + * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSum#getVariables Variables}'. + * + * + * @return the meta object for the containment reference list 'Variables'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSum#getVariables() + * @see #getALSSum() + * @generated + */ + EReference getALSSum_Variables(); + + /** + * Returns the meta object for the containment reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSum#getExpression Expression}'. + * + * + * @return the meta object for the containment reference 'Expression'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSum#getExpression() + * @see #getALSSum() + * @generated + */ + EReference getALSSum_Expression(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionCall ALS Function Call}'. + * + * + * @return the meta object for class 'ALS Function Call'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionCall + * @generated + */ + EClass getALSFunctionCall(); + + /** + * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionCall#getReferredDefinition Referred Definition}'. + * + * + * @return the meta object for the reference 'Referred Definition'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionCall#getReferredDefinition() + * @see #getALSFunctionCall() + * @generated + */ + EReference getALSFunctionCall_ReferredDefinition(); + + /** + * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionCall#getReferredNumericOperator Referred Numeric Operator}'. + * + * + * @return the meta object for the attribute 'Referred Numeric Operator'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionCall#getReferredNumericOperator() + * @see #getALSFunctionCall() + * @generated + */ + EAttribute getALSFunctionCall_ReferredNumericOperator(); + + /** + * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionCall#getParams Params}'. + * + * + * @return the meta object for the containment reference list 'Params'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionCall#getParams() + * @see #getALSFunctionCall() + * @generated + */ + EReference getALSFunctionCall_Params(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNone ALS None}'. + * + * + * @return the meta object for class 'ALS None'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNone + * @generated + */ + EClass getALSNone(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIden ALS Iden}'. + * + * + * @return the meta object for class 'ALS Iden'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIden + * @generated + */ + EClass getALSIden(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSUniv ALS Univ}'. + * + * + * @return the meta object for class 'ALS Univ'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSUniv + * @generated + */ + EClass getALSUniv(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSInt ALS Int}'. + * + * + * @return the meta object for class 'ALS Int'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSInt + * @generated + */ + EClass getALSInt(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSString ALS String}'. + * + * + * @return the meta object for class 'ALS String'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSString + * @generated + */ + EClass getALSString(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReference ALS Reference}'. + * + * + * @return the meta object for class 'ALS Reference'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReference + * @generated + */ + EClass getALSReference(); + + /** + * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReference#getReferred Referred}'. + * + * + * @return the meta object for the reference 'Referred'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReference#getReferred() + * @see #getALSReference() + * @generated + */ + EReference getALSReference_Referred(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumberLiteral ALS Number Literal}'. + * + * + * @return the meta object for class 'ALS Number Literal'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumberLiteral + * @generated + */ + EClass getALSNumberLiteral(); + + /** + * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumberLiteral#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumberLiteral#getValue() + * @see #getALSNumberLiteral() + * @generated + */ + EAttribute getALSNumberLiteral_Value(); + + /** + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral ALS String Literal}'. + * + * + * @return the meta object for class 'ALS String Literal'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral + * @generated + */ + EClass getALSStringLiteral(); + + /** + * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral#getValue() + * @see #getALSStringLiteral() + * @generated + */ + EAttribute getALSStringLiteral_Value(); + + /** + * Returns the meta object for enum '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity ALS Multiplicity}'. + * + * + * @return the meta object for enum 'ALS Multiplicity'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity + * @generated + */ + EEnum getALSMultiplicity(); + + /** + * Returns the meta object for enum '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumericOperator ALS Numeric Operator}'. + * + * + * @return the meta object for enum 'ALS Numeric Operator'. + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumericOperator + * @generated + */ + EEnum getALSNumericOperator(); + + /** + * Returns the factory that creates the instances of the model. + * + * + * @return the factory that creates the instances of the model. + * @generated + */ + AlloyLanguageFactory getAlloyLanguageFactory(); + + /** + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDocumentImpl ALS Document}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDocumentImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSDocument() + * @generated + */ + EClass ALS_DOCUMENT = eINSTANCE.getALSDocument(); + + /** + * The meta object literal for the 'Enum Declarations' containment reference list feature. + * + * + * @generated + */ + EReference ALS_DOCUMENT__ENUM_DECLARATIONS = eINSTANCE.getALSDocument_EnumDeclarations(); + + /** + * The meta object literal for the 'Signature Bodies' containment reference list feature. + * + * + * @generated + */ + EReference ALS_DOCUMENT__SIGNATURE_BODIES = eINSTANCE.getALSDocument_SignatureBodies(); + + /** + * The meta object literal for the 'Function Definitions' containment reference list feature. + * + * + * @generated + */ + EReference ALS_DOCUMENT__FUNCTION_DEFINITIONS = eINSTANCE.getALSDocument_FunctionDefinitions(); + + /** + * The meta object literal for the 'Relation Definitions' containment reference list feature. + * + * + * @generated + */ + EReference ALS_DOCUMENT__RELATION_DEFINITIONS = eINSTANCE.getALSDocument_RelationDefinitions(); + + /** + * The meta object literal for the 'Fact Declarations' containment reference list feature. + * + * + * @generated + */ + EReference ALS_DOCUMENT__FACT_DECLARATIONS = eINSTANCE.getALSDocument_FactDeclarations(); + + /** + * The meta object literal for the 'Run Command' containment reference feature. + * + * + * @generated + */ + EReference ALS_DOCUMENT__RUN_COMMAND = eINSTANCE.getALSDocument_RunCommand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRelationDeclarationImpl ALS Relation Declaration}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRelationDeclarationImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSRelationDeclaration() + * @generated + */ + EClass ALS_RELATION_DECLARATION = eINSTANCE.getALSRelationDeclaration(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute ALS_RELATION_DECLARATION__NAME = eINSTANCE.getALSRelationDeclaration_Name(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSTypeDeclarationImpl ALS Type Declaration}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSTypeDeclarationImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSTypeDeclaration() + * @generated + */ + EClass ALS_TYPE_DECLARATION = eINSTANCE.getALSTypeDeclaration(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSEnumDeclarationImpl ALS Enum Declaration}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSEnumDeclarationImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSEnumDeclaration() + * @generated + */ + EClass ALS_ENUM_DECLARATION = eINSTANCE.getALSEnumDeclaration(); + + /** + * The meta object literal for the 'Literal' containment reference list feature. + * + * + * @generated + */ + EReference ALS_ENUM_DECLARATION__LITERAL = eINSTANCE.getALSEnumDeclaration_Literal(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSEnumLiteralImpl ALS Enum Literal}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSEnumLiteralImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSEnumLiteral() + * @generated + */ + EClass ALS_ENUM_LITERAL = eINSTANCE.getALSEnumLiteral(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSignatureDeclarationImpl ALS Signature Declaration}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSignatureDeclarationImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSSignatureDeclaration() + * @generated + */ + EClass ALS_SIGNATURE_DECLARATION = eINSTANCE.getALSSignatureDeclaration(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSignatureBodyImpl ALS Signature Body}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSignatureBodyImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSSignatureBody() + * @generated + */ + EClass ALS_SIGNATURE_BODY = eINSTANCE.getALSSignatureBody(); + + /** + * The meta object literal for the 'Multiplicity' attribute feature. + * + * + * @generated + */ + EAttribute ALS_SIGNATURE_BODY__MULTIPLICITY = eINSTANCE.getALSSignatureBody_Multiplicity(); + + /** + * The meta object literal for the 'Abstract' attribute feature. + * + * + * @generated + */ + EAttribute ALS_SIGNATURE_BODY__ABSTRACT = eINSTANCE.getALSSignatureBody_Abstract(); + + /** + * The meta object literal for the 'Declarations' containment reference list feature. + * + * + * @generated + */ + EReference ALS_SIGNATURE_BODY__DECLARATIONS = eINSTANCE.getALSSignatureBody_Declarations(); + + /** + * The meta object literal for the 'Supertype' reference feature. + * + * + * @generated + */ + EReference ALS_SIGNATURE_BODY__SUPERTYPE = eINSTANCE.getALSSignatureBody_Supertype(); + + /** + * The meta object literal for the 'Superset' reference list feature. + * + * + * @generated + */ + EReference ALS_SIGNATURE_BODY__SUPERSET = eINSTANCE.getALSSignatureBody_Superset(); + + /** + * The meta object literal for the 'Fields' containment reference list feature. + * + * + * @generated + */ + EReference ALS_SIGNATURE_BODY__FIELDS = eINSTANCE.getALSSignatureBody_Fields(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFieldDeclarationImpl ALS Field Declaration}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFieldDeclarationImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSFieldDeclaration() + * @generated + */ + EClass ALS_FIELD_DECLARATION = eINSTANCE.getALSFieldDeclaration(); + + /** + * The meta object literal for the 'Multiplicity' attribute feature. + * + * + * @generated + */ + EAttribute ALS_FIELD_DECLARATION__MULTIPLICITY = eINSTANCE.getALSFieldDeclaration_Multiplicity(); + + /** + * The meta object literal for the 'Type' containment reference feature. + * + * + * @generated + */ + EReference ALS_FIELD_DECLARATION__TYPE = eINSTANCE.getALSFieldDeclaration_Type(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDefinitionImpl ALS Definition}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDefinitionImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSDefinition() + * @generated + */ + EClass ALS_DEFINITION = eINSTANCE.getALSDefinition(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute ALS_DEFINITION__NAME = eINSTANCE.getALSDefinition_Name(); + + /** + * The meta object literal for the 'Variables' containment reference list feature. + * + * + * @generated + */ + EReference ALS_DEFINITION__VARIABLES = eINSTANCE.getALSDefinition_Variables(); + + /** + * The meta object literal for the 'Value' containment reference feature. + * + * + * @generated + */ + EReference ALS_DEFINITION__VALUE = eINSTANCE.getALSDefinition_Value(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFunctionDefinitionImpl ALS Function Definition}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFunctionDefinitionImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSFunctionDefinition() + * @generated + */ + EClass ALS_FUNCTION_DEFINITION = eINSTANCE.getALSFunctionDefinition(); + + /** + * The meta object literal for the 'Type' containment reference feature. + * + * + * @generated + */ + EReference ALS_FUNCTION_DEFINITION__TYPE = eINSTANCE.getALSFunctionDefinition_Type(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRelationDefinitionImpl ALS Relation Definition}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRelationDefinitionImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSRelationDefinition() + * @generated + */ + EClass ALS_RELATION_DEFINITION = eINSTANCE.getALSRelationDefinition(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFactDeclarationImpl ALS Fact Declaration}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFactDeclarationImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSFactDeclaration() + * @generated + */ + EClass ALS_FACT_DECLARATION = eINSTANCE.getALSFactDeclaration(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute ALS_FACT_DECLARATION__NAME = eINSTANCE.getALSFactDeclaration_Name(); + + /** + * The meta object literal for the 'Term' containment reference feature. + * + * + * @generated + */ + EReference ALS_FACT_DECLARATION__TERM = eINSTANCE.getALSFactDeclaration_Term(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSTermImpl ALS Term}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSTermImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSTerm() + * @generated + */ + EClass ALS_TERM = eINSTANCE.getALSTerm(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSVariableDeclarationImpl ALS Variable Declaration}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSVariableDeclarationImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSVariableDeclaration() + * @generated + */ + EClass ALS_VARIABLE_DECLARATION = eINSTANCE.getALSVariableDeclaration(); + + /** + * The meta object literal for the 'Range' containment reference feature. + * + * + * @generated + */ + EReference ALS_VARIABLE_DECLARATION__RANGE = eINSTANCE.getALSVariableDeclaration_Range(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRunCommandImpl ALS Run Command}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRunCommandImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSRunCommand() + * @generated + */ + EClass ALS_RUN_COMMAND = eINSTANCE.getALSRunCommand(); + + /** + * The meta object literal for the 'Type Scopes' containment reference list feature. + * + * + * @generated + */ + EReference ALS_RUN_COMMAND__TYPE_SCOPES = eINSTANCE.getALSRunCommand_TypeScopes(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSTypeScopeImpl ALS Type Scope}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSTypeScopeImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSTypeScope() + * @generated + */ + EClass ALS_TYPE_SCOPE = eINSTANCE.getALSTypeScope(); + + /** + * The meta object literal for the 'Number' attribute feature. + * + * + * @generated + */ + EAttribute ALS_TYPE_SCOPE__NUMBER = eINSTANCE.getALSTypeScope_Number(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSigScopeImpl ALS Sig Scope}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSigScopeImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSSigScope() + * @generated + */ + EClass ALS_SIG_SCOPE = eINSTANCE.getALSSigScope(); + + /** + * The meta object literal for the 'Exactly' attribute feature. + * + * + * @generated + */ + EAttribute ALS_SIG_SCOPE__EXACTLY = eINSTANCE.getALSSigScope_Exactly(); + + /** + * The meta object literal for the 'Type' reference feature. + * + * + * @generated + */ + EReference ALS_SIG_SCOPE__TYPE = eINSTANCE.getALSSigScope_Type(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIntScopeImpl ALS Int Scope}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIntScopeImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSIntScope() + * @generated + */ + EClass ALS_INT_SCOPE = eINSTANCE.getALSIntScope(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringScopeImpl ALS String Scope}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringScopeImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSStringScope() + * @generated + */ + EClass ALS_STRING_SCOPE = eINSTANCE.getALSStringScope(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSQuantifiedExImpl ALS Quantified Ex}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSQuantifiedExImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSQuantifiedEx() + * @generated + */ + EClass ALS_QUANTIFIED_EX = eINSTANCE.getALSQuantifiedEx(); + + /** + * The meta object literal for the 'Type' attribute feature. + * + * + * @generated + */ + EAttribute ALS_QUANTIFIED_EX__TYPE = eINSTANCE.getALSQuantifiedEx_Type(); + + /** + * The meta object literal for the 'Disj' attribute feature. + * + * + * @generated + */ + EAttribute ALS_QUANTIFIED_EX__DISJ = eINSTANCE.getALSQuantifiedEx_Disj(); + + /** + * The meta object literal for the 'Variables' containment reference list feature. + * + * + * @generated + */ + EReference ALS_QUANTIFIED_EX__VARIABLES = eINSTANCE.getALSQuantifiedEx_Variables(); + + /** + * The meta object literal for the 'Expression' containment reference feature. + * + * + * @generated + */ + EReference ALS_QUANTIFIED_EX__EXPRESSION = eINSTANCE.getALSQuantifiedEx_Expression(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSOrImpl ALS Or}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSOrImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSOr() + * @generated + */ + EClass ALS_OR = eINSTANCE.getALSOr(); + + /** + * The meta object literal for the 'Left Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_OR__LEFT_OPERAND = eINSTANCE.getALSOr_LeftOperand(); + + /** + * The meta object literal for the 'Right Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_OR__RIGHT_OPERAND = eINSTANCE.getALSOr_RightOperand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIffImpl ALS Iff}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIffImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSIff() + * @generated + */ + EClass ALS_IFF = eINSTANCE.getALSIff(); + + /** + * The meta object literal for the 'Left Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_IFF__LEFT_OPERAND = eINSTANCE.getALSIff_LeftOperand(); + + /** + * The meta object literal for the 'Right Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_IFF__RIGHT_OPERAND = eINSTANCE.getALSIff_RightOperand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSImplImpl ALS Impl}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSImplImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSImpl() + * @generated + */ + EClass ALS_IMPL = eINSTANCE.getALSImpl(); + + /** + * The meta object literal for the 'Left Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_IMPL__LEFT_OPERAND = eINSTANCE.getALSImpl_LeftOperand(); + + /** + * The meta object literal for the 'Right Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_IMPL__RIGHT_OPERAND = eINSTANCE.getALSImpl_RightOperand(); + + /** + * The meta object literal for the 'Else Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_IMPL__ELSE_OPERAND = eINSTANCE.getALSImpl_ElseOperand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSAndImpl ALS And}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSAndImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSAnd() + * @generated + */ + EClass ALS_AND = eINSTANCE.getALSAnd(); + + /** + * The meta object literal for the 'Left Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_AND__LEFT_OPERAND = eINSTANCE.getALSAnd_LeftOperand(); + + /** + * The meta object literal for the 'Right Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_AND__RIGHT_OPERAND = eINSTANCE.getALSAnd_RightOperand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSEqualsImpl ALS Equals}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSEqualsImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSEquals() + * @generated + */ + EClass ALS_EQUALS = eINSTANCE.getALSEquals(); + + /** + * The meta object literal for the 'Left Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_EQUALS__LEFT_OPERAND = eINSTANCE.getALSEquals_LeftOperand(); + + /** + * The meta object literal for the 'Right Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_EQUALS__RIGHT_OPERAND = eINSTANCE.getALSEquals_RightOperand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSNotEqualsImpl ALS Not Equals}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSNotEqualsImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSNotEquals() + * @generated + */ + EClass ALS_NOT_EQUALS = eINSTANCE.getALSNotEquals(); + + /** + * The meta object literal for the 'Left Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_NOT_EQUALS__LEFT_OPERAND = eINSTANCE.getALSNotEquals_LeftOperand(); + + /** + * The meta object literal for the 'Right Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_NOT_EQUALS__RIGHT_OPERAND = eINSTANCE.getALSNotEquals_RightOperand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSubsetImpl ALS Subset}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSubsetImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSSubset() + * @generated + */ + EClass ALS_SUBSET = eINSTANCE.getALSSubset(); + + /** + * The meta object literal for the 'Left Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_SUBSET__LEFT_OPERAND = eINSTANCE.getALSSubset_LeftOperand(); + + /** + * The meta object literal for the 'Right Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_SUBSET__RIGHT_OPERAND = eINSTANCE.getALSSubset_RightOperand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSLessImpl ALS Less}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSLessImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSLess() + * @generated + */ + EClass ALS_LESS = eINSTANCE.getALSLess(); + + /** + * The meta object literal for the 'Left Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_LESS__LEFT_OPERAND = eINSTANCE.getALSLess_LeftOperand(); + + /** + * The meta object literal for the 'Right Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_LESS__RIGHT_OPERAND = eINSTANCE.getALSLess_RightOperand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSLeqImpl ALS Leq}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSLeqImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSLeq() + * @generated + */ + EClass ALS_LEQ = eINSTANCE.getALSLeq(); + + /** + * The meta object literal for the 'Left Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_LEQ__LEFT_OPERAND = eINSTANCE.getALSLeq_LeftOperand(); + + /** + * The meta object literal for the 'Right Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_LEQ__RIGHT_OPERAND = eINSTANCE.getALSLeq_RightOperand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSMoreImpl ALS More}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSMoreImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSMore() + * @generated + */ + EClass ALS_MORE = eINSTANCE.getALSMore(); + + /** + * The meta object literal for the 'Left Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_MORE__LEFT_OPERAND = eINSTANCE.getALSMore_LeftOperand(); + + /** + * The meta object literal for the 'Right Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_MORE__RIGHT_OPERAND = eINSTANCE.getALSMore_RightOperand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSMeqImpl ALS Meq}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSMeqImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSMeq() + * @generated + */ + EClass ALS_MEQ = eINSTANCE.getALSMeq(); + + /** + * The meta object literal for the 'Left Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_MEQ__LEFT_OPERAND = eINSTANCE.getALSMeq_LeftOperand(); + + /** + * The meta object literal for the 'Right Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_MEQ__RIGHT_OPERAND = eINSTANCE.getALSMeq_RightOperand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSOverrideImpl ALS Override}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSOverrideImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSOverride() + * @generated + */ + EClass ALS_OVERRIDE = eINSTANCE.getALSOverride(); + + /** + * The meta object literal for the 'Left Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_OVERRIDE__LEFT_OPERAND = eINSTANCE.getALSOverride_LeftOperand(); + + /** + * The meta object literal for the 'Right Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_OVERRIDE__RIGHT_OPERAND = eINSTANCE.getALSOverride_RightOperand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRangeRestrictionRightImpl ALS Range Restriction Right}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRangeRestrictionRightImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSRangeRestrictionRight() + * @generated + */ + EClass ALS_RANGE_RESTRICTION_RIGHT = eINSTANCE.getALSRangeRestrictionRight(); + + /** + * The meta object literal for the 'Relation' containment reference feature. + * + * + * @generated + */ + EReference ALS_RANGE_RESTRICTION_RIGHT__RELATION = eINSTANCE.getALSRangeRestrictionRight_Relation(); + + /** + * The meta object literal for the 'Filter' containment reference feature. + * + * + * @generated + */ + EReference ALS_RANGE_RESTRICTION_RIGHT__FILTER = eINSTANCE.getALSRangeRestrictionRight_Filter(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRangeRestrictionLeftImpl ALS Range Restriction Left}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRangeRestrictionLeftImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSRangeRestrictionLeft() + * @generated + */ + EClass ALS_RANGE_RESTRICTION_LEFT = eINSTANCE.getALSRangeRestrictionLeft(); + + /** + * The meta object literal for the 'Filter' containment reference feature. + * + * + * @generated + */ + EReference ALS_RANGE_RESTRICTION_LEFT__FILTER = eINSTANCE.getALSRangeRestrictionLeft_Filter(); + + /** + * The meta object literal for the 'Relation' containment reference feature. + * + * + * @generated + */ + EReference ALS_RANGE_RESTRICTION_LEFT__RELATION = eINSTANCE.getALSRangeRestrictionLeft_Relation(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSJoinImpl ALS Join}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSJoinImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSJoin() + * @generated + */ + EClass ALS_JOIN = eINSTANCE.getALSJoin(); + + /** + * The meta object literal for the 'Left Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_JOIN__LEFT_OPERAND = eINSTANCE.getALSJoin_LeftOperand(); + + /** + * The meta object literal for the 'Right Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_JOIN__RIGHT_OPERAND = eINSTANCE.getALSJoin_RightOperand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSMinusImpl ALS Minus}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSMinusImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSMinus() + * @generated + */ + EClass ALS_MINUS = eINSTANCE.getALSMinus(); + + /** + * The meta object literal for the 'Left Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_MINUS__LEFT_OPERAND = eINSTANCE.getALSMinus_LeftOperand(); + + /** + * The meta object literal for the 'Right Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_MINUS__RIGHT_OPERAND = eINSTANCE.getALSMinus_RightOperand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSPlusImpl ALS Plus}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSPlusImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSPlus() + * @generated + */ + EClass ALS_PLUS = eINSTANCE.getALSPlus(); + + /** + * The meta object literal for the 'Left Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_PLUS__LEFT_OPERAND = eINSTANCE.getALSPlus_LeftOperand(); + + /** + * The meta object literal for the 'Right Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_PLUS__RIGHT_OPERAND = eINSTANCE.getALSPlus_RightOperand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIntersectionImpl ALS Intersection}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIntersectionImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSIntersection() + * @generated + */ + EClass ALS_INTERSECTION = eINSTANCE.getALSIntersection(); + + /** + * The meta object literal for the 'Left Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_INTERSECTION__LEFT_OPERAND = eINSTANCE.getALSIntersection_LeftOperand(); + + /** + * The meta object literal for the 'Right Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_INTERSECTION__RIGHT_OPERAND = eINSTANCE.getALSIntersection_RightOperand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDirectProductImpl ALS Direct Product}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDirectProductImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSDirectProduct() + * @generated + */ + EClass ALS_DIRECT_PRODUCT = eINSTANCE.getALSDirectProduct(); + + /** + * The meta object literal for the 'Left Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_DIRECT_PRODUCT__LEFT_OPERAND = eINSTANCE.getALSDirectProduct_LeftOperand(); + + /** + * The meta object literal for the 'Left Multiplicit' attribute feature. + * + * + * @generated + */ + EAttribute ALS_DIRECT_PRODUCT__LEFT_MULTIPLICIT = eINSTANCE.getALSDirectProduct_LeftMultiplicit(); + + /** + * The meta object literal for the 'Right Multiplicit' attribute feature. + * + * + * @generated + */ + EAttribute ALS_DIRECT_PRODUCT__RIGHT_MULTIPLICIT = eINSTANCE.getALSDirectProduct_RightMultiplicit(); + + /** + * The meta object literal for the 'Right Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_DIRECT_PRODUCT__RIGHT_OPERAND = eINSTANCE.getALSDirectProduct_RightOperand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSNotImpl ALS Not}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSNotImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSNot() + * @generated + */ + EClass ALS_NOT = eINSTANCE.getALSNot(); + + /** + * The meta object literal for the 'Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_NOT__OPERAND = eINSTANCE.getALSNot_Operand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSInverseRelationImpl ALS Inverse Relation}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSInverseRelationImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSInverseRelation() + * @generated + */ + EClass ALS_INVERSE_RELATION = eINSTANCE.getALSInverseRelation(); + + /** + * The meta object literal for the 'Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_INVERSE_RELATION__OPERAND = eINSTANCE.getALSInverseRelation_Operand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlSTransitiveClosureImpl Al STransitive Closure}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlSTransitiveClosureImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getAlSTransitiveClosure() + * @generated + */ + EClass AL_STRANSITIVE_CLOSURE = eINSTANCE.getAlSTransitiveClosure(); + + /** + * The meta object literal for the 'Operand' containment reference feature. + * + * + * @generated + */ + EReference AL_STRANSITIVE_CLOSURE__OPERAND = eINSTANCE.getAlSTransitiveClosure_Operand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSReflectiveTransitiveClosureImpl ALS Reflective Transitive Closure}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSReflectiveTransitiveClosureImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSReflectiveTransitiveClosure() + * @generated + */ + EClass ALS_REFLECTIVE_TRANSITIVE_CLOSURE = eINSTANCE.getALSReflectiveTransitiveClosure(); + + /** + * The meta object literal for the 'Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_REFLECTIVE_TRANSITIVE_CLOSURE__OPERAND = eINSTANCE.getALSReflectiveTransitiveClosure_Operand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSCardinalityImpl ALS Cardinality}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSCardinalityImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSCardinality() + * @generated + */ + EClass ALS_CARDINALITY = eINSTANCE.getALSCardinality(); + + /** + * The meta object literal for the 'Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_CARDINALITY__OPERAND = eINSTANCE.getALSCardinality_Operand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSUnaryMinusImpl ALS Unary Minus}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSUnaryMinusImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSUnaryMinus() + * @generated + */ + EClass ALS_UNARY_MINUS = eINSTANCE.getALSUnaryMinus(); + + /** + * The meta object literal for the 'Operand' containment reference feature. + * + * + * @generated + */ + EReference ALS_UNARY_MINUS__OPERAND = eINSTANCE.getALSUnaryMinus_Operand(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSumImpl ALS Sum}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSumImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSSum() + * @generated + */ + EClass ALS_SUM = eINSTANCE.getALSSum(); + + /** + * The meta object literal for the 'Variables' containment reference list feature. + * + * + * @generated + */ + EReference ALS_SUM__VARIABLES = eINSTANCE.getALSSum_Variables(); + + /** + * The meta object literal for the 'Expression' containment reference feature. + * + * + * @generated + */ + EReference ALS_SUM__EXPRESSION = eINSTANCE.getALSSum_Expression(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFunctionCallImpl ALS Function Call}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFunctionCallImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSFunctionCall() + * @generated + */ + EClass ALS_FUNCTION_CALL = eINSTANCE.getALSFunctionCall(); + + /** + * The meta object literal for the 'Referred Definition' reference feature. + * + * + * @generated + */ + EReference ALS_FUNCTION_CALL__REFERRED_DEFINITION = eINSTANCE.getALSFunctionCall_ReferredDefinition(); + + /** + * The meta object literal for the 'Referred Numeric Operator' attribute feature. + * + * + * @generated + */ + EAttribute ALS_FUNCTION_CALL__REFERRED_NUMERIC_OPERATOR = eINSTANCE.getALSFunctionCall_ReferredNumericOperator(); + + /** + * The meta object literal for the 'Params' containment reference list feature. + * + * + * @generated + */ + EReference ALS_FUNCTION_CALL__PARAMS = eINSTANCE.getALSFunctionCall_Params(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSNoneImpl ALS None}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSNoneImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSNone() + * @generated + */ + EClass ALS_NONE = eINSTANCE.getALSNone(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIdenImpl ALS Iden}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIdenImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSIden() + * @generated + */ + EClass ALS_IDEN = eINSTANCE.getALSIden(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSUnivImpl ALS Univ}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSUnivImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSUniv() + * @generated + */ + EClass ALS_UNIV = eINSTANCE.getALSUniv(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIntImpl ALS Int}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIntImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSInt() + * @generated + */ + EClass ALS_INT = eINSTANCE.getALSInt(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringImpl ALS String}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSString() + * @generated + */ + EClass ALS_STRING = eINSTANCE.getALSString(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSReferenceImpl ALS Reference}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSReferenceImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSReference() + * @generated + */ + EClass ALS_REFERENCE = eINSTANCE.getALSReference(); + + /** + * The meta object literal for the 'Referred' reference feature. + * + * + * @generated + */ + EReference ALS_REFERENCE__REFERRED = eINSTANCE.getALSReference_Referred(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSNumberLiteralImpl ALS Number Literal}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSNumberLiteralImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSNumberLiteral() + * @generated + */ + EClass ALS_NUMBER_LITERAL = eINSTANCE.getALSNumberLiteral(); + + /** + * The meta object literal for the 'Value' attribute feature. + * + * + * @generated + */ + EAttribute ALS_NUMBER_LITERAL__VALUE = eINSTANCE.getALSNumberLiteral_Value(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringLiteralImpl ALS String Literal}' class. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringLiteralImpl + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSStringLiteral() + * @generated + */ + EClass ALS_STRING_LITERAL = eINSTANCE.getALSStringLiteral(); + + /** + * The meta object literal for the 'Value' attribute feature. + * + * + * @generated + */ + EAttribute ALS_STRING_LITERAL__VALUE = eINSTANCE.getALSStringLiteral_Value(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity ALS Multiplicity}' enum. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSMultiplicity() + * @generated + */ + EEnum ALS_MULTIPLICITY = eINSTANCE.getALSMultiplicity(); + + /** + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumericOperator ALS Numeric Operator}' enum. + * + * + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumericOperator + * @see hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlloyLanguagePackageImpl#getALSNumericOperator() + * @generated + */ + EEnum ALS_NUMERIC_OPERATOR = eINSTANCE.getALSNumericOperator(); + + } + +} //AlloyLanguagePackage diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSAndImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSAndImpl.java new file mode 100644 index 00000000..0401917d --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSAndImpl.java @@ -0,0 +1,264 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSAnd; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS And'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSAndImpl#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSAndImpl#getRightOperand Right Operand}
  • + *
+ * + * @generated + */ +public class ALSAndImpl extends ALSTermImpl implements ALSAnd +{ + /** + * The cached value of the '{@link #getLeftOperand() Left Operand}' containment reference. + * + * + * @see #getLeftOperand() + * @generated + * @ordered + */ + protected ALSTerm leftOperand; + + /** + * The cached value of the '{@link #getRightOperand() Right Operand}' containment reference. + * + * + * @see #getRightOperand() + * @generated + * @ordered + */ + protected ALSTerm rightOperand; + + /** + * + * + * @generated + */ + protected ALSAndImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_AND; + } + + /** + * + * + * @generated + */ + public ALSTerm getLeftOperand() + { + return leftOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeftOperand(ALSTerm newLeftOperand, NotificationChain msgs) + { + ALSTerm oldLeftOperand = leftOperand; + leftOperand = newLeftOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_AND__LEFT_OPERAND, oldLeftOperand, newLeftOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeftOperand(ALSTerm newLeftOperand) + { + if (newLeftOperand != leftOperand) + { + NotificationChain msgs = null; + if (leftOperand != null) + msgs = ((InternalEObject)leftOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_AND__LEFT_OPERAND, null, msgs); + if (newLeftOperand != null) + msgs = ((InternalEObject)newLeftOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_AND__LEFT_OPERAND, null, msgs); + msgs = basicSetLeftOperand(newLeftOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_AND__LEFT_OPERAND, newLeftOperand, newLeftOperand)); + } + + /** + * + * + * @generated + */ + public ALSTerm getRightOperand() + { + return rightOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRightOperand(ALSTerm newRightOperand, NotificationChain msgs) + { + ALSTerm oldRightOperand = rightOperand; + rightOperand = newRightOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_AND__RIGHT_OPERAND, oldRightOperand, newRightOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRightOperand(ALSTerm newRightOperand) + { + if (newRightOperand != rightOperand) + { + NotificationChain msgs = null; + if (rightOperand != null) + msgs = ((InternalEObject)rightOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_AND__RIGHT_OPERAND, null, msgs); + if (newRightOperand != null) + msgs = ((InternalEObject)newRightOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_AND__RIGHT_OPERAND, null, msgs); + msgs = basicSetRightOperand(newRightOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_AND__RIGHT_OPERAND, newRightOperand, newRightOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_AND__LEFT_OPERAND: + return basicSetLeftOperand(null, msgs); + case AlloyLanguagePackage.ALS_AND__RIGHT_OPERAND: + return basicSetRightOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_AND__LEFT_OPERAND: + return getLeftOperand(); + case AlloyLanguagePackage.ALS_AND__RIGHT_OPERAND: + return getRightOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_AND__LEFT_OPERAND: + setLeftOperand((ALSTerm)newValue); + return; + case AlloyLanguagePackage.ALS_AND__RIGHT_OPERAND: + setRightOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_AND__LEFT_OPERAND: + setLeftOperand((ALSTerm)null); + return; + case AlloyLanguagePackage.ALS_AND__RIGHT_OPERAND: + setRightOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_AND__LEFT_OPERAND: + return leftOperand != null; + case AlloyLanguagePackage.ALS_AND__RIGHT_OPERAND: + return rightOperand != null; + } + return super.eIsSet(featureID); + } + +} //ALSAndImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSCardinalityImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSCardinalityImpl.java new file mode 100644 index 00000000..9625adb4 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSCardinalityImpl.java @@ -0,0 +1,193 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSCardinality; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Cardinality'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSCardinalityImpl#getOperand Operand}
  • + *
+ * + * @generated + */ +public class ALSCardinalityImpl extends ALSTermImpl implements ALSCardinality +{ + /** + * The cached value of the '{@link #getOperand() Operand}' containment reference. + * + * + * @see #getOperand() + * @generated + * @ordered + */ + protected ALSTerm operand; + + /** + * + * + * @generated + */ + protected ALSCardinalityImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_CARDINALITY; + } + + /** + * + * + * @generated + */ + public ALSTerm getOperand() + { + return operand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOperand(ALSTerm newOperand, NotificationChain msgs) + { + ALSTerm oldOperand = operand; + operand = newOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_CARDINALITY__OPERAND, oldOperand, newOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setOperand(ALSTerm newOperand) + { + if (newOperand != operand) + { + NotificationChain msgs = null; + if (operand != null) + msgs = ((InternalEObject)operand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_CARDINALITY__OPERAND, null, msgs); + if (newOperand != null) + msgs = ((InternalEObject)newOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_CARDINALITY__OPERAND, null, msgs); + msgs = basicSetOperand(newOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_CARDINALITY__OPERAND, newOperand, newOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_CARDINALITY__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 AlloyLanguagePackage.ALS_CARDINALITY__OPERAND: + return getOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_CARDINALITY__OPERAND: + setOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_CARDINALITY__OPERAND: + setOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_CARDINALITY__OPERAND: + return operand != null; + } + return super.eIsSet(featureID); + } + +} //ALSCardinalityImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSDefinitionImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSDefinitionImpl.java new file mode 100644 index 00000000..e4251d72 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSDefinitionImpl.java @@ -0,0 +1,312 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDefinition; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSVariableDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDefinitionImpl#getName Name}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDefinitionImpl#getVariables Variables}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDefinitionImpl#getValue Value}
  • + *
+ * + * @generated + */ +public class ALSDefinitionImpl extends MinimalEObjectImpl.Container implements ALSDefinition +{ + /** + * 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 #getVariables() Variables}' containment reference list. + * + * + * @see #getVariables() + * @generated + * @ordered + */ + protected EList variables; + + /** + * The cached value of the '{@link #getValue() Value}' containment reference. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected ALSTerm value; + + /** + * + * + * @generated + */ + protected ALSDefinitionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_DEFINITION; + } + + /** + * + * + * @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, AlloyLanguagePackage.ALS_DEFINITION__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + public EList getVariables() + { + if (variables == null) + { + variables = new EObjectContainmentEList(ALSVariableDeclaration.class, this, AlloyLanguagePackage.ALS_DEFINITION__VARIABLES); + } + return variables; + } + + /** + * + * + * @generated + */ + public ALSTerm getValue() + { + return value; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetValue(ALSTerm newValue, NotificationChain msgs) + { + ALSTerm oldValue = value; + value = newValue; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_DEFINITION__VALUE, oldValue, newValue); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setValue(ALSTerm newValue) + { + if (newValue != value) + { + NotificationChain msgs = null; + if (value != null) + msgs = ((InternalEObject)value).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_DEFINITION__VALUE, null, msgs); + if (newValue != null) + msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_DEFINITION__VALUE, null, msgs); + msgs = basicSetValue(newValue, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_DEFINITION__VALUE, newValue, newValue)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_DEFINITION__VARIABLES: + return ((InternalEList)getVariables()).basicRemove(otherEnd, msgs); + case AlloyLanguagePackage.ALS_DEFINITION__VALUE: + return basicSetValue(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_DEFINITION__NAME: + return getName(); + case AlloyLanguagePackage.ALS_DEFINITION__VARIABLES: + return getVariables(); + case AlloyLanguagePackage.ALS_DEFINITION__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_DEFINITION__NAME: + setName((String)newValue); + return; + case AlloyLanguagePackage.ALS_DEFINITION__VARIABLES: + getVariables().clear(); + getVariables().addAll((Collection)newValue); + return; + case AlloyLanguagePackage.ALS_DEFINITION__VALUE: + setValue((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_DEFINITION__NAME: + setName(NAME_EDEFAULT); + return; + case AlloyLanguagePackage.ALS_DEFINITION__VARIABLES: + getVariables().clear(); + return; + case AlloyLanguagePackage.ALS_DEFINITION__VALUE: + setValue((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_DEFINITION__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case AlloyLanguagePackage.ALS_DEFINITION__VARIABLES: + return variables != null && !variables.isEmpty(); + case AlloyLanguagePackage.ALS_DEFINITION__VALUE: + return value != 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(')'); + return result.toString(); + } + +} //ALSDefinitionImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSDirectProductImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSDirectProductImpl.java new file mode 100644 index 00000000..a80d74fe --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSDirectProductImpl.java @@ -0,0 +1,392 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Direct Product'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDirectProductImpl#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDirectProductImpl#getLeftMultiplicit Left Multiplicit}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDirectProductImpl#getRightMultiplicit Right Multiplicit}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDirectProductImpl#getRightOperand Right Operand}
  • + *
+ * + * @generated + */ +public class ALSDirectProductImpl extends ALSTermImpl implements ALSDirectProduct +{ + /** + * The cached value of the '{@link #getLeftOperand() Left Operand}' containment reference. + * + * + * @see #getLeftOperand() + * @generated + * @ordered + */ + protected ALSTerm leftOperand; + + /** + * The default value of the '{@link #getLeftMultiplicit() Left Multiplicit}' attribute. + * + * + * @see #getLeftMultiplicit() + * @generated + * @ordered + */ + protected static final ALSMultiplicity LEFT_MULTIPLICIT_EDEFAULT = ALSMultiplicity.ALL; + + /** + * The cached value of the '{@link #getLeftMultiplicit() Left Multiplicit}' attribute. + * + * + * @see #getLeftMultiplicit() + * @generated + * @ordered + */ + protected ALSMultiplicity leftMultiplicit = LEFT_MULTIPLICIT_EDEFAULT; + + /** + * The default value of the '{@link #getRightMultiplicit() Right Multiplicit}' attribute. + * + * + * @see #getRightMultiplicit() + * @generated + * @ordered + */ + protected static final ALSMultiplicity RIGHT_MULTIPLICIT_EDEFAULT = ALSMultiplicity.ALL; + + /** + * The cached value of the '{@link #getRightMultiplicit() Right Multiplicit}' attribute. + * + * + * @see #getRightMultiplicit() + * @generated + * @ordered + */ + protected ALSMultiplicity rightMultiplicit = RIGHT_MULTIPLICIT_EDEFAULT; + + /** + * The cached value of the '{@link #getRightOperand() Right Operand}' containment reference. + * + * + * @see #getRightOperand() + * @generated + * @ordered + */ + protected ALSTerm rightOperand; + + /** + * + * + * @generated + */ + protected ALSDirectProductImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_DIRECT_PRODUCT; + } + + /** + * + * + * @generated + */ + public ALSTerm getLeftOperand() + { + return leftOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeftOperand(ALSTerm newLeftOperand, NotificationChain msgs) + { + ALSTerm oldLeftOperand = leftOperand; + leftOperand = newLeftOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_DIRECT_PRODUCT__LEFT_OPERAND, oldLeftOperand, newLeftOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeftOperand(ALSTerm newLeftOperand) + { + if (newLeftOperand != leftOperand) + { + NotificationChain msgs = null; + if (leftOperand != null) + msgs = ((InternalEObject)leftOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_DIRECT_PRODUCT__LEFT_OPERAND, null, msgs); + if (newLeftOperand != null) + msgs = ((InternalEObject)newLeftOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_DIRECT_PRODUCT__LEFT_OPERAND, null, msgs); + msgs = basicSetLeftOperand(newLeftOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_DIRECT_PRODUCT__LEFT_OPERAND, newLeftOperand, newLeftOperand)); + } + + /** + * + * + * @generated + */ + public ALSMultiplicity getLeftMultiplicit() + { + return leftMultiplicit; + } + + /** + * + * + * @generated + */ + public void setLeftMultiplicit(ALSMultiplicity newLeftMultiplicit) + { + ALSMultiplicity oldLeftMultiplicit = leftMultiplicit; + leftMultiplicit = newLeftMultiplicit == null ? LEFT_MULTIPLICIT_EDEFAULT : newLeftMultiplicit; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_DIRECT_PRODUCT__LEFT_MULTIPLICIT, oldLeftMultiplicit, leftMultiplicit)); + } + + /** + * + * + * @generated + */ + public ALSMultiplicity getRightMultiplicit() + { + return rightMultiplicit; + } + + /** + * + * + * @generated + */ + public void setRightMultiplicit(ALSMultiplicity newRightMultiplicit) + { + ALSMultiplicity oldRightMultiplicit = rightMultiplicit; + rightMultiplicit = newRightMultiplicit == null ? RIGHT_MULTIPLICIT_EDEFAULT : newRightMultiplicit; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_DIRECT_PRODUCT__RIGHT_MULTIPLICIT, oldRightMultiplicit, rightMultiplicit)); + } + + /** + * + * + * @generated + */ + public ALSTerm getRightOperand() + { + return rightOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRightOperand(ALSTerm newRightOperand, NotificationChain msgs) + { + ALSTerm oldRightOperand = rightOperand; + rightOperand = newRightOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_DIRECT_PRODUCT__RIGHT_OPERAND, oldRightOperand, newRightOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRightOperand(ALSTerm newRightOperand) + { + if (newRightOperand != rightOperand) + { + NotificationChain msgs = null; + if (rightOperand != null) + msgs = ((InternalEObject)rightOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_DIRECT_PRODUCT__RIGHT_OPERAND, null, msgs); + if (newRightOperand != null) + msgs = ((InternalEObject)newRightOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_DIRECT_PRODUCT__RIGHT_OPERAND, null, msgs); + msgs = basicSetRightOperand(newRightOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_DIRECT_PRODUCT__RIGHT_OPERAND, newRightOperand, newRightOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT__LEFT_OPERAND: + return basicSetLeftOperand(null, msgs); + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT__RIGHT_OPERAND: + return basicSetRightOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT__LEFT_OPERAND: + return getLeftOperand(); + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT__LEFT_MULTIPLICIT: + return getLeftMultiplicit(); + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT__RIGHT_MULTIPLICIT: + return getRightMultiplicit(); + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT__RIGHT_OPERAND: + return getRightOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT__LEFT_OPERAND: + setLeftOperand((ALSTerm)newValue); + return; + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT__LEFT_MULTIPLICIT: + setLeftMultiplicit((ALSMultiplicity)newValue); + return; + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT__RIGHT_MULTIPLICIT: + setRightMultiplicit((ALSMultiplicity)newValue); + return; + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT__RIGHT_OPERAND: + setRightOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT__LEFT_OPERAND: + setLeftOperand((ALSTerm)null); + return; + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT__LEFT_MULTIPLICIT: + setLeftMultiplicit(LEFT_MULTIPLICIT_EDEFAULT); + return; + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT__RIGHT_MULTIPLICIT: + setRightMultiplicit(RIGHT_MULTIPLICIT_EDEFAULT); + return; + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT__RIGHT_OPERAND: + setRightOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT__LEFT_OPERAND: + return leftOperand != null; + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT__LEFT_MULTIPLICIT: + return leftMultiplicit != LEFT_MULTIPLICIT_EDEFAULT; + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT__RIGHT_MULTIPLICIT: + return rightMultiplicit != RIGHT_MULTIPLICIT_EDEFAULT; + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT__RIGHT_OPERAND: + return rightOperand != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (leftMultiplicit: "); + result.append(leftMultiplicit); + result.append(", rightMultiplicit: "); + result.append(rightMultiplicit); + result.append(')'); + return result.toString(); + } + +} //ALSDirectProductImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSDocumentImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSDocumentImpl.java new file mode 100644 index 00000000..008fba7c --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSDocumentImpl.java @@ -0,0 +1,397 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFactDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionDefinition; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDefinition; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRunCommand; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Document'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDocumentImpl#getEnumDeclarations Enum Declarations}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDocumentImpl#getSignatureBodies Signature Bodies}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDocumentImpl#getFunctionDefinitions Function Definitions}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDocumentImpl#getRelationDefinitions Relation Definitions}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDocumentImpl#getFactDeclarations Fact Declarations}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSDocumentImpl#getRunCommand Run Command}
  • + *
+ * + * @generated + */ +public class ALSDocumentImpl extends MinimalEObjectImpl.Container implements ALSDocument +{ + /** + * The cached value of the '{@link #getEnumDeclarations() Enum Declarations}' containment reference list. + * + * + * @see #getEnumDeclarations() + * @generated + * @ordered + */ + protected EList enumDeclarations; + + /** + * The cached value of the '{@link #getSignatureBodies() Signature Bodies}' containment reference list. + * + * + * @see #getSignatureBodies() + * @generated + * @ordered + */ + protected EList signatureBodies; + + /** + * The cached value of the '{@link #getFunctionDefinitions() Function Definitions}' containment reference list. + * + * + * @see #getFunctionDefinitions() + * @generated + * @ordered + */ + protected EList functionDefinitions; + + /** + * The cached value of the '{@link #getRelationDefinitions() Relation Definitions}' containment reference list. + * + * + * @see #getRelationDefinitions() + * @generated + * @ordered + */ + protected EList relationDefinitions; + + /** + * The cached value of the '{@link #getFactDeclarations() Fact Declarations}' containment reference list. + * + * + * @see #getFactDeclarations() + * @generated + * @ordered + */ + protected EList factDeclarations; + + /** + * The cached value of the '{@link #getRunCommand() Run Command}' containment reference. + * + * + * @see #getRunCommand() + * @generated + * @ordered + */ + protected ALSRunCommand runCommand; + + /** + * + * + * @generated + */ + protected ALSDocumentImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_DOCUMENT; + } + + /** + * + * + * @generated + */ + public EList getEnumDeclarations() + { + if (enumDeclarations == null) + { + enumDeclarations = new EObjectContainmentEList(ALSEnumDeclaration.class, this, AlloyLanguagePackage.ALS_DOCUMENT__ENUM_DECLARATIONS); + } + return enumDeclarations; + } + + /** + * + * + * @generated + */ + public EList getSignatureBodies() + { + if (signatureBodies == null) + { + signatureBodies = new EObjectContainmentEList(ALSSignatureBody.class, this, AlloyLanguagePackage.ALS_DOCUMENT__SIGNATURE_BODIES); + } + return signatureBodies; + } + + /** + * + * + * @generated + */ + public EList getFunctionDefinitions() + { + if (functionDefinitions == null) + { + functionDefinitions = new EObjectContainmentEList(ALSFunctionDefinition.class, this, AlloyLanguagePackage.ALS_DOCUMENT__FUNCTION_DEFINITIONS); + } + return functionDefinitions; + } + + /** + * + * + * @generated + */ + public EList getRelationDefinitions() + { + if (relationDefinitions == null) + { + relationDefinitions = new EObjectContainmentEList(ALSRelationDefinition.class, this, AlloyLanguagePackage.ALS_DOCUMENT__RELATION_DEFINITIONS); + } + return relationDefinitions; + } + + /** + * + * + * @generated + */ + public EList getFactDeclarations() + { + if (factDeclarations == null) + { + factDeclarations = new EObjectContainmentEList(ALSFactDeclaration.class, this, AlloyLanguagePackage.ALS_DOCUMENT__FACT_DECLARATIONS); + } + return factDeclarations; + } + + /** + * + * + * @generated + */ + public ALSRunCommand getRunCommand() + { + return runCommand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRunCommand(ALSRunCommand newRunCommand, NotificationChain msgs) + { + ALSRunCommand oldRunCommand = runCommand; + runCommand = newRunCommand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_DOCUMENT__RUN_COMMAND, oldRunCommand, newRunCommand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRunCommand(ALSRunCommand newRunCommand) + { + if (newRunCommand != runCommand) + { + NotificationChain msgs = null; + if (runCommand != null) + msgs = ((InternalEObject)runCommand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_DOCUMENT__RUN_COMMAND, null, msgs); + if (newRunCommand != null) + msgs = ((InternalEObject)newRunCommand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_DOCUMENT__RUN_COMMAND, null, msgs); + msgs = basicSetRunCommand(newRunCommand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_DOCUMENT__RUN_COMMAND, newRunCommand, newRunCommand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_DOCUMENT__ENUM_DECLARATIONS: + return ((InternalEList)getEnumDeclarations()).basicRemove(otherEnd, msgs); + case AlloyLanguagePackage.ALS_DOCUMENT__SIGNATURE_BODIES: + return ((InternalEList)getSignatureBodies()).basicRemove(otherEnd, msgs); + case AlloyLanguagePackage.ALS_DOCUMENT__FUNCTION_DEFINITIONS: + return ((InternalEList)getFunctionDefinitions()).basicRemove(otherEnd, msgs); + case AlloyLanguagePackage.ALS_DOCUMENT__RELATION_DEFINITIONS: + return ((InternalEList)getRelationDefinitions()).basicRemove(otherEnd, msgs); + case AlloyLanguagePackage.ALS_DOCUMENT__FACT_DECLARATIONS: + return ((InternalEList)getFactDeclarations()).basicRemove(otherEnd, msgs); + case AlloyLanguagePackage.ALS_DOCUMENT__RUN_COMMAND: + return basicSetRunCommand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_DOCUMENT__ENUM_DECLARATIONS: + return getEnumDeclarations(); + case AlloyLanguagePackage.ALS_DOCUMENT__SIGNATURE_BODIES: + return getSignatureBodies(); + case AlloyLanguagePackage.ALS_DOCUMENT__FUNCTION_DEFINITIONS: + return getFunctionDefinitions(); + case AlloyLanguagePackage.ALS_DOCUMENT__RELATION_DEFINITIONS: + return getRelationDefinitions(); + case AlloyLanguagePackage.ALS_DOCUMENT__FACT_DECLARATIONS: + return getFactDeclarations(); + case AlloyLanguagePackage.ALS_DOCUMENT__RUN_COMMAND: + return getRunCommand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_DOCUMENT__ENUM_DECLARATIONS: + getEnumDeclarations().clear(); + getEnumDeclarations().addAll((Collection)newValue); + return; + case AlloyLanguagePackage.ALS_DOCUMENT__SIGNATURE_BODIES: + getSignatureBodies().clear(); + getSignatureBodies().addAll((Collection)newValue); + return; + case AlloyLanguagePackage.ALS_DOCUMENT__FUNCTION_DEFINITIONS: + getFunctionDefinitions().clear(); + getFunctionDefinitions().addAll((Collection)newValue); + return; + case AlloyLanguagePackage.ALS_DOCUMENT__RELATION_DEFINITIONS: + getRelationDefinitions().clear(); + getRelationDefinitions().addAll((Collection)newValue); + return; + case AlloyLanguagePackage.ALS_DOCUMENT__FACT_DECLARATIONS: + getFactDeclarations().clear(); + getFactDeclarations().addAll((Collection)newValue); + return; + case AlloyLanguagePackage.ALS_DOCUMENT__RUN_COMMAND: + setRunCommand((ALSRunCommand)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_DOCUMENT__ENUM_DECLARATIONS: + getEnumDeclarations().clear(); + return; + case AlloyLanguagePackage.ALS_DOCUMENT__SIGNATURE_BODIES: + getSignatureBodies().clear(); + return; + case AlloyLanguagePackage.ALS_DOCUMENT__FUNCTION_DEFINITIONS: + getFunctionDefinitions().clear(); + return; + case AlloyLanguagePackage.ALS_DOCUMENT__RELATION_DEFINITIONS: + getRelationDefinitions().clear(); + return; + case AlloyLanguagePackage.ALS_DOCUMENT__FACT_DECLARATIONS: + getFactDeclarations().clear(); + return; + case AlloyLanguagePackage.ALS_DOCUMENT__RUN_COMMAND: + setRunCommand((ALSRunCommand)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_DOCUMENT__ENUM_DECLARATIONS: + return enumDeclarations != null && !enumDeclarations.isEmpty(); + case AlloyLanguagePackage.ALS_DOCUMENT__SIGNATURE_BODIES: + return signatureBodies != null && !signatureBodies.isEmpty(); + case AlloyLanguagePackage.ALS_DOCUMENT__FUNCTION_DEFINITIONS: + return functionDefinitions != null && !functionDefinitions.isEmpty(); + case AlloyLanguagePackage.ALS_DOCUMENT__RELATION_DEFINITIONS: + return relationDefinitions != null && !relationDefinitions.isEmpty(); + case AlloyLanguagePackage.ALS_DOCUMENT__FACT_DECLARATIONS: + return factDeclarations != null && !factDeclarations.isEmpty(); + case AlloyLanguagePackage.ALS_DOCUMENT__RUN_COMMAND: + return runCommand != null; + } + return super.eIsSet(featureID); + } + +} //ALSDocumentImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSEnumDeclarationImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSEnumDeclarationImpl.java new file mode 100644 index 00000000..1b510870 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSEnumDeclarationImpl.java @@ -0,0 +1,165 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumLiteral; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'ALS Enum Declaration'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSEnumDeclarationImpl#getLiteral Literal}
  • + *
+ * + * @generated + */ +public class ALSEnumDeclarationImpl extends ALSTypeDeclarationImpl implements ALSEnumDeclaration +{ + /** + * The cached value of the '{@link #getLiteral() Literal}' containment reference list. + * + * + * @see #getLiteral() + * @generated + * @ordered + */ + protected EList literal; + + /** + * + * + * @generated + */ + protected ALSEnumDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_ENUM_DECLARATION; + } + + /** + * + * + * @generated + */ + public EList getLiteral() + { + if (literal == null) + { + literal = new EObjectContainmentEList(ALSEnumLiteral.class, this, AlloyLanguagePackage.ALS_ENUM_DECLARATION__LITERAL); + } + return literal; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_ENUM_DECLARATION__LITERAL: + return ((InternalEList)getLiteral()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_ENUM_DECLARATION__LITERAL: + return getLiteral(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_ENUM_DECLARATION__LITERAL: + getLiteral().clear(); + getLiteral().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_ENUM_DECLARATION__LITERAL: + getLiteral().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_ENUM_DECLARATION__LITERAL: + return literal != null && !literal.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ALSEnumDeclarationImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSEnumLiteralImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSEnumLiteralImpl.java new file mode 100644 index 00000000..6de8f4f5 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSEnumLiteralImpl.java @@ -0,0 +1,40 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumLiteral; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'ALS Enum Literal'. + * + * + * @generated + */ +public class ALSEnumLiteralImpl extends ALSRelationDeclarationImpl implements ALSEnumLiteral +{ + /** + * + * + * @generated + */ + protected ALSEnumLiteralImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_ENUM_LITERAL; + } + +} //ALSEnumLiteralImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSEqualsImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSEqualsImpl.java new file mode 100644 index 00000000..562013dd --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSEqualsImpl.java @@ -0,0 +1,264 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEquals; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Equals'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSEqualsImpl#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSEqualsImpl#getRightOperand Right Operand}
  • + *
+ * + * @generated + */ +public class ALSEqualsImpl extends ALSTermImpl implements ALSEquals +{ + /** + * The cached value of the '{@link #getLeftOperand() Left Operand}' containment reference. + * + * + * @see #getLeftOperand() + * @generated + * @ordered + */ + protected ALSTerm leftOperand; + + /** + * The cached value of the '{@link #getRightOperand() Right Operand}' containment reference. + * + * + * @see #getRightOperand() + * @generated + * @ordered + */ + protected ALSTerm rightOperand; + + /** + * + * + * @generated + */ + protected ALSEqualsImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_EQUALS; + } + + /** + * + * + * @generated + */ + public ALSTerm getLeftOperand() + { + return leftOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeftOperand(ALSTerm newLeftOperand, NotificationChain msgs) + { + ALSTerm oldLeftOperand = leftOperand; + leftOperand = newLeftOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_EQUALS__LEFT_OPERAND, oldLeftOperand, newLeftOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeftOperand(ALSTerm newLeftOperand) + { + if (newLeftOperand != leftOperand) + { + NotificationChain msgs = null; + if (leftOperand != null) + msgs = ((InternalEObject)leftOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_EQUALS__LEFT_OPERAND, null, msgs); + if (newLeftOperand != null) + msgs = ((InternalEObject)newLeftOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_EQUALS__LEFT_OPERAND, null, msgs); + msgs = basicSetLeftOperand(newLeftOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_EQUALS__LEFT_OPERAND, newLeftOperand, newLeftOperand)); + } + + /** + * + * + * @generated + */ + public ALSTerm getRightOperand() + { + return rightOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRightOperand(ALSTerm newRightOperand, NotificationChain msgs) + { + ALSTerm oldRightOperand = rightOperand; + rightOperand = newRightOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_EQUALS__RIGHT_OPERAND, oldRightOperand, newRightOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRightOperand(ALSTerm newRightOperand) + { + if (newRightOperand != rightOperand) + { + NotificationChain msgs = null; + if (rightOperand != null) + msgs = ((InternalEObject)rightOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_EQUALS__RIGHT_OPERAND, null, msgs); + if (newRightOperand != null) + msgs = ((InternalEObject)newRightOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_EQUALS__RIGHT_OPERAND, null, msgs); + msgs = basicSetRightOperand(newRightOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_EQUALS__RIGHT_OPERAND, newRightOperand, newRightOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_EQUALS__LEFT_OPERAND: + return basicSetLeftOperand(null, msgs); + case AlloyLanguagePackage.ALS_EQUALS__RIGHT_OPERAND: + return basicSetRightOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_EQUALS__LEFT_OPERAND: + return getLeftOperand(); + case AlloyLanguagePackage.ALS_EQUALS__RIGHT_OPERAND: + return getRightOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_EQUALS__LEFT_OPERAND: + setLeftOperand((ALSTerm)newValue); + return; + case AlloyLanguagePackage.ALS_EQUALS__RIGHT_OPERAND: + setRightOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_EQUALS__LEFT_OPERAND: + setLeftOperand((ALSTerm)null); + return; + case AlloyLanguagePackage.ALS_EQUALS__RIGHT_OPERAND: + setRightOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_EQUALS__LEFT_OPERAND: + return leftOperand != null; + case AlloyLanguagePackage.ALS_EQUALS__RIGHT_OPERAND: + return rightOperand != null; + } + return super.eIsSet(featureID); + } + +} //ALSEqualsImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSFactDeclarationImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSFactDeclarationImpl.java new file mode 100644 index 00000000..406c69a8 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSFactDeclarationImpl.java @@ -0,0 +1,265 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFactDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Fact Declaration'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFactDeclarationImpl#getName Name}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFactDeclarationImpl#getTerm Term}
  • + *
+ * + * @generated + */ +public class ALSFactDeclarationImpl extends MinimalEObjectImpl.Container implements ALSFactDeclaration +{ + /** + * 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 #getTerm() Term}' containment reference. + * + * + * @see #getTerm() + * @generated + * @ordered + */ + protected ALSTerm term; + + /** + * + * + * @generated + */ + protected ALSFactDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_FACT_DECLARATION; + } + + /** + * + * + * @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, AlloyLanguagePackage.ALS_FACT_DECLARATION__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + public ALSTerm getTerm() + { + return term; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetTerm(ALSTerm newTerm, NotificationChain msgs) + { + ALSTerm oldTerm = term; + term = newTerm; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_FACT_DECLARATION__TERM, oldTerm, newTerm); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setTerm(ALSTerm newTerm) + { + if (newTerm != term) + { + NotificationChain msgs = null; + if (term != null) + msgs = ((InternalEObject)term).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_FACT_DECLARATION__TERM, null, msgs); + if (newTerm != null) + msgs = ((InternalEObject)newTerm).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_FACT_DECLARATION__TERM, null, msgs); + msgs = basicSetTerm(newTerm, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_FACT_DECLARATION__TERM, newTerm, newTerm)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_FACT_DECLARATION__TERM: + return basicSetTerm(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_FACT_DECLARATION__NAME: + return getName(); + case AlloyLanguagePackage.ALS_FACT_DECLARATION__TERM: + return getTerm(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_FACT_DECLARATION__NAME: + setName((String)newValue); + return; + case AlloyLanguagePackage.ALS_FACT_DECLARATION__TERM: + setTerm((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_FACT_DECLARATION__NAME: + setName(NAME_EDEFAULT); + return; + case AlloyLanguagePackage.ALS_FACT_DECLARATION__TERM: + setTerm((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_FACT_DECLARATION__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case AlloyLanguagePackage.ALS_FACT_DECLARATION__TERM: + return term != 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(')'); + return result.toString(); + } + +} //ALSFactDeclarationImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSFieldDeclarationImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSFieldDeclarationImpl.java new file mode 100644 index 00000000..0bc3aa1c --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSFieldDeclarationImpl.java @@ -0,0 +1,265 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFieldDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Field Declaration'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFieldDeclarationImpl#getMultiplicity Multiplicity}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFieldDeclarationImpl#getType Type}
  • + *
+ * + * @generated + */ +public class ALSFieldDeclarationImpl extends ALSRelationDeclarationImpl implements ALSFieldDeclaration +{ + /** + * The default value of the '{@link #getMultiplicity() Multiplicity}' attribute. + * + * + * @see #getMultiplicity() + * @generated + * @ordered + */ + protected static final ALSMultiplicity MULTIPLICITY_EDEFAULT = ALSMultiplicity.ALL; + + /** + * The cached value of the '{@link #getMultiplicity() Multiplicity}' attribute. + * + * + * @see #getMultiplicity() + * @generated + * @ordered + */ + protected ALSMultiplicity multiplicity = MULTIPLICITY_EDEFAULT; + + /** + * The cached value of the '{@link #getType() Type}' containment reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected ALSTerm type; + + /** + * + * + * @generated + */ + protected ALSFieldDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_FIELD_DECLARATION; + } + + /** + * + * + * @generated + */ + public ALSMultiplicity getMultiplicity() + { + return multiplicity; + } + + /** + * + * + * @generated + */ + public void setMultiplicity(ALSMultiplicity newMultiplicity) + { + ALSMultiplicity oldMultiplicity = multiplicity; + multiplicity = newMultiplicity == null ? MULTIPLICITY_EDEFAULT : newMultiplicity; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_FIELD_DECLARATION__MULTIPLICITY, oldMultiplicity, multiplicity)); + } + + /** + * + * + * @generated + */ + public ALSTerm getType() + { + return type; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetType(ALSTerm newType, NotificationChain msgs) + { + ALSTerm oldType = type; + type = newType; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_FIELD_DECLARATION__TYPE, oldType, newType); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setType(ALSTerm newType) + { + if (newType != type) + { + NotificationChain msgs = null; + if (type != null) + msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_FIELD_DECLARATION__TYPE, null, msgs); + if (newType != null) + msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_FIELD_DECLARATION__TYPE, null, msgs); + msgs = basicSetType(newType, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_FIELD_DECLARATION__TYPE, newType, newType)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_FIELD_DECLARATION__TYPE: + return basicSetType(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_FIELD_DECLARATION__MULTIPLICITY: + return getMultiplicity(); + case AlloyLanguagePackage.ALS_FIELD_DECLARATION__TYPE: + return getType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_FIELD_DECLARATION__MULTIPLICITY: + setMultiplicity((ALSMultiplicity)newValue); + return; + case AlloyLanguagePackage.ALS_FIELD_DECLARATION__TYPE: + setType((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_FIELD_DECLARATION__MULTIPLICITY: + setMultiplicity(MULTIPLICITY_EDEFAULT); + return; + case AlloyLanguagePackage.ALS_FIELD_DECLARATION__TYPE: + setType((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_FIELD_DECLARATION__MULTIPLICITY: + return multiplicity != MULTIPLICITY_EDEFAULT; + case AlloyLanguagePackage.ALS_FIELD_DECLARATION__TYPE: + return type != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (multiplicity: "); + result.append(multiplicity); + result.append(')'); + return result.toString(); + } + +} //ALSFieldDeclarationImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSFunctionCallImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSFunctionCallImpl.java new file mode 100644 index 00000000..f3083503 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSFunctionCallImpl.java @@ -0,0 +1,306 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDefinition; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionCall; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumericOperator; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Function Call'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFunctionCallImpl#getReferredDefinition Referred Definition}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFunctionCallImpl#getReferredNumericOperator Referred Numeric Operator}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFunctionCallImpl#getParams Params}
  • + *
+ * + * @generated + */ +public class ALSFunctionCallImpl extends ALSTermImpl implements ALSFunctionCall +{ + /** + * The cached value of the '{@link #getReferredDefinition() Referred Definition}' reference. + * + * + * @see #getReferredDefinition() + * @generated + * @ordered + */ + protected ALSDefinition referredDefinition; + + /** + * The default value of the '{@link #getReferredNumericOperator() Referred Numeric Operator}' attribute. + * + * + * @see #getReferredNumericOperator() + * @generated + * @ordered + */ + protected static final ALSNumericOperator REFERRED_NUMERIC_OPERATOR_EDEFAULT = ALSNumericOperator.PLUS; + + /** + * The cached value of the '{@link #getReferredNumericOperator() Referred Numeric Operator}' attribute. + * + * + * @see #getReferredNumericOperator() + * @generated + * @ordered + */ + protected ALSNumericOperator referredNumericOperator = REFERRED_NUMERIC_OPERATOR_EDEFAULT; + + /** + * The cached value of the '{@link #getParams() Params}' containment reference list. + * + * + * @see #getParams() + * @generated + * @ordered + */ + protected EList params; + + /** + * + * + * @generated + */ + protected ALSFunctionCallImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_FUNCTION_CALL; + } + + /** + * + * + * @generated + */ + public ALSDefinition getReferredDefinition() + { + if (referredDefinition != null && referredDefinition.eIsProxy()) + { + InternalEObject oldReferredDefinition = (InternalEObject)referredDefinition; + referredDefinition = (ALSDefinition)eResolveProxy(oldReferredDefinition); + if (referredDefinition != oldReferredDefinition) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, AlloyLanguagePackage.ALS_FUNCTION_CALL__REFERRED_DEFINITION, oldReferredDefinition, referredDefinition)); + } + } + return referredDefinition; + } + + /** + * + * + * @generated + */ + public ALSDefinition basicGetReferredDefinition() + { + return referredDefinition; + } + + /** + * + * + * @generated + */ + public void setReferredDefinition(ALSDefinition newReferredDefinition) + { + ALSDefinition oldReferredDefinition = referredDefinition; + referredDefinition = newReferredDefinition; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_FUNCTION_CALL__REFERRED_DEFINITION, oldReferredDefinition, referredDefinition)); + } + + /** + * + * + * @generated + */ + public ALSNumericOperator getReferredNumericOperator() + { + return referredNumericOperator; + } + + /** + * + * + * @generated + */ + public void setReferredNumericOperator(ALSNumericOperator newReferredNumericOperator) + { + ALSNumericOperator oldReferredNumericOperator = referredNumericOperator; + referredNumericOperator = newReferredNumericOperator == null ? REFERRED_NUMERIC_OPERATOR_EDEFAULT : newReferredNumericOperator; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_FUNCTION_CALL__REFERRED_NUMERIC_OPERATOR, oldReferredNumericOperator, referredNumericOperator)); + } + + /** + * + * + * @generated + */ + public EList getParams() + { + if (params == null) + { + params = new EObjectContainmentEList(ALSTerm.class, this, AlloyLanguagePackage.ALS_FUNCTION_CALL__PARAMS); + } + return params; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_FUNCTION_CALL__PARAMS: + return ((InternalEList)getParams()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_FUNCTION_CALL__REFERRED_DEFINITION: + if (resolve) return getReferredDefinition(); + return basicGetReferredDefinition(); + case AlloyLanguagePackage.ALS_FUNCTION_CALL__REFERRED_NUMERIC_OPERATOR: + return getReferredNumericOperator(); + case AlloyLanguagePackage.ALS_FUNCTION_CALL__PARAMS: + return getParams(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_FUNCTION_CALL__REFERRED_DEFINITION: + setReferredDefinition((ALSDefinition)newValue); + return; + case AlloyLanguagePackage.ALS_FUNCTION_CALL__REFERRED_NUMERIC_OPERATOR: + setReferredNumericOperator((ALSNumericOperator)newValue); + return; + case AlloyLanguagePackage.ALS_FUNCTION_CALL__PARAMS: + getParams().clear(); + getParams().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_FUNCTION_CALL__REFERRED_DEFINITION: + setReferredDefinition((ALSDefinition)null); + return; + case AlloyLanguagePackage.ALS_FUNCTION_CALL__REFERRED_NUMERIC_OPERATOR: + setReferredNumericOperator(REFERRED_NUMERIC_OPERATOR_EDEFAULT); + return; + case AlloyLanguagePackage.ALS_FUNCTION_CALL__PARAMS: + getParams().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_FUNCTION_CALL__REFERRED_DEFINITION: + return referredDefinition != null; + case AlloyLanguagePackage.ALS_FUNCTION_CALL__REFERRED_NUMERIC_OPERATOR: + return referredNumericOperator != REFERRED_NUMERIC_OPERATOR_EDEFAULT; + case AlloyLanguagePackage.ALS_FUNCTION_CALL__PARAMS: + return params != null && !params.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (referredNumericOperator: "); + result.append(referredNumericOperator); + result.append(')'); + return result.toString(); + } + +} //ALSFunctionCallImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSFunctionDefinitionImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSFunctionDefinitionImpl.java new file mode 100644 index 00000000..b484da48 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSFunctionDefinitionImpl.java @@ -0,0 +1,193 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionDefinition; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Function Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSFunctionDefinitionImpl#getType Type}
  • + *
+ * + * @generated + */ +public class ALSFunctionDefinitionImpl extends ALSDefinitionImpl implements ALSFunctionDefinition +{ + /** + * The cached value of the '{@link #getType() Type}' containment reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected ALSTerm type; + + /** + * + * + * @generated + */ + protected ALSFunctionDefinitionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_FUNCTION_DEFINITION; + } + + /** + * + * + * @generated + */ + public ALSTerm getType() + { + return type; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetType(ALSTerm newType, NotificationChain msgs) + { + ALSTerm oldType = type; + type = newType; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_FUNCTION_DEFINITION__TYPE, oldType, newType); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setType(ALSTerm newType) + { + if (newType != type) + { + NotificationChain msgs = null; + if (type != null) + msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_FUNCTION_DEFINITION__TYPE, null, msgs); + if (newType != null) + msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_FUNCTION_DEFINITION__TYPE, null, msgs); + msgs = basicSetType(newType, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_FUNCTION_DEFINITION__TYPE, newType, newType)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_FUNCTION_DEFINITION__TYPE: + return basicSetType(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_FUNCTION_DEFINITION__TYPE: + return getType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_FUNCTION_DEFINITION__TYPE: + setType((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_FUNCTION_DEFINITION__TYPE: + setType((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_FUNCTION_DEFINITION__TYPE: + return type != null; + } + return super.eIsSet(featureID); + } + +} //ALSFunctionDefinitionImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSIdenImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSIdenImpl.java new file mode 100644 index 00000000..99d000c7 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSIdenImpl.java @@ -0,0 +1,40 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIden; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'ALS Iden'. + * + * + * @generated + */ +public class ALSIdenImpl extends ALSTermImpl implements ALSIden +{ + /** + * + * + * @generated + */ + protected ALSIdenImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_IDEN; + } + +} //ALSIdenImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSIffImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSIffImpl.java new file mode 100644 index 00000000..33ef6891 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSIffImpl.java @@ -0,0 +1,264 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIff; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Iff'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIffImpl#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIffImpl#getRightOperand Right Operand}
  • + *
+ * + * @generated + */ +public class ALSIffImpl extends ALSTermImpl implements ALSIff +{ + /** + * The cached value of the '{@link #getLeftOperand() Left Operand}' containment reference. + * + * + * @see #getLeftOperand() + * @generated + * @ordered + */ + protected ALSTerm leftOperand; + + /** + * The cached value of the '{@link #getRightOperand() Right Operand}' containment reference. + * + * + * @see #getRightOperand() + * @generated + * @ordered + */ + protected ALSTerm rightOperand; + + /** + * + * + * @generated + */ + protected ALSIffImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_IFF; + } + + /** + * + * + * @generated + */ + public ALSTerm getLeftOperand() + { + return leftOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeftOperand(ALSTerm newLeftOperand, NotificationChain msgs) + { + ALSTerm oldLeftOperand = leftOperand; + leftOperand = newLeftOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_IFF__LEFT_OPERAND, oldLeftOperand, newLeftOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeftOperand(ALSTerm newLeftOperand) + { + if (newLeftOperand != leftOperand) + { + NotificationChain msgs = null; + if (leftOperand != null) + msgs = ((InternalEObject)leftOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_IFF__LEFT_OPERAND, null, msgs); + if (newLeftOperand != null) + msgs = ((InternalEObject)newLeftOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_IFF__LEFT_OPERAND, null, msgs); + msgs = basicSetLeftOperand(newLeftOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_IFF__LEFT_OPERAND, newLeftOperand, newLeftOperand)); + } + + /** + * + * + * @generated + */ + public ALSTerm getRightOperand() + { + return rightOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRightOperand(ALSTerm newRightOperand, NotificationChain msgs) + { + ALSTerm oldRightOperand = rightOperand; + rightOperand = newRightOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_IFF__RIGHT_OPERAND, oldRightOperand, newRightOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRightOperand(ALSTerm newRightOperand) + { + if (newRightOperand != rightOperand) + { + NotificationChain msgs = null; + if (rightOperand != null) + msgs = ((InternalEObject)rightOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_IFF__RIGHT_OPERAND, null, msgs); + if (newRightOperand != null) + msgs = ((InternalEObject)newRightOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_IFF__RIGHT_OPERAND, null, msgs); + msgs = basicSetRightOperand(newRightOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_IFF__RIGHT_OPERAND, newRightOperand, newRightOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_IFF__LEFT_OPERAND: + return basicSetLeftOperand(null, msgs); + case AlloyLanguagePackage.ALS_IFF__RIGHT_OPERAND: + return basicSetRightOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_IFF__LEFT_OPERAND: + return getLeftOperand(); + case AlloyLanguagePackage.ALS_IFF__RIGHT_OPERAND: + return getRightOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_IFF__LEFT_OPERAND: + setLeftOperand((ALSTerm)newValue); + return; + case AlloyLanguagePackage.ALS_IFF__RIGHT_OPERAND: + setRightOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_IFF__LEFT_OPERAND: + setLeftOperand((ALSTerm)null); + return; + case AlloyLanguagePackage.ALS_IFF__RIGHT_OPERAND: + setRightOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_IFF__LEFT_OPERAND: + return leftOperand != null; + case AlloyLanguagePackage.ALS_IFF__RIGHT_OPERAND: + return rightOperand != null; + } + return super.eIsSet(featureID); + } + +} //ALSIffImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSImplImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSImplImpl.java new file mode 100644 index 00000000..a16c6239 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSImplImpl.java @@ -0,0 +1,335 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSImpl; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Impl'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSImplImpl#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSImplImpl#getRightOperand Right Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSImplImpl#getElseOperand Else Operand}
  • + *
+ * + * @generated + */ +public class ALSImplImpl extends ALSTermImpl implements ALSImpl +{ + /** + * The cached value of the '{@link #getLeftOperand() Left Operand}' containment reference. + * + * + * @see #getLeftOperand() + * @generated + * @ordered + */ + protected ALSTerm leftOperand; + + /** + * The cached value of the '{@link #getRightOperand() Right Operand}' containment reference. + * + * + * @see #getRightOperand() + * @generated + * @ordered + */ + protected ALSTerm rightOperand; + + /** + * The cached value of the '{@link #getElseOperand() Else Operand}' containment reference. + * + * + * @see #getElseOperand() + * @generated + * @ordered + */ + protected ALSTerm elseOperand; + + /** + * + * + * @generated + */ + protected ALSImplImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_IMPL; + } + + /** + * + * + * @generated + */ + public ALSTerm getLeftOperand() + { + return leftOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeftOperand(ALSTerm newLeftOperand, NotificationChain msgs) + { + ALSTerm oldLeftOperand = leftOperand; + leftOperand = newLeftOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_IMPL__LEFT_OPERAND, oldLeftOperand, newLeftOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeftOperand(ALSTerm newLeftOperand) + { + if (newLeftOperand != leftOperand) + { + NotificationChain msgs = null; + if (leftOperand != null) + msgs = ((InternalEObject)leftOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_IMPL__LEFT_OPERAND, null, msgs); + if (newLeftOperand != null) + msgs = ((InternalEObject)newLeftOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_IMPL__LEFT_OPERAND, null, msgs); + msgs = basicSetLeftOperand(newLeftOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_IMPL__LEFT_OPERAND, newLeftOperand, newLeftOperand)); + } + + /** + * + * + * @generated + */ + public ALSTerm getRightOperand() + { + return rightOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRightOperand(ALSTerm newRightOperand, NotificationChain msgs) + { + ALSTerm oldRightOperand = rightOperand; + rightOperand = newRightOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_IMPL__RIGHT_OPERAND, oldRightOperand, newRightOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRightOperand(ALSTerm newRightOperand) + { + if (newRightOperand != rightOperand) + { + NotificationChain msgs = null; + if (rightOperand != null) + msgs = ((InternalEObject)rightOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_IMPL__RIGHT_OPERAND, null, msgs); + if (newRightOperand != null) + msgs = ((InternalEObject)newRightOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_IMPL__RIGHT_OPERAND, null, msgs); + msgs = basicSetRightOperand(newRightOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_IMPL__RIGHT_OPERAND, newRightOperand, newRightOperand)); + } + + /** + * + * + * @generated + */ + public ALSTerm getElseOperand() + { + return elseOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetElseOperand(ALSTerm newElseOperand, NotificationChain msgs) + { + ALSTerm oldElseOperand = elseOperand; + elseOperand = newElseOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_IMPL__ELSE_OPERAND, oldElseOperand, newElseOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setElseOperand(ALSTerm newElseOperand) + { + if (newElseOperand != elseOperand) + { + NotificationChain msgs = null; + if (elseOperand != null) + msgs = ((InternalEObject)elseOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_IMPL__ELSE_OPERAND, null, msgs); + if (newElseOperand != null) + msgs = ((InternalEObject)newElseOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_IMPL__ELSE_OPERAND, null, msgs); + msgs = basicSetElseOperand(newElseOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_IMPL__ELSE_OPERAND, newElseOperand, newElseOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_IMPL__LEFT_OPERAND: + return basicSetLeftOperand(null, msgs); + case AlloyLanguagePackage.ALS_IMPL__RIGHT_OPERAND: + return basicSetRightOperand(null, msgs); + case AlloyLanguagePackage.ALS_IMPL__ELSE_OPERAND: + return basicSetElseOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_IMPL__LEFT_OPERAND: + return getLeftOperand(); + case AlloyLanguagePackage.ALS_IMPL__RIGHT_OPERAND: + return getRightOperand(); + case AlloyLanguagePackage.ALS_IMPL__ELSE_OPERAND: + return getElseOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_IMPL__LEFT_OPERAND: + setLeftOperand((ALSTerm)newValue); + return; + case AlloyLanguagePackage.ALS_IMPL__RIGHT_OPERAND: + setRightOperand((ALSTerm)newValue); + return; + case AlloyLanguagePackage.ALS_IMPL__ELSE_OPERAND: + setElseOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_IMPL__LEFT_OPERAND: + setLeftOperand((ALSTerm)null); + return; + case AlloyLanguagePackage.ALS_IMPL__RIGHT_OPERAND: + setRightOperand((ALSTerm)null); + return; + case AlloyLanguagePackage.ALS_IMPL__ELSE_OPERAND: + setElseOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_IMPL__LEFT_OPERAND: + return leftOperand != null; + case AlloyLanguagePackage.ALS_IMPL__RIGHT_OPERAND: + return rightOperand != null; + case AlloyLanguagePackage.ALS_IMPL__ELSE_OPERAND: + return elseOperand != null; + } + return super.eIsSet(featureID); + } + +} //ALSImplImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSIntImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSIntImpl.java new file mode 100644 index 00000000..46481f79 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSIntImpl.java @@ -0,0 +1,40 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSInt; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'ALS Int'. + * + * + * @generated + */ +public class ALSIntImpl extends ALSTermImpl implements ALSInt +{ + /** + * + * + * @generated + */ + protected ALSIntImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_INT; + } + +} //ALSIntImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSIntScopeImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSIntScopeImpl.java new file mode 100644 index 00000000..a7beb21b --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSIntScopeImpl.java @@ -0,0 +1,40 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntScope; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'ALS Int Scope'. + * + * + * @generated + */ +public class ALSIntScopeImpl extends ALSTypeScopeImpl implements ALSIntScope +{ + /** + * + * + * @generated + */ + protected ALSIntScopeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_INT_SCOPE; + } + +} //ALSIntScopeImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSIntersectionImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSIntersectionImpl.java new file mode 100644 index 00000000..020d2322 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSIntersectionImpl.java @@ -0,0 +1,264 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntersection; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Intersection'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIntersectionImpl#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSIntersectionImpl#getRightOperand Right Operand}
  • + *
+ * + * @generated + */ +public class ALSIntersectionImpl extends ALSTermImpl implements ALSIntersection +{ + /** + * The cached value of the '{@link #getLeftOperand() Left Operand}' containment reference. + * + * + * @see #getLeftOperand() + * @generated + * @ordered + */ + protected ALSTerm leftOperand; + + /** + * The cached value of the '{@link #getRightOperand() Right Operand}' containment reference. + * + * + * @see #getRightOperand() + * @generated + * @ordered + */ + protected ALSTerm rightOperand; + + /** + * + * + * @generated + */ + protected ALSIntersectionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_INTERSECTION; + } + + /** + * + * + * @generated + */ + public ALSTerm getLeftOperand() + { + return leftOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeftOperand(ALSTerm newLeftOperand, NotificationChain msgs) + { + ALSTerm oldLeftOperand = leftOperand; + leftOperand = newLeftOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_INTERSECTION__LEFT_OPERAND, oldLeftOperand, newLeftOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeftOperand(ALSTerm newLeftOperand) + { + if (newLeftOperand != leftOperand) + { + NotificationChain msgs = null; + if (leftOperand != null) + msgs = ((InternalEObject)leftOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_INTERSECTION__LEFT_OPERAND, null, msgs); + if (newLeftOperand != null) + msgs = ((InternalEObject)newLeftOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_INTERSECTION__LEFT_OPERAND, null, msgs); + msgs = basicSetLeftOperand(newLeftOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_INTERSECTION__LEFT_OPERAND, newLeftOperand, newLeftOperand)); + } + + /** + * + * + * @generated + */ + public ALSTerm getRightOperand() + { + return rightOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRightOperand(ALSTerm newRightOperand, NotificationChain msgs) + { + ALSTerm oldRightOperand = rightOperand; + rightOperand = newRightOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_INTERSECTION__RIGHT_OPERAND, oldRightOperand, newRightOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRightOperand(ALSTerm newRightOperand) + { + if (newRightOperand != rightOperand) + { + NotificationChain msgs = null; + if (rightOperand != null) + msgs = ((InternalEObject)rightOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_INTERSECTION__RIGHT_OPERAND, null, msgs); + if (newRightOperand != null) + msgs = ((InternalEObject)newRightOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_INTERSECTION__RIGHT_OPERAND, null, msgs); + msgs = basicSetRightOperand(newRightOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_INTERSECTION__RIGHT_OPERAND, newRightOperand, newRightOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_INTERSECTION__LEFT_OPERAND: + return basicSetLeftOperand(null, msgs); + case AlloyLanguagePackage.ALS_INTERSECTION__RIGHT_OPERAND: + return basicSetRightOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_INTERSECTION__LEFT_OPERAND: + return getLeftOperand(); + case AlloyLanguagePackage.ALS_INTERSECTION__RIGHT_OPERAND: + return getRightOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_INTERSECTION__LEFT_OPERAND: + setLeftOperand((ALSTerm)newValue); + return; + case AlloyLanguagePackage.ALS_INTERSECTION__RIGHT_OPERAND: + setRightOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_INTERSECTION__LEFT_OPERAND: + setLeftOperand((ALSTerm)null); + return; + case AlloyLanguagePackage.ALS_INTERSECTION__RIGHT_OPERAND: + setRightOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_INTERSECTION__LEFT_OPERAND: + return leftOperand != null; + case AlloyLanguagePackage.ALS_INTERSECTION__RIGHT_OPERAND: + return rightOperand != null; + } + return super.eIsSet(featureID); + } + +} //ALSIntersectionImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSInverseRelationImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSInverseRelationImpl.java new file mode 100644 index 00000000..916ba94f --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSInverseRelationImpl.java @@ -0,0 +1,193 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSInverseRelation; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Inverse Relation'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSInverseRelationImpl#getOperand Operand}
  • + *
+ * + * @generated + */ +public class ALSInverseRelationImpl extends ALSTermImpl implements ALSInverseRelation +{ + /** + * The cached value of the '{@link #getOperand() Operand}' containment reference. + * + * + * @see #getOperand() + * @generated + * @ordered + */ + protected ALSTerm operand; + + /** + * + * + * @generated + */ + protected ALSInverseRelationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_INVERSE_RELATION; + } + + /** + * + * + * @generated + */ + public ALSTerm getOperand() + { + return operand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOperand(ALSTerm newOperand, NotificationChain msgs) + { + ALSTerm oldOperand = operand; + operand = newOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_INVERSE_RELATION__OPERAND, oldOperand, newOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setOperand(ALSTerm newOperand) + { + if (newOperand != operand) + { + NotificationChain msgs = null; + if (operand != null) + msgs = ((InternalEObject)operand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_INVERSE_RELATION__OPERAND, null, msgs); + if (newOperand != null) + msgs = ((InternalEObject)newOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_INVERSE_RELATION__OPERAND, null, msgs); + msgs = basicSetOperand(newOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_INVERSE_RELATION__OPERAND, newOperand, newOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_INVERSE_RELATION__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 AlloyLanguagePackage.ALS_INVERSE_RELATION__OPERAND: + return getOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_INVERSE_RELATION__OPERAND: + setOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_INVERSE_RELATION__OPERAND: + setOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_INVERSE_RELATION__OPERAND: + return operand != null; + } + return super.eIsSet(featureID); + } + +} //ALSInverseRelationImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSJoinImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSJoinImpl.java new file mode 100644 index 00000000..edf5c551 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSJoinImpl.java @@ -0,0 +1,264 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSJoin; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Join'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSJoinImpl#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSJoinImpl#getRightOperand Right Operand}
  • + *
+ * + * @generated + */ +public class ALSJoinImpl extends ALSTermImpl implements ALSJoin +{ + /** + * The cached value of the '{@link #getLeftOperand() Left Operand}' containment reference. + * + * + * @see #getLeftOperand() + * @generated + * @ordered + */ + protected ALSTerm leftOperand; + + /** + * The cached value of the '{@link #getRightOperand() Right Operand}' containment reference. + * + * + * @see #getRightOperand() + * @generated + * @ordered + */ + protected ALSTerm rightOperand; + + /** + * + * + * @generated + */ + protected ALSJoinImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_JOIN; + } + + /** + * + * + * @generated + */ + public ALSTerm getLeftOperand() + { + return leftOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeftOperand(ALSTerm newLeftOperand, NotificationChain msgs) + { + ALSTerm oldLeftOperand = leftOperand; + leftOperand = newLeftOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_JOIN__LEFT_OPERAND, oldLeftOperand, newLeftOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeftOperand(ALSTerm newLeftOperand) + { + if (newLeftOperand != leftOperand) + { + NotificationChain msgs = null; + if (leftOperand != null) + msgs = ((InternalEObject)leftOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_JOIN__LEFT_OPERAND, null, msgs); + if (newLeftOperand != null) + msgs = ((InternalEObject)newLeftOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_JOIN__LEFT_OPERAND, null, msgs); + msgs = basicSetLeftOperand(newLeftOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_JOIN__LEFT_OPERAND, newLeftOperand, newLeftOperand)); + } + + /** + * + * + * @generated + */ + public ALSTerm getRightOperand() + { + return rightOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRightOperand(ALSTerm newRightOperand, NotificationChain msgs) + { + ALSTerm oldRightOperand = rightOperand; + rightOperand = newRightOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_JOIN__RIGHT_OPERAND, oldRightOperand, newRightOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRightOperand(ALSTerm newRightOperand) + { + if (newRightOperand != rightOperand) + { + NotificationChain msgs = null; + if (rightOperand != null) + msgs = ((InternalEObject)rightOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_JOIN__RIGHT_OPERAND, null, msgs); + if (newRightOperand != null) + msgs = ((InternalEObject)newRightOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_JOIN__RIGHT_OPERAND, null, msgs); + msgs = basicSetRightOperand(newRightOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_JOIN__RIGHT_OPERAND, newRightOperand, newRightOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_JOIN__LEFT_OPERAND: + return basicSetLeftOperand(null, msgs); + case AlloyLanguagePackage.ALS_JOIN__RIGHT_OPERAND: + return basicSetRightOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_JOIN__LEFT_OPERAND: + return getLeftOperand(); + case AlloyLanguagePackage.ALS_JOIN__RIGHT_OPERAND: + return getRightOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_JOIN__LEFT_OPERAND: + setLeftOperand((ALSTerm)newValue); + return; + case AlloyLanguagePackage.ALS_JOIN__RIGHT_OPERAND: + setRightOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_JOIN__LEFT_OPERAND: + setLeftOperand((ALSTerm)null); + return; + case AlloyLanguagePackage.ALS_JOIN__RIGHT_OPERAND: + setRightOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_JOIN__LEFT_OPERAND: + return leftOperand != null; + case AlloyLanguagePackage.ALS_JOIN__RIGHT_OPERAND: + return rightOperand != null; + } + return super.eIsSet(featureID); + } + +} //ALSJoinImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSLeqImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSLeqImpl.java new file mode 100644 index 00000000..be88c9bb --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSLeqImpl.java @@ -0,0 +1,264 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLeq; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Leq'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSLeqImpl#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSLeqImpl#getRightOperand Right Operand}
  • + *
+ * + * @generated + */ +public class ALSLeqImpl extends ALSTermImpl implements ALSLeq +{ + /** + * The cached value of the '{@link #getLeftOperand() Left Operand}' containment reference. + * + * + * @see #getLeftOperand() + * @generated + * @ordered + */ + protected ALSTerm leftOperand; + + /** + * The cached value of the '{@link #getRightOperand() Right Operand}' containment reference. + * + * + * @see #getRightOperand() + * @generated + * @ordered + */ + protected ALSTerm rightOperand; + + /** + * + * + * @generated + */ + protected ALSLeqImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_LEQ; + } + + /** + * + * + * @generated + */ + public ALSTerm getLeftOperand() + { + return leftOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeftOperand(ALSTerm newLeftOperand, NotificationChain msgs) + { + ALSTerm oldLeftOperand = leftOperand; + leftOperand = newLeftOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_LEQ__LEFT_OPERAND, oldLeftOperand, newLeftOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeftOperand(ALSTerm newLeftOperand) + { + if (newLeftOperand != leftOperand) + { + NotificationChain msgs = null; + if (leftOperand != null) + msgs = ((InternalEObject)leftOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_LEQ__LEFT_OPERAND, null, msgs); + if (newLeftOperand != null) + msgs = ((InternalEObject)newLeftOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_LEQ__LEFT_OPERAND, null, msgs); + msgs = basicSetLeftOperand(newLeftOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_LEQ__LEFT_OPERAND, newLeftOperand, newLeftOperand)); + } + + /** + * + * + * @generated + */ + public ALSTerm getRightOperand() + { + return rightOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRightOperand(ALSTerm newRightOperand, NotificationChain msgs) + { + ALSTerm oldRightOperand = rightOperand; + rightOperand = newRightOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_LEQ__RIGHT_OPERAND, oldRightOperand, newRightOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRightOperand(ALSTerm newRightOperand) + { + if (newRightOperand != rightOperand) + { + NotificationChain msgs = null; + if (rightOperand != null) + msgs = ((InternalEObject)rightOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_LEQ__RIGHT_OPERAND, null, msgs); + if (newRightOperand != null) + msgs = ((InternalEObject)newRightOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_LEQ__RIGHT_OPERAND, null, msgs); + msgs = basicSetRightOperand(newRightOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_LEQ__RIGHT_OPERAND, newRightOperand, newRightOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_LEQ__LEFT_OPERAND: + return basicSetLeftOperand(null, msgs); + case AlloyLanguagePackage.ALS_LEQ__RIGHT_OPERAND: + return basicSetRightOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_LEQ__LEFT_OPERAND: + return getLeftOperand(); + case AlloyLanguagePackage.ALS_LEQ__RIGHT_OPERAND: + return getRightOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_LEQ__LEFT_OPERAND: + setLeftOperand((ALSTerm)newValue); + return; + case AlloyLanguagePackage.ALS_LEQ__RIGHT_OPERAND: + setRightOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_LEQ__LEFT_OPERAND: + setLeftOperand((ALSTerm)null); + return; + case AlloyLanguagePackage.ALS_LEQ__RIGHT_OPERAND: + setRightOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_LEQ__LEFT_OPERAND: + return leftOperand != null; + case AlloyLanguagePackage.ALS_LEQ__RIGHT_OPERAND: + return rightOperand != null; + } + return super.eIsSet(featureID); + } + +} //ALSLeqImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSLessImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSLessImpl.java new file mode 100644 index 00000000..4c6b4282 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSLessImpl.java @@ -0,0 +1,264 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLess; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Less'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSLessImpl#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSLessImpl#getRightOperand Right Operand}
  • + *
+ * + * @generated + */ +public class ALSLessImpl extends ALSTermImpl implements ALSLess +{ + /** + * The cached value of the '{@link #getLeftOperand() Left Operand}' containment reference. + * + * + * @see #getLeftOperand() + * @generated + * @ordered + */ + protected ALSTerm leftOperand; + + /** + * The cached value of the '{@link #getRightOperand() Right Operand}' containment reference. + * + * + * @see #getRightOperand() + * @generated + * @ordered + */ + protected ALSTerm rightOperand; + + /** + * + * + * @generated + */ + protected ALSLessImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_LESS; + } + + /** + * + * + * @generated + */ + public ALSTerm getLeftOperand() + { + return leftOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeftOperand(ALSTerm newLeftOperand, NotificationChain msgs) + { + ALSTerm oldLeftOperand = leftOperand; + leftOperand = newLeftOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_LESS__LEFT_OPERAND, oldLeftOperand, newLeftOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeftOperand(ALSTerm newLeftOperand) + { + if (newLeftOperand != leftOperand) + { + NotificationChain msgs = null; + if (leftOperand != null) + msgs = ((InternalEObject)leftOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_LESS__LEFT_OPERAND, null, msgs); + if (newLeftOperand != null) + msgs = ((InternalEObject)newLeftOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_LESS__LEFT_OPERAND, null, msgs); + msgs = basicSetLeftOperand(newLeftOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_LESS__LEFT_OPERAND, newLeftOperand, newLeftOperand)); + } + + /** + * + * + * @generated + */ + public ALSTerm getRightOperand() + { + return rightOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRightOperand(ALSTerm newRightOperand, NotificationChain msgs) + { + ALSTerm oldRightOperand = rightOperand; + rightOperand = newRightOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_LESS__RIGHT_OPERAND, oldRightOperand, newRightOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRightOperand(ALSTerm newRightOperand) + { + if (newRightOperand != rightOperand) + { + NotificationChain msgs = null; + if (rightOperand != null) + msgs = ((InternalEObject)rightOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_LESS__RIGHT_OPERAND, null, msgs); + if (newRightOperand != null) + msgs = ((InternalEObject)newRightOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_LESS__RIGHT_OPERAND, null, msgs); + msgs = basicSetRightOperand(newRightOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_LESS__RIGHT_OPERAND, newRightOperand, newRightOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_LESS__LEFT_OPERAND: + return basicSetLeftOperand(null, msgs); + case AlloyLanguagePackage.ALS_LESS__RIGHT_OPERAND: + return basicSetRightOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_LESS__LEFT_OPERAND: + return getLeftOperand(); + case AlloyLanguagePackage.ALS_LESS__RIGHT_OPERAND: + return getRightOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_LESS__LEFT_OPERAND: + setLeftOperand((ALSTerm)newValue); + return; + case AlloyLanguagePackage.ALS_LESS__RIGHT_OPERAND: + setRightOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_LESS__LEFT_OPERAND: + setLeftOperand((ALSTerm)null); + return; + case AlloyLanguagePackage.ALS_LESS__RIGHT_OPERAND: + setRightOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_LESS__LEFT_OPERAND: + return leftOperand != null; + case AlloyLanguagePackage.ALS_LESS__RIGHT_OPERAND: + return rightOperand != null; + } + return super.eIsSet(featureID); + } + +} //ALSLessImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSMeqImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSMeqImpl.java new file mode 100644 index 00000000..13b95995 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSMeqImpl.java @@ -0,0 +1,264 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMeq; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Meq'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSMeqImpl#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSMeqImpl#getRightOperand Right Operand}
  • + *
+ * + * @generated + */ +public class ALSMeqImpl extends ALSTermImpl implements ALSMeq +{ + /** + * The cached value of the '{@link #getLeftOperand() Left Operand}' containment reference. + * + * + * @see #getLeftOperand() + * @generated + * @ordered + */ + protected ALSTerm leftOperand; + + /** + * The cached value of the '{@link #getRightOperand() Right Operand}' containment reference. + * + * + * @see #getRightOperand() + * @generated + * @ordered + */ + protected ALSTerm rightOperand; + + /** + * + * + * @generated + */ + protected ALSMeqImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_MEQ; + } + + /** + * + * + * @generated + */ + public ALSTerm getLeftOperand() + { + return leftOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeftOperand(ALSTerm newLeftOperand, NotificationChain msgs) + { + ALSTerm oldLeftOperand = leftOperand; + leftOperand = newLeftOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_MEQ__LEFT_OPERAND, oldLeftOperand, newLeftOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeftOperand(ALSTerm newLeftOperand) + { + if (newLeftOperand != leftOperand) + { + NotificationChain msgs = null; + if (leftOperand != null) + msgs = ((InternalEObject)leftOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_MEQ__LEFT_OPERAND, null, msgs); + if (newLeftOperand != null) + msgs = ((InternalEObject)newLeftOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_MEQ__LEFT_OPERAND, null, msgs); + msgs = basicSetLeftOperand(newLeftOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_MEQ__LEFT_OPERAND, newLeftOperand, newLeftOperand)); + } + + /** + * + * + * @generated + */ + public ALSTerm getRightOperand() + { + return rightOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRightOperand(ALSTerm newRightOperand, NotificationChain msgs) + { + ALSTerm oldRightOperand = rightOperand; + rightOperand = newRightOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_MEQ__RIGHT_OPERAND, oldRightOperand, newRightOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRightOperand(ALSTerm newRightOperand) + { + if (newRightOperand != rightOperand) + { + NotificationChain msgs = null; + if (rightOperand != null) + msgs = ((InternalEObject)rightOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_MEQ__RIGHT_OPERAND, null, msgs); + if (newRightOperand != null) + msgs = ((InternalEObject)newRightOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_MEQ__RIGHT_OPERAND, null, msgs); + msgs = basicSetRightOperand(newRightOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_MEQ__RIGHT_OPERAND, newRightOperand, newRightOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_MEQ__LEFT_OPERAND: + return basicSetLeftOperand(null, msgs); + case AlloyLanguagePackage.ALS_MEQ__RIGHT_OPERAND: + return basicSetRightOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_MEQ__LEFT_OPERAND: + return getLeftOperand(); + case AlloyLanguagePackage.ALS_MEQ__RIGHT_OPERAND: + return getRightOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_MEQ__LEFT_OPERAND: + setLeftOperand((ALSTerm)newValue); + return; + case AlloyLanguagePackage.ALS_MEQ__RIGHT_OPERAND: + setRightOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_MEQ__LEFT_OPERAND: + setLeftOperand((ALSTerm)null); + return; + case AlloyLanguagePackage.ALS_MEQ__RIGHT_OPERAND: + setRightOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_MEQ__LEFT_OPERAND: + return leftOperand != null; + case AlloyLanguagePackage.ALS_MEQ__RIGHT_OPERAND: + return rightOperand != null; + } + return super.eIsSet(featureID); + } + +} //ALSMeqImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSMinusImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSMinusImpl.java new file mode 100644 index 00000000..974e1b46 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSMinusImpl.java @@ -0,0 +1,264 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMinus; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Minus'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSMinusImpl#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSMinusImpl#getRightOperand Right Operand}
  • + *
+ * + * @generated + */ +public class ALSMinusImpl extends ALSTermImpl implements ALSMinus +{ + /** + * The cached value of the '{@link #getLeftOperand() Left Operand}' containment reference. + * + * + * @see #getLeftOperand() + * @generated + * @ordered + */ + protected ALSTerm leftOperand; + + /** + * The cached value of the '{@link #getRightOperand() Right Operand}' containment reference. + * + * + * @see #getRightOperand() + * @generated + * @ordered + */ + protected ALSTerm rightOperand; + + /** + * + * + * @generated + */ + protected ALSMinusImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_MINUS; + } + + /** + * + * + * @generated + */ + public ALSTerm getLeftOperand() + { + return leftOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeftOperand(ALSTerm newLeftOperand, NotificationChain msgs) + { + ALSTerm oldLeftOperand = leftOperand; + leftOperand = newLeftOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_MINUS__LEFT_OPERAND, oldLeftOperand, newLeftOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeftOperand(ALSTerm newLeftOperand) + { + if (newLeftOperand != leftOperand) + { + NotificationChain msgs = null; + if (leftOperand != null) + msgs = ((InternalEObject)leftOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_MINUS__LEFT_OPERAND, null, msgs); + if (newLeftOperand != null) + msgs = ((InternalEObject)newLeftOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_MINUS__LEFT_OPERAND, null, msgs); + msgs = basicSetLeftOperand(newLeftOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_MINUS__LEFT_OPERAND, newLeftOperand, newLeftOperand)); + } + + /** + * + * + * @generated + */ + public ALSTerm getRightOperand() + { + return rightOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRightOperand(ALSTerm newRightOperand, NotificationChain msgs) + { + ALSTerm oldRightOperand = rightOperand; + rightOperand = newRightOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_MINUS__RIGHT_OPERAND, oldRightOperand, newRightOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRightOperand(ALSTerm newRightOperand) + { + if (newRightOperand != rightOperand) + { + NotificationChain msgs = null; + if (rightOperand != null) + msgs = ((InternalEObject)rightOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_MINUS__RIGHT_OPERAND, null, msgs); + if (newRightOperand != null) + msgs = ((InternalEObject)newRightOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_MINUS__RIGHT_OPERAND, null, msgs); + msgs = basicSetRightOperand(newRightOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_MINUS__RIGHT_OPERAND, newRightOperand, newRightOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_MINUS__LEFT_OPERAND: + return basicSetLeftOperand(null, msgs); + case AlloyLanguagePackage.ALS_MINUS__RIGHT_OPERAND: + return basicSetRightOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_MINUS__LEFT_OPERAND: + return getLeftOperand(); + case AlloyLanguagePackage.ALS_MINUS__RIGHT_OPERAND: + return getRightOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_MINUS__LEFT_OPERAND: + setLeftOperand((ALSTerm)newValue); + return; + case AlloyLanguagePackage.ALS_MINUS__RIGHT_OPERAND: + setRightOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_MINUS__LEFT_OPERAND: + setLeftOperand((ALSTerm)null); + return; + case AlloyLanguagePackage.ALS_MINUS__RIGHT_OPERAND: + setRightOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_MINUS__LEFT_OPERAND: + return leftOperand != null; + case AlloyLanguagePackage.ALS_MINUS__RIGHT_OPERAND: + return rightOperand != null; + } + return super.eIsSet(featureID); + } + +} //ALSMinusImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSMoreImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSMoreImpl.java new file mode 100644 index 00000000..9180d68f --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSMoreImpl.java @@ -0,0 +1,264 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMore; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS More'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSMoreImpl#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSMoreImpl#getRightOperand Right Operand}
  • + *
+ * + * @generated + */ +public class ALSMoreImpl extends ALSTermImpl implements ALSMore +{ + /** + * The cached value of the '{@link #getLeftOperand() Left Operand}' containment reference. + * + * + * @see #getLeftOperand() + * @generated + * @ordered + */ + protected ALSTerm leftOperand; + + /** + * The cached value of the '{@link #getRightOperand() Right Operand}' containment reference. + * + * + * @see #getRightOperand() + * @generated + * @ordered + */ + protected ALSTerm rightOperand; + + /** + * + * + * @generated + */ + protected ALSMoreImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_MORE; + } + + /** + * + * + * @generated + */ + public ALSTerm getLeftOperand() + { + return leftOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeftOperand(ALSTerm newLeftOperand, NotificationChain msgs) + { + ALSTerm oldLeftOperand = leftOperand; + leftOperand = newLeftOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_MORE__LEFT_OPERAND, oldLeftOperand, newLeftOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeftOperand(ALSTerm newLeftOperand) + { + if (newLeftOperand != leftOperand) + { + NotificationChain msgs = null; + if (leftOperand != null) + msgs = ((InternalEObject)leftOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_MORE__LEFT_OPERAND, null, msgs); + if (newLeftOperand != null) + msgs = ((InternalEObject)newLeftOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_MORE__LEFT_OPERAND, null, msgs); + msgs = basicSetLeftOperand(newLeftOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_MORE__LEFT_OPERAND, newLeftOperand, newLeftOperand)); + } + + /** + * + * + * @generated + */ + public ALSTerm getRightOperand() + { + return rightOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRightOperand(ALSTerm newRightOperand, NotificationChain msgs) + { + ALSTerm oldRightOperand = rightOperand; + rightOperand = newRightOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_MORE__RIGHT_OPERAND, oldRightOperand, newRightOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRightOperand(ALSTerm newRightOperand) + { + if (newRightOperand != rightOperand) + { + NotificationChain msgs = null; + if (rightOperand != null) + msgs = ((InternalEObject)rightOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_MORE__RIGHT_OPERAND, null, msgs); + if (newRightOperand != null) + msgs = ((InternalEObject)newRightOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_MORE__RIGHT_OPERAND, null, msgs); + msgs = basicSetRightOperand(newRightOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_MORE__RIGHT_OPERAND, newRightOperand, newRightOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_MORE__LEFT_OPERAND: + return basicSetLeftOperand(null, msgs); + case AlloyLanguagePackage.ALS_MORE__RIGHT_OPERAND: + return basicSetRightOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_MORE__LEFT_OPERAND: + return getLeftOperand(); + case AlloyLanguagePackage.ALS_MORE__RIGHT_OPERAND: + return getRightOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_MORE__LEFT_OPERAND: + setLeftOperand((ALSTerm)newValue); + return; + case AlloyLanguagePackage.ALS_MORE__RIGHT_OPERAND: + setRightOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_MORE__LEFT_OPERAND: + setLeftOperand((ALSTerm)null); + return; + case AlloyLanguagePackage.ALS_MORE__RIGHT_OPERAND: + setRightOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_MORE__LEFT_OPERAND: + return leftOperand != null; + case AlloyLanguagePackage.ALS_MORE__RIGHT_OPERAND: + return rightOperand != null; + } + return super.eIsSet(featureID); + } + +} //ALSMoreImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSNoneImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSNoneImpl.java new file mode 100644 index 00000000..7791e5cd --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSNoneImpl.java @@ -0,0 +1,40 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNone; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'ALS None'. + * + * + * @generated + */ +public class ALSNoneImpl extends ALSTermImpl implements ALSNone +{ + /** + * + * + * @generated + */ + protected ALSNoneImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_NONE; + } + +} //ALSNoneImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSNotEqualsImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSNotEqualsImpl.java new file mode 100644 index 00000000..783b2386 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSNotEqualsImpl.java @@ -0,0 +1,264 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNotEquals; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Not Equals'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSNotEqualsImpl#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSNotEqualsImpl#getRightOperand Right Operand}
  • + *
+ * + * @generated + */ +public class ALSNotEqualsImpl extends ALSTermImpl implements ALSNotEquals +{ + /** + * The cached value of the '{@link #getLeftOperand() Left Operand}' containment reference. + * + * + * @see #getLeftOperand() + * @generated + * @ordered + */ + protected ALSTerm leftOperand; + + /** + * The cached value of the '{@link #getRightOperand() Right Operand}' containment reference. + * + * + * @see #getRightOperand() + * @generated + * @ordered + */ + protected ALSTerm rightOperand; + + /** + * + * + * @generated + */ + protected ALSNotEqualsImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_NOT_EQUALS; + } + + /** + * + * + * @generated + */ + public ALSTerm getLeftOperand() + { + return leftOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeftOperand(ALSTerm newLeftOperand, NotificationChain msgs) + { + ALSTerm oldLeftOperand = leftOperand; + leftOperand = newLeftOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_NOT_EQUALS__LEFT_OPERAND, oldLeftOperand, newLeftOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeftOperand(ALSTerm newLeftOperand) + { + if (newLeftOperand != leftOperand) + { + NotificationChain msgs = null; + if (leftOperand != null) + msgs = ((InternalEObject)leftOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_NOT_EQUALS__LEFT_OPERAND, null, msgs); + if (newLeftOperand != null) + msgs = ((InternalEObject)newLeftOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_NOT_EQUALS__LEFT_OPERAND, null, msgs); + msgs = basicSetLeftOperand(newLeftOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_NOT_EQUALS__LEFT_OPERAND, newLeftOperand, newLeftOperand)); + } + + /** + * + * + * @generated + */ + public ALSTerm getRightOperand() + { + return rightOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRightOperand(ALSTerm newRightOperand, NotificationChain msgs) + { + ALSTerm oldRightOperand = rightOperand; + rightOperand = newRightOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_NOT_EQUALS__RIGHT_OPERAND, oldRightOperand, newRightOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRightOperand(ALSTerm newRightOperand) + { + if (newRightOperand != rightOperand) + { + NotificationChain msgs = null; + if (rightOperand != null) + msgs = ((InternalEObject)rightOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_NOT_EQUALS__RIGHT_OPERAND, null, msgs); + if (newRightOperand != null) + msgs = ((InternalEObject)newRightOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_NOT_EQUALS__RIGHT_OPERAND, null, msgs); + msgs = basicSetRightOperand(newRightOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_NOT_EQUALS__RIGHT_OPERAND, newRightOperand, newRightOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_NOT_EQUALS__LEFT_OPERAND: + return basicSetLeftOperand(null, msgs); + case AlloyLanguagePackage.ALS_NOT_EQUALS__RIGHT_OPERAND: + return basicSetRightOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_NOT_EQUALS__LEFT_OPERAND: + return getLeftOperand(); + case AlloyLanguagePackage.ALS_NOT_EQUALS__RIGHT_OPERAND: + return getRightOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_NOT_EQUALS__LEFT_OPERAND: + setLeftOperand((ALSTerm)newValue); + return; + case AlloyLanguagePackage.ALS_NOT_EQUALS__RIGHT_OPERAND: + setRightOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_NOT_EQUALS__LEFT_OPERAND: + setLeftOperand((ALSTerm)null); + return; + case AlloyLanguagePackage.ALS_NOT_EQUALS__RIGHT_OPERAND: + setRightOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_NOT_EQUALS__LEFT_OPERAND: + return leftOperand != null; + case AlloyLanguagePackage.ALS_NOT_EQUALS__RIGHT_OPERAND: + return rightOperand != null; + } + return super.eIsSet(featureID); + } + +} //ALSNotEqualsImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSNotImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSNotImpl.java new file mode 100644 index 00000000..c1230df7 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSNotImpl.java @@ -0,0 +1,193 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNot; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Not'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSNotImpl#getOperand Operand}
  • + *
+ * + * @generated + */ +public class ALSNotImpl extends ALSTermImpl implements ALSNot +{ + /** + * The cached value of the '{@link #getOperand() Operand}' containment reference. + * + * + * @see #getOperand() + * @generated + * @ordered + */ + protected ALSTerm operand; + + /** + * + * + * @generated + */ + protected ALSNotImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_NOT; + } + + /** + * + * + * @generated + */ + public ALSTerm getOperand() + { + return operand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOperand(ALSTerm newOperand, NotificationChain msgs) + { + ALSTerm oldOperand = operand; + operand = newOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_NOT__OPERAND, oldOperand, newOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setOperand(ALSTerm newOperand) + { + if (newOperand != operand) + { + NotificationChain msgs = null; + if (operand != null) + msgs = ((InternalEObject)operand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_NOT__OPERAND, null, msgs); + if (newOperand != null) + msgs = ((InternalEObject)newOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_NOT__OPERAND, null, msgs); + msgs = basicSetOperand(newOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_NOT__OPERAND, newOperand, newOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_NOT__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 AlloyLanguagePackage.ALS_NOT__OPERAND: + return getOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_NOT__OPERAND: + setOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_NOT__OPERAND: + setOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_NOT__OPERAND: + return operand != null; + } + return super.eIsSet(featureID); + } + +} //ALSNotImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSNumberLiteralImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSNumberLiteralImpl.java new file mode 100644 index 00000000..bf0a7224 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSNumberLiteralImpl.java @@ -0,0 +1,176 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumberLiteral; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Number Literal'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSNumberLiteralImpl#getValue Value}
  • + *
+ * + * @generated + */ +public class ALSNumberLiteralImpl extends ALSTermImpl implements ALSNumberLiteral +{ + /** + * The default value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected static final int VALUE_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected int value = VALUE_EDEFAULT; + + /** + * + * + * @generated + */ + protected ALSNumberLiteralImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_NUMBER_LITERAL; + } + + /** + * + * + * @generated + */ + public int getValue() + { + return value; + } + + /** + * + * + * @generated + */ + public void setValue(int newValue) + { + int oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_NUMBER_LITERAL__VALUE, oldValue, value)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_NUMBER_LITERAL__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_NUMBER_LITERAL__VALUE: + setValue((Integer)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_NUMBER_LITERAL__VALUE: + setValue(VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_NUMBER_LITERAL__VALUE: + return value != VALUE_EDEFAULT; + } + 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(); + } + +} //ALSNumberLiteralImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSOrImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSOrImpl.java new file mode 100644 index 00000000..3d9bd2ef --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSOrImpl.java @@ -0,0 +1,264 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOr; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Or'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSOrImpl#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSOrImpl#getRightOperand Right Operand}
  • + *
+ * + * @generated + */ +public class ALSOrImpl extends ALSTermImpl implements ALSOr +{ + /** + * The cached value of the '{@link #getLeftOperand() Left Operand}' containment reference. + * + * + * @see #getLeftOperand() + * @generated + * @ordered + */ + protected ALSTerm leftOperand; + + /** + * The cached value of the '{@link #getRightOperand() Right Operand}' containment reference. + * + * + * @see #getRightOperand() + * @generated + * @ordered + */ + protected ALSTerm rightOperand; + + /** + * + * + * @generated + */ + protected ALSOrImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_OR; + } + + /** + * + * + * @generated + */ + public ALSTerm getLeftOperand() + { + return leftOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeftOperand(ALSTerm newLeftOperand, NotificationChain msgs) + { + ALSTerm oldLeftOperand = leftOperand; + leftOperand = newLeftOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_OR__LEFT_OPERAND, oldLeftOperand, newLeftOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeftOperand(ALSTerm newLeftOperand) + { + if (newLeftOperand != leftOperand) + { + NotificationChain msgs = null; + if (leftOperand != null) + msgs = ((InternalEObject)leftOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_OR__LEFT_OPERAND, null, msgs); + if (newLeftOperand != null) + msgs = ((InternalEObject)newLeftOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_OR__LEFT_OPERAND, null, msgs); + msgs = basicSetLeftOperand(newLeftOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_OR__LEFT_OPERAND, newLeftOperand, newLeftOperand)); + } + + /** + * + * + * @generated + */ + public ALSTerm getRightOperand() + { + return rightOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRightOperand(ALSTerm newRightOperand, NotificationChain msgs) + { + ALSTerm oldRightOperand = rightOperand; + rightOperand = newRightOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_OR__RIGHT_OPERAND, oldRightOperand, newRightOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRightOperand(ALSTerm newRightOperand) + { + if (newRightOperand != rightOperand) + { + NotificationChain msgs = null; + if (rightOperand != null) + msgs = ((InternalEObject)rightOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_OR__RIGHT_OPERAND, null, msgs); + if (newRightOperand != null) + msgs = ((InternalEObject)newRightOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_OR__RIGHT_OPERAND, null, msgs); + msgs = basicSetRightOperand(newRightOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_OR__RIGHT_OPERAND, newRightOperand, newRightOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_OR__LEFT_OPERAND: + return basicSetLeftOperand(null, msgs); + case AlloyLanguagePackage.ALS_OR__RIGHT_OPERAND: + return basicSetRightOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_OR__LEFT_OPERAND: + return getLeftOperand(); + case AlloyLanguagePackage.ALS_OR__RIGHT_OPERAND: + return getRightOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_OR__LEFT_OPERAND: + setLeftOperand((ALSTerm)newValue); + return; + case AlloyLanguagePackage.ALS_OR__RIGHT_OPERAND: + setRightOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_OR__LEFT_OPERAND: + setLeftOperand((ALSTerm)null); + return; + case AlloyLanguagePackage.ALS_OR__RIGHT_OPERAND: + setRightOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_OR__LEFT_OPERAND: + return leftOperand != null; + case AlloyLanguagePackage.ALS_OR__RIGHT_OPERAND: + return rightOperand != null; + } + return super.eIsSet(featureID); + } + +} //ALSOrImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSOverrideImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSOverrideImpl.java new file mode 100644 index 00000000..f56b6e4c --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSOverrideImpl.java @@ -0,0 +1,264 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOverride; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Override'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSOverrideImpl#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSOverrideImpl#getRightOperand Right Operand}
  • + *
+ * + * @generated + */ +public class ALSOverrideImpl extends ALSTermImpl implements ALSOverride +{ + /** + * The cached value of the '{@link #getLeftOperand() Left Operand}' containment reference. + * + * + * @see #getLeftOperand() + * @generated + * @ordered + */ + protected ALSTerm leftOperand; + + /** + * The cached value of the '{@link #getRightOperand() Right Operand}' containment reference. + * + * + * @see #getRightOperand() + * @generated + * @ordered + */ + protected ALSTerm rightOperand; + + /** + * + * + * @generated + */ + protected ALSOverrideImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_OVERRIDE; + } + + /** + * + * + * @generated + */ + public ALSTerm getLeftOperand() + { + return leftOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeftOperand(ALSTerm newLeftOperand, NotificationChain msgs) + { + ALSTerm oldLeftOperand = leftOperand; + leftOperand = newLeftOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_OVERRIDE__LEFT_OPERAND, oldLeftOperand, newLeftOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeftOperand(ALSTerm newLeftOperand) + { + if (newLeftOperand != leftOperand) + { + NotificationChain msgs = null; + if (leftOperand != null) + msgs = ((InternalEObject)leftOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_OVERRIDE__LEFT_OPERAND, null, msgs); + if (newLeftOperand != null) + msgs = ((InternalEObject)newLeftOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_OVERRIDE__LEFT_OPERAND, null, msgs); + msgs = basicSetLeftOperand(newLeftOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_OVERRIDE__LEFT_OPERAND, newLeftOperand, newLeftOperand)); + } + + /** + * + * + * @generated + */ + public ALSTerm getRightOperand() + { + return rightOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRightOperand(ALSTerm newRightOperand, NotificationChain msgs) + { + ALSTerm oldRightOperand = rightOperand; + rightOperand = newRightOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_OVERRIDE__RIGHT_OPERAND, oldRightOperand, newRightOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRightOperand(ALSTerm newRightOperand) + { + if (newRightOperand != rightOperand) + { + NotificationChain msgs = null; + if (rightOperand != null) + msgs = ((InternalEObject)rightOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_OVERRIDE__RIGHT_OPERAND, null, msgs); + if (newRightOperand != null) + msgs = ((InternalEObject)newRightOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_OVERRIDE__RIGHT_OPERAND, null, msgs); + msgs = basicSetRightOperand(newRightOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_OVERRIDE__RIGHT_OPERAND, newRightOperand, newRightOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_OVERRIDE__LEFT_OPERAND: + return basicSetLeftOperand(null, msgs); + case AlloyLanguagePackage.ALS_OVERRIDE__RIGHT_OPERAND: + return basicSetRightOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_OVERRIDE__LEFT_OPERAND: + return getLeftOperand(); + case AlloyLanguagePackage.ALS_OVERRIDE__RIGHT_OPERAND: + return getRightOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_OVERRIDE__LEFT_OPERAND: + setLeftOperand((ALSTerm)newValue); + return; + case AlloyLanguagePackage.ALS_OVERRIDE__RIGHT_OPERAND: + setRightOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_OVERRIDE__LEFT_OPERAND: + setLeftOperand((ALSTerm)null); + return; + case AlloyLanguagePackage.ALS_OVERRIDE__RIGHT_OPERAND: + setRightOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_OVERRIDE__LEFT_OPERAND: + return leftOperand != null; + case AlloyLanguagePackage.ALS_OVERRIDE__RIGHT_OPERAND: + return rightOperand != null; + } + return super.eIsSet(featureID); + } + +} //ALSOverrideImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSPlusImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSPlusImpl.java new file mode 100644 index 00000000..57c83ca5 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSPlusImpl.java @@ -0,0 +1,264 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSPlus; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Plus'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSPlusImpl#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSPlusImpl#getRightOperand Right Operand}
  • + *
+ * + * @generated + */ +public class ALSPlusImpl extends ALSTermImpl implements ALSPlus +{ + /** + * The cached value of the '{@link #getLeftOperand() Left Operand}' containment reference. + * + * + * @see #getLeftOperand() + * @generated + * @ordered + */ + protected ALSTerm leftOperand; + + /** + * The cached value of the '{@link #getRightOperand() Right Operand}' containment reference. + * + * + * @see #getRightOperand() + * @generated + * @ordered + */ + protected ALSTerm rightOperand; + + /** + * + * + * @generated + */ + protected ALSPlusImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_PLUS; + } + + /** + * + * + * @generated + */ + public ALSTerm getLeftOperand() + { + return leftOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeftOperand(ALSTerm newLeftOperand, NotificationChain msgs) + { + ALSTerm oldLeftOperand = leftOperand; + leftOperand = newLeftOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_PLUS__LEFT_OPERAND, oldLeftOperand, newLeftOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeftOperand(ALSTerm newLeftOperand) + { + if (newLeftOperand != leftOperand) + { + NotificationChain msgs = null; + if (leftOperand != null) + msgs = ((InternalEObject)leftOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_PLUS__LEFT_OPERAND, null, msgs); + if (newLeftOperand != null) + msgs = ((InternalEObject)newLeftOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_PLUS__LEFT_OPERAND, null, msgs); + msgs = basicSetLeftOperand(newLeftOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_PLUS__LEFT_OPERAND, newLeftOperand, newLeftOperand)); + } + + /** + * + * + * @generated + */ + public ALSTerm getRightOperand() + { + return rightOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRightOperand(ALSTerm newRightOperand, NotificationChain msgs) + { + ALSTerm oldRightOperand = rightOperand; + rightOperand = newRightOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_PLUS__RIGHT_OPERAND, oldRightOperand, newRightOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRightOperand(ALSTerm newRightOperand) + { + if (newRightOperand != rightOperand) + { + NotificationChain msgs = null; + if (rightOperand != null) + msgs = ((InternalEObject)rightOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_PLUS__RIGHT_OPERAND, null, msgs); + if (newRightOperand != null) + msgs = ((InternalEObject)newRightOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_PLUS__RIGHT_OPERAND, null, msgs); + msgs = basicSetRightOperand(newRightOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_PLUS__RIGHT_OPERAND, newRightOperand, newRightOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_PLUS__LEFT_OPERAND: + return basicSetLeftOperand(null, msgs); + case AlloyLanguagePackage.ALS_PLUS__RIGHT_OPERAND: + return basicSetRightOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_PLUS__LEFT_OPERAND: + return getLeftOperand(); + case AlloyLanguagePackage.ALS_PLUS__RIGHT_OPERAND: + return getRightOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_PLUS__LEFT_OPERAND: + setLeftOperand((ALSTerm)newValue); + return; + case AlloyLanguagePackage.ALS_PLUS__RIGHT_OPERAND: + setRightOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_PLUS__LEFT_OPERAND: + setLeftOperand((ALSTerm)null); + return; + case AlloyLanguagePackage.ALS_PLUS__RIGHT_OPERAND: + setRightOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_PLUS__LEFT_OPERAND: + return leftOperand != null; + case AlloyLanguagePackage.ALS_PLUS__RIGHT_OPERAND: + return rightOperand != null; + } + return super.eIsSet(featureID); + } + +} //ALSPlusImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSQuantifiedExImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSQuantifiedExImpl.java new file mode 100644 index 00000000..a0a37cd3 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSQuantifiedExImpl.java @@ -0,0 +1,368 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSVariableDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Quantified Ex'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSQuantifiedExImpl#getType Type}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSQuantifiedExImpl#isDisj Disj}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSQuantifiedExImpl#getVariables Variables}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSQuantifiedExImpl#getExpression Expression}
  • + *
+ * + * @generated + */ +public class ALSQuantifiedExImpl extends ALSTermImpl implements ALSQuantifiedEx +{ + /** + * The default value of the '{@link #getType() Type}' attribute. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected static final ALSMultiplicity TYPE_EDEFAULT = ALSMultiplicity.ALL; + + /** + * The cached value of the '{@link #getType() Type}' attribute. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected ALSMultiplicity type = TYPE_EDEFAULT; + + /** + * The default value of the '{@link #isDisj() Disj}' attribute. + * + * + * @see #isDisj() + * @generated + * @ordered + */ + protected static final boolean DISJ_EDEFAULT = false; + + /** + * The cached value of the '{@link #isDisj() Disj}' attribute. + * + * + * @see #isDisj() + * @generated + * @ordered + */ + protected boolean disj = DISJ_EDEFAULT; + + /** + * The cached value of the '{@link #getVariables() Variables}' containment reference list. + * + * + * @see #getVariables() + * @generated + * @ordered + */ + protected EList variables; + + /** + * The cached value of the '{@link #getExpression() Expression}' containment reference. + * + * + * @see #getExpression() + * @generated + * @ordered + */ + protected ALSTerm expression; + + /** + * + * + * @generated + */ + protected ALSQuantifiedExImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_QUANTIFIED_EX; + } + + /** + * + * + * @generated + */ + public ALSMultiplicity getType() + { + return type; + } + + /** + * + * + * @generated + */ + public void setType(ALSMultiplicity newType) + { + ALSMultiplicity oldType = type; + type = newType == null ? TYPE_EDEFAULT : newType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_QUANTIFIED_EX__TYPE, oldType, type)); + } + + /** + * + * + * @generated + */ + public boolean isDisj() + { + return disj; + } + + /** + * + * + * @generated + */ + public void setDisj(boolean newDisj) + { + boolean oldDisj = disj; + disj = newDisj; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_QUANTIFIED_EX__DISJ, oldDisj, disj)); + } + + /** + * + * + * @generated + */ + public EList getVariables() + { + if (variables == null) + { + variables = new EObjectContainmentEList(ALSVariableDeclaration.class, this, AlloyLanguagePackage.ALS_QUANTIFIED_EX__VARIABLES); + } + return variables; + } + + /** + * + * + * @generated + */ + public ALSTerm getExpression() + { + return expression; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetExpression(ALSTerm newExpression, NotificationChain msgs) + { + ALSTerm oldExpression = expression; + expression = newExpression; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_QUANTIFIED_EX__EXPRESSION, oldExpression, newExpression); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setExpression(ALSTerm newExpression) + { + if (newExpression != expression) + { + NotificationChain msgs = null; + if (expression != null) + msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_QUANTIFIED_EX__EXPRESSION, null, msgs); + if (newExpression != null) + msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_QUANTIFIED_EX__EXPRESSION, null, msgs); + msgs = basicSetExpression(newExpression, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_QUANTIFIED_EX__EXPRESSION, newExpression, newExpression)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_QUANTIFIED_EX__VARIABLES: + return ((InternalEList)getVariables()).basicRemove(otherEnd, msgs); + case AlloyLanguagePackage.ALS_QUANTIFIED_EX__EXPRESSION: + return basicSetExpression(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_QUANTIFIED_EX__TYPE: + return getType(); + case AlloyLanguagePackage.ALS_QUANTIFIED_EX__DISJ: + return isDisj(); + case AlloyLanguagePackage.ALS_QUANTIFIED_EX__VARIABLES: + return getVariables(); + case AlloyLanguagePackage.ALS_QUANTIFIED_EX__EXPRESSION: + return getExpression(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_QUANTIFIED_EX__TYPE: + setType((ALSMultiplicity)newValue); + return; + case AlloyLanguagePackage.ALS_QUANTIFIED_EX__DISJ: + setDisj((Boolean)newValue); + return; + case AlloyLanguagePackage.ALS_QUANTIFIED_EX__VARIABLES: + getVariables().clear(); + getVariables().addAll((Collection)newValue); + return; + case AlloyLanguagePackage.ALS_QUANTIFIED_EX__EXPRESSION: + setExpression((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_QUANTIFIED_EX__TYPE: + setType(TYPE_EDEFAULT); + return; + case AlloyLanguagePackage.ALS_QUANTIFIED_EX__DISJ: + setDisj(DISJ_EDEFAULT); + return; + case AlloyLanguagePackage.ALS_QUANTIFIED_EX__VARIABLES: + getVariables().clear(); + return; + case AlloyLanguagePackage.ALS_QUANTIFIED_EX__EXPRESSION: + setExpression((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_QUANTIFIED_EX__TYPE: + return type != TYPE_EDEFAULT; + case AlloyLanguagePackage.ALS_QUANTIFIED_EX__DISJ: + return disj != DISJ_EDEFAULT; + case AlloyLanguagePackage.ALS_QUANTIFIED_EX__VARIABLES: + return variables != null && !variables.isEmpty(); + case AlloyLanguagePackage.ALS_QUANTIFIED_EX__EXPRESSION: + return expression != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (type: "); + result.append(type); + result.append(", disj: "); + result.append(disj); + result.append(')'); + return result.toString(); + } + +} //ALSQuantifiedExImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSRangeRestrictionLeftImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSRangeRestrictionLeftImpl.java new file mode 100644 index 00000000..f29d5f07 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSRangeRestrictionLeftImpl.java @@ -0,0 +1,264 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionLeft; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Range Restriction Left'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRangeRestrictionLeftImpl#getFilter Filter}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRangeRestrictionLeftImpl#getRelation Relation}
  • + *
+ * + * @generated + */ +public class ALSRangeRestrictionLeftImpl extends ALSTermImpl implements ALSRangeRestrictionLeft +{ + /** + * The cached value of the '{@link #getFilter() Filter}' containment reference. + * + * + * @see #getFilter() + * @generated + * @ordered + */ + protected ALSTerm filter; + + /** + * The cached value of the '{@link #getRelation() Relation}' containment reference. + * + * + * @see #getRelation() + * @generated + * @ordered + */ + protected ALSTerm relation; + + /** + * + * + * @generated + */ + protected ALSRangeRestrictionLeftImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_RANGE_RESTRICTION_LEFT; + } + + /** + * + * + * @generated + */ + public ALSTerm getFilter() + { + return filter; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetFilter(ALSTerm newFilter, NotificationChain msgs) + { + ALSTerm oldFilter = filter; + filter = newFilter; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT__FILTER, oldFilter, newFilter); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setFilter(ALSTerm newFilter) + { + if (newFilter != filter) + { + NotificationChain msgs = null; + if (filter != null) + msgs = ((InternalEObject)filter).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT__FILTER, null, msgs); + if (newFilter != null) + msgs = ((InternalEObject)newFilter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT__FILTER, null, msgs); + msgs = basicSetFilter(newFilter, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT__FILTER, newFilter, newFilter)); + } + + /** + * + * + * @generated + */ + public ALSTerm getRelation() + { + return relation; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRelation(ALSTerm newRelation, NotificationChain msgs) + { + ALSTerm oldRelation = relation; + relation = newRelation; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT__RELATION, oldRelation, newRelation); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRelation(ALSTerm newRelation) + { + if (newRelation != relation) + { + NotificationChain msgs = null; + if (relation != null) + msgs = ((InternalEObject)relation).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT__RELATION, null, msgs); + if (newRelation != null) + msgs = ((InternalEObject)newRelation).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT__RELATION, null, msgs); + msgs = basicSetRelation(newRelation, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT__RELATION, newRelation, newRelation)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT__FILTER: + return basicSetFilter(null, msgs); + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT__RELATION: + return basicSetRelation(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT__FILTER: + return getFilter(); + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT__RELATION: + return getRelation(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT__FILTER: + setFilter((ALSTerm)newValue); + return; + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT__RELATION: + setRelation((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT__FILTER: + setFilter((ALSTerm)null); + return; + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT__RELATION: + setRelation((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT__FILTER: + return filter != null; + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT__RELATION: + return relation != null; + } + return super.eIsSet(featureID); + } + +} //ALSRangeRestrictionLeftImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSRangeRestrictionRightImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSRangeRestrictionRightImpl.java new file mode 100644 index 00000000..4602e3c8 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSRangeRestrictionRightImpl.java @@ -0,0 +1,264 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionRight; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Range Restriction Right'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRangeRestrictionRightImpl#getRelation Relation}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRangeRestrictionRightImpl#getFilter Filter}
  • + *
+ * + * @generated + */ +public class ALSRangeRestrictionRightImpl extends ALSTermImpl implements ALSRangeRestrictionRight +{ + /** + * The cached value of the '{@link #getRelation() Relation}' containment reference. + * + * + * @see #getRelation() + * @generated + * @ordered + */ + protected ALSTerm relation; + + /** + * The cached value of the '{@link #getFilter() Filter}' containment reference. + * + * + * @see #getFilter() + * @generated + * @ordered + */ + protected ALSTerm filter; + + /** + * + * + * @generated + */ + protected ALSRangeRestrictionRightImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_RANGE_RESTRICTION_RIGHT; + } + + /** + * + * + * @generated + */ + public ALSTerm getRelation() + { + return relation; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRelation(ALSTerm newRelation, NotificationChain msgs) + { + ALSTerm oldRelation = relation; + relation = newRelation; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT__RELATION, oldRelation, newRelation); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRelation(ALSTerm newRelation) + { + if (newRelation != relation) + { + NotificationChain msgs = null; + if (relation != null) + msgs = ((InternalEObject)relation).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT__RELATION, null, msgs); + if (newRelation != null) + msgs = ((InternalEObject)newRelation).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT__RELATION, null, msgs); + msgs = basicSetRelation(newRelation, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT__RELATION, newRelation, newRelation)); + } + + /** + * + * + * @generated + */ + public ALSTerm getFilter() + { + return filter; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetFilter(ALSTerm newFilter, NotificationChain msgs) + { + ALSTerm oldFilter = filter; + filter = newFilter; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT__FILTER, oldFilter, newFilter); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setFilter(ALSTerm newFilter) + { + if (newFilter != filter) + { + NotificationChain msgs = null; + if (filter != null) + msgs = ((InternalEObject)filter).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT__FILTER, null, msgs); + if (newFilter != null) + msgs = ((InternalEObject)newFilter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT__FILTER, null, msgs); + msgs = basicSetFilter(newFilter, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT__FILTER, newFilter, newFilter)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT__RELATION: + return basicSetRelation(null, msgs); + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT__FILTER: + return basicSetFilter(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT__RELATION: + return getRelation(); + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT__FILTER: + return getFilter(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT__RELATION: + setRelation((ALSTerm)newValue); + return; + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT__FILTER: + setFilter((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT__RELATION: + setRelation((ALSTerm)null); + return; + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT__FILTER: + setFilter((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT__RELATION: + return relation != null; + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT__FILTER: + return filter != null; + } + return super.eIsSet(featureID); + } + +} //ALSRangeRestrictionRightImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSReferenceImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSReferenceImpl.java new file mode 100644 index 00000000..593c8a94 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSReferenceImpl.java @@ -0,0 +1,172 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReference; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +import org.eclipse.emf.common.notify.Notification; + +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 'ALS Reference'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSReferenceImpl#getReferred Referred}
  • + *
+ * + * @generated + */ +public class ALSReferenceImpl extends ALSTermImpl implements ALSReference +{ + /** + * The cached value of the '{@link #getReferred() Referred}' reference. + * + * + * @see #getReferred() + * @generated + * @ordered + */ + protected ALSRelationDeclaration referred; + + /** + * + * + * @generated + */ + protected ALSReferenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_REFERENCE; + } + + /** + * + * + * @generated + */ + public ALSRelationDeclaration getReferred() + { + if (referred != null && referred.eIsProxy()) + { + InternalEObject oldReferred = (InternalEObject)referred; + referred = (ALSRelationDeclaration)eResolveProxy(oldReferred); + if (referred != oldReferred) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, AlloyLanguagePackage.ALS_REFERENCE__REFERRED, oldReferred, referred)); + } + } + return referred; + } + + /** + * + * + * @generated + */ + public ALSRelationDeclaration basicGetReferred() + { + return referred; + } + + /** + * + * + * @generated + */ + public void setReferred(ALSRelationDeclaration newReferred) + { + ALSRelationDeclaration oldReferred = referred; + referred = newReferred; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_REFERENCE__REFERRED, oldReferred, referred)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_REFERENCE__REFERRED: + if (resolve) return getReferred(); + return basicGetReferred(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_REFERENCE__REFERRED: + setReferred((ALSRelationDeclaration)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_REFERENCE__REFERRED: + setReferred((ALSRelationDeclaration)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_REFERENCE__REFERRED: + return referred != null; + } + return super.eIsSet(featureID); + } + +} //ALSReferenceImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSReflectiveTransitiveClosureImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSReflectiveTransitiveClosureImpl.java new file mode 100644 index 00000000..efe3a67e --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSReflectiveTransitiveClosureImpl.java @@ -0,0 +1,193 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReflectiveTransitiveClosure; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Reflective Transitive Closure'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSReflectiveTransitiveClosureImpl#getOperand Operand}
  • + *
+ * + * @generated + */ +public class ALSReflectiveTransitiveClosureImpl extends ALSTermImpl implements ALSReflectiveTransitiveClosure +{ + /** + * The cached value of the '{@link #getOperand() Operand}' containment reference. + * + * + * @see #getOperand() + * @generated + * @ordered + */ + protected ALSTerm operand; + + /** + * + * + * @generated + */ + protected ALSReflectiveTransitiveClosureImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_REFLECTIVE_TRANSITIVE_CLOSURE; + } + + /** + * + * + * @generated + */ + public ALSTerm getOperand() + { + return operand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOperand(ALSTerm newOperand, NotificationChain msgs) + { + ALSTerm oldOperand = operand; + operand = newOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_REFLECTIVE_TRANSITIVE_CLOSURE__OPERAND, oldOperand, newOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setOperand(ALSTerm newOperand) + { + if (newOperand != operand) + { + NotificationChain msgs = null; + if (operand != null) + msgs = ((InternalEObject)operand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_REFLECTIVE_TRANSITIVE_CLOSURE__OPERAND, null, msgs); + if (newOperand != null) + msgs = ((InternalEObject)newOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_REFLECTIVE_TRANSITIVE_CLOSURE__OPERAND, null, msgs); + msgs = basicSetOperand(newOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_REFLECTIVE_TRANSITIVE_CLOSURE__OPERAND, newOperand, newOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_REFLECTIVE_TRANSITIVE_CLOSURE__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 AlloyLanguagePackage.ALS_REFLECTIVE_TRANSITIVE_CLOSURE__OPERAND: + return getOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_REFLECTIVE_TRANSITIVE_CLOSURE__OPERAND: + setOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_REFLECTIVE_TRANSITIVE_CLOSURE__OPERAND: + setOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_REFLECTIVE_TRANSITIVE_CLOSURE__OPERAND: + return operand != null; + } + return super.eIsSet(featureID); + } + +} //ALSReflectiveTransitiveClosureImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSRelationDeclarationImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSRelationDeclarationImpl.java new file mode 100644 index 00000000..e93196b0 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSRelationDeclarationImpl.java @@ -0,0 +1,177 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Relation Declaration'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRelationDeclarationImpl#getName Name}
  • + *
+ * + * @generated + */ +public class ALSRelationDeclarationImpl extends MinimalEObjectImpl.Container implements ALSRelationDeclaration +{ + /** + * 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 ALSRelationDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_RELATION_DECLARATION; + } + + /** + * + * + * @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, AlloyLanguagePackage.ALS_RELATION_DECLARATION__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_RELATION_DECLARATION__NAME: + return getName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_RELATION_DECLARATION__NAME: + setName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_RELATION_DECLARATION__NAME: + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_RELATION_DECLARATION__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(); + } + +} //ALSRelationDeclarationImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSRelationDefinitionImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSRelationDefinitionImpl.java new file mode 100644 index 00000000..38014e58 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSRelationDefinitionImpl.java @@ -0,0 +1,40 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDefinition; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'ALS Relation Definition'. + * + * + * @generated + */ +public class ALSRelationDefinitionImpl extends ALSDefinitionImpl implements ALSRelationDefinition +{ + /** + * + * + * @generated + */ + protected ALSRelationDefinitionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_RELATION_DEFINITION; + } + +} //ALSRelationDefinitionImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSRunCommandImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSRunCommandImpl.java new file mode 100644 index 00000000..f3a909dc --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSRunCommandImpl.java @@ -0,0 +1,167 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRunCommand; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTypeScope; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Run Command'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSRunCommandImpl#getTypeScopes Type Scopes}
  • + *
+ * + * @generated + */ +public class ALSRunCommandImpl extends MinimalEObjectImpl.Container implements ALSRunCommand +{ + /** + * The cached value of the '{@link #getTypeScopes() Type Scopes}' containment reference list. + * + * + * @see #getTypeScopes() + * @generated + * @ordered + */ + protected EList typeScopes; + + /** + * + * + * @generated + */ + protected ALSRunCommandImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_RUN_COMMAND; + } + + /** + * + * + * @generated + */ + public EList getTypeScopes() + { + if (typeScopes == null) + { + typeScopes = new EObjectContainmentEList(ALSTypeScope.class, this, AlloyLanguagePackage.ALS_RUN_COMMAND__TYPE_SCOPES); + } + return typeScopes; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_RUN_COMMAND__TYPE_SCOPES: + return ((InternalEList)getTypeScopes()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_RUN_COMMAND__TYPE_SCOPES: + return getTypeScopes(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_RUN_COMMAND__TYPE_SCOPES: + getTypeScopes().clear(); + getTypeScopes().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_RUN_COMMAND__TYPE_SCOPES: + getTypeScopes().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_RUN_COMMAND__TYPE_SCOPES: + return typeScopes != null && !typeScopes.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ALSRunCommandImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSSigScopeImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSSigScopeImpl.java new file mode 100644 index 00000000..18f22c3f --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSSigScopeImpl.java @@ -0,0 +1,243 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSigScope; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +import org.eclipse.emf.common.notify.Notification; + +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 'ALS Sig Scope'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSigScopeImpl#isExactly Exactly}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSigScopeImpl#getType Type}
  • + *
+ * + * @generated + */ +public class ALSSigScopeImpl extends ALSTypeScopeImpl implements ALSSigScope +{ + /** + * The default value of the '{@link #isExactly() Exactly}' attribute. + * + * + * @see #isExactly() + * @generated + * @ordered + */ + protected static final boolean EXACTLY_EDEFAULT = false; + + /** + * The cached value of the '{@link #isExactly() Exactly}' attribute. + * + * + * @see #isExactly() + * @generated + * @ordered + */ + protected boolean exactly = EXACTLY_EDEFAULT; + + /** + * The cached value of the '{@link #getType() Type}' reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected ALSSignatureDeclaration type; + + /** + * + * + * @generated + */ + protected ALSSigScopeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_SIG_SCOPE; + } + + /** + * + * + * @generated + */ + public boolean isExactly() + { + return exactly; + } + + /** + * + * + * @generated + */ + public void setExactly(boolean newExactly) + { + boolean oldExactly = exactly; + exactly = newExactly; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_SIG_SCOPE__EXACTLY, oldExactly, exactly)); + } + + /** + * + * + * @generated + */ + public ALSSignatureDeclaration getType() + { + if (type != null && type.eIsProxy()) + { + InternalEObject oldType = (InternalEObject)type; + type = (ALSSignatureDeclaration)eResolveProxy(oldType); + if (type != oldType) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, AlloyLanguagePackage.ALS_SIG_SCOPE__TYPE, oldType, type)); + } + } + return type; + } + + /** + * + * + * @generated + */ + public ALSSignatureDeclaration basicGetType() + { + return type; + } + + /** + * + * + * @generated + */ + public void setType(ALSSignatureDeclaration newType) + { + ALSSignatureDeclaration oldType = type; + type = newType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_SIG_SCOPE__TYPE, oldType, type)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_SIG_SCOPE__EXACTLY: + return isExactly(); + case AlloyLanguagePackage.ALS_SIG_SCOPE__TYPE: + if (resolve) return getType(); + return basicGetType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_SIG_SCOPE__EXACTLY: + setExactly((Boolean)newValue); + return; + case AlloyLanguagePackage.ALS_SIG_SCOPE__TYPE: + setType((ALSSignatureDeclaration)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_SIG_SCOPE__EXACTLY: + setExactly(EXACTLY_EDEFAULT); + return; + case AlloyLanguagePackage.ALS_SIG_SCOPE__TYPE: + setType((ALSSignatureDeclaration)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_SIG_SCOPE__EXACTLY: + return exactly != EXACTLY_EDEFAULT; + case AlloyLanguagePackage.ALS_SIG_SCOPE__TYPE: + return type != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (exactly: "); + result.append(exactly); + result.append(')'); + return result.toString(); + } + +} //ALSSigScopeImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSSignatureBodyImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSSignatureBodyImpl.java new file mode 100644 index 00000000..40452b63 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSSignatureBodyImpl.java @@ -0,0 +1,438 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFieldDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'ALS Signature Body'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSignatureBodyImpl#getMultiplicity Multiplicity}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSignatureBodyImpl#isAbstract Abstract}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSignatureBodyImpl#getDeclarations Declarations}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSignatureBodyImpl#getSupertype Supertype}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSignatureBodyImpl#getSuperset Superset}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSignatureBodyImpl#getFields Fields}
  • + *
+ * + * @generated + */ +public class ALSSignatureBodyImpl extends MinimalEObjectImpl.Container implements ALSSignatureBody +{ + /** + * The default value of the '{@link #getMultiplicity() Multiplicity}' attribute. + * + * + * @see #getMultiplicity() + * @generated + * @ordered + */ + protected static final ALSMultiplicity MULTIPLICITY_EDEFAULT = ALSMultiplicity.ALL; + + /** + * The cached value of the '{@link #getMultiplicity() Multiplicity}' attribute. + * + * + * @see #getMultiplicity() + * @generated + * @ordered + */ + protected ALSMultiplicity multiplicity = MULTIPLICITY_EDEFAULT; + + /** + * The default value of the '{@link #isAbstract() Abstract}' attribute. + * + * + * @see #isAbstract() + * @generated + * @ordered + */ + protected static final boolean ABSTRACT_EDEFAULT = false; + + /** + * The cached value of the '{@link #isAbstract() Abstract}' attribute. + * + * + * @see #isAbstract() + * @generated + * @ordered + */ + protected boolean abstract_ = ABSTRACT_EDEFAULT; + + /** + * The cached value of the '{@link #getDeclarations() Declarations}' containment reference list. + * + * + * @see #getDeclarations() + * @generated + * @ordered + */ + protected EList declarations; + + /** + * The cached value of the '{@link #getSupertype() Supertype}' reference. + * + * + * @see #getSupertype() + * @generated + * @ordered + */ + protected ALSSignatureDeclaration supertype; + + /** + * The cached value of the '{@link #getSuperset() Superset}' reference list. + * + * + * @see #getSuperset() + * @generated + * @ordered + */ + protected EList superset; + + /** + * The cached value of the '{@link #getFields() Fields}' containment reference list. + * + * + * @see #getFields() + * @generated + * @ordered + */ + protected EList fields; + + /** + * + * + * @generated + */ + protected ALSSignatureBodyImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_SIGNATURE_BODY; + } + + /** + * + * + * @generated + */ + public ALSMultiplicity getMultiplicity() + { + return multiplicity; + } + + /** + * + * + * @generated + */ + public void setMultiplicity(ALSMultiplicity newMultiplicity) + { + ALSMultiplicity oldMultiplicity = multiplicity; + multiplicity = newMultiplicity == null ? MULTIPLICITY_EDEFAULT : newMultiplicity; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_SIGNATURE_BODY__MULTIPLICITY, oldMultiplicity, multiplicity)); + } + + /** + * + * + * @generated + */ + public boolean isAbstract() + { + return abstract_; + } + + /** + * + * + * @generated + */ + public void setAbstract(boolean newAbstract) + { + boolean oldAbstract = abstract_; + abstract_ = newAbstract; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_SIGNATURE_BODY__ABSTRACT, oldAbstract, abstract_)); + } + + /** + * + * + * @generated + */ + public EList getDeclarations() + { + if (declarations == null) + { + declarations = new EObjectContainmentEList(ALSSignatureDeclaration.class, this, AlloyLanguagePackage.ALS_SIGNATURE_BODY__DECLARATIONS); + } + return declarations; + } + + /** + * + * + * @generated + */ + public ALSSignatureDeclaration getSupertype() + { + if (supertype != null && supertype.eIsProxy()) + { + InternalEObject oldSupertype = (InternalEObject)supertype; + supertype = (ALSSignatureDeclaration)eResolveProxy(oldSupertype); + if (supertype != oldSupertype) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, AlloyLanguagePackage.ALS_SIGNATURE_BODY__SUPERTYPE, oldSupertype, supertype)); + } + } + return supertype; + } + + /** + * + * + * @generated + */ + public ALSSignatureDeclaration basicGetSupertype() + { + return supertype; + } + + /** + * + * + * @generated + */ + public void setSupertype(ALSSignatureDeclaration newSupertype) + { + ALSSignatureDeclaration oldSupertype = supertype; + supertype = newSupertype; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_SIGNATURE_BODY__SUPERTYPE, oldSupertype, supertype)); + } + + /** + * + * + * @generated + */ + public EList getSuperset() + { + if (superset == null) + { + superset = new EObjectResolvingEList(ALSSignatureDeclaration.class, this, AlloyLanguagePackage.ALS_SIGNATURE_BODY__SUPERSET); + } + return superset; + } + + /** + * + * + * @generated + */ + public EList getFields() + { + if (fields == null) + { + fields = new EObjectContainmentEList(ALSFieldDeclaration.class, this, AlloyLanguagePackage.ALS_SIGNATURE_BODY__FIELDS); + } + return fields; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__DECLARATIONS: + return ((InternalEList)getDeclarations()).basicRemove(otherEnd, msgs); + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__FIELDS: + return ((InternalEList)getFields()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__MULTIPLICITY: + return getMultiplicity(); + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__ABSTRACT: + return isAbstract(); + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__DECLARATIONS: + return getDeclarations(); + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__SUPERTYPE: + if (resolve) return getSupertype(); + return basicGetSupertype(); + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__SUPERSET: + return getSuperset(); + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__FIELDS: + return getFields(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__MULTIPLICITY: + setMultiplicity((ALSMultiplicity)newValue); + return; + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__ABSTRACT: + setAbstract((Boolean)newValue); + return; + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__DECLARATIONS: + getDeclarations().clear(); + getDeclarations().addAll((Collection)newValue); + return; + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__SUPERTYPE: + setSupertype((ALSSignatureDeclaration)newValue); + return; + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__SUPERSET: + getSuperset().clear(); + getSuperset().addAll((Collection)newValue); + return; + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__FIELDS: + getFields().clear(); + getFields().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__MULTIPLICITY: + setMultiplicity(MULTIPLICITY_EDEFAULT); + return; + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__ABSTRACT: + setAbstract(ABSTRACT_EDEFAULT); + return; + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__DECLARATIONS: + getDeclarations().clear(); + return; + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__SUPERTYPE: + setSupertype((ALSSignatureDeclaration)null); + return; + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__SUPERSET: + getSuperset().clear(); + return; + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__FIELDS: + getFields().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__MULTIPLICITY: + return multiplicity != MULTIPLICITY_EDEFAULT; + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__ABSTRACT: + return abstract_ != ABSTRACT_EDEFAULT; + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__DECLARATIONS: + return declarations != null && !declarations.isEmpty(); + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__SUPERTYPE: + return supertype != null; + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__SUPERSET: + return superset != null && !superset.isEmpty(); + case AlloyLanguagePackage.ALS_SIGNATURE_BODY__FIELDS: + return fields != null && !fields.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (multiplicity: "); + result.append(multiplicity); + result.append(", abstract: "); + result.append(abstract_); + result.append(')'); + return result.toString(); + } + +} //ALSSignatureBodyImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSSignatureDeclarationImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSSignatureDeclarationImpl.java new file mode 100644 index 00000000..aff258ff --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSSignatureDeclarationImpl.java @@ -0,0 +1,40 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'ALS Signature Declaration'. + * + * + * @generated + */ +public class ALSSignatureDeclarationImpl extends ALSTypeDeclarationImpl implements ALSSignatureDeclaration +{ + /** + * + * + * @generated + */ + protected ALSSignatureDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_SIGNATURE_DECLARATION; + } + +} //ALSSignatureDeclarationImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringImpl.java new file mode 100644 index 00000000..fa26bdb3 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringImpl.java @@ -0,0 +1,40 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSString; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'ALS String'. + * + * + * @generated + */ +public class ALSStringImpl extends ALSTermImpl implements ALSString +{ + /** + * + * + * @generated + */ + protected ALSStringImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_STRING; + } + +} //ALSStringImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringLiteralImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringLiteralImpl.java new file mode 100644 index 00000000..c3fede10 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringLiteralImpl.java @@ -0,0 +1,176 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS String Literal'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSStringLiteralImpl#getValue Value}
  • + *
+ * + * @generated + */ +public class ALSStringLiteralImpl extends ALSTermImpl implements ALSStringLiteral +{ + /** + * 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 ALSStringLiteralImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_STRING_LITERAL; + } + + /** + * + * + * @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, AlloyLanguagePackage.ALS_STRING_LITERAL__VALUE, oldValue, value)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_STRING_LITERAL__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_STRING_LITERAL__VALUE: + setValue((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_STRING_LITERAL__VALUE: + setValue(VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_STRING_LITERAL__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(); + } + +} //ALSStringLiteralImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringScopeImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringScopeImpl.java new file mode 100644 index 00000000..87c7aaf3 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSStringScopeImpl.java @@ -0,0 +1,40 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringScope; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'ALS String Scope'. + * + * + * @generated + */ +public class ALSStringScopeImpl extends ALSTypeScopeImpl implements ALSStringScope +{ + /** + * + * + * @generated + */ + protected ALSStringScopeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_STRING_SCOPE; + } + +} //ALSStringScopeImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSSubsetImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSSubsetImpl.java new file mode 100644 index 00000000..420debb2 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSSubsetImpl.java @@ -0,0 +1,264 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSubset; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Subset'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSubsetImpl#getLeftOperand Left Operand}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSubsetImpl#getRightOperand Right Operand}
  • + *
+ * + * @generated + */ +public class ALSSubsetImpl extends ALSTermImpl implements ALSSubset +{ + /** + * The cached value of the '{@link #getLeftOperand() Left Operand}' containment reference. + * + * + * @see #getLeftOperand() + * @generated + * @ordered + */ + protected ALSTerm leftOperand; + + /** + * The cached value of the '{@link #getRightOperand() Right Operand}' containment reference. + * + * + * @see #getRightOperand() + * @generated + * @ordered + */ + protected ALSTerm rightOperand; + + /** + * + * + * @generated + */ + protected ALSSubsetImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_SUBSET; + } + + /** + * + * + * @generated + */ + public ALSTerm getLeftOperand() + { + return leftOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeftOperand(ALSTerm newLeftOperand, NotificationChain msgs) + { + ALSTerm oldLeftOperand = leftOperand; + leftOperand = newLeftOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_SUBSET__LEFT_OPERAND, oldLeftOperand, newLeftOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setLeftOperand(ALSTerm newLeftOperand) + { + if (newLeftOperand != leftOperand) + { + NotificationChain msgs = null; + if (leftOperand != null) + msgs = ((InternalEObject)leftOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_SUBSET__LEFT_OPERAND, null, msgs); + if (newLeftOperand != null) + msgs = ((InternalEObject)newLeftOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_SUBSET__LEFT_OPERAND, null, msgs); + msgs = basicSetLeftOperand(newLeftOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_SUBSET__LEFT_OPERAND, newLeftOperand, newLeftOperand)); + } + + /** + * + * + * @generated + */ + public ALSTerm getRightOperand() + { + return rightOperand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRightOperand(ALSTerm newRightOperand, NotificationChain msgs) + { + ALSTerm oldRightOperand = rightOperand; + rightOperand = newRightOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_SUBSET__RIGHT_OPERAND, oldRightOperand, newRightOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRightOperand(ALSTerm newRightOperand) + { + if (newRightOperand != rightOperand) + { + NotificationChain msgs = null; + if (rightOperand != null) + msgs = ((InternalEObject)rightOperand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_SUBSET__RIGHT_OPERAND, null, msgs); + if (newRightOperand != null) + msgs = ((InternalEObject)newRightOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_SUBSET__RIGHT_OPERAND, null, msgs); + msgs = basicSetRightOperand(newRightOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_SUBSET__RIGHT_OPERAND, newRightOperand, newRightOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_SUBSET__LEFT_OPERAND: + return basicSetLeftOperand(null, msgs); + case AlloyLanguagePackage.ALS_SUBSET__RIGHT_OPERAND: + return basicSetRightOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_SUBSET__LEFT_OPERAND: + return getLeftOperand(); + case AlloyLanguagePackage.ALS_SUBSET__RIGHT_OPERAND: + return getRightOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_SUBSET__LEFT_OPERAND: + setLeftOperand((ALSTerm)newValue); + return; + case AlloyLanguagePackage.ALS_SUBSET__RIGHT_OPERAND: + setRightOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_SUBSET__LEFT_OPERAND: + setLeftOperand((ALSTerm)null); + return; + case AlloyLanguagePackage.ALS_SUBSET__RIGHT_OPERAND: + setRightOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_SUBSET__LEFT_OPERAND: + return leftOperand != null; + case AlloyLanguagePackage.ALS_SUBSET__RIGHT_OPERAND: + return rightOperand != null; + } + return super.eIsSet(featureID); + } + +} //ALSSubsetImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSSumImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSSumImpl.java new file mode 100644 index 00000000..1321a1f1 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSSumImpl.java @@ -0,0 +1,240 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSum; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSVariableDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Sum'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSumImpl#getVariables Variables}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSSumImpl#getExpression Expression}
  • + *
+ * + * @generated + */ +public class ALSSumImpl extends ALSTermImpl implements ALSSum +{ + /** + * The cached value of the '{@link #getVariables() Variables}' containment reference list. + * + * + * @see #getVariables() + * @generated + * @ordered + */ + protected EList variables; + + /** + * The cached value of the '{@link #getExpression() Expression}' containment reference. + * + * + * @see #getExpression() + * @generated + * @ordered + */ + protected ALSTerm expression; + + /** + * + * + * @generated + */ + protected ALSSumImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_SUM; + } + + /** + * + * + * @generated + */ + public EList getVariables() + { + if (variables == null) + { + variables = new EObjectContainmentEList(ALSVariableDeclaration.class, this, AlloyLanguagePackage.ALS_SUM__VARIABLES); + } + return variables; + } + + /** + * + * + * @generated + */ + public ALSTerm getExpression() + { + return expression; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetExpression(ALSTerm newExpression, NotificationChain msgs) + { + ALSTerm oldExpression = expression; + expression = newExpression; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_SUM__EXPRESSION, oldExpression, newExpression); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setExpression(ALSTerm newExpression) + { + if (newExpression != expression) + { + NotificationChain msgs = null; + if (expression != null) + msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_SUM__EXPRESSION, null, msgs); + if (newExpression != null) + msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_SUM__EXPRESSION, null, msgs); + msgs = basicSetExpression(newExpression, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_SUM__EXPRESSION, newExpression, newExpression)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_SUM__VARIABLES: + return ((InternalEList)getVariables()).basicRemove(otherEnd, msgs); + case AlloyLanguagePackage.ALS_SUM__EXPRESSION: + return basicSetExpression(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_SUM__VARIABLES: + return getVariables(); + case AlloyLanguagePackage.ALS_SUM__EXPRESSION: + return getExpression(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_SUM__VARIABLES: + getVariables().clear(); + getVariables().addAll((Collection)newValue); + return; + case AlloyLanguagePackage.ALS_SUM__EXPRESSION: + setExpression((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_SUM__VARIABLES: + getVariables().clear(); + return; + case AlloyLanguagePackage.ALS_SUM__EXPRESSION: + setExpression((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_SUM__VARIABLES: + return variables != null && !variables.isEmpty(); + case AlloyLanguagePackage.ALS_SUM__EXPRESSION: + return expression != null; + } + return super.eIsSet(featureID); + } + +} //ALSSumImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSTermImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSTermImpl.java new file mode 100644 index 00000000..12e791b9 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSTermImpl.java @@ -0,0 +1,42 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'ALS Term'. + * + * + * @generated + */ +public class ALSTermImpl extends MinimalEObjectImpl.Container implements ALSTerm +{ + /** + * + * + * @generated + */ + protected ALSTermImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_TERM; + } + +} //ALSTermImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSTypeDeclarationImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSTypeDeclarationImpl.java new file mode 100644 index 00000000..138efd7e --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSTypeDeclarationImpl.java @@ -0,0 +1,40 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTypeDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'ALS Type Declaration'. + * + * + * @generated + */ +public class ALSTypeDeclarationImpl extends ALSRelationDeclarationImpl implements ALSTypeDeclaration +{ + /** + * + * + * @generated + */ + protected ALSTypeDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_TYPE_DECLARATION; + } + +} //ALSTypeDeclarationImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSTypeScopeImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSTypeScopeImpl.java new file mode 100644 index 00000000..48f9c484 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSTypeScopeImpl.java @@ -0,0 +1,177 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTypeScope; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Type Scope'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSTypeScopeImpl#getNumber Number}
  • + *
+ * + * @generated + */ +public class ALSTypeScopeImpl extends MinimalEObjectImpl.Container implements ALSTypeScope +{ + /** + * The default value of the '{@link #getNumber() Number}' attribute. + * + * + * @see #getNumber() + * @generated + * @ordered + */ + protected static final int NUMBER_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getNumber() Number}' attribute. + * + * + * @see #getNumber() + * @generated + * @ordered + */ + protected int number = NUMBER_EDEFAULT; + + /** + * + * + * @generated + */ + protected ALSTypeScopeImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_TYPE_SCOPE; + } + + /** + * + * + * @generated + */ + public int getNumber() + { + return number; + } + + /** + * + * + * @generated + */ + public void setNumber(int newNumber) + { + int oldNumber = number; + number = newNumber; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_TYPE_SCOPE__NUMBER, oldNumber, number)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_TYPE_SCOPE__NUMBER: + return getNumber(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_TYPE_SCOPE__NUMBER: + setNumber((Integer)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_TYPE_SCOPE__NUMBER: + setNumber(NUMBER_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_TYPE_SCOPE__NUMBER: + return number != NUMBER_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (number: "); + result.append(number); + result.append(')'); + return result.toString(); + } + +} //ALSTypeScopeImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSUnaryMinusImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSUnaryMinusImpl.java new file mode 100644 index 00000000..7b4b48c5 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSUnaryMinusImpl.java @@ -0,0 +1,193 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSUnaryMinus; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Unary Minus'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSUnaryMinusImpl#getOperand Operand}
  • + *
+ * + * @generated + */ +public class ALSUnaryMinusImpl extends ALSTermImpl implements ALSUnaryMinus +{ + /** + * The cached value of the '{@link #getOperand() Operand}' containment reference. + * + * + * @see #getOperand() + * @generated + * @ordered + */ + protected ALSTerm operand; + + /** + * + * + * @generated + */ + protected ALSUnaryMinusImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_UNARY_MINUS; + } + + /** + * + * + * @generated + */ + public ALSTerm getOperand() + { + return operand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOperand(ALSTerm newOperand, NotificationChain msgs) + { + ALSTerm oldOperand = operand; + operand = newOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_UNARY_MINUS__OPERAND, oldOperand, newOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setOperand(ALSTerm newOperand) + { + if (newOperand != operand) + { + NotificationChain msgs = null; + if (operand != null) + msgs = ((InternalEObject)operand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_UNARY_MINUS__OPERAND, null, msgs); + if (newOperand != null) + msgs = ((InternalEObject)newOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_UNARY_MINUS__OPERAND, null, msgs); + msgs = basicSetOperand(newOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_UNARY_MINUS__OPERAND, newOperand, newOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_UNARY_MINUS__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 AlloyLanguagePackage.ALS_UNARY_MINUS__OPERAND: + return getOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_UNARY_MINUS__OPERAND: + setOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_UNARY_MINUS__OPERAND: + setOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_UNARY_MINUS__OPERAND: + return operand != null; + } + return super.eIsSet(featureID); + } + +} //ALSUnaryMinusImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSUnivImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSUnivImpl.java new file mode 100644 index 00000000..a2dbcbc9 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSUnivImpl.java @@ -0,0 +1,40 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSUniv; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'ALS Univ'. + * + * + * @generated + */ +public class ALSUnivImpl extends ALSTermImpl implements ALSUniv +{ + /** + * + * + * @generated + */ + protected ALSUnivImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_UNIV; + } + +} //ALSUnivImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSVariableDeclarationImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSVariableDeclarationImpl.java new file mode 100644 index 00000000..60d8c237 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/ALSVariableDeclarationImpl.java @@ -0,0 +1,193 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSVariableDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'ALS Variable Declaration'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.ALSVariableDeclarationImpl#getRange Range}
  • + *
+ * + * @generated + */ +public class ALSVariableDeclarationImpl extends ALSRelationDeclarationImpl implements ALSVariableDeclaration +{ + /** + * The cached value of the '{@link #getRange() Range}' containment reference. + * + * + * @see #getRange() + * @generated + * @ordered + */ + protected ALSTerm range; + + /** + * + * + * @generated + */ + protected ALSVariableDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.ALS_VARIABLE_DECLARATION; + } + + /** + * + * + * @generated + */ + public ALSTerm getRange() + { + return range; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRange(ALSTerm newRange, NotificationChain msgs) + { + ALSTerm oldRange = range; + range = newRange; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_VARIABLE_DECLARATION__RANGE, oldRange, newRange); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setRange(ALSTerm newRange) + { + if (newRange != range) + { + NotificationChain msgs = null; + if (range != null) + msgs = ((InternalEObject)range).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_VARIABLE_DECLARATION__RANGE, null, msgs); + if (newRange != null) + msgs = ((InternalEObject)newRange).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.ALS_VARIABLE_DECLARATION__RANGE, null, msgs); + msgs = basicSetRange(newRange, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.ALS_VARIABLE_DECLARATION__RANGE, newRange, newRange)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_VARIABLE_DECLARATION__RANGE: + return basicSetRange(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_VARIABLE_DECLARATION__RANGE: + return getRange(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_VARIABLE_DECLARATION__RANGE: + setRange((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_VARIABLE_DECLARATION__RANGE: + setRange((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.ALS_VARIABLE_DECLARATION__RANGE: + return range != null; + } + return super.eIsSet(featureID); + } + +} //ALSVariableDeclarationImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlSTransitiveClosureImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlSTransitiveClosureImpl.java new file mode 100644 index 00000000..a475d5b4 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlSTransitiveClosureImpl.java @@ -0,0 +1,193 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlSTransitiveClosure; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +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 'Al STransitive Closure'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link hu.bme.mit.inf.dslreasoner.alloyLanguage.impl.AlSTransitiveClosureImpl#getOperand Operand}
  • + *
+ * + * @generated + */ +public class AlSTransitiveClosureImpl extends ALSTermImpl implements AlSTransitiveClosure +{ + /** + * The cached value of the '{@link #getOperand() Operand}' containment reference. + * + * + * @see #getOperand() + * @generated + * @ordered + */ + protected ALSTerm operand; + + /** + * + * + * @generated + */ + protected AlSTransitiveClosureImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return AlloyLanguagePackage.Literals.AL_STRANSITIVE_CLOSURE; + } + + /** + * + * + * @generated + */ + public ALSTerm getOperand() + { + return operand; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOperand(ALSTerm newOperand, NotificationChain msgs) + { + ALSTerm oldOperand = operand; + operand = newOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.AL_STRANSITIVE_CLOSURE__OPERAND, oldOperand, newOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setOperand(ALSTerm newOperand) + { + if (newOperand != operand) + { + NotificationChain msgs = null; + if (operand != null) + msgs = ((InternalEObject)operand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.AL_STRANSITIVE_CLOSURE__OPERAND, null, msgs); + if (newOperand != null) + msgs = ((InternalEObject)newOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AlloyLanguagePackage.AL_STRANSITIVE_CLOSURE__OPERAND, null, msgs); + msgs = basicSetOperand(newOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, AlloyLanguagePackage.AL_STRANSITIVE_CLOSURE__OPERAND, newOperand, newOperand)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case AlloyLanguagePackage.AL_STRANSITIVE_CLOSURE__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 AlloyLanguagePackage.AL_STRANSITIVE_CLOSURE__OPERAND: + return getOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case AlloyLanguagePackage.AL_STRANSITIVE_CLOSURE__OPERAND: + setOperand((ALSTerm)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.AL_STRANSITIVE_CLOSURE__OPERAND: + setOperand((ALSTerm)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case AlloyLanguagePackage.AL_STRANSITIVE_CLOSURE__OPERAND: + return operand != null; + } + return super.eIsSet(featureID); + } + +} //AlSTransitiveClosureImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlloyLanguageFactoryImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlloyLanguageFactoryImpl.java new file mode 100644 index 00000000..f4cb167b --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlloyLanguageFactoryImpl.java @@ -0,0 +1,837 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.*; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +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 AlloyLanguageFactoryImpl extends EFactoryImpl implements AlloyLanguageFactory +{ + /** + * Creates the default factory implementation. + * + * + * @generated + */ + public static AlloyLanguageFactory init() + { + try + { + AlloyLanguageFactory theAlloyLanguageFactory = (AlloyLanguageFactory)EPackage.Registry.INSTANCE.getEFactory(AlloyLanguagePackage.eNS_URI); + if (theAlloyLanguageFactory != null) + { + return theAlloyLanguageFactory; + } + } + catch (Exception exception) + { + EcorePlugin.INSTANCE.log(exception); + } + return new AlloyLanguageFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * + * + * @generated + */ + public AlloyLanguageFactoryImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + public EObject create(EClass eClass) + { + switch (eClass.getClassifierID()) + { + case AlloyLanguagePackage.ALS_DOCUMENT: return createALSDocument(); + case AlloyLanguagePackage.ALS_RELATION_DECLARATION: return createALSRelationDeclaration(); + case AlloyLanguagePackage.ALS_TYPE_DECLARATION: return createALSTypeDeclaration(); + case AlloyLanguagePackage.ALS_ENUM_DECLARATION: return createALSEnumDeclaration(); + case AlloyLanguagePackage.ALS_ENUM_LITERAL: return createALSEnumLiteral(); + case AlloyLanguagePackage.ALS_SIGNATURE_DECLARATION: return createALSSignatureDeclaration(); + case AlloyLanguagePackage.ALS_SIGNATURE_BODY: return createALSSignatureBody(); + case AlloyLanguagePackage.ALS_FIELD_DECLARATION: return createALSFieldDeclaration(); + case AlloyLanguagePackage.ALS_DEFINITION: return createALSDefinition(); + case AlloyLanguagePackage.ALS_FUNCTION_DEFINITION: return createALSFunctionDefinition(); + case AlloyLanguagePackage.ALS_RELATION_DEFINITION: return createALSRelationDefinition(); + case AlloyLanguagePackage.ALS_FACT_DECLARATION: return createALSFactDeclaration(); + case AlloyLanguagePackage.ALS_TERM: return createALSTerm(); + case AlloyLanguagePackage.ALS_VARIABLE_DECLARATION: return createALSVariableDeclaration(); + case AlloyLanguagePackage.ALS_RUN_COMMAND: return createALSRunCommand(); + case AlloyLanguagePackage.ALS_TYPE_SCOPE: return createALSTypeScope(); + case AlloyLanguagePackage.ALS_SIG_SCOPE: return createALSSigScope(); + case AlloyLanguagePackage.ALS_INT_SCOPE: return createALSIntScope(); + case AlloyLanguagePackage.ALS_STRING_SCOPE: return createALSStringScope(); + case AlloyLanguagePackage.ALS_QUANTIFIED_EX: return createALSQuantifiedEx(); + case AlloyLanguagePackage.ALS_OR: return createALSOr(); + case AlloyLanguagePackage.ALS_IFF: return createALSIff(); + case AlloyLanguagePackage.ALS_IMPL: return createALSImpl(); + case AlloyLanguagePackage.ALS_AND: return createALSAnd(); + case AlloyLanguagePackage.ALS_EQUALS: return createALSEquals(); + case AlloyLanguagePackage.ALS_NOT_EQUALS: return createALSNotEquals(); + case AlloyLanguagePackage.ALS_SUBSET: return createALSSubset(); + case AlloyLanguagePackage.ALS_LESS: return createALSLess(); + case AlloyLanguagePackage.ALS_LEQ: return createALSLeq(); + case AlloyLanguagePackage.ALS_MORE: return createALSMore(); + case AlloyLanguagePackage.ALS_MEQ: return createALSMeq(); + case AlloyLanguagePackage.ALS_OVERRIDE: return createALSOverride(); + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT: return createALSRangeRestrictionRight(); + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT: return createALSRangeRestrictionLeft(); + case AlloyLanguagePackage.ALS_JOIN: return createALSJoin(); + case AlloyLanguagePackage.ALS_MINUS: return createALSMinus(); + case AlloyLanguagePackage.ALS_PLUS: return createALSPlus(); + case AlloyLanguagePackage.ALS_INTERSECTION: return createALSIntersection(); + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT: return createALSDirectProduct(); + case AlloyLanguagePackage.ALS_NOT: return createALSNot(); + case AlloyLanguagePackage.ALS_INVERSE_RELATION: return createALSInverseRelation(); + case AlloyLanguagePackage.AL_STRANSITIVE_CLOSURE: return createAlSTransitiveClosure(); + case AlloyLanguagePackage.ALS_REFLECTIVE_TRANSITIVE_CLOSURE: return createALSReflectiveTransitiveClosure(); + case AlloyLanguagePackage.ALS_CARDINALITY: return createALSCardinality(); + case AlloyLanguagePackage.ALS_UNARY_MINUS: return createALSUnaryMinus(); + case AlloyLanguagePackage.ALS_SUM: return createALSSum(); + case AlloyLanguagePackage.ALS_FUNCTION_CALL: return createALSFunctionCall(); + case AlloyLanguagePackage.ALS_NONE: return createALSNone(); + case AlloyLanguagePackage.ALS_IDEN: return createALSIden(); + case AlloyLanguagePackage.ALS_UNIV: return createALSUniv(); + case AlloyLanguagePackage.ALS_INT: return createALSInt(); + case AlloyLanguagePackage.ALS_STRING: return createALSString(); + case AlloyLanguagePackage.ALS_REFERENCE: return createALSReference(); + case AlloyLanguagePackage.ALS_NUMBER_LITERAL: return createALSNumberLiteral(); + case AlloyLanguagePackage.ALS_STRING_LITERAL: return createALSStringLiteral(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + @Override + public Object createFromString(EDataType eDataType, String initialValue) + { + switch (eDataType.getClassifierID()) + { + case AlloyLanguagePackage.ALS_MULTIPLICITY: + return createALSMultiplicityFromString(eDataType, initialValue); + case AlloyLanguagePackage.ALS_NUMERIC_OPERATOR: + return createALSNumericOperatorFromString(eDataType, initialValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + @Override + public String convertToString(EDataType eDataType, Object instanceValue) + { + switch (eDataType.getClassifierID()) + { + case AlloyLanguagePackage.ALS_MULTIPLICITY: + return convertALSMultiplicityToString(eDataType, instanceValue); + case AlloyLanguagePackage.ALS_NUMERIC_OPERATOR: + return convertALSNumericOperatorToString(eDataType, instanceValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + public ALSDocument createALSDocument() + { + ALSDocumentImpl alsDocument = new ALSDocumentImpl(); + return alsDocument; + } + + /** + * + * + * @generated + */ + public ALSRelationDeclaration createALSRelationDeclaration() + { + ALSRelationDeclarationImpl alsRelationDeclaration = new ALSRelationDeclarationImpl(); + return alsRelationDeclaration; + } + + /** + * + * + * @generated + */ + public ALSTypeDeclaration createALSTypeDeclaration() + { + ALSTypeDeclarationImpl alsTypeDeclaration = new ALSTypeDeclarationImpl(); + return alsTypeDeclaration; + } + + /** + * + * + * @generated + */ + public ALSEnumDeclaration createALSEnumDeclaration() + { + ALSEnumDeclarationImpl alsEnumDeclaration = new ALSEnumDeclarationImpl(); + return alsEnumDeclaration; + } + + /** + * + * + * @generated + */ + public ALSEnumLiteral createALSEnumLiteral() + { + ALSEnumLiteralImpl alsEnumLiteral = new ALSEnumLiteralImpl(); + return alsEnumLiteral; + } + + /** + * + * + * @generated + */ + public ALSSignatureDeclaration createALSSignatureDeclaration() + { + ALSSignatureDeclarationImpl alsSignatureDeclaration = new ALSSignatureDeclarationImpl(); + return alsSignatureDeclaration; + } + + /** + * + * + * @generated + */ + public ALSSignatureBody createALSSignatureBody() + { + ALSSignatureBodyImpl alsSignatureBody = new ALSSignatureBodyImpl(); + return alsSignatureBody; + } + + /** + * + * + * @generated + */ + public ALSFieldDeclaration createALSFieldDeclaration() + { + ALSFieldDeclarationImpl alsFieldDeclaration = new ALSFieldDeclarationImpl(); + return alsFieldDeclaration; + } + + /** + * + * + * @generated + */ + public ALSDefinition createALSDefinition() + { + ALSDefinitionImpl alsDefinition = new ALSDefinitionImpl(); + return alsDefinition; + } + + /** + * + * + * @generated + */ + public ALSFunctionDefinition createALSFunctionDefinition() + { + ALSFunctionDefinitionImpl alsFunctionDefinition = new ALSFunctionDefinitionImpl(); + return alsFunctionDefinition; + } + + /** + * + * + * @generated + */ + public ALSRelationDefinition createALSRelationDefinition() + { + ALSRelationDefinitionImpl alsRelationDefinition = new ALSRelationDefinitionImpl(); + return alsRelationDefinition; + } + + /** + * + * + * @generated + */ + public ALSFactDeclaration createALSFactDeclaration() + { + ALSFactDeclarationImpl alsFactDeclaration = new ALSFactDeclarationImpl(); + return alsFactDeclaration; + } + + /** + * + * + * @generated + */ + public ALSTerm createALSTerm() + { + ALSTermImpl alsTerm = new ALSTermImpl(); + return alsTerm; + } + + /** + * + * + * @generated + */ + public ALSVariableDeclaration createALSVariableDeclaration() + { + ALSVariableDeclarationImpl alsVariableDeclaration = new ALSVariableDeclarationImpl(); + return alsVariableDeclaration; + } + + /** + * + * + * @generated + */ + public ALSRunCommand createALSRunCommand() + { + ALSRunCommandImpl alsRunCommand = new ALSRunCommandImpl(); + return alsRunCommand; + } + + /** + * + * + * @generated + */ + public ALSTypeScope createALSTypeScope() + { + ALSTypeScopeImpl alsTypeScope = new ALSTypeScopeImpl(); + return alsTypeScope; + } + + /** + * + * + * @generated + */ + public ALSSigScope createALSSigScope() + { + ALSSigScopeImpl alsSigScope = new ALSSigScopeImpl(); + return alsSigScope; + } + + /** + * + * + * @generated + */ + public ALSIntScope createALSIntScope() + { + ALSIntScopeImpl alsIntScope = new ALSIntScopeImpl(); + return alsIntScope; + } + + /** + * + * + * @generated + */ + public ALSStringScope createALSStringScope() + { + ALSStringScopeImpl alsStringScope = new ALSStringScopeImpl(); + return alsStringScope; + } + + /** + * + * + * @generated + */ + public ALSQuantifiedEx createALSQuantifiedEx() + { + ALSQuantifiedExImpl alsQuantifiedEx = new ALSQuantifiedExImpl(); + return alsQuantifiedEx; + } + + /** + * + * + * @generated + */ + public ALSOr createALSOr() + { + ALSOrImpl alsOr = new ALSOrImpl(); + return alsOr; + } + + /** + * + * + * @generated + */ + public ALSIff createALSIff() + { + ALSIffImpl alsIff = new ALSIffImpl(); + return alsIff; + } + + /** + * + * + * @generated + */ + public ALSImpl createALSImpl() + { + ALSImplImpl alsImpl = new ALSImplImpl(); + return alsImpl; + } + + /** + * + * + * @generated + */ + public ALSAnd createALSAnd() + { + ALSAndImpl alsAnd = new ALSAndImpl(); + return alsAnd; + } + + /** + * + * + * @generated + */ + public ALSEquals createALSEquals() + { + ALSEqualsImpl alsEquals = new ALSEqualsImpl(); + return alsEquals; + } + + /** + * + * + * @generated + */ + public ALSNotEquals createALSNotEquals() + { + ALSNotEqualsImpl alsNotEquals = new ALSNotEqualsImpl(); + return alsNotEquals; + } + + /** + * + * + * @generated + */ + public ALSSubset createALSSubset() + { + ALSSubsetImpl alsSubset = new ALSSubsetImpl(); + return alsSubset; + } + + /** + * + * + * @generated + */ + public ALSLess createALSLess() + { + ALSLessImpl alsLess = new ALSLessImpl(); + return alsLess; + } + + /** + * + * + * @generated + */ + public ALSLeq createALSLeq() + { + ALSLeqImpl alsLeq = new ALSLeqImpl(); + return alsLeq; + } + + /** + * + * + * @generated + */ + public ALSMore createALSMore() + { + ALSMoreImpl alsMore = new ALSMoreImpl(); + return alsMore; + } + + /** + * + * + * @generated + */ + public ALSMeq createALSMeq() + { + ALSMeqImpl alsMeq = new ALSMeqImpl(); + return alsMeq; + } + + /** + * + * + * @generated + */ + public ALSOverride createALSOverride() + { + ALSOverrideImpl alsOverride = new ALSOverrideImpl(); + return alsOverride; + } + + /** + * + * + * @generated + */ + public ALSRangeRestrictionRight createALSRangeRestrictionRight() + { + ALSRangeRestrictionRightImpl alsRangeRestrictionRight = new ALSRangeRestrictionRightImpl(); + return alsRangeRestrictionRight; + } + + /** + * + * + * @generated + */ + public ALSRangeRestrictionLeft createALSRangeRestrictionLeft() + { + ALSRangeRestrictionLeftImpl alsRangeRestrictionLeft = new ALSRangeRestrictionLeftImpl(); + return alsRangeRestrictionLeft; + } + + /** + * + * + * @generated + */ + public ALSJoin createALSJoin() + { + ALSJoinImpl alsJoin = new ALSJoinImpl(); + return alsJoin; + } + + /** + * + * + * @generated + */ + public ALSMinus createALSMinus() + { + ALSMinusImpl alsMinus = new ALSMinusImpl(); + return alsMinus; + } + + /** + * + * + * @generated + */ + public ALSPlus createALSPlus() + { + ALSPlusImpl alsPlus = new ALSPlusImpl(); + return alsPlus; + } + + /** + * + * + * @generated + */ + public ALSIntersection createALSIntersection() + { + ALSIntersectionImpl alsIntersection = new ALSIntersectionImpl(); + return alsIntersection; + } + + /** + * + * + * @generated + */ + public ALSDirectProduct createALSDirectProduct() + { + ALSDirectProductImpl alsDirectProduct = new ALSDirectProductImpl(); + return alsDirectProduct; + } + + /** + * + * + * @generated + */ + public ALSNot createALSNot() + { + ALSNotImpl alsNot = new ALSNotImpl(); + return alsNot; + } + + /** + * + * + * @generated + */ + public ALSInverseRelation createALSInverseRelation() + { + ALSInverseRelationImpl alsInverseRelation = new ALSInverseRelationImpl(); + return alsInverseRelation; + } + + /** + * + * + * @generated + */ + public AlSTransitiveClosure createAlSTransitiveClosure() + { + AlSTransitiveClosureImpl alSTransitiveClosure = new AlSTransitiveClosureImpl(); + return alSTransitiveClosure; + } + + /** + * + * + * @generated + */ + public ALSReflectiveTransitiveClosure createALSReflectiveTransitiveClosure() + { + ALSReflectiveTransitiveClosureImpl alsReflectiveTransitiveClosure = new ALSReflectiveTransitiveClosureImpl(); + return alsReflectiveTransitiveClosure; + } + + /** + * + * + * @generated + */ + public ALSCardinality createALSCardinality() + { + ALSCardinalityImpl alsCardinality = new ALSCardinalityImpl(); + return alsCardinality; + } + + /** + * + * + * @generated + */ + public ALSUnaryMinus createALSUnaryMinus() + { + ALSUnaryMinusImpl alsUnaryMinus = new ALSUnaryMinusImpl(); + return alsUnaryMinus; + } + + /** + * + * + * @generated + */ + public ALSSum createALSSum() + { + ALSSumImpl alsSum = new ALSSumImpl(); + return alsSum; + } + + /** + * + * + * @generated + */ + public ALSFunctionCall createALSFunctionCall() + { + ALSFunctionCallImpl alsFunctionCall = new ALSFunctionCallImpl(); + return alsFunctionCall; + } + + /** + * + * + * @generated + */ + public ALSNone createALSNone() + { + ALSNoneImpl alsNone = new ALSNoneImpl(); + return alsNone; + } + + /** + * + * + * @generated + */ + public ALSIden createALSIden() + { + ALSIdenImpl alsIden = new ALSIdenImpl(); + return alsIden; + } + + /** + * + * + * @generated + */ + public ALSUniv createALSUniv() + { + ALSUnivImpl alsUniv = new ALSUnivImpl(); + return alsUniv; + } + + /** + * + * + * @generated + */ + public ALSInt createALSInt() + { + ALSIntImpl alsInt = new ALSIntImpl(); + return alsInt; + } + + /** + * + * + * @generated + */ + public ALSString createALSString() + { + ALSStringImpl alsString = new ALSStringImpl(); + return alsString; + } + + /** + * + * + * @generated + */ + public ALSReference createALSReference() + { + ALSReferenceImpl alsReference = new ALSReferenceImpl(); + return alsReference; + } + + /** + * + * + * @generated + */ + public ALSNumberLiteral createALSNumberLiteral() + { + ALSNumberLiteralImpl alsNumberLiteral = new ALSNumberLiteralImpl(); + return alsNumberLiteral; + } + + /** + * + * + * @generated + */ + public ALSStringLiteral createALSStringLiteral() + { + ALSStringLiteralImpl alsStringLiteral = new ALSStringLiteralImpl(); + return alsStringLiteral; + } + + /** + * + * + * @generated + */ + public ALSMultiplicity createALSMultiplicityFromString(EDataType eDataType, String initialValue) + { + ALSMultiplicity result = ALSMultiplicity.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * + * + * @generated + */ + public String convertALSMultiplicityToString(EDataType eDataType, Object instanceValue) + { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public ALSNumericOperator createALSNumericOperatorFromString(EDataType eDataType, String initialValue) + { + ALSNumericOperator result = ALSNumericOperator.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * + * + * @generated + */ + public String convertALSNumericOperatorToString(EDataType eDataType, Object instanceValue) + { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public AlloyLanguagePackage getAlloyLanguagePackage() + { + return (AlloyLanguagePackage)getEPackage(); + } + + /** + * + * + * @deprecated + * @generated + */ + @Deprecated + public static AlloyLanguagePackage getPackage() + { + return AlloyLanguagePackage.eINSTANCE; + } + +} //AlloyLanguageFactoryImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlloyLanguagePackageImpl.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlloyLanguagePackageImpl.java new file mode 100644 index 00000000..768840c9 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/impl/AlloyLanguagePackageImpl.java @@ -0,0 +1,2498 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.impl; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSAnd; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSCardinality; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDefinition; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumLiteral; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEquals; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFactDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFieldDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionCall; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionDefinition; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIden; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIff; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSImpl; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSInt; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntScope; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntersection; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSInverseRelation; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSJoin; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLeq; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLess; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMeq; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMinus; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMore; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMultiplicity; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNone; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNot; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNotEquals; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumberLiteral; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumericOperator; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOr; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOverride; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSPlus; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionLeft; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionRight; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReference; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReflectiveTransitiveClosure; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDefinition; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRunCommand; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSigScope; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSString; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringScope; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSubset; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSum; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTypeDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTypeScope; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSUnaryMinus; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSUniv; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSVariableDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlSTransitiveClosure; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguageFactory; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; +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 AlloyLanguagePackageImpl extends EPackageImpl implements AlloyLanguagePackage +{ + /** + * + * + * @generated + */ + private EClass alsDocumentEClass = null; + + /** + * + * + * @generated + */ + private EClass alsRelationDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass alsTypeDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass alsEnumDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass alsEnumLiteralEClass = null; + + /** + * + * + * @generated + */ + private EClass alsSignatureDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass alsSignatureBodyEClass = null; + + /** + * + * + * @generated + */ + private EClass alsFieldDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass alsDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass alsFunctionDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass alsRelationDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass alsFactDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass alsTermEClass = null; + + /** + * + * + * @generated + */ + private EClass alsVariableDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass alsRunCommandEClass = null; + + /** + * + * + * @generated + */ + private EClass alsTypeScopeEClass = null; + + /** + * + * + * @generated + */ + private EClass alsSigScopeEClass = null; + + /** + * + * + * @generated + */ + private EClass alsIntScopeEClass = null; + + /** + * + * + * @generated + */ + private EClass alsStringScopeEClass = null; + + /** + * + * + * @generated + */ + private EClass alsQuantifiedExEClass = null; + + /** + * + * + * @generated + */ + private EClass alsOrEClass = null; + + /** + * + * + * @generated + */ + private EClass alsIffEClass = null; + + /** + * + * + * @generated + */ + private EClass alsImplEClass = null; + + /** + * + * + * @generated + */ + private EClass alsAndEClass = null; + + /** + * + * + * @generated + */ + private EClass alsEqualsEClass = null; + + /** + * + * + * @generated + */ + private EClass alsNotEqualsEClass = null; + + /** + * + * + * @generated + */ + private EClass alsSubsetEClass = null; + + /** + * + * + * @generated + */ + private EClass alsLessEClass = null; + + /** + * + * + * @generated + */ + private EClass alsLeqEClass = null; + + /** + * + * + * @generated + */ + private EClass alsMoreEClass = null; + + /** + * + * + * @generated + */ + private EClass alsMeqEClass = null; + + /** + * + * + * @generated + */ + private EClass alsOverrideEClass = null; + + /** + * + * + * @generated + */ + private EClass alsRangeRestrictionRightEClass = null; + + /** + * + * + * @generated + */ + private EClass alsRangeRestrictionLeftEClass = null; + + /** + * + * + * @generated + */ + private EClass alsJoinEClass = null; + + /** + * + * + * @generated + */ + private EClass alsMinusEClass = null; + + /** + * + * + * @generated + */ + private EClass alsPlusEClass = null; + + /** + * + * + * @generated + */ + private EClass alsIntersectionEClass = null; + + /** + * + * + * @generated + */ + private EClass alsDirectProductEClass = null; + + /** + * + * + * @generated + */ + private EClass alsNotEClass = null; + + /** + * + * + * @generated + */ + private EClass alsInverseRelationEClass = null; + + /** + * + * + * @generated + */ + private EClass alSTransitiveClosureEClass = null; + + /** + * + * + * @generated + */ + private EClass alsReflectiveTransitiveClosureEClass = null; + + /** + * + * + * @generated + */ + private EClass alsCardinalityEClass = null; + + /** + * + * + * @generated + */ + private EClass alsUnaryMinusEClass = null; + + /** + * + * + * @generated + */ + private EClass alsSumEClass = null; + + /** + * + * + * @generated + */ + private EClass alsFunctionCallEClass = null; + + /** + * + * + * @generated + */ + private EClass alsNoneEClass = null; + + /** + * + * + * @generated + */ + private EClass alsIdenEClass = null; + + /** + * + * + * @generated + */ + private EClass alsUnivEClass = null; + + /** + * + * + * @generated + */ + private EClass alsIntEClass = null; + + /** + * + * + * @generated + */ + private EClass alsStringEClass = null; + + /** + * + * + * @generated + */ + private EClass alsReferenceEClass = null; + + /** + * + * + * @generated + */ + private EClass alsNumberLiteralEClass = null; + + /** + * + * + * @generated + */ + private EClass alsStringLiteralEClass = null; + + /** + * + * + * @generated + */ + private EEnum alsMultiplicityEEnum = null; + + /** + * + * + * @generated + */ + private EEnum alsNumericOperatorEEnum = 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage#eNS_URI + * @see #init() + * @generated + */ + private AlloyLanguagePackageImpl() + { + super(eNS_URI, AlloyLanguageFactory.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 AlloyLanguagePackage#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 AlloyLanguagePackage init() + { + if (isInited) return (AlloyLanguagePackage)EPackage.Registry.INSTANCE.getEPackage(AlloyLanguagePackage.eNS_URI); + + // Obtain or create and register package + AlloyLanguagePackageImpl theAlloyLanguagePackage = (AlloyLanguagePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof AlloyLanguagePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new AlloyLanguagePackageImpl()); + + isInited = true; + + // Create package meta-data objects + theAlloyLanguagePackage.createPackageContents(); + + // Initialize created meta-data + theAlloyLanguagePackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theAlloyLanguagePackage.freeze(); + + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(AlloyLanguagePackage.eNS_URI, theAlloyLanguagePackage); + return theAlloyLanguagePackage; + } + + /** + * + * + * @generated + */ + public EClass getALSDocument() + { + return alsDocumentEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSDocument_EnumDeclarations() + { + return (EReference)alsDocumentEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSDocument_SignatureBodies() + { + return (EReference)alsDocumentEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getALSDocument_FunctionDefinitions() + { + return (EReference)alsDocumentEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getALSDocument_RelationDefinitions() + { + return (EReference)alsDocumentEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getALSDocument_FactDeclarations() + { + return (EReference)alsDocumentEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getALSDocument_RunCommand() + { + return (EReference)alsDocumentEClass.getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EClass getALSRelationDeclaration() + { + return alsRelationDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getALSRelationDeclaration_Name() + { + return (EAttribute)alsRelationDeclarationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getALSTypeDeclaration() + { + return alsTypeDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EClass getALSEnumDeclaration() + { + return alsEnumDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSEnumDeclaration_Literal() + { + return (EReference)alsEnumDeclarationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getALSEnumLiteral() + { + return alsEnumLiteralEClass; + } + + /** + * + * + * @generated + */ + public EClass getALSSignatureDeclaration() + { + return alsSignatureDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EClass getALSSignatureBody() + { + return alsSignatureBodyEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getALSSignatureBody_Multiplicity() + { + return (EAttribute)alsSignatureBodyEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getALSSignatureBody_Abstract() + { + return (EAttribute)alsSignatureBodyEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getALSSignatureBody_Declarations() + { + return (EReference)alsSignatureBodyEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getALSSignatureBody_Supertype() + { + return (EReference)alsSignatureBodyEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getALSSignatureBody_Superset() + { + return (EReference)alsSignatureBodyEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EReference getALSSignatureBody_Fields() + { + return (EReference)alsSignatureBodyEClass.getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + public EClass getALSFieldDeclaration() + { + return alsFieldDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getALSFieldDeclaration_Multiplicity() + { + return (EAttribute)alsFieldDeclarationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSFieldDeclaration_Type() + { + return (EReference)alsFieldDeclarationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSDefinition() + { + return alsDefinitionEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getALSDefinition_Name() + { + return (EAttribute)alsDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSDefinition_Variables() + { + return (EReference)alsDefinitionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getALSDefinition_Value() + { + return (EReference)alsDefinitionEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getALSFunctionDefinition() + { + return alsFunctionDefinitionEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSFunctionDefinition_Type() + { + return (EReference)alsFunctionDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getALSRelationDefinition() + { + return alsRelationDefinitionEClass; + } + + /** + * + * + * @generated + */ + public EClass getALSFactDeclaration() + { + return alsFactDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getALSFactDeclaration_Name() + { + return (EAttribute)alsFactDeclarationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSFactDeclaration_Term() + { + return (EReference)alsFactDeclarationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSTerm() + { + return alsTermEClass; + } + + /** + * + * + * @generated + */ + public EClass getALSVariableDeclaration() + { + return alsVariableDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSVariableDeclaration_Range() + { + return (EReference)alsVariableDeclarationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getALSRunCommand() + { + return alsRunCommandEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSRunCommand_TypeScopes() + { + return (EReference)alsRunCommandEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getALSTypeScope() + { + return alsTypeScopeEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getALSTypeScope_Number() + { + return (EAttribute)alsTypeScopeEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getALSSigScope() + { + return alsSigScopeEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getALSSigScope_Exactly() + { + return (EAttribute)alsSigScopeEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSSigScope_Type() + { + return (EReference)alsSigScopeEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSIntScope() + { + return alsIntScopeEClass; + } + + /** + * + * + * @generated + */ + public EClass getALSStringScope() + { + return alsStringScopeEClass; + } + + /** + * + * + * @generated + */ + public EClass getALSQuantifiedEx() + { + return alsQuantifiedExEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getALSQuantifiedEx_Type() + { + return (EAttribute)alsQuantifiedExEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getALSQuantifiedEx_Disj() + { + return (EAttribute)alsQuantifiedExEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getALSQuantifiedEx_Variables() + { + return (EReference)alsQuantifiedExEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getALSQuantifiedEx_Expression() + { + return (EReference)alsQuantifiedExEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getALSOr() + { + return alsOrEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSOr_LeftOperand() + { + return (EReference)alsOrEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSOr_RightOperand() + { + return (EReference)alsOrEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSIff() + { + return alsIffEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSIff_LeftOperand() + { + return (EReference)alsIffEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSIff_RightOperand() + { + return (EReference)alsIffEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSImpl() + { + return alsImplEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSImpl_LeftOperand() + { + return (EReference)alsImplEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSImpl_RightOperand() + { + return (EReference)alsImplEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getALSImpl_ElseOperand() + { + return (EReference)alsImplEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getALSAnd() + { + return alsAndEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSAnd_LeftOperand() + { + return (EReference)alsAndEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSAnd_RightOperand() + { + return (EReference)alsAndEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSEquals() + { + return alsEqualsEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSEquals_LeftOperand() + { + return (EReference)alsEqualsEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSEquals_RightOperand() + { + return (EReference)alsEqualsEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSNotEquals() + { + return alsNotEqualsEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSNotEquals_LeftOperand() + { + return (EReference)alsNotEqualsEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSNotEquals_RightOperand() + { + return (EReference)alsNotEqualsEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSSubset() + { + return alsSubsetEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSSubset_LeftOperand() + { + return (EReference)alsSubsetEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSSubset_RightOperand() + { + return (EReference)alsSubsetEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSLess() + { + return alsLessEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSLess_LeftOperand() + { + return (EReference)alsLessEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSLess_RightOperand() + { + return (EReference)alsLessEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSLeq() + { + return alsLeqEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSLeq_LeftOperand() + { + return (EReference)alsLeqEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSLeq_RightOperand() + { + return (EReference)alsLeqEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSMore() + { + return alsMoreEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSMore_LeftOperand() + { + return (EReference)alsMoreEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSMore_RightOperand() + { + return (EReference)alsMoreEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSMeq() + { + return alsMeqEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSMeq_LeftOperand() + { + return (EReference)alsMeqEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSMeq_RightOperand() + { + return (EReference)alsMeqEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSOverride() + { + return alsOverrideEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSOverride_LeftOperand() + { + return (EReference)alsOverrideEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSOverride_RightOperand() + { + return (EReference)alsOverrideEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSRangeRestrictionRight() + { + return alsRangeRestrictionRightEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSRangeRestrictionRight_Relation() + { + return (EReference)alsRangeRestrictionRightEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSRangeRestrictionRight_Filter() + { + return (EReference)alsRangeRestrictionRightEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSRangeRestrictionLeft() + { + return alsRangeRestrictionLeftEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSRangeRestrictionLeft_Filter() + { + return (EReference)alsRangeRestrictionLeftEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSRangeRestrictionLeft_Relation() + { + return (EReference)alsRangeRestrictionLeftEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSJoin() + { + return alsJoinEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSJoin_LeftOperand() + { + return (EReference)alsJoinEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSJoin_RightOperand() + { + return (EReference)alsJoinEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSMinus() + { + return alsMinusEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSMinus_LeftOperand() + { + return (EReference)alsMinusEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSMinus_RightOperand() + { + return (EReference)alsMinusEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSPlus() + { + return alsPlusEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSPlus_LeftOperand() + { + return (EReference)alsPlusEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSPlus_RightOperand() + { + return (EReference)alsPlusEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSIntersection() + { + return alsIntersectionEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSIntersection_LeftOperand() + { + return (EReference)alsIntersectionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSIntersection_RightOperand() + { + return (EReference)alsIntersectionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSDirectProduct() + { + return alsDirectProductEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSDirectProduct_LeftOperand() + { + return (EReference)alsDirectProductEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getALSDirectProduct_LeftMultiplicit() + { + return (EAttribute)alsDirectProductEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EAttribute getALSDirectProduct_RightMultiplicit() + { + return (EAttribute)alsDirectProductEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getALSDirectProduct_RightOperand() + { + return (EReference)alsDirectProductEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getALSNot() + { + return alsNotEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSNot_Operand() + { + return (EReference)alsNotEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getALSInverseRelation() + { + return alsInverseRelationEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSInverseRelation_Operand() + { + return (EReference)alsInverseRelationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getAlSTransitiveClosure() + { + return alSTransitiveClosureEClass; + } + + /** + * + * + * @generated + */ + public EReference getAlSTransitiveClosure_Operand() + { + return (EReference)alSTransitiveClosureEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getALSReflectiveTransitiveClosure() + { + return alsReflectiveTransitiveClosureEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSReflectiveTransitiveClosure_Operand() + { + return (EReference)alsReflectiveTransitiveClosureEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getALSCardinality() + { + return alsCardinalityEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSCardinality_Operand() + { + return (EReference)alsCardinalityEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getALSUnaryMinus() + { + return alsUnaryMinusEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSUnaryMinus_Operand() + { + return (EReference)alsUnaryMinusEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getALSSum() + { + return alsSumEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSSum_Variables() + { + return (EReference)alsSumEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getALSSum_Expression() + { + return (EReference)alsSumEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getALSFunctionCall() + { + return alsFunctionCallEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSFunctionCall_ReferredDefinition() + { + return (EReference)alsFunctionCallEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getALSFunctionCall_ReferredNumericOperator() + { + return (EAttribute)alsFunctionCallEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getALSFunctionCall_Params() + { + return (EReference)alsFunctionCallEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getALSNone() + { + return alsNoneEClass; + } + + /** + * + * + * @generated + */ + public EClass getALSIden() + { + return alsIdenEClass; + } + + /** + * + * + * @generated + */ + public EClass getALSUniv() + { + return alsUnivEClass; + } + + /** + * + * + * @generated + */ + public EClass getALSInt() + { + return alsIntEClass; + } + + /** + * + * + * @generated + */ + public EClass getALSString() + { + return alsStringEClass; + } + + /** + * + * + * @generated + */ + public EClass getALSReference() + { + return alsReferenceEClass; + } + + /** + * + * + * @generated + */ + public EReference getALSReference_Referred() + { + return (EReference)alsReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getALSNumberLiteral() + { + return alsNumberLiteralEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getALSNumberLiteral_Value() + { + return (EAttribute)alsNumberLiteralEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getALSStringLiteral() + { + return alsStringLiteralEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getALSStringLiteral_Value() + { + return (EAttribute)alsStringLiteralEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EEnum getALSMultiplicity() + { + return alsMultiplicityEEnum; + } + + /** + * + * + * @generated + */ + public EEnum getALSNumericOperator() + { + return alsNumericOperatorEEnum; + } + + /** + * + * + * @generated + */ + public AlloyLanguageFactory getAlloyLanguageFactory() + { + return (AlloyLanguageFactory)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 + alsDocumentEClass = createEClass(ALS_DOCUMENT); + createEReference(alsDocumentEClass, ALS_DOCUMENT__ENUM_DECLARATIONS); + createEReference(alsDocumentEClass, ALS_DOCUMENT__SIGNATURE_BODIES); + createEReference(alsDocumentEClass, ALS_DOCUMENT__FUNCTION_DEFINITIONS); + createEReference(alsDocumentEClass, ALS_DOCUMENT__RELATION_DEFINITIONS); + createEReference(alsDocumentEClass, ALS_DOCUMENT__FACT_DECLARATIONS); + createEReference(alsDocumentEClass, ALS_DOCUMENT__RUN_COMMAND); + + alsRelationDeclarationEClass = createEClass(ALS_RELATION_DECLARATION); + createEAttribute(alsRelationDeclarationEClass, ALS_RELATION_DECLARATION__NAME); + + alsTypeDeclarationEClass = createEClass(ALS_TYPE_DECLARATION); + + alsEnumDeclarationEClass = createEClass(ALS_ENUM_DECLARATION); + createEReference(alsEnumDeclarationEClass, ALS_ENUM_DECLARATION__LITERAL); + + alsEnumLiteralEClass = createEClass(ALS_ENUM_LITERAL); + + alsSignatureDeclarationEClass = createEClass(ALS_SIGNATURE_DECLARATION); + + alsSignatureBodyEClass = createEClass(ALS_SIGNATURE_BODY); + createEAttribute(alsSignatureBodyEClass, ALS_SIGNATURE_BODY__MULTIPLICITY); + createEAttribute(alsSignatureBodyEClass, ALS_SIGNATURE_BODY__ABSTRACT); + createEReference(alsSignatureBodyEClass, ALS_SIGNATURE_BODY__DECLARATIONS); + createEReference(alsSignatureBodyEClass, ALS_SIGNATURE_BODY__SUPERTYPE); + createEReference(alsSignatureBodyEClass, ALS_SIGNATURE_BODY__SUPERSET); + createEReference(alsSignatureBodyEClass, ALS_SIGNATURE_BODY__FIELDS); + + alsFieldDeclarationEClass = createEClass(ALS_FIELD_DECLARATION); + createEAttribute(alsFieldDeclarationEClass, ALS_FIELD_DECLARATION__MULTIPLICITY); + createEReference(alsFieldDeclarationEClass, ALS_FIELD_DECLARATION__TYPE); + + alsDefinitionEClass = createEClass(ALS_DEFINITION); + createEAttribute(alsDefinitionEClass, ALS_DEFINITION__NAME); + createEReference(alsDefinitionEClass, ALS_DEFINITION__VARIABLES); + createEReference(alsDefinitionEClass, ALS_DEFINITION__VALUE); + + alsFunctionDefinitionEClass = createEClass(ALS_FUNCTION_DEFINITION); + createEReference(alsFunctionDefinitionEClass, ALS_FUNCTION_DEFINITION__TYPE); + + alsRelationDefinitionEClass = createEClass(ALS_RELATION_DEFINITION); + + alsFactDeclarationEClass = createEClass(ALS_FACT_DECLARATION); + createEAttribute(alsFactDeclarationEClass, ALS_FACT_DECLARATION__NAME); + createEReference(alsFactDeclarationEClass, ALS_FACT_DECLARATION__TERM); + + alsTermEClass = createEClass(ALS_TERM); + + alsVariableDeclarationEClass = createEClass(ALS_VARIABLE_DECLARATION); + createEReference(alsVariableDeclarationEClass, ALS_VARIABLE_DECLARATION__RANGE); + + alsRunCommandEClass = createEClass(ALS_RUN_COMMAND); + createEReference(alsRunCommandEClass, ALS_RUN_COMMAND__TYPE_SCOPES); + + alsTypeScopeEClass = createEClass(ALS_TYPE_SCOPE); + createEAttribute(alsTypeScopeEClass, ALS_TYPE_SCOPE__NUMBER); + + alsSigScopeEClass = createEClass(ALS_SIG_SCOPE); + createEAttribute(alsSigScopeEClass, ALS_SIG_SCOPE__EXACTLY); + createEReference(alsSigScopeEClass, ALS_SIG_SCOPE__TYPE); + + alsIntScopeEClass = createEClass(ALS_INT_SCOPE); + + alsStringScopeEClass = createEClass(ALS_STRING_SCOPE); + + alsQuantifiedExEClass = createEClass(ALS_QUANTIFIED_EX); + createEAttribute(alsQuantifiedExEClass, ALS_QUANTIFIED_EX__TYPE); + createEAttribute(alsQuantifiedExEClass, ALS_QUANTIFIED_EX__DISJ); + createEReference(alsQuantifiedExEClass, ALS_QUANTIFIED_EX__VARIABLES); + createEReference(alsQuantifiedExEClass, ALS_QUANTIFIED_EX__EXPRESSION); + + alsOrEClass = createEClass(ALS_OR); + createEReference(alsOrEClass, ALS_OR__LEFT_OPERAND); + createEReference(alsOrEClass, ALS_OR__RIGHT_OPERAND); + + alsIffEClass = createEClass(ALS_IFF); + createEReference(alsIffEClass, ALS_IFF__LEFT_OPERAND); + createEReference(alsIffEClass, ALS_IFF__RIGHT_OPERAND); + + alsImplEClass = createEClass(ALS_IMPL); + createEReference(alsImplEClass, ALS_IMPL__LEFT_OPERAND); + createEReference(alsImplEClass, ALS_IMPL__RIGHT_OPERAND); + createEReference(alsImplEClass, ALS_IMPL__ELSE_OPERAND); + + alsAndEClass = createEClass(ALS_AND); + createEReference(alsAndEClass, ALS_AND__LEFT_OPERAND); + createEReference(alsAndEClass, ALS_AND__RIGHT_OPERAND); + + alsEqualsEClass = createEClass(ALS_EQUALS); + createEReference(alsEqualsEClass, ALS_EQUALS__LEFT_OPERAND); + createEReference(alsEqualsEClass, ALS_EQUALS__RIGHT_OPERAND); + + alsNotEqualsEClass = createEClass(ALS_NOT_EQUALS); + createEReference(alsNotEqualsEClass, ALS_NOT_EQUALS__LEFT_OPERAND); + createEReference(alsNotEqualsEClass, ALS_NOT_EQUALS__RIGHT_OPERAND); + + alsSubsetEClass = createEClass(ALS_SUBSET); + createEReference(alsSubsetEClass, ALS_SUBSET__LEFT_OPERAND); + createEReference(alsSubsetEClass, ALS_SUBSET__RIGHT_OPERAND); + + alsLessEClass = createEClass(ALS_LESS); + createEReference(alsLessEClass, ALS_LESS__LEFT_OPERAND); + createEReference(alsLessEClass, ALS_LESS__RIGHT_OPERAND); + + alsLeqEClass = createEClass(ALS_LEQ); + createEReference(alsLeqEClass, ALS_LEQ__LEFT_OPERAND); + createEReference(alsLeqEClass, ALS_LEQ__RIGHT_OPERAND); + + alsMoreEClass = createEClass(ALS_MORE); + createEReference(alsMoreEClass, ALS_MORE__LEFT_OPERAND); + createEReference(alsMoreEClass, ALS_MORE__RIGHT_OPERAND); + + alsMeqEClass = createEClass(ALS_MEQ); + createEReference(alsMeqEClass, ALS_MEQ__LEFT_OPERAND); + createEReference(alsMeqEClass, ALS_MEQ__RIGHT_OPERAND); + + alsOverrideEClass = createEClass(ALS_OVERRIDE); + createEReference(alsOverrideEClass, ALS_OVERRIDE__LEFT_OPERAND); + createEReference(alsOverrideEClass, ALS_OVERRIDE__RIGHT_OPERAND); + + alsRangeRestrictionRightEClass = createEClass(ALS_RANGE_RESTRICTION_RIGHT); + createEReference(alsRangeRestrictionRightEClass, ALS_RANGE_RESTRICTION_RIGHT__RELATION); + createEReference(alsRangeRestrictionRightEClass, ALS_RANGE_RESTRICTION_RIGHT__FILTER); + + alsRangeRestrictionLeftEClass = createEClass(ALS_RANGE_RESTRICTION_LEFT); + createEReference(alsRangeRestrictionLeftEClass, ALS_RANGE_RESTRICTION_LEFT__FILTER); + createEReference(alsRangeRestrictionLeftEClass, ALS_RANGE_RESTRICTION_LEFT__RELATION); + + alsJoinEClass = createEClass(ALS_JOIN); + createEReference(alsJoinEClass, ALS_JOIN__LEFT_OPERAND); + createEReference(alsJoinEClass, ALS_JOIN__RIGHT_OPERAND); + + alsMinusEClass = createEClass(ALS_MINUS); + createEReference(alsMinusEClass, ALS_MINUS__LEFT_OPERAND); + createEReference(alsMinusEClass, ALS_MINUS__RIGHT_OPERAND); + + alsPlusEClass = createEClass(ALS_PLUS); + createEReference(alsPlusEClass, ALS_PLUS__LEFT_OPERAND); + createEReference(alsPlusEClass, ALS_PLUS__RIGHT_OPERAND); + + alsIntersectionEClass = createEClass(ALS_INTERSECTION); + createEReference(alsIntersectionEClass, ALS_INTERSECTION__LEFT_OPERAND); + createEReference(alsIntersectionEClass, ALS_INTERSECTION__RIGHT_OPERAND); + + alsDirectProductEClass = createEClass(ALS_DIRECT_PRODUCT); + createEReference(alsDirectProductEClass, ALS_DIRECT_PRODUCT__LEFT_OPERAND); + createEAttribute(alsDirectProductEClass, ALS_DIRECT_PRODUCT__LEFT_MULTIPLICIT); + createEAttribute(alsDirectProductEClass, ALS_DIRECT_PRODUCT__RIGHT_MULTIPLICIT); + createEReference(alsDirectProductEClass, ALS_DIRECT_PRODUCT__RIGHT_OPERAND); + + alsNotEClass = createEClass(ALS_NOT); + createEReference(alsNotEClass, ALS_NOT__OPERAND); + + alsInverseRelationEClass = createEClass(ALS_INVERSE_RELATION); + createEReference(alsInverseRelationEClass, ALS_INVERSE_RELATION__OPERAND); + + alSTransitiveClosureEClass = createEClass(AL_STRANSITIVE_CLOSURE); + createEReference(alSTransitiveClosureEClass, AL_STRANSITIVE_CLOSURE__OPERAND); + + alsReflectiveTransitiveClosureEClass = createEClass(ALS_REFLECTIVE_TRANSITIVE_CLOSURE); + createEReference(alsReflectiveTransitiveClosureEClass, ALS_REFLECTIVE_TRANSITIVE_CLOSURE__OPERAND); + + alsCardinalityEClass = createEClass(ALS_CARDINALITY); + createEReference(alsCardinalityEClass, ALS_CARDINALITY__OPERAND); + + alsUnaryMinusEClass = createEClass(ALS_UNARY_MINUS); + createEReference(alsUnaryMinusEClass, ALS_UNARY_MINUS__OPERAND); + + alsSumEClass = createEClass(ALS_SUM); + createEReference(alsSumEClass, ALS_SUM__VARIABLES); + createEReference(alsSumEClass, ALS_SUM__EXPRESSION); + + alsFunctionCallEClass = createEClass(ALS_FUNCTION_CALL); + createEReference(alsFunctionCallEClass, ALS_FUNCTION_CALL__REFERRED_DEFINITION); + createEAttribute(alsFunctionCallEClass, ALS_FUNCTION_CALL__REFERRED_NUMERIC_OPERATOR); + createEReference(alsFunctionCallEClass, ALS_FUNCTION_CALL__PARAMS); + + alsNoneEClass = createEClass(ALS_NONE); + + alsIdenEClass = createEClass(ALS_IDEN); + + alsUnivEClass = createEClass(ALS_UNIV); + + alsIntEClass = createEClass(ALS_INT); + + alsStringEClass = createEClass(ALS_STRING); + + alsReferenceEClass = createEClass(ALS_REFERENCE); + createEReference(alsReferenceEClass, ALS_REFERENCE__REFERRED); + + alsNumberLiteralEClass = createEClass(ALS_NUMBER_LITERAL); + createEAttribute(alsNumberLiteralEClass, ALS_NUMBER_LITERAL__VALUE); + + alsStringLiteralEClass = createEClass(ALS_STRING_LITERAL); + createEAttribute(alsStringLiteralEClass, ALS_STRING_LITERAL__VALUE); + + // Create enums + alsMultiplicityEEnum = createEEnum(ALS_MULTIPLICITY); + alsNumericOperatorEEnum = createEEnum(ALS_NUMERIC_OPERATOR); + } + + /** + * + * + * @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 + alsTypeDeclarationEClass.getESuperTypes().add(this.getALSRelationDeclaration()); + alsEnumDeclarationEClass.getESuperTypes().add(this.getALSTypeDeclaration()); + alsEnumLiteralEClass.getESuperTypes().add(this.getALSRelationDeclaration()); + alsSignatureDeclarationEClass.getESuperTypes().add(this.getALSTypeDeclaration()); + alsFieldDeclarationEClass.getESuperTypes().add(this.getALSRelationDeclaration()); + alsFunctionDefinitionEClass.getESuperTypes().add(this.getALSDefinition()); + alsRelationDefinitionEClass.getESuperTypes().add(this.getALSDefinition()); + alsVariableDeclarationEClass.getESuperTypes().add(this.getALSRelationDeclaration()); + alsSigScopeEClass.getESuperTypes().add(this.getALSTypeScope()); + alsIntScopeEClass.getESuperTypes().add(this.getALSTypeScope()); + alsStringScopeEClass.getESuperTypes().add(this.getALSTypeScope()); + alsQuantifiedExEClass.getESuperTypes().add(this.getALSTerm()); + alsOrEClass.getESuperTypes().add(this.getALSTerm()); + alsIffEClass.getESuperTypes().add(this.getALSTerm()); + alsImplEClass.getESuperTypes().add(this.getALSTerm()); + alsAndEClass.getESuperTypes().add(this.getALSTerm()); + alsEqualsEClass.getESuperTypes().add(this.getALSTerm()); + alsNotEqualsEClass.getESuperTypes().add(this.getALSTerm()); + alsSubsetEClass.getESuperTypes().add(this.getALSTerm()); + alsLessEClass.getESuperTypes().add(this.getALSTerm()); + alsLeqEClass.getESuperTypes().add(this.getALSTerm()); + alsMoreEClass.getESuperTypes().add(this.getALSTerm()); + alsMeqEClass.getESuperTypes().add(this.getALSTerm()); + alsOverrideEClass.getESuperTypes().add(this.getALSTerm()); + alsRangeRestrictionRightEClass.getESuperTypes().add(this.getALSTerm()); + alsRangeRestrictionLeftEClass.getESuperTypes().add(this.getALSTerm()); + alsJoinEClass.getESuperTypes().add(this.getALSTerm()); + alsMinusEClass.getESuperTypes().add(this.getALSTerm()); + alsPlusEClass.getESuperTypes().add(this.getALSTerm()); + alsIntersectionEClass.getESuperTypes().add(this.getALSTerm()); + alsDirectProductEClass.getESuperTypes().add(this.getALSTerm()); + alsNotEClass.getESuperTypes().add(this.getALSTerm()); + alsInverseRelationEClass.getESuperTypes().add(this.getALSTerm()); + alSTransitiveClosureEClass.getESuperTypes().add(this.getALSTerm()); + alsReflectiveTransitiveClosureEClass.getESuperTypes().add(this.getALSTerm()); + alsCardinalityEClass.getESuperTypes().add(this.getALSTerm()); + alsUnaryMinusEClass.getESuperTypes().add(this.getALSTerm()); + alsSumEClass.getESuperTypes().add(this.getALSTerm()); + alsFunctionCallEClass.getESuperTypes().add(this.getALSTerm()); + alsNoneEClass.getESuperTypes().add(this.getALSTerm()); + alsIdenEClass.getESuperTypes().add(this.getALSTerm()); + alsUnivEClass.getESuperTypes().add(this.getALSTerm()); + alsIntEClass.getESuperTypes().add(this.getALSTerm()); + alsStringEClass.getESuperTypes().add(this.getALSTerm()); + alsReferenceEClass.getESuperTypes().add(this.getALSTerm()); + alsNumberLiteralEClass.getESuperTypes().add(this.getALSTerm()); + alsStringLiteralEClass.getESuperTypes().add(this.getALSTerm()); + + // Initialize classes and features; add operations and parameters + initEClass(alsDocumentEClass, ALSDocument.class, "ALSDocument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSDocument_EnumDeclarations(), this.getALSEnumDeclaration(), null, "enumDeclarations", null, 0, -1, ALSDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSDocument_SignatureBodies(), this.getALSSignatureBody(), null, "signatureBodies", null, 0, -1, ALSDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSDocument_FunctionDefinitions(), this.getALSFunctionDefinition(), null, "functionDefinitions", null, 0, -1, ALSDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSDocument_RelationDefinitions(), this.getALSRelationDefinition(), null, "relationDefinitions", null, 0, -1, ALSDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSDocument_FactDeclarations(), this.getALSFactDeclaration(), null, "factDeclarations", null, 0, -1, ALSDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSDocument_RunCommand(), this.getALSRunCommand(), null, "runCommand", null, 0, 1, ALSDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsRelationDeclarationEClass, ALSRelationDeclaration.class, "ALSRelationDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getALSRelationDeclaration_Name(), ecorePackage.getEString(), "name", null, 0, 1, ALSRelationDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsTypeDeclarationEClass, ALSTypeDeclaration.class, "ALSTypeDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(alsEnumDeclarationEClass, ALSEnumDeclaration.class, "ALSEnumDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSEnumDeclaration_Literal(), this.getALSEnumLiteral(), null, "literal", null, 0, -1, ALSEnumDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsEnumLiteralEClass, ALSEnumLiteral.class, "ALSEnumLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(alsSignatureDeclarationEClass, ALSSignatureDeclaration.class, "ALSSignatureDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(alsSignatureBodyEClass, ALSSignatureBody.class, "ALSSignatureBody", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getALSSignatureBody_Multiplicity(), this.getALSMultiplicity(), "multiplicity", null, 0, 1, ALSSignatureBody.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getALSSignatureBody_Abstract(), ecorePackage.getEBoolean(), "abstract", null, 0, 1, ALSSignatureBody.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSSignatureBody_Declarations(), this.getALSSignatureDeclaration(), null, "declarations", null, 0, -1, ALSSignatureBody.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSSignatureBody_Supertype(), this.getALSSignatureDeclaration(), null, "supertype", null, 0, 1, ALSSignatureBody.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSSignatureBody_Superset(), this.getALSSignatureDeclaration(), null, "superset", null, 0, -1, ALSSignatureBody.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSSignatureBody_Fields(), this.getALSFieldDeclaration(), null, "fields", null, 0, -1, ALSSignatureBody.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsFieldDeclarationEClass, ALSFieldDeclaration.class, "ALSFieldDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getALSFieldDeclaration_Multiplicity(), this.getALSMultiplicity(), "multiplicity", null, 0, 1, ALSFieldDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSFieldDeclaration_Type(), this.getALSTerm(), null, "type", null, 0, 1, ALSFieldDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsDefinitionEClass, ALSDefinition.class, "ALSDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getALSDefinition_Name(), ecorePackage.getEString(), "name", null, 0, 1, ALSDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSDefinition_Variables(), this.getALSVariableDeclaration(), null, "variables", null, 0, -1, ALSDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSDefinition_Value(), this.getALSTerm(), null, "value", null, 0, 1, ALSDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsFunctionDefinitionEClass, ALSFunctionDefinition.class, "ALSFunctionDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSFunctionDefinition_Type(), this.getALSTerm(), null, "type", null, 0, 1, ALSFunctionDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsRelationDefinitionEClass, ALSRelationDefinition.class, "ALSRelationDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(alsFactDeclarationEClass, ALSFactDeclaration.class, "ALSFactDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getALSFactDeclaration_Name(), ecorePackage.getEString(), "name", null, 0, 1, ALSFactDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSFactDeclaration_Term(), this.getALSTerm(), null, "term", null, 0, 1, ALSFactDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsTermEClass, ALSTerm.class, "ALSTerm", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(alsVariableDeclarationEClass, ALSVariableDeclaration.class, "ALSVariableDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSVariableDeclaration_Range(), this.getALSTerm(), null, "range", null, 0, 1, ALSVariableDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsRunCommandEClass, ALSRunCommand.class, "ALSRunCommand", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSRunCommand_TypeScopes(), this.getALSTypeScope(), null, "typeScopes", null, 0, -1, ALSRunCommand.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsTypeScopeEClass, ALSTypeScope.class, "ALSTypeScope", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getALSTypeScope_Number(), ecorePackage.getEInt(), "number", null, 0, 1, ALSTypeScope.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsSigScopeEClass, ALSSigScope.class, "ALSSigScope", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getALSSigScope_Exactly(), ecorePackage.getEBoolean(), "exactly", null, 0, 1, ALSSigScope.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSSigScope_Type(), this.getALSSignatureDeclaration(), null, "type", null, 0, 1, ALSSigScope.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsIntScopeEClass, ALSIntScope.class, "ALSIntScope", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(alsStringScopeEClass, ALSStringScope.class, "ALSStringScope", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(alsQuantifiedExEClass, ALSQuantifiedEx.class, "ALSQuantifiedEx", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getALSQuantifiedEx_Type(), this.getALSMultiplicity(), "type", null, 0, 1, ALSQuantifiedEx.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getALSQuantifiedEx_Disj(), ecorePackage.getEBoolean(), "disj", null, 0, 1, ALSQuantifiedEx.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSQuantifiedEx_Variables(), this.getALSVariableDeclaration(), null, "variables", null, 0, -1, ALSQuantifiedEx.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSQuantifiedEx_Expression(), this.getALSTerm(), null, "expression", null, 0, 1, ALSQuantifiedEx.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsOrEClass, ALSOr.class, "ALSOr", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSOr_LeftOperand(), this.getALSTerm(), null, "leftOperand", null, 0, 1, ALSOr.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSOr_RightOperand(), this.getALSTerm(), null, "rightOperand", null, 0, 1, ALSOr.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsIffEClass, ALSIff.class, "ALSIff", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSIff_LeftOperand(), this.getALSTerm(), null, "leftOperand", null, 0, 1, ALSIff.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSIff_RightOperand(), this.getALSTerm(), null, "rightOperand", null, 0, 1, ALSIff.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsImplEClass, ALSImpl.class, "ALSImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSImpl_LeftOperand(), this.getALSTerm(), null, "leftOperand", null, 0, 1, ALSImpl.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSImpl_RightOperand(), this.getALSTerm(), null, "rightOperand", null, 0, 1, ALSImpl.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSImpl_ElseOperand(), this.getALSTerm(), null, "elseOperand", null, 0, 1, ALSImpl.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsAndEClass, ALSAnd.class, "ALSAnd", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSAnd_LeftOperand(), this.getALSTerm(), null, "leftOperand", null, 0, 1, ALSAnd.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSAnd_RightOperand(), this.getALSTerm(), null, "rightOperand", null, 0, 1, ALSAnd.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsEqualsEClass, ALSEquals.class, "ALSEquals", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSEquals_LeftOperand(), this.getALSTerm(), null, "leftOperand", null, 0, 1, ALSEquals.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSEquals_RightOperand(), this.getALSTerm(), null, "rightOperand", null, 0, 1, ALSEquals.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsNotEqualsEClass, ALSNotEquals.class, "ALSNotEquals", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSNotEquals_LeftOperand(), this.getALSTerm(), null, "leftOperand", null, 0, 1, ALSNotEquals.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSNotEquals_RightOperand(), this.getALSTerm(), null, "rightOperand", null, 0, 1, ALSNotEquals.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsSubsetEClass, ALSSubset.class, "ALSSubset", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSSubset_LeftOperand(), this.getALSTerm(), null, "leftOperand", null, 0, 1, ALSSubset.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSSubset_RightOperand(), this.getALSTerm(), null, "rightOperand", null, 0, 1, ALSSubset.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsLessEClass, ALSLess.class, "ALSLess", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSLess_LeftOperand(), this.getALSTerm(), null, "leftOperand", null, 0, 1, ALSLess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSLess_RightOperand(), this.getALSTerm(), null, "rightOperand", null, 0, 1, ALSLess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsLeqEClass, ALSLeq.class, "ALSLeq", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSLeq_LeftOperand(), this.getALSTerm(), null, "leftOperand", null, 0, 1, ALSLeq.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSLeq_RightOperand(), this.getALSTerm(), null, "rightOperand", null, 0, 1, ALSLeq.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsMoreEClass, ALSMore.class, "ALSMore", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSMore_LeftOperand(), this.getALSTerm(), null, "leftOperand", null, 0, 1, ALSMore.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSMore_RightOperand(), this.getALSTerm(), null, "rightOperand", null, 0, 1, ALSMore.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsMeqEClass, ALSMeq.class, "ALSMeq", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSMeq_LeftOperand(), this.getALSTerm(), null, "leftOperand", null, 0, 1, ALSMeq.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSMeq_RightOperand(), this.getALSTerm(), null, "rightOperand", null, 0, 1, ALSMeq.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsOverrideEClass, ALSOverride.class, "ALSOverride", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSOverride_LeftOperand(), this.getALSTerm(), null, "leftOperand", null, 0, 1, ALSOverride.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSOverride_RightOperand(), this.getALSTerm(), null, "rightOperand", null, 0, 1, ALSOverride.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsRangeRestrictionRightEClass, ALSRangeRestrictionRight.class, "ALSRangeRestrictionRight", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSRangeRestrictionRight_Relation(), this.getALSTerm(), null, "relation", null, 0, 1, ALSRangeRestrictionRight.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSRangeRestrictionRight_Filter(), this.getALSTerm(), null, "filter", null, 0, 1, ALSRangeRestrictionRight.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsRangeRestrictionLeftEClass, ALSRangeRestrictionLeft.class, "ALSRangeRestrictionLeft", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSRangeRestrictionLeft_Filter(), this.getALSTerm(), null, "filter", null, 0, 1, ALSRangeRestrictionLeft.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSRangeRestrictionLeft_Relation(), this.getALSTerm(), null, "relation", null, 0, 1, ALSRangeRestrictionLeft.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsJoinEClass, ALSJoin.class, "ALSJoin", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSJoin_LeftOperand(), this.getALSTerm(), null, "leftOperand", null, 0, 1, ALSJoin.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSJoin_RightOperand(), this.getALSTerm(), null, "rightOperand", null, 0, 1, ALSJoin.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsMinusEClass, ALSMinus.class, "ALSMinus", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSMinus_LeftOperand(), this.getALSTerm(), null, "leftOperand", null, 0, 1, ALSMinus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSMinus_RightOperand(), this.getALSTerm(), null, "rightOperand", null, 0, 1, ALSMinus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsPlusEClass, ALSPlus.class, "ALSPlus", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSPlus_LeftOperand(), this.getALSTerm(), null, "leftOperand", null, 0, 1, ALSPlus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSPlus_RightOperand(), this.getALSTerm(), null, "rightOperand", null, 0, 1, ALSPlus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsIntersectionEClass, ALSIntersection.class, "ALSIntersection", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSIntersection_LeftOperand(), this.getALSTerm(), null, "leftOperand", null, 0, 1, ALSIntersection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSIntersection_RightOperand(), this.getALSTerm(), null, "rightOperand", null, 0, 1, ALSIntersection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsDirectProductEClass, ALSDirectProduct.class, "ALSDirectProduct", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSDirectProduct_LeftOperand(), this.getALSTerm(), null, "leftOperand", null, 0, 1, ALSDirectProduct.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getALSDirectProduct_LeftMultiplicit(), this.getALSMultiplicity(), "leftMultiplicit", null, 0, 1, ALSDirectProduct.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getALSDirectProduct_RightMultiplicit(), this.getALSMultiplicity(), "rightMultiplicit", null, 0, 1, ALSDirectProduct.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSDirectProduct_RightOperand(), this.getALSTerm(), null, "rightOperand", null, 0, 1, ALSDirectProduct.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsNotEClass, ALSNot.class, "ALSNot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSNot_Operand(), this.getALSTerm(), null, "operand", null, 0, 1, ALSNot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsInverseRelationEClass, ALSInverseRelation.class, "ALSInverseRelation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSInverseRelation_Operand(), this.getALSTerm(), null, "operand", null, 0, 1, ALSInverseRelation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alSTransitiveClosureEClass, AlSTransitiveClosure.class, "AlSTransitiveClosure", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAlSTransitiveClosure_Operand(), this.getALSTerm(), null, "operand", null, 0, 1, AlSTransitiveClosure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsReflectiveTransitiveClosureEClass, ALSReflectiveTransitiveClosure.class, "ALSReflectiveTransitiveClosure", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSReflectiveTransitiveClosure_Operand(), this.getALSTerm(), null, "operand", null, 0, 1, ALSReflectiveTransitiveClosure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsCardinalityEClass, ALSCardinality.class, "ALSCardinality", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSCardinality_Operand(), this.getALSTerm(), null, "operand", null, 0, 1, ALSCardinality.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsUnaryMinusEClass, ALSUnaryMinus.class, "ALSUnaryMinus", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSUnaryMinus_Operand(), this.getALSTerm(), null, "operand", null, 0, 1, ALSUnaryMinus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsSumEClass, ALSSum.class, "ALSSum", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSSum_Variables(), this.getALSVariableDeclaration(), null, "variables", null, 0, -1, ALSSum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSSum_Expression(), this.getALSTerm(), null, "expression", null, 0, 1, ALSSum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsFunctionCallEClass, ALSFunctionCall.class, "ALSFunctionCall", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSFunctionCall_ReferredDefinition(), this.getALSDefinition(), null, "referredDefinition", null, 0, 1, ALSFunctionCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getALSFunctionCall_ReferredNumericOperator(), this.getALSNumericOperator(), "referredNumericOperator", null, 0, 1, ALSFunctionCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getALSFunctionCall_Params(), this.getALSTerm(), null, "params", null, 0, -1, ALSFunctionCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsNoneEClass, ALSNone.class, "ALSNone", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(alsIdenEClass, ALSIden.class, "ALSIden", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(alsUnivEClass, ALSUniv.class, "ALSUniv", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(alsIntEClass, ALSInt.class, "ALSInt", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(alsStringEClass, ALSString.class, "ALSString", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(alsReferenceEClass, ALSReference.class, "ALSReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getALSReference_Referred(), this.getALSRelationDeclaration(), null, "referred", null, 0, 1, ALSReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsNumberLiteralEClass, ALSNumberLiteral.class, "ALSNumberLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getALSNumberLiteral_Value(), ecorePackage.getEInt(), "value", null, 0, 1, ALSNumberLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(alsStringLiteralEClass, ALSStringLiteral.class, "ALSStringLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getALSStringLiteral_Value(), ecorePackage.getEString(), "value", null, 0, 1, ALSStringLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Initialize enums and add enum literals + initEEnum(alsMultiplicityEEnum, ALSMultiplicity.class, "ALSMultiplicity"); + addEEnumLiteral(alsMultiplicityEEnum, ALSMultiplicity.ALL); + addEEnumLiteral(alsMultiplicityEEnum, ALSMultiplicity.NO); + addEEnumLiteral(alsMultiplicityEEnum, ALSMultiplicity.SOME); + addEEnumLiteral(alsMultiplicityEEnum, ALSMultiplicity.LONE); + addEEnumLiteral(alsMultiplicityEEnum, ALSMultiplicity.ONE); + addEEnumLiteral(alsMultiplicityEEnum, ALSMultiplicity.SET); + + initEEnum(alsNumericOperatorEEnum, ALSNumericOperator.class, "ALSNumericOperator"); + addEEnumLiteral(alsNumericOperatorEEnum, ALSNumericOperator.PLUS); + addEEnumLiteral(alsNumericOperatorEEnum, ALSNumericOperator.SUB); + addEEnumLiteral(alsNumericOperatorEEnum, ALSNumericOperator.MUL); + addEEnumLiteral(alsNumericOperatorEEnum, ALSNumericOperator.REM); + addEEnumLiteral(alsNumericOperatorEEnum, ALSNumericOperator.DIV); + + // Create resource + createResource(eNS_URI); + } + +} //AlloyLanguagePackageImpl diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/util/AlloyLanguageAdapterFactory.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/util/AlloyLanguageAdapterFactory.java new file mode 100644 index 00000000..e20bebf6 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/util/AlloyLanguageAdapterFactory.java @@ -0,0 +1,1212 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.util; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.*; + +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 hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage + * @generated + */ +public class AlloyLanguageAdapterFactory extends AdapterFactoryImpl +{ + /** + * The cached model package. + * + * + * @generated + */ + protected static AlloyLanguagePackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * + * + * @generated + */ + public AlloyLanguageAdapterFactory() + { + if (modelPackage == null) + { + modelPackage = AlloyLanguagePackage.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 AlloyLanguageSwitch modelSwitch = + new AlloyLanguageSwitch() + { + @Override + public Adapter caseALSDocument(ALSDocument object) + { + return createALSDocumentAdapter(); + } + @Override + public Adapter caseALSRelationDeclaration(ALSRelationDeclaration object) + { + return createALSRelationDeclarationAdapter(); + } + @Override + public Adapter caseALSTypeDeclaration(ALSTypeDeclaration object) + { + return createALSTypeDeclarationAdapter(); + } + @Override + public Adapter caseALSEnumDeclaration(ALSEnumDeclaration object) + { + return createALSEnumDeclarationAdapter(); + } + @Override + public Adapter caseALSEnumLiteral(ALSEnumLiteral object) + { + return createALSEnumLiteralAdapter(); + } + @Override + public Adapter caseALSSignatureDeclaration(ALSSignatureDeclaration object) + { + return createALSSignatureDeclarationAdapter(); + } + @Override + public Adapter caseALSSignatureBody(ALSSignatureBody object) + { + return createALSSignatureBodyAdapter(); + } + @Override + public Adapter caseALSFieldDeclaration(ALSFieldDeclaration object) + { + return createALSFieldDeclarationAdapter(); + } + @Override + public Adapter caseALSDefinition(ALSDefinition object) + { + return createALSDefinitionAdapter(); + } + @Override + public Adapter caseALSFunctionDefinition(ALSFunctionDefinition object) + { + return createALSFunctionDefinitionAdapter(); + } + @Override + public Adapter caseALSRelationDefinition(ALSRelationDefinition object) + { + return createALSRelationDefinitionAdapter(); + } + @Override + public Adapter caseALSFactDeclaration(ALSFactDeclaration object) + { + return createALSFactDeclarationAdapter(); + } + @Override + public Adapter caseALSTerm(ALSTerm object) + { + return createALSTermAdapter(); + } + @Override + public Adapter caseALSVariableDeclaration(ALSVariableDeclaration object) + { + return createALSVariableDeclarationAdapter(); + } + @Override + public Adapter caseALSRunCommand(ALSRunCommand object) + { + return createALSRunCommandAdapter(); + } + @Override + public Adapter caseALSTypeScope(ALSTypeScope object) + { + return createALSTypeScopeAdapter(); + } + @Override + public Adapter caseALSSigScope(ALSSigScope object) + { + return createALSSigScopeAdapter(); + } + @Override + public Adapter caseALSIntScope(ALSIntScope object) + { + return createALSIntScopeAdapter(); + } + @Override + public Adapter caseALSStringScope(ALSStringScope object) + { + return createALSStringScopeAdapter(); + } + @Override + public Adapter caseALSQuantifiedEx(ALSQuantifiedEx object) + { + return createALSQuantifiedExAdapter(); + } + @Override + public Adapter caseALSOr(ALSOr object) + { + return createALSOrAdapter(); + } + @Override + public Adapter caseALSIff(ALSIff object) + { + return createALSIffAdapter(); + } + @Override + public Adapter caseALSImpl(ALSImpl object) + { + return createALSImplAdapter(); + } + @Override + public Adapter caseALSAnd(ALSAnd object) + { + return createALSAndAdapter(); + } + @Override + public Adapter caseALSEquals(ALSEquals object) + { + return createALSEqualsAdapter(); + } + @Override + public Adapter caseALSNotEquals(ALSNotEquals object) + { + return createALSNotEqualsAdapter(); + } + @Override + public Adapter caseALSSubset(ALSSubset object) + { + return createALSSubsetAdapter(); + } + @Override + public Adapter caseALSLess(ALSLess object) + { + return createALSLessAdapter(); + } + @Override + public Adapter caseALSLeq(ALSLeq object) + { + return createALSLeqAdapter(); + } + @Override + public Adapter caseALSMore(ALSMore object) + { + return createALSMoreAdapter(); + } + @Override + public Adapter caseALSMeq(ALSMeq object) + { + return createALSMeqAdapter(); + } + @Override + public Adapter caseALSOverride(ALSOverride object) + { + return createALSOverrideAdapter(); + } + @Override + public Adapter caseALSRangeRestrictionRight(ALSRangeRestrictionRight object) + { + return createALSRangeRestrictionRightAdapter(); + } + @Override + public Adapter caseALSRangeRestrictionLeft(ALSRangeRestrictionLeft object) + { + return createALSRangeRestrictionLeftAdapter(); + } + @Override + public Adapter caseALSJoin(ALSJoin object) + { + return createALSJoinAdapter(); + } + @Override + public Adapter caseALSMinus(ALSMinus object) + { + return createALSMinusAdapter(); + } + @Override + public Adapter caseALSPlus(ALSPlus object) + { + return createALSPlusAdapter(); + } + @Override + public Adapter caseALSIntersection(ALSIntersection object) + { + return createALSIntersectionAdapter(); + } + @Override + public Adapter caseALSDirectProduct(ALSDirectProduct object) + { + return createALSDirectProductAdapter(); + } + @Override + public Adapter caseALSNot(ALSNot object) + { + return createALSNotAdapter(); + } + @Override + public Adapter caseALSInverseRelation(ALSInverseRelation object) + { + return createALSInverseRelationAdapter(); + } + @Override + public Adapter caseAlSTransitiveClosure(AlSTransitiveClosure object) + { + return createAlSTransitiveClosureAdapter(); + } + @Override + public Adapter caseALSReflectiveTransitiveClosure(ALSReflectiveTransitiveClosure object) + { + return createALSReflectiveTransitiveClosureAdapter(); + } + @Override + public Adapter caseALSCardinality(ALSCardinality object) + { + return createALSCardinalityAdapter(); + } + @Override + public Adapter caseALSUnaryMinus(ALSUnaryMinus object) + { + return createALSUnaryMinusAdapter(); + } + @Override + public Adapter caseALSSum(ALSSum object) + { + return createALSSumAdapter(); + } + @Override + public Adapter caseALSFunctionCall(ALSFunctionCall object) + { + return createALSFunctionCallAdapter(); + } + @Override + public Adapter caseALSNone(ALSNone object) + { + return createALSNoneAdapter(); + } + @Override + public Adapter caseALSIden(ALSIden object) + { + return createALSIdenAdapter(); + } + @Override + public Adapter caseALSUniv(ALSUniv object) + { + return createALSUnivAdapter(); + } + @Override + public Adapter caseALSInt(ALSInt object) + { + return createALSIntAdapter(); + } + @Override + public Adapter caseALSString(ALSString object) + { + return createALSStringAdapter(); + } + @Override + public Adapter caseALSReference(ALSReference object) + { + return createALSReferenceAdapter(); + } + @Override + public Adapter caseALSNumberLiteral(ALSNumberLiteral object) + { + return createALSNumberLiteralAdapter(); + } + @Override + public Adapter caseALSStringLiteral(ALSStringLiteral object) + { + return createALSStringLiteralAdapter(); + } + @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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument ALS Document}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument + * @generated + */ + public Adapter createALSDocumentAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDeclaration ALS Relation Declaration}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDeclaration + * @generated + */ + public Adapter createALSRelationDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTypeDeclaration ALS Type Declaration}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTypeDeclaration + * @generated + */ + public Adapter createALSTypeDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumDeclaration ALS Enum Declaration}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumDeclaration + * @generated + */ + public Adapter createALSEnumDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumLiteral ALS Enum Literal}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumLiteral + * @generated + */ + public Adapter createALSEnumLiteralAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureDeclaration ALS Signature Declaration}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureDeclaration + * @generated + */ + public Adapter createALSSignatureDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody ALS Signature Body}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody + * @generated + */ + public Adapter createALSSignatureBodyAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFieldDeclaration ALS Field Declaration}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFieldDeclaration + * @generated + */ + public Adapter createALSFieldDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDefinition ALS Definition}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDefinition + * @generated + */ + public Adapter createALSDefinitionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionDefinition ALS Function Definition}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionDefinition + * @generated + */ + public Adapter createALSFunctionDefinitionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDefinition ALS Relation Definition}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDefinition + * @generated + */ + public Adapter createALSRelationDefinitionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFactDeclaration ALS Fact Declaration}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFactDeclaration + * @generated + */ + public Adapter createALSFactDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm ALS 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTerm + * @generated + */ + public Adapter createALSTermAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSVariableDeclaration ALS Variable Declaration}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSVariableDeclaration + * @generated + */ + public Adapter createALSVariableDeclarationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRunCommand ALS Run Command}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRunCommand + * @generated + */ + public Adapter createALSRunCommandAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTypeScope ALS Type Scope}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSTypeScope + * @generated + */ + public Adapter createALSTypeScopeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSigScope ALS Sig Scope}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSigScope + * @generated + */ + public Adapter createALSSigScopeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntScope ALS Int Scope}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntScope + * @generated + */ + public Adapter createALSIntScopeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringScope ALS String Scope}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringScope + * @generated + */ + public Adapter createALSStringScopeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx ALS Quantified Ex}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx + * @generated + */ + public Adapter createALSQuantifiedExAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOr ALS 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOr + * @generated + */ + public Adapter createALSOrAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIff ALS Iff}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIff + * @generated + */ + public Adapter createALSIffAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSImpl ALS Impl}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSImpl + * @generated + */ + public Adapter createALSImplAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSAnd ALS 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSAnd + * @generated + */ + public Adapter createALSAndAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEquals ALS Equals}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEquals + * @generated + */ + public Adapter createALSEqualsAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNotEquals ALS Not Equals}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNotEquals + * @generated + */ + public Adapter createALSNotEqualsAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSubset ALS Subset}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSubset + * @generated + */ + public Adapter createALSSubsetAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLess ALS 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLess + * @generated + */ + public Adapter createALSLessAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLeq ALS Leq}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLeq + * @generated + */ + public Adapter createALSLeqAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMore ALS More}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMore + * @generated + */ + public Adapter createALSMoreAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMeq ALS Meq}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMeq + * @generated + */ + public Adapter createALSMeqAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOverride ALS Override}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOverride + * @generated + */ + public Adapter createALSOverrideAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionRight ALS Range Restriction Right}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionRight + * @generated + */ + public Adapter createALSRangeRestrictionRightAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionLeft ALS Range Restriction Left}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionLeft + * @generated + */ + public Adapter createALSRangeRestrictionLeftAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSJoin ALS Join}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSJoin + * @generated + */ + public Adapter createALSJoinAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMinus ALS Minus}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMinus + * @generated + */ + public Adapter createALSMinusAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSPlus ALS Plus}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSPlus + * @generated + */ + public Adapter createALSPlusAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntersection ALS Intersection}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntersection + * @generated + */ + public Adapter createALSIntersectionAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct ALS Direct Product}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct + * @generated + */ + public Adapter createALSDirectProductAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNot ALS Not}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNot + * @generated + */ + public Adapter createALSNotAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSInverseRelation ALS Inverse Relation}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSInverseRelation + * @generated + */ + public Adapter createALSInverseRelationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.AlSTransitiveClosure Al STransitive Closure}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.AlSTransitiveClosure + * @generated + */ + public Adapter createAlSTransitiveClosureAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReflectiveTransitiveClosure ALS Reflective Transitive Closure}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReflectiveTransitiveClosure + * @generated + */ + public Adapter createALSReflectiveTransitiveClosureAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSCardinality ALS Cardinality}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSCardinality + * @generated + */ + public Adapter createALSCardinalityAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSUnaryMinus ALS Unary Minus}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSUnaryMinus + * @generated + */ + public Adapter createALSUnaryMinusAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSum ALS Sum}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSum + * @generated + */ + public Adapter createALSSumAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionCall ALS Function Call}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionCall + * @generated + */ + public Adapter createALSFunctionCallAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNone ALS None}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNone + * @generated + */ + public Adapter createALSNoneAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIden ALS Iden}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIden + * @generated + */ + public Adapter createALSIdenAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSUniv ALS Univ}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSUniv + * @generated + */ + public Adapter createALSUnivAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSInt ALS 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSInt + * @generated + */ + public Adapter createALSIntAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSString ALS String}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSString + * @generated + */ + public Adapter createALSStringAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReference ALS Reference}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReference + * @generated + */ + public Adapter createALSReferenceAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumberLiteral ALS Number Literal}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumberLiteral + * @generated + */ + public Adapter createALSNumberLiteralAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral ALS String Literal}'. + * + * 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 hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral + * @generated + */ + public Adapter createALSStringLiteralAdapter() + { + 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; + } + +} //AlloyLanguageAdapterFactory diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/util/AlloyLanguageSwitch.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/util/AlloyLanguageSwitch.java new file mode 100644 index 00000000..9c67bad7 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/alloyLanguage/util/AlloyLanguageSwitch.java @@ -0,0 +1,1410 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.alloyLanguage.util; + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.*; + +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 hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage + * @generated + */ +public class AlloyLanguageSwitch extends Switch +{ + /** + * The cached model package + * + * + * @generated + */ + protected static AlloyLanguagePackage modelPackage; + + /** + * Creates an instance of the switch. + * + * + * @generated + */ + public AlloyLanguageSwitch() + { + if (modelPackage == null) + { + modelPackage = AlloyLanguagePackage.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 AlloyLanguagePackage.ALS_DOCUMENT: + { + ALSDocument alsDocument = (ALSDocument)theEObject; + T result = caseALSDocument(alsDocument); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_RELATION_DECLARATION: + { + ALSRelationDeclaration alsRelationDeclaration = (ALSRelationDeclaration)theEObject; + T result = caseALSRelationDeclaration(alsRelationDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_TYPE_DECLARATION: + { + ALSTypeDeclaration alsTypeDeclaration = (ALSTypeDeclaration)theEObject; + T result = caseALSTypeDeclaration(alsTypeDeclaration); + if (result == null) result = caseALSRelationDeclaration(alsTypeDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_ENUM_DECLARATION: + { + ALSEnumDeclaration alsEnumDeclaration = (ALSEnumDeclaration)theEObject; + T result = caseALSEnumDeclaration(alsEnumDeclaration); + if (result == null) result = caseALSTypeDeclaration(alsEnumDeclaration); + if (result == null) result = caseALSRelationDeclaration(alsEnumDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_ENUM_LITERAL: + { + ALSEnumLiteral alsEnumLiteral = (ALSEnumLiteral)theEObject; + T result = caseALSEnumLiteral(alsEnumLiteral); + if (result == null) result = caseALSRelationDeclaration(alsEnumLiteral); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_SIGNATURE_DECLARATION: + { + ALSSignatureDeclaration alsSignatureDeclaration = (ALSSignatureDeclaration)theEObject; + T result = caseALSSignatureDeclaration(alsSignatureDeclaration); + if (result == null) result = caseALSTypeDeclaration(alsSignatureDeclaration); + if (result == null) result = caseALSRelationDeclaration(alsSignatureDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_SIGNATURE_BODY: + { + ALSSignatureBody alsSignatureBody = (ALSSignatureBody)theEObject; + T result = caseALSSignatureBody(alsSignatureBody); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_FIELD_DECLARATION: + { + ALSFieldDeclaration alsFieldDeclaration = (ALSFieldDeclaration)theEObject; + T result = caseALSFieldDeclaration(alsFieldDeclaration); + if (result == null) result = caseALSRelationDeclaration(alsFieldDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_DEFINITION: + { + ALSDefinition alsDefinition = (ALSDefinition)theEObject; + T result = caseALSDefinition(alsDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_FUNCTION_DEFINITION: + { + ALSFunctionDefinition alsFunctionDefinition = (ALSFunctionDefinition)theEObject; + T result = caseALSFunctionDefinition(alsFunctionDefinition); + if (result == null) result = caseALSDefinition(alsFunctionDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_RELATION_DEFINITION: + { + ALSRelationDefinition alsRelationDefinition = (ALSRelationDefinition)theEObject; + T result = caseALSRelationDefinition(alsRelationDefinition); + if (result == null) result = caseALSDefinition(alsRelationDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_FACT_DECLARATION: + { + ALSFactDeclaration alsFactDeclaration = (ALSFactDeclaration)theEObject; + T result = caseALSFactDeclaration(alsFactDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_TERM: + { + ALSTerm alsTerm = (ALSTerm)theEObject; + T result = caseALSTerm(alsTerm); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_VARIABLE_DECLARATION: + { + ALSVariableDeclaration alsVariableDeclaration = (ALSVariableDeclaration)theEObject; + T result = caseALSVariableDeclaration(alsVariableDeclaration); + if (result == null) result = caseALSRelationDeclaration(alsVariableDeclaration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_RUN_COMMAND: + { + ALSRunCommand alsRunCommand = (ALSRunCommand)theEObject; + T result = caseALSRunCommand(alsRunCommand); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_TYPE_SCOPE: + { + ALSTypeScope alsTypeScope = (ALSTypeScope)theEObject; + T result = caseALSTypeScope(alsTypeScope); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_SIG_SCOPE: + { + ALSSigScope alsSigScope = (ALSSigScope)theEObject; + T result = caseALSSigScope(alsSigScope); + if (result == null) result = caseALSTypeScope(alsSigScope); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_INT_SCOPE: + { + ALSIntScope alsIntScope = (ALSIntScope)theEObject; + T result = caseALSIntScope(alsIntScope); + if (result == null) result = caseALSTypeScope(alsIntScope); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_STRING_SCOPE: + { + ALSStringScope alsStringScope = (ALSStringScope)theEObject; + T result = caseALSStringScope(alsStringScope); + if (result == null) result = caseALSTypeScope(alsStringScope); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_QUANTIFIED_EX: + { + ALSQuantifiedEx alsQuantifiedEx = (ALSQuantifiedEx)theEObject; + T result = caseALSQuantifiedEx(alsQuantifiedEx); + if (result == null) result = caseALSTerm(alsQuantifiedEx); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_OR: + { + ALSOr alsOr = (ALSOr)theEObject; + T result = caseALSOr(alsOr); + if (result == null) result = caseALSTerm(alsOr); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_IFF: + { + ALSIff alsIff = (ALSIff)theEObject; + T result = caseALSIff(alsIff); + if (result == null) result = caseALSTerm(alsIff); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_IMPL: + { + ALSImpl alsImpl = (ALSImpl)theEObject; + T result = caseALSImpl(alsImpl); + if (result == null) result = caseALSTerm(alsImpl); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_AND: + { + ALSAnd alsAnd = (ALSAnd)theEObject; + T result = caseALSAnd(alsAnd); + if (result == null) result = caseALSTerm(alsAnd); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_EQUALS: + { + ALSEquals alsEquals = (ALSEquals)theEObject; + T result = caseALSEquals(alsEquals); + if (result == null) result = caseALSTerm(alsEquals); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_NOT_EQUALS: + { + ALSNotEquals alsNotEquals = (ALSNotEquals)theEObject; + T result = caseALSNotEquals(alsNotEquals); + if (result == null) result = caseALSTerm(alsNotEquals); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_SUBSET: + { + ALSSubset alsSubset = (ALSSubset)theEObject; + T result = caseALSSubset(alsSubset); + if (result == null) result = caseALSTerm(alsSubset); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_LESS: + { + ALSLess alsLess = (ALSLess)theEObject; + T result = caseALSLess(alsLess); + if (result == null) result = caseALSTerm(alsLess); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_LEQ: + { + ALSLeq alsLeq = (ALSLeq)theEObject; + T result = caseALSLeq(alsLeq); + if (result == null) result = caseALSTerm(alsLeq); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_MORE: + { + ALSMore alsMore = (ALSMore)theEObject; + T result = caseALSMore(alsMore); + if (result == null) result = caseALSTerm(alsMore); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_MEQ: + { + ALSMeq alsMeq = (ALSMeq)theEObject; + T result = caseALSMeq(alsMeq); + if (result == null) result = caseALSTerm(alsMeq); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_OVERRIDE: + { + ALSOverride alsOverride = (ALSOverride)theEObject; + T result = caseALSOverride(alsOverride); + if (result == null) result = caseALSTerm(alsOverride); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT: + { + ALSRangeRestrictionRight alsRangeRestrictionRight = (ALSRangeRestrictionRight)theEObject; + T result = caseALSRangeRestrictionRight(alsRangeRestrictionRight); + if (result == null) result = caseALSTerm(alsRangeRestrictionRight); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT: + { + ALSRangeRestrictionLeft alsRangeRestrictionLeft = (ALSRangeRestrictionLeft)theEObject; + T result = caseALSRangeRestrictionLeft(alsRangeRestrictionLeft); + if (result == null) result = caseALSTerm(alsRangeRestrictionLeft); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_JOIN: + { + ALSJoin alsJoin = (ALSJoin)theEObject; + T result = caseALSJoin(alsJoin); + if (result == null) result = caseALSTerm(alsJoin); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_MINUS: + { + ALSMinus alsMinus = (ALSMinus)theEObject; + T result = caseALSMinus(alsMinus); + if (result == null) result = caseALSTerm(alsMinus); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_PLUS: + { + ALSPlus alsPlus = (ALSPlus)theEObject; + T result = caseALSPlus(alsPlus); + if (result == null) result = caseALSTerm(alsPlus); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_INTERSECTION: + { + ALSIntersection alsIntersection = (ALSIntersection)theEObject; + T result = caseALSIntersection(alsIntersection); + if (result == null) result = caseALSTerm(alsIntersection); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT: + { + ALSDirectProduct alsDirectProduct = (ALSDirectProduct)theEObject; + T result = caseALSDirectProduct(alsDirectProduct); + if (result == null) result = caseALSTerm(alsDirectProduct); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_NOT: + { + ALSNot alsNot = (ALSNot)theEObject; + T result = caseALSNot(alsNot); + if (result == null) result = caseALSTerm(alsNot); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_INVERSE_RELATION: + { + ALSInverseRelation alsInverseRelation = (ALSInverseRelation)theEObject; + T result = caseALSInverseRelation(alsInverseRelation); + if (result == null) result = caseALSTerm(alsInverseRelation); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.AL_STRANSITIVE_CLOSURE: + { + AlSTransitiveClosure alSTransitiveClosure = (AlSTransitiveClosure)theEObject; + T result = caseAlSTransitiveClosure(alSTransitiveClosure); + if (result == null) result = caseALSTerm(alSTransitiveClosure); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_REFLECTIVE_TRANSITIVE_CLOSURE: + { + ALSReflectiveTransitiveClosure alsReflectiveTransitiveClosure = (ALSReflectiveTransitiveClosure)theEObject; + T result = caseALSReflectiveTransitiveClosure(alsReflectiveTransitiveClosure); + if (result == null) result = caseALSTerm(alsReflectiveTransitiveClosure); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_CARDINALITY: + { + ALSCardinality alsCardinality = (ALSCardinality)theEObject; + T result = caseALSCardinality(alsCardinality); + if (result == null) result = caseALSTerm(alsCardinality); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_UNARY_MINUS: + { + ALSUnaryMinus alsUnaryMinus = (ALSUnaryMinus)theEObject; + T result = caseALSUnaryMinus(alsUnaryMinus); + if (result == null) result = caseALSTerm(alsUnaryMinus); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_SUM: + { + ALSSum alsSum = (ALSSum)theEObject; + T result = caseALSSum(alsSum); + if (result == null) result = caseALSTerm(alsSum); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_FUNCTION_CALL: + { + ALSFunctionCall alsFunctionCall = (ALSFunctionCall)theEObject; + T result = caseALSFunctionCall(alsFunctionCall); + if (result == null) result = caseALSTerm(alsFunctionCall); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_NONE: + { + ALSNone alsNone = (ALSNone)theEObject; + T result = caseALSNone(alsNone); + if (result == null) result = caseALSTerm(alsNone); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_IDEN: + { + ALSIden alsIden = (ALSIden)theEObject; + T result = caseALSIden(alsIden); + if (result == null) result = caseALSTerm(alsIden); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_UNIV: + { + ALSUniv alsUniv = (ALSUniv)theEObject; + T result = caseALSUniv(alsUniv); + if (result == null) result = caseALSTerm(alsUniv); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_INT: + { + ALSInt alsInt = (ALSInt)theEObject; + T result = caseALSInt(alsInt); + if (result == null) result = caseALSTerm(alsInt); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_STRING: + { + ALSString alsString = (ALSString)theEObject; + T result = caseALSString(alsString); + if (result == null) result = caseALSTerm(alsString); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_REFERENCE: + { + ALSReference alsReference = (ALSReference)theEObject; + T result = caseALSReference(alsReference); + if (result == null) result = caseALSTerm(alsReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_NUMBER_LITERAL: + { + ALSNumberLiteral alsNumberLiteral = (ALSNumberLiteral)theEObject; + T result = caseALSNumberLiteral(alsNumberLiteral); + if (result == null) result = caseALSTerm(alsNumberLiteral); + if (result == null) result = defaultCase(theEObject); + return result; + } + case AlloyLanguagePackage.ALS_STRING_LITERAL: + { + ALSStringLiteral alsStringLiteral = (ALSStringLiteral)theEObject; + T result = caseALSStringLiteral(alsStringLiteral); + if (result == null) result = caseALSTerm(alsStringLiteral); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Document'. + * + * 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 'ALS Document'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSDocument(ALSDocument object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Relation Declaration'. + * + * 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 'ALS Relation Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSRelationDeclaration(ALSRelationDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Type Declaration'. + * + * 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 'ALS Type Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSTypeDeclaration(ALSTypeDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Enum Declaration'. + * + * 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 'ALS Enum Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSEnumDeclaration(ALSEnumDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Enum Literal'. + * + * 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 'ALS Enum Literal'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSEnumLiteral(ALSEnumLiteral object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Signature Declaration'. + * + * 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 'ALS Signature Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSSignatureDeclaration(ALSSignatureDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Signature Body'. + * + * 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 'ALS Signature Body'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSSignatureBody(ALSSignatureBody object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Field Declaration'. + * + * 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 'ALS Field Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSFieldDeclaration(ALSFieldDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Definition'. + * + * 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 'ALS Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSDefinition(ALSDefinition object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Function Definition'. + * + * 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 'ALS Function Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSFunctionDefinition(ALSFunctionDefinition object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Relation Definition'. + * + * 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 'ALS Relation Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSRelationDefinition(ALSRelationDefinition object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Fact Declaration'. + * + * 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 'ALS Fact Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSFactDeclaration(ALSFactDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS 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 'ALS Term'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSTerm(ALSTerm object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Variable Declaration'. + * + * 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 'ALS Variable Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSVariableDeclaration(ALSVariableDeclaration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Run Command'. + * + * 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 'ALS Run Command'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSRunCommand(ALSRunCommand object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Type Scope'. + * + * 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 'ALS Type Scope'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSTypeScope(ALSTypeScope object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Sig Scope'. + * + * 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 'ALS Sig Scope'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSSigScope(ALSSigScope object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Int Scope'. + * + * 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 'ALS Int Scope'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSIntScope(ALSIntScope object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS String Scope'. + * + * 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 'ALS String Scope'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSStringScope(ALSStringScope object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Quantified Ex'. + * + * 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 'ALS Quantified Ex'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSQuantifiedEx(ALSQuantifiedEx object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS 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 'ALS Or'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSOr(ALSOr object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Iff'. + * + * 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 'ALS Iff'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSIff(ALSIff object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Impl'. + * + * 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 'ALS Impl'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSImpl(ALSImpl object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS 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 'ALS And'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSAnd(ALSAnd object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Equals'. + * + * 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 'ALS Equals'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSEquals(ALSEquals object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Not Equals'. + * + * 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 'ALS Not Equals'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSNotEquals(ALSNotEquals object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Subset'. + * + * 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 'ALS Subset'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSSubset(ALSSubset object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS 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 'ALS Less'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSLess(ALSLess object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Leq'. + * + * 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 'ALS Leq'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSLeq(ALSLeq object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS More'. + * + * 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 'ALS More'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSMore(ALSMore object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Meq'. + * + * 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 'ALS Meq'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSMeq(ALSMeq object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Override'. + * + * 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 'ALS Override'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSOverride(ALSOverride object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Range Restriction Right'. + * + * 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 'ALS Range Restriction Right'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSRangeRestrictionRight(ALSRangeRestrictionRight object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Range Restriction Left'. + * + * 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 'ALS Range Restriction Left'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSRangeRestrictionLeft(ALSRangeRestrictionLeft object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Join'. + * + * 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 'ALS Join'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSJoin(ALSJoin object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Minus'. + * + * 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 'ALS Minus'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSMinus(ALSMinus object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Plus'. + * + * 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 'ALS Plus'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSPlus(ALSPlus object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Intersection'. + * + * 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 'ALS Intersection'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSIntersection(ALSIntersection object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Direct Product'. + * + * 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 'ALS Direct Product'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSDirectProduct(ALSDirectProduct object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Not'. + * + * 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 'ALS Not'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSNot(ALSNot object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Inverse Relation'. + * + * 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 'ALS Inverse Relation'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSInverseRelation(ALSInverseRelation object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Al STransitive Closure'. + * + * 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 'Al STransitive Closure'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAlSTransitiveClosure(AlSTransitiveClosure object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Reflective Transitive Closure'. + * + * 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 'ALS Reflective Transitive Closure'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSReflectiveTransitiveClosure(ALSReflectiveTransitiveClosure object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Cardinality'. + * + * 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 'ALS Cardinality'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSCardinality(ALSCardinality object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Unary Minus'. + * + * 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 'ALS Unary Minus'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSUnaryMinus(ALSUnaryMinus object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Sum'. + * + * 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 'ALS Sum'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSSum(ALSSum object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Function Call'. + * + * 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 'ALS Function Call'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSFunctionCall(ALSFunctionCall object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS None'. + * + * 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 'ALS None'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSNone(ALSNone object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Iden'. + * + * 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 'ALS Iden'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSIden(ALSIden object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Univ'. + * + * 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 'ALS Univ'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSUniv(ALSUniv object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS 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 'ALS Int'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSInt(ALSInt object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS String'. + * + * 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 'ALS String'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSString(ALSString object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Reference'. + * + * 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 'ALS Reference'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSReference(ALSReference object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS Number Literal'. + * + * 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 'ALS Number Literal'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSNumberLiteral(ALSNumberLiteral object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'ALS String Literal'. + * + * 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 'ALS String Literal'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseALSStringLiteral(ALSStringLiteral 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; + } + +} //AlloyLanguageSwitch diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/AlloyLanguageAntlrTokenFileProvider.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/AlloyLanguageAntlrTokenFileProvider.java new file mode 100644 index 00000000..a1a2e48a --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/AlloyLanguageAntlrTokenFileProvider.java @@ -0,0 +1,16 @@ +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner.parser.antlr; + +import java.io.InputStream; +import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider; + +public class AlloyLanguageAntlrTokenFileProvider implements IAntlrTokenFileProvider { + + @Override + public InputStream getAntlrTokenFile() { + ClassLoader classLoader = getClass().getClassLoader(); + return classLoader.getResourceAsStream("hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguage.tokens"); + } +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/AlloyLanguageParser.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/AlloyLanguageParser.java new file mode 100644 index 00000000..b1e11c01 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/AlloyLanguageParser.java @@ -0,0 +1,39 @@ +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner.parser.antlr; + +import com.google.inject.Inject; + +import org.eclipse.xtext.parser.antlr.XtextTokenStream; +import hu.bme.mit.inf.dslreasoner.services.AlloyLanguageGrammarAccess; + +public class AlloyLanguageParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser { + + @Inject + private AlloyLanguageGrammarAccess grammarAccess; + + @Override + protected void setInitialHiddenTokens(XtextTokenStream tokenStream) { + tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT"); + } + + @Override + protected hu.bme.mit.inf.dslreasoner.parser.antlr.internal.InternalAlloyLanguageParser createParser(XtextTokenStream stream) { + return new hu.bme.mit.inf.dslreasoner.parser.antlr.internal.InternalAlloyLanguageParser(stream, getGrammarAccess()); + } + + @Override + protected String getDefaultRuleName() { + return "ALSDocument"; + } + + public AlloyLanguageGrammarAccess getGrammarAccess() { + return this.grammarAccess; + } + + public void setGrammarAccess(AlloyLanguageGrammarAccess grammarAccess) { + this.grammarAccess = grammarAccess; + } + +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguage.g b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguage.g new file mode 100644 index 00000000..83f2ee24 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguage.g @@ -0,0 +1,3139 @@ +/* + * generated by Xtext + */ +grammar InternalAlloyLanguage; + +options { + superClass=AbstractInternalAntlrParser; + +} + +@lexer::header { +package hu.bme.mit.inf.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 hu.bme.mit.inf.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.emf.common.util.Enumerator; +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 hu.bme.mit.inf.dslreasoner.services.AlloyLanguageGrammarAccess; + +} + +@parser::members { + + private AlloyLanguageGrammarAccess grammarAccess; + + public InternalAlloyLanguageParser(TokenStream input, AlloyLanguageGrammarAccess grammarAccess) { + this(input); + this.grammarAccess = grammarAccess; + registerRules(grammarAccess.getGrammar()); + } + + @Override + protected String getFirstRuleName() { + return "ALSDocument"; + } + + @Override + protected AlloyLanguageGrammarAccess getGrammarAccess() { + return grammarAccess; + } +} + +@rulecatch { + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } +} + + + + +// Entry rule entryRuleALSDocument +entryRuleALSDocument returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSDocumentRule()); } + iv_ruleALSDocument=ruleALSDocument + { $current=$iv_ruleALSDocument.current; } + EOF +; + +// Rule ALSDocument +ruleALSDocument returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +((( +( + { + newCompositeNode(grammarAccess.getALSDocumentAccess().getEnumDeclarationsALSEnumDeclarationParserRuleCall_0_0_0()); + } + lv_enumDeclarations_0_0=ruleALSEnumDeclaration { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSDocumentRule()); + } + add( + $current, + "enumDeclarations", + lv_enumDeclarations_0_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSEnumDeclaration"); + afterParserOrEnumRuleCall(); + } + +) +) + |( +( + { + newCompositeNode(grammarAccess.getALSDocumentAccess().getSignatureBodiesALSSignatureBodyParserRuleCall_0_1_0()); + } + lv_signatureBodies_1_0=ruleALSSignatureBody { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSDocumentRule()); + } + add( + $current, + "signatureBodies", + lv_signatureBodies_1_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSSignatureBody"); + afterParserOrEnumRuleCall(); + } + +) +) + |( +( + { + newCompositeNode(grammarAccess.getALSDocumentAccess().getFunctionDefinitionsALSFunctionDefinitionParserRuleCall_0_2_0()); + } + lv_functionDefinitions_2_0=ruleALSFunctionDefinition { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSDocumentRule()); + } + add( + $current, + "functionDefinitions", + lv_functionDefinitions_2_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSFunctionDefinition"); + afterParserOrEnumRuleCall(); + } + +) +) + |( +( + { + newCompositeNode(grammarAccess.getALSDocumentAccess().getRelationDefinitionsALSRelationDefinitionParserRuleCall_0_3_0()); + } + lv_relationDefinitions_3_0=ruleALSRelationDefinition { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSDocumentRule()); + } + add( + $current, + "relationDefinitions", + lv_relationDefinitions_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSRelationDefinition"); + afterParserOrEnumRuleCall(); + } + +) +) + |( +( + { + newCompositeNode(grammarAccess.getALSDocumentAccess().getFactDeclarationsALSFactDeclarationParserRuleCall_0_4_0()); + } + lv_factDeclarations_4_0=ruleALSFactDeclaration { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSDocumentRule()); + } + add( + $current, + "factDeclarations", + lv_factDeclarations_4_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSFactDeclaration"); + afterParserOrEnumRuleCall(); + } + +) +))+( +( + { + newCompositeNode(grammarAccess.getALSDocumentAccess().getRunCommandALSRunCommandParserRuleCall_1_0()); + } + lv_runCommand_5_0=ruleALSRunCommand { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSDocumentRule()); + } + set( + $current, + "runCommand", + lv_runCommand_5_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSRunCommand"); + afterParserOrEnumRuleCall(); + } + +) +)) +; + + + + + +// Entry rule entryRuleALSID +entryRuleALSID returns [String current=null] + : + { newCompositeNode(grammarAccess.getALSIDRule()); } + iv_ruleALSID=ruleALSID + { $current=$iv_ruleALSID.current.getText(); } + EOF +; + +// Rule ALSID +ruleALSID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] + @init { enterRule(); + } + @after { leaveRule(); }: + this_ID_0=RULE_ID { + $current.merge(this_ID_0); + } + + { + newLeafNode(this_ID_0, grammarAccess.getALSIDAccess().getIDTerminalRuleCall()); + } + + ; + + + + + + + +// Entry rule entryRuleALSTypeDeclaration +entryRuleALSTypeDeclaration returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSTypeDeclarationRule()); } + iv_ruleALSTypeDeclaration=ruleALSTypeDeclaration + { $current=$iv_ruleALSTypeDeclaration.current; } + EOF +; + +// Rule ALSTypeDeclaration +ruleALSTypeDeclaration returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( + { + newCompositeNode(grammarAccess.getALSTypeDeclarationAccess().getALSEnumDeclarationParserRuleCall_0()); + } + this_ALSEnumDeclaration_0=ruleALSEnumDeclaration + { + $current = $this_ALSEnumDeclaration_0.current; + afterParserOrEnumRuleCall(); + } + + | + { + newCompositeNode(grammarAccess.getALSTypeDeclarationAccess().getALSSignatureDeclarationParserRuleCall_1()); + } + this_ALSSignatureDeclaration_1=ruleALSSignatureDeclaration + { + $current = $this_ALSSignatureDeclaration_1.current; + afterParserOrEnumRuleCall(); + } +) +; + + + + + +// Entry rule entryRuleALSEnumDeclaration +entryRuleALSEnumDeclaration returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSEnumDeclarationRule()); } + iv_ruleALSEnumDeclaration=ruleALSEnumDeclaration + { $current=$iv_ruleALSEnumDeclaration.current; } + EOF +; + +// Rule ALSEnumDeclaration +ruleALSEnumDeclaration returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( otherlv_0='enum' + { + newLeafNode(otherlv_0, grammarAccess.getALSEnumDeclarationAccess().getEnumKeyword_0()); + } +( +( + { + newCompositeNode(grammarAccess.getALSEnumDeclarationAccess().getNameALSIDParserRuleCall_1_0()); + } + lv_name_1_0=ruleALSID { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSEnumDeclarationRule()); + } + set( + $current, + "name", + lv_name_1_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSID"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_2='{' + { + newLeafNode(otherlv_2, grammarAccess.getALSEnumDeclarationAccess().getLeftCurlyBracketKeyword_2()); + } +( +( + { + newCompositeNode(grammarAccess.getALSEnumDeclarationAccess().getLiteralALSEnumLiteralParserRuleCall_3_0()); + } + lv_literal_3_0=ruleALSEnumLiteral { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSEnumDeclarationRule()); + } + add( + $current, + "literal", + lv_literal_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSEnumLiteral"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_4=',' + { + newLeafNode(otherlv_4, grammarAccess.getALSEnumDeclarationAccess().getCommaKeyword_4_0()); + } +( +( + { + newCompositeNode(grammarAccess.getALSEnumDeclarationAccess().getLiteralALSEnumLiteralParserRuleCall_4_1_0()); + } + lv_literal_5_0=ruleALSEnumLiteral { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSEnumDeclarationRule()); + } + add( + $current, + "literal", + lv_literal_5_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSEnumLiteral"); + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_6='}' + { + newLeafNode(otherlv_6, grammarAccess.getALSEnumDeclarationAccess().getRightCurlyBracketKeyword_5()); + } +) +; + + + + + +// Entry rule entryRuleALSEnumLiteral +entryRuleALSEnumLiteral returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSEnumLiteralRule()); } + iv_ruleALSEnumLiteral=ruleALSEnumLiteral + { $current=$iv_ruleALSEnumLiteral.current; } + EOF +; + +// Rule ALSEnumLiteral +ruleALSEnumLiteral returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( +( + { + newCompositeNode(grammarAccess.getALSEnumLiteralAccess().getNameALSIDParserRuleCall_0()); + } + lv_name_0_0=ruleALSID { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSEnumLiteralRule()); + } + set( + $current, + "name", + lv_name_0_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSID"); + afterParserOrEnumRuleCall(); + } + +) +) +; + + + + + +// Entry rule entryRuleALSSignatureDeclaration +entryRuleALSSignatureDeclaration returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSSignatureDeclarationRule()); } + iv_ruleALSSignatureDeclaration=ruleALSSignatureDeclaration + { $current=$iv_ruleALSSignatureDeclaration.current; } + EOF +; + +// Rule ALSSignatureDeclaration +ruleALSSignatureDeclaration returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( +( + { + newCompositeNode(grammarAccess.getALSSignatureDeclarationAccess().getNameALSIDParserRuleCall_0()); + } + lv_name_0_0=ruleALSID { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSSignatureDeclarationRule()); + } + set( + $current, + "name", + lv_name_0_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSID"); + afterParserOrEnumRuleCall(); + } + +) +) +; + + + + + +// Entry rule entryRuleALSSignatureBody +entryRuleALSSignatureBody returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSSignatureBodyRule()); } + iv_ruleALSSignatureBody=ruleALSSignatureBody + { $current=$iv_ruleALSSignatureBody.current; } + EOF +; + +// Rule ALSSignatureBody +ruleALSSignatureBody returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +(( + +( + { + getUnorderedGroupHelper().enter(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0()); + } + ( + ( + + ( + {getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0)}?=>( + { + getUnorderedGroupHelper().select(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0); + } + ({true}?=>( +( + { + newCompositeNode(grammarAccess.getALSSignatureBodyAccess().getMultiplicityALSMultiplicityEnumRuleCall_0_0_0()); + } + lv_multiplicity_1_0=ruleALSMultiplicity { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSSignatureBodyRule()); + } + set( + $current, + "multiplicity", + lv_multiplicity_1_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSMultiplicity"); + afterParserOrEnumRuleCall(); + } + +) +)) + { + getUnorderedGroupHelper().returnFromSelection(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0()); + } + ) + ) | + + ( + {getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 1)}?=>( + { + getUnorderedGroupHelper().select(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 1); + } + ({true}?=>( +( + lv_abstract_2_0= 'abstract' + { + newLeafNode(lv_abstract_2_0, grammarAccess.getALSSignatureBodyAccess().getAbstractAbstractKeyword_0_1_0()); + } + + { + if ($current==null) { + $current = createModelElement(grammarAccess.getALSSignatureBodyRule()); + } + setWithLastConsumed($current, "abstract", true, "abstract"); + } + +) +)) + { + getUnorderedGroupHelper().returnFromSelection(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0()); + } + ) + ) + + )* + ) +) + { + getUnorderedGroupHelper().leave(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0()); + } + +) otherlv_3='sig' + { + newLeafNode(otherlv_3, grammarAccess.getALSSignatureBodyAccess().getSigKeyword_1()); + } +( +( + { + newCompositeNode(grammarAccess.getALSSignatureBodyAccess().getDeclarationsALSSignatureDeclarationParserRuleCall_2_0()); + } + lv_declarations_4_0=ruleALSSignatureDeclaration { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSSignatureBodyRule()); + } + add( + $current, + "declarations", + lv_declarations_4_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSSignatureDeclaration"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_5=',' + { + newLeafNode(otherlv_5, grammarAccess.getALSSignatureBodyAccess().getCommaKeyword_3_0()); + } +( +( + { + newCompositeNode(grammarAccess.getALSSignatureBodyAccess().getDeclarationsALSSignatureDeclarationParserRuleCall_3_1_0()); + } + lv_declarations_6_0=ruleALSSignatureDeclaration { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSSignatureBodyRule()); + } + add( + $current, + "declarations", + lv_declarations_6_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSSignatureDeclaration"); + afterParserOrEnumRuleCall(); + } + +) +))*(( otherlv_7='extends' + { + newLeafNode(otherlv_7, grammarAccess.getALSSignatureBodyAccess().getExtendsKeyword_4_0_0()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getALSSignatureBodyRule()); + } + } + otherlv_8=RULE_ID + { + newLeafNode(otherlv_8, grammarAccess.getALSSignatureBodyAccess().getSupertypeALSSignatureDeclarationCrossReference_4_0_1_0()); + } + +) +)) + |( otherlv_9='in' + { + newLeafNode(otherlv_9, grammarAccess.getALSSignatureBodyAccess().getInKeyword_4_1_0()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getALSSignatureBodyRule()); + } + } + otherlv_10=RULE_ID + { + newLeafNode(otherlv_10, grammarAccess.getALSSignatureBodyAccess().getSupersetALSSignatureDeclarationCrossReference_4_1_1_0()); + } + +) +)( otherlv_11='+' + { + newLeafNode(otherlv_11, grammarAccess.getALSSignatureBodyAccess().getPlusSignKeyword_4_1_2_0()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getALSSignatureBodyRule()); + } + } + otherlv_12=RULE_ID + { + newLeafNode(otherlv_12, grammarAccess.getALSSignatureBodyAccess().getSupersetALSSignatureDeclarationCrossReference_4_1_2_1_0()); + } + +) +))*))? otherlv_13='{' + { + newLeafNode(otherlv_13, grammarAccess.getALSSignatureBodyAccess().getLeftCurlyBracketKeyword_5()); + } +(( +( + { + newCompositeNode(grammarAccess.getALSSignatureBodyAccess().getFieldsALSFieldDeclarationParserRuleCall_6_0_0()); + } + lv_fields_14_0=ruleALSFieldDeclaration { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSSignatureBodyRule()); + } + add( + $current, + "fields", + lv_fields_14_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSFieldDeclaration"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_15=',' + { + newLeafNode(otherlv_15, grammarAccess.getALSSignatureBodyAccess().getCommaKeyword_6_1_0()); + } +( +( + { + newCompositeNode(grammarAccess.getALSSignatureBodyAccess().getFieldsALSFieldDeclarationParserRuleCall_6_1_1_0()); + } + lv_fields_16_0=ruleALSFieldDeclaration { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSSignatureBodyRule()); + } + add( + $current, + "fields", + lv_fields_16_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSFieldDeclaration"); + afterParserOrEnumRuleCall(); + } + +) +))*)? otherlv_17='}' + { + newLeafNode(otherlv_17, grammarAccess.getALSSignatureBodyAccess().getRightCurlyBracketKeyword_7()); + } +) +; + + + + + +// Entry rule entryRuleALSFieldDeclaration +entryRuleALSFieldDeclaration returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSFieldDeclarationRule()); } + iv_ruleALSFieldDeclaration=ruleALSFieldDeclaration + { $current=$iv_ruleALSFieldDeclaration.current; } + EOF +; + +// Rule ALSFieldDeclaration +ruleALSFieldDeclaration returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +(( +( + { + newCompositeNode(grammarAccess.getALSFieldDeclarationAccess().getNameALSIDParserRuleCall_0_0()); + } + lv_name_0_0=ruleALSID { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSFieldDeclarationRule()); + } + set( + $current, + "name", + lv_name_0_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSID"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_1=':' + { + newLeafNode(otherlv_1, grammarAccess.getALSFieldDeclarationAccess().getColonKeyword_1()); + } +( +( + { + newCompositeNode(grammarAccess.getALSFieldDeclarationAccess().getMultiplicityALSMultiplicityEnumRuleCall_2_0()); + } + lv_multiplicity_2_0=ruleALSMultiplicity { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSFieldDeclarationRule()); + } + set( + $current, + "multiplicity", + lv_multiplicity_2_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSMultiplicity"); + afterParserOrEnumRuleCall(); + } + +) +)?( +( + { + newCompositeNode(grammarAccess.getALSFieldDeclarationAccess().getTypeALSTermParserRuleCall_3_0()); + } + lv_type_3_0=ruleALSTerm { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSFieldDeclarationRule()); + } + set( + $current, + "type", + lv_type_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + afterParserOrEnumRuleCall(); + } + +) +)) +; + + + + + + + +// Entry rule entryRuleALSFunctionDefinition +entryRuleALSFunctionDefinition returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSFunctionDefinitionRule()); } + iv_ruleALSFunctionDefinition=ruleALSFunctionDefinition + { $current=$iv_ruleALSFunctionDefinition.current; } + EOF +; + +// Rule ALSFunctionDefinition +ruleALSFunctionDefinition returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( otherlv_0='fun' + { + newLeafNode(otherlv_0, grammarAccess.getALSFunctionDefinitionAccess().getFunKeyword_0()); + } +( +( + { + newCompositeNode(grammarAccess.getALSFunctionDefinitionAccess().getNameALSIDParserRuleCall_1_0()); + } + lv_name_1_0=ruleALSID { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSFunctionDefinitionRule()); + } + set( + $current, + "name", + lv_name_1_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSID"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_2='[' + { + newLeafNode(otherlv_2, grammarAccess.getALSFunctionDefinitionAccess().getLeftSquareBracketKeyword_2()); + } +( +( + { + newCompositeNode(grammarAccess.getALSFunctionDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_3_0()); + } + lv_variables_3_0=ruleALSVariableDeclaration { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSFunctionDefinitionRule()); + } + add( + $current, + "variables", + lv_variables_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSVariableDeclaration"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_4=',' + { + newLeafNode(otherlv_4, grammarAccess.getALSFunctionDefinitionAccess().getCommaKeyword_4_0()); + } +( +( + { + newCompositeNode(grammarAccess.getALSFunctionDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_4_1_0()); + } + lv_variables_5_0=ruleALSVariableDeclaration { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSFunctionDefinitionRule()); + } + add( + $current, + "variables", + lv_variables_5_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSVariableDeclaration"); + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_6=']' + { + newLeafNode(otherlv_6, grammarAccess.getALSFunctionDefinitionAccess().getRightSquareBracketKeyword_5()); + } + otherlv_7=':' + { + newLeafNode(otherlv_7, grammarAccess.getALSFunctionDefinitionAccess().getColonKeyword_6()); + } +( +( + { + newCompositeNode(grammarAccess.getALSFunctionDefinitionAccess().getTypeALSTermParserRuleCall_7_0()); + } + lv_type_8_0=ruleALSTerm { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSFunctionDefinitionRule()); + } + set( + $current, + "type", + lv_type_8_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_9='{' + { + newLeafNode(otherlv_9, grammarAccess.getALSFunctionDefinitionAccess().getLeftCurlyBracketKeyword_8()); + } +( +( + { + newCompositeNode(grammarAccess.getALSFunctionDefinitionAccess().getValueALSTermParserRuleCall_9_0()); + } + lv_value_10_0=ruleALSTerm { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSFunctionDefinitionRule()); + } + set( + $current, + "value", + lv_value_10_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_11='}' + { + newLeafNode(otherlv_11, grammarAccess.getALSFunctionDefinitionAccess().getRightCurlyBracketKeyword_10()); + } +) +; + + + + + +// Entry rule entryRuleALSRelationDefinition +entryRuleALSRelationDefinition returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSRelationDefinitionRule()); } + iv_ruleALSRelationDefinition=ruleALSRelationDefinition + { $current=$iv_ruleALSRelationDefinition.current; } + EOF +; + +// Rule ALSRelationDefinition +ruleALSRelationDefinition returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( otherlv_0='pred' + { + newLeafNode(otherlv_0, grammarAccess.getALSRelationDefinitionAccess().getPredKeyword_0()); + } +( +( + { + newCompositeNode(grammarAccess.getALSRelationDefinitionAccess().getNameALSIDParserRuleCall_1_0()); + } + lv_name_1_0=ruleALSID { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSRelationDefinitionRule()); + } + set( + $current, + "name", + lv_name_1_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSID"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_2='[' + { + newLeafNode(otherlv_2, grammarAccess.getALSRelationDefinitionAccess().getLeftSquareBracketKeyword_2()); + } +( +( + { + newCompositeNode(grammarAccess.getALSRelationDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_3_0()); + } + lv_variables_3_0=ruleALSVariableDeclaration { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSRelationDefinitionRule()); + } + add( + $current, + "variables", + lv_variables_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSVariableDeclaration"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_4=',' + { + newLeafNode(otherlv_4, grammarAccess.getALSRelationDefinitionAccess().getCommaKeyword_4_0()); + } +( +( + { + newCompositeNode(grammarAccess.getALSRelationDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_4_1_0()); + } + lv_variables_5_0=ruleALSVariableDeclaration { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSRelationDefinitionRule()); + } + add( + $current, + "variables", + lv_variables_5_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSVariableDeclaration"); + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_6=']' + { + newLeafNode(otherlv_6, grammarAccess.getALSRelationDefinitionAccess().getRightSquareBracketKeyword_5()); + } + otherlv_7='{' + { + newLeafNode(otherlv_7, grammarAccess.getALSRelationDefinitionAccess().getLeftCurlyBracketKeyword_6()); + } +( +( + { + newCompositeNode(grammarAccess.getALSRelationDefinitionAccess().getValueALSTermParserRuleCall_7_0()); + } + lv_value_8_0=ruleALSTerm { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSRelationDefinitionRule()); + } + set( + $current, + "value", + lv_value_8_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_9='}' + { + newLeafNode(otherlv_9, grammarAccess.getALSRelationDefinitionAccess().getRightCurlyBracketKeyword_8()); + } +) +; + + + + + +// Entry rule entryRuleALSFactDeclaration +entryRuleALSFactDeclaration returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSFactDeclarationRule()); } + iv_ruleALSFactDeclaration=ruleALSFactDeclaration + { $current=$iv_ruleALSFactDeclaration.current; } + EOF +; + +// Rule ALSFactDeclaration +ruleALSFactDeclaration returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +(( + { + $current = forceCreateModelElement( + grammarAccess.getALSFactDeclarationAccess().getALSFactDeclarationAction_0(), + $current); + } +) otherlv_1='fact' + { + newLeafNode(otherlv_1, grammarAccess.getALSFactDeclarationAccess().getFactKeyword_1()); + } +( +( + { + newCompositeNode(grammarAccess.getALSFactDeclarationAccess().getNameALSIDParserRuleCall_2_0()); + } + lv_name_2_0=ruleALSID { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSFactDeclarationRule()); + } + set( + $current, + "name", + lv_name_2_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSID"); + afterParserOrEnumRuleCall(); + } + +) +)? otherlv_3='{' + { + newLeafNode(otherlv_3, grammarAccess.getALSFactDeclarationAccess().getLeftCurlyBracketKeyword_3()); + } +( +( + { + newCompositeNode(grammarAccess.getALSFactDeclarationAccess().getTermALSTermParserRuleCall_4_0()); + } + lv_term_4_0=ruleALSTerm { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSFactDeclarationRule()); + } + set( + $current, + "term", + lv_term_4_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_5='}' + { + newLeafNode(otherlv_5, grammarAccess.getALSFactDeclarationAccess().getRightCurlyBracketKeyword_5()); + } +) +; + + + + + +// Entry rule entryRuleALSTerm +entryRuleALSTerm returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSTermRule()); } + iv_ruleALSTerm=ruleALSTerm + { $current=$iv_ruleALSTerm.current; } + EOF +; + +// Rule ALSTerm +ruleALSTerm returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: + + { + newCompositeNode(grammarAccess.getALSTermAccess().getALSQuantifiedParserRuleCall()); + } + this_ALSQuantified_0=ruleALSQuantified + { + $current = $this_ALSQuantified_0.current; + afterParserOrEnumRuleCall(); + } + +; + + + + + +// Entry rule entryRuleALSQuantified +entryRuleALSQuantified returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSQuantifiedRule()); } + iv_ruleALSQuantified=ruleALSQuantified + { $current=$iv_ruleALSQuantified.current; } + EOF +; + +// Rule ALSQuantified +ruleALSQuantified returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +((( + { + $current = forceCreateModelElement( + grammarAccess.getALSQuantifiedAccess().getALSQuantifiedExAction_0_0(), + $current); + } +)( +( + { + newCompositeNode(grammarAccess.getALSQuantifiedAccess().getTypeALSMultiplicityEnumRuleCall_0_1_0()); + } + lv_type_1_0=ruleALSMultiplicity { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSQuantifiedRule()); + } + set( + $current, + "type", + lv_type_1_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSMultiplicity"); + afterParserOrEnumRuleCall(); + } + +) +)( +( + lv_disj_2_0= 'disj' + { + newLeafNode(lv_disj_2_0, grammarAccess.getALSQuantifiedAccess().getDisjDisjKeyword_0_2_0()); + } + + { + if ($current==null) { + $current = createModelElement(grammarAccess.getALSQuantifiedRule()); + } + setWithLastConsumed($current, "disj", true, "disj"); + } + +) +)?( +( + { + newCompositeNode(grammarAccess.getALSQuantifiedAccess().getVariablesALSVariableDeclarationParserRuleCall_0_3_0()); + } + lv_variables_3_0=ruleALSVariableDeclaration { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSQuantifiedRule()); + } + add( + $current, + "variables", + lv_variables_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSVariableDeclaration"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_4=',' + { + newLeafNode(otherlv_4, grammarAccess.getALSQuantifiedAccess().getCommaKeyword_0_4_0()); + } +( +( + { + newCompositeNode(grammarAccess.getALSQuantifiedAccess().getVariablesALSVariableDeclarationParserRuleCall_0_4_1_0()); + } + lv_variables_5_0=ruleALSVariableDeclaration { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSQuantifiedRule()); + } + add( + $current, + "variables", + lv_variables_5_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSVariableDeclaration"); + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_6='{' + { + newLeafNode(otherlv_6, grammarAccess.getALSQuantifiedAccess().getLeftCurlyBracketKeyword_0_5()); + } +( +( + { + newCompositeNode(grammarAccess.getALSQuantifiedAccess().getExpressionALSTermParserRuleCall_0_6_0()); + } + lv_expression_7_0=ruleALSTerm { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSQuantifiedRule()); + } + set( + $current, + "expression", + lv_expression_7_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_8='}' + { + newLeafNode(otherlv_8, grammarAccess.getALSQuantifiedAccess().getRightCurlyBracketKeyword_0_7()); + } +) + | + { + newCompositeNode(grammarAccess.getALSQuantifiedAccess().getALSOrParserRuleCall_1()); + } + this_ALSOr_9=ruleALSOr + { + $current = $this_ALSOr_9.current; + afterParserOrEnumRuleCall(); + } +) +; + + + + + +// Entry rule entryRuleALSOr +entryRuleALSOr returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSOrRule()); } + iv_ruleALSOr=ruleALSOr + { $current=$iv_ruleALSOr.current; } + EOF +; + +// Rule ALSOr +ruleALSOr returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( + { + newCompositeNode(grammarAccess.getALSOrAccess().getALSIffParserRuleCall_0()); + } + this_ALSIff_0=ruleALSIff + { + $current = $this_ALSIff_0.current; + afterParserOrEnumRuleCall(); + } +(( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getALSOrAccess().getALSOrLeftOperandAction_1_0(), + $current); + } +)( otherlv_2='||' + { + newLeafNode(otherlv_2, grammarAccess.getALSOrAccess().getVerticalLineVerticalLineKeyword_1_1_0()); + } + + | otherlv_3='or' + { + newLeafNode(otherlv_3, grammarAccess.getALSOrAccess().getOrKeyword_1_1_1()); + } +)( +( + { + newCompositeNode(grammarAccess.getALSOrAccess().getRightOperandALSIffParserRuleCall_1_2_0()); + } + lv_rightOperand_4_0=ruleALSIff { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSOrRule()); + } + set( + $current, + "rightOperand", + lv_rightOperand_4_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSIff"); + afterParserOrEnumRuleCall(); + } + +) +))?) +; + + + + + +// Entry rule entryRuleALSIff +entryRuleALSIff returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSIffRule()); } + iv_ruleALSIff=ruleALSIff + { $current=$iv_ruleALSIff.current; } + EOF +; + +// Rule ALSIff +ruleALSIff returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( + { + newCompositeNode(grammarAccess.getALSIffAccess().getALSImplParserRuleCall_0()); + } + this_ALSImpl_0=ruleALSImpl + { + $current = $this_ALSImpl_0.current; + afterParserOrEnumRuleCall(); + } +(( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getALSIffAccess().getALSIffLeftOperandAction_1_0(), + $current); + } +)( otherlv_2='<=>' + { + newLeafNode(otherlv_2, grammarAccess.getALSIffAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_1_1_0()); + } + + | otherlv_3='iff' + { + newLeafNode(otherlv_3, grammarAccess.getALSIffAccess().getIffKeyword_1_1_1()); + } +)( +( + { + newCompositeNode(grammarAccess.getALSIffAccess().getRightOperandALSImplParserRuleCall_1_2_0()); + } + lv_rightOperand_4_0=ruleALSImpl { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSIffRule()); + } + set( + $current, + "rightOperand", + lv_rightOperand_4_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSImpl"); + afterParserOrEnumRuleCall(); + } + +) +))?) +; + + + + + +// Entry rule entryRuleALSImpl +entryRuleALSImpl returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSImplRule()); } + iv_ruleALSImpl=ruleALSImpl + { $current=$iv_ruleALSImpl.current; } + EOF +; + +// Rule ALSImpl +ruleALSImpl returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( + { + newCompositeNode(grammarAccess.getALSImplAccess().getALSAndParserRuleCall_0()); + } + this_ALSAnd_0=ruleALSAnd + { + $current = $this_ALSAnd_0.current; + afterParserOrEnumRuleCall(); + } +(( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getALSImplAccess().getALSImplLeftOperandAction_1_0(), + $current); + } +)( otherlv_2='=>' + { + newLeafNode(otherlv_2, grammarAccess.getALSImplAccess().getEqualsSignGreaterThanSignKeyword_1_1_0()); + } + + | otherlv_3='implies' + { + newLeafNode(otherlv_3, grammarAccess.getALSImplAccess().getImpliesKeyword_1_1_1()); + } +)( +( + { + newCompositeNode(grammarAccess.getALSImplAccess().getRightOperandALSAndParserRuleCall_1_2_0()); + } + lv_rightOperand_4_0=ruleALSAnd { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSImplRule()); + } + set( + $current, + "rightOperand", + lv_rightOperand_4_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSAnd"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_5='else' + { + newLeafNode(otherlv_5, grammarAccess.getALSImplAccess().getElseKeyword_1_3_0()); + } +( +( + { + newCompositeNode(grammarAccess.getALSImplAccess().getElseOperandALSAndParserRuleCall_1_3_1_0()); + } + lv_elseOperand_6_0=ruleALSAnd { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSImplRule()); + } + set( + $current, + "elseOperand", + lv_elseOperand_6_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSAnd"); + afterParserOrEnumRuleCall(); + } + +) +))?)?) +; + + + + + +// Entry rule entryRuleALSAnd +entryRuleALSAnd returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSAndRule()); } + iv_ruleALSAnd=ruleALSAnd + { $current=$iv_ruleALSAnd.current; } + EOF +; + +// Rule ALSAnd +ruleALSAnd returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( + { + newCompositeNode(grammarAccess.getALSAndAccess().getALSComparisonParserRuleCall_0()); + } + this_ALSComparison_0=ruleALSComparison + { + $current = $this_ALSComparison_0.current; + afterParserOrEnumRuleCall(); + } +(( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getALSAndAccess().getALSAndLeftOperandAction_1_0(), + $current); + } +)( otherlv_2='&&' + { + newLeafNode(otherlv_2, grammarAccess.getALSAndAccess().getAmpersandAmpersandKeyword_1_1_0()); + } + + | otherlv_3='and' + { + newLeafNode(otherlv_3, grammarAccess.getALSAndAccess().getAndKeyword_1_1_1()); + } +)( +( + { + newCompositeNode(grammarAccess.getALSAndAccess().getRightOperandALSComparisonParserRuleCall_1_2_0()); + } + lv_rightOperand_4_0=ruleALSComparison { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSAndRule()); + } + set( + $current, + "rightOperand", + lv_rightOperand_4_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSComparison"); + afterParserOrEnumRuleCall(); + } + +) +))?) +; + + + + + +// Entry rule entryRuleALSComparison +entryRuleALSComparison returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSComparisonRule()); } + iv_ruleALSComparison=ruleALSComparison + { $current=$iv_ruleALSComparison.current; } + EOF +; + +// Rule ALSComparison +ruleALSComparison returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( + { + newCompositeNode(grammarAccess.getALSComparisonAccess().getALSOverrideParserRuleCall_0()); + } + this_ALSOverride_0=ruleALSOverride + { + $current = $this_ALSOverride_0.current; + afterParserOrEnumRuleCall(); + } +(((( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getALSComparisonAccess().getALSEqualsLeftOperandAction_1_0_0_0(), + $current); + } +) otherlv_2='=' + { + newLeafNode(otherlv_2, grammarAccess.getALSComparisonAccess().getEqualsSignKeyword_1_0_0_1()); + } +) + |(( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getALSComparisonAccess().getALSNotEqualsLeftOperandAction_1_0_1_0(), + $current); + } +) otherlv_4='!=' + { + newLeafNode(otherlv_4, grammarAccess.getALSComparisonAccess().getExclamationMarkEqualsSignKeyword_1_0_1_1()); + } +) + |(( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getALSComparisonAccess().getALSSubsetLeftOperandAction_1_0_2_0(), + $current); + } +) otherlv_6='in' + { + newLeafNode(otherlv_6, grammarAccess.getALSComparisonAccess().getInKeyword_1_0_2_1()); + } +) + |(( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getALSComparisonAccess().getALSLessLeftOperandAction_1_0_3_0(), + $current); + } +) otherlv_8='>' + { + newLeafNode(otherlv_8, grammarAccess.getALSComparisonAccess().getGreaterThanSignKeyword_1_0_3_1()); + } +) + |(( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getALSComparisonAccess().getALSLeqLeftOperandAction_1_0_4_0(), + $current); + } +) otherlv_10='>=' + { + newLeafNode(otherlv_10, grammarAccess.getALSComparisonAccess().getGreaterThanSignEqualsSignKeyword_1_0_4_1()); + } +) + |(( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getALSComparisonAccess().getALSMoreLeftOperandAction_1_0_5_0(), + $current); + } +) otherlv_12='<' + { + newLeafNode(otherlv_12, grammarAccess.getALSComparisonAccess().getLessThanSignKeyword_1_0_5_1()); + } +) + |(( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getALSComparisonAccess().getALSMeqLeftOperandAction_1_0_6_0(), + $current); + } +) otherlv_14='<=' + { + newLeafNode(otherlv_14, grammarAccess.getALSComparisonAccess().getLessThanSignEqualsSignKeyword_1_0_6_1()); + } +))( +( + { + newCompositeNode(grammarAccess.getALSComparisonAccess().getRightOperandALSOverrideParserRuleCall_1_1_0()); + } + lv_rightOperand_15_0=ruleALSOverride { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSComparisonRule()); + } + set( + $current, + "rightOperand", + lv_rightOperand_15_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSOverride"); + afterParserOrEnumRuleCall(); + } + +) +))?) +; + + + + + +// Entry rule entryRuleALSOverride +entryRuleALSOverride returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSOverrideRule()); } + iv_ruleALSOverride=ruleALSOverride + { $current=$iv_ruleALSOverride.current; } + EOF +; + +// Rule ALSOverride +ruleALSOverride returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( + { + newCompositeNode(grammarAccess.getALSOverrideAccess().getALSRangeRestrictionRightParserRuleCall_0()); + } + this_ALSRangeRestrictionRight_0=ruleALSRangeRestrictionRight + { + $current = $this_ALSRangeRestrictionRight_0.current; + afterParserOrEnumRuleCall(); + } +(( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getALSOverrideAccess().getALSOverrideLeftOperandAction_1_0(), + $current); + } +) otherlv_2='++' + { + newLeafNode(otherlv_2, grammarAccess.getALSOverrideAccess().getPlusSignPlusSignKeyword_1_1()); + } +( +( + { + newCompositeNode(grammarAccess.getALSOverrideAccess().getRightOperandALSRangeRestrictionRightParserRuleCall_1_2_0()); + } + lv_rightOperand_3_0=ruleALSRangeRestrictionRight { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSOverrideRule()); + } + set( + $current, + "rightOperand", + lv_rightOperand_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSRangeRestrictionRight"); + afterParserOrEnumRuleCall(); + } + +) +))?) +; + + + + + +// Entry rule entryRuleALSRangeRestrictionRight +entryRuleALSRangeRestrictionRight returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSRangeRestrictionRightRule()); } + iv_ruleALSRangeRestrictionRight=ruleALSRangeRestrictionRight + { $current=$iv_ruleALSRangeRestrictionRight.current; } + EOF +; + +// Rule ALSRangeRestrictionRight +ruleALSRangeRestrictionRight returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( + { + newCompositeNode(grammarAccess.getALSRangeRestrictionRightAccess().getALSRangeRestrictionLeftParserRuleCall_0()); + } + this_ALSRangeRestrictionLeft_0=ruleALSRangeRestrictionLeft + { + $current = $this_ALSRangeRestrictionLeft_0.current; + afterParserOrEnumRuleCall(); + } +(( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getALSRangeRestrictionRightAccess().getALSRangeRestrictionRightRelationAction_1_0(), + $current); + } +) otherlv_2=':>' + { + newLeafNode(otherlv_2, grammarAccess.getALSRangeRestrictionRightAccess().getColonGreaterThanSignKeyword_1_1()); + } +( +( + { + newCompositeNode(grammarAccess.getALSRangeRestrictionRightAccess().getFilterALSRangeRestrictionLeftParserRuleCall_1_2_0()); + } + lv_filter_3_0=ruleALSRangeRestrictionLeft { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSRangeRestrictionRightRule()); + } + set( + $current, + "filter", + lv_filter_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSRangeRestrictionLeft"); + afterParserOrEnumRuleCall(); + } + +) +))?) +; + + + + + +// Entry rule entryRuleALSRangeRestrictionLeft +entryRuleALSRangeRestrictionLeft returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSRangeRestrictionLeftRule()); } + iv_ruleALSRangeRestrictionLeft=ruleALSRangeRestrictionLeft + { $current=$iv_ruleALSRangeRestrictionLeft.current; } + EOF +; + +// Rule ALSRangeRestrictionLeft +ruleALSRangeRestrictionLeft returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( + { + newCompositeNode(grammarAccess.getALSRangeRestrictionLeftAccess().getALSJoinParserRuleCall_0()); + } + this_ALSJoin_0=ruleALSJoin + { + $current = $this_ALSJoin_0.current; + afterParserOrEnumRuleCall(); + } +(( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getALSRangeRestrictionLeftAccess().getALSRangeRestrictionLeftFilterAction_1_0(), + $current); + } +) otherlv_2='<:' + { + newLeafNode(otherlv_2, grammarAccess.getALSRangeRestrictionLeftAccess().getLessThanSignColonKeyword_1_1()); + } +( +( + { + newCompositeNode(grammarAccess.getALSRangeRestrictionLeftAccess().getRelationALSJoinParserRuleCall_1_2_0()); + } + lv_relation_3_0=ruleALSJoin { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSRangeRestrictionLeftRule()); + } + set( + $current, + "relation", + lv_relation_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSJoin"); + afterParserOrEnumRuleCall(); + } + +) +))?) +; + + + + + +// Entry rule entryRuleALSJoin +entryRuleALSJoin returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSJoinRule()); } + iv_ruleALSJoin=ruleALSJoin + { $current=$iv_ruleALSJoin.current; } + EOF +; + +// Rule ALSJoin +ruleALSJoin returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( + { + newCompositeNode(grammarAccess.getALSJoinAccess().getALSMinusParserRuleCall_0()); + } + this_ALSMinus_0=ruleALSMinus + { + $current = $this_ALSMinus_0.current; + afterParserOrEnumRuleCall(); + } +(( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getALSJoinAccess().getALSJoinLeftOperandAction_1_0(), + $current); + } +) otherlv_2='.' + { + newLeafNode(otherlv_2, grammarAccess.getALSJoinAccess().getFullStopKeyword_1_1()); + } +( +( + { + newCompositeNode(grammarAccess.getALSJoinAccess().getRightOperandALSMinusParserRuleCall_1_2_0()); + } + lv_rightOperand_3_0=ruleALSMinus { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSJoinRule()); + } + set( + $current, + "rightOperand", + lv_rightOperand_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSMinus"); + afterParserOrEnumRuleCall(); + } + +) +))*) +; + + + + + +// Entry rule entryRuleALSMinus +entryRuleALSMinus returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSMinusRule()); } + iv_ruleALSMinus=ruleALSMinus + { $current=$iv_ruleALSMinus.current; } + EOF +; + +// Rule ALSMinus +ruleALSMinus returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( + { + newCompositeNode(grammarAccess.getALSMinusAccess().getALSPlusParserRuleCall_0()); + } + this_ALSPlus_0=ruleALSPlus + { + $current = $this_ALSPlus_0.current; + afterParserOrEnumRuleCall(); + } +(( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getALSMinusAccess().getALSMinusLeftOperandAction_1_0(), + $current); + } +) otherlv_2='-' + { + newLeafNode(otherlv_2, grammarAccess.getALSMinusAccess().getHyphenMinusKeyword_1_1()); + } +( +( + { + newCompositeNode(grammarAccess.getALSMinusAccess().getRightOperandALSPlusParserRuleCall_1_2_0()); + } + lv_rightOperand_3_0=ruleALSPlus { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSMinusRule()); + } + set( + $current, + "rightOperand", + lv_rightOperand_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSPlus"); + afterParserOrEnumRuleCall(); + } + +) +))*) +; + + + + + +// Entry rule entryRuleALSPlus +entryRuleALSPlus returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSPlusRule()); } + iv_ruleALSPlus=ruleALSPlus + { $current=$iv_ruleALSPlus.current; } + EOF +; + +// Rule ALSPlus +ruleALSPlus returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( + { + newCompositeNode(grammarAccess.getALSPlusAccess().getALSIntersectionParserRuleCall_0()); + } + this_ALSIntersection_0=ruleALSIntersection + { + $current = $this_ALSIntersection_0.current; + afterParserOrEnumRuleCall(); + } +(( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getALSPlusAccess().getALSPlusLeftOperandAction_1_0(), + $current); + } +) otherlv_2='+' + { + newLeafNode(otherlv_2, grammarAccess.getALSPlusAccess().getPlusSignKeyword_1_1()); + } +( +( + { + newCompositeNode(grammarAccess.getALSPlusAccess().getRightOperandALSIntersectionParserRuleCall_1_2_0()); + } + lv_rightOperand_3_0=ruleALSIntersection { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSPlusRule()); + } + set( + $current, + "rightOperand", + lv_rightOperand_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSIntersection"); + afterParserOrEnumRuleCall(); + } + +) +))*) +; + + + + + +// Entry rule entryRuleALSIntersection +entryRuleALSIntersection returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSIntersectionRule()); } + iv_ruleALSIntersection=ruleALSIntersection + { $current=$iv_ruleALSIntersection.current; } + EOF +; + +// Rule ALSIntersection +ruleALSIntersection returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( + { + newCompositeNode(grammarAccess.getALSIntersectionAccess().getALSDirectProductParserRuleCall_0()); + } + this_ALSDirectProduct_0=ruleALSDirectProduct + { + $current = $this_ALSDirectProduct_0.current; + afterParserOrEnumRuleCall(); + } +(( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getALSIntersectionAccess().getALSIntersectionLeftOperandAction_1_0(), + $current); + } +) otherlv_2='&' + { + newLeafNode(otherlv_2, grammarAccess.getALSIntersectionAccess().getAmpersandKeyword_1_1()); + } +( +( + { + newCompositeNode(grammarAccess.getALSIntersectionAccess().getRightOperandALSDirectProductParserRuleCall_1_2_0()); + } + lv_rightOperand_3_0=ruleALSDirectProduct { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSIntersectionRule()); + } + set( + $current, + "rightOperand", + lv_rightOperand_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSDirectProduct"); + afterParserOrEnumRuleCall(); + } + +) +))*) +; + + + + + +// Entry rule entryRuleALSDirectProduct +entryRuleALSDirectProduct returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSDirectProductRule()); } + iv_ruleALSDirectProduct=ruleALSDirectProduct + { $current=$iv_ruleALSDirectProduct.current; } + EOF +; + +// Rule ALSDirectProduct +ruleALSDirectProduct returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( + { + newCompositeNode(grammarAccess.getALSDirectProductAccess().getALSPreficedParserRuleCall_0()); + } + this_ALSPreficed_0=ruleALSPreficed + { + $current = $this_ALSPreficed_0.current; + afterParserOrEnumRuleCall(); + } +(( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getALSDirectProductAccess().getALSDirectProductLeftOperandAction_1_0(), + $current); + } +)( +( + { + newCompositeNode(grammarAccess.getALSDirectProductAccess().getLeftMultiplicitALSMultiplicityEnumRuleCall_1_1_0()); + } + lv_leftMultiplicit_2_0=ruleALSMultiplicity { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSDirectProductRule()); + } + set( + $current, + "leftMultiplicit", + lv_leftMultiplicit_2_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSMultiplicity"); + afterParserOrEnumRuleCall(); + } + +) +)? otherlv_3='->' + { + newLeafNode(otherlv_3, grammarAccess.getALSDirectProductAccess().getHyphenMinusGreaterThanSignKeyword_1_2()); + } +( +( + { + newCompositeNode(grammarAccess.getALSDirectProductAccess().getRightMultiplicitALSMultiplicityEnumRuleCall_1_3_0()); + } + lv_rightMultiplicit_4_0=ruleALSMultiplicity { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSDirectProductRule()); + } + set( + $current, + "rightMultiplicit", + lv_rightMultiplicit_4_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSMultiplicity"); + afterParserOrEnumRuleCall(); + } + +) +)?( +( + { + newCompositeNode(grammarAccess.getALSDirectProductAccess().getRightOperandALSPreficedParserRuleCall_1_4_0()); + } + lv_rightOperand_5_0=ruleALSPreficed { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSDirectProductRule()); + } + set( + $current, + "rightOperand", + lv_rightOperand_5_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSPreficed"); + afterParserOrEnumRuleCall(); + } + +) +))?) +; + + + + + +// Entry rule entryRuleALSPreficed +entryRuleALSPreficed returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSPreficedRule()); } + iv_ruleALSPreficed=ruleALSPreficed + { $current=$iv_ruleALSPreficed.current; } + EOF +; + +// Rule ALSPreficed +ruleALSPreficed returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +((( + { + $current = forceCreateModelElement( + grammarAccess.getALSPreficedAccess().getALSNotAction_0_0(), + $current); + } +)((( '!' + + | 'not' +))=>( otherlv_1='!' + { + newLeafNode(otherlv_1, grammarAccess.getALSPreficedAccess().getExclamationMarkKeyword_0_1_0_0()); + } + + | otherlv_2='not' + { + newLeafNode(otherlv_2, grammarAccess.getALSPreficedAccess().getNotKeyword_0_1_0_1()); + } +))( +( + { + newCompositeNode(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_0_2_0()); + } + lv_operand_3_0=ruleALSBasicRelationTerm { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + set( + $current, + "operand", + lv_operand_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSBasicRelationTerm"); + afterParserOrEnumRuleCall(); + } + +) +)) + |(( + { + $current = forceCreateModelElement( + grammarAccess.getALSPreficedAccess().getALSInverseRelationAction_1_0(), + $current); + } +)(( '~' +)=> otherlv_5='~' + { + newLeafNode(otherlv_5, grammarAccess.getALSPreficedAccess().getTildeKeyword_1_1()); + } +)( +( + { + newCompositeNode(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_1_2_0()); + } + lv_operand_6_0=ruleALSBasicRelationTerm { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + set( + $current, + "operand", + lv_operand_6_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSBasicRelationTerm"); + afterParserOrEnumRuleCall(); + } + +) +)) + |(( + { + $current = forceCreateModelElement( + grammarAccess.getALSPreficedAccess().getAlSTransitiveClosureAction_2_0(), + $current); + } +) otherlv_8='^' + { + newLeafNode(otherlv_8, grammarAccess.getALSPreficedAccess().getCircumflexAccentKeyword_2_1()); + } +( +( + { + newCompositeNode(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_2_2_0()); + } + lv_operand_9_0=ruleALSBasicRelationTerm { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + set( + $current, + "operand", + lv_operand_9_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSBasicRelationTerm"); + afterParserOrEnumRuleCall(); + } + +) +)) + |(( + { + $current = forceCreateModelElement( + grammarAccess.getALSPreficedAccess().getALSReflectiveTransitiveClosureAction_3_0(), + $current); + } +) otherlv_11='*' + { + newLeafNode(otherlv_11, grammarAccess.getALSPreficedAccess().getAsteriskKeyword_3_1()); + } +( +( + { + newCompositeNode(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_3_2_0()); + } + lv_operand_12_0=ruleALSBasicRelationTerm { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + set( + $current, + "operand", + lv_operand_12_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSBasicRelationTerm"); + afterParserOrEnumRuleCall(); + } + +) +)) + |(( + { + $current = forceCreateModelElement( + grammarAccess.getALSPreficedAccess().getALSCardinalityAction_4_0(), + $current); + } +) otherlv_14='#' + { + newLeafNode(otherlv_14, grammarAccess.getALSPreficedAccess().getNumberSignKeyword_4_1()); + } +( +( + { + newCompositeNode(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_4_2_0()); + } + lv_operand_15_0=ruleALSBasicRelationTerm { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + set( + $current, + "operand", + lv_operand_15_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSBasicRelationTerm"); + afterParserOrEnumRuleCall(); + } + +) +)) + |(( + { + $current = forceCreateModelElement( + grammarAccess.getALSPreficedAccess().getALSUnaryMinusAction_5_0(), + $current); + } +)(( '-' +)=> otherlv_17='-' + { + newLeafNode(otherlv_17, grammarAccess.getALSPreficedAccess().getHyphenMinusKeyword_5_1()); + } +)( +( + { + newCompositeNode(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_5_2_0()); + } + lv_operand_18_0=ruleALSBasicRelationTerm { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + set( + $current, + "operand", + lv_operand_18_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSBasicRelationTerm"); + afterParserOrEnumRuleCall(); + } + +) +)) + |(( + { + $current = forceCreateModelElement( + grammarAccess.getALSPreficedAccess().getALSSumAction_6_0(), + $current); + } +) otherlv_20='sum' + { + newLeafNode(otherlv_20, grammarAccess.getALSPreficedAccess().getSumKeyword_6_1()); + } +( +( + { + newCompositeNode(grammarAccess.getALSPreficedAccess().getVariablesALSVariableDeclarationParserRuleCall_6_2_0()); + } + lv_variables_21_0=ruleALSVariableDeclaration { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + add( + $current, + "variables", + lv_variables_21_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSVariableDeclaration"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_22=',' + { + newLeafNode(otherlv_22, grammarAccess.getALSPreficedAccess().getCommaKeyword_6_3_0()); + } +( +( + { + newCompositeNode(grammarAccess.getALSPreficedAccess().getVariablesALSVariableDeclarationParserRuleCall_6_3_1_0()); + } + lv_variables_23_0=ruleALSVariableDeclaration { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + add( + $current, + "variables", + lv_variables_23_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSVariableDeclaration"); + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_24='{' + { + newLeafNode(otherlv_24, grammarAccess.getALSPreficedAccess().getLeftCurlyBracketKeyword_6_4()); + } +( +( + { + newCompositeNode(grammarAccess.getALSPreficedAccess().getExpressionALSTermParserRuleCall_6_5_0()); + } + lv_expression_25_0=ruleALSTerm { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + set( + $current, + "expression", + lv_expression_25_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_26='}' + { + newLeafNode(otherlv_26, grammarAccess.getALSPreficedAccess().getRightCurlyBracketKeyword_6_6()); + } +) + |(( + { + $current = forceCreateModelElement( + grammarAccess.getALSPreficedAccess().getALSFunctionCallAction_7_0(), + $current); + } +)(( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getALSPreficedRule()); + } + } + otherlv_28=RULE_ID + { + newLeafNode(otherlv_28, grammarAccess.getALSPreficedAccess().getReferredDefinitionALSDefinitionCrossReference_7_1_0_0()); + } + +) +) + |( +( + { + newCompositeNode(grammarAccess.getALSPreficedAccess().getReferredNumericOperatorALSNumericOperatorEnumRuleCall_7_1_1_0()); + } + lv_referredNumericOperator_29_0=ruleALSNumericOperator { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + set( + $current, + "referredNumericOperator", + lv_referredNumericOperator_29_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSNumericOperator"); + afterParserOrEnumRuleCall(); + } + +) +)) otherlv_30='[' + { + newLeafNode(otherlv_30, grammarAccess.getALSPreficedAccess().getLeftSquareBracketKeyword_7_2()); + } +( +( + { + newCompositeNode(grammarAccess.getALSPreficedAccess().getParamsALSTermParserRuleCall_7_3_0()); + } + lv_params_31_0=ruleALSTerm { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + add( + $current, + "params", + lv_params_31_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_32=',' + { + newLeafNode(otherlv_32, grammarAccess.getALSPreficedAccess().getCommaKeyword_7_4_0()); + } +( +( + { + newCompositeNode(grammarAccess.getALSPreficedAccess().getParamsALSTermParserRuleCall_7_4_1_0()); + } + lv_params_33_0=ruleALSTerm { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + add( + $current, + "params", + lv_params_33_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_34=']' + { + newLeafNode(otherlv_34, grammarAccess.getALSPreficedAccess().getRightSquareBracketKeyword_7_5()); + } +) + | + { + newCompositeNode(grammarAccess.getALSPreficedAccess().getALSBasicRelationTermParserRuleCall_8()); + } + this_ALSBasicRelationTerm_35=ruleALSBasicRelationTerm + { + $current = $this_ALSBasicRelationTerm_35.current; + afterParserOrEnumRuleCall(); + } +) +; + + + + + +// Entry rule entryRuleALSVariableDeclaration +entryRuleALSVariableDeclaration returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSVariableDeclarationRule()); } + iv_ruleALSVariableDeclaration=ruleALSVariableDeclaration + { $current=$iv_ruleALSVariableDeclaration.current; } + EOF +; + +// Rule ALSVariableDeclaration +ruleALSVariableDeclaration returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +(( +( + { + newCompositeNode(grammarAccess.getALSVariableDeclarationAccess().getNameALSIDParserRuleCall_0_0()); + } + lv_name_0_0=ruleALSID { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSVariableDeclarationRule()); + } + set( + $current, + "name", + lv_name_0_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSID"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_1=':' + { + newLeafNode(otherlv_1, grammarAccess.getALSVariableDeclarationAccess().getColonKeyword_1()); + } +( +( + { + newCompositeNode(grammarAccess.getALSVariableDeclarationAccess().getRangeALSTermParserRuleCall_2_0()); + } + lv_range_2_0=ruleALSTerm { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSVariableDeclarationRule()); + } + set( + $current, + "range", + lv_range_2_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + afterParserOrEnumRuleCall(); + } + +) +)) +; + + + + + +// Entry rule entryRuleALSBasicRelationTerm +entryRuleALSBasicRelationTerm returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSBasicRelationTermRule()); } + iv_ruleALSBasicRelationTerm=ruleALSBasicRelationTerm + { $current=$iv_ruleALSBasicRelationTerm.current; } + EOF +; + +// Rule ALSBasicRelationTerm +ruleALSBasicRelationTerm returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +((( + { + $current = forceCreateModelElement( + grammarAccess.getALSBasicRelationTermAccess().getALSNoneAction_0_0(), + $current); + } +) otherlv_1='none' + { + newLeafNode(otherlv_1, grammarAccess.getALSBasicRelationTermAccess().getNoneKeyword_0_1()); + } +) + |(( + { + $current = forceCreateModelElement( + grammarAccess.getALSBasicRelationTermAccess().getALSIdenAction_1_0(), + $current); + } +) otherlv_3='iden' + { + newLeafNode(otherlv_3, grammarAccess.getALSBasicRelationTermAccess().getIdenKeyword_1_1()); + } +) + |(( + { + $current = forceCreateModelElement( + grammarAccess.getALSBasicRelationTermAccess().getALSUnivAction_2_0(), + $current); + } +) otherlv_5='univ' + { + newLeafNode(otherlv_5, grammarAccess.getALSBasicRelationTermAccess().getUnivKeyword_2_1()); + } +) + |(( + { + $current = forceCreateModelElement( + grammarAccess.getALSBasicRelationTermAccess().getALSIntAction_3_0(), + $current); + } +) otherlv_7='Int' + { + newLeafNode(otherlv_7, grammarAccess.getALSBasicRelationTermAccess().getIntKeyword_3_1()); + } +) + |(( + { + $current = forceCreateModelElement( + grammarAccess.getALSBasicRelationTermAccess().getALSStringAction_4_0(), + $current); + } +) otherlv_9='String' + { + newLeafNode(otherlv_9, grammarAccess.getALSBasicRelationTermAccess().getStringKeyword_4_1()); + } +) + |(( + { + $current = forceCreateModelElement( + grammarAccess.getALSBasicRelationTermAccess().getALSReferenceAction_5_0(), + $current); + } +)( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getALSBasicRelationTermRule()); + } + } + otherlv_11=RULE_ID + { + newLeafNode(otherlv_11, grammarAccess.getALSBasicRelationTermAccess().getReferredALSRelationDeclarationCrossReference_5_1_0()); + } + +) +)) + |(( + { + $current = forceCreateModelElement( + grammarAccess.getALSBasicRelationTermAccess().getALSNumberLiteralAction_6_0(), + $current); + } +)( +( + lv_value_13_0=RULE_INT + { + newLeafNode(lv_value_13_0, grammarAccess.getALSBasicRelationTermAccess().getValueINTTerminalRuleCall_6_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getALSBasicRelationTermRule()); + } + setWithLastConsumed( + $current, + "value", + lv_value_13_0, + "org.eclipse.xtext.common.Terminals.INT"); + } + +) +)) + |(( + { + $current = forceCreateModelElement( + grammarAccess.getALSBasicRelationTermAccess().getALSStringLiteralAction_7_0(), + $current); + } +)( +( + lv_value_15_0=RULE_STRING + { + newLeafNode(lv_value_15_0, grammarAccess.getALSBasicRelationTermAccess().getValueSTRINGTerminalRuleCall_7_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getALSBasicRelationTermRule()); + } + setWithLastConsumed( + $current, + "value", + lv_value_15_0, + "org.eclipse.xtext.common.Terminals.STRING"); + } + +) +)) + |( otherlv_16='(' + { + newLeafNode(otherlv_16, grammarAccess.getALSBasicRelationTermAccess().getLeftParenthesisKeyword_8_0()); + } + + { + newCompositeNode(grammarAccess.getALSBasicRelationTermAccess().getALSTermParserRuleCall_8_1()); + } + this_ALSTerm_17=ruleALSTerm + { + $current = $this_ALSTerm_17.current; + afterParserOrEnumRuleCall(); + } + otherlv_18=')' + { + newLeafNode(otherlv_18, grammarAccess.getALSBasicRelationTermAccess().getRightParenthesisKeyword_8_2()); + } +)) +; + + + + + +// Entry rule entryRuleALSRunCommand +entryRuleALSRunCommand returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSRunCommandRule()); } + iv_ruleALSRunCommand=ruleALSRunCommand + { $current=$iv_ruleALSRunCommand.current; } + EOF +; + +// Rule ALSRunCommand +ruleALSRunCommand returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +(( + { + $current = forceCreateModelElement( + grammarAccess.getALSRunCommandAccess().getALSRunCommandAction_0(), + $current); + } +) otherlv_1='run' + { + newLeafNode(otherlv_1, grammarAccess.getALSRunCommandAccess().getRunKeyword_1()); + } + otherlv_2='{' + { + newLeafNode(otherlv_2, grammarAccess.getALSRunCommandAccess().getLeftCurlyBracketKeyword_2()); + } + otherlv_3='}' + { + newLeafNode(otherlv_3, grammarAccess.getALSRunCommandAccess().getRightCurlyBracketKeyword_3()); + } +( otherlv_4='for' + { + newLeafNode(otherlv_4, grammarAccess.getALSRunCommandAccess().getForKeyword_4_0()); + } +( +( + { + newCompositeNode(grammarAccess.getALSRunCommandAccess().getTypeScopesALSTypeScopeParserRuleCall_4_1_0()); + } + lv_typeScopes_5_0=ruleALSTypeScope { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSRunCommandRule()); + } + add( + $current, + "typeScopes", + lv_typeScopes_5_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTypeScope"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_6=',' + { + newLeafNode(otherlv_6, grammarAccess.getALSRunCommandAccess().getCommaKeyword_4_2_0()); + } +( +( + { + newCompositeNode(grammarAccess.getALSRunCommandAccess().getTypeScopesALSTypeScopeParserRuleCall_4_2_1_0()); + } + lv_typeScopes_7_0=ruleALSTypeScope { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getALSRunCommandRule()); + } + add( + $current, + "typeScopes", + lv_typeScopes_7_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTypeScope"); + afterParserOrEnumRuleCall(); + } + +) +))*)?) +; + + + + + +// Entry rule entryRuleALSTypeScope +entryRuleALSTypeScope returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSTypeScopeRule()); } + iv_ruleALSTypeScope=ruleALSTypeScope + { $current=$iv_ruleALSTypeScope.current; } + EOF +; + +// Rule ALSTypeScope +ruleALSTypeScope returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( + { + newCompositeNode(grammarAccess.getALSTypeScopeAccess().getALSSigScopeParserRuleCall_0()); + } + this_ALSSigScope_0=ruleALSSigScope + { + $current = $this_ALSSigScope_0.current; + afterParserOrEnumRuleCall(); + } + + | + { + newCompositeNode(grammarAccess.getALSTypeScopeAccess().getALSIntScopeParserRuleCall_1()); + } + this_ALSIntScope_1=ruleALSIntScope + { + $current = $this_ALSIntScope_1.current; + afterParserOrEnumRuleCall(); + } + + | + { + newCompositeNode(grammarAccess.getALSTypeScopeAccess().getALSStringScopeParserRuleCall_2()); + } + this_ALSStringScope_2=ruleALSStringScope + { + $current = $this_ALSStringScope_2.current; + afterParserOrEnumRuleCall(); + } +) +; + + + + + +// Entry rule entryRuleALSSigScope +entryRuleALSSigScope returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSSigScopeRule()); } + iv_ruleALSSigScope=ruleALSSigScope + { $current=$iv_ruleALSSigScope.current; } + EOF +; + +// Rule ALSSigScope +ruleALSSigScope returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +(( +( + lv_exactly_0_0= 'exactly' + { + newLeafNode(lv_exactly_0_0, grammarAccess.getALSSigScopeAccess().getExactlyExactlyKeyword_0_0()); + } + + { + if ($current==null) { + $current = createModelElement(grammarAccess.getALSSigScopeRule()); + } + setWithLastConsumed($current, "exactly", true, "exactly"); + } + +) +)?( +( + lv_number_1_0=RULE_INT + { + newLeafNode(lv_number_1_0, grammarAccess.getALSSigScopeAccess().getNumberINTTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getALSSigScopeRule()); + } + setWithLastConsumed( + $current, + "number", + lv_number_1_0, + "org.eclipse.xtext.common.Terminals.INT"); + } + +) +)( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getALSSigScopeRule()); + } + } + otherlv_2=RULE_ID + { + newLeafNode(otherlv_2, grammarAccess.getALSSigScopeAccess().getTypeALSSignatureDeclarationCrossReference_2_0()); + } + +) +)) +; + + + + + +// Entry rule entryRuleALSIntScope +entryRuleALSIntScope returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSIntScopeRule()); } + iv_ruleALSIntScope=ruleALSIntScope + { $current=$iv_ruleALSIntScope.current; } + EOF +; + +// Rule ALSIntScope +ruleALSIntScope returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +(( +( + lv_number_0_0=RULE_INT + { + newLeafNode(lv_number_0_0, grammarAccess.getALSIntScopeAccess().getNumberINTTerminalRuleCall_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getALSIntScopeRule()); + } + setWithLastConsumed( + $current, + "number", + lv_number_0_0, + "org.eclipse.xtext.common.Terminals.INT"); + } + +) +) otherlv_1='Int' + { + newLeafNode(otherlv_1, grammarAccess.getALSIntScopeAccess().getIntKeyword_1()); + } +) +; + + + + + +// Entry rule entryRuleALSStringScope +entryRuleALSStringScope returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getALSStringScopeRule()); } + iv_ruleALSStringScope=ruleALSStringScope + { $current=$iv_ruleALSStringScope.current; } + EOF +; + +// Rule ALSStringScope +ruleALSStringScope returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( otherlv_0='exactly' + { + newLeafNode(otherlv_0, grammarAccess.getALSStringScopeAccess().getExactlyKeyword_0()); + } +( +( + lv_number_1_0=RULE_INT + { + newLeafNode(lv_number_1_0, grammarAccess.getALSStringScopeAccess().getNumberINTTerminalRuleCall_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getALSStringScopeRule()); + } + setWithLastConsumed( + $current, + "number", + lv_number_1_0, + "org.eclipse.xtext.common.Terminals.INT"); + } + +) +) otherlv_2='String' + { + newLeafNode(otherlv_2, grammarAccess.getALSStringScopeAccess().getStringKeyword_2()); + } +) +; + + + + + +// Rule ALSMultiplicity +ruleALSMultiplicity returns [Enumerator current=null] + @init { enterRule(); } + @after { leaveRule(); }: +(( enumLiteral_0='all' + { + $current = grammarAccess.getALSMultiplicityAccess().getAllEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getALSMultiplicityAccess().getAllEnumLiteralDeclaration_0()); + } +) + |( enumLiteral_1='no' + { + $current = grammarAccess.getALSMultiplicityAccess().getNoEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getALSMultiplicityAccess().getNoEnumLiteralDeclaration_1()); + } +) + |( enumLiteral_2='some' + { + $current = grammarAccess.getALSMultiplicityAccess().getSomeEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getALSMultiplicityAccess().getSomeEnumLiteralDeclaration_2()); + } +) + |( enumLiteral_3='lone' + { + $current = grammarAccess.getALSMultiplicityAccess().getLoneEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getALSMultiplicityAccess().getLoneEnumLiteralDeclaration_3()); + } +) + |( enumLiteral_4='one' + { + $current = grammarAccess.getALSMultiplicityAccess().getOneEnumLiteralDeclaration_4().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_4, grammarAccess.getALSMultiplicityAccess().getOneEnumLiteralDeclaration_4()); + } +) + |( enumLiteral_5='set' + { + $current = grammarAccess.getALSMultiplicityAccess().getSetEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_5, grammarAccess.getALSMultiplicityAccess().getSetEnumLiteralDeclaration_5()); + } +)); + + + +// Rule ALSNumericOperator +ruleALSNumericOperator returns [Enumerator current=null] + @init { enterRule(); } + @after { leaveRule(); }: +(( enumLiteral_0='plus' + { + $current = grammarAccess.getALSNumericOperatorAccess().getPlusEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getALSNumericOperatorAccess().getPlusEnumLiteralDeclaration_0()); + } +) + |( enumLiteral_1='sub' + { + $current = grammarAccess.getALSNumericOperatorAccess().getSubEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getALSNumericOperatorAccess().getSubEnumLiteralDeclaration_1()); + } +) + |( enumLiteral_2='mul' + { + $current = grammarAccess.getALSNumericOperatorAccess().getMulEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getALSNumericOperatorAccess().getMulEnumLiteralDeclaration_2()); + } +) + |( enumLiteral_3='rem' + { + $current = grammarAccess.getALSNumericOperatorAccess().getRemEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getALSNumericOperatorAccess().getRemEnumLiteralDeclaration_3()); + } +) + |( enumLiteral_4='div' + { + $current = grammarAccess.getALSNumericOperatorAccess().getDivEnumLiteralDeclaration_4().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_4, grammarAccess.getALSNumericOperatorAccess().getDivEnumLiteralDeclaration_4()); + } +)); + + + +RULE_ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'\''|'"'|'0'..'9')*; + +RULE_INT : ('0'..'9')+; + +RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\''); + +RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/'; + +RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?; + +RULE_WS : (' '|'\t'|'\r'|'\n')+; + +RULE_ANY_OTHER : .; + + diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguage.tokens b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguage.tokens new file mode 100644 index 00000000..530f7732 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguage.tokens @@ -0,0 +1,139 @@ +'!'=49 +'!='=37 +'#'=54 +'&&'=34 +'&'=47 +'('=61 +')'=62 +'*'=53 +'+'=19 +'++'=42 +','=13 +'-'=46 +'->'=48 +'.'=45 +':'=20 +':>'=43 +'<'=40 +'<:'=44 +'<='=41 +'<=>'=29 +'='=36 +'=>'=31 +'>'=38 +'>='=39 +'Int'=59 +'String'=60 +'['=22 +']'=23 +'^'=52 +'abstract'=15 +'all'=66 +'and'=35 +'disj'=26 +'div'=76 +'else'=33 +'enum'=11 +'exactly'=65 +'extends'=17 +'fact'=25 +'for'=64 +'fun'=21 +'iden'=57 +'iff'=30 +'implies'=32 +'in'=18 +'lone'=69 +'mul'=74 +'no'=67 +'none'=56 +'not'=50 +'one'=70 +'or'=28 +'plus'=72 +'pred'=24 +'rem'=75 +'run'=63 +'set'=71 +'sig'=16 +'some'=68 +'sub'=73 +'sum'=55 +'univ'=58 +'{'=12 +'||'=27 +'}'=14 +'~'=51 +RULE_ANY_OTHER=10 +RULE_ID=4 +RULE_INT=5 +RULE_ML_COMMENT=7 +RULE_SL_COMMENT=8 +RULE_STRING=6 +RULE_WS=9 +T__11=11 +T__12=12 +T__13=13 +T__14=14 +T__15=15 +T__16=16 +T__17=17 +T__18=18 +T__19=19 +T__20=20 +T__21=21 +T__22=22 +T__23=23 +T__24=24 +T__25=25 +T__26=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 +T__69=69 +T__70=70 +T__71=71 +T__72=72 +T__73=73 +T__74=74 +T__75=75 +T__76=76 diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguageLexer.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguageLexer.java new file mode 100644 index 00000000..fec42235 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguageLexer.java @@ -0,0 +1,2854 @@ +package hu.bme.mit.inf.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 InternalAlloyLanguageLexer extends Lexer { + public static final int T__50=50; + public static final int T__19=19; + public static final int T__15=15; + public static final int T__59=59; + public static final int T__16=16; + public static final int T__17=17; + public static final int T__18=18; + public static final int T__11=11; + public static final int T__55=55; + public static final int T__12=12; + public static final int T__56=56; + public static final int T__13=13; + public static final int T__57=57; + public static final int T__14=14; + public static final int T__58=58; + public static final int T__51=51; + public static final int T__52=52; + public static final int T__53=53; + 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=4; + public static final int T__26=26; + public static final int T__27=27; + public static final int T__28=28; + public static final int RULE_INT=5; + public static final int T__29=29; + public static final int T__22=22; + public static final int T__66=66; + public static final int RULE_ML_COMMENT=7; + public static final int T__23=23; + public static final int T__67=67; + public static final int T__24=24; + public static final int T__68=68; + public static final int T__25=25; + public static final int T__69=69; + public static final int T__62=62; + public static final int T__63=63; + public static final int T__20=20; + public static final int T__64=64; + public static final int T__21=21; + public static final int T__65=65; + public static final int T__70=70; + public static final int T__71=71; + public static final int T__72=72; + public static final int RULE_STRING=6; + public static final int RULE_SL_COMMENT=8; + 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 T__73=73; + public static final int EOF=-1; + public static final int T__30=30; + public static final int T__74=74; + public static final int T__31=31; + public static final int T__75=75; + public static final int T__32=32; + public static final int T__76=76; + public static final int RULE_WS=9; + public static final int RULE_ANY_OTHER=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 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 InternalAlloyLanguageLexer() {;} + public InternalAlloyLanguageLexer(CharStream input) { + this(input, new RecognizerSharedState()); + } + public InternalAlloyLanguageLexer(CharStream input, RecognizerSharedState state) { + super(input,state); + + } + public String getGrammarFileName() { return "InternalAlloyLanguage.g"; } + + // $ANTLR start "T__11" + public final void mT__11() throws RecognitionException { + try { + int _type = T__11; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:11:7: ( 'enum' ) + // InternalAlloyLanguage.g:11:9: 'enum' + { + match("enum"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__11" + + // $ANTLR start "T__12" + public final void mT__12() throws RecognitionException { + try { + int _type = T__12; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:12:7: ( '{' ) + // InternalAlloyLanguage.g:12:9: '{' + { + match('{'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__12" + + // $ANTLR start "T__13" + public final void mT__13() throws RecognitionException { + try { + int _type = T__13; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:13:7: ( ',' ) + // InternalAlloyLanguage.g:13:9: ',' + { + match(','); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__13" + + // $ANTLR start "T__14" + public final void mT__14() throws RecognitionException { + try { + int _type = T__14; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:14:7: ( '}' ) + // InternalAlloyLanguage.g:14:9: '}' + { + match('}'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__14" + + // $ANTLR start "T__15" + public final void mT__15() throws RecognitionException { + try { + int _type = T__15; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:15:7: ( 'abstract' ) + // InternalAlloyLanguage.g:15:9: 'abstract' + { + match("abstract"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__15" + + // $ANTLR start "T__16" + public final void mT__16() throws RecognitionException { + try { + int _type = T__16; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:16:7: ( 'sig' ) + // InternalAlloyLanguage.g:16:9: 'sig' + { + match("sig"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__16" + + // $ANTLR start "T__17" + public final void mT__17() throws RecognitionException { + try { + int _type = T__17; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:17:7: ( 'extends' ) + // InternalAlloyLanguage.g:17:9: 'extends' + { + match("extends"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__17" + + // $ANTLR start "T__18" + public final void mT__18() throws RecognitionException { + try { + int _type = T__18; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:18:7: ( 'in' ) + // InternalAlloyLanguage.g:18:9: 'in' + { + match("in"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__18" + + // $ANTLR start "T__19" + public final void mT__19() throws RecognitionException { + try { + int _type = T__19; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:19:7: ( '+' ) + // InternalAlloyLanguage.g:19:9: '+' + { + match('+'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__19" + + // $ANTLR start "T__20" + public final void mT__20() throws RecognitionException { + try { + int _type = T__20; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:20:7: ( ':' ) + // InternalAlloyLanguage.g:20:9: ':' + { + match(':'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__20" + + // $ANTLR start "T__21" + public final void mT__21() throws RecognitionException { + try { + int _type = T__21; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:21:7: ( 'fun' ) + // InternalAlloyLanguage.g:21:9: 'fun' + { + match("fun"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__21" + + // $ANTLR start "T__22" + public final void mT__22() throws RecognitionException { + try { + int _type = T__22; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:22:7: ( '[' ) + // InternalAlloyLanguage.g:22:9: '[' + { + match('['); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__22" + + // $ANTLR start "T__23" + public final void mT__23() throws RecognitionException { + try { + int _type = T__23; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:23:7: ( ']' ) + // InternalAlloyLanguage.g:23:9: ']' + { + match(']'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__23" + + // $ANTLR start "T__24" + public final void mT__24() throws RecognitionException { + try { + int _type = T__24; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:24:7: ( 'pred' ) + // InternalAlloyLanguage.g:24:9: 'pred' + { + match("pred"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__24" + + // $ANTLR start "T__25" + public final void mT__25() throws RecognitionException { + try { + int _type = T__25; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:25:7: ( 'fact' ) + // InternalAlloyLanguage.g:25:9: 'fact' + { + match("fact"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__25" + + // $ANTLR start "T__26" + public final void mT__26() throws RecognitionException { + try { + int _type = T__26; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:26:7: ( 'disj' ) + // InternalAlloyLanguage.g:26:9: 'disj' + { + match("disj"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__26" + + // $ANTLR start "T__27" + public final void mT__27() throws RecognitionException { + try { + int _type = T__27; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:27:7: ( '||' ) + // InternalAlloyLanguage.g:27:9: '||' + { + match("||"); + + + } + + 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; + // InternalAlloyLanguage.g:28:7: ( 'or' ) + // InternalAlloyLanguage.g:28:9: 'or' + { + match("or"); + + + } + + 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; + // InternalAlloyLanguage.g:29:7: ( '<=>' ) + // InternalAlloyLanguage.g:29: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; + // InternalAlloyLanguage.g:30:7: ( 'iff' ) + // InternalAlloyLanguage.g:30:9: 'iff' + { + match("iff"); + + + } + + 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; + // InternalAlloyLanguage.g:31:7: ( '=>' ) + // InternalAlloyLanguage.g:31:9: '=>' + { + match("=>"); + + + } + + 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; + // InternalAlloyLanguage.g:32:7: ( 'implies' ) + // InternalAlloyLanguage.g:32:9: 'implies' + { + match("implies"); + + + } + + 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; + // InternalAlloyLanguage.g:33:7: ( 'else' ) + // InternalAlloyLanguage.g:33:9: 'else' + { + match("else"); + + + } + + 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; + // InternalAlloyLanguage.g:34:7: ( '&&' ) + // InternalAlloyLanguage.g:34: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; + // InternalAlloyLanguage.g:35:7: ( 'and' ) + // InternalAlloyLanguage.g:35:9: 'and' + { + match("and"); + + + } + + 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; + // InternalAlloyLanguage.g:36:7: ( '=' ) + // InternalAlloyLanguage.g:36:9: '=' + { + match('='); + + } + + 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; + // InternalAlloyLanguage.g:37:7: ( '!=' ) + // InternalAlloyLanguage.g:37:9: '!=' + { + match("!="); + + + } + + 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; + // InternalAlloyLanguage.g:38:7: ( '>' ) + // InternalAlloyLanguage.g:38:9: '>' + { + match('>'); + + } + + 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; + // InternalAlloyLanguage.g:39:7: ( '>=' ) + // InternalAlloyLanguage.g:39:9: '>=' + { + match(">="); + + + } + + 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; + // InternalAlloyLanguage.g:40:7: ( '<' ) + // InternalAlloyLanguage.g:40:9: '<' + { + match('<'); + + } + + 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; + // InternalAlloyLanguage.g:41:7: ( '<=' ) + // InternalAlloyLanguage.g:41:9: '<=' + { + match("<="); + + + } + + 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; + // InternalAlloyLanguage.g:42:7: ( '++' ) + // InternalAlloyLanguage.g:42:9: '++' + { + match("++"); + + + } + + 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; + // InternalAlloyLanguage.g:43:7: ( ':>' ) + // InternalAlloyLanguage.g:43: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; + // InternalAlloyLanguage.g:44:7: ( '<:' ) + // InternalAlloyLanguage.g:44: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; + // InternalAlloyLanguage.g:45:7: ( '.' ) + // InternalAlloyLanguage.g:45: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; + // InternalAlloyLanguage.g:46:7: ( '-' ) + // InternalAlloyLanguage.g:46:9: '-' + { + match('-'); + + } + + 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; + // InternalAlloyLanguage.g:47:7: ( '&' ) + // InternalAlloyLanguage.g:47: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; + // InternalAlloyLanguage.g:48:7: ( '->' ) + // InternalAlloyLanguage.g:48: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; + // InternalAlloyLanguage.g:49:7: ( '!' ) + // InternalAlloyLanguage.g:49: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; + // InternalAlloyLanguage.g:50:7: ( 'not' ) + // InternalAlloyLanguage.g:50:9: 'not' + { + match("not"); + + + } + + 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; + // InternalAlloyLanguage.g:51:7: ( '~' ) + // InternalAlloyLanguage.g:51: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; + // InternalAlloyLanguage.g:52:7: ( '^' ) + // InternalAlloyLanguage.g:52: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; + // InternalAlloyLanguage.g:53:7: ( '*' ) + // InternalAlloyLanguage.g:53: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; + // InternalAlloyLanguage.g:54:7: ( '#' ) + // InternalAlloyLanguage.g:54: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; + // InternalAlloyLanguage.g:55:7: ( 'sum' ) + // InternalAlloyLanguage.g:55:9: 'sum' + { + match("sum"); + + + } + + 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; + // InternalAlloyLanguage.g:56:7: ( 'none' ) + // InternalAlloyLanguage.g:56:9: 'none' + { + match("none"); + + + } + + 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; + // InternalAlloyLanguage.g:57:7: ( 'iden' ) + // InternalAlloyLanguage.g:57:9: 'iden' + { + match("iden"); + + + } + + 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; + // InternalAlloyLanguage.g:58:7: ( 'univ' ) + // InternalAlloyLanguage.g:58:9: 'univ' + { + match("univ"); + + + } + + 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; + // InternalAlloyLanguage.g:59:7: ( 'Int' ) + // InternalAlloyLanguage.g:59:9: 'Int' + { + match("Int"); + + + } + + 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; + // InternalAlloyLanguage.g:60:7: ( 'String' ) + // InternalAlloyLanguage.g:60:9: 'String' + { + match("String"); + + + } + + 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; + // InternalAlloyLanguage.g:61:7: ( '(' ) + // InternalAlloyLanguage.g:61: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; + // InternalAlloyLanguage.g:62:7: ( ')' ) + // InternalAlloyLanguage.g:62: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; + // InternalAlloyLanguage.g:63:7: ( 'run' ) + // InternalAlloyLanguage.g:63:9: 'run' + { + match("run"); + + + } + + 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; + // InternalAlloyLanguage.g:64:7: ( 'for' ) + // InternalAlloyLanguage.g:64:9: 'for' + { + match("for"); + + + } + + 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; + // InternalAlloyLanguage.g:65:7: ( 'exactly' ) + // InternalAlloyLanguage.g:65:9: 'exactly' + { + match("exactly"); + + + } + + 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; + // InternalAlloyLanguage.g:66:7: ( 'all' ) + // InternalAlloyLanguage.g:66:9: 'all' + { + match("all"); + + + } + + 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; + // InternalAlloyLanguage.g:67:7: ( 'no' ) + // InternalAlloyLanguage.g:67:9: 'no' + { + match("no"); + + + } + + 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; + // InternalAlloyLanguage.g:68:7: ( 'some' ) + // InternalAlloyLanguage.g:68:9: 'some' + { + match("some"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__68" + + // $ANTLR start "T__69" + public final void mT__69() throws RecognitionException { + try { + int _type = T__69; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:69:7: ( 'lone' ) + // InternalAlloyLanguage.g:69:9: 'lone' + { + match("lone"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__69" + + // $ANTLR start "T__70" + public final void mT__70() throws RecognitionException { + try { + int _type = T__70; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:70:7: ( 'one' ) + // InternalAlloyLanguage.g:70:9: 'one' + { + match("one"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__70" + + // $ANTLR start "T__71" + public final void mT__71() throws RecognitionException { + try { + int _type = T__71; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:71:7: ( 'set' ) + // InternalAlloyLanguage.g:71:9: 'set' + { + match("set"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__71" + + // $ANTLR start "T__72" + public final void mT__72() throws RecognitionException { + try { + int _type = T__72; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:72:7: ( 'plus' ) + // InternalAlloyLanguage.g:72:9: 'plus' + { + match("plus"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__72" + + // $ANTLR start "T__73" + public final void mT__73() throws RecognitionException { + try { + int _type = T__73; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:73:7: ( 'sub' ) + // InternalAlloyLanguage.g:73:9: 'sub' + { + match("sub"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__73" + + // $ANTLR start "T__74" + public final void mT__74() throws RecognitionException { + try { + int _type = T__74; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:74:7: ( 'mul' ) + // InternalAlloyLanguage.g:74:9: 'mul' + { + match("mul"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__74" + + // $ANTLR start "T__75" + public final void mT__75() throws RecognitionException { + try { + int _type = T__75; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:75:7: ( 'rem' ) + // InternalAlloyLanguage.g:75:9: 'rem' + { + match("rem"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__75" + + // $ANTLR start "T__76" + public final void mT__76() throws RecognitionException { + try { + int _type = T__76; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:76:7: ( 'div' ) + // InternalAlloyLanguage.g:76:9: 'div' + { + match("div"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__76" + + // $ANTLR start "RULE_ID" + public final void mRULE_ID() throws RecognitionException { + try { + int _type = RULE_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:3125:9: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '\\'' | '\"' | '0' .. '9' )* ) + // InternalAlloyLanguage.g:3125:11: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '\\'' | '\"' | '0' .. '9' )* + { + 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;} + + // InternalAlloyLanguage.g:3125:35: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '\\'' | '\"' | '0' .. '9' )* + loop1: + do { + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0=='\"'||LA1_0=='\''||(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 : + // InternalAlloyLanguage.g: + { + if ( input.LA(1)=='\"'||input.LA(1)=='\''||(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 loop1; + } + } 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 { + int _type = RULE_INT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:3127:10: ( ( '0' .. '9' )+ ) + // InternalAlloyLanguage.g:3127:12: ( '0' .. '9' )+ + { + // InternalAlloyLanguage.g:3127:12: ( '0' .. '9' )+ + int cnt2=0; + loop2: + do { + int alt2=2; + int LA2_0 = input.LA(1); + + if ( ((LA2_0>='0' && LA2_0<='9')) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // InternalAlloyLanguage.g:3127:13: '0' .. '9' + { + matchRange('0','9'); + + } + break; + + default : + if ( cnt2 >= 1 ) break loop2; + EarlyExitException eee = + new EarlyExitException(2, input); + throw eee; + } + cnt2++; + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + 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; + // InternalAlloyLanguage.g:3129:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) + // InternalAlloyLanguage.g:3129:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + { + // InternalAlloyLanguage.g:3129:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + int alt5=2; + int LA5_0 = input.LA(1); + + if ( (LA5_0=='\"') ) { + alt5=1; + } + else if ( (LA5_0=='\'') ) { + alt5=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 5, 0, input); + + throw nvae; + } + switch (alt5) { + case 1 : + // InternalAlloyLanguage.g:3129:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' + { + match('\"'); + // InternalAlloyLanguage.g:3129:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* + 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 : + // InternalAlloyLanguage.g:3129:21: '\\\\' . + { + match('\\'); + matchAny(); + + } + break; + case 2 : + // InternalAlloyLanguage.g:3129: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 loop3; + } + } while (true); + + match('\"'); + + } + break; + case 2 : + // InternalAlloyLanguage.g:3129:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' + { + match('\''); + // InternalAlloyLanguage.g:3129:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* + 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 : + // InternalAlloyLanguage.g:3129:54: '\\\\' . + { + match('\\'); + matchAny(); + + } + break; + case 2 : + // InternalAlloyLanguage.g:3129: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 loop4; + } + } 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; + // InternalAlloyLanguage.g:3131:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // InternalAlloyLanguage.g:3131:19: '/*' ( options {greedy=false; } : . )* '*/' + { + match("/*"); + + // InternalAlloyLanguage.g:3131:24: ( options {greedy=false; } : . )* + loop6: + do { + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0=='*') ) { + int LA6_1 = input.LA(2); + + if ( (LA6_1=='/') ) { + alt6=2; + } + else if ( ((LA6_1>='\u0000' && LA6_1<='.')||(LA6_1>='0' && LA6_1<='\uFFFF')) ) { + alt6=1; + } + + + } + else if ( ((LA6_0>='\u0000' && LA6_0<=')')||(LA6_0>='+' && LA6_0<='\uFFFF')) ) { + alt6=1; + } + + + switch (alt6) { + case 1 : + // InternalAlloyLanguage.g:3131:52: . + { + matchAny(); + + } + break; + + default : + break loop6; + } + } 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; + // InternalAlloyLanguage.g:3133:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) + // InternalAlloyLanguage.g:3133:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? + { + match("//"); + + // InternalAlloyLanguage.g:3133:24: (~ ( ( '\\n' | '\\r' ) ) )* + loop7: + do { + int alt7=2; + int LA7_0 = input.LA(1); + + if ( ((LA7_0>='\u0000' && LA7_0<='\t')||(LA7_0>='\u000B' && LA7_0<='\f')||(LA7_0>='\u000E' && LA7_0<='\uFFFF')) ) { + alt7=1; + } + + + switch (alt7) { + case 1 : + // InternalAlloyLanguage.g:3133: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 loop7; + } + } while (true); + + // InternalAlloyLanguage.g:3133:40: ( ( '\\r' )? '\\n' )? + int alt9=2; + int LA9_0 = input.LA(1); + + if ( (LA9_0=='\n'||LA9_0=='\r') ) { + alt9=1; + } + switch (alt9) { + case 1 : + // InternalAlloyLanguage.g:3133:41: ( '\\r' )? '\\n' + { + // InternalAlloyLanguage.g:3133:41: ( '\\r' )? + int alt8=2; + int LA8_0 = input.LA(1); + + if ( (LA8_0=='\r') ) { + alt8=1; + } + switch (alt8) { + case 1 : + // InternalAlloyLanguage.g:3133: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; + // InternalAlloyLanguage.g:3135:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // InternalAlloyLanguage.g:3135:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + { + // InternalAlloyLanguage.g:3135:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + int cnt10=0; + loop10: + do { + int alt10=2; + int LA10_0 = input.LA(1); + + if ( ((LA10_0>='\t' && LA10_0<='\n')||LA10_0=='\r'||LA10_0==' ') ) { + alt10=1; + } + + + switch (alt10) { + case 1 : + // InternalAlloyLanguage.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 ( cnt10 >= 1 ) break loop10; + EarlyExitException eee = + new EarlyExitException(10, input); + throw eee; + } + cnt10++; + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_WS" + + // $ANTLR start "RULE_ANY_OTHER" + public final void mRULE_ANY_OTHER() throws RecognitionException { + try { + int _type = RULE_ANY_OTHER; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalAlloyLanguage.g:3137:16: ( . ) + // InternalAlloyLanguage.g:3137:18: . + { + matchAny(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_ANY_OTHER" + + public void mTokens() throws RecognitionException { + // InternalAlloyLanguage.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | 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 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) + int alt11=73; + alt11 = dfa11.predict(input); + switch (alt11) { + case 1 : + // InternalAlloyLanguage.g:1:10: T__11 + { + mT__11(); + + } + break; + case 2 : + // InternalAlloyLanguage.g:1:16: T__12 + { + mT__12(); + + } + break; + case 3 : + // InternalAlloyLanguage.g:1:22: T__13 + { + mT__13(); + + } + break; + case 4 : + // InternalAlloyLanguage.g:1:28: T__14 + { + mT__14(); + + } + break; + case 5 : + // InternalAlloyLanguage.g:1:34: T__15 + { + mT__15(); + + } + break; + case 6 : + // InternalAlloyLanguage.g:1:40: T__16 + { + mT__16(); + + } + break; + case 7 : + // InternalAlloyLanguage.g:1:46: T__17 + { + mT__17(); + + } + break; + case 8 : + // InternalAlloyLanguage.g:1:52: T__18 + { + mT__18(); + + } + break; + case 9 : + // InternalAlloyLanguage.g:1:58: T__19 + { + mT__19(); + + } + break; + case 10 : + // InternalAlloyLanguage.g:1:64: T__20 + { + mT__20(); + + } + break; + case 11 : + // InternalAlloyLanguage.g:1:70: T__21 + { + mT__21(); + + } + break; + case 12 : + // InternalAlloyLanguage.g:1:76: T__22 + { + mT__22(); + + } + break; + case 13 : + // InternalAlloyLanguage.g:1:82: T__23 + { + mT__23(); + + } + break; + case 14 : + // InternalAlloyLanguage.g:1:88: T__24 + { + mT__24(); + + } + break; + case 15 : + // InternalAlloyLanguage.g:1:94: T__25 + { + mT__25(); + + } + break; + case 16 : + // InternalAlloyLanguage.g:1:100: T__26 + { + mT__26(); + + } + break; + case 17 : + // InternalAlloyLanguage.g:1:106: T__27 + { + mT__27(); + + } + break; + case 18 : + // InternalAlloyLanguage.g:1:112: T__28 + { + mT__28(); + + } + break; + case 19 : + // InternalAlloyLanguage.g:1:118: T__29 + { + mT__29(); + + } + break; + case 20 : + // InternalAlloyLanguage.g:1:124: T__30 + { + mT__30(); + + } + break; + case 21 : + // InternalAlloyLanguage.g:1:130: T__31 + { + mT__31(); + + } + break; + case 22 : + // InternalAlloyLanguage.g:1:136: T__32 + { + mT__32(); + + } + break; + case 23 : + // InternalAlloyLanguage.g:1:142: T__33 + { + mT__33(); + + } + break; + case 24 : + // InternalAlloyLanguage.g:1:148: T__34 + { + mT__34(); + + } + break; + case 25 : + // InternalAlloyLanguage.g:1:154: T__35 + { + mT__35(); + + } + break; + case 26 : + // InternalAlloyLanguage.g:1:160: T__36 + { + mT__36(); + + } + break; + case 27 : + // InternalAlloyLanguage.g:1:166: T__37 + { + mT__37(); + + } + break; + case 28 : + // InternalAlloyLanguage.g:1:172: T__38 + { + mT__38(); + + } + break; + case 29 : + // InternalAlloyLanguage.g:1:178: T__39 + { + mT__39(); + + } + break; + case 30 : + // InternalAlloyLanguage.g:1:184: T__40 + { + mT__40(); + + } + break; + case 31 : + // InternalAlloyLanguage.g:1:190: T__41 + { + mT__41(); + + } + break; + case 32 : + // InternalAlloyLanguage.g:1:196: T__42 + { + mT__42(); + + } + break; + case 33 : + // InternalAlloyLanguage.g:1:202: T__43 + { + mT__43(); + + } + break; + case 34 : + // InternalAlloyLanguage.g:1:208: T__44 + { + mT__44(); + + } + break; + case 35 : + // InternalAlloyLanguage.g:1:214: T__45 + { + mT__45(); + + } + break; + case 36 : + // InternalAlloyLanguage.g:1:220: T__46 + { + mT__46(); + + } + break; + case 37 : + // InternalAlloyLanguage.g:1:226: T__47 + { + mT__47(); + + } + break; + case 38 : + // InternalAlloyLanguage.g:1:232: T__48 + { + mT__48(); + + } + break; + case 39 : + // InternalAlloyLanguage.g:1:238: T__49 + { + mT__49(); + + } + break; + case 40 : + // InternalAlloyLanguage.g:1:244: T__50 + { + mT__50(); + + } + break; + case 41 : + // InternalAlloyLanguage.g:1:250: T__51 + { + mT__51(); + + } + break; + case 42 : + // InternalAlloyLanguage.g:1:256: T__52 + { + mT__52(); + + } + break; + case 43 : + // InternalAlloyLanguage.g:1:262: T__53 + { + mT__53(); + + } + break; + case 44 : + // InternalAlloyLanguage.g:1:268: T__54 + { + mT__54(); + + } + break; + case 45 : + // InternalAlloyLanguage.g:1:274: T__55 + { + mT__55(); + + } + break; + case 46 : + // InternalAlloyLanguage.g:1:280: T__56 + { + mT__56(); + + } + break; + case 47 : + // InternalAlloyLanguage.g:1:286: T__57 + { + mT__57(); + + } + break; + case 48 : + // InternalAlloyLanguage.g:1:292: T__58 + { + mT__58(); + + } + break; + case 49 : + // InternalAlloyLanguage.g:1:298: T__59 + { + mT__59(); + + } + break; + case 50 : + // InternalAlloyLanguage.g:1:304: T__60 + { + mT__60(); + + } + break; + case 51 : + // InternalAlloyLanguage.g:1:310: T__61 + { + mT__61(); + + } + break; + case 52 : + // InternalAlloyLanguage.g:1:316: T__62 + { + mT__62(); + + } + break; + case 53 : + // InternalAlloyLanguage.g:1:322: T__63 + { + mT__63(); + + } + break; + case 54 : + // InternalAlloyLanguage.g:1:328: T__64 + { + mT__64(); + + } + break; + case 55 : + // InternalAlloyLanguage.g:1:334: T__65 + { + mT__65(); + + } + break; + case 56 : + // InternalAlloyLanguage.g:1:340: T__66 + { + mT__66(); + + } + break; + case 57 : + // InternalAlloyLanguage.g:1:346: T__67 + { + mT__67(); + + } + break; + case 58 : + // InternalAlloyLanguage.g:1:352: T__68 + { + mT__68(); + + } + break; + case 59 : + // InternalAlloyLanguage.g:1:358: T__69 + { + mT__69(); + + } + break; + case 60 : + // InternalAlloyLanguage.g:1:364: T__70 + { + mT__70(); + + } + break; + case 61 : + // InternalAlloyLanguage.g:1:370: T__71 + { + mT__71(); + + } + break; + case 62 : + // InternalAlloyLanguage.g:1:376: T__72 + { + mT__72(); + + } + break; + case 63 : + // InternalAlloyLanguage.g:1:382: T__73 + { + mT__73(); + + } + break; + case 64 : + // InternalAlloyLanguage.g:1:388: T__74 + { + mT__74(); + + } + break; + case 65 : + // InternalAlloyLanguage.g:1:394: T__75 + { + mT__75(); + + } + break; + case 66 : + // InternalAlloyLanguage.g:1:400: T__76 + { + mT__76(); + + } + break; + case 67 : + // InternalAlloyLanguage.g:1:406: RULE_ID + { + mRULE_ID(); + + } + break; + case 68 : + // InternalAlloyLanguage.g:1:414: RULE_INT + { + mRULE_INT(); + + } + break; + case 69 : + // InternalAlloyLanguage.g:1:423: RULE_STRING + { + mRULE_STRING(); + + } + break; + case 70 : + // InternalAlloyLanguage.g:1:435: RULE_ML_COMMENT + { + mRULE_ML_COMMENT(); + + } + break; + case 71 : + // InternalAlloyLanguage.g:1:451: RULE_SL_COMMENT + { + mRULE_SL_COMMENT(); + + } + break; + case 72 : + // InternalAlloyLanguage.g:1:467: RULE_WS + { + mRULE_WS(); + + } + break; + case 73 : + // InternalAlloyLanguage.g:1:475: RULE_ANY_OTHER + { + mRULE_ANY_OTHER(); + + } + break; + + } + + } + + + protected DFA11 dfa11 = new DFA11(this); + static final String DFA11_eotS = + "\1\uffff\1\57\3\uffff\3\57\1\77\1\101\1\57\2\uffff\2\57\1\53\1\57\1\117\1\121\1\123\1\125\1\127\1\uffff\1\132\1\57\4\uffff\3\57\2\uffff\3\57\2\uffff\3\53\2\uffff\3\57\4\uffff\7\57\1\172\3\57\4\uffff\3\57\2\uffff\3\57\1\uffff\1\u0085\1\57\1\u0088\15\uffff\1\u008b\4\uffff\3\57\2\uffff\4\57\5\uffff\5\57\1\u0098\1\u0099\1\u009a\1\u009b\1\u009c\1\57\1\u009e\1\uffff\1\u009f\2\57\1\u00a2\1\57\1\u00a4\3\57\1\u00a8\1\uffff\1\u00a9\2\uffff\1\u00aa\1\57\1\uffff\1\57\1\u00ad\1\57\1\u00af\1\u00b0\1\57\1\u00b2\1\u00b3\2\57\1\u00b6\1\57\5\uffff\1\u00b8\2\uffff\1\57\1\u00ba\1\uffff\1\u00bb\1\uffff\1\u00bc\1\u00bd\1\u00be\3\uffff\1\u00bf\1\u00c0\1\uffff\1\57\2\uffff\1\u00c2\2\uffff\2\57\1\uffff\1\57\1\uffff\1\57\7\uffff\1\57\1\uffff\4\57\1\u00cc\1\u00cd\1\u00ce\1\57\1\u00d0\3\uffff\1\u00d1\2\uffff"; + static final String DFA11_eofS = + "\u00d2\uffff"; + static final String DFA11_minS = + "\1\0\1\154\3\uffff\1\142\1\145\1\144\1\53\1\76\1\141\2\uffff\1\154\1\151\1\174\1\156\1\72\1\76\1\46\2\75\1\uffff\1\76\1\157\4\uffff\2\156\1\164\2\uffff\1\145\1\157\1\165\2\uffff\2\0\1\52\2\uffff\1\165\1\141\1\163\4\uffff\1\163\1\144\1\154\1\147\1\142\1\155\1\164\1\42\1\146\1\160\1\145\4\uffff\1\156\1\143\1\162\2\uffff\1\145\1\165\1\163\1\uffff\1\42\1\145\1\76\15\uffff\1\42\4\uffff\1\151\1\164\1\162\2\uffff\1\156\1\155\1\156\1\154\5\uffff\1\155\1\145\1\143\1\145\1\164\5\42\1\145\1\42\1\uffff\1\42\1\154\1\156\1\42\1\164\1\42\1\144\1\163\1\152\1\42\1\uffff\1\42\2\uffff\1\42\1\145\1\uffff\1\166\1\42\1\151\2\42\1\145\2\42\1\156\1\164\1\42\1\162\5\uffff\1\42\2\uffff\1\151\1\42\1\uffff\1\42\1\uffff\3\42\3\uffff\2\42\1\uffff\1\156\2\uffff\1\42\2\uffff\1\144\1\154\1\uffff\1\141\1\uffff\1\145\7\uffff\1\147\1\uffff\1\163\1\171\1\143\1\163\3\42\1\164\1\42\3\uffff\1\42\2\uffff"; + static final String DFA11_maxS = + "\1\uffff\1\170\3\uffff\1\156\1\165\1\156\1\53\1\76\1\165\2\uffff\1\162\1\151\1\174\1\162\1\75\1\76\1\46\2\75\1\uffff\1\76\1\157\4\uffff\2\156\1\164\2\uffff\1\165\1\157\1\165\2\uffff\2\uffff\1\57\2\uffff\1\165\1\164\1\163\4\uffff\1\163\1\144\1\154\1\147\2\155\1\164\1\172\1\146\1\160\1\145\4\uffff\1\156\1\143\1\162\2\uffff\1\145\1\165\1\166\1\uffff\1\172\1\145\1\76\15\uffff\1\172\4\uffff\1\151\1\164\1\162\2\uffff\1\156\1\155\1\156\1\154\5\uffff\1\155\1\145\1\143\1\145\1\164\5\172\1\145\1\172\1\uffff\1\172\1\154\1\156\1\172\1\164\1\172\1\144\1\163\1\152\1\172\1\uffff\1\172\2\uffff\1\172\1\145\1\uffff\1\166\1\172\1\151\2\172\1\145\2\172\1\156\1\164\1\172\1\162\5\uffff\1\172\2\uffff\1\151\1\172\1\uffff\1\172\1\uffff\3\172\3\uffff\2\172\1\uffff\1\156\2\uffff\1\172\2\uffff\1\144\1\154\1\uffff\1\141\1\uffff\1\145\7\uffff\1\147\1\uffff\1\163\1\171\1\143\1\163\3\172\1\164\1\172\3\uffff\1\172\2\uffff"; + static final String DFA11_acceptS = + "\2\uffff\1\2\1\3\1\4\6\uffff\1\14\1\15\11\uffff\1\43\2\uffff\1\51\1\52\1\53\1\54\3\uffff\1\63\1\64\3\uffff\1\103\1\104\3\uffff\1\110\1\111\3\uffff\1\103\1\2\1\3\1\4\13\uffff\1\40\1\11\1\41\1\12\3\uffff\1\14\1\15\3\uffff\1\21\3\uffff\1\42\1\36\1\25\1\32\1\30\1\45\1\33\1\47\1\35\1\34\1\43\1\46\1\44\1\uffff\1\51\1\52\1\53\1\54\3\uffff\1\63\1\64\4\uffff\1\104\1\105\1\106\1\107\1\110\14\uffff\1\10\12\uffff\1\22\1\uffff\1\23\1\37\2\uffff\1\71\14\uffff\1\31\1\70\1\6\1\55\1\77\1\uffff\1\75\1\24\2\uffff\1\13\1\uffff\1\66\3\uffff\1\102\1\74\1\50\2\uffff\1\61\1\uffff\1\65\1\101\1\uffff\1\100\1\1\2\uffff\1\27\1\uffff\1\72\1\uffff\1\57\1\17\1\16\1\76\1\20\1\56\1\60\1\uffff\1\73\11\uffff\1\62\1\7\1\67\1\uffff\1\26\1\5"; + static final String DFA11_specialS = + "\1\1\46\uffff\1\2\1\0\u00a9\uffff}>"; + static final String[] DFA11_transitionS = { + "\11\53\2\52\2\53\1\52\22\53\1\52\1\24\1\47\1\34\2\53\1\23\1\50\1\40\1\41\1\33\1\10\1\3\1\27\1\26\1\51\12\46\1\11\1\53\1\21\1\22\1\25\2\53\10\45\1\36\11\45\1\37\7\45\1\13\1\53\1\14\1\32\1\45\1\53\1\5\2\45\1\16\1\1\1\12\2\45\1\7\2\45\1\43\1\44\1\30\1\20\1\15\1\45\1\42\1\6\1\45\1\35\5\45\1\2\1\17\1\4\1\31\uff81\53", + "\1\56\1\uffff\1\54\11\uffff\1\55", + "", + "", + "", + "\1\63\11\uffff\1\65\1\uffff\1\64", + "\1\71\3\uffff\1\66\5\uffff\1\70\5\uffff\1\67", + "\1\75\1\uffff\1\73\6\uffff\1\74\1\72", + "\1\76", + "\1\100", + "\1\103\15\uffff\1\104\5\uffff\1\102", + "", + "", + "\1\110\5\uffff\1\107", + "\1\111", + "\1\112", + "\1\114\3\uffff\1\113", + "\1\116\2\uffff\1\115", + "\1\120", + "\1\122", + "\1\124", + "\1\126", + "", + "\1\131", + "\1\133", + "", + "", + "", + "", + "\1\140", + "\1\141", + "\1\142", + "", + "", + "\1\146\17\uffff\1\145", + "\1\147", + "\1\150", + "", + "", + "\0\152", + "\0\152", + "\1\153\4\uffff\1\154", + "", + "", + "\1\156", + "\1\160\22\uffff\1\157", + "\1\161", + "", + "", + "", + "", + "\1\162", + "\1\163", + "\1\164", + "\1\165", + "\1\167\12\uffff\1\166", + "\1\170", + "\1\171", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\173", + "\1\174", + "\1\175", + "", + "", + "", + "", + "\1\176", + "\1\177", + "\1\u0080", + "", + "", + "\1\u0081", + "\1\u0082", + "\1\u0083\2\uffff\1\u0084", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u0086", + "\1\u0087", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\15\57\1\u008a\5\57\1\u0089\6\57", + "", + "", + "", + "", + "\1\u008c", + "\1\u008d", + "\1\u008e", + "", + "", + "\1\u008f", + "\1\u0090", + "\1\u0091", + "\1\u0092", + "", + "", + "", + "", + "", + "\1\u0093", + "\1\u0094", + "\1\u0095", + "\1\u0096", + "\1\u0097", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u009d", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u00a0", + "\1\u00a1", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u00a3", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u00a5", + "\1\u00a6", + "\1\u00a7", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u00ab", + "", + "\1\u00ac", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u00ae", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u00b1", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u00b4", + "\1\u00b5", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u00b7", + "", + "", + "", + "", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "", + "", + "\1\u00b9", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "", + "", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "", + "\1\u00c1", + "", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "", + "", + "\1\u00c3", + "\1\u00c4", + "", + "\1\u00c5", + "", + "\1\u00c6", + "", + "", + "", + "", + "", + "", + "", + "\1\u00c7", + "", + "\1\u00c8", + "\1\u00c9", + "\1\u00ca", + "\1\u00cb", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "\1\u00cf", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "", + "", + "", + "\1\57\4\uffff\1\57\10\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57", + "", + "" + }; + + 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='\u0000' && LA11_40<='\uFFFF')) ) {s = 106;} + + else s = 43; + + if ( s>=0 ) return s; + break; + case 1 : + int LA11_0 = input.LA(1); + + s = -1; + if ( (LA11_0=='e') ) {s = 1;} + + else if ( (LA11_0=='{') ) {s = 2;} + + else if ( (LA11_0==',') ) {s = 3;} + + else if ( (LA11_0=='}') ) {s = 4;} + + else if ( (LA11_0=='a') ) {s = 5;} + + else if ( (LA11_0=='s') ) {s = 6;} + + else if ( (LA11_0=='i') ) {s = 7;} + + else if ( (LA11_0=='+') ) {s = 8;} + + else if ( (LA11_0==':') ) {s = 9;} + + else if ( (LA11_0=='f') ) {s = 10;} + + else if ( (LA11_0=='[') ) {s = 11;} + + else if ( (LA11_0==']') ) {s = 12;} + + else if ( (LA11_0=='p') ) {s = 13;} + + else if ( (LA11_0=='d') ) {s = 14;} + + else if ( (LA11_0=='|') ) {s = 15;} + + else if ( (LA11_0=='o') ) {s = 16;} + + else if ( (LA11_0=='<') ) {s = 17;} + + else if ( (LA11_0=='=') ) {s = 18;} + + else if ( (LA11_0=='&') ) {s = 19;} + + else if ( (LA11_0=='!') ) {s = 20;} + + else if ( (LA11_0=='>') ) {s = 21;} + + else if ( (LA11_0=='.') ) {s = 22;} + + else if ( (LA11_0=='-') ) {s = 23;} + + else if ( (LA11_0=='n') ) {s = 24;} + + else if ( (LA11_0=='~') ) {s = 25;} + + else if ( (LA11_0=='^') ) {s = 26;} + + else if ( (LA11_0=='*') ) {s = 27;} + + else if ( (LA11_0=='#') ) {s = 28;} + + else if ( (LA11_0=='u') ) {s = 29;} + + else if ( (LA11_0=='I') ) {s = 30;} + + else if ( (LA11_0=='S') ) {s = 31;} + + else if ( (LA11_0=='(') ) {s = 32;} + + else if ( (LA11_0==')') ) {s = 33;} + + else if ( (LA11_0=='r') ) {s = 34;} + + else if ( (LA11_0=='l') ) {s = 35;} + + else if ( (LA11_0=='m') ) {s = 36;} + + else if ( ((LA11_0>='A' && LA11_0<='H')||(LA11_0>='J' && LA11_0<='R')||(LA11_0>='T' && LA11_0<='Z')||LA11_0=='_'||(LA11_0>='b' && LA11_0<='c')||(LA11_0>='g' && LA11_0<='h')||(LA11_0>='j' && LA11_0<='k')||LA11_0=='q'||LA11_0=='t'||(LA11_0>='v' && LA11_0<='z')) ) {s = 37;} + + else if ( ((LA11_0>='0' && LA11_0<='9')) ) {s = 38;} + + else if ( (LA11_0=='\"') ) {s = 39;} + + else if ( (LA11_0=='\'') ) {s = 40;} + + else if ( (LA11_0=='/') ) {s = 41;} + + else if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {s = 42;} + + else if ( ((LA11_0>='\u0000' && LA11_0<='\b')||(LA11_0>='\u000B' && LA11_0<='\f')||(LA11_0>='\u000E' && LA11_0<='\u001F')||(LA11_0>='$' && LA11_0<='%')||LA11_0==';'||(LA11_0>='?' && LA11_0<='@')||LA11_0=='\\'||LA11_0=='`'||(LA11_0>='\u007F' && LA11_0<='\uFFFF')) ) {s = 43;} + + if ( s>=0 ) return s; + break; + case 2 : + int LA11_39 = input.LA(1); + + s = -1; + if ( ((LA11_39>='\u0000' && LA11_39<='\uFFFF')) ) {s = 106;} + + else s = 43; + + if ( s>=0 ) return s; + break; + } + NoViableAltException nvae = + new NoViableAltException(getDescription(), 11, _s, input); + error(nvae); + throw nvae; + } + } + + +} \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguageParser.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguageParser.java new file mode 100644 index 00000000..b0bedf50 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/parser/antlr/internal/InternalAlloyLanguageParser.java @@ -0,0 +1,9153 @@ +package hu.bme.mit.inf.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.emf.common.util.Enumerator; +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 hu.bme.mit.inf.dslreasoner.services.AlloyLanguageGrammarAccess; + + + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; +@SuppressWarnings("all") +public class InternalAlloyLanguageParser extends AbstractInternalAntlrParser { + public static final String[] tokenNames = new String[] { + "", "", "", "", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'enum'", "'{'", "','", "'}'", "'abstract'", "'sig'", "'extends'", "'in'", "'+'", "':'", "'fun'", "'['", "']'", "'pred'", "'fact'", "'disj'", "'||'", "'or'", "'<=>'", "'iff'", "'=>'", "'implies'", "'else'", "'&&'", "'and'", "'='", "'!='", "'>'", "'>='", "'<'", "'<='", "'++'", "':>'", "'<:'", "'.'", "'-'", "'&'", "'->'", "'!'", "'not'", "'~'", "'^'", "'*'", "'#'", "'sum'", "'none'", "'iden'", "'univ'", "'Int'", "'String'", "'('", "')'", "'run'", "'for'", "'exactly'", "'all'", "'no'", "'some'", "'lone'", "'one'", "'set'", "'plus'", "'sub'", "'mul'", "'rem'", "'div'" + }; + public static final int T__50=50; + public static final int T__19=19; + public static final int T__15=15; + public static final int T__59=59; + public static final int T__16=16; + public static final int T__17=17; + public static final int T__18=18; + public static final int T__11=11; + public static final int T__55=55; + public static final int T__12=12; + public static final int T__56=56; + public static final int T__13=13; + public static final int T__57=57; + public static final int T__14=14; + public static final int T__58=58; + public static final int T__51=51; + public static final int T__52=52; + public static final int T__53=53; + 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=4; + public static final int T__26=26; + public static final int T__27=27; + public static final int T__28=28; + public static final int RULE_INT=5; + public static final int T__29=29; + public static final int T__22=22; + public static final int T__66=66; + public static final int RULE_ML_COMMENT=7; + public static final int T__23=23; + public static final int T__67=67; + public static final int T__24=24; + public static final int T__68=68; + public static final int T__25=25; + public static final int T__69=69; + public static final int T__62=62; + public static final int T__63=63; + public static final int T__20=20; + public static final int T__64=64; + public static final int T__21=21; + public static final int T__65=65; + public static final int T__70=70; + public static final int T__71=71; + public static final int T__72=72; + public static final int RULE_STRING=6; + public static final int RULE_SL_COMMENT=8; + 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 T__73=73; + public static final int EOF=-1; + public static final int T__30=30; + public static final int T__74=74; + public static final int T__31=31; + public static final int T__75=75; + public static final int T__32=32; + public static final int T__76=76; + public static final int RULE_WS=9; + public static final int RULE_ANY_OTHER=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 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 InternalAlloyLanguageParser(TokenStream input) { + this(input, new RecognizerSharedState()); + } + public InternalAlloyLanguageParser(TokenStream input, RecognizerSharedState state) { + super(input, state); + + } + + + public String[] getTokenNames() { return InternalAlloyLanguageParser.tokenNames; } + public String getGrammarFileName() { return "InternalAlloyLanguage.g"; } + + + + private AlloyLanguageGrammarAccess grammarAccess; + + public InternalAlloyLanguageParser(TokenStream input, AlloyLanguageGrammarAccess grammarAccess) { + this(input); + this.grammarAccess = grammarAccess; + registerRules(grammarAccess.getGrammar()); + } + + @Override + protected String getFirstRuleName() { + return "ALSDocument"; + } + + @Override + protected AlloyLanguageGrammarAccess getGrammarAccess() { + return grammarAccess; + } + + + + // $ANTLR start "entryRuleALSDocument" + // InternalAlloyLanguage.g:68:1: entryRuleALSDocument returns [EObject current=null] : iv_ruleALSDocument= ruleALSDocument EOF ; + public final EObject entryRuleALSDocument() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSDocument = null; + + + try { + // InternalAlloyLanguage.g:69:2: (iv_ruleALSDocument= ruleALSDocument EOF ) + // InternalAlloyLanguage.g:70:2: iv_ruleALSDocument= ruleALSDocument EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSDocumentRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSDocument=ruleALSDocument(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSDocument; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSDocument" + + + // $ANTLR start "ruleALSDocument" + // InternalAlloyLanguage.g:77:1: ruleALSDocument returns [EObject current=null] : ( ( ( (lv_enumDeclarations_0_0= ruleALSEnumDeclaration ) ) | ( (lv_signatureBodies_1_0= ruleALSSignatureBody ) ) | ( (lv_functionDefinitions_2_0= ruleALSFunctionDefinition ) ) | ( (lv_relationDefinitions_3_0= ruleALSRelationDefinition ) ) | ( (lv_factDeclarations_4_0= ruleALSFactDeclaration ) ) )+ ( (lv_runCommand_5_0= ruleALSRunCommand ) ) ) ; + public final EObject ruleALSDocument() throws RecognitionException { + EObject current = null; + + EObject lv_enumDeclarations_0_0 = null; + + EObject lv_signatureBodies_1_0 = null; + + EObject lv_functionDefinitions_2_0 = null; + + EObject lv_relationDefinitions_3_0 = null; + + EObject lv_factDeclarations_4_0 = null; + + EObject lv_runCommand_5_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:80:28: ( ( ( ( (lv_enumDeclarations_0_0= ruleALSEnumDeclaration ) ) | ( (lv_signatureBodies_1_0= ruleALSSignatureBody ) ) | ( (lv_functionDefinitions_2_0= ruleALSFunctionDefinition ) ) | ( (lv_relationDefinitions_3_0= ruleALSRelationDefinition ) ) | ( (lv_factDeclarations_4_0= ruleALSFactDeclaration ) ) )+ ( (lv_runCommand_5_0= ruleALSRunCommand ) ) ) ) + // InternalAlloyLanguage.g:81:1: ( ( ( (lv_enumDeclarations_0_0= ruleALSEnumDeclaration ) ) | ( (lv_signatureBodies_1_0= ruleALSSignatureBody ) ) | ( (lv_functionDefinitions_2_0= ruleALSFunctionDefinition ) ) | ( (lv_relationDefinitions_3_0= ruleALSRelationDefinition ) ) | ( (lv_factDeclarations_4_0= ruleALSFactDeclaration ) ) )+ ( (lv_runCommand_5_0= ruleALSRunCommand ) ) ) + { + // InternalAlloyLanguage.g:81:1: ( ( ( (lv_enumDeclarations_0_0= ruleALSEnumDeclaration ) ) | ( (lv_signatureBodies_1_0= ruleALSSignatureBody ) ) | ( (lv_functionDefinitions_2_0= ruleALSFunctionDefinition ) ) | ( (lv_relationDefinitions_3_0= ruleALSRelationDefinition ) ) | ( (lv_factDeclarations_4_0= ruleALSFactDeclaration ) ) )+ ( (lv_runCommand_5_0= ruleALSRunCommand ) ) ) + // InternalAlloyLanguage.g:81:2: ( ( (lv_enumDeclarations_0_0= ruleALSEnumDeclaration ) ) | ( (lv_signatureBodies_1_0= ruleALSSignatureBody ) ) | ( (lv_functionDefinitions_2_0= ruleALSFunctionDefinition ) ) | ( (lv_relationDefinitions_3_0= ruleALSRelationDefinition ) ) | ( (lv_factDeclarations_4_0= ruleALSFactDeclaration ) ) )+ ( (lv_runCommand_5_0= ruleALSRunCommand ) ) + { + // InternalAlloyLanguage.g:81:2: ( ( (lv_enumDeclarations_0_0= ruleALSEnumDeclaration ) ) | ( (lv_signatureBodies_1_0= ruleALSSignatureBody ) ) | ( (lv_functionDefinitions_2_0= ruleALSFunctionDefinition ) ) | ( (lv_relationDefinitions_3_0= ruleALSRelationDefinition ) ) | ( (lv_factDeclarations_4_0= ruleALSFactDeclaration ) ) )+ + int cnt1=0; + loop1: + do { + int alt1=6; + switch ( input.LA(1) ) { + case 11: + { + alt1=1; + } + break; + case 15: + case 16: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + { + alt1=2; + } + break; + case 21: + { + alt1=3; + } + break; + case 24: + { + alt1=4; + } + break; + case 25: + { + alt1=5; + } + break; + + } + + switch (alt1) { + case 1 : + // InternalAlloyLanguage.g:81:3: ( (lv_enumDeclarations_0_0= ruleALSEnumDeclaration ) ) + { + // InternalAlloyLanguage.g:81:3: ( (lv_enumDeclarations_0_0= ruleALSEnumDeclaration ) ) + // InternalAlloyLanguage.g:82:1: (lv_enumDeclarations_0_0= ruleALSEnumDeclaration ) + { + // InternalAlloyLanguage.g:82:1: (lv_enumDeclarations_0_0= ruleALSEnumDeclaration ) + // InternalAlloyLanguage.g:83:3: lv_enumDeclarations_0_0= ruleALSEnumDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSDocumentAccess().getEnumDeclarationsALSEnumDeclarationParserRuleCall_0_0_0()); + + } + pushFollow(FOLLOW_3); + lv_enumDeclarations_0_0=ruleALSEnumDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSDocumentRule()); + } + add( + current, + "enumDeclarations", + lv_enumDeclarations_0_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSEnumDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:100:6: ( (lv_signatureBodies_1_0= ruleALSSignatureBody ) ) + { + // InternalAlloyLanguage.g:100:6: ( (lv_signatureBodies_1_0= ruleALSSignatureBody ) ) + // InternalAlloyLanguage.g:101:1: (lv_signatureBodies_1_0= ruleALSSignatureBody ) + { + // InternalAlloyLanguage.g:101:1: (lv_signatureBodies_1_0= ruleALSSignatureBody ) + // InternalAlloyLanguage.g:102:3: lv_signatureBodies_1_0= ruleALSSignatureBody + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSDocumentAccess().getSignatureBodiesALSSignatureBodyParserRuleCall_0_1_0()); + + } + pushFollow(FOLLOW_3); + lv_signatureBodies_1_0=ruleALSSignatureBody(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSDocumentRule()); + } + add( + current, + "signatureBodies", + lv_signatureBodies_1_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSSignatureBody"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + case 3 : + // InternalAlloyLanguage.g:119:6: ( (lv_functionDefinitions_2_0= ruleALSFunctionDefinition ) ) + { + // InternalAlloyLanguage.g:119:6: ( (lv_functionDefinitions_2_0= ruleALSFunctionDefinition ) ) + // InternalAlloyLanguage.g:120:1: (lv_functionDefinitions_2_0= ruleALSFunctionDefinition ) + { + // InternalAlloyLanguage.g:120:1: (lv_functionDefinitions_2_0= ruleALSFunctionDefinition ) + // InternalAlloyLanguage.g:121:3: lv_functionDefinitions_2_0= ruleALSFunctionDefinition + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSDocumentAccess().getFunctionDefinitionsALSFunctionDefinitionParserRuleCall_0_2_0()); + + } + pushFollow(FOLLOW_3); + lv_functionDefinitions_2_0=ruleALSFunctionDefinition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSDocumentRule()); + } + add( + current, + "functionDefinitions", + lv_functionDefinitions_2_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSFunctionDefinition"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + case 4 : + // InternalAlloyLanguage.g:138:6: ( (lv_relationDefinitions_3_0= ruleALSRelationDefinition ) ) + { + // InternalAlloyLanguage.g:138:6: ( (lv_relationDefinitions_3_0= ruleALSRelationDefinition ) ) + // InternalAlloyLanguage.g:139:1: (lv_relationDefinitions_3_0= ruleALSRelationDefinition ) + { + // InternalAlloyLanguage.g:139:1: (lv_relationDefinitions_3_0= ruleALSRelationDefinition ) + // InternalAlloyLanguage.g:140:3: lv_relationDefinitions_3_0= ruleALSRelationDefinition + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSDocumentAccess().getRelationDefinitionsALSRelationDefinitionParserRuleCall_0_3_0()); + + } + pushFollow(FOLLOW_3); + lv_relationDefinitions_3_0=ruleALSRelationDefinition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSDocumentRule()); + } + add( + current, + "relationDefinitions", + lv_relationDefinitions_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSRelationDefinition"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + case 5 : + // InternalAlloyLanguage.g:157:6: ( (lv_factDeclarations_4_0= ruleALSFactDeclaration ) ) + { + // InternalAlloyLanguage.g:157:6: ( (lv_factDeclarations_4_0= ruleALSFactDeclaration ) ) + // InternalAlloyLanguage.g:158:1: (lv_factDeclarations_4_0= ruleALSFactDeclaration ) + { + // InternalAlloyLanguage.g:158:1: (lv_factDeclarations_4_0= ruleALSFactDeclaration ) + // InternalAlloyLanguage.g:159:3: lv_factDeclarations_4_0= ruleALSFactDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSDocumentAccess().getFactDeclarationsALSFactDeclarationParserRuleCall_0_4_0()); + + } + pushFollow(FOLLOW_3); + lv_factDeclarations_4_0=ruleALSFactDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSDocumentRule()); + } + add( + current, + "factDeclarations", + lv_factDeclarations_4_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSFactDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + if ( cnt1 >= 1 ) break loop1; + if (state.backtracking>0) {state.failed=true; return current;} + EarlyExitException eee = + new EarlyExitException(1, input); + throw eee; + } + cnt1++; + } while (true); + + // InternalAlloyLanguage.g:175:4: ( (lv_runCommand_5_0= ruleALSRunCommand ) ) + // InternalAlloyLanguage.g:176:1: (lv_runCommand_5_0= ruleALSRunCommand ) + { + // InternalAlloyLanguage.g:176:1: (lv_runCommand_5_0= ruleALSRunCommand ) + // InternalAlloyLanguage.g:177:3: lv_runCommand_5_0= ruleALSRunCommand + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSDocumentAccess().getRunCommandALSRunCommandParserRuleCall_1_0()); + + } + pushFollow(FOLLOW_2); + lv_runCommand_5_0=ruleALSRunCommand(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSDocumentRule()); + } + set( + current, + "runCommand", + lv_runCommand_5_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSRunCommand"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSDocument" + + + // $ANTLR start "entryRuleALSID" + // InternalAlloyLanguage.g:201:1: entryRuleALSID returns [String current=null] : iv_ruleALSID= ruleALSID EOF ; + public final String entryRuleALSID() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleALSID = null; + + + try { + // InternalAlloyLanguage.g:202:2: (iv_ruleALSID= ruleALSID EOF ) + // InternalAlloyLanguage.g:203:2: iv_ruleALSID= ruleALSID EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSIDRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSID=ruleALSID(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSID.getText(); + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSID" + + + // $ANTLR start "ruleALSID" + // InternalAlloyLanguage.g:210:1: ruleALSID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ; + public final AntlrDatatypeRuleToken ruleALSID() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token this_ID_0=null; + + enterRule(); + + try { + // InternalAlloyLanguage.g:213:28: (this_ID_0= RULE_ID ) + // InternalAlloyLanguage.g:214:5: this_ID_0= RULE_ID + { + this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current.merge(this_ID_0); + + } + if ( state.backtracking==0 ) { + + newLeafNode(this_ID_0, grammarAccess.getALSIDAccess().getIDTerminalRuleCall()); + + } + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSID" + + + // $ANTLR start "entryRuleALSTypeDeclaration" + // InternalAlloyLanguage.g:231:1: entryRuleALSTypeDeclaration returns [EObject current=null] : iv_ruleALSTypeDeclaration= ruleALSTypeDeclaration EOF ; + public final EObject entryRuleALSTypeDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSTypeDeclaration = null; + + + try { + // InternalAlloyLanguage.g:232:2: (iv_ruleALSTypeDeclaration= ruleALSTypeDeclaration EOF ) + // InternalAlloyLanguage.g:233:2: iv_ruleALSTypeDeclaration= ruleALSTypeDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSTypeDeclarationRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSTypeDeclaration=ruleALSTypeDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSTypeDeclaration; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSTypeDeclaration" + + + // $ANTLR start "ruleALSTypeDeclaration" + // InternalAlloyLanguage.g:240:1: ruleALSTypeDeclaration returns [EObject current=null] : (this_ALSEnumDeclaration_0= ruleALSEnumDeclaration | this_ALSSignatureDeclaration_1= ruleALSSignatureDeclaration ) ; + public final EObject ruleALSTypeDeclaration() throws RecognitionException { + EObject current = null; + + EObject this_ALSEnumDeclaration_0 = null; + + EObject this_ALSSignatureDeclaration_1 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:243:28: ( (this_ALSEnumDeclaration_0= ruleALSEnumDeclaration | this_ALSSignatureDeclaration_1= ruleALSSignatureDeclaration ) ) + // InternalAlloyLanguage.g:244:1: (this_ALSEnumDeclaration_0= ruleALSEnumDeclaration | this_ALSSignatureDeclaration_1= ruleALSSignatureDeclaration ) + { + // InternalAlloyLanguage.g:244:1: (this_ALSEnumDeclaration_0= ruleALSEnumDeclaration | this_ALSSignatureDeclaration_1= ruleALSSignatureDeclaration ) + int alt2=2; + int LA2_0 = input.LA(1); + + if ( (LA2_0==11) ) { + alt2=1; + } + else if ( (LA2_0==RULE_ID) ) { + alt2=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 2, 0, input); + + throw nvae; + } + switch (alt2) { + case 1 : + // InternalAlloyLanguage.g:245:5: this_ALSEnumDeclaration_0= ruleALSEnumDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSTypeDeclarationAccess().getALSEnumDeclarationParserRuleCall_0()); + + } + pushFollow(FOLLOW_2); + this_ALSEnumDeclaration_0=ruleALSEnumDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSEnumDeclaration_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalAlloyLanguage.g:255:5: this_ALSSignatureDeclaration_1= ruleALSSignatureDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSTypeDeclarationAccess().getALSSignatureDeclarationParserRuleCall_1()); + + } + pushFollow(FOLLOW_2); + this_ALSSignatureDeclaration_1=ruleALSSignatureDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSSignatureDeclaration_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSTypeDeclaration" + + + // $ANTLR start "entryRuleALSEnumDeclaration" + // InternalAlloyLanguage.g:271:1: entryRuleALSEnumDeclaration returns [EObject current=null] : iv_ruleALSEnumDeclaration= ruleALSEnumDeclaration EOF ; + public final EObject entryRuleALSEnumDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSEnumDeclaration = null; + + + try { + // InternalAlloyLanguage.g:272:2: (iv_ruleALSEnumDeclaration= ruleALSEnumDeclaration EOF ) + // InternalAlloyLanguage.g:273:2: iv_ruleALSEnumDeclaration= ruleALSEnumDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSEnumDeclarationRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSEnumDeclaration=ruleALSEnumDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSEnumDeclaration; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSEnumDeclaration" + + + // $ANTLR start "ruleALSEnumDeclaration" + // InternalAlloyLanguage.g:280:1: ruleALSEnumDeclaration returns [EObject current=null] : (otherlv_0= 'enum' ( (lv_name_1_0= ruleALSID ) ) otherlv_2= '{' ( (lv_literal_3_0= ruleALSEnumLiteral ) ) (otherlv_4= ',' ( (lv_literal_5_0= ruleALSEnumLiteral ) ) )* otherlv_6= '}' ) ; + public final EObject ruleALSEnumDeclaration() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + AntlrDatatypeRuleToken lv_name_1_0 = null; + + EObject lv_literal_3_0 = null; + + EObject lv_literal_5_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:283:28: ( (otherlv_0= 'enum' ( (lv_name_1_0= ruleALSID ) ) otherlv_2= '{' ( (lv_literal_3_0= ruleALSEnumLiteral ) ) (otherlv_4= ',' ( (lv_literal_5_0= ruleALSEnumLiteral ) ) )* otherlv_6= '}' ) ) + // InternalAlloyLanguage.g:284:1: (otherlv_0= 'enum' ( (lv_name_1_0= ruleALSID ) ) otherlv_2= '{' ( (lv_literal_3_0= ruleALSEnumLiteral ) ) (otherlv_4= ',' ( (lv_literal_5_0= ruleALSEnumLiteral ) ) )* otherlv_6= '}' ) + { + // InternalAlloyLanguage.g:284:1: (otherlv_0= 'enum' ( (lv_name_1_0= ruleALSID ) ) otherlv_2= '{' ( (lv_literal_3_0= ruleALSEnumLiteral ) ) (otherlv_4= ',' ( (lv_literal_5_0= ruleALSEnumLiteral ) ) )* otherlv_6= '}' ) + // InternalAlloyLanguage.g:284:3: otherlv_0= 'enum' ( (lv_name_1_0= ruleALSID ) ) otherlv_2= '{' ( (lv_literal_3_0= ruleALSEnumLiteral ) ) (otherlv_4= ',' ( (lv_literal_5_0= ruleALSEnumLiteral ) ) )* otherlv_6= '}' + { + otherlv_0=(Token)match(input,11,FOLLOW_4); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getALSEnumDeclarationAccess().getEnumKeyword_0()); + + } + // InternalAlloyLanguage.g:288:1: ( (lv_name_1_0= ruleALSID ) ) + // InternalAlloyLanguage.g:289:1: (lv_name_1_0= ruleALSID ) + { + // InternalAlloyLanguage.g:289:1: (lv_name_1_0= ruleALSID ) + // InternalAlloyLanguage.g:290:3: lv_name_1_0= ruleALSID + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSEnumDeclarationAccess().getNameALSIDParserRuleCall_1_0()); + + } + pushFollow(FOLLOW_5); + lv_name_1_0=ruleALSID(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSEnumDeclarationRule()); + } + set( + current, + "name", + lv_name_1_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSID"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_2=(Token)match(input,12,FOLLOW_4); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getALSEnumDeclarationAccess().getLeftCurlyBracketKeyword_2()); + + } + // InternalAlloyLanguage.g:310:1: ( (lv_literal_3_0= ruleALSEnumLiteral ) ) + // InternalAlloyLanguage.g:311:1: (lv_literal_3_0= ruleALSEnumLiteral ) + { + // InternalAlloyLanguage.g:311:1: (lv_literal_3_0= ruleALSEnumLiteral ) + // InternalAlloyLanguage.g:312:3: lv_literal_3_0= ruleALSEnumLiteral + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSEnumDeclarationAccess().getLiteralALSEnumLiteralParserRuleCall_3_0()); + + } + pushFollow(FOLLOW_6); + lv_literal_3_0=ruleALSEnumLiteral(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSEnumDeclarationRule()); + } + add( + current, + "literal", + lv_literal_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSEnumLiteral"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalAlloyLanguage.g:328:2: (otherlv_4= ',' ( (lv_literal_5_0= ruleALSEnumLiteral ) ) )* + loop3: + do { + int alt3=2; + int LA3_0 = input.LA(1); + + if ( (LA3_0==13) ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // InternalAlloyLanguage.g:328:4: otherlv_4= ',' ( (lv_literal_5_0= ruleALSEnumLiteral ) ) + { + otherlv_4=(Token)match(input,13,FOLLOW_4); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getALSEnumDeclarationAccess().getCommaKeyword_4_0()); + + } + // InternalAlloyLanguage.g:332:1: ( (lv_literal_5_0= ruleALSEnumLiteral ) ) + // InternalAlloyLanguage.g:333:1: (lv_literal_5_0= ruleALSEnumLiteral ) + { + // InternalAlloyLanguage.g:333:1: (lv_literal_5_0= ruleALSEnumLiteral ) + // InternalAlloyLanguage.g:334:3: lv_literal_5_0= ruleALSEnumLiteral + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSEnumDeclarationAccess().getLiteralALSEnumLiteralParserRuleCall_4_1_0()); + + } + pushFollow(FOLLOW_6); + lv_literal_5_0=ruleALSEnumLiteral(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSEnumDeclarationRule()); + } + add( + current, + "literal", + lv_literal_5_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSEnumLiteral"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop3; + } + } while (true); + + otherlv_6=(Token)match(input,14,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getALSEnumDeclarationAccess().getRightCurlyBracketKeyword_5()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSEnumDeclaration" + + + // $ANTLR start "entryRuleALSEnumLiteral" + // InternalAlloyLanguage.g:362:1: entryRuleALSEnumLiteral returns [EObject current=null] : iv_ruleALSEnumLiteral= ruleALSEnumLiteral EOF ; + public final EObject entryRuleALSEnumLiteral() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSEnumLiteral = null; + + + try { + // InternalAlloyLanguage.g:363:2: (iv_ruleALSEnumLiteral= ruleALSEnumLiteral EOF ) + // InternalAlloyLanguage.g:364:2: iv_ruleALSEnumLiteral= ruleALSEnumLiteral EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSEnumLiteralRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSEnumLiteral=ruleALSEnumLiteral(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSEnumLiteral; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSEnumLiteral" + + + // $ANTLR start "ruleALSEnumLiteral" + // InternalAlloyLanguage.g:371:1: ruleALSEnumLiteral returns [EObject current=null] : ( (lv_name_0_0= ruleALSID ) ) ; + public final EObject ruleALSEnumLiteral() throws RecognitionException { + EObject current = null; + + AntlrDatatypeRuleToken lv_name_0_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:374:28: ( ( (lv_name_0_0= ruleALSID ) ) ) + // InternalAlloyLanguage.g:375:1: ( (lv_name_0_0= ruleALSID ) ) + { + // InternalAlloyLanguage.g:375:1: ( (lv_name_0_0= ruleALSID ) ) + // InternalAlloyLanguage.g:376:1: (lv_name_0_0= ruleALSID ) + { + // InternalAlloyLanguage.g:376:1: (lv_name_0_0= ruleALSID ) + // InternalAlloyLanguage.g:377:3: lv_name_0_0= ruleALSID + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSEnumLiteralAccess().getNameALSIDParserRuleCall_0()); + + } + pushFollow(FOLLOW_2); + lv_name_0_0=ruleALSID(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSEnumLiteralRule()); + } + set( + current, + "name", + lv_name_0_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSID"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSEnumLiteral" + + + // $ANTLR start "entryRuleALSSignatureDeclaration" + // InternalAlloyLanguage.g:401:1: entryRuleALSSignatureDeclaration returns [EObject current=null] : iv_ruleALSSignatureDeclaration= ruleALSSignatureDeclaration EOF ; + public final EObject entryRuleALSSignatureDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSSignatureDeclaration = null; + + + try { + // InternalAlloyLanguage.g:402:2: (iv_ruleALSSignatureDeclaration= ruleALSSignatureDeclaration EOF ) + // InternalAlloyLanguage.g:403:2: iv_ruleALSSignatureDeclaration= ruleALSSignatureDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSSignatureDeclarationRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSSignatureDeclaration=ruleALSSignatureDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSSignatureDeclaration; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSSignatureDeclaration" + + + // $ANTLR start "ruleALSSignatureDeclaration" + // InternalAlloyLanguage.g:410:1: ruleALSSignatureDeclaration returns [EObject current=null] : ( (lv_name_0_0= ruleALSID ) ) ; + public final EObject ruleALSSignatureDeclaration() throws RecognitionException { + EObject current = null; + + AntlrDatatypeRuleToken lv_name_0_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:413:28: ( ( (lv_name_0_0= ruleALSID ) ) ) + // InternalAlloyLanguage.g:414:1: ( (lv_name_0_0= ruleALSID ) ) + { + // InternalAlloyLanguage.g:414:1: ( (lv_name_0_0= ruleALSID ) ) + // InternalAlloyLanguage.g:415:1: (lv_name_0_0= ruleALSID ) + { + // InternalAlloyLanguage.g:415:1: (lv_name_0_0= ruleALSID ) + // InternalAlloyLanguage.g:416:3: lv_name_0_0= ruleALSID + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSSignatureDeclarationAccess().getNameALSIDParserRuleCall_0()); + + } + pushFollow(FOLLOW_2); + lv_name_0_0=ruleALSID(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSSignatureDeclarationRule()); + } + set( + current, + "name", + lv_name_0_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSID"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSSignatureDeclaration" + + + // $ANTLR start "entryRuleALSSignatureBody" + // InternalAlloyLanguage.g:440:1: entryRuleALSSignatureBody returns [EObject current=null] : iv_ruleALSSignatureBody= ruleALSSignatureBody EOF ; + public final EObject entryRuleALSSignatureBody() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSSignatureBody = null; + + + try { + // InternalAlloyLanguage.g:441:2: (iv_ruleALSSignatureBody= ruleALSSignatureBody EOF ) + // InternalAlloyLanguage.g:442:2: iv_ruleALSSignatureBody= ruleALSSignatureBody EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSSignatureBodyRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSSignatureBody=ruleALSSignatureBody(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSSignatureBody; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSSignatureBody" + + + // $ANTLR start "ruleALSSignatureBody" + // InternalAlloyLanguage.g:449:1: ruleALSSignatureBody returns [EObject current=null] : ( ( ( ( ( ({...}? => ( ({...}? => ( (lv_multiplicity_1_0= ruleALSMultiplicity ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_abstract_2_0= 'abstract' ) ) ) ) ) )* ) ) ) otherlv_3= 'sig' ( (lv_declarations_4_0= ruleALSSignatureDeclaration ) ) (otherlv_5= ',' ( (lv_declarations_6_0= ruleALSSignatureDeclaration ) ) )* ( (otherlv_7= 'extends' ( (otherlv_8= RULE_ID ) ) ) | (otherlv_9= 'in' ( (otherlv_10= RULE_ID ) ) (otherlv_11= '+' ( (otherlv_12= RULE_ID ) ) )* ) )? otherlv_13= '{' ( ( (lv_fields_14_0= ruleALSFieldDeclaration ) ) (otherlv_15= ',' ( (lv_fields_16_0= ruleALSFieldDeclaration ) ) )* )? otherlv_17= '}' ) ; + public final EObject ruleALSSignatureBody() throws RecognitionException { + EObject current = null; + + Token lv_abstract_2_0=null; + Token otherlv_3=null; + Token otherlv_5=null; + Token otherlv_7=null; + Token otherlv_8=null; + Token otherlv_9=null; + Token otherlv_10=null; + Token otherlv_11=null; + Token otherlv_12=null; + Token otherlv_13=null; + Token otherlv_15=null; + Token otherlv_17=null; + Enumerator lv_multiplicity_1_0 = null; + + EObject lv_declarations_4_0 = null; + + EObject lv_declarations_6_0 = null; + + EObject lv_fields_14_0 = null; + + EObject lv_fields_16_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:452:28: ( ( ( ( ( ( ({...}? => ( ({...}? => ( (lv_multiplicity_1_0= ruleALSMultiplicity ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_abstract_2_0= 'abstract' ) ) ) ) ) )* ) ) ) otherlv_3= 'sig' ( (lv_declarations_4_0= ruleALSSignatureDeclaration ) ) (otherlv_5= ',' ( (lv_declarations_6_0= ruleALSSignatureDeclaration ) ) )* ( (otherlv_7= 'extends' ( (otherlv_8= RULE_ID ) ) ) | (otherlv_9= 'in' ( (otherlv_10= RULE_ID ) ) (otherlv_11= '+' ( (otherlv_12= RULE_ID ) ) )* ) )? otherlv_13= '{' ( ( (lv_fields_14_0= ruleALSFieldDeclaration ) ) (otherlv_15= ',' ( (lv_fields_16_0= ruleALSFieldDeclaration ) ) )* )? otherlv_17= '}' ) ) + // InternalAlloyLanguage.g:453:1: ( ( ( ( ( ({...}? => ( ({...}? => ( (lv_multiplicity_1_0= ruleALSMultiplicity ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_abstract_2_0= 'abstract' ) ) ) ) ) )* ) ) ) otherlv_3= 'sig' ( (lv_declarations_4_0= ruleALSSignatureDeclaration ) ) (otherlv_5= ',' ( (lv_declarations_6_0= ruleALSSignatureDeclaration ) ) )* ( (otherlv_7= 'extends' ( (otherlv_8= RULE_ID ) ) ) | (otherlv_9= 'in' ( (otherlv_10= RULE_ID ) ) (otherlv_11= '+' ( (otherlv_12= RULE_ID ) ) )* ) )? otherlv_13= '{' ( ( (lv_fields_14_0= ruleALSFieldDeclaration ) ) (otherlv_15= ',' ( (lv_fields_16_0= ruleALSFieldDeclaration ) ) )* )? otherlv_17= '}' ) + { + // InternalAlloyLanguage.g:453:1: ( ( ( ( ( ({...}? => ( ({...}? => ( (lv_multiplicity_1_0= ruleALSMultiplicity ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_abstract_2_0= 'abstract' ) ) ) ) ) )* ) ) ) otherlv_3= 'sig' ( (lv_declarations_4_0= ruleALSSignatureDeclaration ) ) (otherlv_5= ',' ( (lv_declarations_6_0= ruleALSSignatureDeclaration ) ) )* ( (otherlv_7= 'extends' ( (otherlv_8= RULE_ID ) ) ) | (otherlv_9= 'in' ( (otherlv_10= RULE_ID ) ) (otherlv_11= '+' ( (otherlv_12= RULE_ID ) ) )* ) )? otherlv_13= '{' ( ( (lv_fields_14_0= ruleALSFieldDeclaration ) ) (otherlv_15= ',' ( (lv_fields_16_0= ruleALSFieldDeclaration ) ) )* )? otherlv_17= '}' ) + // InternalAlloyLanguage.g:453:2: ( ( ( ( ({...}? => ( ({...}? => ( (lv_multiplicity_1_0= ruleALSMultiplicity ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_abstract_2_0= 'abstract' ) ) ) ) ) )* ) ) ) otherlv_3= 'sig' ( (lv_declarations_4_0= ruleALSSignatureDeclaration ) ) (otherlv_5= ',' ( (lv_declarations_6_0= ruleALSSignatureDeclaration ) ) )* ( (otherlv_7= 'extends' ( (otherlv_8= RULE_ID ) ) ) | (otherlv_9= 'in' ( (otherlv_10= RULE_ID ) ) (otherlv_11= '+' ( (otherlv_12= RULE_ID ) ) )* ) )? otherlv_13= '{' ( ( (lv_fields_14_0= ruleALSFieldDeclaration ) ) (otherlv_15= ',' ( (lv_fields_16_0= ruleALSFieldDeclaration ) ) )* )? otherlv_17= '}' + { + // InternalAlloyLanguage.g:453:2: ( ( ( ( ({...}? => ( ({...}? => ( (lv_multiplicity_1_0= ruleALSMultiplicity ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_abstract_2_0= 'abstract' ) ) ) ) ) )* ) ) ) + // InternalAlloyLanguage.g:455:1: ( ( ( ({...}? => ( ({...}? => ( (lv_multiplicity_1_0= ruleALSMultiplicity ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_abstract_2_0= 'abstract' ) ) ) ) ) )* ) ) + { + // InternalAlloyLanguage.g:455:1: ( ( ( ({...}? => ( ({...}? => ( (lv_multiplicity_1_0= ruleALSMultiplicity ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_abstract_2_0= 'abstract' ) ) ) ) ) )* ) ) + // InternalAlloyLanguage.g:456:2: ( ( ({...}? => ( ({...}? => ( (lv_multiplicity_1_0= ruleALSMultiplicity ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_abstract_2_0= 'abstract' ) ) ) ) ) )* ) + { + getUnorderedGroupHelper().enter(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0()); + // InternalAlloyLanguage.g:459:2: ( ( ({...}? => ( ({...}? => ( (lv_multiplicity_1_0= ruleALSMultiplicity ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_abstract_2_0= 'abstract' ) ) ) ) ) )* ) + // InternalAlloyLanguage.g:460:3: ( ({...}? => ( ({...}? => ( (lv_multiplicity_1_0= ruleALSMultiplicity ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_abstract_2_0= 'abstract' ) ) ) ) ) )* + { + // InternalAlloyLanguage.g:460:3: ( ({...}? => ( ({...}? => ( (lv_multiplicity_1_0= ruleALSMultiplicity ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_abstract_2_0= 'abstract' ) ) ) ) ) )* + loop4: + do { + int alt4=3; + int LA4_0 = input.LA(1); + + if ( LA4_0 >= 66 && LA4_0 <= 71 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + alt4=1; + } + else if ( LA4_0 == 15 && getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 1) ) { + alt4=2; + } + + + switch (alt4) { + case 1 : + // InternalAlloyLanguage.g:462:4: ({...}? => ( ({...}? => ( (lv_multiplicity_1_0= ruleALSMultiplicity ) ) ) ) ) + { + // InternalAlloyLanguage.g:462:4: ({...}? => ( ({...}? => ( (lv_multiplicity_1_0= ruleALSMultiplicity ) ) ) ) ) + // InternalAlloyLanguage.g:463:5: {...}? => ( ({...}? => ( (lv_multiplicity_1_0= ruleALSMultiplicity ) ) ) ) + { + if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0) ) { + if (state.backtracking>0) {state.failed=true; return current;} + throw new FailedPredicateException(input, "ruleALSSignatureBody", "getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0)"); + } + // InternalAlloyLanguage.g:463:113: ( ({...}? => ( (lv_multiplicity_1_0= ruleALSMultiplicity ) ) ) ) + // InternalAlloyLanguage.g:464:6: ({...}? => ( (lv_multiplicity_1_0= ruleALSMultiplicity ) ) ) + { + getUnorderedGroupHelper().select(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 0); + // InternalAlloyLanguage.g:467:6: ({...}? => ( (lv_multiplicity_1_0= ruleALSMultiplicity ) ) ) + // InternalAlloyLanguage.g:467:7: {...}? => ( (lv_multiplicity_1_0= ruleALSMultiplicity ) ) + { + if ( !((true)) ) { + if (state.backtracking>0) {state.failed=true; return current;} + throw new FailedPredicateException(input, "ruleALSSignatureBody", "true"); + } + // InternalAlloyLanguage.g:467:16: ( (lv_multiplicity_1_0= ruleALSMultiplicity ) ) + // InternalAlloyLanguage.g:468:1: (lv_multiplicity_1_0= ruleALSMultiplicity ) + { + // InternalAlloyLanguage.g:468:1: (lv_multiplicity_1_0= ruleALSMultiplicity ) + // InternalAlloyLanguage.g:469:3: lv_multiplicity_1_0= ruleALSMultiplicity + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSSignatureBodyAccess().getMultiplicityALSMultiplicityEnumRuleCall_0_0_0()); + + } + pushFollow(FOLLOW_7); + lv_multiplicity_1_0=ruleALSMultiplicity(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSSignatureBodyRule()); + } + set( + current, + "multiplicity", + lv_multiplicity_1_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSMultiplicity"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + getUnorderedGroupHelper().returnFromSelection(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0()); + + } + + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:492:4: ({...}? => ( ({...}? => ( (lv_abstract_2_0= 'abstract' ) ) ) ) ) + { + // InternalAlloyLanguage.g:492:4: ({...}? => ( ({...}? => ( (lv_abstract_2_0= 'abstract' ) ) ) ) ) + // InternalAlloyLanguage.g:493:5: {...}? => ( ({...}? => ( (lv_abstract_2_0= 'abstract' ) ) ) ) + { + if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 1) ) { + if (state.backtracking>0) {state.failed=true; return current;} + throw new FailedPredicateException(input, "ruleALSSignatureBody", "getUnorderedGroupHelper().canSelect(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 1)"); + } + // InternalAlloyLanguage.g:493:113: ( ({...}? => ( (lv_abstract_2_0= 'abstract' ) ) ) ) + // InternalAlloyLanguage.g:494:6: ({...}? => ( (lv_abstract_2_0= 'abstract' ) ) ) + { + getUnorderedGroupHelper().select(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0(), 1); + // InternalAlloyLanguage.g:497:6: ({...}? => ( (lv_abstract_2_0= 'abstract' ) ) ) + // InternalAlloyLanguage.g:497:7: {...}? => ( (lv_abstract_2_0= 'abstract' ) ) + { + if ( !((true)) ) { + if (state.backtracking>0) {state.failed=true; return current;} + throw new FailedPredicateException(input, "ruleALSSignatureBody", "true"); + } + // InternalAlloyLanguage.g:497:16: ( (lv_abstract_2_0= 'abstract' ) ) + // InternalAlloyLanguage.g:498:1: (lv_abstract_2_0= 'abstract' ) + { + // InternalAlloyLanguage.g:498:1: (lv_abstract_2_0= 'abstract' ) + // InternalAlloyLanguage.g:499:3: lv_abstract_2_0= 'abstract' + { + lv_abstract_2_0=(Token)match(input,15,FOLLOW_7); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_abstract_2_0, grammarAccess.getALSSignatureBodyAccess().getAbstractAbstractKeyword_0_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getALSSignatureBodyRule()); + } + setWithLastConsumed(current, "abstract", true, "abstract"); + + } + + } + + + } + + + } + + getUnorderedGroupHelper().returnFromSelection(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0()); + + } + + + } + + + } + break; + + default : + break loop4; + } + } while (true); + + + } + + + } + + getUnorderedGroupHelper().leave(grammarAccess.getALSSignatureBodyAccess().getUnorderedGroup_0()); + + } + + otherlv_3=(Token)match(input,16,FOLLOW_4); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getALSSignatureBodyAccess().getSigKeyword_1()); + + } + // InternalAlloyLanguage.g:530:1: ( (lv_declarations_4_0= ruleALSSignatureDeclaration ) ) + // InternalAlloyLanguage.g:531:1: (lv_declarations_4_0= ruleALSSignatureDeclaration ) + { + // InternalAlloyLanguage.g:531:1: (lv_declarations_4_0= ruleALSSignatureDeclaration ) + // InternalAlloyLanguage.g:532:3: lv_declarations_4_0= ruleALSSignatureDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSSignatureBodyAccess().getDeclarationsALSSignatureDeclarationParserRuleCall_2_0()); + + } + pushFollow(FOLLOW_8); + lv_declarations_4_0=ruleALSSignatureDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSSignatureBodyRule()); + } + add( + current, + "declarations", + lv_declarations_4_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSSignatureDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalAlloyLanguage.g:548:2: (otherlv_5= ',' ( (lv_declarations_6_0= ruleALSSignatureDeclaration ) ) )* + loop5: + do { + int alt5=2; + int LA5_0 = input.LA(1); + + if ( (LA5_0==13) ) { + alt5=1; + } + + + switch (alt5) { + case 1 : + // InternalAlloyLanguage.g:548:4: otherlv_5= ',' ( (lv_declarations_6_0= ruleALSSignatureDeclaration ) ) + { + otherlv_5=(Token)match(input,13,FOLLOW_4); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getALSSignatureBodyAccess().getCommaKeyword_3_0()); + + } + // InternalAlloyLanguage.g:552:1: ( (lv_declarations_6_0= ruleALSSignatureDeclaration ) ) + // InternalAlloyLanguage.g:553:1: (lv_declarations_6_0= ruleALSSignatureDeclaration ) + { + // InternalAlloyLanguage.g:553:1: (lv_declarations_6_0= ruleALSSignatureDeclaration ) + // InternalAlloyLanguage.g:554:3: lv_declarations_6_0= ruleALSSignatureDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSSignatureBodyAccess().getDeclarationsALSSignatureDeclarationParserRuleCall_3_1_0()); + + } + pushFollow(FOLLOW_8); + lv_declarations_6_0=ruleALSSignatureDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSSignatureBodyRule()); + } + add( + current, + "declarations", + lv_declarations_6_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSSignatureDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop5; + } + } while (true); + + // InternalAlloyLanguage.g:570:4: ( (otherlv_7= 'extends' ( (otherlv_8= RULE_ID ) ) ) | (otherlv_9= 'in' ( (otherlv_10= RULE_ID ) ) (otherlv_11= '+' ( (otherlv_12= RULE_ID ) ) )* ) )? + int alt7=3; + int LA7_0 = input.LA(1); + + if ( (LA7_0==17) ) { + alt7=1; + } + else if ( (LA7_0==18) ) { + alt7=2; + } + switch (alt7) { + case 1 : + // InternalAlloyLanguage.g:570:5: (otherlv_7= 'extends' ( (otherlv_8= RULE_ID ) ) ) + { + // InternalAlloyLanguage.g:570:5: (otherlv_7= 'extends' ( (otherlv_8= RULE_ID ) ) ) + // InternalAlloyLanguage.g:570:7: otherlv_7= 'extends' ( (otherlv_8= RULE_ID ) ) + { + otherlv_7=(Token)match(input,17,FOLLOW_4); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getALSSignatureBodyAccess().getExtendsKeyword_4_0_0()); + + } + // InternalAlloyLanguage.g:574:1: ( (otherlv_8= RULE_ID ) ) + // InternalAlloyLanguage.g:575:1: (otherlv_8= RULE_ID ) + { + // InternalAlloyLanguage.g:575:1: (otherlv_8= RULE_ID ) + // InternalAlloyLanguage.g:576:3: otherlv_8= RULE_ID + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getALSSignatureBodyRule()); + } + + } + otherlv_8=(Token)match(input,RULE_ID,FOLLOW_5); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_8, grammarAccess.getALSSignatureBodyAccess().getSupertypeALSSignatureDeclarationCrossReference_4_0_1_0()); + + } + + } + + + } + + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:588:6: (otherlv_9= 'in' ( (otherlv_10= RULE_ID ) ) (otherlv_11= '+' ( (otherlv_12= RULE_ID ) ) )* ) + { + // InternalAlloyLanguage.g:588:6: (otherlv_9= 'in' ( (otherlv_10= RULE_ID ) ) (otherlv_11= '+' ( (otherlv_12= RULE_ID ) ) )* ) + // InternalAlloyLanguage.g:588:8: otherlv_9= 'in' ( (otherlv_10= RULE_ID ) ) (otherlv_11= '+' ( (otherlv_12= RULE_ID ) ) )* + { + otherlv_9=(Token)match(input,18,FOLLOW_4); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_9, grammarAccess.getALSSignatureBodyAccess().getInKeyword_4_1_0()); + + } + // InternalAlloyLanguage.g:592:1: ( (otherlv_10= RULE_ID ) ) + // InternalAlloyLanguage.g:593:1: (otherlv_10= RULE_ID ) + { + // InternalAlloyLanguage.g:593:1: (otherlv_10= RULE_ID ) + // InternalAlloyLanguage.g:594:3: otherlv_10= RULE_ID + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getALSSignatureBodyRule()); + } + + } + otherlv_10=(Token)match(input,RULE_ID,FOLLOW_9); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_10, grammarAccess.getALSSignatureBodyAccess().getSupersetALSSignatureDeclarationCrossReference_4_1_1_0()); + + } + + } + + + } + + // InternalAlloyLanguage.g:605:2: (otherlv_11= '+' ( (otherlv_12= RULE_ID ) ) )* + loop6: + do { + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0==19) ) { + alt6=1; + } + + + switch (alt6) { + case 1 : + // InternalAlloyLanguage.g:605:4: otherlv_11= '+' ( (otherlv_12= RULE_ID ) ) + { + otherlv_11=(Token)match(input,19,FOLLOW_4); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_11, grammarAccess.getALSSignatureBodyAccess().getPlusSignKeyword_4_1_2_0()); + + } + // InternalAlloyLanguage.g:609:1: ( (otherlv_12= RULE_ID ) ) + // InternalAlloyLanguage.g:610:1: (otherlv_12= RULE_ID ) + { + // InternalAlloyLanguage.g:610:1: (otherlv_12= RULE_ID ) + // InternalAlloyLanguage.g:611:3: otherlv_12= RULE_ID + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getALSSignatureBodyRule()); + } + + } + otherlv_12=(Token)match(input,RULE_ID,FOLLOW_9); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_12, grammarAccess.getALSSignatureBodyAccess().getSupersetALSSignatureDeclarationCrossReference_4_1_2_1_0()); + + } + + } + + + } + + + } + break; + + default : + break loop6; + } + } while (true); + + + } + + + } + break; + + } + + otherlv_13=(Token)match(input,12,FOLLOW_10); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_13, grammarAccess.getALSSignatureBodyAccess().getLeftCurlyBracketKeyword_5()); + + } + // InternalAlloyLanguage.g:626:1: ( ( (lv_fields_14_0= ruleALSFieldDeclaration ) ) (otherlv_15= ',' ( (lv_fields_16_0= ruleALSFieldDeclaration ) ) )* )? + int alt9=2; + int LA9_0 = input.LA(1); + + if ( (LA9_0==RULE_ID) ) { + alt9=1; + } + switch (alt9) { + case 1 : + // InternalAlloyLanguage.g:626:2: ( (lv_fields_14_0= ruleALSFieldDeclaration ) ) (otherlv_15= ',' ( (lv_fields_16_0= ruleALSFieldDeclaration ) ) )* + { + // InternalAlloyLanguage.g:626:2: ( (lv_fields_14_0= ruleALSFieldDeclaration ) ) + // InternalAlloyLanguage.g:627:1: (lv_fields_14_0= ruleALSFieldDeclaration ) + { + // InternalAlloyLanguage.g:627:1: (lv_fields_14_0= ruleALSFieldDeclaration ) + // InternalAlloyLanguage.g:628:3: lv_fields_14_0= ruleALSFieldDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSSignatureBodyAccess().getFieldsALSFieldDeclarationParserRuleCall_6_0_0()); + + } + pushFollow(FOLLOW_6); + lv_fields_14_0=ruleALSFieldDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSSignatureBodyRule()); + } + add( + current, + "fields", + lv_fields_14_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSFieldDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalAlloyLanguage.g:644:2: (otherlv_15= ',' ( (lv_fields_16_0= ruleALSFieldDeclaration ) ) )* + loop8: + do { + int alt8=2; + int LA8_0 = input.LA(1); + + if ( (LA8_0==13) ) { + alt8=1; + } + + + switch (alt8) { + case 1 : + // InternalAlloyLanguage.g:644:4: otherlv_15= ',' ( (lv_fields_16_0= ruleALSFieldDeclaration ) ) + { + otherlv_15=(Token)match(input,13,FOLLOW_4); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_15, grammarAccess.getALSSignatureBodyAccess().getCommaKeyword_6_1_0()); + + } + // InternalAlloyLanguage.g:648:1: ( (lv_fields_16_0= ruleALSFieldDeclaration ) ) + // InternalAlloyLanguage.g:649:1: (lv_fields_16_0= ruleALSFieldDeclaration ) + { + // InternalAlloyLanguage.g:649:1: (lv_fields_16_0= ruleALSFieldDeclaration ) + // InternalAlloyLanguage.g:650:3: lv_fields_16_0= ruleALSFieldDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSSignatureBodyAccess().getFieldsALSFieldDeclarationParserRuleCall_6_1_1_0()); + + } + pushFollow(FOLLOW_6); + lv_fields_16_0=ruleALSFieldDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSSignatureBodyRule()); + } + add( + current, + "fields", + lv_fields_16_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSFieldDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop8; + } + } while (true); + + + } + break; + + } + + otherlv_17=(Token)match(input,14,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_17, grammarAccess.getALSSignatureBodyAccess().getRightCurlyBracketKeyword_7()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSSignatureBody" + + + // $ANTLR start "entryRuleALSFieldDeclaration" + // InternalAlloyLanguage.g:678:1: entryRuleALSFieldDeclaration returns [EObject current=null] : iv_ruleALSFieldDeclaration= ruleALSFieldDeclaration EOF ; + public final EObject entryRuleALSFieldDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSFieldDeclaration = null; + + + try { + // InternalAlloyLanguage.g:679:2: (iv_ruleALSFieldDeclaration= ruleALSFieldDeclaration EOF ) + // InternalAlloyLanguage.g:680:2: iv_ruleALSFieldDeclaration= ruleALSFieldDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSFieldDeclarationRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSFieldDeclaration=ruleALSFieldDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSFieldDeclaration; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSFieldDeclaration" + + + // $ANTLR start "ruleALSFieldDeclaration" + // InternalAlloyLanguage.g:687:1: ruleALSFieldDeclaration returns [EObject current=null] : ( ( (lv_name_0_0= ruleALSID ) ) otherlv_1= ':' ( (lv_multiplicity_2_0= ruleALSMultiplicity ) )? ( (lv_type_3_0= ruleALSTerm ) ) ) ; + public final EObject ruleALSFieldDeclaration() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + AntlrDatatypeRuleToken lv_name_0_0 = null; + + Enumerator lv_multiplicity_2_0 = null; + + EObject lv_type_3_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:690:28: ( ( ( (lv_name_0_0= ruleALSID ) ) otherlv_1= ':' ( (lv_multiplicity_2_0= ruleALSMultiplicity ) )? ( (lv_type_3_0= ruleALSTerm ) ) ) ) + // InternalAlloyLanguage.g:691:1: ( ( (lv_name_0_0= ruleALSID ) ) otherlv_1= ':' ( (lv_multiplicity_2_0= ruleALSMultiplicity ) )? ( (lv_type_3_0= ruleALSTerm ) ) ) + { + // InternalAlloyLanguage.g:691:1: ( ( (lv_name_0_0= ruleALSID ) ) otherlv_1= ':' ( (lv_multiplicity_2_0= ruleALSMultiplicity ) )? ( (lv_type_3_0= ruleALSTerm ) ) ) + // InternalAlloyLanguage.g:691:2: ( (lv_name_0_0= ruleALSID ) ) otherlv_1= ':' ( (lv_multiplicity_2_0= ruleALSMultiplicity ) )? ( (lv_type_3_0= ruleALSTerm ) ) + { + // InternalAlloyLanguage.g:691:2: ( (lv_name_0_0= ruleALSID ) ) + // InternalAlloyLanguage.g:692:1: (lv_name_0_0= ruleALSID ) + { + // InternalAlloyLanguage.g:692:1: (lv_name_0_0= ruleALSID ) + // InternalAlloyLanguage.g:693:3: lv_name_0_0= ruleALSID + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSFieldDeclarationAccess().getNameALSIDParserRuleCall_0_0()); + + } + pushFollow(FOLLOW_11); + lv_name_0_0=ruleALSID(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSFieldDeclarationRule()); + } + set( + current, + "name", + lv_name_0_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSID"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_1=(Token)match(input,20,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getALSFieldDeclarationAccess().getColonKeyword_1()); + + } + // InternalAlloyLanguage.g:713:1: ( (lv_multiplicity_2_0= ruleALSMultiplicity ) )? + int alt10=2; + alt10 = dfa10.predict(input); + switch (alt10) { + case 1 : + // InternalAlloyLanguage.g:714:1: (lv_multiplicity_2_0= ruleALSMultiplicity ) + { + // InternalAlloyLanguage.g:714:1: (lv_multiplicity_2_0= ruleALSMultiplicity ) + // InternalAlloyLanguage.g:715:3: lv_multiplicity_2_0= ruleALSMultiplicity + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSFieldDeclarationAccess().getMultiplicityALSMultiplicityEnumRuleCall_2_0()); + + } + pushFollow(FOLLOW_12); + lv_multiplicity_2_0=ruleALSMultiplicity(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSFieldDeclarationRule()); + } + set( + current, + "multiplicity", + lv_multiplicity_2_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSMultiplicity"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + break; + + } + + // InternalAlloyLanguage.g:731:3: ( (lv_type_3_0= ruleALSTerm ) ) + // InternalAlloyLanguage.g:732:1: (lv_type_3_0= ruleALSTerm ) + { + // InternalAlloyLanguage.g:732:1: (lv_type_3_0= ruleALSTerm ) + // InternalAlloyLanguage.g:733:3: lv_type_3_0= ruleALSTerm + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSFieldDeclarationAccess().getTypeALSTermParserRuleCall_3_0()); + + } + pushFollow(FOLLOW_2); + lv_type_3_0=ruleALSTerm(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSFieldDeclarationRule()); + } + set( + current, + "type", + lv_type_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSFieldDeclaration" + + + // $ANTLR start "entryRuleALSFunctionDefinition" + // InternalAlloyLanguage.g:759:1: entryRuleALSFunctionDefinition returns [EObject current=null] : iv_ruleALSFunctionDefinition= ruleALSFunctionDefinition EOF ; + public final EObject entryRuleALSFunctionDefinition() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSFunctionDefinition = null; + + + try { + // InternalAlloyLanguage.g:760:2: (iv_ruleALSFunctionDefinition= ruleALSFunctionDefinition EOF ) + // InternalAlloyLanguage.g:761:2: iv_ruleALSFunctionDefinition= ruleALSFunctionDefinition EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSFunctionDefinitionRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSFunctionDefinition=ruleALSFunctionDefinition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSFunctionDefinition; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSFunctionDefinition" + + + // $ANTLR start "ruleALSFunctionDefinition" + // InternalAlloyLanguage.g:768:1: ruleALSFunctionDefinition returns [EObject current=null] : (otherlv_0= 'fun' ( (lv_name_1_0= ruleALSID ) ) otherlv_2= '[' ( (lv_variables_3_0= ruleALSVariableDeclaration ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) )* otherlv_6= ']' otherlv_7= ':' ( (lv_type_8_0= ruleALSTerm ) ) otherlv_9= '{' ( (lv_value_10_0= ruleALSTerm ) ) otherlv_11= '}' ) ; + public final EObject ruleALSFunctionDefinition() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_7=null; + Token otherlv_9=null; + Token otherlv_11=null; + AntlrDatatypeRuleToken lv_name_1_0 = null; + + EObject lv_variables_3_0 = null; + + EObject lv_variables_5_0 = null; + + EObject lv_type_8_0 = null; + + EObject lv_value_10_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:771:28: ( (otherlv_0= 'fun' ( (lv_name_1_0= ruleALSID ) ) otherlv_2= '[' ( (lv_variables_3_0= ruleALSVariableDeclaration ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) )* otherlv_6= ']' otherlv_7= ':' ( (lv_type_8_0= ruleALSTerm ) ) otherlv_9= '{' ( (lv_value_10_0= ruleALSTerm ) ) otherlv_11= '}' ) ) + // InternalAlloyLanguage.g:772:1: (otherlv_0= 'fun' ( (lv_name_1_0= ruleALSID ) ) otherlv_2= '[' ( (lv_variables_3_0= ruleALSVariableDeclaration ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) )* otherlv_6= ']' otherlv_7= ':' ( (lv_type_8_0= ruleALSTerm ) ) otherlv_9= '{' ( (lv_value_10_0= ruleALSTerm ) ) otherlv_11= '}' ) + { + // InternalAlloyLanguage.g:772:1: (otherlv_0= 'fun' ( (lv_name_1_0= ruleALSID ) ) otherlv_2= '[' ( (lv_variables_3_0= ruleALSVariableDeclaration ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) )* otherlv_6= ']' otherlv_7= ':' ( (lv_type_8_0= ruleALSTerm ) ) otherlv_9= '{' ( (lv_value_10_0= ruleALSTerm ) ) otherlv_11= '}' ) + // InternalAlloyLanguage.g:772:3: otherlv_0= 'fun' ( (lv_name_1_0= ruleALSID ) ) otherlv_2= '[' ( (lv_variables_3_0= ruleALSVariableDeclaration ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) )* otherlv_6= ']' otherlv_7= ':' ( (lv_type_8_0= ruleALSTerm ) ) otherlv_9= '{' ( (lv_value_10_0= ruleALSTerm ) ) otherlv_11= '}' + { + otherlv_0=(Token)match(input,21,FOLLOW_4); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getALSFunctionDefinitionAccess().getFunKeyword_0()); + + } + // InternalAlloyLanguage.g:776:1: ( (lv_name_1_0= ruleALSID ) ) + // InternalAlloyLanguage.g:777:1: (lv_name_1_0= ruleALSID ) + { + // InternalAlloyLanguage.g:777:1: (lv_name_1_0= ruleALSID ) + // InternalAlloyLanguage.g:778:3: lv_name_1_0= ruleALSID + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSFunctionDefinitionAccess().getNameALSIDParserRuleCall_1_0()); + + } + pushFollow(FOLLOW_13); + lv_name_1_0=ruleALSID(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSFunctionDefinitionRule()); + } + set( + current, + "name", + lv_name_1_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSID"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_2=(Token)match(input,22,FOLLOW_4); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getALSFunctionDefinitionAccess().getLeftSquareBracketKeyword_2()); + + } + // InternalAlloyLanguage.g:798:1: ( (lv_variables_3_0= ruleALSVariableDeclaration ) ) + // InternalAlloyLanguage.g:799:1: (lv_variables_3_0= ruleALSVariableDeclaration ) + { + // InternalAlloyLanguage.g:799:1: (lv_variables_3_0= ruleALSVariableDeclaration ) + // InternalAlloyLanguage.g:800:3: lv_variables_3_0= ruleALSVariableDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSFunctionDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_3_0()); + + } + pushFollow(FOLLOW_14); + lv_variables_3_0=ruleALSVariableDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSFunctionDefinitionRule()); + } + add( + current, + "variables", + lv_variables_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSVariableDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalAlloyLanguage.g:816:2: (otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) )* + loop11: + do { + int alt11=2; + int LA11_0 = input.LA(1); + + if ( (LA11_0==13) ) { + alt11=1; + } + + + switch (alt11) { + case 1 : + // InternalAlloyLanguage.g:816:4: otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) + { + otherlv_4=(Token)match(input,13,FOLLOW_4); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getALSFunctionDefinitionAccess().getCommaKeyword_4_0()); + + } + // InternalAlloyLanguage.g:820:1: ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) + // InternalAlloyLanguage.g:821:1: (lv_variables_5_0= ruleALSVariableDeclaration ) + { + // InternalAlloyLanguage.g:821:1: (lv_variables_5_0= ruleALSVariableDeclaration ) + // InternalAlloyLanguage.g:822:3: lv_variables_5_0= ruleALSVariableDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSFunctionDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_4_1_0()); + + } + pushFollow(FOLLOW_14); + lv_variables_5_0=ruleALSVariableDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSFunctionDefinitionRule()); + } + add( + current, + "variables", + lv_variables_5_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSVariableDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop11; + } + } while (true); + + otherlv_6=(Token)match(input,23,FOLLOW_11); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getALSFunctionDefinitionAccess().getRightSquareBracketKeyword_5()); + + } + otherlv_7=(Token)match(input,20,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getALSFunctionDefinitionAccess().getColonKeyword_6()); + + } + // InternalAlloyLanguage.g:846:1: ( (lv_type_8_0= ruleALSTerm ) ) + // InternalAlloyLanguage.g:847:1: (lv_type_8_0= ruleALSTerm ) + { + // InternalAlloyLanguage.g:847:1: (lv_type_8_0= ruleALSTerm ) + // InternalAlloyLanguage.g:848:3: lv_type_8_0= ruleALSTerm + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSFunctionDefinitionAccess().getTypeALSTermParserRuleCall_7_0()); + + } + pushFollow(FOLLOW_5); + lv_type_8_0=ruleALSTerm(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSFunctionDefinitionRule()); + } + set( + current, + "type", + lv_type_8_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_9=(Token)match(input,12,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_9, grammarAccess.getALSFunctionDefinitionAccess().getLeftCurlyBracketKeyword_8()); + + } + // InternalAlloyLanguage.g:868:1: ( (lv_value_10_0= ruleALSTerm ) ) + // InternalAlloyLanguage.g:869:1: (lv_value_10_0= ruleALSTerm ) + { + // InternalAlloyLanguage.g:869:1: (lv_value_10_0= ruleALSTerm ) + // InternalAlloyLanguage.g:870:3: lv_value_10_0= ruleALSTerm + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSFunctionDefinitionAccess().getValueALSTermParserRuleCall_9_0()); + + } + pushFollow(FOLLOW_15); + lv_value_10_0=ruleALSTerm(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSFunctionDefinitionRule()); + } + set( + current, + "value", + lv_value_10_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_11=(Token)match(input,14,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_11, grammarAccess.getALSFunctionDefinitionAccess().getRightCurlyBracketKeyword_10()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSFunctionDefinition" + + + // $ANTLR start "entryRuleALSRelationDefinition" + // InternalAlloyLanguage.g:898:1: entryRuleALSRelationDefinition returns [EObject current=null] : iv_ruleALSRelationDefinition= ruleALSRelationDefinition EOF ; + public final EObject entryRuleALSRelationDefinition() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSRelationDefinition = null; + + + try { + // InternalAlloyLanguage.g:899:2: (iv_ruleALSRelationDefinition= ruleALSRelationDefinition EOF ) + // InternalAlloyLanguage.g:900:2: iv_ruleALSRelationDefinition= ruleALSRelationDefinition EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSRelationDefinitionRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSRelationDefinition=ruleALSRelationDefinition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSRelationDefinition; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSRelationDefinition" + + + // $ANTLR start "ruleALSRelationDefinition" + // InternalAlloyLanguage.g:907:1: ruleALSRelationDefinition returns [EObject current=null] : (otherlv_0= 'pred' ( (lv_name_1_0= ruleALSID ) ) otherlv_2= '[' ( (lv_variables_3_0= ruleALSVariableDeclaration ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) )* otherlv_6= ']' otherlv_7= '{' ( (lv_value_8_0= ruleALSTerm ) ) otherlv_9= '}' ) ; + public final EObject ruleALSRelationDefinition() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_7=null; + Token otherlv_9=null; + AntlrDatatypeRuleToken lv_name_1_0 = null; + + EObject lv_variables_3_0 = null; + + EObject lv_variables_5_0 = null; + + EObject lv_value_8_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:910:28: ( (otherlv_0= 'pred' ( (lv_name_1_0= ruleALSID ) ) otherlv_2= '[' ( (lv_variables_3_0= ruleALSVariableDeclaration ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) )* otherlv_6= ']' otherlv_7= '{' ( (lv_value_8_0= ruleALSTerm ) ) otherlv_9= '}' ) ) + // InternalAlloyLanguage.g:911:1: (otherlv_0= 'pred' ( (lv_name_1_0= ruleALSID ) ) otherlv_2= '[' ( (lv_variables_3_0= ruleALSVariableDeclaration ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) )* otherlv_6= ']' otherlv_7= '{' ( (lv_value_8_0= ruleALSTerm ) ) otherlv_9= '}' ) + { + // InternalAlloyLanguage.g:911:1: (otherlv_0= 'pred' ( (lv_name_1_0= ruleALSID ) ) otherlv_2= '[' ( (lv_variables_3_0= ruleALSVariableDeclaration ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) )* otherlv_6= ']' otherlv_7= '{' ( (lv_value_8_0= ruleALSTerm ) ) otherlv_9= '}' ) + // InternalAlloyLanguage.g:911:3: otherlv_0= 'pred' ( (lv_name_1_0= ruleALSID ) ) otherlv_2= '[' ( (lv_variables_3_0= ruleALSVariableDeclaration ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) )* otherlv_6= ']' otherlv_7= '{' ( (lv_value_8_0= ruleALSTerm ) ) otherlv_9= '}' + { + otherlv_0=(Token)match(input,24,FOLLOW_4); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getALSRelationDefinitionAccess().getPredKeyword_0()); + + } + // InternalAlloyLanguage.g:915:1: ( (lv_name_1_0= ruleALSID ) ) + // InternalAlloyLanguage.g:916:1: (lv_name_1_0= ruleALSID ) + { + // InternalAlloyLanguage.g:916:1: (lv_name_1_0= ruleALSID ) + // InternalAlloyLanguage.g:917:3: lv_name_1_0= ruleALSID + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSRelationDefinitionAccess().getNameALSIDParserRuleCall_1_0()); + + } + pushFollow(FOLLOW_13); + lv_name_1_0=ruleALSID(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSRelationDefinitionRule()); + } + set( + current, + "name", + lv_name_1_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSID"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_2=(Token)match(input,22,FOLLOW_4); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getALSRelationDefinitionAccess().getLeftSquareBracketKeyword_2()); + + } + // InternalAlloyLanguage.g:937:1: ( (lv_variables_3_0= ruleALSVariableDeclaration ) ) + // InternalAlloyLanguage.g:938:1: (lv_variables_3_0= ruleALSVariableDeclaration ) + { + // InternalAlloyLanguage.g:938:1: (lv_variables_3_0= ruleALSVariableDeclaration ) + // InternalAlloyLanguage.g:939:3: lv_variables_3_0= ruleALSVariableDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSRelationDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_3_0()); + + } + pushFollow(FOLLOW_14); + lv_variables_3_0=ruleALSVariableDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSRelationDefinitionRule()); + } + add( + current, + "variables", + lv_variables_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSVariableDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalAlloyLanguage.g:955:2: (otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) )* + loop12: + do { + int alt12=2; + int LA12_0 = input.LA(1); + + if ( (LA12_0==13) ) { + alt12=1; + } + + + switch (alt12) { + case 1 : + // InternalAlloyLanguage.g:955:4: otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) + { + otherlv_4=(Token)match(input,13,FOLLOW_4); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getALSRelationDefinitionAccess().getCommaKeyword_4_0()); + + } + // InternalAlloyLanguage.g:959:1: ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) + // InternalAlloyLanguage.g:960:1: (lv_variables_5_0= ruleALSVariableDeclaration ) + { + // InternalAlloyLanguage.g:960:1: (lv_variables_5_0= ruleALSVariableDeclaration ) + // InternalAlloyLanguage.g:961:3: lv_variables_5_0= ruleALSVariableDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSRelationDefinitionAccess().getVariablesALSVariableDeclarationParserRuleCall_4_1_0()); + + } + pushFollow(FOLLOW_14); + lv_variables_5_0=ruleALSVariableDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSRelationDefinitionRule()); + } + add( + current, + "variables", + lv_variables_5_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSVariableDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop12; + } + } while (true); + + otherlv_6=(Token)match(input,23,FOLLOW_5); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getALSRelationDefinitionAccess().getRightSquareBracketKeyword_5()); + + } + otherlv_7=(Token)match(input,12,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getALSRelationDefinitionAccess().getLeftCurlyBracketKeyword_6()); + + } + // InternalAlloyLanguage.g:985:1: ( (lv_value_8_0= ruleALSTerm ) ) + // InternalAlloyLanguage.g:986:1: (lv_value_8_0= ruleALSTerm ) + { + // InternalAlloyLanguage.g:986:1: (lv_value_8_0= ruleALSTerm ) + // InternalAlloyLanguage.g:987:3: lv_value_8_0= ruleALSTerm + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSRelationDefinitionAccess().getValueALSTermParserRuleCall_7_0()); + + } + pushFollow(FOLLOW_15); + lv_value_8_0=ruleALSTerm(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSRelationDefinitionRule()); + } + set( + current, + "value", + lv_value_8_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_9=(Token)match(input,14,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_9, grammarAccess.getALSRelationDefinitionAccess().getRightCurlyBracketKeyword_8()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSRelationDefinition" + + + // $ANTLR start "entryRuleALSFactDeclaration" + // InternalAlloyLanguage.g:1015:1: entryRuleALSFactDeclaration returns [EObject current=null] : iv_ruleALSFactDeclaration= ruleALSFactDeclaration EOF ; + public final EObject entryRuleALSFactDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSFactDeclaration = null; + + + try { + // InternalAlloyLanguage.g:1016:2: (iv_ruleALSFactDeclaration= ruleALSFactDeclaration EOF ) + // InternalAlloyLanguage.g:1017:2: iv_ruleALSFactDeclaration= ruleALSFactDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSFactDeclarationRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSFactDeclaration=ruleALSFactDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSFactDeclaration; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSFactDeclaration" + + + // $ANTLR start "ruleALSFactDeclaration" + // InternalAlloyLanguage.g:1024:1: ruleALSFactDeclaration returns [EObject current=null] : ( () otherlv_1= 'fact' ( (lv_name_2_0= ruleALSID ) )? otherlv_3= '{' ( (lv_term_4_0= ruleALSTerm ) ) otherlv_5= '}' ) ; + public final EObject ruleALSFactDeclaration() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + AntlrDatatypeRuleToken lv_name_2_0 = null; + + EObject lv_term_4_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:1027:28: ( ( () otherlv_1= 'fact' ( (lv_name_2_0= ruleALSID ) )? otherlv_3= '{' ( (lv_term_4_0= ruleALSTerm ) ) otherlv_5= '}' ) ) + // InternalAlloyLanguage.g:1028:1: ( () otherlv_1= 'fact' ( (lv_name_2_0= ruleALSID ) )? otherlv_3= '{' ( (lv_term_4_0= ruleALSTerm ) ) otherlv_5= '}' ) + { + // InternalAlloyLanguage.g:1028:1: ( () otherlv_1= 'fact' ( (lv_name_2_0= ruleALSID ) )? otherlv_3= '{' ( (lv_term_4_0= ruleALSTerm ) ) otherlv_5= '}' ) + // InternalAlloyLanguage.g:1028:2: () otherlv_1= 'fact' ( (lv_name_2_0= ruleALSID ) )? otherlv_3= '{' ( (lv_term_4_0= ruleALSTerm ) ) otherlv_5= '}' + { + // InternalAlloyLanguage.g:1028:2: () + // InternalAlloyLanguage.g:1029:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getALSFactDeclarationAccess().getALSFactDeclarationAction_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,25,FOLLOW_16); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getALSFactDeclarationAccess().getFactKeyword_1()); + + } + // InternalAlloyLanguage.g:1038:1: ( (lv_name_2_0= ruleALSID ) )? + int alt13=2; + int LA13_0 = input.LA(1); + + if ( (LA13_0==RULE_ID) ) { + alt13=1; + } + switch (alt13) { + case 1 : + // InternalAlloyLanguage.g:1039:1: (lv_name_2_0= ruleALSID ) + { + // InternalAlloyLanguage.g:1039:1: (lv_name_2_0= ruleALSID ) + // InternalAlloyLanguage.g:1040:3: lv_name_2_0= ruleALSID + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSFactDeclarationAccess().getNameALSIDParserRuleCall_2_0()); + + } + pushFollow(FOLLOW_5); + lv_name_2_0=ruleALSID(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSFactDeclarationRule()); + } + set( + current, + "name", + lv_name_2_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSID"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + break; + + } + + otherlv_3=(Token)match(input,12,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getALSFactDeclarationAccess().getLeftCurlyBracketKeyword_3()); + + } + // InternalAlloyLanguage.g:1060:1: ( (lv_term_4_0= ruleALSTerm ) ) + // InternalAlloyLanguage.g:1061:1: (lv_term_4_0= ruleALSTerm ) + { + // InternalAlloyLanguage.g:1061:1: (lv_term_4_0= ruleALSTerm ) + // InternalAlloyLanguage.g:1062:3: lv_term_4_0= ruleALSTerm + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSFactDeclarationAccess().getTermALSTermParserRuleCall_4_0()); + + } + pushFollow(FOLLOW_15); + lv_term_4_0=ruleALSTerm(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSFactDeclarationRule()); + } + set( + current, + "term", + lv_term_4_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_5=(Token)match(input,14,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getALSFactDeclarationAccess().getRightCurlyBracketKeyword_5()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSFactDeclaration" + + + // $ANTLR start "entryRuleALSTerm" + // InternalAlloyLanguage.g:1090:1: entryRuleALSTerm returns [EObject current=null] : iv_ruleALSTerm= ruleALSTerm EOF ; + public final EObject entryRuleALSTerm() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSTerm = null; + + + try { + // InternalAlloyLanguage.g:1091:2: (iv_ruleALSTerm= ruleALSTerm EOF ) + // InternalAlloyLanguage.g:1092:2: iv_ruleALSTerm= ruleALSTerm EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSTermRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSTerm=ruleALSTerm(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSTerm; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSTerm" + + + // $ANTLR start "ruleALSTerm" + // InternalAlloyLanguage.g:1099:1: ruleALSTerm returns [EObject current=null] : this_ALSQuantified_0= ruleALSQuantified ; + public final EObject ruleALSTerm() throws RecognitionException { + EObject current = null; + + EObject this_ALSQuantified_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:1102:28: (this_ALSQuantified_0= ruleALSQuantified ) + // InternalAlloyLanguage.g:1104:5: this_ALSQuantified_0= ruleALSQuantified + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSTermAccess().getALSQuantifiedParserRuleCall()); + + } + pushFollow(FOLLOW_2); + this_ALSQuantified_0=ruleALSQuantified(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSQuantified_0; + afterParserOrEnumRuleCall(); + + } + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSTerm" + + + // $ANTLR start "entryRuleALSQuantified" + // InternalAlloyLanguage.g:1120:1: entryRuleALSQuantified returns [EObject current=null] : iv_ruleALSQuantified= ruleALSQuantified EOF ; + public final EObject entryRuleALSQuantified() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSQuantified = null; + + + try { + // InternalAlloyLanguage.g:1121:2: (iv_ruleALSQuantified= ruleALSQuantified EOF ) + // InternalAlloyLanguage.g:1122:2: iv_ruleALSQuantified= ruleALSQuantified EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSQuantifiedRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSQuantified=ruleALSQuantified(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSQuantified; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSQuantified" + + + // $ANTLR start "ruleALSQuantified" + // InternalAlloyLanguage.g:1129:1: ruleALSQuantified returns [EObject current=null] : ( ( () ( (lv_type_1_0= ruleALSMultiplicity ) ) ( (lv_disj_2_0= 'disj' ) )? ( (lv_variables_3_0= ruleALSVariableDeclaration ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) )* otherlv_6= '{' ( (lv_expression_7_0= ruleALSTerm ) ) otherlv_8= '}' ) | this_ALSOr_9= ruleALSOr ) ; + public final EObject ruleALSQuantified() throws RecognitionException { + EObject current = null; + + Token lv_disj_2_0=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_8=null; + Enumerator lv_type_1_0 = null; + + EObject lv_variables_3_0 = null; + + EObject lv_variables_5_0 = null; + + EObject lv_expression_7_0 = null; + + EObject this_ALSOr_9 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:1132:28: ( ( ( () ( (lv_type_1_0= ruleALSMultiplicity ) ) ( (lv_disj_2_0= 'disj' ) )? ( (lv_variables_3_0= ruleALSVariableDeclaration ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) )* otherlv_6= '{' ( (lv_expression_7_0= ruleALSTerm ) ) otherlv_8= '}' ) | this_ALSOr_9= ruleALSOr ) ) + // InternalAlloyLanguage.g:1133:1: ( ( () ( (lv_type_1_0= ruleALSMultiplicity ) ) ( (lv_disj_2_0= 'disj' ) )? ( (lv_variables_3_0= ruleALSVariableDeclaration ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) )* otherlv_6= '{' ( (lv_expression_7_0= ruleALSTerm ) ) otherlv_8= '}' ) | this_ALSOr_9= ruleALSOr ) + { + // InternalAlloyLanguage.g:1133:1: ( ( () ( (lv_type_1_0= ruleALSMultiplicity ) ) ( (lv_disj_2_0= 'disj' ) )? ( (lv_variables_3_0= ruleALSVariableDeclaration ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) )* otherlv_6= '{' ( (lv_expression_7_0= ruleALSTerm ) ) otherlv_8= '}' ) | this_ALSOr_9= ruleALSOr ) + int alt16=2; + int LA16_0 = input.LA(1); + + if ( ((LA16_0>=66 && LA16_0<=71)) ) { + alt16=1; + } + else if ( ((LA16_0>=RULE_ID && LA16_0<=RULE_STRING)||LA16_0==46||(LA16_0>=49 && LA16_0<=61)||(LA16_0>=72 && LA16_0<=76)) ) { + alt16=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 16, 0, input); + + throw nvae; + } + switch (alt16) { + case 1 : + // InternalAlloyLanguage.g:1133:2: ( () ( (lv_type_1_0= ruleALSMultiplicity ) ) ( (lv_disj_2_0= 'disj' ) )? ( (lv_variables_3_0= ruleALSVariableDeclaration ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) )* otherlv_6= '{' ( (lv_expression_7_0= ruleALSTerm ) ) otherlv_8= '}' ) + { + // InternalAlloyLanguage.g:1133:2: ( () ( (lv_type_1_0= ruleALSMultiplicity ) ) ( (lv_disj_2_0= 'disj' ) )? ( (lv_variables_3_0= ruleALSVariableDeclaration ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) )* otherlv_6= '{' ( (lv_expression_7_0= ruleALSTerm ) ) otherlv_8= '}' ) + // InternalAlloyLanguage.g:1133:3: () ( (lv_type_1_0= ruleALSMultiplicity ) ) ( (lv_disj_2_0= 'disj' ) )? ( (lv_variables_3_0= ruleALSVariableDeclaration ) ) (otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) )* otherlv_6= '{' ( (lv_expression_7_0= ruleALSTerm ) ) otherlv_8= '}' + { + // InternalAlloyLanguage.g:1133:3: () + // InternalAlloyLanguage.g:1134:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getALSQuantifiedAccess().getALSQuantifiedExAction_0_0(), + current); + + } + + } + + // InternalAlloyLanguage.g:1139:2: ( (lv_type_1_0= ruleALSMultiplicity ) ) + // InternalAlloyLanguage.g:1140:1: (lv_type_1_0= ruleALSMultiplicity ) + { + // InternalAlloyLanguage.g:1140:1: (lv_type_1_0= ruleALSMultiplicity ) + // InternalAlloyLanguage.g:1141:3: lv_type_1_0= ruleALSMultiplicity + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSQuantifiedAccess().getTypeALSMultiplicityEnumRuleCall_0_1_0()); + + } + pushFollow(FOLLOW_17); + lv_type_1_0=ruleALSMultiplicity(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSQuantifiedRule()); + } + set( + current, + "type", + lv_type_1_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSMultiplicity"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalAlloyLanguage.g:1157:2: ( (lv_disj_2_0= 'disj' ) )? + int alt14=2; + int LA14_0 = input.LA(1); + + if ( (LA14_0==26) ) { + alt14=1; + } + switch (alt14) { + case 1 : + // InternalAlloyLanguage.g:1158:1: (lv_disj_2_0= 'disj' ) + { + // InternalAlloyLanguage.g:1158:1: (lv_disj_2_0= 'disj' ) + // InternalAlloyLanguage.g:1159:3: lv_disj_2_0= 'disj' + { + lv_disj_2_0=(Token)match(input,26,FOLLOW_4); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_disj_2_0, grammarAccess.getALSQuantifiedAccess().getDisjDisjKeyword_0_2_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getALSQuantifiedRule()); + } + setWithLastConsumed(current, "disj", true, "disj"); + + } + + } + + + } + break; + + } + + // InternalAlloyLanguage.g:1172:3: ( (lv_variables_3_0= ruleALSVariableDeclaration ) ) + // InternalAlloyLanguage.g:1173:1: (lv_variables_3_0= ruleALSVariableDeclaration ) + { + // InternalAlloyLanguage.g:1173:1: (lv_variables_3_0= ruleALSVariableDeclaration ) + // InternalAlloyLanguage.g:1174:3: lv_variables_3_0= ruleALSVariableDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSQuantifiedAccess().getVariablesALSVariableDeclarationParserRuleCall_0_3_0()); + + } + pushFollow(FOLLOW_18); + lv_variables_3_0=ruleALSVariableDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSQuantifiedRule()); + } + add( + current, + "variables", + lv_variables_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSVariableDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalAlloyLanguage.g:1190:2: (otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) )* + loop15: + do { + int alt15=2; + int LA15_0 = input.LA(1); + + if ( (LA15_0==13) ) { + alt15=1; + } + + + switch (alt15) { + case 1 : + // InternalAlloyLanguage.g:1190:4: otherlv_4= ',' ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) + { + otherlv_4=(Token)match(input,13,FOLLOW_4); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getALSQuantifiedAccess().getCommaKeyword_0_4_0()); + + } + // InternalAlloyLanguage.g:1194:1: ( (lv_variables_5_0= ruleALSVariableDeclaration ) ) + // InternalAlloyLanguage.g:1195:1: (lv_variables_5_0= ruleALSVariableDeclaration ) + { + // InternalAlloyLanguage.g:1195:1: (lv_variables_5_0= ruleALSVariableDeclaration ) + // InternalAlloyLanguage.g:1196:3: lv_variables_5_0= ruleALSVariableDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSQuantifiedAccess().getVariablesALSVariableDeclarationParserRuleCall_0_4_1_0()); + + } + pushFollow(FOLLOW_18); + lv_variables_5_0=ruleALSVariableDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSQuantifiedRule()); + } + add( + current, + "variables", + lv_variables_5_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSVariableDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop15; + } + } while (true); + + otherlv_6=(Token)match(input,12,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getALSQuantifiedAccess().getLeftCurlyBracketKeyword_0_5()); + + } + // InternalAlloyLanguage.g:1216:1: ( (lv_expression_7_0= ruleALSTerm ) ) + // InternalAlloyLanguage.g:1217:1: (lv_expression_7_0= ruleALSTerm ) + { + // InternalAlloyLanguage.g:1217:1: (lv_expression_7_0= ruleALSTerm ) + // InternalAlloyLanguage.g:1218:3: lv_expression_7_0= ruleALSTerm + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSQuantifiedAccess().getExpressionALSTermParserRuleCall_0_6_0()); + + } + pushFollow(FOLLOW_15); + lv_expression_7_0=ruleALSTerm(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSQuantifiedRule()); + } + set( + current, + "expression", + lv_expression_7_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_8=(Token)match(input,14,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_8, grammarAccess.getALSQuantifiedAccess().getRightCurlyBracketKeyword_0_7()); + + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:1240:5: this_ALSOr_9= ruleALSOr + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSQuantifiedAccess().getALSOrParserRuleCall_1()); + + } + pushFollow(FOLLOW_2); + this_ALSOr_9=ruleALSOr(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSOr_9; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSQuantified" + + + // $ANTLR start "entryRuleALSOr" + // InternalAlloyLanguage.g:1256:1: entryRuleALSOr returns [EObject current=null] : iv_ruleALSOr= ruleALSOr EOF ; + public final EObject entryRuleALSOr() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSOr = null; + + + try { + // InternalAlloyLanguage.g:1257:2: (iv_ruleALSOr= ruleALSOr EOF ) + // InternalAlloyLanguage.g:1258:2: iv_ruleALSOr= ruleALSOr EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSOrRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSOr=ruleALSOr(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSOr; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSOr" + + + // $ANTLR start "ruleALSOr" + // InternalAlloyLanguage.g:1265:1: ruleALSOr returns [EObject current=null] : (this_ALSIff_0= ruleALSIff ( () (otherlv_2= '||' | otherlv_3= 'or' ) ( (lv_rightOperand_4_0= ruleALSIff ) ) )? ) ; + public final EObject ruleALSOr() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + Token otherlv_3=null; + EObject this_ALSIff_0 = null; + + EObject lv_rightOperand_4_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:1268:28: ( (this_ALSIff_0= ruleALSIff ( () (otherlv_2= '||' | otherlv_3= 'or' ) ( (lv_rightOperand_4_0= ruleALSIff ) ) )? ) ) + // InternalAlloyLanguage.g:1269:1: (this_ALSIff_0= ruleALSIff ( () (otherlv_2= '||' | otherlv_3= 'or' ) ( (lv_rightOperand_4_0= ruleALSIff ) ) )? ) + { + // InternalAlloyLanguage.g:1269:1: (this_ALSIff_0= ruleALSIff ( () (otherlv_2= '||' | otherlv_3= 'or' ) ( (lv_rightOperand_4_0= ruleALSIff ) ) )? ) + // InternalAlloyLanguage.g:1270:5: this_ALSIff_0= ruleALSIff ( () (otherlv_2= '||' | otherlv_3= 'or' ) ( (lv_rightOperand_4_0= ruleALSIff ) ) )? + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSOrAccess().getALSIffParserRuleCall_0()); + + } + pushFollow(FOLLOW_19); + this_ALSIff_0=ruleALSIff(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSIff_0; + afterParserOrEnumRuleCall(); + + } + // InternalAlloyLanguage.g:1278:1: ( () (otherlv_2= '||' | otherlv_3= 'or' ) ( (lv_rightOperand_4_0= ruleALSIff ) ) )? + int alt18=2; + int LA18_0 = input.LA(1); + + if ( ((LA18_0>=27 && LA18_0<=28)) ) { + alt18=1; + } + switch (alt18) { + case 1 : + // InternalAlloyLanguage.g:1278:2: () (otherlv_2= '||' | otherlv_3= 'or' ) ( (lv_rightOperand_4_0= ruleALSIff ) ) + { + // InternalAlloyLanguage.g:1278:2: () + // InternalAlloyLanguage.g:1279:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getALSOrAccess().getALSOrLeftOperandAction_1_0(), + current); + + } + + } + + // InternalAlloyLanguage.g:1284:2: (otherlv_2= '||' | otherlv_3= 'or' ) + int alt17=2; + int LA17_0 = input.LA(1); + + if ( (LA17_0==27) ) { + alt17=1; + } + else if ( (LA17_0==28) ) { + alt17=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 17, 0, input); + + throw nvae; + } + switch (alt17) { + case 1 : + // InternalAlloyLanguage.g:1284:4: otherlv_2= '||' + { + otherlv_2=(Token)match(input,27,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getALSOrAccess().getVerticalLineVerticalLineKeyword_1_1_0()); + + } + + } + break; + case 2 : + // InternalAlloyLanguage.g:1289:7: otherlv_3= 'or' + { + otherlv_3=(Token)match(input,28,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getALSOrAccess().getOrKeyword_1_1_1()); + + } + + } + break; + + } + + // InternalAlloyLanguage.g:1293:2: ( (lv_rightOperand_4_0= ruleALSIff ) ) + // InternalAlloyLanguage.g:1294:1: (lv_rightOperand_4_0= ruleALSIff ) + { + // InternalAlloyLanguage.g:1294:1: (lv_rightOperand_4_0= ruleALSIff ) + // InternalAlloyLanguage.g:1295:3: lv_rightOperand_4_0= ruleALSIff + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSOrAccess().getRightOperandALSIffParserRuleCall_1_2_0()); + + } + pushFollow(FOLLOW_2); + lv_rightOperand_4_0=ruleALSIff(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSOrRule()); + } + set( + current, + "rightOperand", + lv_rightOperand_4_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSIff"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSOr" + + + // $ANTLR start "entryRuleALSIff" + // InternalAlloyLanguage.g:1319:1: entryRuleALSIff returns [EObject current=null] : iv_ruleALSIff= ruleALSIff EOF ; + public final EObject entryRuleALSIff() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSIff = null; + + + try { + // InternalAlloyLanguage.g:1320:2: (iv_ruleALSIff= ruleALSIff EOF ) + // InternalAlloyLanguage.g:1321:2: iv_ruleALSIff= ruleALSIff EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSIffRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSIff=ruleALSIff(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSIff; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSIff" + + + // $ANTLR start "ruleALSIff" + // InternalAlloyLanguage.g:1328:1: ruleALSIff returns [EObject current=null] : (this_ALSImpl_0= ruleALSImpl ( () (otherlv_2= '<=>' | otherlv_3= 'iff' ) ( (lv_rightOperand_4_0= ruleALSImpl ) ) )? ) ; + public final EObject ruleALSIff() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + Token otherlv_3=null; + EObject this_ALSImpl_0 = null; + + EObject lv_rightOperand_4_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:1331:28: ( (this_ALSImpl_0= ruleALSImpl ( () (otherlv_2= '<=>' | otherlv_3= 'iff' ) ( (lv_rightOperand_4_0= ruleALSImpl ) ) )? ) ) + // InternalAlloyLanguage.g:1332:1: (this_ALSImpl_0= ruleALSImpl ( () (otherlv_2= '<=>' | otherlv_3= 'iff' ) ( (lv_rightOperand_4_0= ruleALSImpl ) ) )? ) + { + // InternalAlloyLanguage.g:1332:1: (this_ALSImpl_0= ruleALSImpl ( () (otherlv_2= '<=>' | otherlv_3= 'iff' ) ( (lv_rightOperand_4_0= ruleALSImpl ) ) )? ) + // InternalAlloyLanguage.g:1333:5: this_ALSImpl_0= ruleALSImpl ( () (otherlv_2= '<=>' | otherlv_3= 'iff' ) ( (lv_rightOperand_4_0= ruleALSImpl ) ) )? + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSIffAccess().getALSImplParserRuleCall_0()); + + } + pushFollow(FOLLOW_20); + this_ALSImpl_0=ruleALSImpl(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSImpl_0; + afterParserOrEnumRuleCall(); + + } + // InternalAlloyLanguage.g:1341:1: ( () (otherlv_2= '<=>' | otherlv_3= 'iff' ) ( (lv_rightOperand_4_0= ruleALSImpl ) ) )? + int alt20=2; + int LA20_0 = input.LA(1); + + if ( ((LA20_0>=29 && LA20_0<=30)) ) { + alt20=1; + } + switch (alt20) { + case 1 : + // InternalAlloyLanguage.g:1341:2: () (otherlv_2= '<=>' | otherlv_3= 'iff' ) ( (lv_rightOperand_4_0= ruleALSImpl ) ) + { + // InternalAlloyLanguage.g:1341:2: () + // InternalAlloyLanguage.g:1342:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getALSIffAccess().getALSIffLeftOperandAction_1_0(), + current); + + } + + } + + // InternalAlloyLanguage.g:1347:2: (otherlv_2= '<=>' | otherlv_3= 'iff' ) + int alt19=2; + int LA19_0 = input.LA(1); + + if ( (LA19_0==29) ) { + alt19=1; + } + else if ( (LA19_0==30) ) { + alt19=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 19, 0, input); + + throw nvae; + } + switch (alt19) { + case 1 : + // InternalAlloyLanguage.g:1347:4: otherlv_2= '<=>' + { + otherlv_2=(Token)match(input,29,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getALSIffAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_1_1_0()); + + } + + } + break; + case 2 : + // InternalAlloyLanguage.g:1352:7: otherlv_3= 'iff' + { + otherlv_3=(Token)match(input,30,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getALSIffAccess().getIffKeyword_1_1_1()); + + } + + } + break; + + } + + // InternalAlloyLanguage.g:1356:2: ( (lv_rightOperand_4_0= ruleALSImpl ) ) + // InternalAlloyLanguage.g:1357:1: (lv_rightOperand_4_0= ruleALSImpl ) + { + // InternalAlloyLanguage.g:1357:1: (lv_rightOperand_4_0= ruleALSImpl ) + // InternalAlloyLanguage.g:1358:3: lv_rightOperand_4_0= ruleALSImpl + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSIffAccess().getRightOperandALSImplParserRuleCall_1_2_0()); + + } + pushFollow(FOLLOW_2); + lv_rightOperand_4_0=ruleALSImpl(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSIffRule()); + } + set( + current, + "rightOperand", + lv_rightOperand_4_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSImpl"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSIff" + + + // $ANTLR start "entryRuleALSImpl" + // InternalAlloyLanguage.g:1382:1: entryRuleALSImpl returns [EObject current=null] : iv_ruleALSImpl= ruleALSImpl EOF ; + public final EObject entryRuleALSImpl() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSImpl = null; + + + try { + // InternalAlloyLanguage.g:1383:2: (iv_ruleALSImpl= ruleALSImpl EOF ) + // InternalAlloyLanguage.g:1384:2: iv_ruleALSImpl= ruleALSImpl EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSImplRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSImpl=ruleALSImpl(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSImpl; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSImpl" + + + // $ANTLR start "ruleALSImpl" + // InternalAlloyLanguage.g:1391:1: ruleALSImpl returns [EObject current=null] : (this_ALSAnd_0= ruleALSAnd ( () (otherlv_2= '=>' | otherlv_3= 'implies' ) ( (lv_rightOperand_4_0= ruleALSAnd ) ) (otherlv_5= 'else' ( (lv_elseOperand_6_0= ruleALSAnd ) ) )? )? ) ; + public final EObject ruleALSImpl() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + Token otherlv_3=null; + Token otherlv_5=null; + EObject this_ALSAnd_0 = null; + + EObject lv_rightOperand_4_0 = null; + + EObject lv_elseOperand_6_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:1394:28: ( (this_ALSAnd_0= ruleALSAnd ( () (otherlv_2= '=>' | otherlv_3= 'implies' ) ( (lv_rightOperand_4_0= ruleALSAnd ) ) (otherlv_5= 'else' ( (lv_elseOperand_6_0= ruleALSAnd ) ) )? )? ) ) + // InternalAlloyLanguage.g:1395:1: (this_ALSAnd_0= ruleALSAnd ( () (otherlv_2= '=>' | otherlv_3= 'implies' ) ( (lv_rightOperand_4_0= ruleALSAnd ) ) (otherlv_5= 'else' ( (lv_elseOperand_6_0= ruleALSAnd ) ) )? )? ) + { + // InternalAlloyLanguage.g:1395:1: (this_ALSAnd_0= ruleALSAnd ( () (otherlv_2= '=>' | otherlv_3= 'implies' ) ( (lv_rightOperand_4_0= ruleALSAnd ) ) (otherlv_5= 'else' ( (lv_elseOperand_6_0= ruleALSAnd ) ) )? )? ) + // InternalAlloyLanguage.g:1396:5: this_ALSAnd_0= ruleALSAnd ( () (otherlv_2= '=>' | otherlv_3= 'implies' ) ( (lv_rightOperand_4_0= ruleALSAnd ) ) (otherlv_5= 'else' ( (lv_elseOperand_6_0= ruleALSAnd ) ) )? )? + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSImplAccess().getALSAndParserRuleCall_0()); + + } + pushFollow(FOLLOW_21); + this_ALSAnd_0=ruleALSAnd(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSAnd_0; + afterParserOrEnumRuleCall(); + + } + // InternalAlloyLanguage.g:1404:1: ( () (otherlv_2= '=>' | otherlv_3= 'implies' ) ( (lv_rightOperand_4_0= ruleALSAnd ) ) (otherlv_5= 'else' ( (lv_elseOperand_6_0= ruleALSAnd ) ) )? )? + int alt23=2; + int LA23_0 = input.LA(1); + + if ( ((LA23_0>=31 && LA23_0<=32)) ) { + alt23=1; + } + switch (alt23) { + case 1 : + // InternalAlloyLanguage.g:1404:2: () (otherlv_2= '=>' | otherlv_3= 'implies' ) ( (lv_rightOperand_4_0= ruleALSAnd ) ) (otherlv_5= 'else' ( (lv_elseOperand_6_0= ruleALSAnd ) ) )? + { + // InternalAlloyLanguage.g:1404:2: () + // InternalAlloyLanguage.g:1405:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getALSImplAccess().getALSImplLeftOperandAction_1_0(), + current); + + } + + } + + // InternalAlloyLanguage.g:1410:2: (otherlv_2= '=>' | otherlv_3= 'implies' ) + int alt21=2; + int LA21_0 = input.LA(1); + + if ( (LA21_0==31) ) { + alt21=1; + } + else if ( (LA21_0==32) ) { + alt21=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 21, 0, input); + + throw nvae; + } + switch (alt21) { + case 1 : + // InternalAlloyLanguage.g:1410:4: otherlv_2= '=>' + { + otherlv_2=(Token)match(input,31,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getALSImplAccess().getEqualsSignGreaterThanSignKeyword_1_1_0()); + + } + + } + break; + case 2 : + // InternalAlloyLanguage.g:1415:7: otherlv_3= 'implies' + { + otherlv_3=(Token)match(input,32,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getALSImplAccess().getImpliesKeyword_1_1_1()); + + } + + } + break; + + } + + // InternalAlloyLanguage.g:1419:2: ( (lv_rightOperand_4_0= ruleALSAnd ) ) + // InternalAlloyLanguage.g:1420:1: (lv_rightOperand_4_0= ruleALSAnd ) + { + // InternalAlloyLanguage.g:1420:1: (lv_rightOperand_4_0= ruleALSAnd ) + // InternalAlloyLanguage.g:1421:3: lv_rightOperand_4_0= ruleALSAnd + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSImplAccess().getRightOperandALSAndParserRuleCall_1_2_0()); + + } + pushFollow(FOLLOW_22); + lv_rightOperand_4_0=ruleALSAnd(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSImplRule()); + } + set( + current, + "rightOperand", + lv_rightOperand_4_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSAnd"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalAlloyLanguage.g:1437:2: (otherlv_5= 'else' ( (lv_elseOperand_6_0= ruleALSAnd ) ) )? + int alt22=2; + int LA22_0 = input.LA(1); + + if ( (LA22_0==33) ) { + alt22=1; + } + switch (alt22) { + case 1 : + // InternalAlloyLanguage.g:1437:4: otherlv_5= 'else' ( (lv_elseOperand_6_0= ruleALSAnd ) ) + { + otherlv_5=(Token)match(input,33,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getALSImplAccess().getElseKeyword_1_3_0()); + + } + // InternalAlloyLanguage.g:1441:1: ( (lv_elseOperand_6_0= ruleALSAnd ) ) + // InternalAlloyLanguage.g:1442:1: (lv_elseOperand_6_0= ruleALSAnd ) + { + // InternalAlloyLanguage.g:1442:1: (lv_elseOperand_6_0= ruleALSAnd ) + // InternalAlloyLanguage.g:1443:3: lv_elseOperand_6_0= ruleALSAnd + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSImplAccess().getElseOperandALSAndParserRuleCall_1_3_1_0()); + + } + pushFollow(FOLLOW_2); + lv_elseOperand_6_0=ruleALSAnd(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSImplRule()); + } + set( + current, + "elseOperand", + lv_elseOperand_6_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSAnd"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSImpl" + + + // $ANTLR start "entryRuleALSAnd" + // InternalAlloyLanguage.g:1467:1: entryRuleALSAnd returns [EObject current=null] : iv_ruleALSAnd= ruleALSAnd EOF ; + public final EObject entryRuleALSAnd() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSAnd = null; + + + try { + // InternalAlloyLanguage.g:1468:2: (iv_ruleALSAnd= ruleALSAnd EOF ) + // InternalAlloyLanguage.g:1469:2: iv_ruleALSAnd= ruleALSAnd EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSAndRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSAnd=ruleALSAnd(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSAnd; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSAnd" + + + // $ANTLR start "ruleALSAnd" + // InternalAlloyLanguage.g:1476:1: ruleALSAnd returns [EObject current=null] : (this_ALSComparison_0= ruleALSComparison ( () (otherlv_2= '&&' | otherlv_3= 'and' ) ( (lv_rightOperand_4_0= ruleALSComparison ) ) )? ) ; + public final EObject ruleALSAnd() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + Token otherlv_3=null; + EObject this_ALSComparison_0 = null; + + EObject lv_rightOperand_4_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:1479:28: ( (this_ALSComparison_0= ruleALSComparison ( () (otherlv_2= '&&' | otherlv_3= 'and' ) ( (lv_rightOperand_4_0= ruleALSComparison ) ) )? ) ) + // InternalAlloyLanguage.g:1480:1: (this_ALSComparison_0= ruleALSComparison ( () (otherlv_2= '&&' | otherlv_3= 'and' ) ( (lv_rightOperand_4_0= ruleALSComparison ) ) )? ) + { + // InternalAlloyLanguage.g:1480:1: (this_ALSComparison_0= ruleALSComparison ( () (otherlv_2= '&&' | otherlv_3= 'and' ) ( (lv_rightOperand_4_0= ruleALSComparison ) ) )? ) + // InternalAlloyLanguage.g:1481:5: this_ALSComparison_0= ruleALSComparison ( () (otherlv_2= '&&' | otherlv_3= 'and' ) ( (lv_rightOperand_4_0= ruleALSComparison ) ) )? + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSAndAccess().getALSComparisonParserRuleCall_0()); + + } + pushFollow(FOLLOW_23); + this_ALSComparison_0=ruleALSComparison(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSComparison_0; + afterParserOrEnumRuleCall(); + + } + // InternalAlloyLanguage.g:1489:1: ( () (otherlv_2= '&&' | otherlv_3= 'and' ) ( (lv_rightOperand_4_0= ruleALSComparison ) ) )? + int alt25=2; + int LA25_0 = input.LA(1); + + if ( ((LA25_0>=34 && LA25_0<=35)) ) { + alt25=1; + } + switch (alt25) { + case 1 : + // InternalAlloyLanguage.g:1489:2: () (otherlv_2= '&&' | otherlv_3= 'and' ) ( (lv_rightOperand_4_0= ruleALSComparison ) ) + { + // InternalAlloyLanguage.g:1489:2: () + // InternalAlloyLanguage.g:1490:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getALSAndAccess().getALSAndLeftOperandAction_1_0(), + current); + + } + + } + + // InternalAlloyLanguage.g:1495:2: (otherlv_2= '&&' | otherlv_3= 'and' ) + int alt24=2; + int LA24_0 = input.LA(1); + + if ( (LA24_0==34) ) { + alt24=1; + } + else if ( (LA24_0==35) ) { + alt24=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 24, 0, input); + + throw nvae; + } + switch (alt24) { + case 1 : + // InternalAlloyLanguage.g:1495:4: otherlv_2= '&&' + { + otherlv_2=(Token)match(input,34,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getALSAndAccess().getAmpersandAmpersandKeyword_1_1_0()); + + } + + } + break; + case 2 : + // InternalAlloyLanguage.g:1500:7: otherlv_3= 'and' + { + otherlv_3=(Token)match(input,35,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getALSAndAccess().getAndKeyword_1_1_1()); + + } + + } + break; + + } + + // InternalAlloyLanguage.g:1504:2: ( (lv_rightOperand_4_0= ruleALSComparison ) ) + // InternalAlloyLanguage.g:1505:1: (lv_rightOperand_4_0= ruleALSComparison ) + { + // InternalAlloyLanguage.g:1505:1: (lv_rightOperand_4_0= ruleALSComparison ) + // InternalAlloyLanguage.g:1506:3: lv_rightOperand_4_0= ruleALSComparison + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSAndAccess().getRightOperandALSComparisonParserRuleCall_1_2_0()); + + } + pushFollow(FOLLOW_2); + lv_rightOperand_4_0=ruleALSComparison(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSAndRule()); + } + set( + current, + "rightOperand", + lv_rightOperand_4_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSComparison"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSAnd" + + + // $ANTLR start "entryRuleALSComparison" + // InternalAlloyLanguage.g:1530:1: entryRuleALSComparison returns [EObject current=null] : iv_ruleALSComparison= ruleALSComparison EOF ; + public final EObject entryRuleALSComparison() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSComparison = null; + + + try { + // InternalAlloyLanguage.g:1531:2: (iv_ruleALSComparison= ruleALSComparison EOF ) + // InternalAlloyLanguage.g:1532:2: iv_ruleALSComparison= ruleALSComparison EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSComparisonRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSComparison=ruleALSComparison(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSComparison; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSComparison" + + + // $ANTLR start "ruleALSComparison" + // InternalAlloyLanguage.g:1539:1: ruleALSComparison returns [EObject current=null] : (this_ALSOverride_0= ruleALSOverride ( ( ( () otherlv_2= '=' ) | ( () otherlv_4= '!=' ) | ( () otherlv_6= 'in' ) | ( () otherlv_8= '>' ) | ( () otherlv_10= '>=' ) | ( () otherlv_12= '<' ) | ( () otherlv_14= '<=' ) ) ( (lv_rightOperand_15_0= ruleALSOverride ) ) )? ) ; + public final EObject ruleALSComparison() 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_14=null; + EObject this_ALSOverride_0 = null; + + EObject lv_rightOperand_15_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:1542:28: ( (this_ALSOverride_0= ruleALSOverride ( ( ( () otherlv_2= '=' ) | ( () otherlv_4= '!=' ) | ( () otherlv_6= 'in' ) | ( () otherlv_8= '>' ) | ( () otherlv_10= '>=' ) | ( () otherlv_12= '<' ) | ( () otherlv_14= '<=' ) ) ( (lv_rightOperand_15_0= ruleALSOverride ) ) )? ) ) + // InternalAlloyLanguage.g:1543:1: (this_ALSOverride_0= ruleALSOverride ( ( ( () otherlv_2= '=' ) | ( () otherlv_4= '!=' ) | ( () otherlv_6= 'in' ) | ( () otherlv_8= '>' ) | ( () otherlv_10= '>=' ) | ( () otherlv_12= '<' ) | ( () otherlv_14= '<=' ) ) ( (lv_rightOperand_15_0= ruleALSOverride ) ) )? ) + { + // InternalAlloyLanguage.g:1543:1: (this_ALSOverride_0= ruleALSOverride ( ( ( () otherlv_2= '=' ) | ( () otherlv_4= '!=' ) | ( () otherlv_6= 'in' ) | ( () otherlv_8= '>' ) | ( () otherlv_10= '>=' ) | ( () otherlv_12= '<' ) | ( () otherlv_14= '<=' ) ) ( (lv_rightOperand_15_0= ruleALSOverride ) ) )? ) + // InternalAlloyLanguage.g:1544:5: this_ALSOverride_0= ruleALSOverride ( ( ( () otherlv_2= '=' ) | ( () otherlv_4= '!=' ) | ( () otherlv_6= 'in' ) | ( () otherlv_8= '>' ) | ( () otherlv_10= '>=' ) | ( () otherlv_12= '<' ) | ( () otherlv_14= '<=' ) ) ( (lv_rightOperand_15_0= ruleALSOverride ) ) )? + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSComparisonAccess().getALSOverrideParserRuleCall_0()); + + } + pushFollow(FOLLOW_24); + this_ALSOverride_0=ruleALSOverride(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSOverride_0; + afterParserOrEnumRuleCall(); + + } + // InternalAlloyLanguage.g:1552:1: ( ( ( () otherlv_2= '=' ) | ( () otherlv_4= '!=' ) | ( () otherlv_6= 'in' ) | ( () otherlv_8= '>' ) | ( () otherlv_10= '>=' ) | ( () otherlv_12= '<' ) | ( () otherlv_14= '<=' ) ) ( (lv_rightOperand_15_0= ruleALSOverride ) ) )? + int alt27=2; + int LA27_0 = input.LA(1); + + if ( (LA27_0==18||(LA27_0>=36 && LA27_0<=41)) ) { + alt27=1; + } + switch (alt27) { + case 1 : + // InternalAlloyLanguage.g:1552:2: ( ( () otherlv_2= '=' ) | ( () otherlv_4= '!=' ) | ( () otherlv_6= 'in' ) | ( () otherlv_8= '>' ) | ( () otherlv_10= '>=' ) | ( () otherlv_12= '<' ) | ( () otherlv_14= '<=' ) ) ( (lv_rightOperand_15_0= ruleALSOverride ) ) + { + // InternalAlloyLanguage.g:1552:2: ( ( () otherlv_2= '=' ) | ( () otherlv_4= '!=' ) | ( () otherlv_6= 'in' ) | ( () otherlv_8= '>' ) | ( () otherlv_10= '>=' ) | ( () otherlv_12= '<' ) | ( () otherlv_14= '<=' ) ) + int alt26=7; + switch ( input.LA(1) ) { + case 36: + { + alt26=1; + } + break; + case 37: + { + alt26=2; + } + break; + case 18: + { + alt26=3; + } + break; + case 38: + { + alt26=4; + } + break; + case 39: + { + alt26=5; + } + break; + case 40: + { + alt26=6; + } + break; + case 41: + { + alt26=7; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 26, 0, input); + + throw nvae; + } + + switch (alt26) { + case 1 : + // InternalAlloyLanguage.g:1552:3: ( () otherlv_2= '=' ) + { + // InternalAlloyLanguage.g:1552:3: ( () otherlv_2= '=' ) + // InternalAlloyLanguage.g:1552:4: () otherlv_2= '=' + { + // InternalAlloyLanguage.g:1552:4: () + // InternalAlloyLanguage.g:1553:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getALSComparisonAccess().getALSEqualsLeftOperandAction_1_0_0_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,36,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getALSComparisonAccess().getEqualsSignKeyword_1_0_0_1()); + + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:1563:6: ( () otherlv_4= '!=' ) + { + // InternalAlloyLanguage.g:1563:6: ( () otherlv_4= '!=' ) + // InternalAlloyLanguage.g:1563:7: () otherlv_4= '!=' + { + // InternalAlloyLanguage.g:1563:7: () + // InternalAlloyLanguage.g:1564:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getALSComparisonAccess().getALSNotEqualsLeftOperandAction_1_0_1_0(), + current); + + } + + } + + otherlv_4=(Token)match(input,37,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getALSComparisonAccess().getExclamationMarkEqualsSignKeyword_1_0_1_1()); + + } + + } + + + } + break; + case 3 : + // InternalAlloyLanguage.g:1574:6: ( () otherlv_6= 'in' ) + { + // InternalAlloyLanguage.g:1574:6: ( () otherlv_6= 'in' ) + // InternalAlloyLanguage.g:1574:7: () otherlv_6= 'in' + { + // InternalAlloyLanguage.g:1574:7: () + // InternalAlloyLanguage.g:1575:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getALSComparisonAccess().getALSSubsetLeftOperandAction_1_0_2_0(), + current); + + } + + } + + otherlv_6=(Token)match(input,18,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getALSComparisonAccess().getInKeyword_1_0_2_1()); + + } + + } + + + } + break; + case 4 : + // InternalAlloyLanguage.g:1585:6: ( () otherlv_8= '>' ) + { + // InternalAlloyLanguage.g:1585:6: ( () otherlv_8= '>' ) + // InternalAlloyLanguage.g:1585:7: () otherlv_8= '>' + { + // InternalAlloyLanguage.g:1585:7: () + // InternalAlloyLanguage.g:1586:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getALSComparisonAccess().getALSLessLeftOperandAction_1_0_3_0(), + current); + + } + + } + + otherlv_8=(Token)match(input,38,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_8, grammarAccess.getALSComparisonAccess().getGreaterThanSignKeyword_1_0_3_1()); + + } + + } + + + } + break; + case 5 : + // InternalAlloyLanguage.g:1596:6: ( () otherlv_10= '>=' ) + { + // InternalAlloyLanguage.g:1596:6: ( () otherlv_10= '>=' ) + // InternalAlloyLanguage.g:1596:7: () otherlv_10= '>=' + { + // InternalAlloyLanguage.g:1596:7: () + // InternalAlloyLanguage.g:1597:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getALSComparisonAccess().getALSLeqLeftOperandAction_1_0_4_0(), + current); + + } + + } + + otherlv_10=(Token)match(input,39,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_10, grammarAccess.getALSComparisonAccess().getGreaterThanSignEqualsSignKeyword_1_0_4_1()); + + } + + } + + + } + break; + case 6 : + // InternalAlloyLanguage.g:1607:6: ( () otherlv_12= '<' ) + { + // InternalAlloyLanguage.g:1607:6: ( () otherlv_12= '<' ) + // InternalAlloyLanguage.g:1607:7: () otherlv_12= '<' + { + // InternalAlloyLanguage.g:1607:7: () + // InternalAlloyLanguage.g:1608:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getALSComparisonAccess().getALSMoreLeftOperandAction_1_0_5_0(), + current); + + } + + } + + otherlv_12=(Token)match(input,40,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_12, grammarAccess.getALSComparisonAccess().getLessThanSignKeyword_1_0_5_1()); + + } + + } + + + } + break; + case 7 : + // InternalAlloyLanguage.g:1618:6: ( () otherlv_14= '<=' ) + { + // InternalAlloyLanguage.g:1618:6: ( () otherlv_14= '<=' ) + // InternalAlloyLanguage.g:1618:7: () otherlv_14= '<=' + { + // InternalAlloyLanguage.g:1618:7: () + // InternalAlloyLanguage.g:1619:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getALSComparisonAccess().getALSMeqLeftOperandAction_1_0_6_0(), + current); + + } + + } + + otherlv_14=(Token)match(input,41,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_14, grammarAccess.getALSComparisonAccess().getLessThanSignEqualsSignKeyword_1_0_6_1()); + + } + + } + + + } + break; + + } + + // InternalAlloyLanguage.g:1628:3: ( (lv_rightOperand_15_0= ruleALSOverride ) ) + // InternalAlloyLanguage.g:1629:1: (lv_rightOperand_15_0= ruleALSOverride ) + { + // InternalAlloyLanguage.g:1629:1: (lv_rightOperand_15_0= ruleALSOverride ) + // InternalAlloyLanguage.g:1630:3: lv_rightOperand_15_0= ruleALSOverride + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSComparisonAccess().getRightOperandALSOverrideParserRuleCall_1_1_0()); + + } + pushFollow(FOLLOW_2); + lv_rightOperand_15_0=ruleALSOverride(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSComparisonRule()); + } + set( + current, + "rightOperand", + lv_rightOperand_15_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSOverride"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSComparison" + + + // $ANTLR start "entryRuleALSOverride" + // InternalAlloyLanguage.g:1654:1: entryRuleALSOverride returns [EObject current=null] : iv_ruleALSOverride= ruleALSOverride EOF ; + public final EObject entryRuleALSOverride() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSOverride = null; + + + try { + // InternalAlloyLanguage.g:1655:2: (iv_ruleALSOverride= ruleALSOverride EOF ) + // InternalAlloyLanguage.g:1656:2: iv_ruleALSOverride= ruleALSOverride EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSOverrideRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSOverride=ruleALSOverride(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSOverride; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSOverride" + + + // $ANTLR start "ruleALSOverride" + // InternalAlloyLanguage.g:1663:1: ruleALSOverride returns [EObject current=null] : (this_ALSRangeRestrictionRight_0= ruleALSRangeRestrictionRight ( () otherlv_2= '++' ( (lv_rightOperand_3_0= ruleALSRangeRestrictionRight ) ) )? ) ; + public final EObject ruleALSOverride() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_ALSRangeRestrictionRight_0 = null; + + EObject lv_rightOperand_3_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:1666:28: ( (this_ALSRangeRestrictionRight_0= ruleALSRangeRestrictionRight ( () otherlv_2= '++' ( (lv_rightOperand_3_0= ruleALSRangeRestrictionRight ) ) )? ) ) + // InternalAlloyLanguage.g:1667:1: (this_ALSRangeRestrictionRight_0= ruleALSRangeRestrictionRight ( () otherlv_2= '++' ( (lv_rightOperand_3_0= ruleALSRangeRestrictionRight ) ) )? ) + { + // InternalAlloyLanguage.g:1667:1: (this_ALSRangeRestrictionRight_0= ruleALSRangeRestrictionRight ( () otherlv_2= '++' ( (lv_rightOperand_3_0= ruleALSRangeRestrictionRight ) ) )? ) + // InternalAlloyLanguage.g:1668:5: this_ALSRangeRestrictionRight_0= ruleALSRangeRestrictionRight ( () otherlv_2= '++' ( (lv_rightOperand_3_0= ruleALSRangeRestrictionRight ) ) )? + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSOverrideAccess().getALSRangeRestrictionRightParserRuleCall_0()); + + } + pushFollow(FOLLOW_25); + this_ALSRangeRestrictionRight_0=ruleALSRangeRestrictionRight(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSRangeRestrictionRight_0; + afterParserOrEnumRuleCall(); + + } + // InternalAlloyLanguage.g:1676:1: ( () otherlv_2= '++' ( (lv_rightOperand_3_0= ruleALSRangeRestrictionRight ) ) )? + int alt28=2; + int LA28_0 = input.LA(1); + + if ( (LA28_0==42) ) { + alt28=1; + } + switch (alt28) { + case 1 : + // InternalAlloyLanguage.g:1676:2: () otherlv_2= '++' ( (lv_rightOperand_3_0= ruleALSRangeRestrictionRight ) ) + { + // InternalAlloyLanguage.g:1676:2: () + // InternalAlloyLanguage.g:1677:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getALSOverrideAccess().getALSOverrideLeftOperandAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,42,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getALSOverrideAccess().getPlusSignPlusSignKeyword_1_1()); + + } + // InternalAlloyLanguage.g:1686:1: ( (lv_rightOperand_3_0= ruleALSRangeRestrictionRight ) ) + // InternalAlloyLanguage.g:1687:1: (lv_rightOperand_3_0= ruleALSRangeRestrictionRight ) + { + // InternalAlloyLanguage.g:1687:1: (lv_rightOperand_3_0= ruleALSRangeRestrictionRight ) + // InternalAlloyLanguage.g:1688:3: lv_rightOperand_3_0= ruleALSRangeRestrictionRight + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSOverrideAccess().getRightOperandALSRangeRestrictionRightParserRuleCall_1_2_0()); + + } + pushFollow(FOLLOW_2); + lv_rightOperand_3_0=ruleALSRangeRestrictionRight(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSOverrideRule()); + } + set( + current, + "rightOperand", + lv_rightOperand_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSRangeRestrictionRight"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSOverride" + + + // $ANTLR start "entryRuleALSRangeRestrictionRight" + // InternalAlloyLanguage.g:1712:1: entryRuleALSRangeRestrictionRight returns [EObject current=null] : iv_ruleALSRangeRestrictionRight= ruleALSRangeRestrictionRight EOF ; + public final EObject entryRuleALSRangeRestrictionRight() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSRangeRestrictionRight = null; + + + try { + // InternalAlloyLanguage.g:1713:2: (iv_ruleALSRangeRestrictionRight= ruleALSRangeRestrictionRight EOF ) + // InternalAlloyLanguage.g:1714:2: iv_ruleALSRangeRestrictionRight= ruleALSRangeRestrictionRight EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSRangeRestrictionRightRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSRangeRestrictionRight=ruleALSRangeRestrictionRight(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSRangeRestrictionRight; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSRangeRestrictionRight" + + + // $ANTLR start "ruleALSRangeRestrictionRight" + // InternalAlloyLanguage.g:1721:1: ruleALSRangeRestrictionRight returns [EObject current=null] : (this_ALSRangeRestrictionLeft_0= ruleALSRangeRestrictionLeft ( () otherlv_2= ':>' ( (lv_filter_3_0= ruleALSRangeRestrictionLeft ) ) )? ) ; + public final EObject ruleALSRangeRestrictionRight() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_ALSRangeRestrictionLeft_0 = null; + + EObject lv_filter_3_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:1724:28: ( (this_ALSRangeRestrictionLeft_0= ruleALSRangeRestrictionLeft ( () otherlv_2= ':>' ( (lv_filter_3_0= ruleALSRangeRestrictionLeft ) ) )? ) ) + // InternalAlloyLanguage.g:1725:1: (this_ALSRangeRestrictionLeft_0= ruleALSRangeRestrictionLeft ( () otherlv_2= ':>' ( (lv_filter_3_0= ruleALSRangeRestrictionLeft ) ) )? ) + { + // InternalAlloyLanguage.g:1725:1: (this_ALSRangeRestrictionLeft_0= ruleALSRangeRestrictionLeft ( () otherlv_2= ':>' ( (lv_filter_3_0= ruleALSRangeRestrictionLeft ) ) )? ) + // InternalAlloyLanguage.g:1726:5: this_ALSRangeRestrictionLeft_0= ruleALSRangeRestrictionLeft ( () otherlv_2= ':>' ( (lv_filter_3_0= ruleALSRangeRestrictionLeft ) ) )? + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSRangeRestrictionRightAccess().getALSRangeRestrictionLeftParserRuleCall_0()); + + } + pushFollow(FOLLOW_26); + this_ALSRangeRestrictionLeft_0=ruleALSRangeRestrictionLeft(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSRangeRestrictionLeft_0; + afterParserOrEnumRuleCall(); + + } + // InternalAlloyLanguage.g:1734:1: ( () otherlv_2= ':>' ( (lv_filter_3_0= ruleALSRangeRestrictionLeft ) ) )? + int alt29=2; + int LA29_0 = input.LA(1); + + if ( (LA29_0==43) ) { + alt29=1; + } + switch (alt29) { + case 1 : + // InternalAlloyLanguage.g:1734:2: () otherlv_2= ':>' ( (lv_filter_3_0= ruleALSRangeRestrictionLeft ) ) + { + // InternalAlloyLanguage.g:1734:2: () + // InternalAlloyLanguage.g:1735:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getALSRangeRestrictionRightAccess().getALSRangeRestrictionRightRelationAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,43,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getALSRangeRestrictionRightAccess().getColonGreaterThanSignKeyword_1_1()); + + } + // InternalAlloyLanguage.g:1744:1: ( (lv_filter_3_0= ruleALSRangeRestrictionLeft ) ) + // InternalAlloyLanguage.g:1745:1: (lv_filter_3_0= ruleALSRangeRestrictionLeft ) + { + // InternalAlloyLanguage.g:1745:1: (lv_filter_3_0= ruleALSRangeRestrictionLeft ) + // InternalAlloyLanguage.g:1746:3: lv_filter_3_0= ruleALSRangeRestrictionLeft + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSRangeRestrictionRightAccess().getFilterALSRangeRestrictionLeftParserRuleCall_1_2_0()); + + } + pushFollow(FOLLOW_2); + lv_filter_3_0=ruleALSRangeRestrictionLeft(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSRangeRestrictionRightRule()); + } + set( + current, + "filter", + lv_filter_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSRangeRestrictionLeft"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSRangeRestrictionRight" + + + // $ANTLR start "entryRuleALSRangeRestrictionLeft" + // InternalAlloyLanguage.g:1770:1: entryRuleALSRangeRestrictionLeft returns [EObject current=null] : iv_ruleALSRangeRestrictionLeft= ruleALSRangeRestrictionLeft EOF ; + public final EObject entryRuleALSRangeRestrictionLeft() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSRangeRestrictionLeft = null; + + + try { + // InternalAlloyLanguage.g:1771:2: (iv_ruleALSRangeRestrictionLeft= ruleALSRangeRestrictionLeft EOF ) + // InternalAlloyLanguage.g:1772:2: iv_ruleALSRangeRestrictionLeft= ruleALSRangeRestrictionLeft EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSRangeRestrictionLeftRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSRangeRestrictionLeft=ruleALSRangeRestrictionLeft(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSRangeRestrictionLeft; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSRangeRestrictionLeft" + + + // $ANTLR start "ruleALSRangeRestrictionLeft" + // InternalAlloyLanguage.g:1779:1: ruleALSRangeRestrictionLeft returns [EObject current=null] : (this_ALSJoin_0= ruleALSJoin ( () otherlv_2= '<:' ( (lv_relation_3_0= ruleALSJoin ) ) )? ) ; + public final EObject ruleALSRangeRestrictionLeft() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_ALSJoin_0 = null; + + EObject lv_relation_3_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:1782:28: ( (this_ALSJoin_0= ruleALSJoin ( () otherlv_2= '<:' ( (lv_relation_3_0= ruleALSJoin ) ) )? ) ) + // InternalAlloyLanguage.g:1783:1: (this_ALSJoin_0= ruleALSJoin ( () otherlv_2= '<:' ( (lv_relation_3_0= ruleALSJoin ) ) )? ) + { + // InternalAlloyLanguage.g:1783:1: (this_ALSJoin_0= ruleALSJoin ( () otherlv_2= '<:' ( (lv_relation_3_0= ruleALSJoin ) ) )? ) + // InternalAlloyLanguage.g:1784:5: this_ALSJoin_0= ruleALSJoin ( () otherlv_2= '<:' ( (lv_relation_3_0= ruleALSJoin ) ) )? + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSRangeRestrictionLeftAccess().getALSJoinParserRuleCall_0()); + + } + pushFollow(FOLLOW_27); + this_ALSJoin_0=ruleALSJoin(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSJoin_0; + afterParserOrEnumRuleCall(); + + } + // InternalAlloyLanguage.g:1792:1: ( () otherlv_2= '<:' ( (lv_relation_3_0= ruleALSJoin ) ) )? + int alt30=2; + int LA30_0 = input.LA(1); + + if ( (LA30_0==44) ) { + alt30=1; + } + switch (alt30) { + case 1 : + // InternalAlloyLanguage.g:1792:2: () otherlv_2= '<:' ( (lv_relation_3_0= ruleALSJoin ) ) + { + // InternalAlloyLanguage.g:1792:2: () + // InternalAlloyLanguage.g:1793:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getALSRangeRestrictionLeftAccess().getALSRangeRestrictionLeftFilterAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,44,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getALSRangeRestrictionLeftAccess().getLessThanSignColonKeyword_1_1()); + + } + // InternalAlloyLanguage.g:1802:1: ( (lv_relation_3_0= ruleALSJoin ) ) + // InternalAlloyLanguage.g:1803:1: (lv_relation_3_0= ruleALSJoin ) + { + // InternalAlloyLanguage.g:1803:1: (lv_relation_3_0= ruleALSJoin ) + // InternalAlloyLanguage.g:1804:3: lv_relation_3_0= ruleALSJoin + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSRangeRestrictionLeftAccess().getRelationALSJoinParserRuleCall_1_2_0()); + + } + pushFollow(FOLLOW_2); + lv_relation_3_0=ruleALSJoin(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSRangeRestrictionLeftRule()); + } + set( + current, + "relation", + lv_relation_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSJoin"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSRangeRestrictionLeft" + + + // $ANTLR start "entryRuleALSJoin" + // InternalAlloyLanguage.g:1828:1: entryRuleALSJoin returns [EObject current=null] : iv_ruleALSJoin= ruleALSJoin EOF ; + public final EObject entryRuleALSJoin() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSJoin = null; + + + try { + // InternalAlloyLanguage.g:1829:2: (iv_ruleALSJoin= ruleALSJoin EOF ) + // InternalAlloyLanguage.g:1830:2: iv_ruleALSJoin= ruleALSJoin EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSJoinRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSJoin=ruleALSJoin(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSJoin; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSJoin" + + + // $ANTLR start "ruleALSJoin" + // InternalAlloyLanguage.g:1837:1: ruleALSJoin returns [EObject current=null] : (this_ALSMinus_0= ruleALSMinus ( () otherlv_2= '.' ( (lv_rightOperand_3_0= ruleALSMinus ) ) )* ) ; + public final EObject ruleALSJoin() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_ALSMinus_0 = null; + + EObject lv_rightOperand_3_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:1840:28: ( (this_ALSMinus_0= ruleALSMinus ( () otherlv_2= '.' ( (lv_rightOperand_3_0= ruleALSMinus ) ) )* ) ) + // InternalAlloyLanguage.g:1841:1: (this_ALSMinus_0= ruleALSMinus ( () otherlv_2= '.' ( (lv_rightOperand_3_0= ruleALSMinus ) ) )* ) + { + // InternalAlloyLanguage.g:1841:1: (this_ALSMinus_0= ruleALSMinus ( () otherlv_2= '.' ( (lv_rightOperand_3_0= ruleALSMinus ) ) )* ) + // InternalAlloyLanguage.g:1842:5: this_ALSMinus_0= ruleALSMinus ( () otherlv_2= '.' ( (lv_rightOperand_3_0= ruleALSMinus ) ) )* + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSJoinAccess().getALSMinusParserRuleCall_0()); + + } + pushFollow(FOLLOW_28); + this_ALSMinus_0=ruleALSMinus(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSMinus_0; + afterParserOrEnumRuleCall(); + + } + // InternalAlloyLanguage.g:1850:1: ( () otherlv_2= '.' ( (lv_rightOperand_3_0= ruleALSMinus ) ) )* + loop31: + do { + int alt31=2; + int LA31_0 = input.LA(1); + + if ( (LA31_0==45) ) { + alt31=1; + } + + + switch (alt31) { + case 1 : + // InternalAlloyLanguage.g:1850:2: () otherlv_2= '.' ( (lv_rightOperand_3_0= ruleALSMinus ) ) + { + // InternalAlloyLanguage.g:1850:2: () + // InternalAlloyLanguage.g:1851:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getALSJoinAccess().getALSJoinLeftOperandAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,45,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getALSJoinAccess().getFullStopKeyword_1_1()); + + } + // InternalAlloyLanguage.g:1860:1: ( (lv_rightOperand_3_0= ruleALSMinus ) ) + // InternalAlloyLanguage.g:1861:1: (lv_rightOperand_3_0= ruleALSMinus ) + { + // InternalAlloyLanguage.g:1861:1: (lv_rightOperand_3_0= ruleALSMinus ) + // InternalAlloyLanguage.g:1862:3: lv_rightOperand_3_0= ruleALSMinus + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSJoinAccess().getRightOperandALSMinusParserRuleCall_1_2_0()); + + } + pushFollow(FOLLOW_28); + lv_rightOperand_3_0=ruleALSMinus(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSJoinRule()); + } + set( + current, + "rightOperand", + lv_rightOperand_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSMinus"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop31; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSJoin" + + + // $ANTLR start "entryRuleALSMinus" + // InternalAlloyLanguage.g:1886:1: entryRuleALSMinus returns [EObject current=null] : iv_ruleALSMinus= ruleALSMinus EOF ; + public final EObject entryRuleALSMinus() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSMinus = null; + + + try { + // InternalAlloyLanguage.g:1887:2: (iv_ruleALSMinus= ruleALSMinus EOF ) + // InternalAlloyLanguage.g:1888:2: iv_ruleALSMinus= ruleALSMinus EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSMinusRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSMinus=ruleALSMinus(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSMinus; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSMinus" + + + // $ANTLR start "ruleALSMinus" + // InternalAlloyLanguage.g:1895:1: ruleALSMinus returns [EObject current=null] : (this_ALSPlus_0= ruleALSPlus ( () otherlv_2= '-' ( (lv_rightOperand_3_0= ruleALSPlus ) ) )* ) ; + public final EObject ruleALSMinus() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_ALSPlus_0 = null; + + EObject lv_rightOperand_3_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:1898:28: ( (this_ALSPlus_0= ruleALSPlus ( () otherlv_2= '-' ( (lv_rightOperand_3_0= ruleALSPlus ) ) )* ) ) + // InternalAlloyLanguage.g:1899:1: (this_ALSPlus_0= ruleALSPlus ( () otherlv_2= '-' ( (lv_rightOperand_3_0= ruleALSPlus ) ) )* ) + { + // InternalAlloyLanguage.g:1899:1: (this_ALSPlus_0= ruleALSPlus ( () otherlv_2= '-' ( (lv_rightOperand_3_0= ruleALSPlus ) ) )* ) + // InternalAlloyLanguage.g:1900:5: this_ALSPlus_0= ruleALSPlus ( () otherlv_2= '-' ( (lv_rightOperand_3_0= ruleALSPlus ) ) )* + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSMinusAccess().getALSPlusParserRuleCall_0()); + + } + pushFollow(FOLLOW_29); + this_ALSPlus_0=ruleALSPlus(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSPlus_0; + afterParserOrEnumRuleCall(); + + } + // InternalAlloyLanguage.g:1908:1: ( () otherlv_2= '-' ( (lv_rightOperand_3_0= ruleALSPlus ) ) )* + loop32: + do { + int alt32=2; + int LA32_0 = input.LA(1); + + if ( (LA32_0==46) ) { + alt32=1; + } + + + switch (alt32) { + case 1 : + // InternalAlloyLanguage.g:1908:2: () otherlv_2= '-' ( (lv_rightOperand_3_0= ruleALSPlus ) ) + { + // InternalAlloyLanguage.g:1908:2: () + // InternalAlloyLanguage.g:1909:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getALSMinusAccess().getALSMinusLeftOperandAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,46,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getALSMinusAccess().getHyphenMinusKeyword_1_1()); + + } + // InternalAlloyLanguage.g:1918:1: ( (lv_rightOperand_3_0= ruleALSPlus ) ) + // InternalAlloyLanguage.g:1919:1: (lv_rightOperand_3_0= ruleALSPlus ) + { + // InternalAlloyLanguage.g:1919:1: (lv_rightOperand_3_0= ruleALSPlus ) + // InternalAlloyLanguage.g:1920:3: lv_rightOperand_3_0= ruleALSPlus + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSMinusAccess().getRightOperandALSPlusParserRuleCall_1_2_0()); + + } + pushFollow(FOLLOW_29); + lv_rightOperand_3_0=ruleALSPlus(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSMinusRule()); + } + set( + current, + "rightOperand", + lv_rightOperand_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSPlus"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop32; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSMinus" + + + // $ANTLR start "entryRuleALSPlus" + // InternalAlloyLanguage.g:1944:1: entryRuleALSPlus returns [EObject current=null] : iv_ruleALSPlus= ruleALSPlus EOF ; + public final EObject entryRuleALSPlus() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSPlus = null; + + + try { + // InternalAlloyLanguage.g:1945:2: (iv_ruleALSPlus= ruleALSPlus EOF ) + // InternalAlloyLanguage.g:1946:2: iv_ruleALSPlus= ruleALSPlus EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSPlusRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSPlus=ruleALSPlus(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSPlus; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSPlus" + + + // $ANTLR start "ruleALSPlus" + // InternalAlloyLanguage.g:1953:1: ruleALSPlus returns [EObject current=null] : (this_ALSIntersection_0= ruleALSIntersection ( () otherlv_2= '+' ( (lv_rightOperand_3_0= ruleALSIntersection ) ) )* ) ; + public final EObject ruleALSPlus() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_ALSIntersection_0 = null; + + EObject lv_rightOperand_3_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:1956:28: ( (this_ALSIntersection_0= ruleALSIntersection ( () otherlv_2= '+' ( (lv_rightOperand_3_0= ruleALSIntersection ) ) )* ) ) + // InternalAlloyLanguage.g:1957:1: (this_ALSIntersection_0= ruleALSIntersection ( () otherlv_2= '+' ( (lv_rightOperand_3_0= ruleALSIntersection ) ) )* ) + { + // InternalAlloyLanguage.g:1957:1: (this_ALSIntersection_0= ruleALSIntersection ( () otherlv_2= '+' ( (lv_rightOperand_3_0= ruleALSIntersection ) ) )* ) + // InternalAlloyLanguage.g:1958:5: this_ALSIntersection_0= ruleALSIntersection ( () otherlv_2= '+' ( (lv_rightOperand_3_0= ruleALSIntersection ) ) )* + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSPlusAccess().getALSIntersectionParserRuleCall_0()); + + } + pushFollow(FOLLOW_30); + this_ALSIntersection_0=ruleALSIntersection(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSIntersection_0; + afterParserOrEnumRuleCall(); + + } + // InternalAlloyLanguage.g:1966:1: ( () otherlv_2= '+' ( (lv_rightOperand_3_0= ruleALSIntersection ) ) )* + loop33: + do { + int alt33=2; + int LA33_0 = input.LA(1); + + if ( (LA33_0==19) ) { + alt33=1; + } + + + switch (alt33) { + case 1 : + // InternalAlloyLanguage.g:1966:2: () otherlv_2= '+' ( (lv_rightOperand_3_0= ruleALSIntersection ) ) + { + // InternalAlloyLanguage.g:1966:2: () + // InternalAlloyLanguage.g:1967:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getALSPlusAccess().getALSPlusLeftOperandAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,19,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getALSPlusAccess().getPlusSignKeyword_1_1()); + + } + // InternalAlloyLanguage.g:1976:1: ( (lv_rightOperand_3_0= ruleALSIntersection ) ) + // InternalAlloyLanguage.g:1977:1: (lv_rightOperand_3_0= ruleALSIntersection ) + { + // InternalAlloyLanguage.g:1977:1: (lv_rightOperand_3_0= ruleALSIntersection ) + // InternalAlloyLanguage.g:1978:3: lv_rightOperand_3_0= ruleALSIntersection + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSPlusAccess().getRightOperandALSIntersectionParserRuleCall_1_2_0()); + + } + pushFollow(FOLLOW_30); + lv_rightOperand_3_0=ruleALSIntersection(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSPlusRule()); + } + set( + current, + "rightOperand", + lv_rightOperand_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSIntersection"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop33; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSPlus" + + + // $ANTLR start "entryRuleALSIntersection" + // InternalAlloyLanguage.g:2002:1: entryRuleALSIntersection returns [EObject current=null] : iv_ruleALSIntersection= ruleALSIntersection EOF ; + public final EObject entryRuleALSIntersection() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSIntersection = null; + + + try { + // InternalAlloyLanguage.g:2003:2: (iv_ruleALSIntersection= ruleALSIntersection EOF ) + // InternalAlloyLanguage.g:2004:2: iv_ruleALSIntersection= ruleALSIntersection EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSIntersectionRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSIntersection=ruleALSIntersection(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSIntersection; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSIntersection" + + + // $ANTLR start "ruleALSIntersection" + // InternalAlloyLanguage.g:2011:1: ruleALSIntersection returns [EObject current=null] : (this_ALSDirectProduct_0= ruleALSDirectProduct ( () otherlv_2= '&' ( (lv_rightOperand_3_0= ruleALSDirectProduct ) ) )* ) ; + public final EObject ruleALSIntersection() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + EObject this_ALSDirectProduct_0 = null; + + EObject lv_rightOperand_3_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:2014:28: ( (this_ALSDirectProduct_0= ruleALSDirectProduct ( () otherlv_2= '&' ( (lv_rightOperand_3_0= ruleALSDirectProduct ) ) )* ) ) + // InternalAlloyLanguage.g:2015:1: (this_ALSDirectProduct_0= ruleALSDirectProduct ( () otherlv_2= '&' ( (lv_rightOperand_3_0= ruleALSDirectProduct ) ) )* ) + { + // InternalAlloyLanguage.g:2015:1: (this_ALSDirectProduct_0= ruleALSDirectProduct ( () otherlv_2= '&' ( (lv_rightOperand_3_0= ruleALSDirectProduct ) ) )* ) + // InternalAlloyLanguage.g:2016:5: this_ALSDirectProduct_0= ruleALSDirectProduct ( () otherlv_2= '&' ( (lv_rightOperand_3_0= ruleALSDirectProduct ) ) )* + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSIntersectionAccess().getALSDirectProductParserRuleCall_0()); + + } + pushFollow(FOLLOW_31); + this_ALSDirectProduct_0=ruleALSDirectProduct(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSDirectProduct_0; + afterParserOrEnumRuleCall(); + + } + // InternalAlloyLanguage.g:2024:1: ( () otherlv_2= '&' ( (lv_rightOperand_3_0= ruleALSDirectProduct ) ) )* + loop34: + do { + int alt34=2; + int LA34_0 = input.LA(1); + + if ( (LA34_0==47) ) { + alt34=1; + } + + + switch (alt34) { + case 1 : + // InternalAlloyLanguage.g:2024:2: () otherlv_2= '&' ( (lv_rightOperand_3_0= ruleALSDirectProduct ) ) + { + // InternalAlloyLanguage.g:2024:2: () + // InternalAlloyLanguage.g:2025:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getALSIntersectionAccess().getALSIntersectionLeftOperandAction_1_0(), + current); + + } + + } + + otherlv_2=(Token)match(input,47,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getALSIntersectionAccess().getAmpersandKeyword_1_1()); + + } + // InternalAlloyLanguage.g:2034:1: ( (lv_rightOperand_3_0= ruleALSDirectProduct ) ) + // InternalAlloyLanguage.g:2035:1: (lv_rightOperand_3_0= ruleALSDirectProduct ) + { + // InternalAlloyLanguage.g:2035:1: (lv_rightOperand_3_0= ruleALSDirectProduct ) + // InternalAlloyLanguage.g:2036:3: lv_rightOperand_3_0= ruleALSDirectProduct + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSIntersectionAccess().getRightOperandALSDirectProductParserRuleCall_1_2_0()); + + } + pushFollow(FOLLOW_31); + lv_rightOperand_3_0=ruleALSDirectProduct(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSIntersectionRule()); + } + set( + current, + "rightOperand", + lv_rightOperand_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSDirectProduct"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop34; + } + } while (true); + + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSIntersection" + + + // $ANTLR start "entryRuleALSDirectProduct" + // InternalAlloyLanguage.g:2060:1: entryRuleALSDirectProduct returns [EObject current=null] : iv_ruleALSDirectProduct= ruleALSDirectProduct EOF ; + public final EObject entryRuleALSDirectProduct() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSDirectProduct = null; + + + try { + // InternalAlloyLanguage.g:2061:2: (iv_ruleALSDirectProduct= ruleALSDirectProduct EOF ) + // InternalAlloyLanguage.g:2062:2: iv_ruleALSDirectProduct= ruleALSDirectProduct EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSDirectProductRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSDirectProduct=ruleALSDirectProduct(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSDirectProduct; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSDirectProduct" + + + // $ANTLR start "ruleALSDirectProduct" + // InternalAlloyLanguage.g:2069:1: ruleALSDirectProduct returns [EObject current=null] : (this_ALSPreficed_0= ruleALSPreficed ( () ( (lv_leftMultiplicit_2_0= ruleALSMultiplicity ) )? otherlv_3= '->' ( (lv_rightMultiplicit_4_0= ruleALSMultiplicity ) )? ( (lv_rightOperand_5_0= ruleALSPreficed ) ) )? ) ; + public final EObject ruleALSDirectProduct() throws RecognitionException { + EObject current = null; + + Token otherlv_3=null; + EObject this_ALSPreficed_0 = null; + + Enumerator lv_leftMultiplicit_2_0 = null; + + Enumerator lv_rightMultiplicit_4_0 = null; + + EObject lv_rightOperand_5_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:2072:28: ( (this_ALSPreficed_0= ruleALSPreficed ( () ( (lv_leftMultiplicit_2_0= ruleALSMultiplicity ) )? otherlv_3= '->' ( (lv_rightMultiplicit_4_0= ruleALSMultiplicity ) )? ( (lv_rightOperand_5_0= ruleALSPreficed ) ) )? ) ) + // InternalAlloyLanguage.g:2073:1: (this_ALSPreficed_0= ruleALSPreficed ( () ( (lv_leftMultiplicit_2_0= ruleALSMultiplicity ) )? otherlv_3= '->' ( (lv_rightMultiplicit_4_0= ruleALSMultiplicity ) )? ( (lv_rightOperand_5_0= ruleALSPreficed ) ) )? ) + { + // InternalAlloyLanguage.g:2073:1: (this_ALSPreficed_0= ruleALSPreficed ( () ( (lv_leftMultiplicit_2_0= ruleALSMultiplicity ) )? otherlv_3= '->' ( (lv_rightMultiplicit_4_0= ruleALSMultiplicity ) )? ( (lv_rightOperand_5_0= ruleALSPreficed ) ) )? ) + // InternalAlloyLanguage.g:2074:5: this_ALSPreficed_0= ruleALSPreficed ( () ( (lv_leftMultiplicit_2_0= ruleALSMultiplicity ) )? otherlv_3= '->' ( (lv_rightMultiplicit_4_0= ruleALSMultiplicity ) )? ( (lv_rightOperand_5_0= ruleALSPreficed ) ) )? + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSDirectProductAccess().getALSPreficedParserRuleCall_0()); + + } + pushFollow(FOLLOW_32); + this_ALSPreficed_0=ruleALSPreficed(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSPreficed_0; + afterParserOrEnumRuleCall(); + + } + // InternalAlloyLanguage.g:2082:1: ( () ( (lv_leftMultiplicit_2_0= ruleALSMultiplicity ) )? otherlv_3= '->' ( (lv_rightMultiplicit_4_0= ruleALSMultiplicity ) )? ( (lv_rightOperand_5_0= ruleALSPreficed ) ) )? + int alt37=2; + int LA37_0 = input.LA(1); + + if ( (LA37_0==48||(LA37_0>=66 && LA37_0<=71)) ) { + alt37=1; + } + switch (alt37) { + case 1 : + // InternalAlloyLanguage.g:2082:2: () ( (lv_leftMultiplicit_2_0= ruleALSMultiplicity ) )? otherlv_3= '->' ( (lv_rightMultiplicit_4_0= ruleALSMultiplicity ) )? ( (lv_rightOperand_5_0= ruleALSPreficed ) ) + { + // InternalAlloyLanguage.g:2082:2: () + // InternalAlloyLanguage.g:2083:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getALSDirectProductAccess().getALSDirectProductLeftOperandAction_1_0(), + current); + + } + + } + + // InternalAlloyLanguage.g:2088:2: ( (lv_leftMultiplicit_2_0= ruleALSMultiplicity ) )? + int alt35=2; + int LA35_0 = input.LA(1); + + if ( ((LA35_0>=66 && LA35_0<=71)) ) { + alt35=1; + } + switch (alt35) { + case 1 : + // InternalAlloyLanguage.g:2089:1: (lv_leftMultiplicit_2_0= ruleALSMultiplicity ) + { + // InternalAlloyLanguage.g:2089:1: (lv_leftMultiplicit_2_0= ruleALSMultiplicity ) + // InternalAlloyLanguage.g:2090:3: lv_leftMultiplicit_2_0= ruleALSMultiplicity + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSDirectProductAccess().getLeftMultiplicitALSMultiplicityEnumRuleCall_1_1_0()); + + } + pushFollow(FOLLOW_33); + lv_leftMultiplicit_2_0=ruleALSMultiplicity(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSDirectProductRule()); + } + set( + current, + "leftMultiplicit", + lv_leftMultiplicit_2_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSMultiplicity"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + break; + + } + + otherlv_3=(Token)match(input,48,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getALSDirectProductAccess().getHyphenMinusGreaterThanSignKeyword_1_2()); + + } + // InternalAlloyLanguage.g:2110:1: ( (lv_rightMultiplicit_4_0= ruleALSMultiplicity ) )? + int alt36=2; + int LA36_0 = input.LA(1); + + if ( ((LA36_0>=66 && LA36_0<=71)) ) { + alt36=1; + } + switch (alt36) { + case 1 : + // InternalAlloyLanguage.g:2111:1: (lv_rightMultiplicit_4_0= ruleALSMultiplicity ) + { + // InternalAlloyLanguage.g:2111:1: (lv_rightMultiplicit_4_0= ruleALSMultiplicity ) + // InternalAlloyLanguage.g:2112:3: lv_rightMultiplicit_4_0= ruleALSMultiplicity + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSDirectProductAccess().getRightMultiplicitALSMultiplicityEnumRuleCall_1_3_0()); + + } + pushFollow(FOLLOW_12); + lv_rightMultiplicit_4_0=ruleALSMultiplicity(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSDirectProductRule()); + } + set( + current, + "rightMultiplicit", + lv_rightMultiplicit_4_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSMultiplicity"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + break; + + } + + // InternalAlloyLanguage.g:2128:3: ( (lv_rightOperand_5_0= ruleALSPreficed ) ) + // InternalAlloyLanguage.g:2129:1: (lv_rightOperand_5_0= ruleALSPreficed ) + { + // InternalAlloyLanguage.g:2129:1: (lv_rightOperand_5_0= ruleALSPreficed ) + // InternalAlloyLanguage.g:2130:3: lv_rightOperand_5_0= ruleALSPreficed + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSDirectProductAccess().getRightOperandALSPreficedParserRuleCall_1_4_0()); + + } + pushFollow(FOLLOW_2); + lv_rightOperand_5_0=ruleALSPreficed(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSDirectProductRule()); + } + set( + current, + "rightOperand", + lv_rightOperand_5_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSPreficed"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSDirectProduct" + + + // $ANTLR start "entryRuleALSPreficed" + // InternalAlloyLanguage.g:2154:1: entryRuleALSPreficed returns [EObject current=null] : iv_ruleALSPreficed= ruleALSPreficed EOF ; + public final EObject entryRuleALSPreficed() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSPreficed = null; + + + try { + // InternalAlloyLanguage.g:2155:2: (iv_ruleALSPreficed= ruleALSPreficed EOF ) + // InternalAlloyLanguage.g:2156:2: iv_ruleALSPreficed= ruleALSPreficed EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSPreficedRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSPreficed=ruleALSPreficed(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSPreficed; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSPreficed" + + + // $ANTLR start "ruleALSPreficed" + // InternalAlloyLanguage.g:2163:1: ruleALSPreficed returns [EObject current=null] : ( ( () ( ( ( '!' | 'not' ) )=> (otherlv_1= '!' | otherlv_2= 'not' ) ) ( (lv_operand_3_0= ruleALSBasicRelationTerm ) ) ) | ( () ( ( '~' )=>otherlv_5= '~' ) ( (lv_operand_6_0= ruleALSBasicRelationTerm ) ) ) | ( () otherlv_8= '^' ( (lv_operand_9_0= ruleALSBasicRelationTerm ) ) ) | ( () otherlv_11= '*' ( (lv_operand_12_0= ruleALSBasicRelationTerm ) ) ) | ( () otherlv_14= '#' ( (lv_operand_15_0= ruleALSBasicRelationTerm ) ) ) | ( () ( ( '-' )=>otherlv_17= '-' ) ( (lv_operand_18_0= ruleALSBasicRelationTerm ) ) ) | ( () otherlv_20= 'sum' ( (lv_variables_21_0= ruleALSVariableDeclaration ) ) (otherlv_22= ',' ( (lv_variables_23_0= ruleALSVariableDeclaration ) ) )* otherlv_24= '{' ( (lv_expression_25_0= ruleALSTerm ) ) otherlv_26= '}' ) | ( () ( ( (otherlv_28= RULE_ID ) ) | ( (lv_referredNumericOperator_29_0= ruleALSNumericOperator ) ) ) otherlv_30= '[' ( (lv_params_31_0= ruleALSTerm ) ) (otherlv_32= ',' ( (lv_params_33_0= ruleALSTerm ) ) )* otherlv_34= ']' ) | this_ALSBasicRelationTerm_35= ruleALSBasicRelationTerm ) ; + public final EObject ruleALSPreficed() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_2=null; + Token otherlv_5=null; + Token otherlv_8=null; + Token otherlv_11=null; + Token otherlv_14=null; + Token otherlv_17=null; + Token otherlv_20=null; + Token otherlv_22=null; + Token otherlv_24=null; + Token otherlv_26=null; + Token otherlv_28=null; + Token otherlv_30=null; + Token otherlv_32=null; + Token otherlv_34=null; + EObject lv_operand_3_0 = null; + + EObject lv_operand_6_0 = null; + + EObject lv_operand_9_0 = null; + + EObject lv_operand_12_0 = null; + + EObject lv_operand_15_0 = null; + + EObject lv_operand_18_0 = null; + + EObject lv_variables_21_0 = null; + + EObject lv_variables_23_0 = null; + + EObject lv_expression_25_0 = null; + + Enumerator lv_referredNumericOperator_29_0 = null; + + EObject lv_params_31_0 = null; + + EObject lv_params_33_0 = null; + + EObject this_ALSBasicRelationTerm_35 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:2166:28: ( ( ( () ( ( ( '!' | 'not' ) )=> (otherlv_1= '!' | otherlv_2= 'not' ) ) ( (lv_operand_3_0= ruleALSBasicRelationTerm ) ) ) | ( () ( ( '~' )=>otherlv_5= '~' ) ( (lv_operand_6_0= ruleALSBasicRelationTerm ) ) ) | ( () otherlv_8= '^' ( (lv_operand_9_0= ruleALSBasicRelationTerm ) ) ) | ( () otherlv_11= '*' ( (lv_operand_12_0= ruleALSBasicRelationTerm ) ) ) | ( () otherlv_14= '#' ( (lv_operand_15_0= ruleALSBasicRelationTerm ) ) ) | ( () ( ( '-' )=>otherlv_17= '-' ) ( (lv_operand_18_0= ruleALSBasicRelationTerm ) ) ) | ( () otherlv_20= 'sum' ( (lv_variables_21_0= ruleALSVariableDeclaration ) ) (otherlv_22= ',' ( (lv_variables_23_0= ruleALSVariableDeclaration ) ) )* otherlv_24= '{' ( (lv_expression_25_0= ruleALSTerm ) ) otherlv_26= '}' ) | ( () ( ( (otherlv_28= RULE_ID ) ) | ( (lv_referredNumericOperator_29_0= ruleALSNumericOperator ) ) ) otherlv_30= '[' ( (lv_params_31_0= ruleALSTerm ) ) (otherlv_32= ',' ( (lv_params_33_0= ruleALSTerm ) ) )* otherlv_34= ']' ) | this_ALSBasicRelationTerm_35= ruleALSBasicRelationTerm ) ) + // InternalAlloyLanguage.g:2167:1: ( ( () ( ( ( '!' | 'not' ) )=> (otherlv_1= '!' | otherlv_2= 'not' ) ) ( (lv_operand_3_0= ruleALSBasicRelationTerm ) ) ) | ( () ( ( '~' )=>otherlv_5= '~' ) ( (lv_operand_6_0= ruleALSBasicRelationTerm ) ) ) | ( () otherlv_8= '^' ( (lv_operand_9_0= ruleALSBasicRelationTerm ) ) ) | ( () otherlv_11= '*' ( (lv_operand_12_0= ruleALSBasicRelationTerm ) ) ) | ( () otherlv_14= '#' ( (lv_operand_15_0= ruleALSBasicRelationTerm ) ) ) | ( () ( ( '-' )=>otherlv_17= '-' ) ( (lv_operand_18_0= ruleALSBasicRelationTerm ) ) ) | ( () otherlv_20= 'sum' ( (lv_variables_21_0= ruleALSVariableDeclaration ) ) (otherlv_22= ',' ( (lv_variables_23_0= ruleALSVariableDeclaration ) ) )* otherlv_24= '{' ( (lv_expression_25_0= ruleALSTerm ) ) otherlv_26= '}' ) | ( () ( ( (otherlv_28= RULE_ID ) ) | ( (lv_referredNumericOperator_29_0= ruleALSNumericOperator ) ) ) otherlv_30= '[' ( (lv_params_31_0= ruleALSTerm ) ) (otherlv_32= ',' ( (lv_params_33_0= ruleALSTerm ) ) )* otherlv_34= ']' ) | this_ALSBasicRelationTerm_35= ruleALSBasicRelationTerm ) + { + // InternalAlloyLanguage.g:2167:1: ( ( () ( ( ( '!' | 'not' ) )=> (otherlv_1= '!' | otherlv_2= 'not' ) ) ( (lv_operand_3_0= ruleALSBasicRelationTerm ) ) ) | ( () ( ( '~' )=>otherlv_5= '~' ) ( (lv_operand_6_0= ruleALSBasicRelationTerm ) ) ) | ( () otherlv_8= '^' ( (lv_operand_9_0= ruleALSBasicRelationTerm ) ) ) | ( () otherlv_11= '*' ( (lv_operand_12_0= ruleALSBasicRelationTerm ) ) ) | ( () otherlv_14= '#' ( (lv_operand_15_0= ruleALSBasicRelationTerm ) ) ) | ( () ( ( '-' )=>otherlv_17= '-' ) ( (lv_operand_18_0= ruleALSBasicRelationTerm ) ) ) | ( () otherlv_20= 'sum' ( (lv_variables_21_0= ruleALSVariableDeclaration ) ) (otherlv_22= ',' ( (lv_variables_23_0= ruleALSVariableDeclaration ) ) )* otherlv_24= '{' ( (lv_expression_25_0= ruleALSTerm ) ) otherlv_26= '}' ) | ( () ( ( (otherlv_28= RULE_ID ) ) | ( (lv_referredNumericOperator_29_0= ruleALSNumericOperator ) ) ) otherlv_30= '[' ( (lv_params_31_0= ruleALSTerm ) ) (otherlv_32= ',' ( (lv_params_33_0= ruleALSTerm ) ) )* otherlv_34= ']' ) | this_ALSBasicRelationTerm_35= ruleALSBasicRelationTerm ) + int alt42=9; + alt42 = dfa42.predict(input); + switch (alt42) { + case 1 : + // InternalAlloyLanguage.g:2167:2: ( () ( ( ( '!' | 'not' ) )=> (otherlv_1= '!' | otherlv_2= 'not' ) ) ( (lv_operand_3_0= ruleALSBasicRelationTerm ) ) ) + { + // InternalAlloyLanguage.g:2167:2: ( () ( ( ( '!' | 'not' ) )=> (otherlv_1= '!' | otherlv_2= 'not' ) ) ( (lv_operand_3_0= ruleALSBasicRelationTerm ) ) ) + // InternalAlloyLanguage.g:2167:3: () ( ( ( '!' | 'not' ) )=> (otherlv_1= '!' | otherlv_2= 'not' ) ) ( (lv_operand_3_0= ruleALSBasicRelationTerm ) ) + { + // InternalAlloyLanguage.g:2167:3: () + // InternalAlloyLanguage.g:2168:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getALSPreficedAccess().getALSNotAction_0_0(), + current); + + } + + } + + // InternalAlloyLanguage.g:2173:2: ( ( ( '!' | 'not' ) )=> (otherlv_1= '!' | otherlv_2= 'not' ) ) + // InternalAlloyLanguage.g:2173:3: ( ( '!' | 'not' ) )=> (otherlv_1= '!' | otherlv_2= 'not' ) + { + // InternalAlloyLanguage.g:2176:5: (otherlv_1= '!' | otherlv_2= 'not' ) + int alt38=2; + int LA38_0 = input.LA(1); + + if ( (LA38_0==49) ) { + alt38=1; + } + else if ( (LA38_0==50) ) { + alt38=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 38, 0, input); + + throw nvae; + } + switch (alt38) { + case 1 : + // InternalAlloyLanguage.g:2176:7: otherlv_1= '!' + { + otherlv_1=(Token)match(input,49,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getALSPreficedAccess().getExclamationMarkKeyword_0_1_0_0()); + + } + + } + break; + case 2 : + // InternalAlloyLanguage.g:2181:7: otherlv_2= 'not' + { + otherlv_2=(Token)match(input,50,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getALSPreficedAccess().getNotKeyword_0_1_0_1()); + + } + + } + break; + + } + + + } + + // InternalAlloyLanguage.g:2185:3: ( (lv_operand_3_0= ruleALSBasicRelationTerm ) ) + // InternalAlloyLanguage.g:2186:1: (lv_operand_3_0= ruleALSBasicRelationTerm ) + { + // InternalAlloyLanguage.g:2186:1: (lv_operand_3_0= ruleALSBasicRelationTerm ) + // InternalAlloyLanguage.g:2187:3: lv_operand_3_0= ruleALSBasicRelationTerm + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_0_2_0()); + + } + pushFollow(FOLLOW_2); + lv_operand_3_0=ruleALSBasicRelationTerm(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + set( + current, + "operand", + lv_operand_3_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSBasicRelationTerm"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:2204:6: ( () ( ( '~' )=>otherlv_5= '~' ) ( (lv_operand_6_0= ruleALSBasicRelationTerm ) ) ) + { + // InternalAlloyLanguage.g:2204:6: ( () ( ( '~' )=>otherlv_5= '~' ) ( (lv_operand_6_0= ruleALSBasicRelationTerm ) ) ) + // InternalAlloyLanguage.g:2204:7: () ( ( '~' )=>otherlv_5= '~' ) ( (lv_operand_6_0= ruleALSBasicRelationTerm ) ) + { + // InternalAlloyLanguage.g:2204:7: () + // InternalAlloyLanguage.g:2205:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getALSPreficedAccess().getALSInverseRelationAction_1_0(), + current); + + } + + } + + // InternalAlloyLanguage.g:2210:2: ( ( '~' )=>otherlv_5= '~' ) + // InternalAlloyLanguage.g:2210:3: ( '~' )=>otherlv_5= '~' + { + otherlv_5=(Token)match(input,51,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getALSPreficedAccess().getTildeKeyword_1_1()); + + } + + } + + // InternalAlloyLanguage.g:2215:2: ( (lv_operand_6_0= ruleALSBasicRelationTerm ) ) + // InternalAlloyLanguage.g:2216:1: (lv_operand_6_0= ruleALSBasicRelationTerm ) + { + // InternalAlloyLanguage.g:2216:1: (lv_operand_6_0= ruleALSBasicRelationTerm ) + // InternalAlloyLanguage.g:2217:3: lv_operand_6_0= ruleALSBasicRelationTerm + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_1_2_0()); + + } + pushFollow(FOLLOW_2); + lv_operand_6_0=ruleALSBasicRelationTerm(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + set( + current, + "operand", + lv_operand_6_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSBasicRelationTerm"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + case 3 : + // InternalAlloyLanguage.g:2234:6: ( () otherlv_8= '^' ( (lv_operand_9_0= ruleALSBasicRelationTerm ) ) ) + { + // InternalAlloyLanguage.g:2234:6: ( () otherlv_8= '^' ( (lv_operand_9_0= ruleALSBasicRelationTerm ) ) ) + // InternalAlloyLanguage.g:2234:7: () otherlv_8= '^' ( (lv_operand_9_0= ruleALSBasicRelationTerm ) ) + { + // InternalAlloyLanguage.g:2234:7: () + // InternalAlloyLanguage.g:2235:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getALSPreficedAccess().getAlSTransitiveClosureAction_2_0(), + current); + + } + + } + + otherlv_8=(Token)match(input,52,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_8, grammarAccess.getALSPreficedAccess().getCircumflexAccentKeyword_2_1()); + + } + // InternalAlloyLanguage.g:2244:1: ( (lv_operand_9_0= ruleALSBasicRelationTerm ) ) + // InternalAlloyLanguage.g:2245:1: (lv_operand_9_0= ruleALSBasicRelationTerm ) + { + // InternalAlloyLanguage.g:2245:1: (lv_operand_9_0= ruleALSBasicRelationTerm ) + // InternalAlloyLanguage.g:2246:3: lv_operand_9_0= ruleALSBasicRelationTerm + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_2_2_0()); + + } + pushFollow(FOLLOW_2); + lv_operand_9_0=ruleALSBasicRelationTerm(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + set( + current, + "operand", + lv_operand_9_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSBasicRelationTerm"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + case 4 : + // InternalAlloyLanguage.g:2263:6: ( () otherlv_11= '*' ( (lv_operand_12_0= ruleALSBasicRelationTerm ) ) ) + { + // InternalAlloyLanguage.g:2263:6: ( () otherlv_11= '*' ( (lv_operand_12_0= ruleALSBasicRelationTerm ) ) ) + // InternalAlloyLanguage.g:2263:7: () otherlv_11= '*' ( (lv_operand_12_0= ruleALSBasicRelationTerm ) ) + { + // InternalAlloyLanguage.g:2263:7: () + // InternalAlloyLanguage.g:2264:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getALSPreficedAccess().getALSReflectiveTransitiveClosureAction_3_0(), + current); + + } + + } + + otherlv_11=(Token)match(input,53,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_11, grammarAccess.getALSPreficedAccess().getAsteriskKeyword_3_1()); + + } + // InternalAlloyLanguage.g:2273:1: ( (lv_operand_12_0= ruleALSBasicRelationTerm ) ) + // InternalAlloyLanguage.g:2274:1: (lv_operand_12_0= ruleALSBasicRelationTerm ) + { + // InternalAlloyLanguage.g:2274:1: (lv_operand_12_0= ruleALSBasicRelationTerm ) + // InternalAlloyLanguage.g:2275:3: lv_operand_12_0= ruleALSBasicRelationTerm + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_3_2_0()); + + } + pushFollow(FOLLOW_2); + lv_operand_12_0=ruleALSBasicRelationTerm(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + set( + current, + "operand", + lv_operand_12_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSBasicRelationTerm"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + case 5 : + // InternalAlloyLanguage.g:2292:6: ( () otherlv_14= '#' ( (lv_operand_15_0= ruleALSBasicRelationTerm ) ) ) + { + // InternalAlloyLanguage.g:2292:6: ( () otherlv_14= '#' ( (lv_operand_15_0= ruleALSBasicRelationTerm ) ) ) + // InternalAlloyLanguage.g:2292:7: () otherlv_14= '#' ( (lv_operand_15_0= ruleALSBasicRelationTerm ) ) + { + // InternalAlloyLanguage.g:2292:7: () + // InternalAlloyLanguage.g:2293:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getALSPreficedAccess().getALSCardinalityAction_4_0(), + current); + + } + + } + + otherlv_14=(Token)match(input,54,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_14, grammarAccess.getALSPreficedAccess().getNumberSignKeyword_4_1()); + + } + // InternalAlloyLanguage.g:2302:1: ( (lv_operand_15_0= ruleALSBasicRelationTerm ) ) + // InternalAlloyLanguage.g:2303:1: (lv_operand_15_0= ruleALSBasicRelationTerm ) + { + // InternalAlloyLanguage.g:2303:1: (lv_operand_15_0= ruleALSBasicRelationTerm ) + // InternalAlloyLanguage.g:2304:3: lv_operand_15_0= ruleALSBasicRelationTerm + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_4_2_0()); + + } + pushFollow(FOLLOW_2); + lv_operand_15_0=ruleALSBasicRelationTerm(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + set( + current, + "operand", + lv_operand_15_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSBasicRelationTerm"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + case 6 : + // InternalAlloyLanguage.g:2321:6: ( () ( ( '-' )=>otherlv_17= '-' ) ( (lv_operand_18_0= ruleALSBasicRelationTerm ) ) ) + { + // InternalAlloyLanguage.g:2321:6: ( () ( ( '-' )=>otherlv_17= '-' ) ( (lv_operand_18_0= ruleALSBasicRelationTerm ) ) ) + // InternalAlloyLanguage.g:2321:7: () ( ( '-' )=>otherlv_17= '-' ) ( (lv_operand_18_0= ruleALSBasicRelationTerm ) ) + { + // InternalAlloyLanguage.g:2321:7: () + // InternalAlloyLanguage.g:2322:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getALSPreficedAccess().getALSUnaryMinusAction_5_0(), + current); + + } + + } + + // InternalAlloyLanguage.g:2327:2: ( ( '-' )=>otherlv_17= '-' ) + // InternalAlloyLanguage.g:2327:3: ( '-' )=>otherlv_17= '-' + { + otherlv_17=(Token)match(input,46,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_17, grammarAccess.getALSPreficedAccess().getHyphenMinusKeyword_5_1()); + + } + + } + + // InternalAlloyLanguage.g:2332:2: ( (lv_operand_18_0= ruleALSBasicRelationTerm ) ) + // InternalAlloyLanguage.g:2333:1: (lv_operand_18_0= ruleALSBasicRelationTerm ) + { + // InternalAlloyLanguage.g:2333:1: (lv_operand_18_0= ruleALSBasicRelationTerm ) + // InternalAlloyLanguage.g:2334:3: lv_operand_18_0= ruleALSBasicRelationTerm + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_5_2_0()); + + } + pushFollow(FOLLOW_2); + lv_operand_18_0=ruleALSBasicRelationTerm(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + set( + current, + "operand", + lv_operand_18_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSBasicRelationTerm"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + break; + case 7 : + // InternalAlloyLanguage.g:2351:6: ( () otherlv_20= 'sum' ( (lv_variables_21_0= ruleALSVariableDeclaration ) ) (otherlv_22= ',' ( (lv_variables_23_0= ruleALSVariableDeclaration ) ) )* otherlv_24= '{' ( (lv_expression_25_0= ruleALSTerm ) ) otherlv_26= '}' ) + { + // InternalAlloyLanguage.g:2351:6: ( () otherlv_20= 'sum' ( (lv_variables_21_0= ruleALSVariableDeclaration ) ) (otherlv_22= ',' ( (lv_variables_23_0= ruleALSVariableDeclaration ) ) )* otherlv_24= '{' ( (lv_expression_25_0= ruleALSTerm ) ) otherlv_26= '}' ) + // InternalAlloyLanguage.g:2351:7: () otherlv_20= 'sum' ( (lv_variables_21_0= ruleALSVariableDeclaration ) ) (otherlv_22= ',' ( (lv_variables_23_0= ruleALSVariableDeclaration ) ) )* otherlv_24= '{' ( (lv_expression_25_0= ruleALSTerm ) ) otherlv_26= '}' + { + // InternalAlloyLanguage.g:2351:7: () + // InternalAlloyLanguage.g:2352:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getALSPreficedAccess().getALSSumAction_6_0(), + current); + + } + + } + + otherlv_20=(Token)match(input,55,FOLLOW_4); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_20, grammarAccess.getALSPreficedAccess().getSumKeyword_6_1()); + + } + // InternalAlloyLanguage.g:2361:1: ( (lv_variables_21_0= ruleALSVariableDeclaration ) ) + // InternalAlloyLanguage.g:2362:1: (lv_variables_21_0= ruleALSVariableDeclaration ) + { + // InternalAlloyLanguage.g:2362:1: (lv_variables_21_0= ruleALSVariableDeclaration ) + // InternalAlloyLanguage.g:2363:3: lv_variables_21_0= ruleALSVariableDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSPreficedAccess().getVariablesALSVariableDeclarationParserRuleCall_6_2_0()); + + } + pushFollow(FOLLOW_18); + lv_variables_21_0=ruleALSVariableDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + add( + current, + "variables", + lv_variables_21_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSVariableDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalAlloyLanguage.g:2379:2: (otherlv_22= ',' ( (lv_variables_23_0= ruleALSVariableDeclaration ) ) )* + loop39: + do { + int alt39=2; + int LA39_0 = input.LA(1); + + if ( (LA39_0==13) ) { + alt39=1; + } + + + switch (alt39) { + case 1 : + // InternalAlloyLanguage.g:2379:4: otherlv_22= ',' ( (lv_variables_23_0= ruleALSVariableDeclaration ) ) + { + otherlv_22=(Token)match(input,13,FOLLOW_4); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_22, grammarAccess.getALSPreficedAccess().getCommaKeyword_6_3_0()); + + } + // InternalAlloyLanguage.g:2383:1: ( (lv_variables_23_0= ruleALSVariableDeclaration ) ) + // InternalAlloyLanguage.g:2384:1: (lv_variables_23_0= ruleALSVariableDeclaration ) + { + // InternalAlloyLanguage.g:2384:1: (lv_variables_23_0= ruleALSVariableDeclaration ) + // InternalAlloyLanguage.g:2385:3: lv_variables_23_0= ruleALSVariableDeclaration + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSPreficedAccess().getVariablesALSVariableDeclarationParserRuleCall_6_3_1_0()); + + } + pushFollow(FOLLOW_18); + lv_variables_23_0=ruleALSVariableDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + add( + current, + "variables", + lv_variables_23_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSVariableDeclaration"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop39; + } + } while (true); + + otherlv_24=(Token)match(input,12,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_24, grammarAccess.getALSPreficedAccess().getLeftCurlyBracketKeyword_6_4()); + + } + // InternalAlloyLanguage.g:2405:1: ( (lv_expression_25_0= ruleALSTerm ) ) + // InternalAlloyLanguage.g:2406:1: (lv_expression_25_0= ruleALSTerm ) + { + // InternalAlloyLanguage.g:2406:1: (lv_expression_25_0= ruleALSTerm ) + // InternalAlloyLanguage.g:2407:3: lv_expression_25_0= ruleALSTerm + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSPreficedAccess().getExpressionALSTermParserRuleCall_6_5_0()); + + } + pushFollow(FOLLOW_15); + lv_expression_25_0=ruleALSTerm(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + set( + current, + "expression", + lv_expression_25_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_26=(Token)match(input,14,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_26, grammarAccess.getALSPreficedAccess().getRightCurlyBracketKeyword_6_6()); + + } + + } + + + } + break; + case 8 : + // InternalAlloyLanguage.g:2428:6: ( () ( ( (otherlv_28= RULE_ID ) ) | ( (lv_referredNumericOperator_29_0= ruleALSNumericOperator ) ) ) otherlv_30= '[' ( (lv_params_31_0= ruleALSTerm ) ) (otherlv_32= ',' ( (lv_params_33_0= ruleALSTerm ) ) )* otherlv_34= ']' ) + { + // InternalAlloyLanguage.g:2428:6: ( () ( ( (otherlv_28= RULE_ID ) ) | ( (lv_referredNumericOperator_29_0= ruleALSNumericOperator ) ) ) otherlv_30= '[' ( (lv_params_31_0= ruleALSTerm ) ) (otherlv_32= ',' ( (lv_params_33_0= ruleALSTerm ) ) )* otherlv_34= ']' ) + // InternalAlloyLanguage.g:2428:7: () ( ( (otherlv_28= RULE_ID ) ) | ( (lv_referredNumericOperator_29_0= ruleALSNumericOperator ) ) ) otherlv_30= '[' ( (lv_params_31_0= ruleALSTerm ) ) (otherlv_32= ',' ( (lv_params_33_0= ruleALSTerm ) ) )* otherlv_34= ']' + { + // InternalAlloyLanguage.g:2428:7: () + // InternalAlloyLanguage.g:2429:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getALSPreficedAccess().getALSFunctionCallAction_7_0(), + current); + + } + + } + + // InternalAlloyLanguage.g:2434:2: ( ( (otherlv_28= RULE_ID ) ) | ( (lv_referredNumericOperator_29_0= ruleALSNumericOperator ) ) ) + int alt40=2; + int LA40_0 = input.LA(1); + + if ( (LA40_0==RULE_ID) ) { + alt40=1; + } + else if ( ((LA40_0>=72 && LA40_0<=76)) ) { + alt40=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 40, 0, input); + + throw nvae; + } + switch (alt40) { + case 1 : + // InternalAlloyLanguage.g:2434:3: ( (otherlv_28= RULE_ID ) ) + { + // InternalAlloyLanguage.g:2434:3: ( (otherlv_28= RULE_ID ) ) + // InternalAlloyLanguage.g:2435:1: (otherlv_28= RULE_ID ) + { + // InternalAlloyLanguage.g:2435:1: (otherlv_28= RULE_ID ) + // InternalAlloyLanguage.g:2436:3: otherlv_28= RULE_ID + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getALSPreficedRule()); + } + + } + otherlv_28=(Token)match(input,RULE_ID,FOLLOW_13); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_28, grammarAccess.getALSPreficedAccess().getReferredDefinitionALSDefinitionCrossReference_7_1_0_0()); + + } + + } + + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:2448:6: ( (lv_referredNumericOperator_29_0= ruleALSNumericOperator ) ) + { + // InternalAlloyLanguage.g:2448:6: ( (lv_referredNumericOperator_29_0= ruleALSNumericOperator ) ) + // InternalAlloyLanguage.g:2449:1: (lv_referredNumericOperator_29_0= ruleALSNumericOperator ) + { + // InternalAlloyLanguage.g:2449:1: (lv_referredNumericOperator_29_0= ruleALSNumericOperator ) + // InternalAlloyLanguage.g:2450:3: lv_referredNumericOperator_29_0= ruleALSNumericOperator + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSPreficedAccess().getReferredNumericOperatorALSNumericOperatorEnumRuleCall_7_1_1_0()); + + } + pushFollow(FOLLOW_13); + lv_referredNumericOperator_29_0=ruleALSNumericOperator(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + set( + current, + "referredNumericOperator", + lv_referredNumericOperator_29_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSNumericOperator"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + otherlv_30=(Token)match(input,22,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_30, grammarAccess.getALSPreficedAccess().getLeftSquareBracketKeyword_7_2()); + + } + // InternalAlloyLanguage.g:2470:1: ( (lv_params_31_0= ruleALSTerm ) ) + // InternalAlloyLanguage.g:2471:1: (lv_params_31_0= ruleALSTerm ) + { + // InternalAlloyLanguage.g:2471:1: (lv_params_31_0= ruleALSTerm ) + // InternalAlloyLanguage.g:2472:3: lv_params_31_0= ruleALSTerm + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSPreficedAccess().getParamsALSTermParserRuleCall_7_3_0()); + + } + pushFollow(FOLLOW_14); + lv_params_31_0=ruleALSTerm(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + add( + current, + "params", + lv_params_31_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalAlloyLanguage.g:2488:2: (otherlv_32= ',' ( (lv_params_33_0= ruleALSTerm ) ) )* + loop41: + do { + int alt41=2; + int LA41_0 = input.LA(1); + + if ( (LA41_0==13) ) { + alt41=1; + } + + + switch (alt41) { + case 1 : + // InternalAlloyLanguage.g:2488:4: otherlv_32= ',' ( (lv_params_33_0= ruleALSTerm ) ) + { + otherlv_32=(Token)match(input,13,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_32, grammarAccess.getALSPreficedAccess().getCommaKeyword_7_4_0()); + + } + // InternalAlloyLanguage.g:2492:1: ( (lv_params_33_0= ruleALSTerm ) ) + // InternalAlloyLanguage.g:2493:1: (lv_params_33_0= ruleALSTerm ) + { + // InternalAlloyLanguage.g:2493:1: (lv_params_33_0= ruleALSTerm ) + // InternalAlloyLanguage.g:2494:3: lv_params_33_0= ruleALSTerm + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSPreficedAccess().getParamsALSTermParserRuleCall_7_4_1_0()); + + } + pushFollow(FOLLOW_14); + lv_params_33_0=ruleALSTerm(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSPreficedRule()); + } + add( + current, + "params", + lv_params_33_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop41; + } + } while (true); + + otherlv_34=(Token)match(input,23,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_34, grammarAccess.getALSPreficedAccess().getRightSquareBracketKeyword_7_5()); + + } + + } + + + } + break; + case 9 : + // InternalAlloyLanguage.g:2516:5: this_ALSBasicRelationTerm_35= ruleALSBasicRelationTerm + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSPreficedAccess().getALSBasicRelationTermParserRuleCall_8()); + + } + pushFollow(FOLLOW_2); + this_ALSBasicRelationTerm_35=ruleALSBasicRelationTerm(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSBasicRelationTerm_35; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSPreficed" + + + // $ANTLR start "entryRuleALSVariableDeclaration" + // InternalAlloyLanguage.g:2532:1: entryRuleALSVariableDeclaration returns [EObject current=null] : iv_ruleALSVariableDeclaration= ruleALSVariableDeclaration EOF ; + public final EObject entryRuleALSVariableDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSVariableDeclaration = null; + + + try { + // InternalAlloyLanguage.g:2533:2: (iv_ruleALSVariableDeclaration= ruleALSVariableDeclaration EOF ) + // InternalAlloyLanguage.g:2534:2: iv_ruleALSVariableDeclaration= ruleALSVariableDeclaration EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSVariableDeclarationRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSVariableDeclaration=ruleALSVariableDeclaration(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSVariableDeclaration; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSVariableDeclaration" + + + // $ANTLR start "ruleALSVariableDeclaration" + // InternalAlloyLanguage.g:2541:1: ruleALSVariableDeclaration returns [EObject current=null] : ( ( (lv_name_0_0= ruleALSID ) ) otherlv_1= ':' ( (lv_range_2_0= ruleALSTerm ) ) ) ; + public final EObject ruleALSVariableDeclaration() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + AntlrDatatypeRuleToken lv_name_0_0 = null; + + EObject lv_range_2_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:2544:28: ( ( ( (lv_name_0_0= ruleALSID ) ) otherlv_1= ':' ( (lv_range_2_0= ruleALSTerm ) ) ) ) + // InternalAlloyLanguage.g:2545:1: ( ( (lv_name_0_0= ruleALSID ) ) otherlv_1= ':' ( (lv_range_2_0= ruleALSTerm ) ) ) + { + // InternalAlloyLanguage.g:2545:1: ( ( (lv_name_0_0= ruleALSID ) ) otherlv_1= ':' ( (lv_range_2_0= ruleALSTerm ) ) ) + // InternalAlloyLanguage.g:2545:2: ( (lv_name_0_0= ruleALSID ) ) otherlv_1= ':' ( (lv_range_2_0= ruleALSTerm ) ) + { + // InternalAlloyLanguage.g:2545:2: ( (lv_name_0_0= ruleALSID ) ) + // InternalAlloyLanguage.g:2546:1: (lv_name_0_0= ruleALSID ) + { + // InternalAlloyLanguage.g:2546:1: (lv_name_0_0= ruleALSID ) + // InternalAlloyLanguage.g:2547:3: lv_name_0_0= ruleALSID + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSVariableDeclarationAccess().getNameALSIDParserRuleCall_0_0()); + + } + pushFollow(FOLLOW_11); + lv_name_0_0=ruleALSID(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSVariableDeclarationRule()); + } + set( + current, + "name", + lv_name_0_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSID"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_1=(Token)match(input,20,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getALSVariableDeclarationAccess().getColonKeyword_1()); + + } + // InternalAlloyLanguage.g:2567:1: ( (lv_range_2_0= ruleALSTerm ) ) + // InternalAlloyLanguage.g:2568:1: (lv_range_2_0= ruleALSTerm ) + { + // InternalAlloyLanguage.g:2568:1: (lv_range_2_0= ruleALSTerm ) + // InternalAlloyLanguage.g:2569:3: lv_range_2_0= ruleALSTerm + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSVariableDeclarationAccess().getRangeALSTermParserRuleCall_2_0()); + + } + pushFollow(FOLLOW_2); + lv_range_2_0=ruleALSTerm(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSVariableDeclarationRule()); + } + set( + current, + "range", + lv_range_2_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSVariableDeclaration" + + + // $ANTLR start "entryRuleALSBasicRelationTerm" + // InternalAlloyLanguage.g:2593:1: entryRuleALSBasicRelationTerm returns [EObject current=null] : iv_ruleALSBasicRelationTerm= ruleALSBasicRelationTerm EOF ; + public final EObject entryRuleALSBasicRelationTerm() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSBasicRelationTerm = null; + + + try { + // InternalAlloyLanguage.g:2594:2: (iv_ruleALSBasicRelationTerm= ruleALSBasicRelationTerm EOF ) + // InternalAlloyLanguage.g:2595:2: iv_ruleALSBasicRelationTerm= ruleALSBasicRelationTerm EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSBasicRelationTermRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSBasicRelationTerm=ruleALSBasicRelationTerm(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSBasicRelationTerm; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSBasicRelationTerm" + + + // $ANTLR start "ruleALSBasicRelationTerm" + // InternalAlloyLanguage.g:2602:1: ruleALSBasicRelationTerm returns [EObject current=null] : ( ( () otherlv_1= 'none' ) | ( () otherlv_3= 'iden' ) | ( () otherlv_5= 'univ' ) | ( () otherlv_7= 'Int' ) | ( () otherlv_9= 'String' ) | ( () ( (otherlv_11= RULE_ID ) ) ) | ( () ( (lv_value_13_0= RULE_INT ) ) ) | ( () ( (lv_value_15_0= RULE_STRING ) ) ) | (otherlv_16= '(' this_ALSTerm_17= ruleALSTerm otherlv_18= ')' ) ) ; + public final EObject ruleALSBasicRelationTerm() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + Token otherlv_7=null; + Token otherlv_9=null; + Token otherlv_11=null; + Token lv_value_13_0=null; + Token lv_value_15_0=null; + Token otherlv_16=null; + Token otherlv_18=null; + EObject this_ALSTerm_17 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:2605:28: ( ( ( () otherlv_1= 'none' ) | ( () otherlv_3= 'iden' ) | ( () otherlv_5= 'univ' ) | ( () otherlv_7= 'Int' ) | ( () otherlv_9= 'String' ) | ( () ( (otherlv_11= RULE_ID ) ) ) | ( () ( (lv_value_13_0= RULE_INT ) ) ) | ( () ( (lv_value_15_0= RULE_STRING ) ) ) | (otherlv_16= '(' this_ALSTerm_17= ruleALSTerm otherlv_18= ')' ) ) ) + // InternalAlloyLanguage.g:2606:1: ( ( () otherlv_1= 'none' ) | ( () otherlv_3= 'iden' ) | ( () otherlv_5= 'univ' ) | ( () otherlv_7= 'Int' ) | ( () otherlv_9= 'String' ) | ( () ( (otherlv_11= RULE_ID ) ) ) | ( () ( (lv_value_13_0= RULE_INT ) ) ) | ( () ( (lv_value_15_0= RULE_STRING ) ) ) | (otherlv_16= '(' this_ALSTerm_17= ruleALSTerm otherlv_18= ')' ) ) + { + // InternalAlloyLanguage.g:2606:1: ( ( () otherlv_1= 'none' ) | ( () otherlv_3= 'iden' ) | ( () otherlv_5= 'univ' ) | ( () otherlv_7= 'Int' ) | ( () otherlv_9= 'String' ) | ( () ( (otherlv_11= RULE_ID ) ) ) | ( () ( (lv_value_13_0= RULE_INT ) ) ) | ( () ( (lv_value_15_0= RULE_STRING ) ) ) | (otherlv_16= '(' this_ALSTerm_17= ruleALSTerm otherlv_18= ')' ) ) + int alt43=9; + switch ( input.LA(1) ) { + case 56: + { + alt43=1; + } + break; + case 57: + { + alt43=2; + } + break; + case 58: + { + alt43=3; + } + break; + case 59: + { + alt43=4; + } + break; + case 60: + { + alt43=5; + } + break; + case RULE_ID: + { + alt43=6; + } + break; + case RULE_INT: + { + alt43=7; + } + break; + case RULE_STRING: + { + alt43=8; + } + break; + case 61: + { + alt43=9; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 43, 0, input); + + throw nvae; + } + + switch (alt43) { + case 1 : + // InternalAlloyLanguage.g:2606:2: ( () otherlv_1= 'none' ) + { + // InternalAlloyLanguage.g:2606:2: ( () otherlv_1= 'none' ) + // InternalAlloyLanguage.g:2606:3: () otherlv_1= 'none' + { + // InternalAlloyLanguage.g:2606:3: () + // InternalAlloyLanguage.g:2607:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getALSBasicRelationTermAccess().getALSNoneAction_0_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,56,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getALSBasicRelationTermAccess().getNoneKeyword_0_1()); + + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:2617:6: ( () otherlv_3= 'iden' ) + { + // InternalAlloyLanguage.g:2617:6: ( () otherlv_3= 'iden' ) + // InternalAlloyLanguage.g:2617:7: () otherlv_3= 'iden' + { + // InternalAlloyLanguage.g:2617:7: () + // InternalAlloyLanguage.g:2618:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getALSBasicRelationTermAccess().getALSIdenAction_1_0(), + current); + + } + + } + + otherlv_3=(Token)match(input,57,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getALSBasicRelationTermAccess().getIdenKeyword_1_1()); + + } + + } + + + } + break; + case 3 : + // InternalAlloyLanguage.g:2628:6: ( () otherlv_5= 'univ' ) + { + // InternalAlloyLanguage.g:2628:6: ( () otherlv_5= 'univ' ) + // InternalAlloyLanguage.g:2628:7: () otherlv_5= 'univ' + { + // InternalAlloyLanguage.g:2628:7: () + // InternalAlloyLanguage.g:2629:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getALSBasicRelationTermAccess().getALSUnivAction_2_0(), + current); + + } + + } + + otherlv_5=(Token)match(input,58,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getALSBasicRelationTermAccess().getUnivKeyword_2_1()); + + } + + } + + + } + break; + case 4 : + // InternalAlloyLanguage.g:2639:6: ( () otherlv_7= 'Int' ) + { + // InternalAlloyLanguage.g:2639:6: ( () otherlv_7= 'Int' ) + // InternalAlloyLanguage.g:2639:7: () otherlv_7= 'Int' + { + // InternalAlloyLanguage.g:2639:7: () + // InternalAlloyLanguage.g:2640:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getALSBasicRelationTermAccess().getALSIntAction_3_0(), + current); + + } + + } + + otherlv_7=(Token)match(input,59,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getALSBasicRelationTermAccess().getIntKeyword_3_1()); + + } + + } + + + } + break; + case 5 : + // InternalAlloyLanguage.g:2650:6: ( () otherlv_9= 'String' ) + { + // InternalAlloyLanguage.g:2650:6: ( () otherlv_9= 'String' ) + // InternalAlloyLanguage.g:2650:7: () otherlv_9= 'String' + { + // InternalAlloyLanguage.g:2650:7: () + // InternalAlloyLanguage.g:2651:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getALSBasicRelationTermAccess().getALSStringAction_4_0(), + current); + + } + + } + + otherlv_9=(Token)match(input,60,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_9, grammarAccess.getALSBasicRelationTermAccess().getStringKeyword_4_1()); + + } + + } + + + } + break; + case 6 : + // InternalAlloyLanguage.g:2661:6: ( () ( (otherlv_11= RULE_ID ) ) ) + { + // InternalAlloyLanguage.g:2661:6: ( () ( (otherlv_11= RULE_ID ) ) ) + // InternalAlloyLanguage.g:2661:7: () ( (otherlv_11= RULE_ID ) ) + { + // InternalAlloyLanguage.g:2661:7: () + // InternalAlloyLanguage.g:2662:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getALSBasicRelationTermAccess().getALSReferenceAction_5_0(), + current); + + } + + } + + // InternalAlloyLanguage.g:2667:2: ( (otherlv_11= RULE_ID ) ) + // InternalAlloyLanguage.g:2668:1: (otherlv_11= RULE_ID ) + { + // InternalAlloyLanguage.g:2668:1: (otherlv_11= RULE_ID ) + // InternalAlloyLanguage.g:2669:3: otherlv_11= RULE_ID + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getALSBasicRelationTermRule()); + } + + } + otherlv_11=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_11, grammarAccess.getALSBasicRelationTermAccess().getReferredALSRelationDeclarationCrossReference_5_1_0()); + + } + + } + + + } + + + } + + + } + break; + case 7 : + // InternalAlloyLanguage.g:2681:6: ( () ( (lv_value_13_0= RULE_INT ) ) ) + { + // InternalAlloyLanguage.g:2681:6: ( () ( (lv_value_13_0= RULE_INT ) ) ) + // InternalAlloyLanguage.g:2681:7: () ( (lv_value_13_0= RULE_INT ) ) + { + // InternalAlloyLanguage.g:2681:7: () + // InternalAlloyLanguage.g:2682:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getALSBasicRelationTermAccess().getALSNumberLiteralAction_6_0(), + current); + + } + + } + + // InternalAlloyLanguage.g:2687:2: ( (lv_value_13_0= RULE_INT ) ) + // InternalAlloyLanguage.g:2688:1: (lv_value_13_0= RULE_INT ) + { + // InternalAlloyLanguage.g:2688:1: (lv_value_13_0= RULE_INT ) + // InternalAlloyLanguage.g:2689:3: lv_value_13_0= RULE_INT + { + lv_value_13_0=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_value_13_0, grammarAccess.getALSBasicRelationTermAccess().getValueINTTerminalRuleCall_6_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getALSBasicRelationTermRule()); + } + setWithLastConsumed( + current, + "value", + lv_value_13_0, + "org.eclipse.xtext.common.Terminals.INT"); + + } + + } + + + } + + + } + + + } + break; + case 8 : + // InternalAlloyLanguage.g:2706:6: ( () ( (lv_value_15_0= RULE_STRING ) ) ) + { + // InternalAlloyLanguage.g:2706:6: ( () ( (lv_value_15_0= RULE_STRING ) ) ) + // InternalAlloyLanguage.g:2706:7: () ( (lv_value_15_0= RULE_STRING ) ) + { + // InternalAlloyLanguage.g:2706:7: () + // InternalAlloyLanguage.g:2707:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getALSBasicRelationTermAccess().getALSStringLiteralAction_7_0(), + current); + + } + + } + + // InternalAlloyLanguage.g:2712:2: ( (lv_value_15_0= RULE_STRING ) ) + // InternalAlloyLanguage.g:2713:1: (lv_value_15_0= RULE_STRING ) + { + // InternalAlloyLanguage.g:2713:1: (lv_value_15_0= RULE_STRING ) + // InternalAlloyLanguage.g:2714:3: lv_value_15_0= RULE_STRING + { + lv_value_15_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_value_15_0, grammarAccess.getALSBasicRelationTermAccess().getValueSTRINGTerminalRuleCall_7_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getALSBasicRelationTermRule()); + } + setWithLastConsumed( + current, + "value", + lv_value_15_0, + "org.eclipse.xtext.common.Terminals.STRING"); + + } + + } + + + } + + + } + + + } + break; + case 9 : + // InternalAlloyLanguage.g:2731:6: (otherlv_16= '(' this_ALSTerm_17= ruleALSTerm otherlv_18= ')' ) + { + // InternalAlloyLanguage.g:2731:6: (otherlv_16= '(' this_ALSTerm_17= ruleALSTerm otherlv_18= ')' ) + // InternalAlloyLanguage.g:2731:8: otherlv_16= '(' this_ALSTerm_17= ruleALSTerm otherlv_18= ')' + { + otherlv_16=(Token)match(input,61,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_16, grammarAccess.getALSBasicRelationTermAccess().getLeftParenthesisKeyword_8_0()); + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSBasicRelationTermAccess().getALSTermParserRuleCall_8_1()); + + } + pushFollow(FOLLOW_34); + this_ALSTerm_17=ruleALSTerm(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSTerm_17; + afterParserOrEnumRuleCall(); + + } + otherlv_18=(Token)match(input,62,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_18, grammarAccess.getALSBasicRelationTermAccess().getRightParenthesisKeyword_8_2()); + + } + + } + + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSBasicRelationTerm" + + + // $ANTLR start "entryRuleALSRunCommand" + // InternalAlloyLanguage.g:2756:1: entryRuleALSRunCommand returns [EObject current=null] : iv_ruleALSRunCommand= ruleALSRunCommand EOF ; + public final EObject entryRuleALSRunCommand() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSRunCommand = null; + + + try { + // InternalAlloyLanguage.g:2757:2: (iv_ruleALSRunCommand= ruleALSRunCommand EOF ) + // InternalAlloyLanguage.g:2758:2: iv_ruleALSRunCommand= ruleALSRunCommand EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSRunCommandRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSRunCommand=ruleALSRunCommand(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSRunCommand; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSRunCommand" + + + // $ANTLR start "ruleALSRunCommand" + // InternalAlloyLanguage.g:2765:1: ruleALSRunCommand returns [EObject current=null] : ( () otherlv_1= 'run' otherlv_2= '{' otherlv_3= '}' (otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* )? ) ; + public final EObject ruleALSRunCommand() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_2=null; + Token otherlv_3=null; + Token otherlv_4=null; + Token otherlv_6=null; + EObject lv_typeScopes_5_0 = null; + + EObject lv_typeScopes_7_0 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:2768:28: ( ( () otherlv_1= 'run' otherlv_2= '{' otherlv_3= '}' (otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* )? ) ) + // InternalAlloyLanguage.g:2769:1: ( () otherlv_1= 'run' otherlv_2= '{' otherlv_3= '}' (otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* )? ) + { + // InternalAlloyLanguage.g:2769:1: ( () otherlv_1= 'run' otherlv_2= '{' otherlv_3= '}' (otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* )? ) + // InternalAlloyLanguage.g:2769:2: () otherlv_1= 'run' otherlv_2= '{' otherlv_3= '}' (otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* )? + { + // InternalAlloyLanguage.g:2769:2: () + // InternalAlloyLanguage.g:2770:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getALSRunCommandAccess().getALSRunCommandAction_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,63,FOLLOW_5); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getALSRunCommandAccess().getRunKeyword_1()); + + } + otherlv_2=(Token)match(input,12,FOLLOW_15); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getALSRunCommandAccess().getLeftCurlyBracketKeyword_2()); + + } + otherlv_3=(Token)match(input,14,FOLLOW_35); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getALSRunCommandAccess().getRightCurlyBracketKeyword_3()); + + } + // InternalAlloyLanguage.g:2787:1: (otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* )? + int alt45=2; + int LA45_0 = input.LA(1); + + if ( (LA45_0==64) ) { + alt45=1; + } + switch (alt45) { + case 1 : + // InternalAlloyLanguage.g:2787:3: otherlv_4= 'for' ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* + { + otherlv_4=(Token)match(input,64,FOLLOW_36); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getALSRunCommandAccess().getForKeyword_4_0()); + + } + // InternalAlloyLanguage.g:2791:1: ( (lv_typeScopes_5_0= ruleALSTypeScope ) ) + // InternalAlloyLanguage.g:2792:1: (lv_typeScopes_5_0= ruleALSTypeScope ) + { + // InternalAlloyLanguage.g:2792:1: (lv_typeScopes_5_0= ruleALSTypeScope ) + // InternalAlloyLanguage.g:2793:3: lv_typeScopes_5_0= ruleALSTypeScope + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSRunCommandAccess().getTypeScopesALSTypeScopeParserRuleCall_4_1_0()); + + } + pushFollow(FOLLOW_37); + lv_typeScopes_5_0=ruleALSTypeScope(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSRunCommandRule()); + } + add( + current, + "typeScopes", + lv_typeScopes_5_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTypeScope"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalAlloyLanguage.g:2809:2: (otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) )* + loop44: + do { + int alt44=2; + int LA44_0 = input.LA(1); + + if ( (LA44_0==13) ) { + alt44=1; + } + + + switch (alt44) { + case 1 : + // InternalAlloyLanguage.g:2809:4: otherlv_6= ',' ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) + { + otherlv_6=(Token)match(input,13,FOLLOW_36); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getALSRunCommandAccess().getCommaKeyword_4_2_0()); + + } + // InternalAlloyLanguage.g:2813:1: ( (lv_typeScopes_7_0= ruleALSTypeScope ) ) + // InternalAlloyLanguage.g:2814:1: (lv_typeScopes_7_0= ruleALSTypeScope ) + { + // InternalAlloyLanguage.g:2814:1: (lv_typeScopes_7_0= ruleALSTypeScope ) + // InternalAlloyLanguage.g:2815:3: lv_typeScopes_7_0= ruleALSTypeScope + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSRunCommandAccess().getTypeScopesALSTypeScopeParserRuleCall_4_2_1_0()); + + } + pushFollow(FOLLOW_37); + lv_typeScopes_7_0=ruleALSTypeScope(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getALSRunCommandRule()); + } + add( + current, + "typeScopes", + lv_typeScopes_7_0, + "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTypeScope"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop44; + } + } while (true); + + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSRunCommand" + + + // $ANTLR start "entryRuleALSTypeScope" + // InternalAlloyLanguage.g:2839:1: entryRuleALSTypeScope returns [EObject current=null] : iv_ruleALSTypeScope= ruleALSTypeScope EOF ; + public final EObject entryRuleALSTypeScope() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSTypeScope = null; + + + try { + // InternalAlloyLanguage.g:2840:2: (iv_ruleALSTypeScope= ruleALSTypeScope EOF ) + // InternalAlloyLanguage.g:2841:2: iv_ruleALSTypeScope= ruleALSTypeScope EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSTypeScopeRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSTypeScope=ruleALSTypeScope(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSTypeScope; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSTypeScope" + + + // $ANTLR start "ruleALSTypeScope" + // InternalAlloyLanguage.g:2848:1: ruleALSTypeScope returns [EObject current=null] : (this_ALSSigScope_0= ruleALSSigScope | this_ALSIntScope_1= ruleALSIntScope | this_ALSStringScope_2= ruleALSStringScope ) ; + public final EObject ruleALSTypeScope() throws RecognitionException { + EObject current = null; + + EObject this_ALSSigScope_0 = null; + + EObject this_ALSIntScope_1 = null; + + EObject this_ALSStringScope_2 = null; + + + enterRule(); + + try { + // InternalAlloyLanguage.g:2851:28: ( (this_ALSSigScope_0= ruleALSSigScope | this_ALSIntScope_1= ruleALSIntScope | this_ALSStringScope_2= ruleALSStringScope ) ) + // InternalAlloyLanguage.g:2852:1: (this_ALSSigScope_0= ruleALSSigScope | this_ALSIntScope_1= ruleALSIntScope | this_ALSStringScope_2= ruleALSStringScope ) + { + // InternalAlloyLanguage.g:2852:1: (this_ALSSigScope_0= ruleALSSigScope | this_ALSIntScope_1= ruleALSIntScope | this_ALSStringScope_2= ruleALSStringScope ) + int alt46=3; + int LA46_0 = input.LA(1); + + if ( (LA46_0==65) ) { + int LA46_1 = input.LA(2); + + if ( (LA46_1==RULE_INT) ) { + int LA46_3 = input.LA(3); + + if ( (LA46_3==RULE_ID) ) { + alt46=1; + } + else if ( (LA46_3==60) ) { + alt46=3; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 46, 3, input); + + throw nvae; + } + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 46, 1, input); + + throw nvae; + } + } + else if ( (LA46_0==RULE_INT) ) { + int LA46_2 = input.LA(2); + + if ( (LA46_2==RULE_ID) ) { + alt46=1; + } + else if ( (LA46_2==59) ) { + alt46=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 46, 2, input); + + throw nvae; + } + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 46, 0, input); + + throw nvae; + } + switch (alt46) { + case 1 : + // InternalAlloyLanguage.g:2853:5: this_ALSSigScope_0= ruleALSSigScope + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSTypeScopeAccess().getALSSigScopeParserRuleCall_0()); + + } + pushFollow(FOLLOW_2); + this_ALSSigScope_0=ruleALSSigScope(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSSigScope_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalAlloyLanguage.g:2863:5: this_ALSIntScope_1= ruleALSIntScope + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSTypeScopeAccess().getALSIntScopeParserRuleCall_1()); + + } + pushFollow(FOLLOW_2); + this_ALSIntScope_1=ruleALSIntScope(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSIntScope_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 3 : + // InternalAlloyLanguage.g:2873:5: this_ALSStringScope_2= ruleALSStringScope + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getALSTypeScopeAccess().getALSStringScopeParserRuleCall_2()); + + } + pushFollow(FOLLOW_2); + this_ALSStringScope_2=ruleALSStringScope(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ALSStringScope_2; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSTypeScope" + + + // $ANTLR start "entryRuleALSSigScope" + // InternalAlloyLanguage.g:2889:1: entryRuleALSSigScope returns [EObject current=null] : iv_ruleALSSigScope= ruleALSSigScope EOF ; + public final EObject entryRuleALSSigScope() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSSigScope = null; + + + try { + // InternalAlloyLanguage.g:2890:2: (iv_ruleALSSigScope= ruleALSSigScope EOF ) + // InternalAlloyLanguage.g:2891:2: iv_ruleALSSigScope= ruleALSSigScope EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSSigScopeRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSSigScope=ruleALSSigScope(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSSigScope; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSSigScope" + + + // $ANTLR start "ruleALSSigScope" + // InternalAlloyLanguage.g:2898:1: ruleALSSigScope returns [EObject current=null] : ( ( (lv_exactly_0_0= 'exactly' ) )? ( (lv_number_1_0= RULE_INT ) ) ( (otherlv_2= RULE_ID ) ) ) ; + public final EObject ruleALSSigScope() throws RecognitionException { + EObject current = null; + + Token lv_exactly_0_0=null; + Token lv_number_1_0=null; + Token otherlv_2=null; + + enterRule(); + + try { + // InternalAlloyLanguage.g:2901:28: ( ( ( (lv_exactly_0_0= 'exactly' ) )? ( (lv_number_1_0= RULE_INT ) ) ( (otherlv_2= RULE_ID ) ) ) ) + // InternalAlloyLanguage.g:2902:1: ( ( (lv_exactly_0_0= 'exactly' ) )? ( (lv_number_1_0= RULE_INT ) ) ( (otherlv_2= RULE_ID ) ) ) + { + // InternalAlloyLanguage.g:2902:1: ( ( (lv_exactly_0_0= 'exactly' ) )? ( (lv_number_1_0= RULE_INT ) ) ( (otherlv_2= RULE_ID ) ) ) + // InternalAlloyLanguage.g:2902:2: ( (lv_exactly_0_0= 'exactly' ) )? ( (lv_number_1_0= RULE_INT ) ) ( (otherlv_2= RULE_ID ) ) + { + // InternalAlloyLanguage.g:2902:2: ( (lv_exactly_0_0= 'exactly' ) )? + int alt47=2; + int LA47_0 = input.LA(1); + + if ( (LA47_0==65) ) { + alt47=1; + } + switch (alt47) { + case 1 : + // InternalAlloyLanguage.g:2903:1: (lv_exactly_0_0= 'exactly' ) + { + // InternalAlloyLanguage.g:2903:1: (lv_exactly_0_0= 'exactly' ) + // InternalAlloyLanguage.g:2904:3: lv_exactly_0_0= 'exactly' + { + lv_exactly_0_0=(Token)match(input,65,FOLLOW_38); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_exactly_0_0, grammarAccess.getALSSigScopeAccess().getExactlyExactlyKeyword_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getALSSigScopeRule()); + } + setWithLastConsumed(current, "exactly", true, "exactly"); + + } + + } + + + } + break; + + } + + // InternalAlloyLanguage.g:2917:3: ( (lv_number_1_0= RULE_INT ) ) + // InternalAlloyLanguage.g:2918:1: (lv_number_1_0= RULE_INT ) + { + // InternalAlloyLanguage.g:2918:1: (lv_number_1_0= RULE_INT ) + // InternalAlloyLanguage.g:2919:3: lv_number_1_0= RULE_INT + { + lv_number_1_0=(Token)match(input,RULE_INT,FOLLOW_4); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_number_1_0, grammarAccess.getALSSigScopeAccess().getNumberINTTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getALSSigScopeRule()); + } + setWithLastConsumed( + current, + "number", + lv_number_1_0, + "org.eclipse.xtext.common.Terminals.INT"); + + } + + } + + + } + + // InternalAlloyLanguage.g:2935:2: ( (otherlv_2= RULE_ID ) ) + // InternalAlloyLanguage.g:2936:1: (otherlv_2= RULE_ID ) + { + // InternalAlloyLanguage.g:2936:1: (otherlv_2= RULE_ID ) + // InternalAlloyLanguage.g:2937:3: otherlv_2= RULE_ID + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getALSSigScopeRule()); + } + + } + otherlv_2=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getALSSigScopeAccess().getTypeALSSignatureDeclarationCrossReference_2_0()); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSSigScope" + + + // $ANTLR start "entryRuleALSIntScope" + // InternalAlloyLanguage.g:2956:1: entryRuleALSIntScope returns [EObject current=null] : iv_ruleALSIntScope= ruleALSIntScope EOF ; + public final EObject entryRuleALSIntScope() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSIntScope = null; + + + try { + // InternalAlloyLanguage.g:2957:2: (iv_ruleALSIntScope= ruleALSIntScope EOF ) + // InternalAlloyLanguage.g:2958:2: iv_ruleALSIntScope= ruleALSIntScope EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSIntScopeRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSIntScope=ruleALSIntScope(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSIntScope; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSIntScope" + + + // $ANTLR start "ruleALSIntScope" + // InternalAlloyLanguage.g:2965:1: ruleALSIntScope returns [EObject current=null] : ( ( (lv_number_0_0= RULE_INT ) ) otherlv_1= 'Int' ) ; + public final EObject ruleALSIntScope() throws RecognitionException { + EObject current = null; + + Token lv_number_0_0=null; + Token otherlv_1=null; + + enterRule(); + + try { + // InternalAlloyLanguage.g:2968:28: ( ( ( (lv_number_0_0= RULE_INT ) ) otherlv_1= 'Int' ) ) + // InternalAlloyLanguage.g:2969:1: ( ( (lv_number_0_0= RULE_INT ) ) otherlv_1= 'Int' ) + { + // InternalAlloyLanguage.g:2969:1: ( ( (lv_number_0_0= RULE_INT ) ) otherlv_1= 'Int' ) + // InternalAlloyLanguage.g:2969:2: ( (lv_number_0_0= RULE_INT ) ) otherlv_1= 'Int' + { + // InternalAlloyLanguage.g:2969:2: ( (lv_number_0_0= RULE_INT ) ) + // InternalAlloyLanguage.g:2970:1: (lv_number_0_0= RULE_INT ) + { + // InternalAlloyLanguage.g:2970:1: (lv_number_0_0= RULE_INT ) + // InternalAlloyLanguage.g:2971:3: lv_number_0_0= RULE_INT + { + lv_number_0_0=(Token)match(input,RULE_INT,FOLLOW_39); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_number_0_0, grammarAccess.getALSIntScopeAccess().getNumberINTTerminalRuleCall_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getALSIntScopeRule()); + } + setWithLastConsumed( + current, + "number", + lv_number_0_0, + "org.eclipse.xtext.common.Terminals.INT"); + + } + + } + + + } + + otherlv_1=(Token)match(input,59,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getALSIntScopeAccess().getIntKeyword_1()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSIntScope" + + + // $ANTLR start "entryRuleALSStringScope" + // InternalAlloyLanguage.g:2999:1: entryRuleALSStringScope returns [EObject current=null] : iv_ruleALSStringScope= ruleALSStringScope EOF ; + public final EObject entryRuleALSStringScope() throws RecognitionException { + EObject current = null; + + EObject iv_ruleALSStringScope = null; + + + try { + // InternalAlloyLanguage.g:3000:2: (iv_ruleALSStringScope= ruleALSStringScope EOF ) + // InternalAlloyLanguage.g:3001:2: iv_ruleALSStringScope= ruleALSStringScope EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getALSStringScopeRule()); + } + pushFollow(FOLLOW_1); + iv_ruleALSStringScope=ruleALSStringScope(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleALSStringScope; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleALSStringScope" + + + // $ANTLR start "ruleALSStringScope" + // InternalAlloyLanguage.g:3008:1: ruleALSStringScope returns [EObject current=null] : (otherlv_0= 'exactly' ( (lv_number_1_0= RULE_INT ) ) otherlv_2= 'String' ) ; + public final EObject ruleALSStringScope() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_number_1_0=null; + Token otherlv_2=null; + + enterRule(); + + try { + // InternalAlloyLanguage.g:3011:28: ( (otherlv_0= 'exactly' ( (lv_number_1_0= RULE_INT ) ) otherlv_2= 'String' ) ) + // InternalAlloyLanguage.g:3012:1: (otherlv_0= 'exactly' ( (lv_number_1_0= RULE_INT ) ) otherlv_2= 'String' ) + { + // InternalAlloyLanguage.g:3012:1: (otherlv_0= 'exactly' ( (lv_number_1_0= RULE_INT ) ) otherlv_2= 'String' ) + // InternalAlloyLanguage.g:3012:3: otherlv_0= 'exactly' ( (lv_number_1_0= RULE_INT ) ) otherlv_2= 'String' + { + otherlv_0=(Token)match(input,65,FOLLOW_38); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getALSStringScopeAccess().getExactlyKeyword_0()); + + } + // InternalAlloyLanguage.g:3016:1: ( (lv_number_1_0= RULE_INT ) ) + // InternalAlloyLanguage.g:3017:1: (lv_number_1_0= RULE_INT ) + { + // InternalAlloyLanguage.g:3017:1: (lv_number_1_0= RULE_INT ) + // InternalAlloyLanguage.g:3018:3: lv_number_1_0= RULE_INT + { + lv_number_1_0=(Token)match(input,RULE_INT,FOLLOW_40); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_number_1_0, grammarAccess.getALSStringScopeAccess().getNumberINTTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getALSStringScopeRule()); + } + setWithLastConsumed( + current, + "number", + lv_number_1_0, + "org.eclipse.xtext.common.Terminals.INT"); + + } + + } + + + } + + otherlv_2=(Token)match(input,60,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getALSStringScopeAccess().getStringKeyword_2()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSStringScope" + + + // $ANTLR start "ruleALSMultiplicity" + // InternalAlloyLanguage.g:3046:1: ruleALSMultiplicity returns [Enumerator current=null] : ( (enumLiteral_0= 'all' ) | (enumLiteral_1= 'no' ) | (enumLiteral_2= 'some' ) | (enumLiteral_3= 'lone' ) | (enumLiteral_4= 'one' ) | (enumLiteral_5= 'set' ) ) ; + public final Enumerator ruleALSMultiplicity() throws RecognitionException { + Enumerator current = null; + + Token enumLiteral_0=null; + Token enumLiteral_1=null; + Token enumLiteral_2=null; + Token enumLiteral_3=null; + Token enumLiteral_4=null; + Token enumLiteral_5=null; + + enterRule(); + try { + // InternalAlloyLanguage.g:3048:28: ( ( (enumLiteral_0= 'all' ) | (enumLiteral_1= 'no' ) | (enumLiteral_2= 'some' ) | (enumLiteral_3= 'lone' ) | (enumLiteral_4= 'one' ) | (enumLiteral_5= 'set' ) ) ) + // InternalAlloyLanguage.g:3049:1: ( (enumLiteral_0= 'all' ) | (enumLiteral_1= 'no' ) | (enumLiteral_2= 'some' ) | (enumLiteral_3= 'lone' ) | (enumLiteral_4= 'one' ) | (enumLiteral_5= 'set' ) ) + { + // InternalAlloyLanguage.g:3049:1: ( (enumLiteral_0= 'all' ) | (enumLiteral_1= 'no' ) | (enumLiteral_2= 'some' ) | (enumLiteral_3= 'lone' ) | (enumLiteral_4= 'one' ) | (enumLiteral_5= 'set' ) ) + int alt48=6; + switch ( input.LA(1) ) { + case 66: + { + alt48=1; + } + break; + case 67: + { + alt48=2; + } + break; + case 68: + { + alt48=3; + } + break; + case 69: + { + alt48=4; + } + break; + case 70: + { + alt48=5; + } + break; + case 71: + { + alt48=6; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 48, 0, input); + + throw nvae; + } + + switch (alt48) { + case 1 : + // InternalAlloyLanguage.g:3049:2: (enumLiteral_0= 'all' ) + { + // InternalAlloyLanguage.g:3049:2: (enumLiteral_0= 'all' ) + // InternalAlloyLanguage.g:3049:4: enumLiteral_0= 'all' + { + enumLiteral_0=(Token)match(input,66,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = grammarAccess.getALSMultiplicityAccess().getAllEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getALSMultiplicityAccess().getAllEnumLiteralDeclaration_0()); + + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:3055:6: (enumLiteral_1= 'no' ) + { + // InternalAlloyLanguage.g:3055:6: (enumLiteral_1= 'no' ) + // InternalAlloyLanguage.g:3055:8: enumLiteral_1= 'no' + { + enumLiteral_1=(Token)match(input,67,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = grammarAccess.getALSMultiplicityAccess().getNoEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getALSMultiplicityAccess().getNoEnumLiteralDeclaration_1()); + + } + + } + + + } + break; + case 3 : + // InternalAlloyLanguage.g:3061:6: (enumLiteral_2= 'some' ) + { + // InternalAlloyLanguage.g:3061:6: (enumLiteral_2= 'some' ) + // InternalAlloyLanguage.g:3061:8: enumLiteral_2= 'some' + { + enumLiteral_2=(Token)match(input,68,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = grammarAccess.getALSMultiplicityAccess().getSomeEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getALSMultiplicityAccess().getSomeEnumLiteralDeclaration_2()); + + } + + } + + + } + break; + case 4 : + // InternalAlloyLanguage.g:3067:6: (enumLiteral_3= 'lone' ) + { + // InternalAlloyLanguage.g:3067:6: (enumLiteral_3= 'lone' ) + // InternalAlloyLanguage.g:3067:8: enumLiteral_3= 'lone' + { + enumLiteral_3=(Token)match(input,69,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = grammarAccess.getALSMultiplicityAccess().getLoneEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getALSMultiplicityAccess().getLoneEnumLiteralDeclaration_3()); + + } + + } + + + } + break; + case 5 : + // InternalAlloyLanguage.g:3073:6: (enumLiteral_4= 'one' ) + { + // InternalAlloyLanguage.g:3073:6: (enumLiteral_4= 'one' ) + // InternalAlloyLanguage.g:3073:8: enumLiteral_4= 'one' + { + enumLiteral_4=(Token)match(input,70,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = grammarAccess.getALSMultiplicityAccess().getOneEnumLiteralDeclaration_4().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_4, grammarAccess.getALSMultiplicityAccess().getOneEnumLiteralDeclaration_4()); + + } + + } + + + } + break; + case 6 : + // InternalAlloyLanguage.g:3079:6: (enumLiteral_5= 'set' ) + { + // InternalAlloyLanguage.g:3079:6: (enumLiteral_5= 'set' ) + // InternalAlloyLanguage.g:3079:8: enumLiteral_5= 'set' + { + enumLiteral_5=(Token)match(input,71,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = grammarAccess.getALSMultiplicityAccess().getSetEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_5, grammarAccess.getALSMultiplicityAccess().getSetEnumLiteralDeclaration_5()); + + } + + } + + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSMultiplicity" + + + // $ANTLR start "ruleALSNumericOperator" + // InternalAlloyLanguage.g:3089:1: ruleALSNumericOperator returns [Enumerator current=null] : ( (enumLiteral_0= 'plus' ) | (enumLiteral_1= 'sub' ) | (enumLiteral_2= 'mul' ) | (enumLiteral_3= 'rem' ) | (enumLiteral_4= 'div' ) ) ; + public final Enumerator ruleALSNumericOperator() throws RecognitionException { + Enumerator current = null; + + Token enumLiteral_0=null; + Token enumLiteral_1=null; + Token enumLiteral_2=null; + Token enumLiteral_3=null; + Token enumLiteral_4=null; + + enterRule(); + try { + // InternalAlloyLanguage.g:3091:28: ( ( (enumLiteral_0= 'plus' ) | (enumLiteral_1= 'sub' ) | (enumLiteral_2= 'mul' ) | (enumLiteral_3= 'rem' ) | (enumLiteral_4= 'div' ) ) ) + // InternalAlloyLanguage.g:3092:1: ( (enumLiteral_0= 'plus' ) | (enumLiteral_1= 'sub' ) | (enumLiteral_2= 'mul' ) | (enumLiteral_3= 'rem' ) | (enumLiteral_4= 'div' ) ) + { + // InternalAlloyLanguage.g:3092:1: ( (enumLiteral_0= 'plus' ) | (enumLiteral_1= 'sub' ) | (enumLiteral_2= 'mul' ) | (enumLiteral_3= 'rem' ) | (enumLiteral_4= 'div' ) ) + int alt49=5; + switch ( input.LA(1) ) { + case 72: + { + alt49=1; + } + break; + case 73: + { + alt49=2; + } + break; + case 74: + { + alt49=3; + } + break; + case 75: + { + alt49=4; + } + break; + case 76: + { + alt49=5; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 49, 0, input); + + throw nvae; + } + + switch (alt49) { + case 1 : + // InternalAlloyLanguage.g:3092:2: (enumLiteral_0= 'plus' ) + { + // InternalAlloyLanguage.g:3092:2: (enumLiteral_0= 'plus' ) + // InternalAlloyLanguage.g:3092:4: enumLiteral_0= 'plus' + { + enumLiteral_0=(Token)match(input,72,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = grammarAccess.getALSNumericOperatorAccess().getPlusEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getALSNumericOperatorAccess().getPlusEnumLiteralDeclaration_0()); + + } + + } + + + } + break; + case 2 : + // InternalAlloyLanguage.g:3098:6: (enumLiteral_1= 'sub' ) + { + // InternalAlloyLanguage.g:3098:6: (enumLiteral_1= 'sub' ) + // InternalAlloyLanguage.g:3098:8: enumLiteral_1= 'sub' + { + enumLiteral_1=(Token)match(input,73,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = grammarAccess.getALSNumericOperatorAccess().getSubEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getALSNumericOperatorAccess().getSubEnumLiteralDeclaration_1()); + + } + + } + + + } + break; + case 3 : + // InternalAlloyLanguage.g:3104:6: (enumLiteral_2= 'mul' ) + { + // InternalAlloyLanguage.g:3104:6: (enumLiteral_2= 'mul' ) + // InternalAlloyLanguage.g:3104:8: enumLiteral_2= 'mul' + { + enumLiteral_2=(Token)match(input,74,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = grammarAccess.getALSNumericOperatorAccess().getMulEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getALSNumericOperatorAccess().getMulEnumLiteralDeclaration_2()); + + } + + } + + + } + break; + case 4 : + // InternalAlloyLanguage.g:3110:6: (enumLiteral_3= 'rem' ) + { + // InternalAlloyLanguage.g:3110:6: (enumLiteral_3= 'rem' ) + // InternalAlloyLanguage.g:3110:8: enumLiteral_3= 'rem' + { + enumLiteral_3=(Token)match(input,75,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = grammarAccess.getALSNumericOperatorAccess().getRemEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getALSNumericOperatorAccess().getRemEnumLiteralDeclaration_3()); + + } + + } + + + } + break; + case 5 : + // InternalAlloyLanguage.g:3116:6: (enumLiteral_4= 'div' ) + { + // InternalAlloyLanguage.g:3116:6: (enumLiteral_4= 'div' ) + // InternalAlloyLanguage.g:3116:8: enumLiteral_4= 'div' + { + enumLiteral_4=(Token)match(input,76,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = grammarAccess.getALSNumericOperatorAccess().getDivEnumLiteralDeclaration_4().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_4, grammarAccess.getALSNumericOperatorAccess().getDivEnumLiteralDeclaration_4()); + + } + + } + + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + leaveRule(); + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleALSNumericOperator" + + // Delegated rules + + + protected DFA10 dfa10 = new DFA10(this); + protected DFA42 dfa42 = new DFA42(this); + static final String dfa_1s = "\12\uffff"; + static final String dfa_2s = "\11\uffff\1\10"; + static final String dfa_3s = "\7\4\2\uffff\1\15"; + static final String dfa_4s = "\7\114\2\uffff\1\107"; + static final String dfa_5s = "\7\uffff\1\2\1\1\1\uffff"; + static final String dfa_6s = "\12\uffff}>"; + static final String[] dfa_7s = { + "\3\7\47\uffff\1\7\2\uffff\15\7\4\uffff\1\1\1\2\1\3\1\4\1\5\1\6\5\7", + "\1\11\2\10\23\uffff\1\7\23\uffff\1\10\2\uffff\15\10\4\uffff\13\10", + "\1\11\2\10\23\uffff\1\7\23\uffff\1\10\2\uffff\15\10\4\uffff\13\10", + "\1\11\2\10\23\uffff\1\7\23\uffff\1\10\2\uffff\15\10\4\uffff\13\10", + "\1\11\2\10\23\uffff\1\7\23\uffff\1\10\2\uffff\15\10\4\uffff\13\10", + "\1\11\2\10\23\uffff\1\7\23\uffff\1\10\2\uffff\15\10\4\uffff\13\10", + "\1\11\2\10\23\uffff\1\7\23\uffff\1\10\2\uffff\15\10\4\uffff\13\10", + "", + "", + "\2\10\3\uffff\2\10\1\7\1\uffff\1\10\4\uffff\6\10\1\uffff\17\10\21\uffff\6\10" + }; + + 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 DFA10 extends DFA { + + public DFA10(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 10; + 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 "713:1: ( (lv_multiplicity_2_0= ruleALSMultiplicity ) )?"; + } + } + static final String dfa_8s = "\13\uffff"; + static final String dfa_9s = "\10\uffff\1\12\2\uffff"; + static final String dfa_10s = "\1\4\7\uffff\1\14\2\uffff"; + static final String dfa_11s = "\1\114\7\uffff\1\107\2\uffff"; + static final String dfa_12s = "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\uffff\1\10\1\11"; + static final String dfa_13s = "\13\uffff}>"; + static final String[] dfa_14s = { + "\1\10\2\12\47\uffff\1\6\2\uffff\2\1\1\2\1\3\1\4\1\5\1\7\6\12\12\uffff\5\11", + "", + "", + "", + "", + "", + "", + "", + "\3\12\3\uffff\2\12\2\uffff\1\11\1\12\3\uffff\26\12\15\uffff\1\12\3\uffff\6\12", + "", + "" + }; + + static final short[] dfa_8 = DFA.unpackEncodedString(dfa_8s); + static final short[] dfa_9 = DFA.unpackEncodedString(dfa_9s); + static final char[] dfa_10 = DFA.unpackEncodedStringToUnsignedChars(dfa_10s); + static final char[] dfa_11 = DFA.unpackEncodedStringToUnsignedChars(dfa_11s); + static final short[] dfa_12 = DFA.unpackEncodedString(dfa_12s); + static final short[] dfa_13 = DFA.unpackEncodedString(dfa_13s); + static final short[][] dfa_14 = unpackEncodedStringArray(dfa_14s); + + class DFA42 extends DFA { + + public DFA42(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 42; + this.eot = dfa_8; + this.eof = dfa_9; + this.min = dfa_10; + this.max = dfa_11; + this.accept = dfa_12; + this.special = dfa_13; + this.transition = dfa_14; + } + public String getDescription() { + return "2167:1: ( ( () ( ( ( '!' | 'not' ) )=> (otherlv_1= '!' | otherlv_2= 'not' ) ) ( (lv_operand_3_0= ruleALSBasicRelationTerm ) ) ) | ( () ( ( '~' )=>otherlv_5= '~' ) ( (lv_operand_6_0= ruleALSBasicRelationTerm ) ) ) | ( () otherlv_8= '^' ( (lv_operand_9_0= ruleALSBasicRelationTerm ) ) ) | ( () otherlv_11= '*' ( (lv_operand_12_0= ruleALSBasicRelationTerm ) ) ) | ( () otherlv_14= '#' ( (lv_operand_15_0= ruleALSBasicRelationTerm ) ) ) | ( () ( ( '-' )=>otherlv_17= '-' ) ( (lv_operand_18_0= ruleALSBasicRelationTerm ) ) ) | ( () otherlv_20= 'sum' ( (lv_variables_21_0= ruleALSVariableDeclaration ) ) (otherlv_22= ',' ( (lv_variables_23_0= ruleALSVariableDeclaration ) ) )* otherlv_24= '{' ( (lv_expression_25_0= ruleALSTerm ) ) otherlv_26= '}' ) | ( () ( ( (otherlv_28= RULE_ID ) ) | ( (lv_referredNumericOperator_29_0= ruleALSNumericOperator ) ) ) otherlv_30= '[' ( (lv_params_31_0= ruleALSTerm ) ) (otherlv_32= ',' ( (lv_params_33_0= ruleALSTerm ) ) )* otherlv_34= ']' ) | this_ALSBasicRelationTerm_35= ruleALSBasicRelationTerm )"; + } + } + + + 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[]{0x8000000003218800L,0x00000000000000FCL}); + public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000006000L}); + public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000018000L,0x00000000000000FCL}); + public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000063000L}); + public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000081000L}); + public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000004010L}); + public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x3FFE400000000070L,0x0000000000001FFCL}); + public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000802000L}); + public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000001010L}); + public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000004000010L}); + public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000003000L}); + public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000018000002L}); + public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000060000002L}); + public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000180000002L}); + public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000200000002L}); + public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000C00000002L}); + public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x000003F000040002L}); + public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000040000000002L}); + public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000080000000002L}); + public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000100000000002L}); + public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000200000000002L}); + public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000400000000002L}); + public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000000080002L}); + public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000800000000002L}); + public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0001000000000002L,0x00000000000000FCL}); + public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0001000000000000L}); + public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x4000000000000000L}); + public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000001L}); + public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000000020L,0x0000000000000002L}); + public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000002002L}); + public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000000020L}); + public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0800000000000000L}); + public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x1000000000000000L}); + +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/serializer/AlloyLanguageSemanticSequencer.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/serializer/AlloyLanguageSemanticSequencer.java new file mode 100644 index 00000000..64f0bb55 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/serializer/AlloyLanguageSemanticSequencer.java @@ -0,0 +1,2366 @@ +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner.serializer; + +import com.google.inject.Inject; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSAnd; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSCardinality; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDirectProduct; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumLiteral; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEquals; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFactDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFieldDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionCall; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionDefinition; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIden; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIff; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSImpl; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSInt; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntScope; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSIntersection; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSInverseRelation; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSJoin; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLeq; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSLess; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMeq; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMinus; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSMore; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNone; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNot; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNotEquals; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSNumberLiteral; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOr; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSOverride; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSPlus; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionLeft; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRangeRestrictionRight; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReference; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReflectiveTransitiveClosure; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDefinition; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRunCommand; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSigScope; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSString; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringLiteral; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSStringScope; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSubset; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSum; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSUnaryMinus; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSUniv; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSVariableDeclaration; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlSTransitiveClosure; +import hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage; +import hu.bme.mit.inf.dslreasoner.services.AlloyLanguageGrammarAccess; +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 AlloyLanguageSemanticSequencer extends AbstractDelegatingSemanticSequencer { + + @Inject + private AlloyLanguageGrammarAccess 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 == AlloyLanguagePackage.eINSTANCE) + switch (semanticObject.eClass().getClassifierID()) { + case AlloyLanguagePackage.ALS_AND: + sequence_ALSAnd(context, (ALSAnd) semanticObject); + return; + case AlloyLanguagePackage.ALS_CARDINALITY: + sequence_ALSPreficed(context, (ALSCardinality) semanticObject); + return; + case AlloyLanguagePackage.ALS_DIRECT_PRODUCT: + sequence_ALSDirectProduct(context, (ALSDirectProduct) semanticObject); + return; + case AlloyLanguagePackage.ALS_DOCUMENT: + sequence_ALSDocument(context, (ALSDocument) semanticObject); + return; + case AlloyLanguagePackage.ALS_ENUM_DECLARATION: + sequence_ALSEnumDeclaration(context, (ALSEnumDeclaration) semanticObject); + return; + case AlloyLanguagePackage.ALS_ENUM_LITERAL: + sequence_ALSEnumLiteral(context, (ALSEnumLiteral) semanticObject); + return; + case AlloyLanguagePackage.ALS_EQUALS: + sequence_ALSComparison(context, (ALSEquals) semanticObject); + return; + case AlloyLanguagePackage.ALS_FACT_DECLARATION: + sequence_ALSFactDeclaration(context, (ALSFactDeclaration) semanticObject); + return; + case AlloyLanguagePackage.ALS_FIELD_DECLARATION: + sequence_ALSFieldDeclaration(context, (ALSFieldDeclaration) semanticObject); + return; + case AlloyLanguagePackage.ALS_FUNCTION_CALL: + sequence_ALSPreficed(context, (ALSFunctionCall) semanticObject); + return; + case AlloyLanguagePackage.ALS_FUNCTION_DEFINITION: + sequence_ALSFunctionDefinition(context, (ALSFunctionDefinition) semanticObject); + return; + case AlloyLanguagePackage.ALS_IDEN: + sequence_ALSBasicRelationTerm(context, (ALSIden) semanticObject); + return; + case AlloyLanguagePackage.ALS_IFF: + sequence_ALSIff(context, (ALSIff) semanticObject); + return; + case AlloyLanguagePackage.ALS_IMPL: + sequence_ALSImpl(context, (ALSImpl) semanticObject); + return; + case AlloyLanguagePackage.ALS_INT: + sequence_ALSBasicRelationTerm(context, (ALSInt) semanticObject); + return; + case AlloyLanguagePackage.ALS_INT_SCOPE: + sequence_ALSIntScope(context, (ALSIntScope) semanticObject); + return; + case AlloyLanguagePackage.ALS_INTERSECTION: + sequence_ALSIntersection(context, (ALSIntersection) semanticObject); + return; + case AlloyLanguagePackage.ALS_INVERSE_RELATION: + sequence_ALSPreficed(context, (ALSInverseRelation) semanticObject); + return; + case AlloyLanguagePackage.ALS_JOIN: + sequence_ALSJoin(context, (ALSJoin) semanticObject); + return; + case AlloyLanguagePackage.ALS_LEQ: + sequence_ALSComparison(context, (ALSLeq) semanticObject); + return; + case AlloyLanguagePackage.ALS_LESS: + sequence_ALSComparison(context, (ALSLess) semanticObject); + return; + case AlloyLanguagePackage.ALS_MEQ: + sequence_ALSComparison(context, (ALSMeq) semanticObject); + return; + case AlloyLanguagePackage.ALS_MINUS: + sequence_ALSMinus(context, (ALSMinus) semanticObject); + return; + case AlloyLanguagePackage.ALS_MORE: + sequence_ALSComparison(context, (ALSMore) semanticObject); + return; + case AlloyLanguagePackage.ALS_NONE: + sequence_ALSBasicRelationTerm(context, (ALSNone) semanticObject); + return; + case AlloyLanguagePackage.ALS_NOT: + sequence_ALSPreficed(context, (ALSNot) semanticObject); + return; + case AlloyLanguagePackage.ALS_NOT_EQUALS: + sequence_ALSComparison(context, (ALSNotEquals) semanticObject); + return; + case AlloyLanguagePackage.ALS_NUMBER_LITERAL: + sequence_ALSBasicRelationTerm(context, (ALSNumberLiteral) semanticObject); + return; + case AlloyLanguagePackage.ALS_OR: + sequence_ALSOr(context, (ALSOr) semanticObject); + return; + case AlloyLanguagePackage.ALS_OVERRIDE: + sequence_ALSOverride(context, (ALSOverride) semanticObject); + return; + case AlloyLanguagePackage.ALS_PLUS: + sequence_ALSPlus(context, (ALSPlus) semanticObject); + return; + case AlloyLanguagePackage.ALS_QUANTIFIED_EX: + sequence_ALSQuantified(context, (ALSQuantifiedEx) semanticObject); + return; + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_LEFT: + sequence_ALSRangeRestrictionLeft(context, (ALSRangeRestrictionLeft) semanticObject); + return; + case AlloyLanguagePackage.ALS_RANGE_RESTRICTION_RIGHT: + sequence_ALSRangeRestrictionRight(context, (ALSRangeRestrictionRight) semanticObject); + return; + case AlloyLanguagePackage.ALS_REFERENCE: + sequence_ALSBasicRelationTerm(context, (ALSReference) semanticObject); + return; + case AlloyLanguagePackage.ALS_REFLECTIVE_TRANSITIVE_CLOSURE: + sequence_ALSPreficed(context, (ALSReflectiveTransitiveClosure) semanticObject); + return; + case AlloyLanguagePackage.ALS_RELATION_DEFINITION: + sequence_ALSRelationDefinition(context, (ALSRelationDefinition) semanticObject); + return; + case AlloyLanguagePackage.ALS_RUN_COMMAND: + sequence_ALSRunCommand(context, (ALSRunCommand) semanticObject); + return; + case AlloyLanguagePackage.ALS_SIG_SCOPE: + sequence_ALSSigScope(context, (ALSSigScope) semanticObject); + return; + case AlloyLanguagePackage.ALS_SIGNATURE_BODY: + sequence_ALSSignatureBody(context, (ALSSignatureBody) semanticObject); + return; + case AlloyLanguagePackage.ALS_SIGNATURE_DECLARATION: + sequence_ALSSignatureDeclaration(context, (ALSSignatureDeclaration) semanticObject); + return; + case AlloyLanguagePackage.ALS_STRING: + sequence_ALSBasicRelationTerm(context, (ALSString) semanticObject); + return; + case AlloyLanguagePackage.ALS_STRING_LITERAL: + sequence_ALSBasicRelationTerm(context, (ALSStringLiteral) semanticObject); + return; + case AlloyLanguagePackage.ALS_STRING_SCOPE: + sequence_ALSStringScope(context, (ALSStringScope) semanticObject); + return; + case AlloyLanguagePackage.ALS_SUBSET: + sequence_ALSComparison(context, (ALSSubset) semanticObject); + return; + case AlloyLanguagePackage.ALS_SUM: + sequence_ALSPreficed(context, (ALSSum) semanticObject); + return; + case AlloyLanguagePackage.ALS_UNARY_MINUS: + sequence_ALSPreficed(context, (ALSUnaryMinus) semanticObject); + return; + case AlloyLanguagePackage.ALS_UNIV: + sequence_ALSBasicRelationTerm(context, (ALSUniv) semanticObject); + return; + case AlloyLanguagePackage.ALS_VARIABLE_DECLARATION: + sequence_ALSVariableDeclaration(context, (ALSVariableDeclaration) semanticObject); + return; + case AlloyLanguagePackage.AL_STRANSITIVE_CLOSURE: + sequence_ALSPreficed(context, (AlSTransitiveClosure) semanticObject); + return; + } + if (errorAcceptor != null) + errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context)); + } + + /** + * Contexts: + * ALSTerm returns ALSAnd + * ALSQuantified returns ALSAnd + * ALSOr returns ALSAnd + * ALSOr.ALSOr_1_0 returns ALSAnd + * ALSIff returns ALSAnd + * ALSIff.ALSIff_1_0 returns ALSAnd + * ALSImpl returns ALSAnd + * ALSImpl.ALSImpl_1_0 returns ALSAnd + * ALSAnd returns ALSAnd + * ALSAnd.ALSAnd_1_0 returns ALSAnd + * ALSComparison returns ALSAnd + * ALSComparison.ALSEquals_1_0_0_0 returns ALSAnd + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSAnd + * ALSComparison.ALSSubset_1_0_2_0 returns ALSAnd + * ALSComparison.ALSLess_1_0_3_0 returns ALSAnd + * ALSComparison.ALSLeq_1_0_4_0 returns ALSAnd + * ALSComparison.ALSMore_1_0_5_0 returns ALSAnd + * ALSComparison.ALSMeq_1_0_6_0 returns ALSAnd + * ALSOverride returns ALSAnd + * ALSOverride.ALSOverride_1_0 returns ALSAnd + * ALSRangeRestrictionRight returns ALSAnd + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSAnd + * ALSRangeRestrictionLeft returns ALSAnd + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSAnd + * ALSJoin returns ALSAnd + * ALSJoin.ALSJoin_1_0 returns ALSAnd + * ALSMinus returns ALSAnd + * ALSMinus.ALSMinus_1_0 returns ALSAnd + * ALSPlus returns ALSAnd + * ALSPlus.ALSPlus_1_0 returns ALSAnd + * ALSIntersection returns ALSAnd + * ALSIntersection.ALSIntersection_1_0 returns ALSAnd + * ALSDirectProduct returns ALSAnd + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSAnd + * ALSPreficed returns ALSAnd + * ALSBasicRelationTerm returns ALSAnd + * + * Constraint: + * (leftOperand=ALSAnd_ALSAnd_1_0 rightOperand=ALSComparison) + */ + protected void sequence_ALSAnd(ISerializationContext context, ALSAnd semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_AND__LEFT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_AND__LEFT_OPERAND)); + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_AND__RIGHT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_AND__RIGHT_OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSAndAccess().getALSAndLeftOperandAction_1_0(), semanticObject.getLeftOperand()); + feeder.accept(grammarAccess.getALSAndAccess().getRightOperandALSComparisonParserRuleCall_1_2_0(), semanticObject.getRightOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSIden + * ALSQuantified returns ALSIden + * ALSOr returns ALSIden + * ALSOr.ALSOr_1_0 returns ALSIden + * ALSIff returns ALSIden + * ALSIff.ALSIff_1_0 returns ALSIden + * ALSImpl returns ALSIden + * ALSImpl.ALSImpl_1_0 returns ALSIden + * ALSAnd returns ALSIden + * ALSAnd.ALSAnd_1_0 returns ALSIden + * ALSComparison returns ALSIden + * ALSComparison.ALSEquals_1_0_0_0 returns ALSIden + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSIden + * ALSComparison.ALSSubset_1_0_2_0 returns ALSIden + * ALSComparison.ALSLess_1_0_3_0 returns ALSIden + * ALSComparison.ALSLeq_1_0_4_0 returns ALSIden + * ALSComparison.ALSMore_1_0_5_0 returns ALSIden + * ALSComparison.ALSMeq_1_0_6_0 returns ALSIden + * ALSOverride returns ALSIden + * ALSOverride.ALSOverride_1_0 returns ALSIden + * ALSRangeRestrictionRight returns ALSIden + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSIden + * ALSRangeRestrictionLeft returns ALSIden + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSIden + * ALSJoin returns ALSIden + * ALSJoin.ALSJoin_1_0 returns ALSIden + * ALSMinus returns ALSIden + * ALSMinus.ALSMinus_1_0 returns ALSIden + * ALSPlus returns ALSIden + * ALSPlus.ALSPlus_1_0 returns ALSIden + * ALSIntersection returns ALSIden + * ALSIntersection.ALSIntersection_1_0 returns ALSIden + * ALSDirectProduct returns ALSIden + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSIden + * ALSPreficed returns ALSIden + * ALSBasicRelationTerm returns ALSIden + * + * Constraint: + * {ALSIden} + */ + protected void sequence_ALSBasicRelationTerm(ISerializationContext context, ALSIden semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ALSTerm returns ALSInt + * ALSQuantified returns ALSInt + * ALSOr returns ALSInt + * ALSOr.ALSOr_1_0 returns ALSInt + * ALSIff returns ALSInt + * ALSIff.ALSIff_1_0 returns ALSInt + * ALSImpl returns ALSInt + * ALSImpl.ALSImpl_1_0 returns ALSInt + * ALSAnd returns ALSInt + * ALSAnd.ALSAnd_1_0 returns ALSInt + * ALSComparison returns ALSInt + * ALSComparison.ALSEquals_1_0_0_0 returns ALSInt + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSInt + * ALSComparison.ALSSubset_1_0_2_0 returns ALSInt + * ALSComparison.ALSLess_1_0_3_0 returns ALSInt + * ALSComparison.ALSLeq_1_0_4_0 returns ALSInt + * ALSComparison.ALSMore_1_0_5_0 returns ALSInt + * ALSComparison.ALSMeq_1_0_6_0 returns ALSInt + * ALSOverride returns ALSInt + * ALSOverride.ALSOverride_1_0 returns ALSInt + * ALSRangeRestrictionRight returns ALSInt + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSInt + * ALSRangeRestrictionLeft returns ALSInt + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSInt + * ALSJoin returns ALSInt + * ALSJoin.ALSJoin_1_0 returns ALSInt + * ALSMinus returns ALSInt + * ALSMinus.ALSMinus_1_0 returns ALSInt + * ALSPlus returns ALSInt + * ALSPlus.ALSPlus_1_0 returns ALSInt + * ALSIntersection returns ALSInt + * ALSIntersection.ALSIntersection_1_0 returns ALSInt + * ALSDirectProduct returns ALSInt + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSInt + * ALSPreficed returns ALSInt + * ALSBasicRelationTerm returns ALSInt + * + * Constraint: + * {ALSInt} + */ + protected void sequence_ALSBasicRelationTerm(ISerializationContext context, ALSInt semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ALSTerm returns ALSNone + * ALSQuantified returns ALSNone + * ALSOr returns ALSNone + * ALSOr.ALSOr_1_0 returns ALSNone + * ALSIff returns ALSNone + * ALSIff.ALSIff_1_0 returns ALSNone + * ALSImpl returns ALSNone + * ALSImpl.ALSImpl_1_0 returns ALSNone + * ALSAnd returns ALSNone + * ALSAnd.ALSAnd_1_0 returns ALSNone + * ALSComparison returns ALSNone + * ALSComparison.ALSEquals_1_0_0_0 returns ALSNone + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSNone + * ALSComparison.ALSSubset_1_0_2_0 returns ALSNone + * ALSComparison.ALSLess_1_0_3_0 returns ALSNone + * ALSComparison.ALSLeq_1_0_4_0 returns ALSNone + * ALSComparison.ALSMore_1_0_5_0 returns ALSNone + * ALSComparison.ALSMeq_1_0_6_0 returns ALSNone + * ALSOverride returns ALSNone + * ALSOverride.ALSOverride_1_0 returns ALSNone + * ALSRangeRestrictionRight returns ALSNone + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSNone + * ALSRangeRestrictionLeft returns ALSNone + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSNone + * ALSJoin returns ALSNone + * ALSJoin.ALSJoin_1_0 returns ALSNone + * ALSMinus returns ALSNone + * ALSMinus.ALSMinus_1_0 returns ALSNone + * ALSPlus returns ALSNone + * ALSPlus.ALSPlus_1_0 returns ALSNone + * ALSIntersection returns ALSNone + * ALSIntersection.ALSIntersection_1_0 returns ALSNone + * ALSDirectProduct returns ALSNone + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSNone + * ALSPreficed returns ALSNone + * ALSBasicRelationTerm returns ALSNone + * + * Constraint: + * {ALSNone} + */ + protected void sequence_ALSBasicRelationTerm(ISerializationContext context, ALSNone semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ALSTerm returns ALSNumberLiteral + * ALSQuantified returns ALSNumberLiteral + * ALSOr returns ALSNumberLiteral + * ALSOr.ALSOr_1_0 returns ALSNumberLiteral + * ALSIff returns ALSNumberLiteral + * ALSIff.ALSIff_1_0 returns ALSNumberLiteral + * ALSImpl returns ALSNumberLiteral + * ALSImpl.ALSImpl_1_0 returns ALSNumberLiteral + * ALSAnd returns ALSNumberLiteral + * ALSAnd.ALSAnd_1_0 returns ALSNumberLiteral + * ALSComparison returns ALSNumberLiteral + * ALSComparison.ALSEquals_1_0_0_0 returns ALSNumberLiteral + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSNumberLiteral + * ALSComparison.ALSSubset_1_0_2_0 returns ALSNumberLiteral + * ALSComparison.ALSLess_1_0_3_0 returns ALSNumberLiteral + * ALSComparison.ALSLeq_1_0_4_0 returns ALSNumberLiteral + * ALSComparison.ALSMore_1_0_5_0 returns ALSNumberLiteral + * ALSComparison.ALSMeq_1_0_6_0 returns ALSNumberLiteral + * ALSOverride returns ALSNumberLiteral + * ALSOverride.ALSOverride_1_0 returns ALSNumberLiteral + * ALSRangeRestrictionRight returns ALSNumberLiteral + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSNumberLiteral + * ALSRangeRestrictionLeft returns ALSNumberLiteral + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSNumberLiteral + * ALSJoin returns ALSNumberLiteral + * ALSJoin.ALSJoin_1_0 returns ALSNumberLiteral + * ALSMinus returns ALSNumberLiteral + * ALSMinus.ALSMinus_1_0 returns ALSNumberLiteral + * ALSPlus returns ALSNumberLiteral + * ALSPlus.ALSPlus_1_0 returns ALSNumberLiteral + * ALSIntersection returns ALSNumberLiteral + * ALSIntersection.ALSIntersection_1_0 returns ALSNumberLiteral + * ALSDirectProduct returns ALSNumberLiteral + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSNumberLiteral + * ALSPreficed returns ALSNumberLiteral + * ALSBasicRelationTerm returns ALSNumberLiteral + * + * Constraint: + * value=INT + */ + protected void sequence_ALSBasicRelationTerm(ISerializationContext context, ALSNumberLiteral semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_NUMBER_LITERAL__VALUE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_NUMBER_LITERAL__VALUE)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSBasicRelationTermAccess().getValueINTTerminalRuleCall_6_1_0(), semanticObject.getValue()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSReference + * ALSQuantified returns ALSReference + * ALSOr returns ALSReference + * ALSOr.ALSOr_1_0 returns ALSReference + * ALSIff returns ALSReference + * ALSIff.ALSIff_1_0 returns ALSReference + * ALSImpl returns ALSReference + * ALSImpl.ALSImpl_1_0 returns ALSReference + * ALSAnd returns ALSReference + * ALSAnd.ALSAnd_1_0 returns ALSReference + * ALSComparison returns ALSReference + * ALSComparison.ALSEquals_1_0_0_0 returns ALSReference + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSReference + * ALSComparison.ALSSubset_1_0_2_0 returns ALSReference + * ALSComparison.ALSLess_1_0_3_0 returns ALSReference + * ALSComparison.ALSLeq_1_0_4_0 returns ALSReference + * ALSComparison.ALSMore_1_0_5_0 returns ALSReference + * ALSComparison.ALSMeq_1_0_6_0 returns ALSReference + * ALSOverride returns ALSReference + * ALSOverride.ALSOverride_1_0 returns ALSReference + * ALSRangeRestrictionRight returns ALSReference + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSReference + * ALSRangeRestrictionLeft returns ALSReference + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSReference + * ALSJoin returns ALSReference + * ALSJoin.ALSJoin_1_0 returns ALSReference + * ALSMinus returns ALSReference + * ALSMinus.ALSMinus_1_0 returns ALSReference + * ALSPlus returns ALSReference + * ALSPlus.ALSPlus_1_0 returns ALSReference + * ALSIntersection returns ALSReference + * ALSIntersection.ALSIntersection_1_0 returns ALSReference + * ALSDirectProduct returns ALSReference + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSReference + * ALSPreficed returns ALSReference + * ALSBasicRelationTerm returns ALSReference + * + * Constraint: + * referred=[ALSRelationDeclaration|ID] + */ + protected void sequence_ALSBasicRelationTerm(ISerializationContext context, ALSReference semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_REFERENCE__REFERRED) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_REFERENCE__REFERRED)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSBasicRelationTermAccess().getReferredALSRelationDeclarationIDTerminalRuleCall_5_1_0_1(), semanticObject.eGet(AlloyLanguagePackage.Literals.ALS_REFERENCE__REFERRED, false)); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSString + * ALSQuantified returns ALSString + * ALSOr returns ALSString + * ALSOr.ALSOr_1_0 returns ALSString + * ALSIff returns ALSString + * ALSIff.ALSIff_1_0 returns ALSString + * ALSImpl returns ALSString + * ALSImpl.ALSImpl_1_0 returns ALSString + * ALSAnd returns ALSString + * ALSAnd.ALSAnd_1_0 returns ALSString + * ALSComparison returns ALSString + * ALSComparison.ALSEquals_1_0_0_0 returns ALSString + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSString + * ALSComparison.ALSSubset_1_0_2_0 returns ALSString + * ALSComparison.ALSLess_1_0_3_0 returns ALSString + * ALSComparison.ALSLeq_1_0_4_0 returns ALSString + * ALSComparison.ALSMore_1_0_5_0 returns ALSString + * ALSComparison.ALSMeq_1_0_6_0 returns ALSString + * ALSOverride returns ALSString + * ALSOverride.ALSOverride_1_0 returns ALSString + * ALSRangeRestrictionRight returns ALSString + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSString + * ALSRangeRestrictionLeft returns ALSString + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSString + * ALSJoin returns ALSString + * ALSJoin.ALSJoin_1_0 returns ALSString + * ALSMinus returns ALSString + * ALSMinus.ALSMinus_1_0 returns ALSString + * ALSPlus returns ALSString + * ALSPlus.ALSPlus_1_0 returns ALSString + * ALSIntersection returns ALSString + * ALSIntersection.ALSIntersection_1_0 returns ALSString + * ALSDirectProduct returns ALSString + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSString + * ALSPreficed returns ALSString + * ALSBasicRelationTerm returns ALSString + * + * Constraint: + * {ALSString} + */ + protected void sequence_ALSBasicRelationTerm(ISerializationContext context, ALSString semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ALSTerm returns ALSStringLiteral + * ALSQuantified returns ALSStringLiteral + * ALSOr returns ALSStringLiteral + * ALSOr.ALSOr_1_0 returns ALSStringLiteral + * ALSIff returns ALSStringLiteral + * ALSIff.ALSIff_1_0 returns ALSStringLiteral + * ALSImpl returns ALSStringLiteral + * ALSImpl.ALSImpl_1_0 returns ALSStringLiteral + * ALSAnd returns ALSStringLiteral + * ALSAnd.ALSAnd_1_0 returns ALSStringLiteral + * ALSComparison returns ALSStringLiteral + * ALSComparison.ALSEquals_1_0_0_0 returns ALSStringLiteral + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSStringLiteral + * ALSComparison.ALSSubset_1_0_2_0 returns ALSStringLiteral + * ALSComparison.ALSLess_1_0_3_0 returns ALSStringLiteral + * ALSComparison.ALSLeq_1_0_4_0 returns ALSStringLiteral + * ALSComparison.ALSMore_1_0_5_0 returns ALSStringLiteral + * ALSComparison.ALSMeq_1_0_6_0 returns ALSStringLiteral + * ALSOverride returns ALSStringLiteral + * ALSOverride.ALSOverride_1_0 returns ALSStringLiteral + * ALSRangeRestrictionRight returns ALSStringLiteral + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSStringLiteral + * ALSRangeRestrictionLeft returns ALSStringLiteral + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSStringLiteral + * ALSJoin returns ALSStringLiteral + * ALSJoin.ALSJoin_1_0 returns ALSStringLiteral + * ALSMinus returns ALSStringLiteral + * ALSMinus.ALSMinus_1_0 returns ALSStringLiteral + * ALSPlus returns ALSStringLiteral + * ALSPlus.ALSPlus_1_0 returns ALSStringLiteral + * ALSIntersection returns ALSStringLiteral + * ALSIntersection.ALSIntersection_1_0 returns ALSStringLiteral + * ALSDirectProduct returns ALSStringLiteral + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSStringLiteral + * ALSPreficed returns ALSStringLiteral + * ALSBasicRelationTerm returns ALSStringLiteral + * + * Constraint: + * value=STRING + */ + protected void sequence_ALSBasicRelationTerm(ISerializationContext context, ALSStringLiteral semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_STRING_LITERAL__VALUE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_STRING_LITERAL__VALUE)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSBasicRelationTermAccess().getValueSTRINGTerminalRuleCall_7_1_0(), semanticObject.getValue()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSUniv + * ALSQuantified returns ALSUniv + * ALSOr returns ALSUniv + * ALSOr.ALSOr_1_0 returns ALSUniv + * ALSIff returns ALSUniv + * ALSIff.ALSIff_1_0 returns ALSUniv + * ALSImpl returns ALSUniv + * ALSImpl.ALSImpl_1_0 returns ALSUniv + * ALSAnd returns ALSUniv + * ALSAnd.ALSAnd_1_0 returns ALSUniv + * ALSComparison returns ALSUniv + * ALSComparison.ALSEquals_1_0_0_0 returns ALSUniv + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSUniv + * ALSComparison.ALSSubset_1_0_2_0 returns ALSUniv + * ALSComparison.ALSLess_1_0_3_0 returns ALSUniv + * ALSComparison.ALSLeq_1_0_4_0 returns ALSUniv + * ALSComparison.ALSMore_1_0_5_0 returns ALSUniv + * ALSComparison.ALSMeq_1_0_6_0 returns ALSUniv + * ALSOverride returns ALSUniv + * ALSOverride.ALSOverride_1_0 returns ALSUniv + * ALSRangeRestrictionRight returns ALSUniv + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSUniv + * ALSRangeRestrictionLeft returns ALSUniv + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSUniv + * ALSJoin returns ALSUniv + * ALSJoin.ALSJoin_1_0 returns ALSUniv + * ALSMinus returns ALSUniv + * ALSMinus.ALSMinus_1_0 returns ALSUniv + * ALSPlus returns ALSUniv + * ALSPlus.ALSPlus_1_0 returns ALSUniv + * ALSIntersection returns ALSUniv + * ALSIntersection.ALSIntersection_1_0 returns ALSUniv + * ALSDirectProduct returns ALSUniv + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSUniv + * ALSPreficed returns ALSUniv + * ALSBasicRelationTerm returns ALSUniv + * + * Constraint: + * {ALSUniv} + */ + protected void sequence_ALSBasicRelationTerm(ISerializationContext context, ALSUniv semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ALSTerm returns ALSEquals + * ALSQuantified returns ALSEquals + * ALSOr returns ALSEquals + * ALSOr.ALSOr_1_0 returns ALSEquals + * ALSIff returns ALSEquals + * ALSIff.ALSIff_1_0 returns ALSEquals + * ALSImpl returns ALSEquals + * ALSImpl.ALSImpl_1_0 returns ALSEquals + * ALSAnd returns ALSEquals + * ALSAnd.ALSAnd_1_0 returns ALSEquals + * ALSComparison returns ALSEquals + * ALSComparison.ALSEquals_1_0_0_0 returns ALSEquals + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSEquals + * ALSComparison.ALSSubset_1_0_2_0 returns ALSEquals + * ALSComparison.ALSLess_1_0_3_0 returns ALSEquals + * ALSComparison.ALSLeq_1_0_4_0 returns ALSEquals + * ALSComparison.ALSMore_1_0_5_0 returns ALSEquals + * ALSComparison.ALSMeq_1_0_6_0 returns ALSEquals + * ALSOverride returns ALSEquals + * ALSOverride.ALSOverride_1_0 returns ALSEquals + * ALSRangeRestrictionRight returns ALSEquals + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSEquals + * ALSRangeRestrictionLeft returns ALSEquals + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSEquals + * ALSJoin returns ALSEquals + * ALSJoin.ALSJoin_1_0 returns ALSEquals + * ALSMinus returns ALSEquals + * ALSMinus.ALSMinus_1_0 returns ALSEquals + * ALSPlus returns ALSEquals + * ALSPlus.ALSPlus_1_0 returns ALSEquals + * ALSIntersection returns ALSEquals + * ALSIntersection.ALSIntersection_1_0 returns ALSEquals + * ALSDirectProduct returns ALSEquals + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSEquals + * ALSPreficed returns ALSEquals + * ALSBasicRelationTerm returns ALSEquals + * + * Constraint: + * (leftOperand=ALSComparison_ALSEquals_1_0_0_0 rightOperand=ALSOverride) + */ + protected void sequence_ALSComparison(ISerializationContext context, ALSEquals semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_EQUALS__LEFT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_EQUALS__LEFT_OPERAND)); + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_EQUALS__RIGHT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_EQUALS__RIGHT_OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSComparisonAccess().getALSEqualsLeftOperandAction_1_0_0_0(), semanticObject.getLeftOperand()); + feeder.accept(grammarAccess.getALSComparisonAccess().getRightOperandALSOverrideParserRuleCall_1_1_0(), semanticObject.getRightOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSLeq + * ALSQuantified returns ALSLeq + * ALSOr returns ALSLeq + * ALSOr.ALSOr_1_0 returns ALSLeq + * ALSIff returns ALSLeq + * ALSIff.ALSIff_1_0 returns ALSLeq + * ALSImpl returns ALSLeq + * ALSImpl.ALSImpl_1_0 returns ALSLeq + * ALSAnd returns ALSLeq + * ALSAnd.ALSAnd_1_0 returns ALSLeq + * ALSComparison returns ALSLeq + * ALSComparison.ALSEquals_1_0_0_0 returns ALSLeq + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSLeq + * ALSComparison.ALSSubset_1_0_2_0 returns ALSLeq + * ALSComparison.ALSLess_1_0_3_0 returns ALSLeq + * ALSComparison.ALSLeq_1_0_4_0 returns ALSLeq + * ALSComparison.ALSMore_1_0_5_0 returns ALSLeq + * ALSComparison.ALSMeq_1_0_6_0 returns ALSLeq + * ALSOverride returns ALSLeq + * ALSOverride.ALSOverride_1_0 returns ALSLeq + * ALSRangeRestrictionRight returns ALSLeq + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSLeq + * ALSRangeRestrictionLeft returns ALSLeq + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSLeq + * ALSJoin returns ALSLeq + * ALSJoin.ALSJoin_1_0 returns ALSLeq + * ALSMinus returns ALSLeq + * ALSMinus.ALSMinus_1_0 returns ALSLeq + * ALSPlus returns ALSLeq + * ALSPlus.ALSPlus_1_0 returns ALSLeq + * ALSIntersection returns ALSLeq + * ALSIntersection.ALSIntersection_1_0 returns ALSLeq + * ALSDirectProduct returns ALSLeq + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSLeq + * ALSPreficed returns ALSLeq + * ALSBasicRelationTerm returns ALSLeq + * + * Constraint: + * (leftOperand=ALSComparison_ALSLeq_1_0_4_0 rightOperand=ALSOverride) + */ + protected void sequence_ALSComparison(ISerializationContext context, ALSLeq semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_LEQ__LEFT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_LEQ__LEFT_OPERAND)); + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_LEQ__RIGHT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_LEQ__RIGHT_OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSComparisonAccess().getALSLeqLeftOperandAction_1_0_4_0(), semanticObject.getLeftOperand()); + feeder.accept(grammarAccess.getALSComparisonAccess().getRightOperandALSOverrideParserRuleCall_1_1_0(), semanticObject.getRightOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSLess + * ALSQuantified returns ALSLess + * ALSOr returns ALSLess + * ALSOr.ALSOr_1_0 returns ALSLess + * ALSIff returns ALSLess + * ALSIff.ALSIff_1_0 returns ALSLess + * ALSImpl returns ALSLess + * ALSImpl.ALSImpl_1_0 returns ALSLess + * ALSAnd returns ALSLess + * ALSAnd.ALSAnd_1_0 returns ALSLess + * ALSComparison returns ALSLess + * ALSComparison.ALSEquals_1_0_0_0 returns ALSLess + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSLess + * ALSComparison.ALSSubset_1_0_2_0 returns ALSLess + * ALSComparison.ALSLess_1_0_3_0 returns ALSLess + * ALSComparison.ALSLeq_1_0_4_0 returns ALSLess + * ALSComparison.ALSMore_1_0_5_0 returns ALSLess + * ALSComparison.ALSMeq_1_0_6_0 returns ALSLess + * ALSOverride returns ALSLess + * ALSOverride.ALSOverride_1_0 returns ALSLess + * ALSRangeRestrictionRight returns ALSLess + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSLess + * ALSRangeRestrictionLeft returns ALSLess + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSLess + * ALSJoin returns ALSLess + * ALSJoin.ALSJoin_1_0 returns ALSLess + * ALSMinus returns ALSLess + * ALSMinus.ALSMinus_1_0 returns ALSLess + * ALSPlus returns ALSLess + * ALSPlus.ALSPlus_1_0 returns ALSLess + * ALSIntersection returns ALSLess + * ALSIntersection.ALSIntersection_1_0 returns ALSLess + * ALSDirectProduct returns ALSLess + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSLess + * ALSPreficed returns ALSLess + * ALSBasicRelationTerm returns ALSLess + * + * Constraint: + * (leftOperand=ALSComparison_ALSLess_1_0_3_0 rightOperand=ALSOverride) + */ + protected void sequence_ALSComparison(ISerializationContext context, ALSLess semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_LESS__LEFT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_LESS__LEFT_OPERAND)); + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_LESS__RIGHT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_LESS__RIGHT_OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSComparisonAccess().getALSLessLeftOperandAction_1_0_3_0(), semanticObject.getLeftOperand()); + feeder.accept(grammarAccess.getALSComparisonAccess().getRightOperandALSOverrideParserRuleCall_1_1_0(), semanticObject.getRightOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSMeq + * ALSQuantified returns ALSMeq + * ALSOr returns ALSMeq + * ALSOr.ALSOr_1_0 returns ALSMeq + * ALSIff returns ALSMeq + * ALSIff.ALSIff_1_0 returns ALSMeq + * ALSImpl returns ALSMeq + * ALSImpl.ALSImpl_1_0 returns ALSMeq + * ALSAnd returns ALSMeq + * ALSAnd.ALSAnd_1_0 returns ALSMeq + * ALSComparison returns ALSMeq + * ALSComparison.ALSEquals_1_0_0_0 returns ALSMeq + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSMeq + * ALSComparison.ALSSubset_1_0_2_0 returns ALSMeq + * ALSComparison.ALSLess_1_0_3_0 returns ALSMeq + * ALSComparison.ALSLeq_1_0_4_0 returns ALSMeq + * ALSComparison.ALSMore_1_0_5_0 returns ALSMeq + * ALSComparison.ALSMeq_1_0_6_0 returns ALSMeq + * ALSOverride returns ALSMeq + * ALSOverride.ALSOverride_1_0 returns ALSMeq + * ALSRangeRestrictionRight returns ALSMeq + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSMeq + * ALSRangeRestrictionLeft returns ALSMeq + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSMeq + * ALSJoin returns ALSMeq + * ALSJoin.ALSJoin_1_0 returns ALSMeq + * ALSMinus returns ALSMeq + * ALSMinus.ALSMinus_1_0 returns ALSMeq + * ALSPlus returns ALSMeq + * ALSPlus.ALSPlus_1_0 returns ALSMeq + * ALSIntersection returns ALSMeq + * ALSIntersection.ALSIntersection_1_0 returns ALSMeq + * ALSDirectProduct returns ALSMeq + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSMeq + * ALSPreficed returns ALSMeq + * ALSBasicRelationTerm returns ALSMeq + * + * Constraint: + * (leftOperand=ALSComparison_ALSMeq_1_0_6_0 rightOperand=ALSOverride) + */ + protected void sequence_ALSComparison(ISerializationContext context, ALSMeq semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_MEQ__LEFT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_MEQ__LEFT_OPERAND)); + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_MEQ__RIGHT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_MEQ__RIGHT_OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSComparisonAccess().getALSMeqLeftOperandAction_1_0_6_0(), semanticObject.getLeftOperand()); + feeder.accept(grammarAccess.getALSComparisonAccess().getRightOperandALSOverrideParserRuleCall_1_1_0(), semanticObject.getRightOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSMore + * ALSQuantified returns ALSMore + * ALSOr returns ALSMore + * ALSOr.ALSOr_1_0 returns ALSMore + * ALSIff returns ALSMore + * ALSIff.ALSIff_1_0 returns ALSMore + * ALSImpl returns ALSMore + * ALSImpl.ALSImpl_1_0 returns ALSMore + * ALSAnd returns ALSMore + * ALSAnd.ALSAnd_1_0 returns ALSMore + * ALSComparison returns ALSMore + * ALSComparison.ALSEquals_1_0_0_0 returns ALSMore + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSMore + * ALSComparison.ALSSubset_1_0_2_0 returns ALSMore + * ALSComparison.ALSLess_1_0_3_0 returns ALSMore + * ALSComparison.ALSLeq_1_0_4_0 returns ALSMore + * ALSComparison.ALSMore_1_0_5_0 returns ALSMore + * ALSComparison.ALSMeq_1_0_6_0 returns ALSMore + * ALSOverride returns ALSMore + * ALSOverride.ALSOverride_1_0 returns ALSMore + * ALSRangeRestrictionRight returns ALSMore + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSMore + * ALSRangeRestrictionLeft returns ALSMore + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSMore + * ALSJoin returns ALSMore + * ALSJoin.ALSJoin_1_0 returns ALSMore + * ALSMinus returns ALSMore + * ALSMinus.ALSMinus_1_0 returns ALSMore + * ALSPlus returns ALSMore + * ALSPlus.ALSPlus_1_0 returns ALSMore + * ALSIntersection returns ALSMore + * ALSIntersection.ALSIntersection_1_0 returns ALSMore + * ALSDirectProduct returns ALSMore + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSMore + * ALSPreficed returns ALSMore + * ALSBasicRelationTerm returns ALSMore + * + * Constraint: + * (leftOperand=ALSComparison_ALSMore_1_0_5_0 rightOperand=ALSOverride) + */ + protected void sequence_ALSComparison(ISerializationContext context, ALSMore semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_MORE__LEFT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_MORE__LEFT_OPERAND)); + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_MORE__RIGHT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_MORE__RIGHT_OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSComparisonAccess().getALSMoreLeftOperandAction_1_0_5_0(), semanticObject.getLeftOperand()); + feeder.accept(grammarAccess.getALSComparisonAccess().getRightOperandALSOverrideParserRuleCall_1_1_0(), semanticObject.getRightOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSNotEquals + * ALSQuantified returns ALSNotEquals + * ALSOr returns ALSNotEquals + * ALSOr.ALSOr_1_0 returns ALSNotEquals + * ALSIff returns ALSNotEquals + * ALSIff.ALSIff_1_0 returns ALSNotEquals + * ALSImpl returns ALSNotEquals + * ALSImpl.ALSImpl_1_0 returns ALSNotEquals + * ALSAnd returns ALSNotEquals + * ALSAnd.ALSAnd_1_0 returns ALSNotEquals + * ALSComparison returns ALSNotEquals + * ALSComparison.ALSEquals_1_0_0_0 returns ALSNotEquals + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSNotEquals + * ALSComparison.ALSSubset_1_0_2_0 returns ALSNotEquals + * ALSComparison.ALSLess_1_0_3_0 returns ALSNotEquals + * ALSComparison.ALSLeq_1_0_4_0 returns ALSNotEquals + * ALSComparison.ALSMore_1_0_5_0 returns ALSNotEquals + * ALSComparison.ALSMeq_1_0_6_0 returns ALSNotEquals + * ALSOverride returns ALSNotEquals + * ALSOverride.ALSOverride_1_0 returns ALSNotEquals + * ALSRangeRestrictionRight returns ALSNotEquals + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSNotEquals + * ALSRangeRestrictionLeft returns ALSNotEquals + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSNotEquals + * ALSJoin returns ALSNotEquals + * ALSJoin.ALSJoin_1_0 returns ALSNotEquals + * ALSMinus returns ALSNotEquals + * ALSMinus.ALSMinus_1_0 returns ALSNotEquals + * ALSPlus returns ALSNotEquals + * ALSPlus.ALSPlus_1_0 returns ALSNotEquals + * ALSIntersection returns ALSNotEquals + * ALSIntersection.ALSIntersection_1_0 returns ALSNotEquals + * ALSDirectProduct returns ALSNotEquals + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSNotEquals + * ALSPreficed returns ALSNotEquals + * ALSBasicRelationTerm returns ALSNotEquals + * + * Constraint: + * (leftOperand=ALSComparison_ALSNotEquals_1_0_1_0 rightOperand=ALSOverride) + */ + protected void sequence_ALSComparison(ISerializationContext context, ALSNotEquals semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_NOT_EQUALS__LEFT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_NOT_EQUALS__LEFT_OPERAND)); + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_NOT_EQUALS__RIGHT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_NOT_EQUALS__RIGHT_OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSComparisonAccess().getALSNotEqualsLeftOperandAction_1_0_1_0(), semanticObject.getLeftOperand()); + feeder.accept(grammarAccess.getALSComparisonAccess().getRightOperandALSOverrideParserRuleCall_1_1_0(), semanticObject.getRightOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSSubset + * ALSQuantified returns ALSSubset + * ALSOr returns ALSSubset + * ALSOr.ALSOr_1_0 returns ALSSubset + * ALSIff returns ALSSubset + * ALSIff.ALSIff_1_0 returns ALSSubset + * ALSImpl returns ALSSubset + * ALSImpl.ALSImpl_1_0 returns ALSSubset + * ALSAnd returns ALSSubset + * ALSAnd.ALSAnd_1_0 returns ALSSubset + * ALSComparison returns ALSSubset + * ALSComparison.ALSEquals_1_0_0_0 returns ALSSubset + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSSubset + * ALSComparison.ALSSubset_1_0_2_0 returns ALSSubset + * ALSComparison.ALSLess_1_0_3_0 returns ALSSubset + * ALSComparison.ALSLeq_1_0_4_0 returns ALSSubset + * ALSComparison.ALSMore_1_0_5_0 returns ALSSubset + * ALSComparison.ALSMeq_1_0_6_0 returns ALSSubset + * ALSOverride returns ALSSubset + * ALSOverride.ALSOverride_1_0 returns ALSSubset + * ALSRangeRestrictionRight returns ALSSubset + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSSubset + * ALSRangeRestrictionLeft returns ALSSubset + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSSubset + * ALSJoin returns ALSSubset + * ALSJoin.ALSJoin_1_0 returns ALSSubset + * ALSMinus returns ALSSubset + * ALSMinus.ALSMinus_1_0 returns ALSSubset + * ALSPlus returns ALSSubset + * ALSPlus.ALSPlus_1_0 returns ALSSubset + * ALSIntersection returns ALSSubset + * ALSIntersection.ALSIntersection_1_0 returns ALSSubset + * ALSDirectProduct returns ALSSubset + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSSubset + * ALSPreficed returns ALSSubset + * ALSBasicRelationTerm returns ALSSubset + * + * Constraint: + * (leftOperand=ALSComparison_ALSSubset_1_0_2_0 rightOperand=ALSOverride) + */ + protected void sequence_ALSComparison(ISerializationContext context, ALSSubset semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_SUBSET__LEFT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_SUBSET__LEFT_OPERAND)); + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_SUBSET__RIGHT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_SUBSET__RIGHT_OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSComparisonAccess().getALSSubsetLeftOperandAction_1_0_2_0(), semanticObject.getLeftOperand()); + feeder.accept(grammarAccess.getALSComparisonAccess().getRightOperandALSOverrideParserRuleCall_1_1_0(), semanticObject.getRightOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSDirectProduct + * ALSQuantified returns ALSDirectProduct + * ALSOr returns ALSDirectProduct + * ALSOr.ALSOr_1_0 returns ALSDirectProduct + * ALSIff returns ALSDirectProduct + * ALSIff.ALSIff_1_0 returns ALSDirectProduct + * ALSImpl returns ALSDirectProduct + * ALSImpl.ALSImpl_1_0 returns ALSDirectProduct + * ALSAnd returns ALSDirectProduct + * ALSAnd.ALSAnd_1_0 returns ALSDirectProduct + * ALSComparison returns ALSDirectProduct + * ALSComparison.ALSEquals_1_0_0_0 returns ALSDirectProduct + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSDirectProduct + * ALSComparison.ALSSubset_1_0_2_0 returns ALSDirectProduct + * ALSComparison.ALSLess_1_0_3_0 returns ALSDirectProduct + * ALSComparison.ALSLeq_1_0_4_0 returns ALSDirectProduct + * ALSComparison.ALSMore_1_0_5_0 returns ALSDirectProduct + * ALSComparison.ALSMeq_1_0_6_0 returns ALSDirectProduct + * ALSOverride returns ALSDirectProduct + * ALSOverride.ALSOverride_1_0 returns ALSDirectProduct + * ALSRangeRestrictionRight returns ALSDirectProduct + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSDirectProduct + * ALSRangeRestrictionLeft returns ALSDirectProduct + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSDirectProduct + * ALSJoin returns ALSDirectProduct + * ALSJoin.ALSJoin_1_0 returns ALSDirectProduct + * ALSMinus returns ALSDirectProduct + * ALSMinus.ALSMinus_1_0 returns ALSDirectProduct + * ALSPlus returns ALSDirectProduct + * ALSPlus.ALSPlus_1_0 returns ALSDirectProduct + * ALSIntersection returns ALSDirectProduct + * ALSIntersection.ALSIntersection_1_0 returns ALSDirectProduct + * ALSDirectProduct returns ALSDirectProduct + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSDirectProduct + * ALSPreficed returns ALSDirectProduct + * ALSBasicRelationTerm returns ALSDirectProduct + * + * Constraint: + * (leftOperand=ALSDirectProduct_ALSDirectProduct_1_0 leftMultiplicit=ALSMultiplicity? rightMultiplicit=ALSMultiplicity? rightOperand=ALSPreficed) + */ + protected void sequence_ALSDirectProduct(ISerializationContext context, ALSDirectProduct semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ALSDocument returns ALSDocument + * + * Constraint: + * ( + * ( + * enumDeclarations+=ALSEnumDeclaration | + * signatureBodies+=ALSSignatureBody | + * functionDefinitions+=ALSFunctionDefinition | + * relationDefinitions+=ALSRelationDefinition | + * factDeclarations+=ALSFactDeclaration + * )+ + * runCommand=ALSRunCommand + * ) + */ + protected void sequence_ALSDocument(ISerializationContext context, ALSDocument semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ALSRelationDeclaration returns ALSEnumDeclaration + * ALSTypeDeclaration returns ALSEnumDeclaration + * ALSEnumDeclaration returns ALSEnumDeclaration + * + * Constraint: + * (name=ALSID literal+=ALSEnumLiteral literal+=ALSEnumLiteral*) + */ + protected void sequence_ALSEnumDeclaration(ISerializationContext context, ALSEnumDeclaration semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ALSRelationDeclaration returns ALSEnumLiteral + * ALSEnumLiteral returns ALSEnumLiteral + * + * Constraint: + * name=ALSID + */ + protected void sequence_ALSEnumLiteral(ISerializationContext context, ALSEnumLiteral semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_RELATION_DECLARATION__NAME) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_RELATION_DECLARATION__NAME)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSEnumLiteralAccess().getNameALSIDParserRuleCall_0(), semanticObject.getName()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSFactDeclaration returns ALSFactDeclaration + * + * Constraint: + * (name=ALSID? term=ALSTerm) + */ + protected void sequence_ALSFactDeclaration(ISerializationContext context, ALSFactDeclaration semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ALSRelationDeclaration returns ALSFieldDeclaration + * ALSFieldDeclaration returns ALSFieldDeclaration + * + * Constraint: + * (name=ALSID multiplicity=ALSMultiplicity? type=ALSTerm) + */ + protected void sequence_ALSFieldDeclaration(ISerializationContext context, ALSFieldDeclaration semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ALSDefinition returns ALSFunctionDefinition + * ALSFunctionDefinition returns ALSFunctionDefinition + * + * Constraint: + * (name=ALSID variables+=ALSVariableDeclaration variables+=ALSVariableDeclaration* type=ALSTerm value=ALSTerm) + */ + protected void sequence_ALSFunctionDefinition(ISerializationContext context, ALSFunctionDefinition semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ALSTerm returns ALSIff + * ALSQuantified returns ALSIff + * ALSOr returns ALSIff + * ALSOr.ALSOr_1_0 returns ALSIff + * ALSIff returns ALSIff + * ALSIff.ALSIff_1_0 returns ALSIff + * ALSImpl returns ALSIff + * ALSImpl.ALSImpl_1_0 returns ALSIff + * ALSAnd returns ALSIff + * ALSAnd.ALSAnd_1_0 returns ALSIff + * ALSComparison returns ALSIff + * ALSComparison.ALSEquals_1_0_0_0 returns ALSIff + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSIff + * ALSComparison.ALSSubset_1_0_2_0 returns ALSIff + * ALSComparison.ALSLess_1_0_3_0 returns ALSIff + * ALSComparison.ALSLeq_1_0_4_0 returns ALSIff + * ALSComparison.ALSMore_1_0_5_0 returns ALSIff + * ALSComparison.ALSMeq_1_0_6_0 returns ALSIff + * ALSOverride returns ALSIff + * ALSOverride.ALSOverride_1_0 returns ALSIff + * ALSRangeRestrictionRight returns ALSIff + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSIff + * ALSRangeRestrictionLeft returns ALSIff + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSIff + * ALSJoin returns ALSIff + * ALSJoin.ALSJoin_1_0 returns ALSIff + * ALSMinus returns ALSIff + * ALSMinus.ALSMinus_1_0 returns ALSIff + * ALSPlus returns ALSIff + * ALSPlus.ALSPlus_1_0 returns ALSIff + * ALSIntersection returns ALSIff + * ALSIntersection.ALSIntersection_1_0 returns ALSIff + * ALSDirectProduct returns ALSIff + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSIff + * ALSPreficed returns ALSIff + * ALSBasicRelationTerm returns ALSIff + * + * Constraint: + * (leftOperand=ALSIff_ALSIff_1_0 rightOperand=ALSImpl) + */ + protected void sequence_ALSIff(ISerializationContext context, ALSIff semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_IFF__LEFT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_IFF__LEFT_OPERAND)); + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_IFF__RIGHT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_IFF__RIGHT_OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSIffAccess().getALSIffLeftOperandAction_1_0(), semanticObject.getLeftOperand()); + feeder.accept(grammarAccess.getALSIffAccess().getRightOperandALSImplParserRuleCall_1_2_0(), semanticObject.getRightOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSImpl + * ALSQuantified returns ALSImpl + * ALSOr returns ALSImpl + * ALSOr.ALSOr_1_0 returns ALSImpl + * ALSIff returns ALSImpl + * ALSIff.ALSIff_1_0 returns ALSImpl + * ALSImpl returns ALSImpl + * ALSImpl.ALSImpl_1_0 returns ALSImpl + * ALSAnd returns ALSImpl + * ALSAnd.ALSAnd_1_0 returns ALSImpl + * ALSComparison returns ALSImpl + * ALSComparison.ALSEquals_1_0_0_0 returns ALSImpl + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSImpl + * ALSComparison.ALSSubset_1_0_2_0 returns ALSImpl + * ALSComparison.ALSLess_1_0_3_0 returns ALSImpl + * ALSComparison.ALSLeq_1_0_4_0 returns ALSImpl + * ALSComparison.ALSMore_1_0_5_0 returns ALSImpl + * ALSComparison.ALSMeq_1_0_6_0 returns ALSImpl + * ALSOverride returns ALSImpl + * ALSOverride.ALSOverride_1_0 returns ALSImpl + * ALSRangeRestrictionRight returns ALSImpl + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSImpl + * ALSRangeRestrictionLeft returns ALSImpl + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSImpl + * ALSJoin returns ALSImpl + * ALSJoin.ALSJoin_1_0 returns ALSImpl + * ALSMinus returns ALSImpl + * ALSMinus.ALSMinus_1_0 returns ALSImpl + * ALSPlus returns ALSImpl + * ALSPlus.ALSPlus_1_0 returns ALSImpl + * ALSIntersection returns ALSImpl + * ALSIntersection.ALSIntersection_1_0 returns ALSImpl + * ALSDirectProduct returns ALSImpl + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSImpl + * ALSPreficed returns ALSImpl + * ALSBasicRelationTerm returns ALSImpl + * + * Constraint: + * (leftOperand=ALSImpl_ALSImpl_1_0 rightOperand=ALSAnd elseOperand=ALSAnd?) + */ + protected void sequence_ALSImpl(ISerializationContext context, ALSImpl semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ALSTypeScope returns ALSIntScope + * ALSIntScope returns ALSIntScope + * + * Constraint: + * number=INT + */ + protected void sequence_ALSIntScope(ISerializationContext context, ALSIntScope semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_TYPE_SCOPE__NUMBER) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_TYPE_SCOPE__NUMBER)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSIntScopeAccess().getNumberINTTerminalRuleCall_0_0(), semanticObject.getNumber()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSIntersection + * ALSQuantified returns ALSIntersection + * ALSOr returns ALSIntersection + * ALSOr.ALSOr_1_0 returns ALSIntersection + * ALSIff returns ALSIntersection + * ALSIff.ALSIff_1_0 returns ALSIntersection + * ALSImpl returns ALSIntersection + * ALSImpl.ALSImpl_1_0 returns ALSIntersection + * ALSAnd returns ALSIntersection + * ALSAnd.ALSAnd_1_0 returns ALSIntersection + * ALSComparison returns ALSIntersection + * ALSComparison.ALSEquals_1_0_0_0 returns ALSIntersection + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSIntersection + * ALSComparison.ALSSubset_1_0_2_0 returns ALSIntersection + * ALSComparison.ALSLess_1_0_3_0 returns ALSIntersection + * ALSComparison.ALSLeq_1_0_4_0 returns ALSIntersection + * ALSComparison.ALSMore_1_0_5_0 returns ALSIntersection + * ALSComparison.ALSMeq_1_0_6_0 returns ALSIntersection + * ALSOverride returns ALSIntersection + * ALSOverride.ALSOverride_1_0 returns ALSIntersection + * ALSRangeRestrictionRight returns ALSIntersection + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSIntersection + * ALSRangeRestrictionLeft returns ALSIntersection + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSIntersection + * ALSJoin returns ALSIntersection + * ALSJoin.ALSJoin_1_0 returns ALSIntersection + * ALSMinus returns ALSIntersection + * ALSMinus.ALSMinus_1_0 returns ALSIntersection + * ALSPlus returns ALSIntersection + * ALSPlus.ALSPlus_1_0 returns ALSIntersection + * ALSIntersection returns ALSIntersection + * ALSIntersection.ALSIntersection_1_0 returns ALSIntersection + * ALSDirectProduct returns ALSIntersection + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSIntersection + * ALSPreficed returns ALSIntersection + * ALSBasicRelationTerm returns ALSIntersection + * + * Constraint: + * (leftOperand=ALSIntersection_ALSIntersection_1_0 rightOperand=ALSDirectProduct) + */ + protected void sequence_ALSIntersection(ISerializationContext context, ALSIntersection semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_INTERSECTION__LEFT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_INTERSECTION__LEFT_OPERAND)); + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_INTERSECTION__RIGHT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_INTERSECTION__RIGHT_OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSIntersectionAccess().getALSIntersectionLeftOperandAction_1_0(), semanticObject.getLeftOperand()); + feeder.accept(grammarAccess.getALSIntersectionAccess().getRightOperandALSDirectProductParserRuleCall_1_2_0(), semanticObject.getRightOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSJoin + * ALSQuantified returns ALSJoin + * ALSOr returns ALSJoin + * ALSOr.ALSOr_1_0 returns ALSJoin + * ALSIff returns ALSJoin + * ALSIff.ALSIff_1_0 returns ALSJoin + * ALSImpl returns ALSJoin + * ALSImpl.ALSImpl_1_0 returns ALSJoin + * ALSAnd returns ALSJoin + * ALSAnd.ALSAnd_1_0 returns ALSJoin + * ALSComparison returns ALSJoin + * ALSComparison.ALSEquals_1_0_0_0 returns ALSJoin + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSJoin + * ALSComparison.ALSSubset_1_0_2_0 returns ALSJoin + * ALSComparison.ALSLess_1_0_3_0 returns ALSJoin + * ALSComparison.ALSLeq_1_0_4_0 returns ALSJoin + * ALSComparison.ALSMore_1_0_5_0 returns ALSJoin + * ALSComparison.ALSMeq_1_0_6_0 returns ALSJoin + * ALSOverride returns ALSJoin + * ALSOverride.ALSOverride_1_0 returns ALSJoin + * ALSRangeRestrictionRight returns ALSJoin + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSJoin + * ALSRangeRestrictionLeft returns ALSJoin + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSJoin + * ALSJoin returns ALSJoin + * ALSJoin.ALSJoin_1_0 returns ALSJoin + * ALSMinus returns ALSJoin + * ALSMinus.ALSMinus_1_0 returns ALSJoin + * ALSPlus returns ALSJoin + * ALSPlus.ALSPlus_1_0 returns ALSJoin + * ALSIntersection returns ALSJoin + * ALSIntersection.ALSIntersection_1_0 returns ALSJoin + * ALSDirectProduct returns ALSJoin + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSJoin + * ALSPreficed returns ALSJoin + * ALSBasicRelationTerm returns ALSJoin + * + * Constraint: + * (leftOperand=ALSJoin_ALSJoin_1_0 rightOperand=ALSMinus) + */ + protected void sequence_ALSJoin(ISerializationContext context, ALSJoin semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_JOIN__LEFT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_JOIN__LEFT_OPERAND)); + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_JOIN__RIGHT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_JOIN__RIGHT_OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSJoinAccess().getALSJoinLeftOperandAction_1_0(), semanticObject.getLeftOperand()); + feeder.accept(grammarAccess.getALSJoinAccess().getRightOperandALSMinusParserRuleCall_1_2_0(), semanticObject.getRightOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSMinus + * ALSQuantified returns ALSMinus + * ALSOr returns ALSMinus + * ALSOr.ALSOr_1_0 returns ALSMinus + * ALSIff returns ALSMinus + * ALSIff.ALSIff_1_0 returns ALSMinus + * ALSImpl returns ALSMinus + * ALSImpl.ALSImpl_1_0 returns ALSMinus + * ALSAnd returns ALSMinus + * ALSAnd.ALSAnd_1_0 returns ALSMinus + * ALSComparison returns ALSMinus + * ALSComparison.ALSEquals_1_0_0_0 returns ALSMinus + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSMinus + * ALSComparison.ALSSubset_1_0_2_0 returns ALSMinus + * ALSComparison.ALSLess_1_0_3_0 returns ALSMinus + * ALSComparison.ALSLeq_1_0_4_0 returns ALSMinus + * ALSComparison.ALSMore_1_0_5_0 returns ALSMinus + * ALSComparison.ALSMeq_1_0_6_0 returns ALSMinus + * ALSOverride returns ALSMinus + * ALSOverride.ALSOverride_1_0 returns ALSMinus + * ALSRangeRestrictionRight returns ALSMinus + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSMinus + * ALSRangeRestrictionLeft returns ALSMinus + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSMinus + * ALSJoin returns ALSMinus + * ALSJoin.ALSJoin_1_0 returns ALSMinus + * ALSMinus returns ALSMinus + * ALSMinus.ALSMinus_1_0 returns ALSMinus + * ALSPlus returns ALSMinus + * ALSPlus.ALSPlus_1_0 returns ALSMinus + * ALSIntersection returns ALSMinus + * ALSIntersection.ALSIntersection_1_0 returns ALSMinus + * ALSDirectProduct returns ALSMinus + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSMinus + * ALSPreficed returns ALSMinus + * ALSBasicRelationTerm returns ALSMinus + * + * Constraint: + * (leftOperand=ALSMinus_ALSMinus_1_0 rightOperand=ALSPlus) + */ + protected void sequence_ALSMinus(ISerializationContext context, ALSMinus semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_MINUS__LEFT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_MINUS__LEFT_OPERAND)); + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_MINUS__RIGHT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_MINUS__RIGHT_OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSMinusAccess().getALSMinusLeftOperandAction_1_0(), semanticObject.getLeftOperand()); + feeder.accept(grammarAccess.getALSMinusAccess().getRightOperandALSPlusParserRuleCall_1_2_0(), semanticObject.getRightOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSOr + * ALSQuantified returns ALSOr + * ALSOr returns ALSOr + * ALSOr.ALSOr_1_0 returns ALSOr + * ALSIff returns ALSOr + * ALSIff.ALSIff_1_0 returns ALSOr + * ALSImpl returns ALSOr + * ALSImpl.ALSImpl_1_0 returns ALSOr + * ALSAnd returns ALSOr + * ALSAnd.ALSAnd_1_0 returns ALSOr + * ALSComparison returns ALSOr + * ALSComparison.ALSEquals_1_0_0_0 returns ALSOr + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSOr + * ALSComparison.ALSSubset_1_0_2_0 returns ALSOr + * ALSComparison.ALSLess_1_0_3_0 returns ALSOr + * ALSComparison.ALSLeq_1_0_4_0 returns ALSOr + * ALSComparison.ALSMore_1_0_5_0 returns ALSOr + * ALSComparison.ALSMeq_1_0_6_0 returns ALSOr + * ALSOverride returns ALSOr + * ALSOverride.ALSOverride_1_0 returns ALSOr + * ALSRangeRestrictionRight returns ALSOr + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSOr + * ALSRangeRestrictionLeft returns ALSOr + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSOr + * ALSJoin returns ALSOr + * ALSJoin.ALSJoin_1_0 returns ALSOr + * ALSMinus returns ALSOr + * ALSMinus.ALSMinus_1_0 returns ALSOr + * ALSPlus returns ALSOr + * ALSPlus.ALSPlus_1_0 returns ALSOr + * ALSIntersection returns ALSOr + * ALSIntersection.ALSIntersection_1_0 returns ALSOr + * ALSDirectProduct returns ALSOr + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSOr + * ALSPreficed returns ALSOr + * ALSBasicRelationTerm returns ALSOr + * + * Constraint: + * (leftOperand=ALSOr_ALSOr_1_0 rightOperand=ALSIff) + */ + protected void sequence_ALSOr(ISerializationContext context, ALSOr semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_OR__LEFT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_OR__LEFT_OPERAND)); + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_OR__RIGHT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_OR__RIGHT_OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSOrAccess().getALSOrLeftOperandAction_1_0(), semanticObject.getLeftOperand()); + feeder.accept(grammarAccess.getALSOrAccess().getRightOperandALSIffParserRuleCall_1_2_0(), semanticObject.getRightOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSOverride + * ALSQuantified returns ALSOverride + * ALSOr returns ALSOverride + * ALSOr.ALSOr_1_0 returns ALSOverride + * ALSIff returns ALSOverride + * ALSIff.ALSIff_1_0 returns ALSOverride + * ALSImpl returns ALSOverride + * ALSImpl.ALSImpl_1_0 returns ALSOverride + * ALSAnd returns ALSOverride + * ALSAnd.ALSAnd_1_0 returns ALSOverride + * ALSComparison returns ALSOverride + * ALSComparison.ALSEquals_1_0_0_0 returns ALSOverride + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSOverride + * ALSComparison.ALSSubset_1_0_2_0 returns ALSOverride + * ALSComparison.ALSLess_1_0_3_0 returns ALSOverride + * ALSComparison.ALSLeq_1_0_4_0 returns ALSOverride + * ALSComparison.ALSMore_1_0_5_0 returns ALSOverride + * ALSComparison.ALSMeq_1_0_6_0 returns ALSOverride + * ALSOverride returns ALSOverride + * ALSOverride.ALSOverride_1_0 returns ALSOverride + * ALSRangeRestrictionRight returns ALSOverride + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSOverride + * ALSRangeRestrictionLeft returns ALSOverride + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSOverride + * ALSJoin returns ALSOverride + * ALSJoin.ALSJoin_1_0 returns ALSOverride + * ALSMinus returns ALSOverride + * ALSMinus.ALSMinus_1_0 returns ALSOverride + * ALSPlus returns ALSOverride + * ALSPlus.ALSPlus_1_0 returns ALSOverride + * ALSIntersection returns ALSOverride + * ALSIntersection.ALSIntersection_1_0 returns ALSOverride + * ALSDirectProduct returns ALSOverride + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSOverride + * ALSPreficed returns ALSOverride + * ALSBasicRelationTerm returns ALSOverride + * + * Constraint: + * (leftOperand=ALSOverride_ALSOverride_1_0 rightOperand=ALSRangeRestrictionRight) + */ + protected void sequence_ALSOverride(ISerializationContext context, ALSOverride semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_OVERRIDE__LEFT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_OVERRIDE__LEFT_OPERAND)); + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_OVERRIDE__RIGHT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_OVERRIDE__RIGHT_OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSOverrideAccess().getALSOverrideLeftOperandAction_1_0(), semanticObject.getLeftOperand()); + feeder.accept(grammarAccess.getALSOverrideAccess().getRightOperandALSRangeRestrictionRightParserRuleCall_1_2_0(), semanticObject.getRightOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSPlus + * ALSQuantified returns ALSPlus + * ALSOr returns ALSPlus + * ALSOr.ALSOr_1_0 returns ALSPlus + * ALSIff returns ALSPlus + * ALSIff.ALSIff_1_0 returns ALSPlus + * ALSImpl returns ALSPlus + * ALSImpl.ALSImpl_1_0 returns ALSPlus + * ALSAnd returns ALSPlus + * ALSAnd.ALSAnd_1_0 returns ALSPlus + * ALSComparison returns ALSPlus + * ALSComparison.ALSEquals_1_0_0_0 returns ALSPlus + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSPlus + * ALSComparison.ALSSubset_1_0_2_0 returns ALSPlus + * ALSComparison.ALSLess_1_0_3_0 returns ALSPlus + * ALSComparison.ALSLeq_1_0_4_0 returns ALSPlus + * ALSComparison.ALSMore_1_0_5_0 returns ALSPlus + * ALSComparison.ALSMeq_1_0_6_0 returns ALSPlus + * ALSOverride returns ALSPlus + * ALSOverride.ALSOverride_1_0 returns ALSPlus + * ALSRangeRestrictionRight returns ALSPlus + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSPlus + * ALSRangeRestrictionLeft returns ALSPlus + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSPlus + * ALSJoin returns ALSPlus + * ALSJoin.ALSJoin_1_0 returns ALSPlus + * ALSMinus returns ALSPlus + * ALSMinus.ALSMinus_1_0 returns ALSPlus + * ALSPlus returns ALSPlus + * ALSPlus.ALSPlus_1_0 returns ALSPlus + * ALSIntersection returns ALSPlus + * ALSIntersection.ALSIntersection_1_0 returns ALSPlus + * ALSDirectProduct returns ALSPlus + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSPlus + * ALSPreficed returns ALSPlus + * ALSBasicRelationTerm returns ALSPlus + * + * Constraint: + * (leftOperand=ALSPlus_ALSPlus_1_0 rightOperand=ALSIntersection) + */ + protected void sequence_ALSPlus(ISerializationContext context, ALSPlus semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_PLUS__LEFT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_PLUS__LEFT_OPERAND)); + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_PLUS__RIGHT_OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_PLUS__RIGHT_OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSPlusAccess().getALSPlusLeftOperandAction_1_0(), semanticObject.getLeftOperand()); + feeder.accept(grammarAccess.getALSPlusAccess().getRightOperandALSIntersectionParserRuleCall_1_2_0(), semanticObject.getRightOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSCardinality + * ALSQuantified returns ALSCardinality + * ALSOr returns ALSCardinality + * ALSOr.ALSOr_1_0 returns ALSCardinality + * ALSIff returns ALSCardinality + * ALSIff.ALSIff_1_0 returns ALSCardinality + * ALSImpl returns ALSCardinality + * ALSImpl.ALSImpl_1_0 returns ALSCardinality + * ALSAnd returns ALSCardinality + * ALSAnd.ALSAnd_1_0 returns ALSCardinality + * ALSComparison returns ALSCardinality + * ALSComparison.ALSEquals_1_0_0_0 returns ALSCardinality + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSCardinality + * ALSComparison.ALSSubset_1_0_2_0 returns ALSCardinality + * ALSComparison.ALSLess_1_0_3_0 returns ALSCardinality + * ALSComparison.ALSLeq_1_0_4_0 returns ALSCardinality + * ALSComparison.ALSMore_1_0_5_0 returns ALSCardinality + * ALSComparison.ALSMeq_1_0_6_0 returns ALSCardinality + * ALSOverride returns ALSCardinality + * ALSOverride.ALSOverride_1_0 returns ALSCardinality + * ALSRangeRestrictionRight returns ALSCardinality + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSCardinality + * ALSRangeRestrictionLeft returns ALSCardinality + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSCardinality + * ALSJoin returns ALSCardinality + * ALSJoin.ALSJoin_1_0 returns ALSCardinality + * ALSMinus returns ALSCardinality + * ALSMinus.ALSMinus_1_0 returns ALSCardinality + * ALSPlus returns ALSCardinality + * ALSPlus.ALSPlus_1_0 returns ALSCardinality + * ALSIntersection returns ALSCardinality + * ALSIntersection.ALSIntersection_1_0 returns ALSCardinality + * ALSDirectProduct returns ALSCardinality + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSCardinality + * ALSPreficed returns ALSCardinality + * ALSBasicRelationTerm returns ALSCardinality + * + * Constraint: + * operand=ALSBasicRelationTerm + */ + protected void sequence_ALSPreficed(ISerializationContext context, ALSCardinality semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_CARDINALITY__OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_CARDINALITY__OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_4_2_0(), semanticObject.getOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSFunctionCall + * ALSQuantified returns ALSFunctionCall + * ALSOr returns ALSFunctionCall + * ALSOr.ALSOr_1_0 returns ALSFunctionCall + * ALSIff returns ALSFunctionCall + * ALSIff.ALSIff_1_0 returns ALSFunctionCall + * ALSImpl returns ALSFunctionCall + * ALSImpl.ALSImpl_1_0 returns ALSFunctionCall + * ALSAnd returns ALSFunctionCall + * ALSAnd.ALSAnd_1_0 returns ALSFunctionCall + * ALSComparison returns ALSFunctionCall + * ALSComparison.ALSEquals_1_0_0_0 returns ALSFunctionCall + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSFunctionCall + * ALSComparison.ALSSubset_1_0_2_0 returns ALSFunctionCall + * ALSComparison.ALSLess_1_0_3_0 returns ALSFunctionCall + * ALSComparison.ALSLeq_1_0_4_0 returns ALSFunctionCall + * ALSComparison.ALSMore_1_0_5_0 returns ALSFunctionCall + * ALSComparison.ALSMeq_1_0_6_0 returns ALSFunctionCall + * ALSOverride returns ALSFunctionCall + * ALSOverride.ALSOverride_1_0 returns ALSFunctionCall + * ALSRangeRestrictionRight returns ALSFunctionCall + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSFunctionCall + * ALSRangeRestrictionLeft returns ALSFunctionCall + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSFunctionCall + * ALSJoin returns ALSFunctionCall + * ALSJoin.ALSJoin_1_0 returns ALSFunctionCall + * ALSMinus returns ALSFunctionCall + * ALSMinus.ALSMinus_1_0 returns ALSFunctionCall + * ALSPlus returns ALSFunctionCall + * ALSPlus.ALSPlus_1_0 returns ALSFunctionCall + * ALSIntersection returns ALSFunctionCall + * ALSIntersection.ALSIntersection_1_0 returns ALSFunctionCall + * ALSDirectProduct returns ALSFunctionCall + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSFunctionCall + * ALSPreficed returns ALSFunctionCall + * ALSBasicRelationTerm returns ALSFunctionCall + * + * Constraint: + * ((referredDefinition=[ALSDefinition|ID] | referredNumericOperator=ALSNumericOperator) params+=ALSTerm params+=ALSTerm*) + */ + protected void sequence_ALSPreficed(ISerializationContext context, ALSFunctionCall semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ALSTerm returns ALSInverseRelation + * ALSQuantified returns ALSInverseRelation + * ALSOr returns ALSInverseRelation + * ALSOr.ALSOr_1_0 returns ALSInverseRelation + * ALSIff returns ALSInverseRelation + * ALSIff.ALSIff_1_0 returns ALSInverseRelation + * ALSImpl returns ALSInverseRelation + * ALSImpl.ALSImpl_1_0 returns ALSInverseRelation + * ALSAnd returns ALSInverseRelation + * ALSAnd.ALSAnd_1_0 returns ALSInverseRelation + * ALSComparison returns ALSInverseRelation + * ALSComparison.ALSEquals_1_0_0_0 returns ALSInverseRelation + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSInverseRelation + * ALSComparison.ALSSubset_1_0_2_0 returns ALSInverseRelation + * ALSComparison.ALSLess_1_0_3_0 returns ALSInverseRelation + * ALSComparison.ALSLeq_1_0_4_0 returns ALSInverseRelation + * ALSComparison.ALSMore_1_0_5_0 returns ALSInverseRelation + * ALSComparison.ALSMeq_1_0_6_0 returns ALSInverseRelation + * ALSOverride returns ALSInverseRelation + * ALSOverride.ALSOverride_1_0 returns ALSInverseRelation + * ALSRangeRestrictionRight returns ALSInverseRelation + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSInverseRelation + * ALSRangeRestrictionLeft returns ALSInverseRelation + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSInverseRelation + * ALSJoin returns ALSInverseRelation + * ALSJoin.ALSJoin_1_0 returns ALSInverseRelation + * ALSMinus returns ALSInverseRelation + * ALSMinus.ALSMinus_1_0 returns ALSInverseRelation + * ALSPlus returns ALSInverseRelation + * ALSPlus.ALSPlus_1_0 returns ALSInverseRelation + * ALSIntersection returns ALSInverseRelation + * ALSIntersection.ALSIntersection_1_0 returns ALSInverseRelation + * ALSDirectProduct returns ALSInverseRelation + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSInverseRelation + * ALSPreficed returns ALSInverseRelation + * ALSBasicRelationTerm returns ALSInverseRelation + * + * Constraint: + * operand=ALSBasicRelationTerm + */ + protected void sequence_ALSPreficed(ISerializationContext context, ALSInverseRelation semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_INVERSE_RELATION__OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_INVERSE_RELATION__OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_1_2_0(), semanticObject.getOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSNot + * ALSQuantified returns ALSNot + * ALSOr returns ALSNot + * ALSOr.ALSOr_1_0 returns ALSNot + * ALSIff returns ALSNot + * ALSIff.ALSIff_1_0 returns ALSNot + * ALSImpl returns ALSNot + * ALSImpl.ALSImpl_1_0 returns ALSNot + * ALSAnd returns ALSNot + * ALSAnd.ALSAnd_1_0 returns ALSNot + * ALSComparison returns ALSNot + * ALSComparison.ALSEquals_1_0_0_0 returns ALSNot + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSNot + * ALSComparison.ALSSubset_1_0_2_0 returns ALSNot + * ALSComparison.ALSLess_1_0_3_0 returns ALSNot + * ALSComparison.ALSLeq_1_0_4_0 returns ALSNot + * ALSComparison.ALSMore_1_0_5_0 returns ALSNot + * ALSComparison.ALSMeq_1_0_6_0 returns ALSNot + * ALSOverride returns ALSNot + * ALSOverride.ALSOverride_1_0 returns ALSNot + * ALSRangeRestrictionRight returns ALSNot + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSNot + * ALSRangeRestrictionLeft returns ALSNot + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSNot + * ALSJoin returns ALSNot + * ALSJoin.ALSJoin_1_0 returns ALSNot + * ALSMinus returns ALSNot + * ALSMinus.ALSMinus_1_0 returns ALSNot + * ALSPlus returns ALSNot + * ALSPlus.ALSPlus_1_0 returns ALSNot + * ALSIntersection returns ALSNot + * ALSIntersection.ALSIntersection_1_0 returns ALSNot + * ALSDirectProduct returns ALSNot + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSNot + * ALSPreficed returns ALSNot + * ALSBasicRelationTerm returns ALSNot + * + * Constraint: + * operand=ALSBasicRelationTerm + */ + protected void sequence_ALSPreficed(ISerializationContext context, ALSNot semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_NOT__OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_NOT__OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_0_2_0(), semanticObject.getOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSReflectiveTransitiveClosure + * ALSQuantified returns ALSReflectiveTransitiveClosure + * ALSOr returns ALSReflectiveTransitiveClosure + * ALSOr.ALSOr_1_0 returns ALSReflectiveTransitiveClosure + * ALSIff returns ALSReflectiveTransitiveClosure + * ALSIff.ALSIff_1_0 returns ALSReflectiveTransitiveClosure + * ALSImpl returns ALSReflectiveTransitiveClosure + * ALSImpl.ALSImpl_1_0 returns ALSReflectiveTransitiveClosure + * ALSAnd returns ALSReflectiveTransitiveClosure + * ALSAnd.ALSAnd_1_0 returns ALSReflectiveTransitiveClosure + * ALSComparison returns ALSReflectiveTransitiveClosure + * ALSComparison.ALSEquals_1_0_0_0 returns ALSReflectiveTransitiveClosure + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSReflectiveTransitiveClosure + * ALSComparison.ALSSubset_1_0_2_0 returns ALSReflectiveTransitiveClosure + * ALSComparison.ALSLess_1_0_3_0 returns ALSReflectiveTransitiveClosure + * ALSComparison.ALSLeq_1_0_4_0 returns ALSReflectiveTransitiveClosure + * ALSComparison.ALSMore_1_0_5_0 returns ALSReflectiveTransitiveClosure + * ALSComparison.ALSMeq_1_0_6_0 returns ALSReflectiveTransitiveClosure + * ALSOverride returns ALSReflectiveTransitiveClosure + * ALSOverride.ALSOverride_1_0 returns ALSReflectiveTransitiveClosure + * ALSRangeRestrictionRight returns ALSReflectiveTransitiveClosure + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSReflectiveTransitiveClosure + * ALSRangeRestrictionLeft returns ALSReflectiveTransitiveClosure + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSReflectiveTransitiveClosure + * ALSJoin returns ALSReflectiveTransitiveClosure + * ALSJoin.ALSJoin_1_0 returns ALSReflectiveTransitiveClosure + * ALSMinus returns ALSReflectiveTransitiveClosure + * ALSMinus.ALSMinus_1_0 returns ALSReflectiveTransitiveClosure + * ALSPlus returns ALSReflectiveTransitiveClosure + * ALSPlus.ALSPlus_1_0 returns ALSReflectiveTransitiveClosure + * ALSIntersection returns ALSReflectiveTransitiveClosure + * ALSIntersection.ALSIntersection_1_0 returns ALSReflectiveTransitiveClosure + * ALSDirectProduct returns ALSReflectiveTransitiveClosure + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSReflectiveTransitiveClosure + * ALSPreficed returns ALSReflectiveTransitiveClosure + * ALSBasicRelationTerm returns ALSReflectiveTransitiveClosure + * + * Constraint: + * operand=ALSBasicRelationTerm + */ + protected void sequence_ALSPreficed(ISerializationContext context, ALSReflectiveTransitiveClosure semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_REFLECTIVE_TRANSITIVE_CLOSURE__OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_REFLECTIVE_TRANSITIVE_CLOSURE__OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_3_2_0(), semanticObject.getOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSSum + * ALSQuantified returns ALSSum + * ALSOr returns ALSSum + * ALSOr.ALSOr_1_0 returns ALSSum + * ALSIff returns ALSSum + * ALSIff.ALSIff_1_0 returns ALSSum + * ALSImpl returns ALSSum + * ALSImpl.ALSImpl_1_0 returns ALSSum + * ALSAnd returns ALSSum + * ALSAnd.ALSAnd_1_0 returns ALSSum + * ALSComparison returns ALSSum + * ALSComparison.ALSEquals_1_0_0_0 returns ALSSum + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSSum + * ALSComparison.ALSSubset_1_0_2_0 returns ALSSum + * ALSComparison.ALSLess_1_0_3_0 returns ALSSum + * ALSComparison.ALSLeq_1_0_4_0 returns ALSSum + * ALSComparison.ALSMore_1_0_5_0 returns ALSSum + * ALSComparison.ALSMeq_1_0_6_0 returns ALSSum + * ALSOverride returns ALSSum + * ALSOverride.ALSOverride_1_0 returns ALSSum + * ALSRangeRestrictionRight returns ALSSum + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSSum + * ALSRangeRestrictionLeft returns ALSSum + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSSum + * ALSJoin returns ALSSum + * ALSJoin.ALSJoin_1_0 returns ALSSum + * ALSMinus returns ALSSum + * ALSMinus.ALSMinus_1_0 returns ALSSum + * ALSPlus returns ALSSum + * ALSPlus.ALSPlus_1_0 returns ALSSum + * ALSIntersection returns ALSSum + * ALSIntersection.ALSIntersection_1_0 returns ALSSum + * ALSDirectProduct returns ALSSum + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSSum + * ALSPreficed returns ALSSum + * ALSBasicRelationTerm returns ALSSum + * + * Constraint: + * (variables+=ALSVariableDeclaration variables+=ALSVariableDeclaration* expression=ALSTerm) + */ + protected void sequence_ALSPreficed(ISerializationContext context, ALSSum semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ALSTerm returns ALSUnaryMinus + * ALSQuantified returns ALSUnaryMinus + * ALSOr returns ALSUnaryMinus + * ALSOr.ALSOr_1_0 returns ALSUnaryMinus + * ALSIff returns ALSUnaryMinus + * ALSIff.ALSIff_1_0 returns ALSUnaryMinus + * ALSImpl returns ALSUnaryMinus + * ALSImpl.ALSImpl_1_0 returns ALSUnaryMinus + * ALSAnd returns ALSUnaryMinus + * ALSAnd.ALSAnd_1_0 returns ALSUnaryMinus + * ALSComparison returns ALSUnaryMinus + * ALSComparison.ALSEquals_1_0_0_0 returns ALSUnaryMinus + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSUnaryMinus + * ALSComparison.ALSSubset_1_0_2_0 returns ALSUnaryMinus + * ALSComparison.ALSLess_1_0_3_0 returns ALSUnaryMinus + * ALSComparison.ALSLeq_1_0_4_0 returns ALSUnaryMinus + * ALSComparison.ALSMore_1_0_5_0 returns ALSUnaryMinus + * ALSComparison.ALSMeq_1_0_6_0 returns ALSUnaryMinus + * ALSOverride returns ALSUnaryMinus + * ALSOverride.ALSOverride_1_0 returns ALSUnaryMinus + * ALSRangeRestrictionRight returns ALSUnaryMinus + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSUnaryMinus + * ALSRangeRestrictionLeft returns ALSUnaryMinus + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSUnaryMinus + * ALSJoin returns ALSUnaryMinus + * ALSJoin.ALSJoin_1_0 returns ALSUnaryMinus + * ALSMinus returns ALSUnaryMinus + * ALSMinus.ALSMinus_1_0 returns ALSUnaryMinus + * ALSPlus returns ALSUnaryMinus + * ALSPlus.ALSPlus_1_0 returns ALSUnaryMinus + * ALSIntersection returns ALSUnaryMinus + * ALSIntersection.ALSIntersection_1_0 returns ALSUnaryMinus + * ALSDirectProduct returns ALSUnaryMinus + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSUnaryMinus + * ALSPreficed returns ALSUnaryMinus + * ALSBasicRelationTerm returns ALSUnaryMinus + * + * Constraint: + * operand=ALSBasicRelationTerm + */ + protected void sequence_ALSPreficed(ISerializationContext context, ALSUnaryMinus semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_UNARY_MINUS__OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_UNARY_MINUS__OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_5_2_0(), semanticObject.getOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns AlSTransitiveClosure + * ALSQuantified returns AlSTransitiveClosure + * ALSOr returns AlSTransitiveClosure + * ALSOr.ALSOr_1_0 returns AlSTransitiveClosure + * ALSIff returns AlSTransitiveClosure + * ALSIff.ALSIff_1_0 returns AlSTransitiveClosure + * ALSImpl returns AlSTransitiveClosure + * ALSImpl.ALSImpl_1_0 returns AlSTransitiveClosure + * ALSAnd returns AlSTransitiveClosure + * ALSAnd.ALSAnd_1_0 returns AlSTransitiveClosure + * ALSComparison returns AlSTransitiveClosure + * ALSComparison.ALSEquals_1_0_0_0 returns AlSTransitiveClosure + * ALSComparison.ALSNotEquals_1_0_1_0 returns AlSTransitiveClosure + * ALSComparison.ALSSubset_1_0_2_0 returns AlSTransitiveClosure + * ALSComparison.ALSLess_1_0_3_0 returns AlSTransitiveClosure + * ALSComparison.ALSLeq_1_0_4_0 returns AlSTransitiveClosure + * ALSComparison.ALSMore_1_0_5_0 returns AlSTransitiveClosure + * ALSComparison.ALSMeq_1_0_6_0 returns AlSTransitiveClosure + * ALSOverride returns AlSTransitiveClosure + * ALSOverride.ALSOverride_1_0 returns AlSTransitiveClosure + * ALSRangeRestrictionRight returns AlSTransitiveClosure + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns AlSTransitiveClosure + * ALSRangeRestrictionLeft returns AlSTransitiveClosure + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns AlSTransitiveClosure + * ALSJoin returns AlSTransitiveClosure + * ALSJoin.ALSJoin_1_0 returns AlSTransitiveClosure + * ALSMinus returns AlSTransitiveClosure + * ALSMinus.ALSMinus_1_0 returns AlSTransitiveClosure + * ALSPlus returns AlSTransitiveClosure + * ALSPlus.ALSPlus_1_0 returns AlSTransitiveClosure + * ALSIntersection returns AlSTransitiveClosure + * ALSIntersection.ALSIntersection_1_0 returns AlSTransitiveClosure + * ALSDirectProduct returns AlSTransitiveClosure + * ALSDirectProduct.ALSDirectProduct_1_0 returns AlSTransitiveClosure + * ALSPreficed returns AlSTransitiveClosure + * ALSBasicRelationTerm returns AlSTransitiveClosure + * + * Constraint: + * operand=ALSBasicRelationTerm + */ + protected void sequence_ALSPreficed(ISerializationContext context, AlSTransitiveClosure semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.AL_STRANSITIVE_CLOSURE__OPERAND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.AL_STRANSITIVE_CLOSURE__OPERAND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSPreficedAccess().getOperandALSBasicRelationTermParserRuleCall_2_2_0(), semanticObject.getOperand()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSQuantifiedEx + * ALSQuantified returns ALSQuantifiedEx + * ALSOr returns ALSQuantifiedEx + * ALSOr.ALSOr_1_0 returns ALSQuantifiedEx + * ALSIff returns ALSQuantifiedEx + * ALSIff.ALSIff_1_0 returns ALSQuantifiedEx + * ALSImpl returns ALSQuantifiedEx + * ALSImpl.ALSImpl_1_0 returns ALSQuantifiedEx + * ALSAnd returns ALSQuantifiedEx + * ALSAnd.ALSAnd_1_0 returns ALSQuantifiedEx + * ALSComparison returns ALSQuantifiedEx + * ALSComparison.ALSEquals_1_0_0_0 returns ALSQuantifiedEx + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSQuantifiedEx + * ALSComparison.ALSSubset_1_0_2_0 returns ALSQuantifiedEx + * ALSComparison.ALSLess_1_0_3_0 returns ALSQuantifiedEx + * ALSComparison.ALSLeq_1_0_4_0 returns ALSQuantifiedEx + * ALSComparison.ALSMore_1_0_5_0 returns ALSQuantifiedEx + * ALSComparison.ALSMeq_1_0_6_0 returns ALSQuantifiedEx + * ALSOverride returns ALSQuantifiedEx + * ALSOverride.ALSOverride_1_0 returns ALSQuantifiedEx + * ALSRangeRestrictionRight returns ALSQuantifiedEx + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSQuantifiedEx + * ALSRangeRestrictionLeft returns ALSQuantifiedEx + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSQuantifiedEx + * ALSJoin returns ALSQuantifiedEx + * ALSJoin.ALSJoin_1_0 returns ALSQuantifiedEx + * ALSMinus returns ALSQuantifiedEx + * ALSMinus.ALSMinus_1_0 returns ALSQuantifiedEx + * ALSPlus returns ALSQuantifiedEx + * ALSPlus.ALSPlus_1_0 returns ALSQuantifiedEx + * ALSIntersection returns ALSQuantifiedEx + * ALSIntersection.ALSIntersection_1_0 returns ALSQuantifiedEx + * ALSDirectProduct returns ALSQuantifiedEx + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSQuantifiedEx + * ALSPreficed returns ALSQuantifiedEx + * ALSBasicRelationTerm returns ALSQuantifiedEx + * + * Constraint: + * (type=ALSMultiplicity disj?='disj'? variables+=ALSVariableDeclaration variables+=ALSVariableDeclaration* expression=ALSTerm) + */ + protected void sequence_ALSQuantified(ISerializationContext context, ALSQuantifiedEx semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ALSTerm returns ALSRangeRestrictionLeft + * ALSQuantified returns ALSRangeRestrictionLeft + * ALSOr returns ALSRangeRestrictionLeft + * ALSOr.ALSOr_1_0 returns ALSRangeRestrictionLeft + * ALSIff returns ALSRangeRestrictionLeft + * ALSIff.ALSIff_1_0 returns ALSRangeRestrictionLeft + * ALSImpl returns ALSRangeRestrictionLeft + * ALSImpl.ALSImpl_1_0 returns ALSRangeRestrictionLeft + * ALSAnd returns ALSRangeRestrictionLeft + * ALSAnd.ALSAnd_1_0 returns ALSRangeRestrictionLeft + * ALSComparison returns ALSRangeRestrictionLeft + * ALSComparison.ALSEquals_1_0_0_0 returns ALSRangeRestrictionLeft + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSRangeRestrictionLeft + * ALSComparison.ALSSubset_1_0_2_0 returns ALSRangeRestrictionLeft + * ALSComparison.ALSLess_1_0_3_0 returns ALSRangeRestrictionLeft + * ALSComparison.ALSLeq_1_0_4_0 returns ALSRangeRestrictionLeft + * ALSComparison.ALSMore_1_0_5_0 returns ALSRangeRestrictionLeft + * ALSComparison.ALSMeq_1_0_6_0 returns ALSRangeRestrictionLeft + * ALSOverride returns ALSRangeRestrictionLeft + * ALSOverride.ALSOverride_1_0 returns ALSRangeRestrictionLeft + * ALSRangeRestrictionRight returns ALSRangeRestrictionLeft + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSRangeRestrictionLeft + * ALSRangeRestrictionLeft returns ALSRangeRestrictionLeft + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSRangeRestrictionLeft + * ALSJoin returns ALSRangeRestrictionLeft + * ALSJoin.ALSJoin_1_0 returns ALSRangeRestrictionLeft + * ALSMinus returns ALSRangeRestrictionLeft + * ALSMinus.ALSMinus_1_0 returns ALSRangeRestrictionLeft + * ALSPlus returns ALSRangeRestrictionLeft + * ALSPlus.ALSPlus_1_0 returns ALSRangeRestrictionLeft + * ALSIntersection returns ALSRangeRestrictionLeft + * ALSIntersection.ALSIntersection_1_0 returns ALSRangeRestrictionLeft + * ALSDirectProduct returns ALSRangeRestrictionLeft + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSRangeRestrictionLeft + * ALSPreficed returns ALSRangeRestrictionLeft + * ALSBasicRelationTerm returns ALSRangeRestrictionLeft + * + * Constraint: + * (filter=ALSRangeRestrictionLeft_ALSRangeRestrictionLeft_1_0 relation=ALSJoin) + */ + protected void sequence_ALSRangeRestrictionLeft(ISerializationContext context, ALSRangeRestrictionLeft semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_RANGE_RESTRICTION_LEFT__FILTER) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_RANGE_RESTRICTION_LEFT__FILTER)); + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_RANGE_RESTRICTION_LEFT__RELATION) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_RANGE_RESTRICTION_LEFT__RELATION)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSRangeRestrictionLeftAccess().getALSRangeRestrictionLeftFilterAction_1_0(), semanticObject.getFilter()); + feeder.accept(grammarAccess.getALSRangeRestrictionLeftAccess().getRelationALSJoinParserRuleCall_1_2_0(), semanticObject.getRelation()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTerm returns ALSRangeRestrictionRight + * ALSQuantified returns ALSRangeRestrictionRight + * ALSOr returns ALSRangeRestrictionRight + * ALSOr.ALSOr_1_0 returns ALSRangeRestrictionRight + * ALSIff returns ALSRangeRestrictionRight + * ALSIff.ALSIff_1_0 returns ALSRangeRestrictionRight + * ALSImpl returns ALSRangeRestrictionRight + * ALSImpl.ALSImpl_1_0 returns ALSRangeRestrictionRight + * ALSAnd returns ALSRangeRestrictionRight + * ALSAnd.ALSAnd_1_0 returns ALSRangeRestrictionRight + * ALSComparison returns ALSRangeRestrictionRight + * ALSComparison.ALSEquals_1_0_0_0 returns ALSRangeRestrictionRight + * ALSComparison.ALSNotEquals_1_0_1_0 returns ALSRangeRestrictionRight + * ALSComparison.ALSSubset_1_0_2_0 returns ALSRangeRestrictionRight + * ALSComparison.ALSLess_1_0_3_0 returns ALSRangeRestrictionRight + * ALSComparison.ALSLeq_1_0_4_0 returns ALSRangeRestrictionRight + * ALSComparison.ALSMore_1_0_5_0 returns ALSRangeRestrictionRight + * ALSComparison.ALSMeq_1_0_6_0 returns ALSRangeRestrictionRight + * ALSOverride returns ALSRangeRestrictionRight + * ALSOverride.ALSOverride_1_0 returns ALSRangeRestrictionRight + * ALSRangeRestrictionRight returns ALSRangeRestrictionRight + * ALSRangeRestrictionRight.ALSRangeRestrictionRight_1_0 returns ALSRangeRestrictionRight + * ALSRangeRestrictionLeft returns ALSRangeRestrictionRight + * ALSRangeRestrictionLeft.ALSRangeRestrictionLeft_1_0 returns ALSRangeRestrictionRight + * ALSJoin returns ALSRangeRestrictionRight + * ALSJoin.ALSJoin_1_0 returns ALSRangeRestrictionRight + * ALSMinus returns ALSRangeRestrictionRight + * ALSMinus.ALSMinus_1_0 returns ALSRangeRestrictionRight + * ALSPlus returns ALSRangeRestrictionRight + * ALSPlus.ALSPlus_1_0 returns ALSRangeRestrictionRight + * ALSIntersection returns ALSRangeRestrictionRight + * ALSIntersection.ALSIntersection_1_0 returns ALSRangeRestrictionRight + * ALSDirectProduct returns ALSRangeRestrictionRight + * ALSDirectProduct.ALSDirectProduct_1_0 returns ALSRangeRestrictionRight + * ALSPreficed returns ALSRangeRestrictionRight + * ALSBasicRelationTerm returns ALSRangeRestrictionRight + * + * Constraint: + * (relation=ALSRangeRestrictionRight_ALSRangeRestrictionRight_1_0 filter=ALSRangeRestrictionLeft) + */ + protected void sequence_ALSRangeRestrictionRight(ISerializationContext context, ALSRangeRestrictionRight semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_RANGE_RESTRICTION_RIGHT__RELATION) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_RANGE_RESTRICTION_RIGHT__RELATION)); + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_RANGE_RESTRICTION_RIGHT__FILTER) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_RANGE_RESTRICTION_RIGHT__FILTER)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSRangeRestrictionRightAccess().getALSRangeRestrictionRightRelationAction_1_0(), semanticObject.getRelation()); + feeder.accept(grammarAccess.getALSRangeRestrictionRightAccess().getFilterALSRangeRestrictionLeftParserRuleCall_1_2_0(), semanticObject.getFilter()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSDefinition returns ALSRelationDefinition + * ALSRelationDefinition returns ALSRelationDefinition + * + * Constraint: + * (name=ALSID variables+=ALSVariableDeclaration variables+=ALSVariableDeclaration* value=ALSTerm) + */ + protected void sequence_ALSRelationDefinition(ISerializationContext context, ALSRelationDefinition semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ALSRunCommand returns ALSRunCommand + * + * Constraint: + * (typeScopes+=ALSTypeScope typeScopes+=ALSTypeScope*)? + */ + protected void sequence_ALSRunCommand(ISerializationContext context, ALSRunCommand semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ALSTypeScope returns ALSSigScope + * ALSSigScope returns ALSSigScope + * + * Constraint: + * (exactly?='exactly'? number=INT type=[ALSSignatureDeclaration|ID]) + */ + protected void sequence_ALSSigScope(ISerializationContext context, ALSSigScope semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ALSSignatureBody returns ALSSignatureBody + * + * Constraint: + * ( + * (multiplicity=ALSMultiplicity | abstract?='abstract')* + * declarations+=ALSSignatureDeclaration + * declarations+=ALSSignatureDeclaration* + * (supertype=[ALSSignatureDeclaration|ID] | (superset+=[ALSSignatureDeclaration|ID] superset+=[ALSSignatureDeclaration|ID]*))? + * (fields+=ALSFieldDeclaration fields+=ALSFieldDeclaration*)? + * ) + */ + protected void sequence_ALSSignatureBody(ISerializationContext context, ALSSignatureBody semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * ALSRelationDeclaration returns ALSSignatureDeclaration + * ALSTypeDeclaration returns ALSSignatureDeclaration + * ALSSignatureDeclaration returns ALSSignatureDeclaration + * + * Constraint: + * name=ALSID + */ + protected void sequence_ALSSignatureDeclaration(ISerializationContext context, ALSSignatureDeclaration semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_RELATION_DECLARATION__NAME) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_RELATION_DECLARATION__NAME)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSSignatureDeclarationAccess().getNameALSIDParserRuleCall_0(), semanticObject.getName()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSTypeScope returns ALSStringScope + * ALSStringScope returns ALSStringScope + * + * Constraint: + * number=INT + */ + protected void sequence_ALSStringScope(ISerializationContext context, ALSStringScope semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_TYPE_SCOPE__NUMBER) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_TYPE_SCOPE__NUMBER)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSStringScopeAccess().getNumberINTTerminalRuleCall_1_0(), semanticObject.getNumber()); + feeder.finish(); + } + + + /** + * Contexts: + * ALSRelationDeclaration returns ALSVariableDeclaration + * ALSVariableDeclaration returns ALSVariableDeclaration + * + * Constraint: + * (name=ALSID range=ALSTerm) + */ + protected void sequence_ALSVariableDeclaration(ISerializationContext context, ALSVariableDeclaration semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_RELATION_DECLARATION__NAME) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_RELATION_DECLARATION__NAME)); + if (transientValues.isValueTransient(semanticObject, AlloyLanguagePackage.Literals.ALS_VARIABLE_DECLARATION__RANGE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AlloyLanguagePackage.Literals.ALS_VARIABLE_DECLARATION__RANGE)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getALSVariableDeclarationAccess().getNameALSIDParserRuleCall_0_0(), semanticObject.getName()); + feeder.accept(grammarAccess.getALSVariableDeclarationAccess().getRangeALSTermParserRuleCall_2_0(), semanticObject.getRange()); + feeder.finish(); + } + + +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/serializer/AlloyLanguageSyntacticSequencer.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/serializer/AlloyLanguageSyntacticSequencer.java new file mode 100644 index 00000000..af3c684a --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/serializer/AlloyLanguageSyntacticSequencer.java @@ -0,0 +1,216 @@ +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner.serializer; + +import com.google.inject.Inject; +import hu.bme.mit.inf.dslreasoner.services.AlloyLanguageGrammarAccess; +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.AlternativeAlias; +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 AlloyLanguageSyntacticSequencer extends AbstractSyntacticSequencer { + + protected AlloyLanguageGrammarAccess grammarAccess; + protected AbstractElementAlias match_ALSAnd_AmpersandAmpersandKeyword_1_1_0_or_AndKeyword_1_1_1; + protected AbstractElementAlias match_ALSBasicRelationTerm_LeftParenthesisKeyword_8_0_a; + protected AbstractElementAlias match_ALSBasicRelationTerm_LeftParenthesisKeyword_8_0_p; + protected AbstractElementAlias match_ALSIff_IffKeyword_1_1_1_or_LessThanSignEqualsSignGreaterThanSignKeyword_1_1_0; + protected AbstractElementAlias match_ALSImpl_EqualsSignGreaterThanSignKeyword_1_1_0_or_ImpliesKeyword_1_1_1; + protected AbstractElementAlias match_ALSOr_OrKeyword_1_1_1_or_VerticalLineVerticalLineKeyword_1_1_0; + protected AbstractElementAlias match_ALSPreficed_ExclamationMarkKeyword_0_1_0_0_or_NotKeyword_0_1_0_1; + + @Inject + protected void init(IGrammarAccess access) { + grammarAccess = (AlloyLanguageGrammarAccess) access; + match_ALSAnd_AmpersandAmpersandKeyword_1_1_0_or_AndKeyword_1_1_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getALSAndAccess().getAmpersandAmpersandKeyword_1_1_0()), new TokenAlias(false, false, grammarAccess.getALSAndAccess().getAndKeyword_1_1_1())); + match_ALSBasicRelationTerm_LeftParenthesisKeyword_8_0_a = new TokenAlias(true, true, grammarAccess.getALSBasicRelationTermAccess().getLeftParenthesisKeyword_8_0()); + match_ALSBasicRelationTerm_LeftParenthesisKeyword_8_0_p = new TokenAlias(true, false, grammarAccess.getALSBasicRelationTermAccess().getLeftParenthesisKeyword_8_0()); + match_ALSIff_IffKeyword_1_1_1_or_LessThanSignEqualsSignGreaterThanSignKeyword_1_1_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getALSIffAccess().getIffKeyword_1_1_1()), new TokenAlias(false, false, grammarAccess.getALSIffAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_1_1_0())); + match_ALSImpl_EqualsSignGreaterThanSignKeyword_1_1_0_or_ImpliesKeyword_1_1_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getALSImplAccess().getEqualsSignGreaterThanSignKeyword_1_1_0()), new TokenAlias(false, false, grammarAccess.getALSImplAccess().getImpliesKeyword_1_1_1())); + match_ALSOr_OrKeyword_1_1_1_or_VerticalLineVerticalLineKeyword_1_1_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getALSOrAccess().getOrKeyword_1_1_1()), new TokenAlias(false, false, grammarAccess.getALSOrAccess().getVerticalLineVerticalLineKeyword_1_1_0())); + match_ALSPreficed_ExclamationMarkKeyword_0_1_0_0_or_NotKeyword_0_1_0_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getALSPreficedAccess().getExclamationMarkKeyword_0_1_0_0()), new TokenAlias(false, false, grammarAccess.getALSPreficedAccess().getNotKeyword_0_1_0_1())); + } + + @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_ALSAnd_AmpersandAmpersandKeyword_1_1_0_or_AndKeyword_1_1_1.equals(syntax)) + emit_ALSAnd_AmpersandAmpersandKeyword_1_1_0_or_AndKeyword_1_1_1(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_ALSBasicRelationTerm_LeftParenthesisKeyword_8_0_a.equals(syntax)) + emit_ALSBasicRelationTerm_LeftParenthesisKeyword_8_0_a(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_ALSBasicRelationTerm_LeftParenthesisKeyword_8_0_p.equals(syntax)) + emit_ALSBasicRelationTerm_LeftParenthesisKeyword_8_0_p(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_ALSIff_IffKeyword_1_1_1_or_LessThanSignEqualsSignGreaterThanSignKeyword_1_1_0.equals(syntax)) + emit_ALSIff_IffKeyword_1_1_1_or_LessThanSignEqualsSignGreaterThanSignKeyword_1_1_0(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_ALSImpl_EqualsSignGreaterThanSignKeyword_1_1_0_or_ImpliesKeyword_1_1_1.equals(syntax)) + emit_ALSImpl_EqualsSignGreaterThanSignKeyword_1_1_0_or_ImpliesKeyword_1_1_1(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_ALSOr_OrKeyword_1_1_1_or_VerticalLineVerticalLineKeyword_1_1_0.equals(syntax)) + emit_ALSOr_OrKeyword_1_1_1_or_VerticalLineVerticalLineKeyword_1_1_0(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_ALSPreficed_ExclamationMarkKeyword_0_1_0_0_or_NotKeyword_0_1_0_1.equals(syntax)) + emit_ALSPreficed_ExclamationMarkKeyword_0_1_0_0_or_NotKeyword_0_1_0_1(semanticObject, getLastNavigableState(), syntaxNodes); + else acceptNodes(getLastNavigableState(), syntaxNodes); + } + } + + /** + * Ambiguous syntax: + * 'and' | '&&' + * + * This ambiguous syntax occurs at: + * {ALSAnd.leftOperand=} (ambiguity) rightOperand=ALSComparison + */ + protected void emit_ALSAnd_AmpersandAmpersandKeyword_1_1_0_or_AndKeyword_1_1_1(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * '('* + * + * This ambiguous syntax occurs at: + * (rule start) (ambiguity) '#' operand=ALSBasicRelationTerm + * (rule start) (ambiguity) '*' operand=ALSBasicRelationTerm + * (rule start) (ambiguity) '-' operand=ALSBasicRelationTerm + * (rule start) (ambiguity) 'Int' (rule start) + * (rule start) (ambiguity) 'String' (rule start) + * (rule start) (ambiguity) '^' operand=ALSBasicRelationTerm + * (rule start) (ambiguity) 'iden' (rule start) + * (rule start) (ambiguity) 'none' (rule start) + * (rule start) (ambiguity) 'sum' variables+=ALSVariableDeclaration + * (rule start) (ambiguity) 'univ' (rule start) + * (rule start) (ambiguity) '~' operand=ALSBasicRelationTerm + * (rule start) (ambiguity) ('not' | '!') operand=ALSBasicRelationTerm + * (rule start) (ambiguity) referred=[ALSRelationDeclaration|ID] + * (rule start) (ambiguity) referredDefinition=[ALSDefinition|ID] + * (rule start) (ambiguity) referredNumericOperator=ALSNumericOperator + * (rule start) (ambiguity) type=ALSMultiplicity + * (rule start) (ambiguity) value=INT + * (rule start) (ambiguity) value=STRING + * (rule start) (ambiguity) {ALSAnd.leftOperand=} + * (rule start) (ambiguity) {ALSDirectProduct.leftOperand=} + * (rule start) (ambiguity) {ALSEquals.leftOperand=} + * (rule start) (ambiguity) {ALSIff.leftOperand=} + * (rule start) (ambiguity) {ALSImpl.leftOperand=} + * (rule start) (ambiguity) {ALSIntersection.leftOperand=} + * (rule start) (ambiguity) {ALSJoin.leftOperand=} + * (rule start) (ambiguity) {ALSLeq.leftOperand=} + * (rule start) (ambiguity) {ALSLess.leftOperand=} + * (rule start) (ambiguity) {ALSMeq.leftOperand=} + * (rule start) (ambiguity) {ALSMinus.leftOperand=} + * (rule start) (ambiguity) {ALSMore.leftOperand=} + * (rule start) (ambiguity) {ALSNotEquals.leftOperand=} + * (rule start) (ambiguity) {ALSOr.leftOperand=} + * (rule start) (ambiguity) {ALSOverride.leftOperand=} + * (rule start) (ambiguity) {ALSPlus.leftOperand=} + * (rule start) (ambiguity) {ALSRangeRestrictionLeft.filter=} + * (rule start) (ambiguity) {ALSRangeRestrictionRight.relation=} + * (rule start) (ambiguity) {ALSSubset.leftOperand=} + */ + protected void emit_ALSBasicRelationTerm_LeftParenthesisKeyword_8_0_a(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * '('+ + * + * This ambiguous syntax occurs at: + * (rule start) (ambiguity) '#' operand=ALSBasicRelationTerm + * (rule start) (ambiguity) '*' operand=ALSBasicRelationTerm + * (rule start) (ambiguity) '-' operand=ALSBasicRelationTerm + * (rule start) (ambiguity) '^' operand=ALSBasicRelationTerm + * (rule start) (ambiguity) 'sum' variables+=ALSVariableDeclaration + * (rule start) (ambiguity) '~' operand=ALSBasicRelationTerm + * (rule start) (ambiguity) ('not' | '!') operand=ALSBasicRelationTerm + * (rule start) (ambiguity) referredDefinition=[ALSDefinition|ID] + * (rule start) (ambiguity) referredNumericOperator=ALSNumericOperator + * (rule start) (ambiguity) type=ALSMultiplicity + * (rule start) (ambiguity) {ALSAnd.leftOperand=} + * (rule start) (ambiguity) {ALSDirectProduct.leftOperand=} + * (rule start) (ambiguity) {ALSEquals.leftOperand=} + * (rule start) (ambiguity) {ALSIff.leftOperand=} + * (rule start) (ambiguity) {ALSImpl.leftOperand=} + * (rule start) (ambiguity) {ALSIntersection.leftOperand=} + * (rule start) (ambiguity) {ALSJoin.leftOperand=} + * (rule start) (ambiguity) {ALSLeq.leftOperand=} + * (rule start) (ambiguity) {ALSLess.leftOperand=} + * (rule start) (ambiguity) {ALSMeq.leftOperand=} + * (rule start) (ambiguity) {ALSMinus.leftOperand=} + * (rule start) (ambiguity) {ALSMore.leftOperand=} + * (rule start) (ambiguity) {ALSNotEquals.leftOperand=} + * (rule start) (ambiguity) {ALSOr.leftOperand=} + * (rule start) (ambiguity) {ALSOverride.leftOperand=} + * (rule start) (ambiguity) {ALSPlus.leftOperand=} + * (rule start) (ambiguity) {ALSRangeRestrictionLeft.filter=} + * (rule start) (ambiguity) {ALSRangeRestrictionRight.relation=} + * (rule start) (ambiguity) {ALSSubset.leftOperand=} + */ + protected void emit_ALSBasicRelationTerm_LeftParenthesisKeyword_8_0_p(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * '<=>' | 'iff' + * + * This ambiguous syntax occurs at: + * {ALSIff.leftOperand=} (ambiguity) rightOperand=ALSImpl + */ + protected void emit_ALSIff_IffKeyword_1_1_1_or_LessThanSignEqualsSignGreaterThanSignKeyword_1_1_0(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * '=>' | 'implies' + * + * This ambiguous syntax occurs at: + * {ALSImpl.leftOperand=} (ambiguity) rightOperand=ALSAnd + */ + protected void emit_ALSImpl_EqualsSignGreaterThanSignKeyword_1_1_0_or_ImpliesKeyword_1_1_1(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * 'or' | '||' + * + * This ambiguous syntax occurs at: + * {ALSOr.leftOperand=} (ambiguity) rightOperand=ALSIff + */ + protected void emit_ALSOr_OrKeyword_1_1_1_or_VerticalLineVerticalLineKeyword_1_1_0(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + + /** + * Ambiguous syntax: + * 'not' | '!' + * + * This ambiguous syntax occurs at: + * (rule start) '('* (ambiguity) operand=ALSBasicRelationTerm + * (rule start) '('+ (ambiguity) operand=ALSBasicRelationTerm + */ + protected void emit_ALSPreficed_ExclamationMarkKeyword_0_1_0_0_or_NotKeyword_0_1_0_1(EObject semanticObject, ISynNavigable transition, List nodes) { + acceptNodes(transition, nodes); + } + +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/services/AlloyLanguageGrammarAccess.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/services/AlloyLanguageGrammarAccess.java new file mode 100644 index 00000000..82f107a6 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/services/AlloyLanguageGrammarAccess.java @@ -0,0 +1,2721 @@ +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner.services; + +import com.google.inject.Singleton; +import com.google.inject.Inject; + +import java.util.List; + +import org.eclipse.xtext.*; +import org.eclipse.xtext.service.GrammarProvider; +import org.eclipse.xtext.service.AbstractElementFinder.*; + +import org.eclipse.xtext.common.services.TerminalsGrammarAccess; + +@Singleton +public class AlloyLanguageGrammarAccess extends AbstractGrammarElementFinder { + + + public class ALSDocumentElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSDocument"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0); + private final Assignment cEnumDeclarationsAssignment_0_0 = (Assignment)cAlternatives_0.eContents().get(0); + private final RuleCall cEnumDeclarationsALSEnumDeclarationParserRuleCall_0_0_0 = (RuleCall)cEnumDeclarationsAssignment_0_0.eContents().get(0); + private final Assignment cSignatureBodiesAssignment_0_1 = (Assignment)cAlternatives_0.eContents().get(1); + private final RuleCall cSignatureBodiesALSSignatureBodyParserRuleCall_0_1_0 = (RuleCall)cSignatureBodiesAssignment_0_1.eContents().get(0); + private final Assignment cFunctionDefinitionsAssignment_0_2 = (Assignment)cAlternatives_0.eContents().get(2); + private final RuleCall cFunctionDefinitionsALSFunctionDefinitionParserRuleCall_0_2_0 = (RuleCall)cFunctionDefinitionsAssignment_0_2.eContents().get(0); + private final Assignment cRelationDefinitionsAssignment_0_3 = (Assignment)cAlternatives_0.eContents().get(3); + private final RuleCall cRelationDefinitionsALSRelationDefinitionParserRuleCall_0_3_0 = (RuleCall)cRelationDefinitionsAssignment_0_3.eContents().get(0); + private final Assignment cFactDeclarationsAssignment_0_4 = (Assignment)cAlternatives_0.eContents().get(4); + private final RuleCall cFactDeclarationsALSFactDeclarationParserRuleCall_0_4_0 = (RuleCall)cFactDeclarationsAssignment_0_4.eContents().get(0); + private final Assignment cRunCommandAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cRunCommandALSRunCommandParserRuleCall_1_0 = (RuleCall)cRunCommandAssignment_1.eContents().get(0); + + //ALSDocument: + // (enumDeclarations+=ALSEnumDeclaration | signatureBodies+=ALSSignatureBody | + // functionDefinitions+=ALSFunctionDefinition | relationDefinitions+=ALSRelationDefinition | + // factDeclarations+=ALSFactDeclaration)+ + // runCommand=ALSRunCommand; + @Override public ParserRule getRule() { return rule; } + + //(enumDeclarations+=ALSEnumDeclaration | signatureBodies+=ALSSignatureBody | functionDefinitions+=ALSFunctionDefinition | + //relationDefinitions+=ALSRelationDefinition | factDeclarations+=ALSFactDeclaration)+ runCommand=ALSRunCommand + public Group getGroup() { return cGroup; } + + //(enumDeclarations+=ALSEnumDeclaration | signatureBodies+=ALSSignatureBody | functionDefinitions+=ALSFunctionDefinition | + //relationDefinitions+=ALSRelationDefinition | factDeclarations+=ALSFactDeclaration)+ + public Alternatives getAlternatives_0() { return cAlternatives_0; } + + //enumDeclarations+=ALSEnumDeclaration + public Assignment getEnumDeclarationsAssignment_0_0() { return cEnumDeclarationsAssignment_0_0; } + + //ALSEnumDeclaration + public RuleCall getEnumDeclarationsALSEnumDeclarationParserRuleCall_0_0_0() { return cEnumDeclarationsALSEnumDeclarationParserRuleCall_0_0_0; } + + //signatureBodies+=ALSSignatureBody + public Assignment getSignatureBodiesAssignment_0_1() { return cSignatureBodiesAssignment_0_1; } + + //ALSSignatureBody + public RuleCall getSignatureBodiesALSSignatureBodyParserRuleCall_0_1_0() { return cSignatureBodiesALSSignatureBodyParserRuleCall_0_1_0; } + + //functionDefinitions+=ALSFunctionDefinition + public Assignment getFunctionDefinitionsAssignment_0_2() { return cFunctionDefinitionsAssignment_0_2; } + + //ALSFunctionDefinition + public RuleCall getFunctionDefinitionsALSFunctionDefinitionParserRuleCall_0_2_0() { return cFunctionDefinitionsALSFunctionDefinitionParserRuleCall_0_2_0; } + + //relationDefinitions+=ALSRelationDefinition + public Assignment getRelationDefinitionsAssignment_0_3() { return cRelationDefinitionsAssignment_0_3; } + + //ALSRelationDefinition + public RuleCall getRelationDefinitionsALSRelationDefinitionParserRuleCall_0_3_0() { return cRelationDefinitionsALSRelationDefinitionParserRuleCall_0_3_0; } + + //factDeclarations+=ALSFactDeclaration + public Assignment getFactDeclarationsAssignment_0_4() { return cFactDeclarationsAssignment_0_4; } + + //ALSFactDeclaration + public RuleCall getFactDeclarationsALSFactDeclarationParserRuleCall_0_4_0() { return cFactDeclarationsALSFactDeclarationParserRuleCall_0_4_0; } + + //runCommand=ALSRunCommand + public Assignment getRunCommandAssignment_1() { return cRunCommandAssignment_1; } + + //ALSRunCommand + public RuleCall getRunCommandALSRunCommandParserRuleCall_1_0() { return cRunCommandALSRunCommandParserRuleCall_1_0; } + } + + public class ALSIDElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSID"); + private final RuleCall cIDTerminalRuleCall = (RuleCall)rule.eContents().get(1); + + //ALSID: + // ID; + @Override public ParserRule getRule() { return rule; } + + //ID + public RuleCall getIDTerminalRuleCall() { return cIDTerminalRuleCall; } + } + + public class ALSRelationDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSRelationDeclaration"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cALSTypeDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cALSEnumLiteralParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cALSFieldDeclarationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cALSVariableDeclarationParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + + //////////////////////////////////// + //// ALS types + //////////////////////////////////// + //ALSRelationDeclaration: + // ALSTypeDeclaration | ALSEnumLiteral | ALSFieldDeclaration | ALSVariableDeclaration; + @Override public ParserRule getRule() { return rule; } + + //ALSTypeDeclaration | ALSEnumLiteral | ALSFieldDeclaration | ALSVariableDeclaration + public Alternatives getAlternatives() { return cAlternatives; } + + //ALSTypeDeclaration + public RuleCall getALSTypeDeclarationParserRuleCall_0() { return cALSTypeDeclarationParserRuleCall_0; } + + //ALSEnumLiteral + public RuleCall getALSEnumLiteralParserRuleCall_1() { return cALSEnumLiteralParserRuleCall_1; } + + //ALSFieldDeclaration + public RuleCall getALSFieldDeclarationParserRuleCall_2() { return cALSFieldDeclarationParserRuleCall_2; } + + //ALSVariableDeclaration + public RuleCall getALSVariableDeclarationParserRuleCall_3() { return cALSVariableDeclarationParserRuleCall_3; } + } + + public class ALSTypeDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTypeDeclaration"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cALSEnumDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cALSSignatureDeclarationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //ALSTypeDeclaration: + // ALSEnumDeclaration | ALSSignatureDeclaration; + @Override public ParserRule getRule() { return rule; } + + //ALSEnumDeclaration | ALSSignatureDeclaration + public Alternatives getAlternatives() { return cAlternatives; } + + //ALSEnumDeclaration + public RuleCall getALSEnumDeclarationParserRuleCall_0() { return cALSEnumDeclarationParserRuleCall_0; } + + //ALSSignatureDeclaration + public RuleCall getALSSignatureDeclarationParserRuleCall_1() { return cALSSignatureDeclarationParserRuleCall_1; } + } + + public class ALSEnumDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSEnumDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cEnumKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameALSIDParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cLiteralAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cLiteralALSEnumLiteralParserRuleCall_3_0 = (RuleCall)cLiteralAssignment_3.eContents().get(0); + private final Group cGroup_4 = (Group)cGroup.eContents().get(4); + private final Keyword cCommaKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0); + private final Assignment cLiteralAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1); + private final RuleCall cLiteralALSEnumLiteralParserRuleCall_4_1_0 = (RuleCall)cLiteralAssignment_4_1.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5); + + //ALSEnumDeclaration: + // 'enum' name=ALSID '{' + // literal+=ALSEnumLiteral ("," literal+=ALSEnumLiteral)* + // '}'; + @Override public ParserRule getRule() { return rule; } + + //'enum' name=ALSID '{' literal+=ALSEnumLiteral ("," literal+=ALSEnumLiteral)* '}' + public Group getGroup() { return cGroup; } + + //'enum' + public Keyword getEnumKeyword_0() { return cEnumKeyword_0; } + + //name=ALSID + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //ALSID + public RuleCall getNameALSIDParserRuleCall_1_0() { return cNameALSIDParserRuleCall_1_0; } + + //'{' + public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } + + //literal+=ALSEnumLiteral + public Assignment getLiteralAssignment_3() { return cLiteralAssignment_3; } + + //ALSEnumLiteral + public RuleCall getLiteralALSEnumLiteralParserRuleCall_3_0() { return cLiteralALSEnumLiteralParserRuleCall_3_0; } + + //("," literal+=ALSEnumLiteral)* + public Group getGroup_4() { return cGroup_4; } + + //"," + public Keyword getCommaKeyword_4_0() { return cCommaKeyword_4_0; } + + //literal+=ALSEnumLiteral + public Assignment getLiteralAssignment_4_1() { return cLiteralAssignment_4_1; } + + //ALSEnumLiteral + public RuleCall getLiteralALSEnumLiteralParserRuleCall_4_1_0() { return cLiteralALSEnumLiteralParserRuleCall_4_1_0; } + + //'}' + public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; } + } + + public class ALSEnumLiteralElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSEnumLiteral"); + private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cNameALSIDParserRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0); + + //ALSEnumLiteral: + // name=ALSID; + @Override public ParserRule getRule() { return rule; } + + //name=ALSID + public Assignment getNameAssignment() { return cNameAssignment; } + + //ALSID + public RuleCall getNameALSIDParserRuleCall_0() { return cNameALSIDParserRuleCall_0; } + } + + public class ALSSignatureDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSSignatureDeclaration"); + private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cNameALSIDParserRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0); + + //ALSSignatureDeclaration: + // name=ALSID; + @Override public ParserRule getRule() { return rule; } + + //name=ALSID + public Assignment getNameAssignment() { return cNameAssignment; } + + //ALSID + public RuleCall getNameALSIDParserRuleCall_0() { return cNameALSIDParserRuleCall_0; } + } + + public class ALSSignatureBodyElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSSignatureBody"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final UnorderedGroup cUnorderedGroup_0 = (UnorderedGroup)cGroup.eContents().get(0); + private final Assignment cMultiplicityAssignment_0_0 = (Assignment)cUnorderedGroup_0.eContents().get(0); + private final RuleCall cMultiplicityALSMultiplicityEnumRuleCall_0_0_0 = (RuleCall)cMultiplicityAssignment_0_0.eContents().get(0); + private final Assignment cAbstractAssignment_0_1 = (Assignment)cUnorderedGroup_0.eContents().get(1); + private final Keyword cAbstractAbstractKeyword_0_1_0 = (Keyword)cAbstractAssignment_0_1.eContents().get(0); + private final Keyword cSigKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Assignment cDeclarationsAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cDeclarationsALSSignatureDeclarationParserRuleCall_2_0 = (RuleCall)cDeclarationsAssignment_2.eContents().get(0); + private final Group cGroup_3 = (Group)cGroup.eContents().get(3); + private final Keyword cCommaKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); + private final Assignment cDeclarationsAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1); + private final RuleCall cDeclarationsALSSignatureDeclarationParserRuleCall_3_1_0 = (RuleCall)cDeclarationsAssignment_3_1.eContents().get(0); + private final Alternatives cAlternatives_4 = (Alternatives)cGroup.eContents().get(4); + private final Group cGroup_4_0 = (Group)cAlternatives_4.eContents().get(0); + private final Keyword cExtendsKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0); + private final Assignment cSupertypeAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1); + private final CrossReference cSupertypeALSSignatureDeclarationCrossReference_4_0_1_0 = (CrossReference)cSupertypeAssignment_4_0_1.eContents().get(0); + private final RuleCall cSupertypeALSSignatureDeclarationIDTerminalRuleCall_4_0_1_0_1 = (RuleCall)cSupertypeALSSignatureDeclarationCrossReference_4_0_1_0.eContents().get(1); + private final Group cGroup_4_1 = (Group)cAlternatives_4.eContents().get(1); + private final Keyword cInKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0); + private final Assignment cSupersetAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1); + private final CrossReference cSupersetALSSignatureDeclarationCrossReference_4_1_1_0 = (CrossReference)cSupersetAssignment_4_1_1.eContents().get(0); + private final RuleCall cSupersetALSSignatureDeclarationIDTerminalRuleCall_4_1_1_0_1 = (RuleCall)cSupersetALSSignatureDeclarationCrossReference_4_1_1_0.eContents().get(1); + private final Group cGroup_4_1_2 = (Group)cGroup_4_1.eContents().get(2); + private final Keyword cPlusSignKeyword_4_1_2_0 = (Keyword)cGroup_4_1_2.eContents().get(0); + private final Assignment cSupersetAssignment_4_1_2_1 = (Assignment)cGroup_4_1_2.eContents().get(1); + private final CrossReference cSupersetALSSignatureDeclarationCrossReference_4_1_2_1_0 = (CrossReference)cSupersetAssignment_4_1_2_1.eContents().get(0); + private final RuleCall cSupersetALSSignatureDeclarationIDTerminalRuleCall_4_1_2_1_0_1 = (RuleCall)cSupersetALSSignatureDeclarationCrossReference_4_1_2_1_0.eContents().get(1); + private final Keyword cLeftCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5); + private final Group cGroup_6 = (Group)cGroup.eContents().get(6); + private final Assignment cFieldsAssignment_6_0 = (Assignment)cGroup_6.eContents().get(0); + private final RuleCall cFieldsALSFieldDeclarationParserRuleCall_6_0_0 = (RuleCall)cFieldsAssignment_6_0.eContents().get(0); + private final Group cGroup_6_1 = (Group)cGroup_6.eContents().get(1); + private final Keyword cCommaKeyword_6_1_0 = (Keyword)cGroup_6_1.eContents().get(0); + private final Assignment cFieldsAssignment_6_1_1 = (Assignment)cGroup_6_1.eContents().get(1); + private final RuleCall cFieldsALSFieldDeclarationParserRuleCall_6_1_1_0 = (RuleCall)cFieldsAssignment_6_1_1.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7); + + //ALSSignatureBody: + // (multiplicity=ALSMultiplicity? & abstract?='abstract'?) + // 'sig' + // declarations+=ALSSignatureDeclaration (',' declarations+=ALSSignatureDeclaration)* ('extends' + // supertype=[ALSSignatureDeclaration] | 'in' superset+=[ALSSignatureDeclaration] ('+' + // superset+=[ALSSignatureDeclaration])*)? + // '{' (fields+=ALSFieldDeclaration ("," fields+=ALSFieldDeclaration)*)? '}'; + @Override public ParserRule getRule() { return rule; } + + //(multiplicity=ALSMultiplicity? & abstract?='abstract'?) 'sig' declarations+=ALSSignatureDeclaration (',' + //declarations+=ALSSignatureDeclaration)* ('extends' supertype=[ALSSignatureDeclaration] | 'in' + //superset+=[ALSSignatureDeclaration] ('+' superset+=[ALSSignatureDeclaration])*)? '{' (fields+=ALSFieldDeclaration ("," + //fields+=ALSFieldDeclaration)*)? '}' + public Group getGroup() { return cGroup; } + + //multiplicity=ALSMultiplicity? & abstract?='abstract'? + public UnorderedGroup getUnorderedGroup_0() { return cUnorderedGroup_0; } + + //multiplicity=ALSMultiplicity? + public Assignment getMultiplicityAssignment_0_0() { return cMultiplicityAssignment_0_0; } + + //ALSMultiplicity + public RuleCall getMultiplicityALSMultiplicityEnumRuleCall_0_0_0() { return cMultiplicityALSMultiplicityEnumRuleCall_0_0_0; } + + //abstract?='abstract'? + public Assignment getAbstractAssignment_0_1() { return cAbstractAssignment_0_1; } + + //'abstract' + public Keyword getAbstractAbstractKeyword_0_1_0() { return cAbstractAbstractKeyword_0_1_0; } + + //'sig' + public Keyword getSigKeyword_1() { return cSigKeyword_1; } + + //declarations+=ALSSignatureDeclaration + public Assignment getDeclarationsAssignment_2() { return cDeclarationsAssignment_2; } + + //ALSSignatureDeclaration + public RuleCall getDeclarationsALSSignatureDeclarationParserRuleCall_2_0() { return cDeclarationsALSSignatureDeclarationParserRuleCall_2_0; } + + //(',' declarations+=ALSSignatureDeclaration)* + public Group getGroup_3() { return cGroup_3; } + + //',' + public Keyword getCommaKeyword_3_0() { return cCommaKeyword_3_0; } + + //declarations+=ALSSignatureDeclaration + public Assignment getDeclarationsAssignment_3_1() { return cDeclarationsAssignment_3_1; } + + //ALSSignatureDeclaration + public RuleCall getDeclarationsALSSignatureDeclarationParserRuleCall_3_1_0() { return cDeclarationsALSSignatureDeclarationParserRuleCall_3_1_0; } + + //('extends' supertype=[ALSSignatureDeclaration] | 'in' superset+=[ALSSignatureDeclaration] ('+' + //superset+=[ALSSignatureDeclaration])*)? + public Alternatives getAlternatives_4() { return cAlternatives_4; } + + //'extends' supertype=[ALSSignatureDeclaration] + public Group getGroup_4_0() { return cGroup_4_0; } + + //'extends' + public Keyword getExtendsKeyword_4_0_0() { return cExtendsKeyword_4_0_0; } + + //supertype=[ALSSignatureDeclaration] + public Assignment getSupertypeAssignment_4_0_1() { return cSupertypeAssignment_4_0_1; } + + //[ALSSignatureDeclaration] + public CrossReference getSupertypeALSSignatureDeclarationCrossReference_4_0_1_0() { return cSupertypeALSSignatureDeclarationCrossReference_4_0_1_0; } + + //ID + public RuleCall getSupertypeALSSignatureDeclarationIDTerminalRuleCall_4_0_1_0_1() { return cSupertypeALSSignatureDeclarationIDTerminalRuleCall_4_0_1_0_1; } + + //'in' superset+=[ALSSignatureDeclaration] ('+' superset+=[ALSSignatureDeclaration])* + public Group getGroup_4_1() { return cGroup_4_1; } + + //'in' + public Keyword getInKeyword_4_1_0() { return cInKeyword_4_1_0; } + + //superset+=[ALSSignatureDeclaration] + public Assignment getSupersetAssignment_4_1_1() { return cSupersetAssignment_4_1_1; } + + //[ALSSignatureDeclaration] + public CrossReference getSupersetALSSignatureDeclarationCrossReference_4_1_1_0() { return cSupersetALSSignatureDeclarationCrossReference_4_1_1_0; } + + //ID + public RuleCall getSupersetALSSignatureDeclarationIDTerminalRuleCall_4_1_1_0_1() { return cSupersetALSSignatureDeclarationIDTerminalRuleCall_4_1_1_0_1; } + + //('+' superset+=[ALSSignatureDeclaration])* + public Group getGroup_4_1_2() { return cGroup_4_1_2; } + + //'+' + public Keyword getPlusSignKeyword_4_1_2_0() { return cPlusSignKeyword_4_1_2_0; } + + //superset+=[ALSSignatureDeclaration] + public Assignment getSupersetAssignment_4_1_2_1() { return cSupersetAssignment_4_1_2_1; } + + //[ALSSignatureDeclaration] + public CrossReference getSupersetALSSignatureDeclarationCrossReference_4_1_2_1_0() { return cSupersetALSSignatureDeclarationCrossReference_4_1_2_1_0; } + + //ID + public RuleCall getSupersetALSSignatureDeclarationIDTerminalRuleCall_4_1_2_1_0_1() { return cSupersetALSSignatureDeclarationIDTerminalRuleCall_4_1_2_1_0_1; } + + //'{' + public Keyword getLeftCurlyBracketKeyword_5() { return cLeftCurlyBracketKeyword_5; } + + //(fields+=ALSFieldDeclaration ("," fields+=ALSFieldDeclaration)*)? + public Group getGroup_6() { return cGroup_6; } + + //fields+=ALSFieldDeclaration + public Assignment getFieldsAssignment_6_0() { return cFieldsAssignment_6_0; } + + //ALSFieldDeclaration + public RuleCall getFieldsALSFieldDeclarationParserRuleCall_6_0_0() { return cFieldsALSFieldDeclarationParserRuleCall_6_0_0; } + + //("," fields+=ALSFieldDeclaration)* + public Group getGroup_6_1() { return cGroup_6_1; } + + //"," + public Keyword getCommaKeyword_6_1_0() { return cCommaKeyword_6_1_0; } + + //fields+=ALSFieldDeclaration + public Assignment getFieldsAssignment_6_1_1() { return cFieldsAssignment_6_1_1; } + + //ALSFieldDeclaration + public RuleCall getFieldsALSFieldDeclarationParserRuleCall_6_1_1_0() { return cFieldsALSFieldDeclarationParserRuleCall_6_1_1_0; } + + //'}' + public Keyword getRightCurlyBracketKeyword_7() { return cRightCurlyBracketKeyword_7; } + } + + public class ALSFieldDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSFieldDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cNameALSIDParserRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0); + private final Keyword cColonKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Assignment cMultiplicityAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cMultiplicityALSMultiplicityEnumRuleCall_2_0 = (RuleCall)cMultiplicityAssignment_2.eContents().get(0); + private final Assignment cTypeAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cTypeALSTermParserRuleCall_3_0 = (RuleCall)cTypeAssignment_3.eContents().get(0); + + //ALSFieldDeclaration: + // name=ALSID ':' multiplicity=ALSMultiplicity? type=ALSTerm; + @Override public ParserRule getRule() { return rule; } + + //name=ALSID ':' multiplicity=ALSMultiplicity? type=ALSTerm + public Group getGroup() { return cGroup; } + + //name=ALSID + public Assignment getNameAssignment_0() { return cNameAssignment_0; } + + //ALSID + public RuleCall getNameALSIDParserRuleCall_0_0() { return cNameALSIDParserRuleCall_0_0; } + + //':' + public Keyword getColonKeyword_1() { return cColonKeyword_1; } + + //multiplicity=ALSMultiplicity? + public Assignment getMultiplicityAssignment_2() { return cMultiplicityAssignment_2; } + + //ALSMultiplicity + public RuleCall getMultiplicityALSMultiplicityEnumRuleCall_2_0() { return cMultiplicityALSMultiplicityEnumRuleCall_2_0; } + + //type=ALSTerm + public Assignment getTypeAssignment_3() { return cTypeAssignment_3; } + + //ALSTerm + public RuleCall getTypeALSTermParserRuleCall_3_0() { return cTypeALSTermParserRuleCall_3_0; } + } + + public class ALSDefinitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSDefinition"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cALSFunctionDefinitionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cALSRelationDefinitionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //ALSDefinition: + // ALSFunctionDefinition | ALSRelationDefinition; + @Override public ParserRule getRule() { return rule; } + + //ALSFunctionDefinition | ALSRelationDefinition + public Alternatives getAlternatives() { return cAlternatives; } + + //ALSFunctionDefinition + public RuleCall getALSFunctionDefinitionParserRuleCall_0() { return cALSFunctionDefinitionParserRuleCall_0; } + + //ALSRelationDefinition + public RuleCall getALSRelationDefinitionParserRuleCall_1() { return cALSRelationDefinitionParserRuleCall_1; } + } + + public class ALSFunctionDefinitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSFunctionDefinition"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cFunKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameALSIDParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Keyword cLeftSquareBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cVariablesAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cVariablesALSVariableDeclarationParserRuleCall_3_0 = (RuleCall)cVariablesAssignment_3.eContents().get(0); + private final Group cGroup_4 = (Group)cGroup.eContents().get(4); + private final Keyword cCommaKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0); + private final Assignment cVariablesAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1); + private final RuleCall cVariablesALSVariableDeclarationParserRuleCall_4_1_0 = (RuleCall)cVariablesAssignment_4_1.eContents().get(0); + private final Keyword cRightSquareBracketKeyword_5 = (Keyword)cGroup.eContents().get(5); + private final Keyword cColonKeyword_6 = (Keyword)cGroup.eContents().get(6); + private final Assignment cTypeAssignment_7 = (Assignment)cGroup.eContents().get(7); + private final RuleCall cTypeALSTermParserRuleCall_7_0 = (RuleCall)cTypeAssignment_7.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8); + private final Assignment cValueAssignment_9 = (Assignment)cGroup.eContents().get(9); + private final RuleCall cValueALSTermParserRuleCall_9_0 = (RuleCall)cValueAssignment_9.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_10 = (Keyword)cGroup.eContents().get(10); + + //ALSFunctionDefinition: + // "fun" name=ALSID "[" variables+=ALSVariableDeclaration (',' variables+=ALSVariableDeclaration)* "]" ":" type=ALSTerm + // "{" value=ALSTerm "}"; + @Override public ParserRule getRule() { return rule; } + + //"fun" name=ALSID "[" variables+=ALSVariableDeclaration (',' variables+=ALSVariableDeclaration)* "]" ":" type=ALSTerm "{" + //value=ALSTerm "}" + public Group getGroup() { return cGroup; } + + //"fun" + public Keyword getFunKeyword_0() { return cFunKeyword_0; } + + //name=ALSID + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //ALSID + public RuleCall getNameALSIDParserRuleCall_1_0() { return cNameALSIDParserRuleCall_1_0; } + + //"[" + public Keyword getLeftSquareBracketKeyword_2() { return cLeftSquareBracketKeyword_2; } + + //variables+=ALSVariableDeclaration + public Assignment getVariablesAssignment_3() { return cVariablesAssignment_3; } + + //ALSVariableDeclaration + public RuleCall getVariablesALSVariableDeclarationParserRuleCall_3_0() { return cVariablesALSVariableDeclarationParserRuleCall_3_0; } + + //(',' variables+=ALSVariableDeclaration)* + public Group getGroup_4() { return cGroup_4; } + + //',' + public Keyword getCommaKeyword_4_0() { return cCommaKeyword_4_0; } + + //variables+=ALSVariableDeclaration + public Assignment getVariablesAssignment_4_1() { return cVariablesAssignment_4_1; } + + //ALSVariableDeclaration + public RuleCall getVariablesALSVariableDeclarationParserRuleCall_4_1_0() { return cVariablesALSVariableDeclarationParserRuleCall_4_1_0; } + + //"]" + public Keyword getRightSquareBracketKeyword_5() { return cRightSquareBracketKeyword_5; } + + //":" + public Keyword getColonKeyword_6() { return cColonKeyword_6; } + + //type=ALSTerm + public Assignment getTypeAssignment_7() { return cTypeAssignment_7; } + + //ALSTerm + public RuleCall getTypeALSTermParserRuleCall_7_0() { return cTypeALSTermParserRuleCall_7_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_8() { return cLeftCurlyBracketKeyword_8; } + + //value=ALSTerm + public Assignment getValueAssignment_9() { return cValueAssignment_9; } + + //ALSTerm + public RuleCall getValueALSTermParserRuleCall_9_0() { return cValueALSTermParserRuleCall_9_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_10() { return cRightCurlyBracketKeyword_10; } + } + + public class ALSRelationDefinitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSRelationDefinition"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cPredKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameALSIDParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Keyword cLeftSquareBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cVariablesAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cVariablesALSVariableDeclarationParserRuleCall_3_0 = (RuleCall)cVariablesAssignment_3.eContents().get(0); + private final Group cGroup_4 = (Group)cGroup.eContents().get(4); + private final Keyword cCommaKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0); + private final Assignment cVariablesAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1); + private final RuleCall cVariablesALSVariableDeclarationParserRuleCall_4_1_0 = (RuleCall)cVariablesAssignment_4_1.eContents().get(0); + private final Keyword cRightSquareBracketKeyword_5 = (Keyword)cGroup.eContents().get(5); + private final Keyword cLeftCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6); + private final Assignment cValueAssignment_7 = (Assignment)cGroup.eContents().get(7); + private final RuleCall cValueALSTermParserRuleCall_7_0 = (RuleCall)cValueAssignment_7.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8); + + //ALSRelationDefinition: + // "pred" name=ALSID "[" variables+=ALSVariableDeclaration (',' variables+=ALSVariableDeclaration)* "]" + // "{" value=ALSTerm "}"; + @Override public ParserRule getRule() { return rule; } + + //"pred" name=ALSID "[" variables+=ALSVariableDeclaration (',' variables+=ALSVariableDeclaration)* "]" "{" value=ALSTerm + //"}" + public Group getGroup() { return cGroup; } + + //"pred" + public Keyword getPredKeyword_0() { return cPredKeyword_0; } + + //name=ALSID + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //ALSID + public RuleCall getNameALSIDParserRuleCall_1_0() { return cNameALSIDParserRuleCall_1_0; } + + //"[" + public Keyword getLeftSquareBracketKeyword_2() { return cLeftSquareBracketKeyword_2; } + + //variables+=ALSVariableDeclaration + public Assignment getVariablesAssignment_3() { return cVariablesAssignment_3; } + + //ALSVariableDeclaration + public RuleCall getVariablesALSVariableDeclarationParserRuleCall_3_0() { return cVariablesALSVariableDeclarationParserRuleCall_3_0; } + + //(',' variables+=ALSVariableDeclaration)* + public Group getGroup_4() { return cGroup_4; } + + //',' + public Keyword getCommaKeyword_4_0() { return cCommaKeyword_4_0; } + + //variables+=ALSVariableDeclaration + public Assignment getVariablesAssignment_4_1() { return cVariablesAssignment_4_1; } + + //ALSVariableDeclaration + public RuleCall getVariablesALSVariableDeclarationParserRuleCall_4_1_0() { return cVariablesALSVariableDeclarationParserRuleCall_4_1_0; } + + //"]" + public Keyword getRightSquareBracketKeyword_5() { return cRightSquareBracketKeyword_5; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_6() { return cLeftCurlyBracketKeyword_6; } + + //value=ALSTerm + public Assignment getValueAssignment_7() { return cValueAssignment_7; } + + //ALSTerm + public RuleCall getValueALSTermParserRuleCall_7_0() { return cValueALSTermParserRuleCall_7_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_8() { return cRightCurlyBracketKeyword_8; } + } + + public class ALSFactDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSFactDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cALSFactDeclarationAction_0 = (Action)cGroup.eContents().get(0); + private final Keyword cFactKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cNameALSIDParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3); + private final Assignment cTermAssignment_4 = (Assignment)cGroup.eContents().get(4); + private final RuleCall cTermALSTermParserRuleCall_4_0 = (RuleCall)cTermAssignment_4.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5); + + //ALSFactDeclaration: + // {ALSFactDeclaration} 'fact' name=ALSID? '{' term=ALSTerm '}'; + @Override public ParserRule getRule() { return rule; } + + //{ALSFactDeclaration} 'fact' name=ALSID? '{' term=ALSTerm '}' + public Group getGroup() { return cGroup; } + + //{ALSFactDeclaration} + public Action getALSFactDeclarationAction_0() { return cALSFactDeclarationAction_0; } + + //'fact' + public Keyword getFactKeyword_1() { return cFactKeyword_1; } + + //name=ALSID? + public Assignment getNameAssignment_2() { return cNameAssignment_2; } + + //ALSID + public RuleCall getNameALSIDParserRuleCall_2_0() { return cNameALSIDParserRuleCall_2_0; } + + //'{' + public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; } + + //term=ALSTerm + public Assignment getTermAssignment_4() { return cTermAssignment_4; } + + //ALSTerm + public RuleCall getTermALSTermParserRuleCall_4_0() { return cTermALSTermParserRuleCall_4_0; } + + //'}' + public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; } + } + + public class ALSTermElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTerm"); + private final RuleCall cALSQuantifiedParserRuleCall = (RuleCall)rule.eContents().get(1); + + //////////////////////////////////// + //// ALS terms + //////////////////////////////////// + //ALSTerm: + // ALSQuantified; + @Override public ParserRule getRule() { return rule; } + + //ALSQuantified + public RuleCall getALSQuantifiedParserRuleCall() { return cALSQuantifiedParserRuleCall; } + } + + public class ALSQuantifiedElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSQuantified"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Action cALSQuantifiedExAction_0_0 = (Action)cGroup_0.eContents().get(0); + private final Assignment cTypeAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1); + private final RuleCall cTypeALSMultiplicityEnumRuleCall_0_1_0 = (RuleCall)cTypeAssignment_0_1.eContents().get(0); + private final Assignment cDisjAssignment_0_2 = (Assignment)cGroup_0.eContents().get(2); + private final Keyword cDisjDisjKeyword_0_2_0 = (Keyword)cDisjAssignment_0_2.eContents().get(0); + private final Assignment cVariablesAssignment_0_3 = (Assignment)cGroup_0.eContents().get(3); + private final RuleCall cVariablesALSVariableDeclarationParserRuleCall_0_3_0 = (RuleCall)cVariablesAssignment_0_3.eContents().get(0); + private final Group cGroup_0_4 = (Group)cGroup_0.eContents().get(4); + private final Keyword cCommaKeyword_0_4_0 = (Keyword)cGroup_0_4.eContents().get(0); + private final Assignment cVariablesAssignment_0_4_1 = (Assignment)cGroup_0_4.eContents().get(1); + private final RuleCall cVariablesALSVariableDeclarationParserRuleCall_0_4_1_0 = (RuleCall)cVariablesAssignment_0_4_1.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_0_5 = (Keyword)cGroup_0.eContents().get(5); + private final Assignment cExpressionAssignment_0_6 = (Assignment)cGroup_0.eContents().get(6); + private final RuleCall cExpressionALSTermParserRuleCall_0_6_0 = (RuleCall)cExpressionAssignment_0_6.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_0_7 = (Keyword)cGroup_0.eContents().get(7); + private final RuleCall cALSOrParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //ALSQuantified ALSTerm: + // {ALSQuantifiedEx} type=ALSMultiplicity + // disj?='disj'? variables+=ALSVariableDeclaration (',' variables+=ALSVariableDeclaration)* '{' expression=ALSTerm '}' | + // ALSOr; + @Override public ParserRule getRule() { return rule; } + + //{ALSQuantifiedEx} type=ALSMultiplicity disj?='disj'? variables+=ALSVariableDeclaration (',' + //variables+=ALSVariableDeclaration)* '{' expression=ALSTerm '}' | ALSOr + public Alternatives getAlternatives() { return cAlternatives; } + + //{ALSQuantifiedEx} type=ALSMultiplicity disj?='disj'? variables+=ALSVariableDeclaration (',' + //variables+=ALSVariableDeclaration)* '{' expression=ALSTerm '}' + public Group getGroup_0() { return cGroup_0; } + + //{ALSQuantifiedEx} + public Action getALSQuantifiedExAction_0_0() { return cALSQuantifiedExAction_0_0; } + + //type=ALSMultiplicity + public Assignment getTypeAssignment_0_1() { return cTypeAssignment_0_1; } + + //ALSMultiplicity + public RuleCall getTypeALSMultiplicityEnumRuleCall_0_1_0() { return cTypeALSMultiplicityEnumRuleCall_0_1_0; } + + //disj?='disj'? + public Assignment getDisjAssignment_0_2() { return cDisjAssignment_0_2; } + + //'disj' + public Keyword getDisjDisjKeyword_0_2_0() { return cDisjDisjKeyword_0_2_0; } + + //variables+=ALSVariableDeclaration + public Assignment getVariablesAssignment_0_3() { return cVariablesAssignment_0_3; } + + //ALSVariableDeclaration + public RuleCall getVariablesALSVariableDeclarationParserRuleCall_0_3_0() { return cVariablesALSVariableDeclarationParserRuleCall_0_3_0; } + + //(',' variables+=ALSVariableDeclaration)* + public Group getGroup_0_4() { return cGroup_0_4; } + + //',' + public Keyword getCommaKeyword_0_4_0() { return cCommaKeyword_0_4_0; } + + //variables+=ALSVariableDeclaration + public Assignment getVariablesAssignment_0_4_1() { return cVariablesAssignment_0_4_1; } + + //ALSVariableDeclaration + public RuleCall getVariablesALSVariableDeclarationParserRuleCall_0_4_1_0() { return cVariablesALSVariableDeclarationParserRuleCall_0_4_1_0; } + + //'{' + public Keyword getLeftCurlyBracketKeyword_0_5() { return cLeftCurlyBracketKeyword_0_5; } + + //expression=ALSTerm + public Assignment getExpressionAssignment_0_6() { return cExpressionAssignment_0_6; } + + //ALSTerm + public RuleCall getExpressionALSTermParserRuleCall_0_6_0() { return cExpressionALSTermParserRuleCall_0_6_0; } + + //'}' + public Keyword getRightCurlyBracketKeyword_0_7() { return cRightCurlyBracketKeyword_0_7; } + + //ALSOr + public RuleCall getALSOrParserRuleCall_1() { return cALSOrParserRuleCall_1; } + } + + public class ALSOrElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSOr"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cALSIffParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cALSOrLeftOperandAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Alternatives cAlternatives_1_1 = (Alternatives)cGroup_1.eContents().get(1); + private final Keyword cVerticalLineVerticalLineKeyword_1_1_0 = (Keyword)cAlternatives_1_1.eContents().get(0); + private final Keyword cOrKeyword_1_1_1 = (Keyword)cAlternatives_1_1.eContents().get(1); + private final Assignment cRightOperandAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightOperandALSIffParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0); + + //ALSOr ALSTerm: + // ALSIff ({ALSOr.leftOperand=current} ("||" | "or") rightOperand=ALSIff)?; + @Override public ParserRule getRule() { return rule; } + + //ALSIff ({ALSOr.leftOperand=current} ("||" | "or") rightOperand=ALSIff)? + public Group getGroup() { return cGroup; } + + //ALSIff + public RuleCall getALSIffParserRuleCall_0() { return cALSIffParserRuleCall_0; } + + //({ALSOr.leftOperand=current} ("||" | "or") rightOperand=ALSIff)? + public Group getGroup_1() { return cGroup_1; } + + //{ALSOr.leftOperand=current} + public Action getALSOrLeftOperandAction_1_0() { return cALSOrLeftOperandAction_1_0; } + + //"||" | "or" + public Alternatives getAlternatives_1_1() { return cAlternatives_1_1; } + + //"||" + public Keyword getVerticalLineVerticalLineKeyword_1_1_0() { return cVerticalLineVerticalLineKeyword_1_1_0; } + + //"or" + public Keyword getOrKeyword_1_1_1() { return cOrKeyword_1_1_1; } + + //rightOperand=ALSIff + public Assignment getRightOperandAssignment_1_2() { return cRightOperandAssignment_1_2; } + + //ALSIff + public RuleCall getRightOperandALSIffParserRuleCall_1_2_0() { return cRightOperandALSIffParserRuleCall_1_2_0; } + } + + public class ALSIffElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSIff"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cALSImplParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cALSIffLeftOperandAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Alternatives cAlternatives_1_1 = (Alternatives)cGroup_1.eContents().get(1); + private final Keyword cLessThanSignEqualsSignGreaterThanSignKeyword_1_1_0 = (Keyword)cAlternatives_1_1.eContents().get(0); + private final Keyword cIffKeyword_1_1_1 = (Keyword)cAlternatives_1_1.eContents().get(1); + private final Assignment cRightOperandAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightOperandALSImplParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0); + + //ALSIff ALSTerm: + // ALSImpl ({ALSIff.leftOperand=current} ("<=>" | "iff") rightOperand=ALSImpl)?; + @Override public ParserRule getRule() { return rule; } + + //ALSImpl ({ALSIff.leftOperand=current} ("<=>" | "iff") rightOperand=ALSImpl)? + public Group getGroup() { return cGroup; } + + //ALSImpl + public RuleCall getALSImplParserRuleCall_0() { return cALSImplParserRuleCall_0; } + + //({ALSIff.leftOperand=current} ("<=>" | "iff") rightOperand=ALSImpl)? + public Group getGroup_1() { return cGroup_1; } + + //{ALSIff.leftOperand=current} + public Action getALSIffLeftOperandAction_1_0() { return cALSIffLeftOperandAction_1_0; } + + //"<=>" | "iff" + public Alternatives getAlternatives_1_1() { return cAlternatives_1_1; } + + //"<=>" + public Keyword getLessThanSignEqualsSignGreaterThanSignKeyword_1_1_0() { return cLessThanSignEqualsSignGreaterThanSignKeyword_1_1_0; } + + //"iff" + public Keyword getIffKeyword_1_1_1() { return cIffKeyword_1_1_1; } + + //rightOperand=ALSImpl + public Assignment getRightOperandAssignment_1_2() { return cRightOperandAssignment_1_2; } + + //ALSImpl + public RuleCall getRightOperandALSImplParserRuleCall_1_2_0() { return cRightOperandALSImplParserRuleCall_1_2_0; } + } + + public class ALSImplElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSImpl"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cALSAndParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cALSImplLeftOperandAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Alternatives cAlternatives_1_1 = (Alternatives)cGroup_1.eContents().get(1); + private final Keyword cEqualsSignGreaterThanSignKeyword_1_1_0 = (Keyword)cAlternatives_1_1.eContents().get(0); + private final Keyword cImpliesKeyword_1_1_1 = (Keyword)cAlternatives_1_1.eContents().get(1); + private final Assignment cRightOperandAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightOperandALSAndParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0); + private final Group cGroup_1_3 = (Group)cGroup_1.eContents().get(3); + private final Keyword cElseKeyword_1_3_0 = (Keyword)cGroup_1_3.eContents().get(0); + private final Assignment cElseOperandAssignment_1_3_1 = (Assignment)cGroup_1_3.eContents().get(1); + private final RuleCall cElseOperandALSAndParserRuleCall_1_3_1_0 = (RuleCall)cElseOperandAssignment_1_3_1.eContents().get(0); + + //ALSImpl ALSTerm: + // ALSAnd ({ALSImpl.leftOperand=current} ("=>" | "implies") rightOperand=ALSAnd ('else' elseOperand=ALSAnd)?)?; + @Override public ParserRule getRule() { return rule; } + + //ALSAnd ({ALSImpl.leftOperand=current} ("=>" | "implies") rightOperand=ALSAnd ('else' elseOperand=ALSAnd)?)? + public Group getGroup() { return cGroup; } + + //ALSAnd + public RuleCall getALSAndParserRuleCall_0() { return cALSAndParserRuleCall_0; } + + //({ALSImpl.leftOperand=current} ("=>" | "implies") rightOperand=ALSAnd ('else' elseOperand=ALSAnd)?)? + public Group getGroup_1() { return cGroup_1; } + + //{ALSImpl.leftOperand=current} + public Action getALSImplLeftOperandAction_1_0() { return cALSImplLeftOperandAction_1_0; } + + //"=>" | "implies" + public Alternatives getAlternatives_1_1() { return cAlternatives_1_1; } + + //"=>" + public Keyword getEqualsSignGreaterThanSignKeyword_1_1_0() { return cEqualsSignGreaterThanSignKeyword_1_1_0; } + + //"implies" + public Keyword getImpliesKeyword_1_1_1() { return cImpliesKeyword_1_1_1; } + + //rightOperand=ALSAnd + public Assignment getRightOperandAssignment_1_2() { return cRightOperandAssignment_1_2; } + + //ALSAnd + public RuleCall getRightOperandALSAndParserRuleCall_1_2_0() { return cRightOperandALSAndParserRuleCall_1_2_0; } + + //('else' elseOperand=ALSAnd)? + public Group getGroup_1_3() { return cGroup_1_3; } + + //'else' + public Keyword getElseKeyword_1_3_0() { return cElseKeyword_1_3_0; } + + //elseOperand=ALSAnd + public Assignment getElseOperandAssignment_1_3_1() { return cElseOperandAssignment_1_3_1; } + + //ALSAnd + public RuleCall getElseOperandALSAndParserRuleCall_1_3_1_0() { return cElseOperandALSAndParserRuleCall_1_3_1_0; } + } + + public class ALSAndElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSAnd"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cALSComparisonParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cALSAndLeftOperandAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Alternatives cAlternatives_1_1 = (Alternatives)cGroup_1.eContents().get(1); + private final Keyword cAmpersandAmpersandKeyword_1_1_0 = (Keyword)cAlternatives_1_1.eContents().get(0); + private final Keyword cAndKeyword_1_1_1 = (Keyword)cAlternatives_1_1.eContents().get(1); + private final Assignment cRightOperandAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightOperandALSComparisonParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0); + + //ALSAnd ALSTerm: + // ALSComparison ({ALSAnd.leftOperand=current} ("&&" | "and") rightOperand=ALSComparison)?; + @Override public ParserRule getRule() { return rule; } + + //ALSComparison ({ALSAnd.leftOperand=current} ("&&" | "and") rightOperand=ALSComparison)? + public Group getGroup() { return cGroup; } + + //ALSComparison + public RuleCall getALSComparisonParserRuleCall_0() { return cALSComparisonParserRuleCall_0; } + + //({ALSAnd.leftOperand=current} ("&&" | "and") rightOperand=ALSComparison)? + public Group getGroup_1() { return cGroup_1; } + + //{ALSAnd.leftOperand=current} + public Action getALSAndLeftOperandAction_1_0() { return cALSAndLeftOperandAction_1_0; } + + //"&&" | "and" + public Alternatives getAlternatives_1_1() { return cAlternatives_1_1; } + + //"&&" + public Keyword getAmpersandAmpersandKeyword_1_1_0() { return cAmpersandAmpersandKeyword_1_1_0; } + + //"and" + public Keyword getAndKeyword_1_1_1() { return cAndKeyword_1_1_1; } + + //rightOperand=ALSComparison + public Assignment getRightOperandAssignment_1_2() { return cRightOperandAssignment_1_2; } + + //ALSComparison + public RuleCall getRightOperandALSComparisonParserRuleCall_1_2_0() { return cRightOperandALSComparisonParserRuleCall_1_2_0; } + } + + public class ALSComparisonElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSComparison"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cALSOverrideParserRuleCall_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 cALSEqualsLeftOperandAction_1_0_0_0 = (Action)cGroup_1_0_0.eContents().get(0); + private final Keyword cEqualsSignKeyword_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 cALSNotEqualsLeftOperandAction_1_0_1_0 = (Action)cGroup_1_0_1.eContents().get(0); + private final Keyword cExclamationMarkEqualsSignKeyword_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 cALSSubsetLeftOperandAction_1_0_2_0 = (Action)cGroup_1_0_2.eContents().get(0); + private final Keyword cInKeyword_1_0_2_1 = (Keyword)cGroup_1_0_2.eContents().get(1); + private final Group cGroup_1_0_3 = (Group)cAlternatives_1_0.eContents().get(3); + private final Action cALSLessLeftOperandAction_1_0_3_0 = (Action)cGroup_1_0_3.eContents().get(0); + private final Keyword cGreaterThanSignKeyword_1_0_3_1 = (Keyword)cGroup_1_0_3.eContents().get(1); + private final Group cGroup_1_0_4 = (Group)cAlternatives_1_0.eContents().get(4); + private final Action cALSLeqLeftOperandAction_1_0_4_0 = (Action)cGroup_1_0_4.eContents().get(0); + private final Keyword cGreaterThanSignEqualsSignKeyword_1_0_4_1 = (Keyword)cGroup_1_0_4.eContents().get(1); + private final Group cGroup_1_0_5 = (Group)cAlternatives_1_0.eContents().get(5); + private final Action cALSMoreLeftOperandAction_1_0_5_0 = (Action)cGroup_1_0_5.eContents().get(0); + private final Keyword cLessThanSignKeyword_1_0_5_1 = (Keyword)cGroup_1_0_5.eContents().get(1); + private final Group cGroup_1_0_6 = (Group)cAlternatives_1_0.eContents().get(6); + private final Action cALSMeqLeftOperandAction_1_0_6_0 = (Action)cGroup_1_0_6.eContents().get(0); + private final Keyword cLessThanSignEqualsSignKeyword_1_0_6_1 = (Keyword)cGroup_1_0_6.eContents().get(1); + private final Assignment cRightOperandAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cRightOperandALSOverrideParserRuleCall_1_1_0 = (RuleCall)cRightOperandAssignment_1_1.eContents().get(0); + + //ALSComparison ALSTerm: + // ALSOverride (({ALSEquals.leftOperand=current} "=" | {ALSNotEquals.leftOperand=current} "!=" | + // {ALSSubset.leftOperand=current} "in" | {ALSLess.leftOperand=current} ">" | {ALSLeq.leftOperand=current} ">=" | + // {ALSMore.leftOperand=current} "<" | {ALSMeq.leftOperand=current} "<=") rightOperand=ALSOverride)?; + @Override public ParserRule getRule() { return rule; } + + //ALSOverride (({ALSEquals.leftOperand=current} "=" | {ALSNotEquals.leftOperand=current} "!=" | + //{ALSSubset.leftOperand=current} "in" | {ALSLess.leftOperand=current} ">" | {ALSLeq.leftOperand=current} ">=" | + //{ALSMore.leftOperand=current} "<" | {ALSMeq.leftOperand=current} "<=") rightOperand=ALSOverride)? + public Group getGroup() { return cGroup; } + + //ALSOverride + public RuleCall getALSOverrideParserRuleCall_0() { return cALSOverrideParserRuleCall_0; } + + //(({ALSEquals.leftOperand=current} "=" | {ALSNotEquals.leftOperand=current} "!=" | {ALSSubset.leftOperand=current} "in" | + //{ALSLess.leftOperand=current} ">" | {ALSLeq.leftOperand=current} ">=" | {ALSMore.leftOperand=current} "<" | + //{ALSMeq.leftOperand=current} "<=") rightOperand=ALSOverride)? + public Group getGroup_1() { return cGroup_1; } + + //{ALSEquals.leftOperand=current} "=" | {ALSNotEquals.leftOperand=current} "!=" | {ALSSubset.leftOperand=current} "in" | + //{ALSLess.leftOperand=current} ">" | {ALSLeq.leftOperand=current} ">=" | {ALSMore.leftOperand=current} "<" | + //{ALSMeq.leftOperand=current} "<=" + public Alternatives getAlternatives_1_0() { return cAlternatives_1_0; } + + //{ALSEquals.leftOperand=current} "=" + public Group getGroup_1_0_0() { return cGroup_1_0_0; } + + //{ALSEquals.leftOperand=current} + public Action getALSEqualsLeftOperandAction_1_0_0_0() { return cALSEqualsLeftOperandAction_1_0_0_0; } + + //"=" + public Keyword getEqualsSignKeyword_1_0_0_1() { return cEqualsSignKeyword_1_0_0_1; } + + //{ALSNotEquals.leftOperand=current} "!=" + public Group getGroup_1_0_1() { return cGroup_1_0_1; } + + //{ALSNotEquals.leftOperand=current} + public Action getALSNotEqualsLeftOperandAction_1_0_1_0() { return cALSNotEqualsLeftOperandAction_1_0_1_0; } + + //"!=" + public Keyword getExclamationMarkEqualsSignKeyword_1_0_1_1() { return cExclamationMarkEqualsSignKeyword_1_0_1_1; } + + //{ALSSubset.leftOperand=current} "in" + public Group getGroup_1_0_2() { return cGroup_1_0_2; } + + //{ALSSubset.leftOperand=current} + public Action getALSSubsetLeftOperandAction_1_0_2_0() { return cALSSubsetLeftOperandAction_1_0_2_0; } + + //"in" + public Keyword getInKeyword_1_0_2_1() { return cInKeyword_1_0_2_1; } + + //{ALSLess.leftOperand=current} ">" + public Group getGroup_1_0_3() { return cGroup_1_0_3; } + + //{ALSLess.leftOperand=current} + public Action getALSLessLeftOperandAction_1_0_3_0() { return cALSLessLeftOperandAction_1_0_3_0; } + + //">" + public Keyword getGreaterThanSignKeyword_1_0_3_1() { return cGreaterThanSignKeyword_1_0_3_1; } + + //{ALSLeq.leftOperand=current} ">=" + public Group getGroup_1_0_4() { return cGroup_1_0_4; } + + //{ALSLeq.leftOperand=current} + public Action getALSLeqLeftOperandAction_1_0_4_0() { return cALSLeqLeftOperandAction_1_0_4_0; } + + //">=" + public Keyword getGreaterThanSignEqualsSignKeyword_1_0_4_1() { return cGreaterThanSignEqualsSignKeyword_1_0_4_1; } + + //{ALSMore.leftOperand=current} "<" + public Group getGroup_1_0_5() { return cGroup_1_0_5; } + + //{ALSMore.leftOperand=current} + public Action getALSMoreLeftOperandAction_1_0_5_0() { return cALSMoreLeftOperandAction_1_0_5_0; } + + //"<" + public Keyword getLessThanSignKeyword_1_0_5_1() { return cLessThanSignKeyword_1_0_5_1; } + + //{ALSMeq.leftOperand=current} "<=" + public Group getGroup_1_0_6() { return cGroup_1_0_6; } + + //{ALSMeq.leftOperand=current} + public Action getALSMeqLeftOperandAction_1_0_6_0() { return cALSMeqLeftOperandAction_1_0_6_0; } + + //"<=" + public Keyword getLessThanSignEqualsSignKeyword_1_0_6_1() { return cLessThanSignEqualsSignKeyword_1_0_6_1; } + + //rightOperand=ALSOverride + public Assignment getRightOperandAssignment_1_1() { return cRightOperandAssignment_1_1; } + + //ALSOverride + public RuleCall getRightOperandALSOverrideParserRuleCall_1_1_0() { return cRightOperandALSOverrideParserRuleCall_1_1_0; } + } + + public class ALSOverrideElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSOverride"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cALSRangeRestrictionRightParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cALSOverrideLeftOperandAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cPlusSignPlusSignKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightOperandAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightOperandALSRangeRestrictionRightParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0); + + //ALSOverride ALSTerm: + // ALSRangeRestrictionRight ({ALSOverride.leftOperand=current} '++' rightOperand=ALSRangeRestrictionRight)?; + @Override public ParserRule getRule() { return rule; } + + //ALSRangeRestrictionRight ({ALSOverride.leftOperand=current} '++' rightOperand=ALSRangeRestrictionRight)? + public Group getGroup() { return cGroup; } + + //ALSRangeRestrictionRight + public RuleCall getALSRangeRestrictionRightParserRuleCall_0() { return cALSRangeRestrictionRightParserRuleCall_0; } + + //({ALSOverride.leftOperand=current} '++' rightOperand=ALSRangeRestrictionRight)? + public Group getGroup_1() { return cGroup_1; } + + //{ALSOverride.leftOperand=current} + public Action getALSOverrideLeftOperandAction_1_0() { return cALSOverrideLeftOperandAction_1_0; } + + //'++' + public Keyword getPlusSignPlusSignKeyword_1_1() { return cPlusSignPlusSignKeyword_1_1; } + + //rightOperand=ALSRangeRestrictionRight + public Assignment getRightOperandAssignment_1_2() { return cRightOperandAssignment_1_2; } + + //ALSRangeRestrictionRight + public RuleCall getRightOperandALSRangeRestrictionRightParserRuleCall_1_2_0() { return cRightOperandALSRangeRestrictionRightParserRuleCall_1_2_0; } + } + + public class ALSRangeRestrictionRightElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSRangeRestrictionRight"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cALSRangeRestrictionLeftParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cALSRangeRestrictionRightRelationAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cColonGreaterThanSignKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cFilterAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cFilterALSRangeRestrictionLeftParserRuleCall_1_2_0 = (RuleCall)cFilterAssignment_1_2.eContents().get(0); + + //ALSRangeRestrictionRight ALSTerm: + // ALSRangeRestrictionLeft ({ALSRangeRestrictionRight.relation=current} ':>' filter=ALSRangeRestrictionLeft)?; + @Override public ParserRule getRule() { return rule; } + + //ALSRangeRestrictionLeft ({ALSRangeRestrictionRight.relation=current} ':>' filter=ALSRangeRestrictionLeft)? + public Group getGroup() { return cGroup; } + + //ALSRangeRestrictionLeft + public RuleCall getALSRangeRestrictionLeftParserRuleCall_0() { return cALSRangeRestrictionLeftParserRuleCall_0; } + + //({ALSRangeRestrictionRight.relation=current} ':>' filter=ALSRangeRestrictionLeft)? + public Group getGroup_1() { return cGroup_1; } + + //{ALSRangeRestrictionRight.relation=current} + public Action getALSRangeRestrictionRightRelationAction_1_0() { return cALSRangeRestrictionRightRelationAction_1_0; } + + //':>' + public Keyword getColonGreaterThanSignKeyword_1_1() { return cColonGreaterThanSignKeyword_1_1; } + + //filter=ALSRangeRestrictionLeft + public Assignment getFilterAssignment_1_2() { return cFilterAssignment_1_2; } + + //ALSRangeRestrictionLeft + public RuleCall getFilterALSRangeRestrictionLeftParserRuleCall_1_2_0() { return cFilterALSRangeRestrictionLeftParserRuleCall_1_2_0; } + } + + public class ALSRangeRestrictionLeftElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSRangeRestrictionLeft"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cALSJoinParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cALSRangeRestrictionLeftFilterAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cLessThanSignColonKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRelationAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRelationALSJoinParserRuleCall_1_2_0 = (RuleCall)cRelationAssignment_1_2.eContents().get(0); + + //ALSRangeRestrictionLeft ALSTerm: + // ALSJoin ({ALSRangeRestrictionLeft.filter=current} '<:' relation=ALSJoin)?; + @Override public ParserRule getRule() { return rule; } + + //ALSJoin ({ALSRangeRestrictionLeft.filter=current} '<:' relation=ALSJoin)? + public Group getGroup() { return cGroup; } + + //ALSJoin + public RuleCall getALSJoinParserRuleCall_0() { return cALSJoinParserRuleCall_0; } + + //({ALSRangeRestrictionLeft.filter=current} '<:' relation=ALSJoin)? + public Group getGroup_1() { return cGroup_1; } + + //{ALSRangeRestrictionLeft.filter=current} + public Action getALSRangeRestrictionLeftFilterAction_1_0() { return cALSRangeRestrictionLeftFilterAction_1_0; } + + //'<:' + public Keyword getLessThanSignColonKeyword_1_1() { return cLessThanSignColonKeyword_1_1; } + + //relation=ALSJoin + public Assignment getRelationAssignment_1_2() { return cRelationAssignment_1_2; } + + //ALSJoin + public RuleCall getRelationALSJoinParserRuleCall_1_2_0() { return cRelationALSJoinParserRuleCall_1_2_0; } + } + + public class ALSJoinElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSJoin"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cALSMinusParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cALSJoinLeftOperandAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cFullStopKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightOperandAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightOperandALSMinusParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0); + + //ALSJoin ALSTerm: + // ALSMinus ({ALSJoin.leftOperand=current} '.' rightOperand=ALSMinus)*; + @Override public ParserRule getRule() { return rule; } + + //ALSMinus ({ALSJoin.leftOperand=current} '.' rightOperand=ALSMinus)* + public Group getGroup() { return cGroup; } + + //ALSMinus + public RuleCall getALSMinusParserRuleCall_0() { return cALSMinusParserRuleCall_0; } + + //({ALSJoin.leftOperand=current} '.' rightOperand=ALSMinus)* + public Group getGroup_1() { return cGroup_1; } + + //{ALSJoin.leftOperand=current} + public Action getALSJoinLeftOperandAction_1_0() { return cALSJoinLeftOperandAction_1_0; } + + //'.' + public Keyword getFullStopKeyword_1_1() { return cFullStopKeyword_1_1; } + + //rightOperand=ALSMinus + public Assignment getRightOperandAssignment_1_2() { return cRightOperandAssignment_1_2; } + + //ALSMinus + public RuleCall getRightOperandALSMinusParserRuleCall_1_2_0() { return cRightOperandALSMinusParserRuleCall_1_2_0; } + } + + public class ALSMinusElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSMinus"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cALSPlusParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cALSMinusLeftOperandAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cHyphenMinusKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightOperandAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightOperandALSPlusParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0); + + //ALSMinus ALSTerm: + // ALSPlus ({ALSMinus.leftOperand=current} '-' rightOperand=ALSPlus)*; + @Override public ParserRule getRule() { return rule; } + + //ALSPlus ({ALSMinus.leftOperand=current} '-' rightOperand=ALSPlus)* + public Group getGroup() { return cGroup; } + + //ALSPlus + public RuleCall getALSPlusParserRuleCall_0() { return cALSPlusParserRuleCall_0; } + + //({ALSMinus.leftOperand=current} '-' rightOperand=ALSPlus)* + public Group getGroup_1() { return cGroup_1; } + + //{ALSMinus.leftOperand=current} + public Action getALSMinusLeftOperandAction_1_0() { return cALSMinusLeftOperandAction_1_0; } + + //'-' + public Keyword getHyphenMinusKeyword_1_1() { return cHyphenMinusKeyword_1_1; } + + //rightOperand=ALSPlus + public Assignment getRightOperandAssignment_1_2() { return cRightOperandAssignment_1_2; } + + //ALSPlus + public RuleCall getRightOperandALSPlusParserRuleCall_1_2_0() { return cRightOperandALSPlusParserRuleCall_1_2_0; } + } + + public class ALSPlusElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSPlus"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cALSIntersectionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cALSPlusLeftOperandAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cPlusSignKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightOperandAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightOperandALSIntersectionParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0); + + //ALSPlus ALSTerm: + // ALSIntersection ({ALSPlus.leftOperand=current} '+' rightOperand=ALSIntersection)*; + @Override public ParserRule getRule() { return rule; } + + //ALSIntersection ({ALSPlus.leftOperand=current} '+' rightOperand=ALSIntersection)* + public Group getGroup() { return cGroup; } + + //ALSIntersection + public RuleCall getALSIntersectionParserRuleCall_0() { return cALSIntersectionParserRuleCall_0; } + + //({ALSPlus.leftOperand=current} '+' rightOperand=ALSIntersection)* + public Group getGroup_1() { return cGroup_1; } + + //{ALSPlus.leftOperand=current} + public Action getALSPlusLeftOperandAction_1_0() { return cALSPlusLeftOperandAction_1_0; } + + //'+' + public Keyword getPlusSignKeyword_1_1() { return cPlusSignKeyword_1_1; } + + //rightOperand=ALSIntersection + public Assignment getRightOperandAssignment_1_2() { return cRightOperandAssignment_1_2; } + + //ALSIntersection + public RuleCall getRightOperandALSIntersectionParserRuleCall_1_2_0() { return cRightOperandALSIntersectionParserRuleCall_1_2_0; } + } + + public class ALSIntersectionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSIntersection"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cALSDirectProductParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cALSIntersectionLeftOperandAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cAmpersandKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cRightOperandAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightOperandALSDirectProductParserRuleCall_1_2_0 = (RuleCall)cRightOperandAssignment_1_2.eContents().get(0); + + //ALSIntersection ALSTerm: + // ALSDirectProduct ({ALSIntersection.leftOperand=current} '&' rightOperand=ALSDirectProduct)*; + @Override public ParserRule getRule() { return rule; } + + //ALSDirectProduct ({ALSIntersection.leftOperand=current} '&' rightOperand=ALSDirectProduct)* + public Group getGroup() { return cGroup; } + + //ALSDirectProduct + public RuleCall getALSDirectProductParserRuleCall_0() { return cALSDirectProductParserRuleCall_0; } + + //({ALSIntersection.leftOperand=current} '&' rightOperand=ALSDirectProduct)* + public Group getGroup_1() { return cGroup_1; } + + //{ALSIntersection.leftOperand=current} + public Action getALSIntersectionLeftOperandAction_1_0() { return cALSIntersectionLeftOperandAction_1_0; } + + //'&' + public Keyword getAmpersandKeyword_1_1() { return cAmpersandKeyword_1_1; } + + //rightOperand=ALSDirectProduct + public Assignment getRightOperandAssignment_1_2() { return cRightOperandAssignment_1_2; } + + //ALSDirectProduct + public RuleCall getRightOperandALSDirectProductParserRuleCall_1_2_0() { return cRightOperandALSDirectProductParserRuleCall_1_2_0; } + } + + public class ALSDirectProductElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSDirectProduct"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cALSPreficedParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cALSDirectProductLeftOperandAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Assignment cLeftMultiplicitAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cLeftMultiplicitALSMultiplicityEnumRuleCall_1_1_0 = (RuleCall)cLeftMultiplicitAssignment_1_1.eContents().get(0); + private final Keyword cHyphenMinusGreaterThanSignKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2); + private final Assignment cRightMultiplicitAssignment_1_3 = (Assignment)cGroup_1.eContents().get(3); + private final RuleCall cRightMultiplicitALSMultiplicityEnumRuleCall_1_3_0 = (RuleCall)cRightMultiplicitAssignment_1_3.eContents().get(0); + private final Assignment cRightOperandAssignment_1_4 = (Assignment)cGroup_1.eContents().get(4); + private final RuleCall cRightOperandALSPreficedParserRuleCall_1_4_0 = (RuleCall)cRightOperandAssignment_1_4.eContents().get(0); + + ////ALSMultiply returns ALSTerm: ALSDirectProduct ({ALSMultiply.leftOperand = current} '*' rightOperand = ALSDirectProduct)*; + //ALSDirectProduct ALSTerm: + // ALSPreficed ({ALSDirectProduct.leftOperand=current} leftMultiplicit=ALSMultiplicity? + // '->' + // rightMultiplicit=ALSMultiplicity? + // rightOperand=ALSPreficed)?; + @Override public ParserRule getRule() { return rule; } + + //ALSPreficed ({ALSDirectProduct.leftOperand=current} leftMultiplicit=ALSMultiplicity? '->' + //rightMultiplicit=ALSMultiplicity? rightOperand=ALSPreficed)? + public Group getGroup() { return cGroup; } + + //ALSPreficed + public RuleCall getALSPreficedParserRuleCall_0() { return cALSPreficedParserRuleCall_0; } + + //({ALSDirectProduct.leftOperand=current} leftMultiplicit=ALSMultiplicity? '->' rightMultiplicit=ALSMultiplicity? + //rightOperand=ALSPreficed)? + public Group getGroup_1() { return cGroup_1; } + + //{ALSDirectProduct.leftOperand=current} + public Action getALSDirectProductLeftOperandAction_1_0() { return cALSDirectProductLeftOperandAction_1_0; } + + //leftMultiplicit=ALSMultiplicity? + public Assignment getLeftMultiplicitAssignment_1_1() { return cLeftMultiplicitAssignment_1_1; } + + //ALSMultiplicity + public RuleCall getLeftMultiplicitALSMultiplicityEnumRuleCall_1_1_0() { return cLeftMultiplicitALSMultiplicityEnumRuleCall_1_1_0; } + + //'->' + public Keyword getHyphenMinusGreaterThanSignKeyword_1_2() { return cHyphenMinusGreaterThanSignKeyword_1_2; } + + //rightMultiplicit=ALSMultiplicity? + public Assignment getRightMultiplicitAssignment_1_3() { return cRightMultiplicitAssignment_1_3; } + + //ALSMultiplicity + public RuleCall getRightMultiplicitALSMultiplicityEnumRuleCall_1_3_0() { return cRightMultiplicitALSMultiplicityEnumRuleCall_1_3_0; } + + //rightOperand=ALSPreficed + public Assignment getRightOperandAssignment_1_4() { return cRightOperandAssignment_1_4; } + + //ALSPreficed + public RuleCall getRightOperandALSPreficedParserRuleCall_1_4_0() { return cRightOperandALSPreficedParserRuleCall_1_4_0; } + } + + public class ALSPreficedElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSPreficed"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Action cALSNotAction_0_0 = (Action)cGroup_0.eContents().get(0); + private final Group cGroup_0_1 = (Group)cGroup_0.eContents().get(1); + private final Alternatives cAlternatives_0_1_0 = (Alternatives)cGroup_0_1.eContents().get(0); + private final Keyword cExclamationMarkKeyword_0_1_0_0 = (Keyword)cAlternatives_0_1_0.eContents().get(0); + private final Keyword cNotKeyword_0_1_0_1 = (Keyword)cAlternatives_0_1_0.eContents().get(1); + private final Assignment cOperandAssignment_0_2 = (Assignment)cGroup_0.eContents().get(2); + private final RuleCall cOperandALSBasicRelationTermParserRuleCall_0_2_0 = (RuleCall)cOperandAssignment_0_2.eContents().get(0); + private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); + private final Action cALSInverseRelationAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cTildeKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Assignment cOperandAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cOperandALSBasicRelationTermParserRuleCall_1_2_0 = (RuleCall)cOperandAssignment_1_2.eContents().get(0); + private final Group cGroup_2 = (Group)cAlternatives.eContents().get(2); + private final Action cAlSTransitiveClosureAction_2_0 = (Action)cGroup_2.eContents().get(0); + private final Keyword cCircumflexAccentKeyword_2_1 = (Keyword)cGroup_2.eContents().get(1); + private final Assignment cOperandAssignment_2_2 = (Assignment)cGroup_2.eContents().get(2); + private final RuleCall cOperandALSBasicRelationTermParserRuleCall_2_2_0 = (RuleCall)cOperandAssignment_2_2.eContents().get(0); + private final Group cGroup_3 = (Group)cAlternatives.eContents().get(3); + private final Action cALSReflectiveTransitiveClosureAction_3_0 = (Action)cGroup_3.eContents().get(0); + private final Keyword cAsteriskKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1); + private final Assignment cOperandAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2); + private final RuleCall cOperandALSBasicRelationTermParserRuleCall_3_2_0 = (RuleCall)cOperandAssignment_3_2.eContents().get(0); + private final Group cGroup_4 = (Group)cAlternatives.eContents().get(4); + private final Action cALSCardinalityAction_4_0 = (Action)cGroup_4.eContents().get(0); + private final Keyword cNumberSignKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1); + private final Assignment cOperandAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2); + private final RuleCall cOperandALSBasicRelationTermParserRuleCall_4_2_0 = (RuleCall)cOperandAssignment_4_2.eContents().get(0); + private final Group cGroup_5 = (Group)cAlternatives.eContents().get(5); + private final Action cALSUnaryMinusAction_5_0 = (Action)cGroup_5.eContents().get(0); + private final Keyword cHyphenMinusKeyword_5_1 = (Keyword)cGroup_5.eContents().get(1); + private final Assignment cOperandAssignment_5_2 = (Assignment)cGroup_5.eContents().get(2); + private final RuleCall cOperandALSBasicRelationTermParserRuleCall_5_2_0 = (RuleCall)cOperandAssignment_5_2.eContents().get(0); + private final Group cGroup_6 = (Group)cAlternatives.eContents().get(6); + private final Action cALSSumAction_6_0 = (Action)cGroup_6.eContents().get(0); + private final Keyword cSumKeyword_6_1 = (Keyword)cGroup_6.eContents().get(1); + private final Assignment cVariablesAssignment_6_2 = (Assignment)cGroup_6.eContents().get(2); + private final RuleCall cVariablesALSVariableDeclarationParserRuleCall_6_2_0 = (RuleCall)cVariablesAssignment_6_2.eContents().get(0); + private final Group cGroup_6_3 = (Group)cGroup_6.eContents().get(3); + private final Keyword cCommaKeyword_6_3_0 = (Keyword)cGroup_6_3.eContents().get(0); + private final Assignment cVariablesAssignment_6_3_1 = (Assignment)cGroup_6_3.eContents().get(1); + private final RuleCall cVariablesALSVariableDeclarationParserRuleCall_6_3_1_0 = (RuleCall)cVariablesAssignment_6_3_1.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_6_4 = (Keyword)cGroup_6.eContents().get(4); + private final Assignment cExpressionAssignment_6_5 = (Assignment)cGroup_6.eContents().get(5); + private final RuleCall cExpressionALSTermParserRuleCall_6_5_0 = (RuleCall)cExpressionAssignment_6_5.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_6_6 = (Keyword)cGroup_6.eContents().get(6); + private final Group cGroup_7 = (Group)cAlternatives.eContents().get(7); + private final Action cALSFunctionCallAction_7_0 = (Action)cGroup_7.eContents().get(0); + private final Alternatives cAlternatives_7_1 = (Alternatives)cGroup_7.eContents().get(1); + private final Assignment cReferredDefinitionAssignment_7_1_0 = (Assignment)cAlternatives_7_1.eContents().get(0); + private final CrossReference cReferredDefinitionALSDefinitionCrossReference_7_1_0_0 = (CrossReference)cReferredDefinitionAssignment_7_1_0.eContents().get(0); + private final RuleCall cReferredDefinitionALSDefinitionIDTerminalRuleCall_7_1_0_0_1 = (RuleCall)cReferredDefinitionALSDefinitionCrossReference_7_1_0_0.eContents().get(1); + private final Assignment cReferredNumericOperatorAssignment_7_1_1 = (Assignment)cAlternatives_7_1.eContents().get(1); + private final RuleCall cReferredNumericOperatorALSNumericOperatorEnumRuleCall_7_1_1_0 = (RuleCall)cReferredNumericOperatorAssignment_7_1_1.eContents().get(0); + private final Keyword cLeftSquareBracketKeyword_7_2 = (Keyword)cGroup_7.eContents().get(2); + private final Assignment cParamsAssignment_7_3 = (Assignment)cGroup_7.eContents().get(3); + private final RuleCall cParamsALSTermParserRuleCall_7_3_0 = (RuleCall)cParamsAssignment_7_3.eContents().get(0); + private final Group cGroup_7_4 = (Group)cGroup_7.eContents().get(4); + private final Keyword cCommaKeyword_7_4_0 = (Keyword)cGroup_7_4.eContents().get(0); + private final Assignment cParamsAssignment_7_4_1 = (Assignment)cGroup_7_4.eContents().get(1); + private final RuleCall cParamsALSTermParserRuleCall_7_4_1_0 = (RuleCall)cParamsAssignment_7_4_1.eContents().get(0); + private final Keyword cRightSquareBracketKeyword_7_5 = (Keyword)cGroup_7.eContents().get(5); + private final RuleCall cALSBasicRelationTermParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8); + + //ALSPreficed ALSTerm: + // {ALSNot} => ("!" | 'not') operand=ALSBasicRelationTerm | {ALSInverseRelation} => "~" operand=ALSBasicRelationTerm | + // {AlSTransitiveClosure} "^" operand=ALSBasicRelationTerm | {ALSReflectiveTransitiveClosure} "*" + // operand=ALSBasicRelationTerm | {ALSCardinality} '#' operand=ALSBasicRelationTerm | {ALSUnaryMinus} => '-' + // operand=ALSBasicRelationTerm | {ALSSum} 'sum' variables+=ALSVariableDeclaration (',' + // variables+=ALSVariableDeclaration)* '{' expression=ALSTerm '}' | {ALSFunctionCall} + // (referredDefinition=[ALSDefinition] | referredNumericOperator=ALSNumericOperator) '[' params+=ALSTerm (',' + // params+=ALSTerm)* ']' | ALSBasicRelationTerm; + @Override public ParserRule getRule() { return rule; } + + //{ALSNot} => ("!" | 'not') operand=ALSBasicRelationTerm | {ALSInverseRelation} => "~" operand=ALSBasicRelationTerm | + //{AlSTransitiveClosure} "^" operand=ALSBasicRelationTerm | {ALSReflectiveTransitiveClosure} "*" + //operand=ALSBasicRelationTerm | {ALSCardinality} '#' operand=ALSBasicRelationTerm | {ALSUnaryMinus} => '-' + //operand=ALSBasicRelationTerm | {ALSSum} 'sum' variables+=ALSVariableDeclaration (',' + //variables+=ALSVariableDeclaration)* '{' expression=ALSTerm '}' | {ALSFunctionCall} (referredDefinition=[ALSDefinition] + //| referredNumericOperator=ALSNumericOperator) '[' params+=ALSTerm (',' params+=ALSTerm)* ']' | ALSBasicRelationTerm + public Alternatives getAlternatives() { return cAlternatives; } + + //{ALSNot} => ("!" | 'not') operand=ALSBasicRelationTerm + public Group getGroup_0() { return cGroup_0; } + + //{ALSNot} + public Action getALSNotAction_0_0() { return cALSNotAction_0_0; } + + //=> ("!" | 'not') + public Group getGroup_0_1() { return cGroup_0_1; } + + //"!" | 'not' + public Alternatives getAlternatives_0_1_0() { return cAlternatives_0_1_0; } + + //"!" + public Keyword getExclamationMarkKeyword_0_1_0_0() { return cExclamationMarkKeyword_0_1_0_0; } + + //'not' + public Keyword getNotKeyword_0_1_0_1() { return cNotKeyword_0_1_0_1; } + + //operand=ALSBasicRelationTerm + public Assignment getOperandAssignment_0_2() { return cOperandAssignment_0_2; } + + //ALSBasicRelationTerm + public RuleCall getOperandALSBasicRelationTermParserRuleCall_0_2_0() { return cOperandALSBasicRelationTermParserRuleCall_0_2_0; } + + //{ALSInverseRelation} => "~" operand=ALSBasicRelationTerm + public Group getGroup_1() { return cGroup_1; } + + //{ALSInverseRelation} + public Action getALSInverseRelationAction_1_0() { return cALSInverseRelationAction_1_0; } + + //=> "~" + public Keyword getTildeKeyword_1_1() { return cTildeKeyword_1_1; } + + //operand=ALSBasicRelationTerm + public Assignment getOperandAssignment_1_2() { return cOperandAssignment_1_2; } + + //ALSBasicRelationTerm + public RuleCall getOperandALSBasicRelationTermParserRuleCall_1_2_0() { return cOperandALSBasicRelationTermParserRuleCall_1_2_0; } + + //{AlSTransitiveClosure} "^" operand=ALSBasicRelationTerm + public Group getGroup_2() { return cGroup_2; } + + //{AlSTransitiveClosure} + public Action getAlSTransitiveClosureAction_2_0() { return cAlSTransitiveClosureAction_2_0; } + + //"^" + public Keyword getCircumflexAccentKeyword_2_1() { return cCircumflexAccentKeyword_2_1; } + + //operand=ALSBasicRelationTerm + public Assignment getOperandAssignment_2_2() { return cOperandAssignment_2_2; } + + //ALSBasicRelationTerm + public RuleCall getOperandALSBasicRelationTermParserRuleCall_2_2_0() { return cOperandALSBasicRelationTermParserRuleCall_2_2_0; } + + //{ALSReflectiveTransitiveClosure} "*" operand=ALSBasicRelationTerm + public Group getGroup_3() { return cGroup_3; } + + //{ALSReflectiveTransitiveClosure} + public Action getALSReflectiveTransitiveClosureAction_3_0() { return cALSReflectiveTransitiveClosureAction_3_0; } + + //"*" + public Keyword getAsteriskKeyword_3_1() { return cAsteriskKeyword_3_1; } + + //operand=ALSBasicRelationTerm + public Assignment getOperandAssignment_3_2() { return cOperandAssignment_3_2; } + + //ALSBasicRelationTerm + public RuleCall getOperandALSBasicRelationTermParserRuleCall_3_2_0() { return cOperandALSBasicRelationTermParserRuleCall_3_2_0; } + + //{ALSCardinality} '#' operand=ALSBasicRelationTerm + public Group getGroup_4() { return cGroup_4; } + + //{ALSCardinality} + public Action getALSCardinalityAction_4_0() { return cALSCardinalityAction_4_0; } + + //'#' + public Keyword getNumberSignKeyword_4_1() { return cNumberSignKeyword_4_1; } + + //operand=ALSBasicRelationTerm + public Assignment getOperandAssignment_4_2() { return cOperandAssignment_4_2; } + + //ALSBasicRelationTerm + public RuleCall getOperandALSBasicRelationTermParserRuleCall_4_2_0() { return cOperandALSBasicRelationTermParserRuleCall_4_2_0; } + + //{ALSUnaryMinus} => '-' operand=ALSBasicRelationTerm + public Group getGroup_5() { return cGroup_5; } + + //{ALSUnaryMinus} + public Action getALSUnaryMinusAction_5_0() { return cALSUnaryMinusAction_5_0; } + + //=> '-' + public Keyword getHyphenMinusKeyword_5_1() { return cHyphenMinusKeyword_5_1; } + + //operand=ALSBasicRelationTerm + public Assignment getOperandAssignment_5_2() { return cOperandAssignment_5_2; } + + //ALSBasicRelationTerm + public RuleCall getOperandALSBasicRelationTermParserRuleCall_5_2_0() { return cOperandALSBasicRelationTermParserRuleCall_5_2_0; } + + //{ALSSum} 'sum' variables+=ALSVariableDeclaration (',' variables+=ALSVariableDeclaration)* '{' expression=ALSTerm '}' + public Group getGroup_6() { return cGroup_6; } + + //{ALSSum} + public Action getALSSumAction_6_0() { return cALSSumAction_6_0; } + + //'sum' + public Keyword getSumKeyword_6_1() { return cSumKeyword_6_1; } + + //variables+=ALSVariableDeclaration + public Assignment getVariablesAssignment_6_2() { return cVariablesAssignment_6_2; } + + //ALSVariableDeclaration + public RuleCall getVariablesALSVariableDeclarationParserRuleCall_6_2_0() { return cVariablesALSVariableDeclarationParserRuleCall_6_2_0; } + + //(',' variables+=ALSVariableDeclaration)* + public Group getGroup_6_3() { return cGroup_6_3; } + + //',' + public Keyword getCommaKeyword_6_3_0() { return cCommaKeyword_6_3_0; } + + //variables+=ALSVariableDeclaration + public Assignment getVariablesAssignment_6_3_1() { return cVariablesAssignment_6_3_1; } + + //ALSVariableDeclaration + public RuleCall getVariablesALSVariableDeclarationParserRuleCall_6_3_1_0() { return cVariablesALSVariableDeclarationParserRuleCall_6_3_1_0; } + + //'{' + public Keyword getLeftCurlyBracketKeyword_6_4() { return cLeftCurlyBracketKeyword_6_4; } + + //expression=ALSTerm + public Assignment getExpressionAssignment_6_5() { return cExpressionAssignment_6_5; } + + //ALSTerm + public RuleCall getExpressionALSTermParserRuleCall_6_5_0() { return cExpressionALSTermParserRuleCall_6_5_0; } + + //'}' + public Keyword getRightCurlyBracketKeyword_6_6() { return cRightCurlyBracketKeyword_6_6; } + + //{ALSFunctionCall} (referredDefinition=[ALSDefinition] | referredNumericOperator=ALSNumericOperator) '[' params+=ALSTerm + //(',' params+=ALSTerm)* ']' + public Group getGroup_7() { return cGroup_7; } + + //{ALSFunctionCall} + public Action getALSFunctionCallAction_7_0() { return cALSFunctionCallAction_7_0; } + + //referredDefinition=[ALSDefinition] | referredNumericOperator=ALSNumericOperator + public Alternatives getAlternatives_7_1() { return cAlternatives_7_1; } + + //referredDefinition=[ALSDefinition] + public Assignment getReferredDefinitionAssignment_7_1_0() { return cReferredDefinitionAssignment_7_1_0; } + + //[ALSDefinition] + public CrossReference getReferredDefinitionALSDefinitionCrossReference_7_1_0_0() { return cReferredDefinitionALSDefinitionCrossReference_7_1_0_0; } + + //ID + public RuleCall getReferredDefinitionALSDefinitionIDTerminalRuleCall_7_1_0_0_1() { return cReferredDefinitionALSDefinitionIDTerminalRuleCall_7_1_0_0_1; } + + //referredNumericOperator=ALSNumericOperator + public Assignment getReferredNumericOperatorAssignment_7_1_1() { return cReferredNumericOperatorAssignment_7_1_1; } + + //ALSNumericOperator + public RuleCall getReferredNumericOperatorALSNumericOperatorEnumRuleCall_7_1_1_0() { return cReferredNumericOperatorALSNumericOperatorEnumRuleCall_7_1_1_0; } + + //'[' + public Keyword getLeftSquareBracketKeyword_7_2() { return cLeftSquareBracketKeyword_7_2; } + + //params+=ALSTerm + public Assignment getParamsAssignment_7_3() { return cParamsAssignment_7_3; } + + //ALSTerm + public RuleCall getParamsALSTermParserRuleCall_7_3_0() { return cParamsALSTermParserRuleCall_7_3_0; } + + //(',' params+=ALSTerm)* + public Group getGroup_7_4() { return cGroup_7_4; } + + //',' + public Keyword getCommaKeyword_7_4_0() { return cCommaKeyword_7_4_0; } + + //params+=ALSTerm + public Assignment getParamsAssignment_7_4_1() { return cParamsAssignment_7_4_1; } + + //ALSTerm + public RuleCall getParamsALSTermParserRuleCall_7_4_1_0() { return cParamsALSTermParserRuleCall_7_4_1_0; } + + //']' + public Keyword getRightSquareBracketKeyword_7_5() { return cRightSquareBracketKeyword_7_5; } + + //ALSBasicRelationTerm + public RuleCall getALSBasicRelationTermParserRuleCall_8() { return cALSBasicRelationTermParserRuleCall_8; } + } + + public class ALSVariableDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSVariableDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cNameALSIDParserRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0); + private final Keyword cColonKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Assignment cRangeAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cRangeALSTermParserRuleCall_2_0 = (RuleCall)cRangeAssignment_2.eContents().get(0); + + ////ALSVariable: name = ALSID; + //ALSVariableDeclaration: + // name=ALSID ':' range=ALSTerm; + @Override public ParserRule getRule() { return rule; } + + //name=ALSID ':' range=ALSTerm + public Group getGroup() { return cGroup; } + + //name=ALSID + public Assignment getNameAssignment_0() { return cNameAssignment_0; } + + //ALSID + public RuleCall getNameALSIDParserRuleCall_0_0() { return cNameALSIDParserRuleCall_0_0; } + + //':' + public Keyword getColonKeyword_1() { return cColonKeyword_1; } + + //range=ALSTerm + public Assignment getRangeAssignment_2() { return cRangeAssignment_2; } + + //ALSTerm + public RuleCall getRangeALSTermParserRuleCall_2_0() { return cRangeALSTermParserRuleCall_2_0; } + } + + public class ALSBasicRelationTermElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSBasicRelationTerm"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final Action cALSNoneAction_0_0 = (Action)cGroup_0.eContents().get(0); + private final Keyword cNoneKeyword_0_1 = (Keyword)cGroup_0.eContents().get(1); + private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); + private final Action cALSIdenAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Keyword cIdenKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + private final Group cGroup_2 = (Group)cAlternatives.eContents().get(2); + private final Action cALSUnivAction_2_0 = (Action)cGroup_2.eContents().get(0); + private final Keyword cUnivKeyword_2_1 = (Keyword)cGroup_2.eContents().get(1); + private final Group cGroup_3 = (Group)cAlternatives.eContents().get(3); + private final Action cALSIntAction_3_0 = (Action)cGroup_3.eContents().get(0); + private final Keyword cIntKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1); + private final Group cGroup_4 = (Group)cAlternatives.eContents().get(4); + private final Action cALSStringAction_4_0 = (Action)cGroup_4.eContents().get(0); + private final Keyword cStringKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1); + private final Group cGroup_5 = (Group)cAlternatives.eContents().get(5); + private final Action cALSReferenceAction_5_0 = (Action)cGroup_5.eContents().get(0); + private final Assignment cReferredAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1); + private final CrossReference cReferredALSRelationDeclarationCrossReference_5_1_0 = (CrossReference)cReferredAssignment_5_1.eContents().get(0); + private final RuleCall cReferredALSRelationDeclarationIDTerminalRuleCall_5_1_0_1 = (RuleCall)cReferredALSRelationDeclarationCrossReference_5_1_0.eContents().get(1); + private final Group cGroup_6 = (Group)cAlternatives.eContents().get(6); + private final Action cALSNumberLiteralAction_6_0 = (Action)cGroup_6.eContents().get(0); + private final Assignment cValueAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1); + private final RuleCall cValueINTTerminalRuleCall_6_1_0 = (RuleCall)cValueAssignment_6_1.eContents().get(0); + private final Group cGroup_7 = (Group)cAlternatives.eContents().get(7); + private final Action cALSStringLiteralAction_7_0 = (Action)cGroup_7.eContents().get(0); + private final Assignment cValueAssignment_7_1 = (Assignment)cGroup_7.eContents().get(1); + private final RuleCall cValueSTRINGTerminalRuleCall_7_1_0 = (RuleCall)cValueAssignment_7_1.eContents().get(0); + private final Group cGroup_8 = (Group)cAlternatives.eContents().get(8); + private final Keyword cLeftParenthesisKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0); + private final RuleCall cALSTermParserRuleCall_8_1 = (RuleCall)cGroup_8.eContents().get(1); + private final Keyword cRightParenthesisKeyword_8_2 = (Keyword)cGroup_8.eContents().get(2); + + //ALSBasicRelationTerm ALSTerm: + // {ALSNone} 'none' | {ALSIden} 'iden' | {ALSUniv} 'univ' | {ALSInt} 'Int' | {ALSString} 'String' | {ALSReference} + // referred=[ALSRelationDeclaration] | {ALSNumberLiteral} value=INT | {ALSStringLiteral} value=STRING | + // '(' ALSTerm ')'; + @Override public ParserRule getRule() { return rule; } + + //{ALSNone} 'none' | {ALSIden} 'iden' | {ALSUniv} 'univ' | {ALSInt} 'Int' | {ALSString} 'String' | {ALSReference} + //referred=[ALSRelationDeclaration] | {ALSNumberLiteral} value=INT | {ALSStringLiteral} value=STRING | '(' ALSTerm ')' + public Alternatives getAlternatives() { return cAlternatives; } + + //{ALSNone} 'none' + public Group getGroup_0() { return cGroup_0; } + + //{ALSNone} + public Action getALSNoneAction_0_0() { return cALSNoneAction_0_0; } + + //'none' + public Keyword getNoneKeyword_0_1() { return cNoneKeyword_0_1; } + + //{ALSIden} 'iden' + public Group getGroup_1() { return cGroup_1; } + + //{ALSIden} + public Action getALSIdenAction_1_0() { return cALSIdenAction_1_0; } + + //'iden' + public Keyword getIdenKeyword_1_1() { return cIdenKeyword_1_1; } + + //{ALSUniv} 'univ' + public Group getGroup_2() { return cGroup_2; } + + //{ALSUniv} + public Action getALSUnivAction_2_0() { return cALSUnivAction_2_0; } + + //'univ' + public Keyword getUnivKeyword_2_1() { return cUnivKeyword_2_1; } + + //{ALSInt} 'Int' + public Group getGroup_3() { return cGroup_3; } + + //{ALSInt} + public Action getALSIntAction_3_0() { return cALSIntAction_3_0; } + + //'Int' + public Keyword getIntKeyword_3_1() { return cIntKeyword_3_1; } + + //{ALSString} 'String' + public Group getGroup_4() { return cGroup_4; } + + //{ALSString} + public Action getALSStringAction_4_0() { return cALSStringAction_4_0; } + + //'String' + public Keyword getStringKeyword_4_1() { return cStringKeyword_4_1; } + + //{ALSReference} referred=[ALSRelationDeclaration] + public Group getGroup_5() { return cGroup_5; } + + //{ALSReference} + public Action getALSReferenceAction_5_0() { return cALSReferenceAction_5_0; } + + //referred=[ALSRelationDeclaration] + public Assignment getReferredAssignment_5_1() { return cReferredAssignment_5_1; } + + //[ALSRelationDeclaration] + public CrossReference getReferredALSRelationDeclarationCrossReference_5_1_0() { return cReferredALSRelationDeclarationCrossReference_5_1_0; } + + //ID + public RuleCall getReferredALSRelationDeclarationIDTerminalRuleCall_5_1_0_1() { return cReferredALSRelationDeclarationIDTerminalRuleCall_5_1_0_1; } + + //{ALSNumberLiteral} value=INT + public Group getGroup_6() { return cGroup_6; } + + //{ALSNumberLiteral} + public Action getALSNumberLiteralAction_6_0() { return cALSNumberLiteralAction_6_0; } + + //value=INT + public Assignment getValueAssignment_6_1() { return cValueAssignment_6_1; } + + //INT + public RuleCall getValueINTTerminalRuleCall_6_1_0() { return cValueINTTerminalRuleCall_6_1_0; } + + //{ALSStringLiteral} value=STRING + public Group getGroup_7() { return cGroup_7; } + + //{ALSStringLiteral} + public Action getALSStringLiteralAction_7_0() { return cALSStringLiteralAction_7_0; } + + //value=STRING + public Assignment getValueAssignment_7_1() { return cValueAssignment_7_1; } + + //STRING + public RuleCall getValueSTRINGTerminalRuleCall_7_1_0() { return cValueSTRINGTerminalRuleCall_7_1_0; } + + //'(' ALSTerm ')' + public Group getGroup_8() { return cGroup_8; } + + //'(' + public Keyword getLeftParenthesisKeyword_8_0() { return cLeftParenthesisKeyword_8_0; } + + //ALSTerm + public RuleCall getALSTermParserRuleCall_8_1() { return cALSTermParserRuleCall_8_1; } + + //')' + public Keyword getRightParenthesisKeyword_8_2() { return cRightParenthesisKeyword_8_2; } + } + + public class ALSRunCommandElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSRunCommand"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cALSRunCommandAction_0 = (Action)cGroup.eContents().get(0); + private final Keyword cRunKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Keyword cRightCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3); + private final Group cGroup_4 = (Group)cGroup.eContents().get(4); + private final Keyword cForKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0); + private final Assignment cTypeScopesAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1); + private final RuleCall cTypeScopesALSTypeScopeParserRuleCall_4_1_0 = (RuleCall)cTypeScopesAssignment_4_1.eContents().get(0); + private final Group cGroup_4_2 = (Group)cGroup_4.eContents().get(2); + private final Keyword cCommaKeyword_4_2_0 = (Keyword)cGroup_4_2.eContents().get(0); + private final Assignment cTypeScopesAssignment_4_2_1 = (Assignment)cGroup_4_2.eContents().get(1); + private final RuleCall cTypeScopesALSTypeScopeParserRuleCall_4_2_1_0 = (RuleCall)cTypeScopesAssignment_4_2_1.eContents().get(0); + + //////////////////////////////////// + //// ALS Commands and scopes + //////////////////////////////////// + //ALSRunCommand: + // {ALSRunCommand} 'run' '{' '}' ('for' typeScopes+=ALSTypeScope (',' typeScopes+=ALSTypeScope)*)?; + @Override public ParserRule getRule() { return rule; } + + //{ALSRunCommand} 'run' '{' '}' ('for' typeScopes+=ALSTypeScope (',' typeScopes+=ALSTypeScope)*)? + public Group getGroup() { return cGroup; } + + //{ALSRunCommand} + public Action getALSRunCommandAction_0() { return cALSRunCommandAction_0; } + + //'run' + public Keyword getRunKeyword_1() { return cRunKeyword_1; } + + //'{' + public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } + + //'}' + public Keyword getRightCurlyBracketKeyword_3() { return cRightCurlyBracketKeyword_3; } + + //('for' typeScopes+=ALSTypeScope (',' typeScopes+=ALSTypeScope)*)? + public Group getGroup_4() { return cGroup_4; } + + //'for' + public Keyword getForKeyword_4_0() { return cForKeyword_4_0; } + + //typeScopes+=ALSTypeScope + public Assignment getTypeScopesAssignment_4_1() { return cTypeScopesAssignment_4_1; } + + //ALSTypeScope + public RuleCall getTypeScopesALSTypeScopeParserRuleCall_4_1_0() { return cTypeScopesALSTypeScopeParserRuleCall_4_1_0; } + + //(',' typeScopes+=ALSTypeScope)* + public Group getGroup_4_2() { return cGroup_4_2; } + + //',' + public Keyword getCommaKeyword_4_2_0() { return cCommaKeyword_4_2_0; } + + //typeScopes+=ALSTypeScope + public Assignment getTypeScopesAssignment_4_2_1() { return cTypeScopesAssignment_4_2_1; } + + //ALSTypeScope + public RuleCall getTypeScopesALSTypeScopeParserRuleCall_4_2_1_0() { return cTypeScopesALSTypeScopeParserRuleCall_4_2_1_0; } + } + + public class ALSTypeScopeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSTypeScope"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cALSSigScopeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cALSIntScopeParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cALSStringScopeParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + + //ALSTypeScope: + // ALSSigScope | ALSIntScope | ALSStringScope; + @Override public ParserRule getRule() { return rule; } + + //ALSSigScope | ALSIntScope | ALSStringScope + public Alternatives getAlternatives() { return cAlternatives; } + + //ALSSigScope + public RuleCall getALSSigScopeParserRuleCall_0() { return cALSSigScopeParserRuleCall_0; } + + //ALSIntScope + public RuleCall getALSIntScopeParserRuleCall_1() { return cALSIntScopeParserRuleCall_1; } + + //ALSStringScope + public RuleCall getALSStringScopeParserRuleCall_2() { return cALSStringScopeParserRuleCall_2; } + } + + public class ALSSigScopeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSSigScope"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cExactlyAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final Keyword cExactlyExactlyKeyword_0_0 = (Keyword)cExactlyAssignment_0.eContents().get(0); + private final Assignment cNumberAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNumberINTTerminalRuleCall_1_0 = (RuleCall)cNumberAssignment_1.eContents().get(0); + private final Assignment cTypeAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final CrossReference cTypeALSSignatureDeclarationCrossReference_2_0 = (CrossReference)cTypeAssignment_2.eContents().get(0); + private final RuleCall cTypeALSSignatureDeclarationIDTerminalRuleCall_2_0_1 = (RuleCall)cTypeALSSignatureDeclarationCrossReference_2_0.eContents().get(1); + + //ALSSigScope: + // exactly?='exactly'? number=INT type=[ALSSignatureDeclaration]; + @Override public ParserRule getRule() { return rule; } + + //exactly?='exactly'? number=INT type=[ALSSignatureDeclaration] + public Group getGroup() { return cGroup; } + + //exactly?='exactly'? + public Assignment getExactlyAssignment_0() { return cExactlyAssignment_0; } + + //'exactly' + public Keyword getExactlyExactlyKeyword_0_0() { return cExactlyExactlyKeyword_0_0; } + + //number=INT + public Assignment getNumberAssignment_1() { return cNumberAssignment_1; } + + //INT + public RuleCall getNumberINTTerminalRuleCall_1_0() { return cNumberINTTerminalRuleCall_1_0; } + + //type=[ALSSignatureDeclaration] + public Assignment getTypeAssignment_2() { return cTypeAssignment_2; } + + //[ALSSignatureDeclaration] + public CrossReference getTypeALSSignatureDeclarationCrossReference_2_0() { return cTypeALSSignatureDeclarationCrossReference_2_0; } + + //ID + public RuleCall getTypeALSSignatureDeclarationIDTerminalRuleCall_2_0_1() { return cTypeALSSignatureDeclarationIDTerminalRuleCall_2_0_1; } + } + + public class ALSIntScopeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSIntScope"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cNumberAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cNumberINTTerminalRuleCall_0_0 = (RuleCall)cNumberAssignment_0.eContents().get(0); + private final Keyword cIntKeyword_1 = (Keyword)cGroup.eContents().get(1); + + //ALSIntScope: + // number=INT 'Int'; + @Override public ParserRule getRule() { return rule; } + + //number=INT 'Int' + public Group getGroup() { return cGroup; } + + //number=INT + public Assignment getNumberAssignment_0() { return cNumberAssignment_0; } + + //INT + public RuleCall getNumberINTTerminalRuleCall_0_0() { return cNumberINTTerminalRuleCall_0_0; } + + //'Int' + public Keyword getIntKeyword_1() { return cIntKeyword_1; } + } + + public class ALSStringScopeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSStringScope"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cExactlyKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNumberAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNumberINTTerminalRuleCall_1_0 = (RuleCall)cNumberAssignment_1.eContents().get(0); + private final Keyword cStringKeyword_2 = (Keyword)cGroup.eContents().get(2); + + //ALSStringScope: + // 'exactly' number=INT 'String'; + @Override public ParserRule getRule() { return rule; } + + //'exactly' number=INT 'String' + public Group getGroup() { return cGroup; } + + //'exactly' + public Keyword getExactlyKeyword_0() { return cExactlyKeyword_0; } + + //number=INT + public Assignment getNumberAssignment_1() { return cNumberAssignment_1; } + + //INT + public RuleCall getNumberINTTerminalRuleCall_1_0() { return cNumberINTTerminalRuleCall_1_0; } + + //'String' + public Keyword getStringKeyword_2() { return cStringKeyword_2; } + } + + + public class ALSMultiplicityElements extends AbstractEnumRuleElementFinder { + private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSMultiplicity"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final EnumLiteralDeclaration cAllEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); + private final Keyword cAllAllKeyword_0_0 = (Keyword)cAllEnumLiteralDeclaration_0.eContents().get(0); + private final EnumLiteralDeclaration cNoEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); + private final Keyword cNoNoKeyword_1_0 = (Keyword)cNoEnumLiteralDeclaration_1.eContents().get(0); + private final EnumLiteralDeclaration cSomeEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2); + private final Keyword cSomeSomeKeyword_2_0 = (Keyword)cSomeEnumLiteralDeclaration_2.eContents().get(0); + private final EnumLiteralDeclaration cLoneEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3); + private final Keyword cLoneLoneKeyword_3_0 = (Keyword)cLoneEnumLiteralDeclaration_3.eContents().get(0); + private final EnumLiteralDeclaration cOneEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4); + private final Keyword cOneOneKeyword_4_0 = (Keyword)cOneEnumLiteralDeclaration_4.eContents().get(0); + private final EnumLiteralDeclaration cSetEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5); + private final Keyword cSetSetKeyword_5_0 = (Keyword)cSetEnumLiteralDeclaration_5.eContents().get(0); + + //enum ALSMultiplicity: + // all | no | some | lone | one | set; + public EnumRule getRule() { return rule; } + + //all | no | some | lone | one | set + public Alternatives getAlternatives() { return cAlternatives; } + + //all + public EnumLiteralDeclaration getAllEnumLiteralDeclaration_0() { return cAllEnumLiteralDeclaration_0; } + + //"all" + public Keyword getAllAllKeyword_0_0() { return cAllAllKeyword_0_0; } + + //no + public EnumLiteralDeclaration getNoEnumLiteralDeclaration_1() { return cNoEnumLiteralDeclaration_1; } + + //"no" + public Keyword getNoNoKeyword_1_0() { return cNoNoKeyword_1_0; } + + //some + public EnumLiteralDeclaration getSomeEnumLiteralDeclaration_2() { return cSomeEnumLiteralDeclaration_2; } + + //"some" + public Keyword getSomeSomeKeyword_2_0() { return cSomeSomeKeyword_2_0; } + + //lone + public EnumLiteralDeclaration getLoneEnumLiteralDeclaration_3() { return cLoneEnumLiteralDeclaration_3; } + + //"lone" + public Keyword getLoneLoneKeyword_3_0() { return cLoneLoneKeyword_3_0; } + + //one + public EnumLiteralDeclaration getOneEnumLiteralDeclaration_4() { return cOneEnumLiteralDeclaration_4; } + + //"one" + public Keyword getOneOneKeyword_4_0() { return cOneOneKeyword_4_0; } + + //set + public EnumLiteralDeclaration getSetEnumLiteralDeclaration_5() { return cSetEnumLiteralDeclaration_5; } + + //"set" + public Keyword getSetSetKeyword_5_0() { return cSetSetKeyword_5_0; } + } + + public class ALSNumericOperatorElements extends AbstractEnumRuleElementFinder { + private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ALSNumericOperator"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final EnumLiteralDeclaration cPlusEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); + private final Keyword cPlusPlusKeyword_0_0 = (Keyword)cPlusEnumLiteralDeclaration_0.eContents().get(0); + private final EnumLiteralDeclaration cSubEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); + private final Keyword cSubSubKeyword_1_0 = (Keyword)cSubEnumLiteralDeclaration_1.eContents().get(0); + private final EnumLiteralDeclaration cMulEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2); + private final Keyword cMulMulKeyword_2_0 = (Keyword)cMulEnumLiteralDeclaration_2.eContents().get(0); + private final EnumLiteralDeclaration cRemEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3); + private final Keyword cRemRemKeyword_3_0 = (Keyword)cRemEnumLiteralDeclaration_3.eContents().get(0); + private final EnumLiteralDeclaration cDivEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4); + private final Keyword cDivDivKeyword_4_0 = (Keyword)cDivEnumLiteralDeclaration_4.eContents().get(0); + + //enum ALSNumericOperator: + // plus | sub | mul | rem | div; + public EnumRule getRule() { return rule; } + + //plus | sub | mul | rem | div + public Alternatives getAlternatives() { return cAlternatives; } + + //plus + public EnumLiteralDeclaration getPlusEnumLiteralDeclaration_0() { return cPlusEnumLiteralDeclaration_0; } + + //"plus" + public Keyword getPlusPlusKeyword_0_0() { return cPlusPlusKeyword_0_0; } + + //sub + public EnumLiteralDeclaration getSubEnumLiteralDeclaration_1() { return cSubEnumLiteralDeclaration_1; } + + //"sub" + public Keyword getSubSubKeyword_1_0() { return cSubSubKeyword_1_0; } + + //mul + public EnumLiteralDeclaration getMulEnumLiteralDeclaration_2() { return cMulEnumLiteralDeclaration_2; } + + //"mul" + public Keyword getMulMulKeyword_2_0() { return cMulMulKeyword_2_0; } + + //rem + public EnumLiteralDeclaration getRemEnumLiteralDeclaration_3() { return cRemEnumLiteralDeclaration_3; } + + //"rem" + public Keyword getRemRemKeyword_3_0() { return cRemRemKeyword_3_0; } + + //div + public EnumLiteralDeclaration getDivEnumLiteralDeclaration_4() { return cDivEnumLiteralDeclaration_4; } + + //"div" + public Keyword getDivDivKeyword_4_0() { return cDivDivKeyword_4_0; } + } + + private final ALSDocumentElements pALSDocument; + private final TerminalRule tID; + private final ALSIDElements pALSID; + private final ALSMultiplicityElements eALSMultiplicity; + private final ALSRelationDeclarationElements pALSRelationDeclaration; + private final ALSTypeDeclarationElements pALSTypeDeclaration; + private final ALSEnumDeclarationElements pALSEnumDeclaration; + private final ALSEnumLiteralElements pALSEnumLiteral; + private final ALSSignatureDeclarationElements pALSSignatureDeclaration; + private final ALSSignatureBodyElements pALSSignatureBody; + private final ALSFieldDeclarationElements pALSFieldDeclaration; + private final ALSDefinitionElements pALSDefinition; + private final ALSFunctionDefinitionElements pALSFunctionDefinition; + private final ALSRelationDefinitionElements pALSRelationDefinition; + private final ALSFactDeclarationElements pALSFactDeclaration; + private final ALSTermElements pALSTerm; + private final ALSQuantifiedElements pALSQuantified; + private final ALSOrElements pALSOr; + private final ALSIffElements pALSIff; + private final ALSImplElements pALSImpl; + private final ALSAndElements pALSAnd; + private final ALSComparisonElements pALSComparison; + private final ALSOverrideElements pALSOverride; + private final ALSRangeRestrictionRightElements pALSRangeRestrictionRight; + private final ALSRangeRestrictionLeftElements pALSRangeRestrictionLeft; + private final ALSJoinElements pALSJoin; + private final ALSMinusElements pALSMinus; + private final ALSPlusElements pALSPlus; + private final ALSIntersectionElements pALSIntersection; + private final ALSDirectProductElements pALSDirectProduct; + private final ALSPreficedElements pALSPreficed; + private final ALSNumericOperatorElements eALSNumericOperator; + private final ALSVariableDeclarationElements pALSVariableDeclaration; + private final ALSBasicRelationTermElements pALSBasicRelationTerm; + private final ALSRunCommandElements pALSRunCommand; + private final ALSTypeScopeElements pALSTypeScope; + private final ALSSigScopeElements pALSSigScope; + private final ALSIntScopeElements pALSIntScope; + private final ALSStringScopeElements pALSStringScope; + + private final Grammar grammar; + + private final TerminalsGrammarAccess gaTerminals; + + @Inject + public AlloyLanguageGrammarAccess(GrammarProvider grammarProvider, + TerminalsGrammarAccess gaTerminals) { + this.grammar = internalFindGrammar(grammarProvider); + this.gaTerminals = gaTerminals; + this.pALSDocument = new ALSDocumentElements(); + this.tID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.AlloyLanguage.ID"); + this.pALSID = new ALSIDElements(); + this.eALSMultiplicity = new ALSMultiplicityElements(); + this.pALSRelationDeclaration = new ALSRelationDeclarationElements(); + this.pALSTypeDeclaration = new ALSTypeDeclarationElements(); + this.pALSEnumDeclaration = new ALSEnumDeclarationElements(); + this.pALSEnumLiteral = new ALSEnumLiteralElements(); + this.pALSSignatureDeclaration = new ALSSignatureDeclarationElements(); + this.pALSSignatureBody = new ALSSignatureBodyElements(); + this.pALSFieldDeclaration = new ALSFieldDeclarationElements(); + this.pALSDefinition = new ALSDefinitionElements(); + this.pALSFunctionDefinition = new ALSFunctionDefinitionElements(); + this.pALSRelationDefinition = new ALSRelationDefinitionElements(); + this.pALSFactDeclaration = new ALSFactDeclarationElements(); + this.pALSTerm = new ALSTermElements(); + this.pALSQuantified = new ALSQuantifiedElements(); + this.pALSOr = new ALSOrElements(); + this.pALSIff = new ALSIffElements(); + this.pALSImpl = new ALSImplElements(); + this.pALSAnd = new ALSAndElements(); + this.pALSComparison = new ALSComparisonElements(); + this.pALSOverride = new ALSOverrideElements(); + this.pALSRangeRestrictionRight = new ALSRangeRestrictionRightElements(); + this.pALSRangeRestrictionLeft = new ALSRangeRestrictionLeftElements(); + this.pALSJoin = new ALSJoinElements(); + this.pALSMinus = new ALSMinusElements(); + this.pALSPlus = new ALSPlusElements(); + this.pALSIntersection = new ALSIntersectionElements(); + this.pALSDirectProduct = new ALSDirectProductElements(); + this.pALSPreficed = new ALSPreficedElements(); + this.eALSNumericOperator = new ALSNumericOperatorElements(); + this.pALSVariableDeclaration = new ALSVariableDeclarationElements(); + this.pALSBasicRelationTerm = new ALSBasicRelationTermElements(); + this.pALSRunCommand = new ALSRunCommandElements(); + this.pALSTypeScope = new ALSTypeScopeElements(); + this.pALSSigScope = new ALSSigScopeElements(); + this.pALSIntScope = new ALSIntScopeElements(); + this.pALSStringScope = new ALSStringScopeElements(); + } + + protected Grammar internalFindGrammar(GrammarProvider grammarProvider) { + Grammar grammar = grammarProvider.getGrammar(this); + while (grammar != null) { + if ("hu.bme.mit.inf.dslreasoner.AlloyLanguage".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; + } + + + //ALSDocument: + // (enumDeclarations+=ALSEnumDeclaration | signatureBodies+=ALSSignatureBody | + // functionDefinitions+=ALSFunctionDefinition | relationDefinitions+=ALSRelationDefinition | + // factDeclarations+=ALSFactDeclaration)+ + // runCommand=ALSRunCommand; + public ALSDocumentElements getALSDocumentAccess() { + return pALSDocument; + } + + public ParserRule getALSDocumentRule() { + return getALSDocumentAccess().getRule(); + } + + //terminal ID: + // ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '_' | "'" | '"' | '0'..'9')*; + public TerminalRule getIDRule() { + return tID; + } + + //ALSID: + // ID; + public ALSIDElements getALSIDAccess() { + return pALSID; + } + + public ParserRule getALSIDRule() { + return getALSIDAccess().getRule(); + } + + //enum ALSMultiplicity: + // all | no | some | lone | one | set; + public ALSMultiplicityElements getALSMultiplicityAccess() { + return eALSMultiplicity; + } + + public EnumRule getALSMultiplicityRule() { + return getALSMultiplicityAccess().getRule(); + } + + //////////////////////////////////// + //// ALS types + //////////////////////////////////// + //ALSRelationDeclaration: + // ALSTypeDeclaration | ALSEnumLiteral | ALSFieldDeclaration | ALSVariableDeclaration; + public ALSRelationDeclarationElements getALSRelationDeclarationAccess() { + return pALSRelationDeclaration; + } + + public ParserRule getALSRelationDeclarationRule() { + return getALSRelationDeclarationAccess().getRule(); + } + + //ALSTypeDeclaration: + // ALSEnumDeclaration | ALSSignatureDeclaration; + public ALSTypeDeclarationElements getALSTypeDeclarationAccess() { + return pALSTypeDeclaration; + } + + public ParserRule getALSTypeDeclarationRule() { + return getALSTypeDeclarationAccess().getRule(); + } + + //ALSEnumDeclaration: + // 'enum' name=ALSID '{' + // literal+=ALSEnumLiteral ("," literal+=ALSEnumLiteral)* + // '}'; + public ALSEnumDeclarationElements getALSEnumDeclarationAccess() { + return pALSEnumDeclaration; + } + + public ParserRule getALSEnumDeclarationRule() { + return getALSEnumDeclarationAccess().getRule(); + } + + //ALSEnumLiteral: + // name=ALSID; + public ALSEnumLiteralElements getALSEnumLiteralAccess() { + return pALSEnumLiteral; + } + + public ParserRule getALSEnumLiteralRule() { + return getALSEnumLiteralAccess().getRule(); + } + + //ALSSignatureDeclaration: + // name=ALSID; + public ALSSignatureDeclarationElements getALSSignatureDeclarationAccess() { + return pALSSignatureDeclaration; + } + + public ParserRule getALSSignatureDeclarationRule() { + return getALSSignatureDeclarationAccess().getRule(); + } + + //ALSSignatureBody: + // (multiplicity=ALSMultiplicity? & abstract?='abstract'?) + // 'sig' + // declarations+=ALSSignatureDeclaration (',' declarations+=ALSSignatureDeclaration)* ('extends' + // supertype=[ALSSignatureDeclaration] | 'in' superset+=[ALSSignatureDeclaration] ('+' + // superset+=[ALSSignatureDeclaration])*)? + // '{' (fields+=ALSFieldDeclaration ("," fields+=ALSFieldDeclaration)*)? '}'; + public ALSSignatureBodyElements getALSSignatureBodyAccess() { + return pALSSignatureBody; + } + + public ParserRule getALSSignatureBodyRule() { + return getALSSignatureBodyAccess().getRule(); + } + + //ALSFieldDeclaration: + // name=ALSID ':' multiplicity=ALSMultiplicity? type=ALSTerm; + public ALSFieldDeclarationElements getALSFieldDeclarationAccess() { + return pALSFieldDeclaration; + } + + public ParserRule getALSFieldDeclarationRule() { + return getALSFieldDeclarationAccess().getRule(); + } + + //ALSDefinition: + // ALSFunctionDefinition | ALSRelationDefinition; + public ALSDefinitionElements getALSDefinitionAccess() { + return pALSDefinition; + } + + public ParserRule getALSDefinitionRule() { + return getALSDefinitionAccess().getRule(); + } + + //ALSFunctionDefinition: + // "fun" name=ALSID "[" variables+=ALSVariableDeclaration (',' variables+=ALSVariableDeclaration)* "]" ":" type=ALSTerm + // "{" value=ALSTerm "}"; + public ALSFunctionDefinitionElements getALSFunctionDefinitionAccess() { + return pALSFunctionDefinition; + } + + public ParserRule getALSFunctionDefinitionRule() { + return getALSFunctionDefinitionAccess().getRule(); + } + + //ALSRelationDefinition: + // "pred" name=ALSID "[" variables+=ALSVariableDeclaration (',' variables+=ALSVariableDeclaration)* "]" + // "{" value=ALSTerm "}"; + public ALSRelationDefinitionElements getALSRelationDefinitionAccess() { + return pALSRelationDefinition; + } + + public ParserRule getALSRelationDefinitionRule() { + return getALSRelationDefinitionAccess().getRule(); + } + + //ALSFactDeclaration: + // {ALSFactDeclaration} 'fact' name=ALSID? '{' term=ALSTerm '}'; + public ALSFactDeclarationElements getALSFactDeclarationAccess() { + return pALSFactDeclaration; + } + + public ParserRule getALSFactDeclarationRule() { + return getALSFactDeclarationAccess().getRule(); + } + + //////////////////////////////////// + //// ALS terms + //////////////////////////////////// + //ALSTerm: + // ALSQuantified; + public ALSTermElements getALSTermAccess() { + return pALSTerm; + } + + public ParserRule getALSTermRule() { + return getALSTermAccess().getRule(); + } + + //ALSQuantified ALSTerm: + // {ALSQuantifiedEx} type=ALSMultiplicity + // disj?='disj'? variables+=ALSVariableDeclaration (',' variables+=ALSVariableDeclaration)* '{' expression=ALSTerm '}' | + // ALSOr; + public ALSQuantifiedElements getALSQuantifiedAccess() { + return pALSQuantified; + } + + public ParserRule getALSQuantifiedRule() { + return getALSQuantifiedAccess().getRule(); + } + + //ALSOr ALSTerm: + // ALSIff ({ALSOr.leftOperand=current} ("||" | "or") rightOperand=ALSIff)?; + public ALSOrElements getALSOrAccess() { + return pALSOr; + } + + public ParserRule getALSOrRule() { + return getALSOrAccess().getRule(); + } + + //ALSIff ALSTerm: + // ALSImpl ({ALSIff.leftOperand=current} ("<=>" | "iff") rightOperand=ALSImpl)?; + public ALSIffElements getALSIffAccess() { + return pALSIff; + } + + public ParserRule getALSIffRule() { + return getALSIffAccess().getRule(); + } + + //ALSImpl ALSTerm: + // ALSAnd ({ALSImpl.leftOperand=current} ("=>" | "implies") rightOperand=ALSAnd ('else' elseOperand=ALSAnd)?)?; + public ALSImplElements getALSImplAccess() { + return pALSImpl; + } + + public ParserRule getALSImplRule() { + return getALSImplAccess().getRule(); + } + + //ALSAnd ALSTerm: + // ALSComparison ({ALSAnd.leftOperand=current} ("&&" | "and") rightOperand=ALSComparison)?; + public ALSAndElements getALSAndAccess() { + return pALSAnd; + } + + public ParserRule getALSAndRule() { + return getALSAndAccess().getRule(); + } + + //ALSComparison ALSTerm: + // ALSOverride (({ALSEquals.leftOperand=current} "=" | {ALSNotEquals.leftOperand=current} "!=" | + // {ALSSubset.leftOperand=current} "in" | {ALSLess.leftOperand=current} ">" | {ALSLeq.leftOperand=current} ">=" | + // {ALSMore.leftOperand=current} "<" | {ALSMeq.leftOperand=current} "<=") rightOperand=ALSOverride)?; + public ALSComparisonElements getALSComparisonAccess() { + return pALSComparison; + } + + public ParserRule getALSComparisonRule() { + return getALSComparisonAccess().getRule(); + } + + //ALSOverride ALSTerm: + // ALSRangeRestrictionRight ({ALSOverride.leftOperand=current} '++' rightOperand=ALSRangeRestrictionRight)?; + public ALSOverrideElements getALSOverrideAccess() { + return pALSOverride; + } + + public ParserRule getALSOverrideRule() { + return getALSOverrideAccess().getRule(); + } + + //ALSRangeRestrictionRight ALSTerm: + // ALSRangeRestrictionLeft ({ALSRangeRestrictionRight.relation=current} ':>' filter=ALSRangeRestrictionLeft)?; + public ALSRangeRestrictionRightElements getALSRangeRestrictionRightAccess() { + return pALSRangeRestrictionRight; + } + + public ParserRule getALSRangeRestrictionRightRule() { + return getALSRangeRestrictionRightAccess().getRule(); + } + + //ALSRangeRestrictionLeft ALSTerm: + // ALSJoin ({ALSRangeRestrictionLeft.filter=current} '<:' relation=ALSJoin)?; + public ALSRangeRestrictionLeftElements getALSRangeRestrictionLeftAccess() { + return pALSRangeRestrictionLeft; + } + + public ParserRule getALSRangeRestrictionLeftRule() { + return getALSRangeRestrictionLeftAccess().getRule(); + } + + //ALSJoin ALSTerm: + // ALSMinus ({ALSJoin.leftOperand=current} '.' rightOperand=ALSMinus)*; + public ALSJoinElements getALSJoinAccess() { + return pALSJoin; + } + + public ParserRule getALSJoinRule() { + return getALSJoinAccess().getRule(); + } + + //ALSMinus ALSTerm: + // ALSPlus ({ALSMinus.leftOperand=current} '-' rightOperand=ALSPlus)*; + public ALSMinusElements getALSMinusAccess() { + return pALSMinus; + } + + public ParserRule getALSMinusRule() { + return getALSMinusAccess().getRule(); + } + + //ALSPlus ALSTerm: + // ALSIntersection ({ALSPlus.leftOperand=current} '+' rightOperand=ALSIntersection)*; + public ALSPlusElements getALSPlusAccess() { + return pALSPlus; + } + + public ParserRule getALSPlusRule() { + return getALSPlusAccess().getRule(); + } + + //ALSIntersection ALSTerm: + // ALSDirectProduct ({ALSIntersection.leftOperand=current} '&' rightOperand=ALSDirectProduct)*; + public ALSIntersectionElements getALSIntersectionAccess() { + return pALSIntersection; + } + + public ParserRule getALSIntersectionRule() { + return getALSIntersectionAccess().getRule(); + } + + ////ALSMultiply returns ALSTerm: ALSDirectProduct ({ALSMultiply.leftOperand = current} '*' rightOperand = ALSDirectProduct)*; + //ALSDirectProduct ALSTerm: + // ALSPreficed ({ALSDirectProduct.leftOperand=current} leftMultiplicit=ALSMultiplicity? + // '->' + // rightMultiplicit=ALSMultiplicity? + // rightOperand=ALSPreficed)?; + public ALSDirectProductElements getALSDirectProductAccess() { + return pALSDirectProduct; + } + + public ParserRule getALSDirectProductRule() { + return getALSDirectProductAccess().getRule(); + } + + //ALSPreficed ALSTerm: + // {ALSNot} => ("!" | 'not') operand=ALSBasicRelationTerm | {ALSInverseRelation} => "~" operand=ALSBasicRelationTerm | + // {AlSTransitiveClosure} "^" operand=ALSBasicRelationTerm | {ALSReflectiveTransitiveClosure} "*" + // operand=ALSBasicRelationTerm | {ALSCardinality} '#' operand=ALSBasicRelationTerm | {ALSUnaryMinus} => '-' + // operand=ALSBasicRelationTerm | {ALSSum} 'sum' variables+=ALSVariableDeclaration (',' + // variables+=ALSVariableDeclaration)* '{' expression=ALSTerm '}' | {ALSFunctionCall} + // (referredDefinition=[ALSDefinition] | referredNumericOperator=ALSNumericOperator) '[' params+=ALSTerm (',' + // params+=ALSTerm)* ']' | ALSBasicRelationTerm; + public ALSPreficedElements getALSPreficedAccess() { + return pALSPreficed; + } + + public ParserRule getALSPreficedRule() { + return getALSPreficedAccess().getRule(); + } + + //enum ALSNumericOperator: + // plus | sub | mul | rem | div; + public ALSNumericOperatorElements getALSNumericOperatorAccess() { + return eALSNumericOperator; + } + + public EnumRule getALSNumericOperatorRule() { + return getALSNumericOperatorAccess().getRule(); + } + + ////ALSVariable: name = ALSID; + //ALSVariableDeclaration: + // name=ALSID ':' range=ALSTerm; + public ALSVariableDeclarationElements getALSVariableDeclarationAccess() { + return pALSVariableDeclaration; + } + + public ParserRule getALSVariableDeclarationRule() { + return getALSVariableDeclarationAccess().getRule(); + } + + //ALSBasicRelationTerm ALSTerm: + // {ALSNone} 'none' | {ALSIden} 'iden' | {ALSUniv} 'univ' | {ALSInt} 'Int' | {ALSString} 'String' | {ALSReference} + // referred=[ALSRelationDeclaration] | {ALSNumberLiteral} value=INT | {ALSStringLiteral} value=STRING | + // '(' ALSTerm ')'; + public ALSBasicRelationTermElements getALSBasicRelationTermAccess() { + return pALSBasicRelationTerm; + } + + public ParserRule getALSBasicRelationTermRule() { + return getALSBasicRelationTermAccess().getRule(); + } + + //////////////////////////////////// + //// ALS Commands and scopes + //////////////////////////////////// + //ALSRunCommand: + // {ALSRunCommand} 'run' '{' '}' ('for' typeScopes+=ALSTypeScope (',' typeScopes+=ALSTypeScope)*)?; + public ALSRunCommandElements getALSRunCommandAccess() { + return pALSRunCommand; + } + + public ParserRule getALSRunCommandRule() { + return getALSRunCommandAccess().getRule(); + } + + //ALSTypeScope: + // ALSSigScope | ALSIntScope | ALSStringScope; + public ALSTypeScopeElements getALSTypeScopeAccess() { + return pALSTypeScope; + } + + public ParserRule getALSTypeScopeRule() { + return getALSTypeScopeAccess().getRule(); + } + + //ALSSigScope: + // exactly?='exactly'? number=INT type=[ALSSignatureDeclaration]; + public ALSSigScopeElements getALSSigScopeAccess() { + return pALSSigScope; + } + + public ParserRule getALSSigScopeRule() { + return getALSSigScopeAccess().getRule(); + } + + //ALSIntScope: + // number=INT 'Int'; + public ALSIntScopeElements getALSIntScopeAccess() { + return pALSIntScope; + } + + public ParserRule getALSIntScopeRule() { + return getALSIntScopeAccess().getRule(); + } + + //ALSStringScope: + // 'exactly' number=INT 'String'; + public ALSStringScopeElements getALSStringScopeAccess() { + return pALSStringScope; + } + + public ParserRule getALSStringScopeRule() { + return getALSStringScopeAccess().getRule(); + } + + //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(); + } + + //terminal ANY_OTHER: + // .; + public TerminalRule getANY_OTHERRule() { + return gaTerminals.getANY_OTHERRule(); + } +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/validation/AbstractAlloyLanguageValidator.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/validation/AbstractAlloyLanguageValidator.java new file mode 100644 index 00000000..3780b64b --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src-gen/hu/bme/mit/inf/dslreasoner/validation/AbstractAlloyLanguageValidator.java @@ -0,0 +1,18 @@ +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner.validation; + +import java.util.ArrayList; +import java.util.List; +import org.eclipse.emf.ecore.EPackage; + +public class AbstractAlloyLanguageValidator extends org.eclipse.xtext.validation.AbstractDeclarativeValidator { + + @Override + protected List getEPackages() { + List result = new ArrayList(); + result.add(hu.bme.mit.inf.dslreasoner.alloyLanguage.AlloyLanguagePackage.eINSTANCE); + return result; + } +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtext b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtext new file mode 100644 index 00000000..fba3838c --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtext @@ -0,0 +1,152 @@ +grammar hu.bme.mit.inf.dslreasoner.AlloyLanguage with org.eclipse.xtext.common.Terminals + +generate alloyLanguage "http://www.bme.hu/mit/inf/dslreasoner/AlloyLanguage" + +ALSDocument: + ( enumDeclarations += ALSEnumDeclaration | + signatureBodies += ALSSignatureBody | + functionDefinitions += ALSFunctionDefinition | + relationDefinitions += ALSRelationDefinition | + factDeclarations += ALSFactDeclaration)+ + runCommand = ALSRunCommand +; + +////////////////////////////////// +// ALS terminals +////////////////////////////////// + +terminal ID: ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|"'"|'"'|'0'..'9')*; +ALSID: ID; + +enum ALSMultiplicity: all | no | some | lone | one | set; + + +////////////////////////////////// +// ALS types +////////////////////////////////// + +ALSRelationDeclaration: ALSTypeDeclaration | ALSEnumLiteral | ALSFieldDeclaration | ALSVariableDeclaration; + +ALSTypeDeclaration: + ALSEnumDeclaration | ALSSignatureDeclaration +; + +ALSEnumDeclaration: + 'enum' name=ALSID '{' + literal+=ALSEnumLiteral ("," literal+=ALSEnumLiteral)* + '}'; +ALSEnumLiteral: name = ALSID; + +ALSSignatureDeclaration: name = ALSID; + +ALSSignatureBody: + ((multiplicity = ALSMultiplicity?) & (abstract ?= 'abstract')?) + 'sig' + declarations += ALSSignatureDeclaration (',' declarations += ALSSignatureDeclaration)* + (('extends' supertype = [ALSSignatureDeclaration]) + | + ('in' superset += [ALSSignatureDeclaration] ('+' superset += [ALSSignatureDeclaration])*) )? + '{' (fields+=ALSFieldDeclaration ("," fields+=ALSFieldDeclaration)*)? '}' +; + +ALSFieldDeclaration: + name = ALSID ':' (multiplicity = ALSMultiplicity)? type = ALSTerm +; + +ALSDefinition : ALSFunctionDefinition | ALSRelationDefinition; + +ALSFunctionDefinition: + "fun" name = ALSID "[" variables+=ALSVariableDeclaration (',' variables+=ALSVariableDeclaration)* "]" ":" type = ALSTerm + "{" value = ALSTerm "}" +; +ALSRelationDefinition: + "pred" name = ALSID "[" variables+=ALSVariableDeclaration (',' variables+=ALSVariableDeclaration)* "]" + "{" value = ALSTerm "}" +; + +ALSFactDeclaration: {ALSFactDeclaration} 'fact' (name=ALSID)? '{' (term = ALSTerm) '}' ; + +////////////////////////////////// +// ALS terms +////////////////////////////////// +ALSTerm: ALSQuantified; + +ALSQuantified returns ALSTerm: ({ALSQuantifiedEx} type = ALSMultiplicity + (disj?='disj')? variables+=ALSVariableDeclaration (',' variables+=ALSVariableDeclaration)* '{' expression = ALSTerm '}') | ALSOr; + +ALSOr returns ALSTerm: ALSIff ({ALSOr.leftOperand = current} ( "||" | "or" ) rightOperand = ALSIff)?; +ALSIff returns ALSTerm: ALSImpl ({ALSIff.leftOperand = current} ("<=>" | "iff") rightOperand = ALSImpl)?; +ALSImpl returns ALSTerm: ALSAnd ({ALSImpl.leftOperand = current} ("=>" | "implies") rightOperand = ALSAnd ('else' elseOperand = ALSAnd)?)?; +ALSAnd returns ALSTerm: ALSComparison ({ALSAnd.leftOperand = current} ( "&&" | "and" ) rightOperand = ALSComparison)?; + +ALSComparison returns ALSTerm: + ALSOverride + (({ALSEquals.leftOperand = current} "=" | + {ALSNotEquals.leftOperand = current} "!=" | + {ALSSubset.leftOperand = current} "in" | + {ALSLess.leftOperand = current} ">" | + {ALSLeq.leftOperand = current} ">=" | + {ALSMore.leftOperand = current} "<" | + {ALSMeq.leftOperand = current} "<=") + rightOperand = ALSOverride)?; + +ALSOverride returns ALSTerm: ALSRangeRestrictionRight ({ALSOverride.leftOperand = current} '++' rightOperand = ALSRangeRestrictionRight)?; + +ALSRangeRestrictionRight returns ALSTerm: ALSRangeRestrictionLeft ({ALSRangeRestrictionRight.relation = current} ':>' filter = ALSRangeRestrictionLeft)?; +ALSRangeRestrictionLeft returns ALSTerm: ALSJoin ({ALSRangeRestrictionLeft.filter = current} '<:' relation = ALSJoin)?; +ALSJoin returns ALSTerm: ALSMinus ({ALSJoin.leftOperand = current} '.' rightOperand = ALSMinus )*; + +ALSMinus returns ALSTerm: ALSPlus ({ALSMinus.leftOperand = current} '-' rightOperand = ALSPlus)*; +ALSPlus returns ALSTerm: ALSIntersection ({ALSPlus.leftOperand = current} '+' rightOperand = ALSIntersection)*; +ALSIntersection returns ALSTerm: ALSDirectProduct ({ALSIntersection.leftOperand = current} '&' rightOperand = ALSDirectProduct)*; +//ALSMultiply returns ALSTerm: ALSDirectProduct ({ALSMultiply.leftOperand = current} '*' rightOperand = ALSDirectProduct)*; + +ALSDirectProduct returns ALSTerm: + ALSPreficed + ({ALSDirectProduct.leftOperand = current} (leftMultiplicit = ALSMultiplicity)? + '->' + (rightMultiplicit = ALSMultiplicity)? + rightOperand = ALSPreficed)? +; + +ALSPreficed returns ALSTerm: + {ALSNot}=>("!"|'not') operand = ALSBasicRelationTerm | + {ALSInverseRelation}=>"~" operand = ALSBasicRelationTerm | + {AlSTransitiveClosure} "^" operand = ALSBasicRelationTerm | + {ALSReflectiveTransitiveClosure} "*" operand = ALSBasicRelationTerm | + {ALSCardinality} '#' operand = ALSBasicRelationTerm | + {ALSUnaryMinus} =>'-' operand = ALSBasicRelationTerm | + {ALSSum} 'sum' variables+=ALSVariableDeclaration (',' variables+=ALSVariableDeclaration)* '{' expression = ALSTerm '}' | +// {ALSQuantifiedEx} type = ALSMultiplicity +// (disj?='disj')? variables+=ALSVariableDeclaration (',' variables+=ALSVariableDeclaration)* '{' expression = ALSTerm '}' | + {ALSFunctionCall} (referredDefinition=[ALSDefinition]|referredNumericOperator=ALSNumericOperator) '['params+=ALSTerm (',' params+=ALSTerm)*']' | + ALSBasicRelationTerm; + +enum ALSNumericOperator: plus|sub|mul|rem|div; + +//ALSVariable: name = ALSID; +ALSVariableDeclaration: name=ALSID ':' range = ALSTerm; + +ALSBasicRelationTerm returns ALSTerm: + {ALSNone} 'none'| + {ALSIden} 'iden'| + {ALSUniv} 'univ'| + {ALSInt} 'Int' | + {ALSString} 'String' | + {ALSReference} referred = [ALSRelationDeclaration] | + {ALSNumberLiteral} value = INT| + {ALSStringLiteral} value = STRING| + '(' ALSTerm ')' +; + +////////////////////////////////// +// ALS Commands and scopes +////////////////////////////////// +ALSRunCommand: + {ALSRunCommand} 'run' '{' '}' ('for' typeScopes+=ALSTypeScope (',' typeScopes+=ALSTypeScope)*)?; + +ALSTypeScope: ALSSigScope | ALSIntScope | ALSStringScope; + +ALSSigScope: (exactly?='exactly')? number = INT type = [ALSSignatureDeclaration]; +ALSIntScope: number = INT 'Int'; +ALSStringScope: 'exactly' number = INT 'String'; \ No newline at end of file diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/AlloyLanguageRuntimeModule.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/AlloyLanguageRuntimeModule.java new file mode 100644 index 00000000..3fd8e2f0 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/AlloyLanguageRuntimeModule.java @@ -0,0 +1,11 @@ +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner; + +/** + * Use this class to register components to be used at runtime / without the Equinox extension registry. + */ +public class AlloyLanguageRuntimeModule extends hu.bme.mit.inf.dslreasoner.AbstractAlloyLanguageRuntimeModule { + +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/AlloyLanguageStandaloneSetup.java b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/AlloyLanguageStandaloneSetup.java new file mode 100644 index 00000000..d3112c3d --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/AlloyLanguageStandaloneSetup.java @@ -0,0 +1,16 @@ +/* +* generated by Xtext +*/ +package hu.bme.mit.inf.dslreasoner; + +/** + * Initialization support for running Xtext languages + * without equinox extension registry + */ +public class AlloyLanguageStandaloneSetup extends AlloyLanguageStandaloneSetupGenerated{ + + public static void doSetup() { + new AlloyLanguageStandaloneSetup().createInjectorAndDoEMFRegistration(); + } +} + diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/GenerateAlloyLanguage.mwe2 b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/GenerateAlloyLanguage.mwe2 new file mode 100644 index 00000000..0f23b862 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/GenerateAlloyLanguage.mwe2 @@ -0,0 +1,133 @@ +module hu.bme.mit.inf.dslreasoner.GenerateAlloyLanguage + +import org.eclipse.emf.mwe.utils.* +import org.eclipse.xtext.generator.* +import org.eclipse.xtext.ui.generator.* + +var grammarURI = "classpath:/hu/bme/mit/inf/dslreasoner/AlloyLanguage.xtext" +var fileExtensions = "als" +var projectName = "hu.bme.mit.inf.dslreasoner.alloy.language" +var runtimeProject = "../${projectName}" +var generateXtendStub = true +var encoding = "UTF-8" + +Workflow { + bean = StandaloneSetup { + scanClassPath = true + platformUri = "${runtimeProject}/.." + // The following two lines can be removed, if Xbase is not used. + registerGeneratedEPackage = "org.eclipse.xtext.xbase.XbasePackage" + registerGenModelFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel" + } + + component = DirectoryCleaner { + directory = "${runtimeProject}/src-gen" + } + + component = DirectoryCleaner { + directory = "${runtimeProject}/model/generated" + } + + component = DirectoryCleaner { + directory = "${runtimeProject}.ui/src-gen" + } + +// component = DirectoryCleaner { +// directory = "${runtimeProject}.tests/src-gen" +// } + + component = Generator { + pathRtProject = runtimeProject + pathUiProject = "${runtimeProject}.ui" + //pathTestProject = "${runtimeProject}.tests" + projectNameRt = projectName + projectNameUi = "${projectName}.ui" + encoding = encoding + language = auto-inject { + uri = grammarURI + + // Java API to access grammar elements (required by several other fragments) + fragment = grammarAccess.GrammarAccessFragment auto-inject {} + + // generates Java API for the generated EPackages + fragment = ecore.EMFGeneratorFragment auto-inject {} + + // the old serialization component + // fragment = parseTreeConstructor.ParseTreeConstructorFragment auto-inject {} + + // serializer 2.0 + fragment = serializer.SerializerFragment auto-inject { + generateStub = false + } + + // a custom ResourceFactory for use with EMF + fragment = resourceFactory.ResourceFactoryFragment auto-inject {} + + // The antlr parser generator fragment. + fragment = parser.antlr.XtextAntlrGeneratorFragment auto-inject { + // options = { + // backtrack = true + // } + } + + // Xtend-based API for validation + fragment = validation.ValidatorFragment auto-inject { + // composedCheck = "org.eclipse.xtext.validation.ImportUriValidator" + // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" + } + + // old scoping and exporting API + // fragment = scoping.ImportURIScopingFragment auto-inject {} + // fragment = exporting.SimpleNamesFragment auto-inject {} + + // scoping and exporting API + fragment = scoping.ImportNamespacesScopingFragment auto-inject {} + fragment = exporting.QualifiedNamesFragment auto-inject {} + fragment = builder.BuilderIntegrationFragment auto-inject {} + + // generator API + fragment = generator.GeneratorFragment auto-inject {} + + // formatter API + fragment = formatting.FormatterFragment auto-inject {} + + // labeling API + fragment = labeling.LabelProviderFragment auto-inject {} + + // outline API + fragment = outline.OutlineTreeProviderFragment auto-inject {} + fragment = outline.QuickOutlineFragment auto-inject {} + + // quickfix API + fragment = quickfix.QuickfixProviderFragment auto-inject {} + + // content assist API + fragment = contentAssist.ContentAssistFragment auto-inject {} + + // generates a more lightweight Antlr parser and lexer tailored for content assist + fragment = parser.antlr.XtextAntlrUiGeneratorFragment auto-inject {} + + // generates junit test support classes into Generator#pathTestProject + fragment = junit.Junit4Fragment auto-inject {} + + // rename refactoring + fragment = refactoring.RefactorElementNameFragment auto-inject {} + + // provides the necessary bindings for java types integration + fragment = types.TypesGeneratorFragment auto-inject {} + + // generates the required bindings only if the grammar inherits from Xbase + fragment = xbase.XbaseGeneratorFragment auto-inject {} + + // generates the required bindings only if the grammar inherits from Xtype + fragment = xbase.XtypeGeneratorFragment auto-inject {} + + // provides a preference page for template proposals + fragment = templates.CodetemplatesGeneratorFragment auto-inject {} + + // provides a compare view + fragment = compare.CompareFragment auto-inject {} + } + } +} + diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/formatting/AlloyLanguageFormatter.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/formatting/AlloyLanguageFormatter.xtend new file mode 100644 index 00000000..e5ce7773 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/formatting/AlloyLanguageFormatter.xtend @@ -0,0 +1,96 @@ +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner.formatting + +import com.google.inject.Inject +import hu.bme.mit.inf.dslreasoner.services.AlloyLanguageGrammarAccess +import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter +import org.eclipse.xtext.formatting.impl.FormattingConfig + +/** + * This class contains custom formatting description. + * + * see : http://www.eclipse.org/Xtext/documentation.html#formatting + * on how and when to use it + * + * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example + */ +class AlloyLanguageFormatter extends AbstractDeclarativeFormatter { + + @Inject extension AlloyLanguageGrammarAccess + + override protected void configureFormatting(FormattingConfig c) { + // It's usually a good idea to activate the following three statements. + // They will add and preserve newlines around comments + c.setLinewrap(0, 1, 2).before(SL_COMMENTRule) + c.setLinewrap(0, 1, 2).before(ML_COMMENTRule) + c.setLinewrap(0, 1, 1).after(ML_COMMENTRule) + + c.setAutoLinewrap(100000); + + //Signatures + c.setIndentationIncrement.after(ALSSignatureBodyAccess.leftCurlyBracketKeyword_5); + c.setLinewrap.after(ALSSignatureBodyAccess.leftCurlyBracketKeyword_5) + c.setIndentationDecrement.before(ALSSignatureBodyAccess.rightCurlyBracketKeyword_7); + c.setLinewrap.after(ALSSignatureBodyAccess.rightCurlyBracketKeyword_7) + c.setLinewrap.before(ALSSignatureBodyAccess.rightCurlyBracketKeyword_7) + c.setNoSpace.before(ALSSignatureBodyAccess.commaKeyword_3_0) + c.setLinewrap.after(ALSSignatureBodyAccess.commaKeyword_3_0) + c.setNoSpace.before(ALSSignatureBodyAccess.commaKeyword_3_0) + c.setNoSpace.before(ALSSignatureBodyAccess.commaKeyword_6_1_0) + c.setLinewrap.after(ALSSignatureBodyAccess.commaKeyword_6_1_0) + c.setNoSpace.before(ALSSignatureBodyAccess.commaKeyword_6_1_0) + //c.setLinewrap(0,1,2).between(ALSSignatureDeclarationRule,ALSSignatureDeclarationRule) + + //Enums + c.setIndentationIncrement.after(ALSEnumDeclarationAccess.leftCurlyBracketKeyword_2) + c.setLinewrap.after(ALSEnumDeclarationAccess.leftCurlyBracketKeyword_2) + c.setIndentationDecrement.before(ALSEnumDeclarationAccess.rightCurlyBracketKeyword_5) + c.setLinewrap.before(ALSEnumDeclarationAccess.rightCurlyBracketKeyword_5) + c.setLinewrap.after(ALSEnumDeclarationAccess.rightCurlyBracketKeyword_5) + c.setNoSpace.before(ALSEnumDeclarationAccess.commaKeyword_4_0) + + + //facts + c.setIndentationIncrement.after(ALSFactDeclarationAccess.leftCurlyBracketKeyword_3) + c.setLinewrap.after(ALSFactDeclarationAccess.leftCurlyBracketKeyword_3) + c.setIndentationDecrement.before(ALSFactDeclarationAccess.rightCurlyBracketKeyword_5) + c.setLinewrap.before(ALSFactDeclarationAccess.rightCurlyBracketKeyword_5) + c.setLinewrap.after(ALSFactDeclarationAccess.rightCurlyBracketKeyword_5) + + //predicates + c.setIndentationIncrement.after(ALSRelationDefinitionAccess.leftCurlyBracketKeyword_6) + c.setLinewrap.after(ALSRelationDefinitionAccess.leftCurlyBracketKeyword_6) + c.setIndentationDecrement.before(ALSRelationDefinitionAccess.rightCurlyBracketKeyword_8) + c.setLinewrap.before(ALSRelationDefinitionAccess.rightCurlyBracketKeyword_8) + c.setLinewrap.after(ALSRelationDefinitionAccess.rightCurlyBracketKeyword_8) + c.setNoSpace.after(ALSRelationDefinitionAccess.leftSquareBracketKeyword_2) + c.setNoSpace.before(ALSRelationDefinitionAccess.rightSquareBracketKeyword_5) + c.setNoSpace.before(ALSRelationDefinitionAccess.commaKeyword_4_0) + + // terms + //c.setNoSpace.before(ALSJoinAccess.rightSquareBracketKeyword_1_2_1_3) + c.setNoSpace.before(ALSJoinAccess.fullStopKeyword_1_1) + c.setNoSpace.after(ALSJoinAccess.fullStopKeyword_1_1) + + c.setNoSpace.before(ALSDirectProductAccess.hyphenMinusGreaterThanSignKeyword_1_2) + c.setNoSpace.after(ALSDirectProductAccess.hyphenMinusGreaterThanSignKeyword_1_2) + + c.setNoSpace.before(ALSVariableDeclarationAccess.colonKeyword_1) +// c.setNoSpace.before(ALSPreficedAccess.commaKeyword_5_3_0) +// c.setNoSpace.before(ALSPreficedAccess.commaKeyword_6_4_0) +// +// c.setIndentationIncrement.after(ALSPreficedAccess.leftCurlyBracketKeyword_5_4) +// c.setLinewrap.after(ALSPreficedAccess.leftCurlyBracketKeyword_5_4) +// c.setLinewrap.before(ALSPreficedAccess.rightCurlyBracketKeyword_5_6) +// c.setIndentationDecrement.before(ALSPreficedAccess.rightCurlyBracketKeyword_5_6) + + c.setNoSpace.after(ALSBasicRelationTermAccess.leftParenthesisKeyword_8_0) + c.setNoSpace.before(ALSBasicRelationTermAccess.rightParenthesisKeyword_8_2) + + // Quantified expression + c.setNoSpace.before(ALSQuantifiedAccess.commaKeyword_0_4_0) + + } +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/generator/AlloyLanguageGenerator.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/generator/AlloyLanguageGenerator.xtend new file mode 100644 index 00000000..c1ad5629 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/generator/AlloyLanguageGenerator.xtend @@ -0,0 +1,24 @@ +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner.generator + +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.generator.IGenerator +import org.eclipse.xtext.generator.IFileSystemAccess + +/** + * Generates code from your model files on save. + * + * see http://www.eclipse.org/Xtext/documentation.html#TutorialCodeGeneration + */ +class AlloyLanguageGenerator implements IGenerator { + + override void doGenerate(Resource resource, IFileSystemAccess fsa) { +// fsa.generateFile('greetings.txt', 'People to greet: ' + +// resource.allContents +// .filter(typeof(Greeting)) +// .map[name] +// .join(', ')) + } +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/scoping/AlloyLanguageScopeProvider.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/scoping/AlloyLanguageScopeProvider.xtend new file mode 100644 index 00000000..b2333f51 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/scoping/AlloyLanguageScopeProvider.xtend @@ -0,0 +1,81 @@ +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner.scoping + +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDefinition +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSDocument +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSEnumDeclaration +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSFunctionCall +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSQuantifiedEx +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSReference +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDeclaration +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSRelationDefinition +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSignatureBody +import hu.bme.mit.inf.dslreasoner.alloyLanguage.ALSSum +import java.util.ArrayList +import java.util.Collections +import java.util.HashSet +import java.util.LinkedList +import java.util.List +import java.util.Set +import org.eclipse.emf.ecore.EObject +import org.eclipse.emf.ecore.EReference +import org.eclipse.xtext.scoping.IScope +import org.eclipse.xtext.scoping.Scopes +import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider + +/** + * This class contains custom scoping description. + * + * see : http://www.eclipse.org/Xtext/documentation.html#scoping + * on how and when to use it + * + */ +class AlloyLanguageScopeProvider extends AbstractDeclarativeScopeProvider { + + def public IScope scope_ALSReference_referred(ALSReference alsReferecnce, EReference ref) { + val Set declarations = new HashSet + + val parent = alsReferecnce.getAllParents(ALSDocument).head as ALSDocument + val signatures = parent.signatureBodies.map[ALSSignatureBody x|x.declarations].flatten + declarations+=parent.enumDeclarations + declarations+=signatures + declarations+=parent.enumDeclarations.map[ALSEnumDeclaration x | x.literal].flatten + declarations+=parent.signatureBodies.map[ALSSignatureBody x|x.fields].flatten + + declarations+=alsReferecnce.getAllParents(ALSQuantifiedEx).map[ALSQuantifiedEx x | x.variables].flatten + declarations+=alsReferecnce.getAllParents(ALSSum).map[ALSSum x | x.variables].flatten + declarations+=alsReferecnce.getAllParents(ALSRelationDefinition).map[ALSRelationDefinition x | x.variables].flatten + +// println("---") +// println(declarations.map[it.name].join(", ")) + + return Scopes.scopeFor(declarations) + } + //{ALSFunctionCall} (/*functionName=ALSID |*/ referredDefinition=[ALSDefinition]) + def public IScope scope_ALSFunctionCall_referredDefinition(ALSFunctionCall call, EReference ref) { + val parent = call.getAllParents(ALSDocument).head as ALSDocument + val list = new LinkedList + list += parent.relationDefinitions + list += parent.functionDefinitions + //list.forEach[println(it.name + " " + it.eContainer)] + return Scopes.scopeFor(list) + } + + def List getAllParents(EObject object, Class type) { + if(object.eContainer == null) { + return Collections.EMPTY_LIST + } else { + val container = object.eContainer; + val previousParents = container.getAllParents(type) + if(type.isInstance(container)){ + val res = new ArrayList(previousParents) + res+= container as X + return res + } + else return previousParents + + } + } +} diff --git a/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/validation/AlloyLanguageValidator.xtend b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/validation/AlloyLanguageValidator.xtend new file mode 100644 index 00000000..daeb9860 --- /dev/null +++ b/Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language/src/hu/bme/mit/inf/dslreasoner/validation/AlloyLanguageValidator.xtend @@ -0,0 +1,24 @@ +/* + * generated by Xtext + */ +package hu.bme.mit.inf.dslreasoner.validation +//import org.eclipse.xtext.validation.Check + +/** + * Custom validation rules. + * + * see http://www.eclipse.org/Xtext/documentation.html#validation + */ +class AlloyLanguageValidator extends AbstractAlloyLanguageValidator { + +// 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', +// MyDslPackage.Literals.GREETING__NAME, +// INVALID_NAME) +// } +// } +} -- cgit v1.2.3-54-g00ecf