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 --- .../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 + 10 files changed, 43875 insertions(+) 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 (limited to 'Solvers/Alloy-Solver2/hu.bme.mit.inf.dslreasoner.alloy.language.ui/src-gen/hu') 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(); + } + +} -- cgit v1.2.3-54-g00ecf