/* * generated by Xtext 2.26.0.M1 */ grammar InternalProblem; options { superClass=AbstractInternalContentAssistParser; } @lexer::header { package org.eclipse.viatra.solver.language.ide.contentassist.antlr.internal; // Hack: Use our own Lexer superclass by means of import. // Currently there is no other way to specify the superclass for the lexer. import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.Lexer; } @parser::header { package org.eclipse.viatra.solver.language.ide.contentassist.antlr.internal; import java.io.InputStream; import org.eclipse.xtext.*; import org.eclipse.xtext.parser.*; import org.eclipse.xtext.parser.impl.*; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.parser.antlr.XtextTokenStream; import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser; import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.DFA; import org.eclipse.viatra.solver.language.services.ProblemGrammarAccess; } @parser::members { private ProblemGrammarAccess grammarAccess; public void setGrammarAccess(ProblemGrammarAccess grammarAccess) { this.grammarAccess = grammarAccess; } @Override protected Grammar getGrammar() { return grammarAccess.getGrammar(); } @Override protected String getValueForTokenName(String tokenName) { return tokenName; } } // Entry rule entryRuleProblem entryRuleProblem : { before(grammarAccess.getProblemRule()); } ruleProblem { after(grammarAccess.getProblemRule()); } EOF ; // Rule Problem ruleProblem @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getProblemAccess().getGroup()); } (rule__Problem__Group__0) { after(grammarAccess.getProblemAccess().getGroup()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleStatement entryRuleStatement : { before(grammarAccess.getStatementRule()); } ruleStatement { after(grammarAccess.getStatementRule()); } EOF ; // Rule Statement ruleStatement @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getStatementAccess().getAlternatives()); } (rule__Statement__Alternatives) { after(grammarAccess.getStatementAccess().getAlternatives()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleClassDeclaration entryRuleClassDeclaration : { before(grammarAccess.getClassDeclarationRule()); } ruleClassDeclaration { after(grammarAccess.getClassDeclarationRule()); } EOF ; // Rule ClassDeclaration ruleClassDeclaration @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getGroup()); } (rule__ClassDeclaration__Group__0) { after(grammarAccess.getClassDeclarationAccess().getGroup()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleEnumDeclaration entryRuleEnumDeclaration : { before(grammarAccess.getEnumDeclarationRule()); } ruleEnumDeclaration { after(grammarAccess.getEnumDeclarationRule()); } EOF ; // Rule EnumDeclaration ruleEnumDeclaration @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getEnumDeclarationAccess().getGroup()); } (rule__EnumDeclaration__Group__0) { after(grammarAccess.getEnumDeclarationAccess().getGroup()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleEnumLiteral entryRuleEnumLiteral : { before(grammarAccess.getEnumLiteralRule()); } ruleEnumLiteral { after(grammarAccess.getEnumLiteralRule()); } EOF ; // Rule EnumLiteral ruleEnumLiteral @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getEnumLiteralAccess().getNameAssignment()); } (rule__EnumLiteral__NameAssignment) { after(grammarAccess.getEnumLiteralAccess().getNameAssignment()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleReferenceDeclaration entryRuleReferenceDeclaration : { before(grammarAccess.getReferenceDeclarationRule()); } ruleReferenceDeclaration { after(grammarAccess.getReferenceDeclarationRule()); } EOF ; // Rule ReferenceDeclaration ruleReferenceDeclaration @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getReferenceDeclarationAccess().getGroup()); } (rule__ReferenceDeclaration__Group__0) { after(grammarAccess.getReferenceDeclarationAccess().getGroup()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRulePredicateDefinition entryRulePredicateDefinition : { before(grammarAccess.getPredicateDefinitionRule()); } rulePredicateDefinition { after(grammarAccess.getPredicateDefinitionRule()); } EOF ; // Rule PredicateDefinition rulePredicateDefinition @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getGroup()); } (rule__PredicateDefinition__Group__0) { after(grammarAccess.getPredicateDefinitionAccess().getGroup()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleParameter entryRuleParameter : { before(grammarAccess.getParameterRule()); } ruleParameter { after(grammarAccess.getParameterRule()); } EOF ; // Rule Parameter ruleParameter @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getParameterAccess().getGroup()); } (rule__Parameter__Group__0) { after(grammarAccess.getParameterAccess().getGroup()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleConjunction entryRuleConjunction : { before(grammarAccess.getConjunctionRule()); } ruleConjunction { after(grammarAccess.getConjunctionRule()); } EOF ; // Rule Conjunction ruleConjunction @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getConjunctionAccess().getGroup()); } (rule__Conjunction__Group__0) { after(grammarAccess.getConjunctionAccess().getGroup()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleLiteral entryRuleLiteral : { before(grammarAccess.getLiteralRule()); } ruleLiteral { after(grammarAccess.getLiteralRule()); } EOF ; // Rule Literal ruleLiteral @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getLiteralAccess().getAlternatives()); } (rule__Literal__Alternatives) { after(grammarAccess.getLiteralAccess().getAlternatives()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleNegativeLiteral entryRuleNegativeLiteral : { before(grammarAccess.getNegativeLiteralRule()); } ruleNegativeLiteral { after(grammarAccess.getNegativeLiteralRule()); } EOF ; // Rule NegativeLiteral ruleNegativeLiteral @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getNegativeLiteralAccess().getGroup()); } (rule__NegativeLiteral__Group__0) { after(grammarAccess.getNegativeLiteralAccess().getGroup()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleAtom entryRuleAtom : { before(grammarAccess.getAtomRule()); } ruleAtom { after(grammarAccess.getAtomRule()); } EOF ; // Rule Atom ruleAtom @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAtomAccess().getGroup()); } (rule__Atom__Group__0) { after(grammarAccess.getAtomAccess().getGroup()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleArgument entryRuleArgument : { before(grammarAccess.getArgumentRule()); } ruleArgument { after(grammarAccess.getArgumentRule()); } EOF ; // Rule Argument ruleArgument @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getArgumentAccess().getVariableOrNodeAssignment()); } (rule__Argument__VariableOrNodeAssignment) { after(grammarAccess.getArgumentAccess().getVariableOrNodeAssignment()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleAssertion entryRuleAssertion : { before(grammarAccess.getAssertionRule()); } ruleAssertion { after(grammarAccess.getAssertionRule()); } EOF ; // Rule Assertion ruleAssertion @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getGroup()); } (rule__Assertion__Group__0) { after(grammarAccess.getAssertionAccess().getGroup()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleScopeDeclaration entryRuleScopeDeclaration : { before(grammarAccess.getScopeDeclarationRule()); } ruleScopeDeclaration { after(grammarAccess.getScopeDeclarationRule()); } EOF ; // Rule ScopeDeclaration ruleScopeDeclaration @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getScopeDeclarationAccess().getGroup()); } (rule__ScopeDeclaration__Group__0) { after(grammarAccess.getScopeDeclarationAccess().getGroup()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleTypeScope entryRuleTypeScope : { before(grammarAccess.getTypeScopeRule()); } ruleTypeScope { after(grammarAccess.getTypeScopeRule()); } EOF ; // Rule TypeScope ruleTypeScope @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getTypeScopeAccess().getGroup()); } (rule__TypeScope__Group__0) { after(grammarAccess.getTypeScopeAccess().getGroup()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleMultiplicity entryRuleMultiplicity : { before(grammarAccess.getMultiplicityRule()); } ruleMultiplicity { after(grammarAccess.getMultiplicityRule()); } EOF ; // Rule Multiplicity ruleMultiplicity @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getMultiplicityAccess().getAlternatives()); } (rule__Multiplicity__Alternatives) { after(grammarAccess.getMultiplicityAccess().getAlternatives()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleDefiniteMultiplicity entryRuleDefiniteMultiplicity : { before(grammarAccess.getDefiniteMultiplicityRule()); } ruleDefiniteMultiplicity { after(grammarAccess.getDefiniteMultiplicityRule()); } EOF ; // Rule DefiniteMultiplicity ruleDefiniteMultiplicity @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getDefiniteMultiplicityAccess().getAlternatives()); } (rule__DefiniteMultiplicity__Alternatives) { after(grammarAccess.getDefiniteMultiplicityAccess().getAlternatives()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleUnboundedMultiplicity entryRuleUnboundedMultiplicity : { before(grammarAccess.getUnboundedMultiplicityRule()); } ruleUnboundedMultiplicity { after(grammarAccess.getUnboundedMultiplicityRule()); } EOF ; // Rule UnboundedMultiplicity ruleUnboundedMultiplicity @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getUnboundedMultiplicityAccess().getUnboundedMultiplicityAction()); } () { after(grammarAccess.getUnboundedMultiplicityAccess().getUnboundedMultiplicityAction()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleRangeMultiplicity entryRuleRangeMultiplicity : { before(grammarAccess.getRangeMultiplicityRule()); } ruleRangeMultiplicity { after(grammarAccess.getRangeMultiplicityRule()); } EOF ; // Rule RangeMultiplicity ruleRangeMultiplicity @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getRangeMultiplicityAccess().getGroup()); } (rule__RangeMultiplicity__Group__0) { after(grammarAccess.getRangeMultiplicityAccess().getGroup()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleExactMultiplicity entryRuleExactMultiplicity : { before(grammarAccess.getExactMultiplicityRule()); } ruleExactMultiplicity { after(grammarAccess.getExactMultiplicityRule()); } EOF ; // Rule ExactMultiplicity ruleExactMultiplicity @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getExactMultiplicityAccess().getExactValueAssignment()); } (rule__ExactMultiplicity__ExactValueAssignment) { after(grammarAccess.getExactMultiplicityAccess().getExactValueAssignment()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleUpperBound entryRuleUpperBound : { before(grammarAccess.getUpperBoundRule()); } ruleUpperBound { after(grammarAccess.getUpperBoundRule()); } EOF ; // Rule UpperBound ruleUpperBound @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getUpperBoundAccess().getAlternatives()); } (rule__UpperBound__Alternatives) { after(grammarAccess.getUpperBoundAccess().getAlternatives()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleQuotedOrUnquotedId entryRuleQuotedOrUnquotedId : { before(grammarAccess.getQuotedOrUnquotedIdRule()); } ruleQuotedOrUnquotedId { after(grammarAccess.getQuotedOrUnquotedIdRule()); } EOF ; // Rule QuotedOrUnquotedId ruleQuotedOrUnquotedId @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getQuotedOrUnquotedIdAccess().getAlternatives()); } (rule__QuotedOrUnquotedId__Alternatives) { after(grammarAccess.getQuotedOrUnquotedIdAccess().getAlternatives()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleQualifiedName entryRuleQualifiedName : { before(grammarAccess.getQualifiedNameRule()); } ruleQualifiedName { after(grammarAccess.getQualifiedNameRule()); } EOF ; // Rule QualifiedName ruleQualifiedName @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getQualifiedNameAccess().getAlternatives()); } (rule__QualifiedName__Alternatives) { after(grammarAccess.getQualifiedNameAccess().getAlternatives()); } ) ; finally { restoreStackSize(stackSize); } // Entry rule entryRuleIdentifier entryRuleIdentifier : { before(grammarAccess.getIdentifierRule()); } ruleIdentifier { after(grammarAccess.getIdentifierRule()); } EOF ; // Rule Identifier ruleIdentifier @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getIdentifierAccess().getAlternatives()); } (rule__Identifier__Alternatives) { after(grammarAccess.getIdentifierAccess().getAlternatives()); } ) ; finally { restoreStackSize(stackSize); } // Rule LogicValue ruleLogicValue @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getLogicValueAccess().getAlternatives()); } (rule__LogicValue__Alternatives) { after(grammarAccess.getLogicValueAccess().getAlternatives()); } ) ; finally { restoreStackSize(stackSize); } // Rule ShortLogicValue ruleShortLogicValue @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getShortLogicValueAccess().getAlternatives()); } (rule__ShortLogicValue__Alternatives) { after(grammarAccess.getShortLogicValueAccess().getAlternatives()); } ) ; finally { restoreStackSize(stackSize); } rule__Statement__Alternatives @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getStatementAccess().getClassDeclarationParserRuleCall_0()); } ruleClassDeclaration { after(grammarAccess.getStatementAccess().getClassDeclarationParserRuleCall_0()); } ) | ( { before(grammarAccess.getStatementAccess().getEnumDeclarationParserRuleCall_1()); } ruleEnumDeclaration { after(grammarAccess.getStatementAccess().getEnumDeclarationParserRuleCall_1()); } ) | ( { before(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_2()); } rulePredicateDefinition { after(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_2()); } ) | ( { before(grammarAccess.getStatementAccess().getAssertionParserRuleCall_3()); } ruleAssertion { after(grammarAccess.getStatementAccess().getAssertionParserRuleCall_3()); } ) | ( { before(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_4()); } ruleScopeDeclaration { after(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_4()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Alternatives_4 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getGroup_4_0()); } (rule__ClassDeclaration__Group_4_0__0) { after(grammarAccess.getClassDeclarationAccess().getGroup_4_0()); } ) | ( { before(grammarAccess.getClassDeclarationAccess().getFullStopKeyword_4_1()); } '.' { after(grammarAccess.getClassDeclarationAccess().getFullStopKeyword_4_1()); } ) ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Alternatives_2 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getEnumDeclarationAccess().getGroup_2_0()); } (rule__EnumDeclaration__Group_2_0__0) { after(grammarAccess.getEnumDeclarationAccess().getGroup_2_0()); } ) | ( { before(grammarAccess.getEnumDeclarationAccess().getFullStopKeyword_2_1()); } '.' { after(grammarAccess.getEnumDeclarationAccess().getFullStopKeyword_2_1()); } ) ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Alternatives_2_0_1_2 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_2_0()); } ',' { after(grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_2_0()); } ) | ( { before(grammarAccess.getEnumDeclarationAccess().getSemicolonKeyword_2_0_1_2_1()); } ';' { after(grammarAccess.getEnumDeclarationAccess().getSemicolonKeyword_2_0_1_2_1()); } ) ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Alternatives_0 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getReferenceDeclarationAccess().getContainmentAssignment_0_0()); } (rule__ReferenceDeclaration__ContainmentAssignment_0_0) { after(grammarAccess.getReferenceDeclarationAccess().getContainmentAssignment_0_0()); } ) | ( { before(grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1()); } 'refers' { after(grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Alternatives_0 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getGroup_0_0()); } (rule__PredicateDefinition__Group_0_0__0) { after(grammarAccess.getPredicateDefinitionAccess().getGroup_0_0()); } ) | ( { before(grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_1()); } 'pred' { after(grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Literal__Alternatives @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getLiteralAccess().getAtomParserRuleCall_0()); } ruleAtom { after(grammarAccess.getLiteralAccess().getAtomParserRuleCall_0()); } ) | ( { before(grammarAccess.getLiteralAccess().getNegativeLiteralParserRuleCall_1()); } ruleNegativeLiteral { after(grammarAccess.getLiteralAccess().getNegativeLiteralParserRuleCall_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Alternatives_0 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getGroup_0_0()); } (rule__Assertion__Group_0_0__0) { after(grammarAccess.getAssertionAccess().getGroup_0_0()); } ) | ( { before(grammarAccess.getAssertionAccess().getGroup_0_1()); } (rule__Assertion__Group_0_1__0) { after(grammarAccess.getAssertionAccess().getGroup_0_1()); } ) ; finally { restoreStackSize(stackSize); } rule__TypeScope__Alternatives_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getTypeScopeAccess().getIncrementAssignment_1_0()); } (rule__TypeScope__IncrementAssignment_1_0) { after(grammarAccess.getTypeScopeAccess().getIncrementAssignment_1_0()); } ) | ( { before(grammarAccess.getTypeScopeAccess().getEqualsSignKeyword_1_1()); } '=' { after(grammarAccess.getTypeScopeAccess().getEqualsSignKeyword_1_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Multiplicity__Alternatives @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getMultiplicityAccess().getUnboundedMultiplicityParserRuleCall_0()); } ruleUnboundedMultiplicity { after(grammarAccess.getMultiplicityAccess().getUnboundedMultiplicityParserRuleCall_0()); } ) | ( { before(grammarAccess.getMultiplicityAccess().getDefiniteMultiplicityParserRuleCall_1()); } ruleDefiniteMultiplicity { after(grammarAccess.getMultiplicityAccess().getDefiniteMultiplicityParserRuleCall_1()); } ) ; finally { restoreStackSize(stackSize); } rule__DefiniteMultiplicity__Alternatives @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getDefiniteMultiplicityAccess().getRangeMultiplicityParserRuleCall_0()); } ruleRangeMultiplicity { after(grammarAccess.getDefiniteMultiplicityAccess().getRangeMultiplicityParserRuleCall_0()); } ) | ( { before(grammarAccess.getDefiniteMultiplicityAccess().getExactMultiplicityParserRuleCall_1()); } ruleExactMultiplicity { after(grammarAccess.getDefiniteMultiplicityAccess().getExactMultiplicityParserRuleCall_1()); } ) ; finally { restoreStackSize(stackSize); } rule__UpperBound__Alternatives @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getUpperBoundAccess().getINTTerminalRuleCall_0()); } RULE_INT { after(grammarAccess.getUpperBoundAccess().getINTTerminalRuleCall_0()); } ) | ( { before(grammarAccess.getUpperBoundAccess().getAsteriskKeyword_1()); } '*' { after(grammarAccess.getUpperBoundAccess().getAsteriskKeyword_1()); } ) ; finally { restoreStackSize(stackSize); } rule__QuotedOrUnquotedId__Alternatives @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getQuotedOrUnquotedIdAccess().getQUOTED_IDTerminalRuleCall_0()); } RULE_QUOTED_ID { after(grammarAccess.getQuotedOrUnquotedIdAccess().getQUOTED_IDTerminalRuleCall_0()); } ) | ( { before(grammarAccess.getQuotedOrUnquotedIdAccess().getIdentifierParserRuleCall_1()); } ruleIdentifier { after(grammarAccess.getQuotedOrUnquotedIdAccess().getIdentifierParserRuleCall_1()); } ) ; finally { restoreStackSize(stackSize); } rule__QualifiedName__Alternatives @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_0()); } RULE_QUOTED_ID { after(grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_0()); } ) | ( { before(grammarAccess.getQualifiedNameAccess().getGroup_1()); } (rule__QualifiedName__Group_1__0) { after(grammarAccess.getQualifiedNameAccess().getGroup_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Identifier__Alternatives @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getIdentifierAccess().getIDTerminalRuleCall_0()); } RULE_ID { after(grammarAccess.getIdentifierAccess().getIDTerminalRuleCall_0()); } ) | ( { before(grammarAccess.getIdentifierAccess().getTrueKeyword_1()); } 'true' { after(grammarAccess.getIdentifierAccess().getTrueKeyword_1()); } ) | ( { before(grammarAccess.getIdentifierAccess().getFalseKeyword_2()); } 'false' { after(grammarAccess.getIdentifierAccess().getFalseKeyword_2()); } ) ; finally { restoreStackSize(stackSize); } rule__LogicValue__Alternatives @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0()); } ('true') { after(grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0()); } ) | ( { before(grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1()); } ('false') { after(grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1()); } ) | ( { before(grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2()); } ('unknown') { after(grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2()); } ) ; finally { restoreStackSize(stackSize); } rule__ShortLogicValue__Alternatives @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0()); } ('!') { after(grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0()); } ) | ( { before(grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1()); } ('?') { after(grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Problem__Group__0 @init { int stackSize = keepStackSize(); } : rule__Problem__Group__0__Impl rule__Problem__Group__1 ; finally { restoreStackSize(stackSize); } rule__Problem__Group__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getProblemAccess().getGroup_0()); } (rule__Problem__Group_0__0)? { after(grammarAccess.getProblemAccess().getGroup_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Problem__Group__1 @init { int stackSize = keepStackSize(); } : rule__Problem__Group__1__Impl ; finally { restoreStackSize(stackSize); } rule__Problem__Group__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getProblemAccess().getStatementsAssignment_1()); } (rule__Problem__StatementsAssignment_1)* { after(grammarAccess.getProblemAccess().getStatementsAssignment_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Problem__Group_0__0 @init { int stackSize = keepStackSize(); } : rule__Problem__Group_0__0__Impl rule__Problem__Group_0__1 ; finally { restoreStackSize(stackSize); } rule__Problem__Group_0__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getProblemAccess().getProblemKeyword_0_0()); } 'problem' { after(grammarAccess.getProblemAccess().getProblemKeyword_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Problem__Group_0__1 @init { int stackSize = keepStackSize(); } : rule__Problem__Group_0__1__Impl rule__Problem__Group_0__2 ; finally { restoreStackSize(stackSize); } rule__Problem__Group_0__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getProblemAccess().getNameAssignment_0_1()); } (rule__Problem__NameAssignment_0_1) { after(grammarAccess.getProblemAccess().getNameAssignment_0_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Problem__Group_0__2 @init { int stackSize = keepStackSize(); } : rule__Problem__Group_0__2__Impl ; finally { restoreStackSize(stackSize); } rule__Problem__Group_0__2__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getProblemAccess().getFullStopKeyword_0_2()); } '.' { after(grammarAccess.getProblemAccess().getFullStopKeyword_0_2()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group__0 @init { int stackSize = keepStackSize(); } : rule__ClassDeclaration__Group__0__Impl rule__ClassDeclaration__Group__1 ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getAbstractAssignment_0()); } (rule__ClassDeclaration__AbstractAssignment_0)? { after(grammarAccess.getClassDeclarationAccess().getAbstractAssignment_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group__1 @init { int stackSize = keepStackSize(); } : rule__ClassDeclaration__Group__1__Impl rule__ClassDeclaration__Group__2 ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getClassKeyword_1()); } 'class' { after(grammarAccess.getClassDeclarationAccess().getClassKeyword_1()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group__2 @init { int stackSize = keepStackSize(); } : rule__ClassDeclaration__Group__2__Impl rule__ClassDeclaration__Group__3 ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group__2__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getNameAssignment_2()); } (rule__ClassDeclaration__NameAssignment_2) { after(grammarAccess.getClassDeclarationAccess().getNameAssignment_2()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group__3 @init { int stackSize = keepStackSize(); } : rule__ClassDeclaration__Group__3__Impl rule__ClassDeclaration__Group__4 ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group__3__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getGroup_3()); } (rule__ClassDeclaration__Group_3__0)? { after(grammarAccess.getClassDeclarationAccess().getGroup_3()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group__4 @init { int stackSize = keepStackSize(); } : rule__ClassDeclaration__Group__4__Impl ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group__4__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getAlternatives_4()); } (rule__ClassDeclaration__Alternatives_4) { after(grammarAccess.getClassDeclarationAccess().getAlternatives_4()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group_3__0 @init { int stackSize = keepStackSize(); } : rule__ClassDeclaration__Group_3__0__Impl rule__ClassDeclaration__Group_3__1 ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group_3__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0()); } 'extends' { after(grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group_3__1 @init { int stackSize = keepStackSize(); } : rule__ClassDeclaration__Group_3__1__Impl rule__ClassDeclaration__Group_3__2 ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group_3__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getSuperTypesAssignment_3_1()); } (rule__ClassDeclaration__SuperTypesAssignment_3_1) { after(grammarAccess.getClassDeclarationAccess().getSuperTypesAssignment_3_1()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group_3__2 @init { int stackSize = keepStackSize(); } : rule__ClassDeclaration__Group_3__2__Impl ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group_3__2__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getGroup_3_2()); } (rule__ClassDeclaration__Group_3_2__0)* { after(grammarAccess.getClassDeclarationAccess().getGroup_3_2()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group_3_2__0 @init { int stackSize = keepStackSize(); } : rule__ClassDeclaration__Group_3_2__0__Impl rule__ClassDeclaration__Group_3_2__1 ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group_3_2__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_2_0()); } ',' { after(grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_2_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group_3_2__1 @init { int stackSize = keepStackSize(); } : rule__ClassDeclaration__Group_3_2__1__Impl ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group_3_2__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getSuperTypesAssignment_3_2_1()); } (rule__ClassDeclaration__SuperTypesAssignment_3_2_1) { after(grammarAccess.getClassDeclarationAccess().getSuperTypesAssignment_3_2_1()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group_4_0__0 @init { int stackSize = keepStackSize(); } : rule__ClassDeclaration__Group_4_0__0__Impl rule__ClassDeclaration__Group_4_0__1 ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group_4_0__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0()); } '{' { after(grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group_4_0__1 @init { int stackSize = keepStackSize(); } : rule__ClassDeclaration__Group_4_0__1__Impl rule__ClassDeclaration__Group_4_0__2 ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group_4_0__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getGroup_4_0_1()); } (rule__ClassDeclaration__Group_4_0_1__0)* { after(grammarAccess.getClassDeclarationAccess().getGroup_4_0_1()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group_4_0__2 @init { int stackSize = keepStackSize(); } : rule__ClassDeclaration__Group_4_0__2__Impl ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group_4_0__2__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getRightCurlyBracketKeyword_4_0_2()); } '}' { after(grammarAccess.getClassDeclarationAccess().getRightCurlyBracketKeyword_4_0_2()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group_4_0_1__0 @init { int stackSize = keepStackSize(); } : rule__ClassDeclaration__Group_4_0_1__0__Impl rule__ClassDeclaration__Group_4_0_1__1 ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group_4_0_1__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsAssignment_4_0_1_0()); } (rule__ClassDeclaration__ReferenceDeclarationsAssignment_4_0_1_0) { after(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsAssignment_4_0_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group_4_0_1__1 @init { int stackSize = keepStackSize(); } : rule__ClassDeclaration__Group_4_0_1__1__Impl ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__Group_4_0_1__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getSemicolonKeyword_4_0_1_1()); } (';')? { after(grammarAccess.getClassDeclarationAccess().getSemicolonKeyword_4_0_1_1()); } ) ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group__0 @init { int stackSize = keepStackSize(); } : rule__EnumDeclaration__Group__0__Impl rule__EnumDeclaration__Group__1 ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getEnumDeclarationAccess().getEnumKeyword_0()); } 'enum' { after(grammarAccess.getEnumDeclarationAccess().getEnumKeyword_0()); } ) ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group__1 @init { int stackSize = keepStackSize(); } : rule__EnumDeclaration__Group__1__Impl rule__EnumDeclaration__Group__2 ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getEnumDeclarationAccess().getNameAssignment_1()); } (rule__EnumDeclaration__NameAssignment_1) { after(grammarAccess.getEnumDeclarationAccess().getNameAssignment_1()); } ) ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group__2 @init { int stackSize = keepStackSize(); } : rule__EnumDeclaration__Group__2__Impl ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group__2__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getEnumDeclarationAccess().getAlternatives_2()); } (rule__EnumDeclaration__Alternatives_2) { after(grammarAccess.getEnumDeclarationAccess().getAlternatives_2()); } ) ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group_2_0__0 @init { int stackSize = keepStackSize(); } : rule__EnumDeclaration__Group_2_0__0__Impl rule__EnumDeclaration__Group_2_0__1 ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group_2_0__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getEnumDeclarationAccess().getLeftCurlyBracketKeyword_2_0_0()); } '{' { after(grammarAccess.getEnumDeclarationAccess().getLeftCurlyBracketKeyword_2_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group_2_0__1 @init { int stackSize = keepStackSize(); } : rule__EnumDeclaration__Group_2_0__1__Impl rule__EnumDeclaration__Group_2_0__2 ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group_2_0__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getEnumDeclarationAccess().getGroup_2_0_1()); } (rule__EnumDeclaration__Group_2_0_1__0)? { after(grammarAccess.getEnumDeclarationAccess().getGroup_2_0_1()); } ) ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group_2_0__2 @init { int stackSize = keepStackSize(); } : rule__EnumDeclaration__Group_2_0__2__Impl ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group_2_0__2__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getEnumDeclarationAccess().getRightCurlyBracketKeyword_2_0_2()); } '}' { after(grammarAccess.getEnumDeclarationAccess().getRightCurlyBracketKeyword_2_0_2()); } ) ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group_2_0_1__0 @init { int stackSize = keepStackSize(); } : rule__EnumDeclaration__Group_2_0_1__0__Impl rule__EnumDeclaration__Group_2_0_1__1 ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group_2_0_1__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getEnumDeclarationAccess().getLiteralsAssignment_2_0_1_0()); } (rule__EnumDeclaration__LiteralsAssignment_2_0_1_0) { after(grammarAccess.getEnumDeclarationAccess().getLiteralsAssignment_2_0_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group_2_0_1__1 @init { int stackSize = keepStackSize(); } : rule__EnumDeclaration__Group_2_0_1__1__Impl rule__EnumDeclaration__Group_2_0_1__2 ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group_2_0_1__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getEnumDeclarationAccess().getGroup_2_0_1_1()); } (rule__EnumDeclaration__Group_2_0_1_1__0)* { after(grammarAccess.getEnumDeclarationAccess().getGroup_2_0_1_1()); } ) ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group_2_0_1__2 @init { int stackSize = keepStackSize(); } : rule__EnumDeclaration__Group_2_0_1__2__Impl ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group_2_0_1__2__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getEnumDeclarationAccess().getAlternatives_2_0_1_2()); } (rule__EnumDeclaration__Alternatives_2_0_1_2)? { after(grammarAccess.getEnumDeclarationAccess().getAlternatives_2_0_1_2()); } ) ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group_2_0_1_1__0 @init { int stackSize = keepStackSize(); } : rule__EnumDeclaration__Group_2_0_1_1__0__Impl rule__EnumDeclaration__Group_2_0_1_1__1 ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group_2_0_1_1__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_1_0()); } ',' { after(grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group_2_0_1_1__1 @init { int stackSize = keepStackSize(); } : rule__EnumDeclaration__Group_2_0_1_1__1__Impl ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__Group_2_0_1_1__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getEnumDeclarationAccess().getLiteralsAssignment_2_0_1_1_1()); } (rule__EnumDeclaration__LiteralsAssignment_2_0_1_1_1) { after(grammarAccess.getEnumDeclarationAccess().getLiteralsAssignment_2_0_1_1_1()); } ) ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Group__0 @init { int stackSize = keepStackSize(); } : rule__ReferenceDeclaration__Group__0__Impl rule__ReferenceDeclaration__Group__1 ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Group__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getReferenceDeclarationAccess().getAlternatives_0()); } (rule__ReferenceDeclaration__Alternatives_0)? { after(grammarAccess.getReferenceDeclarationAccess().getAlternatives_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Group__1 @init { int stackSize = keepStackSize(); } : rule__ReferenceDeclaration__Group__1__Impl rule__ReferenceDeclaration__Group__2 ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Group__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeAssignment_1()); } (rule__ReferenceDeclaration__ReferenceTypeAssignment_1) { after(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeAssignment_1()); } ) ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Group__2 @init { int stackSize = keepStackSize(); } : rule__ReferenceDeclaration__Group__2__Impl rule__ReferenceDeclaration__Group__3 ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Group__2__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getReferenceDeclarationAccess().getGroup_2()); } (rule__ReferenceDeclaration__Group_2__0)? { after(grammarAccess.getReferenceDeclarationAccess().getGroup_2()); } ) ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Group__3 @init { int stackSize = keepStackSize(); } : rule__ReferenceDeclaration__Group__3__Impl rule__ReferenceDeclaration__Group__4 ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Group__3__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getReferenceDeclarationAccess().getNameAssignment_3()); } (rule__ReferenceDeclaration__NameAssignment_3) { after(grammarAccess.getReferenceDeclarationAccess().getNameAssignment_3()); } ) ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Group__4 @init { int stackSize = keepStackSize(); } : rule__ReferenceDeclaration__Group__4__Impl ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Group__4__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getReferenceDeclarationAccess().getGroup_4()); } (rule__ReferenceDeclaration__Group_4__0)? { after(grammarAccess.getReferenceDeclarationAccess().getGroup_4()); } ) ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Group_2__0 @init { int stackSize = keepStackSize(); } : rule__ReferenceDeclaration__Group_2__0__Impl rule__ReferenceDeclaration__Group_2__1 ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Group_2__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getReferenceDeclarationAccess().getLeftSquareBracketKeyword_2_0()); } '[' { after(grammarAccess.getReferenceDeclarationAccess().getLeftSquareBracketKeyword_2_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Group_2__1 @init { int stackSize = keepStackSize(); } : rule__ReferenceDeclaration__Group_2__1__Impl rule__ReferenceDeclaration__Group_2__2 ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Group_2__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getReferenceDeclarationAccess().getMultiplicityAssignment_2_1()); } (rule__ReferenceDeclaration__MultiplicityAssignment_2_1) { after(grammarAccess.getReferenceDeclarationAccess().getMultiplicityAssignment_2_1()); } ) ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Group_2__2 @init { int stackSize = keepStackSize(); } : rule__ReferenceDeclaration__Group_2__2__Impl ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Group_2__2__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getReferenceDeclarationAccess().getRightSquareBracketKeyword_2_2()); } ']' { after(grammarAccess.getReferenceDeclarationAccess().getRightSquareBracketKeyword_2_2()); } ) ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Group_4__0 @init { int stackSize = keepStackSize(); } : rule__ReferenceDeclaration__Group_4__0__Impl rule__ReferenceDeclaration__Group_4__1 ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Group_4__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getReferenceDeclarationAccess().getOppositeKeyword_4_0()); } 'opposite' { after(grammarAccess.getReferenceDeclarationAccess().getOppositeKeyword_4_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Group_4__1 @init { int stackSize = keepStackSize(); } : rule__ReferenceDeclaration__Group_4__1__Impl ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__Group_4__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getReferenceDeclarationAccess().getOppositeAssignment_4_1()); } (rule__ReferenceDeclaration__OppositeAssignment_4_1) { after(grammarAccess.getReferenceDeclarationAccess().getOppositeAssignment_4_1()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group__0 @init { int stackSize = keepStackSize(); } : rule__PredicateDefinition__Group__0__Impl rule__PredicateDefinition__Group__1 ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getAlternatives_0()); } (rule__PredicateDefinition__Alternatives_0) { after(grammarAccess.getPredicateDefinitionAccess().getAlternatives_0()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group__1 @init { int stackSize = keepStackSize(); } : rule__PredicateDefinition__Group__1__Impl rule__PredicateDefinition__Group__2 ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getNameAssignment_1()); } (rule__PredicateDefinition__NameAssignment_1) { after(grammarAccess.getPredicateDefinitionAccess().getNameAssignment_1()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group__2 @init { int stackSize = keepStackSize(); } : rule__PredicateDefinition__Group__2__Impl rule__PredicateDefinition__Group__3 ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group__2__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getLeftParenthesisKeyword_2()); } '(' { after(grammarAccess.getPredicateDefinitionAccess().getLeftParenthesisKeyword_2()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group__3 @init { int stackSize = keepStackSize(); } : rule__PredicateDefinition__Group__3__Impl rule__PredicateDefinition__Group__4 ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group__3__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getGroup_3()); } (rule__PredicateDefinition__Group_3__0)? { after(grammarAccess.getPredicateDefinitionAccess().getGroup_3()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group__4 @init { int stackSize = keepStackSize(); } : rule__PredicateDefinition__Group__4__Impl rule__PredicateDefinition__Group__5 ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group__4__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getRightParenthesisKeyword_4()); } ')' { after(grammarAccess.getPredicateDefinitionAccess().getRightParenthesisKeyword_4()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group__5 @init { int stackSize = keepStackSize(); } : rule__PredicateDefinition__Group__5__Impl rule__PredicateDefinition__Group__6 ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group__5__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getGroup_5()); } (rule__PredicateDefinition__Group_5__0)? { after(grammarAccess.getPredicateDefinitionAccess().getGroup_5()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group__6 @init { int stackSize = keepStackSize(); } : rule__PredicateDefinition__Group__6__Impl ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group__6__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getFullStopKeyword_6()); } '.' { after(grammarAccess.getPredicateDefinitionAccess().getFullStopKeyword_6()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_0_0__0 @init { int stackSize = keepStackSize(); } : rule__PredicateDefinition__Group_0_0__0__Impl rule__PredicateDefinition__Group_0_0__1 ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_0_0__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getErrorAssignment_0_0_0()); } (rule__PredicateDefinition__ErrorAssignment_0_0_0) { after(grammarAccess.getPredicateDefinitionAccess().getErrorAssignment_0_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_0_0__1 @init { int stackSize = keepStackSize(); } : rule__PredicateDefinition__Group_0_0__1__Impl ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_0_0__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1()); } ('pred')? { after(grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_3__0 @init { int stackSize = keepStackSize(); } : rule__PredicateDefinition__Group_3__0__Impl rule__PredicateDefinition__Group_3__1 ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_3__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getParametersAssignment_3_0()); } (rule__PredicateDefinition__ParametersAssignment_3_0) { after(grammarAccess.getPredicateDefinitionAccess().getParametersAssignment_3_0()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_3__1 @init { int stackSize = keepStackSize(); } : rule__PredicateDefinition__Group_3__1__Impl ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_3__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getGroup_3_1()); } (rule__PredicateDefinition__Group_3_1__0)* { after(grammarAccess.getPredicateDefinitionAccess().getGroup_3_1()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_3_1__0 @init { int stackSize = keepStackSize(); } : rule__PredicateDefinition__Group_3_1__0__Impl rule__PredicateDefinition__Group_3_1__1 ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_3_1__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getCommaKeyword_3_1_0()); } ',' { after(grammarAccess.getPredicateDefinitionAccess().getCommaKeyword_3_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_3_1__1 @init { int stackSize = keepStackSize(); } : rule__PredicateDefinition__Group_3_1__1__Impl ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_3_1__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getParametersAssignment_3_1_1()); } (rule__PredicateDefinition__ParametersAssignment_3_1_1) { after(grammarAccess.getPredicateDefinitionAccess().getParametersAssignment_3_1_1()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_5__0 @init { int stackSize = keepStackSize(); } : rule__PredicateDefinition__Group_5__0__Impl rule__PredicateDefinition__Group_5__1 ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_5__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_5_0()); } ':-' { after(grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_5_0()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_5__1 @init { int stackSize = keepStackSize(); } : rule__PredicateDefinition__Group_5__1__Impl rule__PredicateDefinition__Group_5__2 ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_5__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getBodiesAssignment_5_1()); } (rule__PredicateDefinition__BodiesAssignment_5_1) { after(grammarAccess.getPredicateDefinitionAccess().getBodiesAssignment_5_1()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_5__2 @init { int stackSize = keepStackSize(); } : rule__PredicateDefinition__Group_5__2__Impl ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_5__2__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getGroup_5_2()); } (rule__PredicateDefinition__Group_5_2__0)* { after(grammarAccess.getPredicateDefinitionAccess().getGroup_5_2()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_5_2__0 @init { int stackSize = keepStackSize(); } : rule__PredicateDefinition__Group_5_2__0__Impl rule__PredicateDefinition__Group_5_2__1 ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_5_2__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getSemicolonKeyword_5_2_0()); } ';' { after(grammarAccess.getPredicateDefinitionAccess().getSemicolonKeyword_5_2_0()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_5_2__1 @init { int stackSize = keepStackSize(); } : rule__PredicateDefinition__Group_5_2__1__Impl ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__Group_5_2__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getBodiesAssignment_5_2_1()); } (rule__PredicateDefinition__BodiesAssignment_5_2_1) { after(grammarAccess.getPredicateDefinitionAccess().getBodiesAssignment_5_2_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Parameter__Group__0 @init { int stackSize = keepStackSize(); } : rule__Parameter__Group__0__Impl rule__Parameter__Group__1 ; finally { restoreStackSize(stackSize); } rule__Parameter__Group__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getParameterAccess().getParameterTypeAssignment_0()); } (rule__Parameter__ParameterTypeAssignment_0)? { after(grammarAccess.getParameterAccess().getParameterTypeAssignment_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Parameter__Group__1 @init { int stackSize = keepStackSize(); } : rule__Parameter__Group__1__Impl ; finally { restoreStackSize(stackSize); } rule__Parameter__Group__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getParameterAccess().getNameAssignment_1()); } (rule__Parameter__NameAssignment_1) { after(grammarAccess.getParameterAccess().getNameAssignment_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Conjunction__Group__0 @init { int stackSize = keepStackSize(); } : rule__Conjunction__Group__0__Impl rule__Conjunction__Group__1 ; finally { restoreStackSize(stackSize); } rule__Conjunction__Group__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getConjunctionAccess().getLiteralsAssignment_0()); } (rule__Conjunction__LiteralsAssignment_0) { after(grammarAccess.getConjunctionAccess().getLiteralsAssignment_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Conjunction__Group__1 @init { int stackSize = keepStackSize(); } : rule__Conjunction__Group__1__Impl ; finally { restoreStackSize(stackSize); } rule__Conjunction__Group__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getConjunctionAccess().getGroup_1()); } (rule__Conjunction__Group_1__0)* { after(grammarAccess.getConjunctionAccess().getGroup_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Conjunction__Group_1__0 @init { int stackSize = keepStackSize(); } : rule__Conjunction__Group_1__0__Impl rule__Conjunction__Group_1__1 ; finally { restoreStackSize(stackSize); } rule__Conjunction__Group_1__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getConjunctionAccess().getCommaKeyword_1_0()); } ',' { after(grammarAccess.getConjunctionAccess().getCommaKeyword_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Conjunction__Group_1__1 @init { int stackSize = keepStackSize(); } : rule__Conjunction__Group_1__1__Impl ; finally { restoreStackSize(stackSize); } rule__Conjunction__Group_1__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getConjunctionAccess().getLiteralsAssignment_1_1()); } (rule__Conjunction__LiteralsAssignment_1_1) { after(grammarAccess.getConjunctionAccess().getLiteralsAssignment_1_1()); } ) ; finally { restoreStackSize(stackSize); } rule__NegativeLiteral__Group__0 @init { int stackSize = keepStackSize(); } : rule__NegativeLiteral__Group__0__Impl rule__NegativeLiteral__Group__1 ; finally { restoreStackSize(stackSize); } rule__NegativeLiteral__Group__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getNegativeLiteralAccess().getExclamationMarkKeyword_0()); } '!' { after(grammarAccess.getNegativeLiteralAccess().getExclamationMarkKeyword_0()); } ) ; finally { restoreStackSize(stackSize); } rule__NegativeLiteral__Group__1 @init { int stackSize = keepStackSize(); } : rule__NegativeLiteral__Group__1__Impl ; finally { restoreStackSize(stackSize); } rule__NegativeLiteral__Group__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getNegativeLiteralAccess().getAtomAssignment_1()); } (rule__NegativeLiteral__AtomAssignment_1) { after(grammarAccess.getNegativeLiteralAccess().getAtomAssignment_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Atom__Group__0 @init { int stackSize = keepStackSize(); } : rule__Atom__Group__0__Impl rule__Atom__Group__1 ; finally { restoreStackSize(stackSize); } rule__Atom__Group__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAtomAccess().getRelationAssignment_0()); } (rule__Atom__RelationAssignment_0) { after(grammarAccess.getAtomAccess().getRelationAssignment_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Atom__Group__1 @init { int stackSize = keepStackSize(); } : rule__Atom__Group__1__Impl rule__Atom__Group__2 ; finally { restoreStackSize(stackSize); } rule__Atom__Group__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAtomAccess().getTransitiveClosureAssignment_1()); } (rule__Atom__TransitiveClosureAssignment_1)? { after(grammarAccess.getAtomAccess().getTransitiveClosureAssignment_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Atom__Group__2 @init { int stackSize = keepStackSize(); } : rule__Atom__Group__2__Impl rule__Atom__Group__3 ; finally { restoreStackSize(stackSize); } rule__Atom__Group__2__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAtomAccess().getLeftParenthesisKeyword_2()); } '(' { after(grammarAccess.getAtomAccess().getLeftParenthesisKeyword_2()); } ) ; finally { restoreStackSize(stackSize); } rule__Atom__Group__3 @init { int stackSize = keepStackSize(); } : rule__Atom__Group__3__Impl rule__Atom__Group__4 ; finally { restoreStackSize(stackSize); } rule__Atom__Group__3__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAtomAccess().getGroup_3()); } (rule__Atom__Group_3__0)? { after(grammarAccess.getAtomAccess().getGroup_3()); } ) ; finally { restoreStackSize(stackSize); } rule__Atom__Group__4 @init { int stackSize = keepStackSize(); } : rule__Atom__Group__4__Impl ; finally { restoreStackSize(stackSize); } rule__Atom__Group__4__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAtomAccess().getRightParenthesisKeyword_4()); } ')' { after(grammarAccess.getAtomAccess().getRightParenthesisKeyword_4()); } ) ; finally { restoreStackSize(stackSize); } rule__Atom__Group_3__0 @init { int stackSize = keepStackSize(); } : rule__Atom__Group_3__0__Impl rule__Atom__Group_3__1 ; finally { restoreStackSize(stackSize); } rule__Atom__Group_3__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAtomAccess().getArgumentsAssignment_3_0()); } (rule__Atom__ArgumentsAssignment_3_0) { after(grammarAccess.getAtomAccess().getArgumentsAssignment_3_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Atom__Group_3__1 @init { int stackSize = keepStackSize(); } : rule__Atom__Group_3__1__Impl ; finally { restoreStackSize(stackSize); } rule__Atom__Group_3__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAtomAccess().getGroup_3_1()); } (rule__Atom__Group_3_1__0)* { after(grammarAccess.getAtomAccess().getGroup_3_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Atom__Group_3_1__0 @init { int stackSize = keepStackSize(); } : rule__Atom__Group_3_1__0__Impl rule__Atom__Group_3_1__1 ; finally { restoreStackSize(stackSize); } rule__Atom__Group_3_1__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAtomAccess().getCommaKeyword_3_1_0()); } ',' { after(grammarAccess.getAtomAccess().getCommaKeyword_3_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Atom__Group_3_1__1 @init { int stackSize = keepStackSize(); } : rule__Atom__Group_3_1__1__Impl ; finally { restoreStackSize(stackSize); } rule__Atom__Group_3_1__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAtomAccess().getArgumentsAssignment_3_1_1()); } (rule__Atom__ArgumentsAssignment_3_1_1) { after(grammarAccess.getAtomAccess().getArgumentsAssignment_3_1_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group__0 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group__0__Impl rule__Assertion__Group__1 ; finally { restoreStackSize(stackSize); } rule__Assertion__Group__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getAlternatives_0()); } (rule__Assertion__Alternatives_0) { after(grammarAccess.getAssertionAccess().getAlternatives_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group__1 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group__1__Impl ; finally { restoreStackSize(stackSize); } rule__Assertion__Group__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getFullStopKeyword_1()); } '.' { after(grammarAccess.getAssertionAccess().getFullStopKeyword_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_0__0 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group_0_0__0__Impl rule__Assertion__Group_0_0__1 ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_0__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getRelationAssignment_0_0_0()); } (rule__Assertion__RelationAssignment_0_0_0) { after(grammarAccess.getAssertionAccess().getRelationAssignment_0_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_0__1 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group_0_0__1__Impl rule__Assertion__Group_0_0__2 ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_0__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_0_1()); } '(' { after(grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_0_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_0__2 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group_0_0__2__Impl rule__Assertion__Group_0_0__3 ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_0__2__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getGroup_0_0_2()); } (rule__Assertion__Group_0_0_2__0)? { after(grammarAccess.getAssertionAccess().getGroup_0_0_2()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_0__3 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group_0_0__3__Impl rule__Assertion__Group_0_0__4 ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_0__3__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_0_3()); } ')' { after(grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_0_3()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_0__4 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group_0_0__4__Impl rule__Assertion__Group_0_0__5 ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_0__4__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getColonKeyword_0_0_4()); } ':' { after(grammarAccess.getAssertionAccess().getColonKeyword_0_0_4()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_0__5 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group_0_0__5__Impl ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_0__5__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getValueAssignment_0_0_5()); } (rule__Assertion__ValueAssignment_0_0_5) { after(grammarAccess.getAssertionAccess().getValueAssignment_0_0_5()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_0_2__0 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group_0_0_2__0__Impl rule__Assertion__Group_0_0_2__1 ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_0_2__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_0_2_0()); } (rule__Assertion__ArgumentsAssignment_0_0_2_0) { after(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_0_2_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_0_2__1 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group_0_0_2__1__Impl ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_0_2__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getGroup_0_0_2_1()); } (rule__Assertion__Group_0_0_2_1__0)* { after(grammarAccess.getAssertionAccess().getGroup_0_0_2_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_0_2_1__0 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group_0_0_2_1__0__Impl rule__Assertion__Group_0_0_2_1__1 ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_0_2_1__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getCommaKeyword_0_0_2_1_0()); } ',' { after(grammarAccess.getAssertionAccess().getCommaKeyword_0_0_2_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_0_2_1__1 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group_0_0_2_1__1__Impl ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_0_2_1__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_0_2_1_1()); } (rule__Assertion__ArgumentsAssignment_0_0_2_1_1) { after(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_0_2_1_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_1__0 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group_0_1__0__Impl rule__Assertion__Group_0_1__1 ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_1__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getValueAssignment_0_1_0()); } (rule__Assertion__ValueAssignment_0_1_0)? { after(grammarAccess.getAssertionAccess().getValueAssignment_0_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_1__1 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group_0_1__1__Impl rule__Assertion__Group_0_1__2 ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_1__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getRelationAssignment_0_1_1()); } (rule__Assertion__RelationAssignment_0_1_1) { after(grammarAccess.getAssertionAccess().getRelationAssignment_0_1_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_1__2 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group_0_1__2__Impl rule__Assertion__Group_0_1__3 ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_1__2__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_1_2()); } '(' { after(grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_1_2()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_1__3 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group_0_1__3__Impl rule__Assertion__Group_0_1__4 ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_1__3__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getGroup_0_1_3()); } (rule__Assertion__Group_0_1_3__0)? { after(grammarAccess.getAssertionAccess().getGroup_0_1_3()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_1__4 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group_0_1__4__Impl ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_1__4__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_1_4()); } ')' { after(grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_1_4()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_1_3__0 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group_0_1_3__0__Impl rule__Assertion__Group_0_1_3__1 ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_1_3__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_1_3_0()); } (rule__Assertion__ArgumentsAssignment_0_1_3_0) { after(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_1_3_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_1_3__1 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group_0_1_3__1__Impl ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_1_3__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getGroup_0_1_3_1()); } (rule__Assertion__Group_0_1_3_1__0)* { after(grammarAccess.getAssertionAccess().getGroup_0_1_3_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_1_3_1__0 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group_0_1_3_1__0__Impl rule__Assertion__Group_0_1_3_1__1 ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_1_3_1__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getCommaKeyword_0_1_3_1_0()); } ',' { after(grammarAccess.getAssertionAccess().getCommaKeyword_0_1_3_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_1_3_1__1 @init { int stackSize = keepStackSize(); } : rule__Assertion__Group_0_1_3_1__1__Impl ; finally { restoreStackSize(stackSize); } rule__Assertion__Group_0_1_3_1__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_1_3_1_1()); } (rule__Assertion__ArgumentsAssignment_0_1_3_1_1) { after(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_1_3_1_1()); } ) ; finally { restoreStackSize(stackSize); } rule__ScopeDeclaration__Group__0 @init { int stackSize = keepStackSize(); } : rule__ScopeDeclaration__Group__0__Impl rule__ScopeDeclaration__Group__1 ; finally { restoreStackSize(stackSize); } rule__ScopeDeclaration__Group__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getScopeDeclarationAccess().getScopeKeyword_0()); } 'scope' { after(grammarAccess.getScopeDeclarationAccess().getScopeKeyword_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ScopeDeclaration__Group__1 @init { int stackSize = keepStackSize(); } : rule__ScopeDeclaration__Group__1__Impl rule__ScopeDeclaration__Group__2 ; finally { restoreStackSize(stackSize); } rule__ScopeDeclaration__Group__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getScopeDeclarationAccess().getTypeScopesAssignment_1()); } (rule__ScopeDeclaration__TypeScopesAssignment_1) { after(grammarAccess.getScopeDeclarationAccess().getTypeScopesAssignment_1()); } ) ; finally { restoreStackSize(stackSize); } rule__ScopeDeclaration__Group__2 @init { int stackSize = keepStackSize(); } : rule__ScopeDeclaration__Group__2__Impl rule__ScopeDeclaration__Group__3 ; finally { restoreStackSize(stackSize); } rule__ScopeDeclaration__Group__2__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getScopeDeclarationAccess().getGroup_2()); } (rule__ScopeDeclaration__Group_2__0)* { after(grammarAccess.getScopeDeclarationAccess().getGroup_2()); } ) ; finally { restoreStackSize(stackSize); } rule__ScopeDeclaration__Group__3 @init { int stackSize = keepStackSize(); } : rule__ScopeDeclaration__Group__3__Impl ; finally { restoreStackSize(stackSize); } rule__ScopeDeclaration__Group__3__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getScopeDeclarationAccess().getFullStopKeyword_3()); } '.' { after(grammarAccess.getScopeDeclarationAccess().getFullStopKeyword_3()); } ) ; finally { restoreStackSize(stackSize); } rule__ScopeDeclaration__Group_2__0 @init { int stackSize = keepStackSize(); } : rule__ScopeDeclaration__Group_2__0__Impl rule__ScopeDeclaration__Group_2__1 ; finally { restoreStackSize(stackSize); } rule__ScopeDeclaration__Group_2__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getScopeDeclarationAccess().getCommaKeyword_2_0()); } ',' { after(grammarAccess.getScopeDeclarationAccess().getCommaKeyword_2_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ScopeDeclaration__Group_2__1 @init { int stackSize = keepStackSize(); } : rule__ScopeDeclaration__Group_2__1__Impl ; finally { restoreStackSize(stackSize); } rule__ScopeDeclaration__Group_2__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getScopeDeclarationAccess().getTypeScopesAssignment_2_1()); } (rule__ScopeDeclaration__TypeScopesAssignment_2_1) { after(grammarAccess.getScopeDeclarationAccess().getTypeScopesAssignment_2_1()); } ) ; finally { restoreStackSize(stackSize); } rule__TypeScope__Group__0 @init { int stackSize = keepStackSize(); } : rule__TypeScope__Group__0__Impl rule__TypeScope__Group__1 ; finally { restoreStackSize(stackSize); } rule__TypeScope__Group__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getTypeScopeAccess().getTargetTypeAssignment_0()); } (rule__TypeScope__TargetTypeAssignment_0) { after(grammarAccess.getTypeScopeAccess().getTargetTypeAssignment_0()); } ) ; finally { restoreStackSize(stackSize); } rule__TypeScope__Group__1 @init { int stackSize = keepStackSize(); } : rule__TypeScope__Group__1__Impl rule__TypeScope__Group__2 ; finally { restoreStackSize(stackSize); } rule__TypeScope__Group__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getTypeScopeAccess().getAlternatives_1()); } (rule__TypeScope__Alternatives_1) { after(grammarAccess.getTypeScopeAccess().getAlternatives_1()); } ) ; finally { restoreStackSize(stackSize); } rule__TypeScope__Group__2 @init { int stackSize = keepStackSize(); } : rule__TypeScope__Group__2__Impl ; finally { restoreStackSize(stackSize); } rule__TypeScope__Group__2__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getTypeScopeAccess().getMultiplicityAssignment_2()); } (rule__TypeScope__MultiplicityAssignment_2) { after(grammarAccess.getTypeScopeAccess().getMultiplicityAssignment_2()); } ) ; finally { restoreStackSize(stackSize); } rule__RangeMultiplicity__Group__0 @init { int stackSize = keepStackSize(); } : rule__RangeMultiplicity__Group__0__Impl rule__RangeMultiplicity__Group__1 ; finally { restoreStackSize(stackSize); } rule__RangeMultiplicity__Group__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getRangeMultiplicityAccess().getLowerBoundAssignment_0()); } (rule__RangeMultiplicity__LowerBoundAssignment_0) { after(grammarAccess.getRangeMultiplicityAccess().getLowerBoundAssignment_0()); } ) ; finally { restoreStackSize(stackSize); } rule__RangeMultiplicity__Group__1 @init { int stackSize = keepStackSize(); } : rule__RangeMultiplicity__Group__1__Impl rule__RangeMultiplicity__Group__2 ; finally { restoreStackSize(stackSize); } rule__RangeMultiplicity__Group__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getRangeMultiplicityAccess().getFullStopFullStopKeyword_1()); } '..' { after(grammarAccess.getRangeMultiplicityAccess().getFullStopFullStopKeyword_1()); } ) ; finally { restoreStackSize(stackSize); } rule__RangeMultiplicity__Group__2 @init { int stackSize = keepStackSize(); } : rule__RangeMultiplicity__Group__2__Impl ; finally { restoreStackSize(stackSize); } rule__RangeMultiplicity__Group__2__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getRangeMultiplicityAccess().getUpperBoundAssignment_2()); } (rule__RangeMultiplicity__UpperBoundAssignment_2) { after(grammarAccess.getRangeMultiplicityAccess().getUpperBoundAssignment_2()); } ) ; finally { restoreStackSize(stackSize); } rule__QualifiedName__Group_1__0 @init { int stackSize = keepStackSize(); } : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ; finally { restoreStackSize(stackSize); } rule__QualifiedName__Group_1__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_0()); } ruleIdentifier { after(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__QualifiedName__Group_1__1 @init { int stackSize = keepStackSize(); } : rule__QualifiedName__Group_1__1__Impl rule__QualifiedName__Group_1__2 ; finally { restoreStackSize(stackSize); } rule__QualifiedName__Group_1__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getQualifiedNameAccess().getGroup_1_1()); } (rule__QualifiedName__Group_1_1__0)* { after(grammarAccess.getQualifiedNameAccess().getGroup_1_1()); } ) ; finally { restoreStackSize(stackSize); } rule__QualifiedName__Group_1__2 @init { int stackSize = keepStackSize(); } : rule__QualifiedName__Group_1__2__Impl ; finally { restoreStackSize(stackSize); } rule__QualifiedName__Group_1__2__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getQualifiedNameAccess().getGroup_1_2()); } (rule__QualifiedName__Group_1_2__0)? { after(grammarAccess.getQualifiedNameAccess().getGroup_1_2()); } ) ; finally { restoreStackSize(stackSize); } rule__QualifiedName__Group_1_1__0 @init { int stackSize = keepStackSize(); } : rule__QualifiedName__Group_1_1__0__Impl rule__QualifiedName__Group_1_1__1 ; finally { restoreStackSize(stackSize); } rule__QualifiedName__Group_1_1__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getQualifiedNameAccess().getColonKeyword_1_1_0()); } ':' { after(grammarAccess.getQualifiedNameAccess().getColonKeyword_1_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__QualifiedName__Group_1_1__1 @init { int stackSize = keepStackSize(); } : rule__QualifiedName__Group_1_1__1__Impl ; finally { restoreStackSize(stackSize); } rule__QualifiedName__Group_1_1__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_1_1()); } ruleIdentifier { after(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_1_1()); } ) ; finally { restoreStackSize(stackSize); } rule__QualifiedName__Group_1_2__0 @init { int stackSize = keepStackSize(); } : rule__QualifiedName__Group_1_2__0__Impl rule__QualifiedName__Group_1_2__1 ; finally { restoreStackSize(stackSize); } rule__QualifiedName__Group_1_2__0__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getQualifiedNameAccess().getColonKeyword_1_2_0()); } ':' { after(grammarAccess.getQualifiedNameAccess().getColonKeyword_1_2_0()); } ) ; finally { restoreStackSize(stackSize); } rule__QualifiedName__Group_1_2__1 @init { int stackSize = keepStackSize(); } : rule__QualifiedName__Group_1_2__1__Impl ; finally { restoreStackSize(stackSize); } rule__QualifiedName__Group_1_2__1__Impl @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_1_2_1()); } RULE_QUOTED_ID { after(grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_1_2_1()); } ) ; finally { restoreStackSize(stackSize); } rule__Problem__NameAssignment_0_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getProblemAccess().getNameIdentifierParserRuleCall_0_1_0()); } ruleIdentifier { after(grammarAccess.getProblemAccess().getNameIdentifierParserRuleCall_0_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Problem__StatementsAssignment_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_1_0()); } ruleStatement { after(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__AbstractAssignment_0 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0()); } ( { before(grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0()); } 'abstract' { after(grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0()); } ) { after(grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__NameAssignment_2 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getNameIdentifierParserRuleCall_2_0()); } ruleIdentifier { after(grammarAccess.getClassDeclarationAccess().getNameIdentifierParserRuleCall_2_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__SuperTypesAssignment_3_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationCrossReference_3_1_0()); } ( { before(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationQualifiedNameParserRuleCall_3_1_0_1()); } ruleQualifiedName { after(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationQualifiedNameParserRuleCall_3_1_0_1()); } ) { after(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationCrossReference_3_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__SuperTypesAssignment_3_2_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationCrossReference_3_2_1_0()); } ( { before(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationQualifiedNameParserRuleCall_3_2_1_0_1()); } ruleQualifiedName { after(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationQualifiedNameParserRuleCall_3_2_1_0_1()); } ) { after(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationCrossReference_3_2_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ClassDeclaration__ReferenceDeclarationsAssignment_4_0_1_0 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_4_0_1_0_0()); } ruleReferenceDeclaration { after(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_4_0_1_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__NameAssignment_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getEnumDeclarationAccess().getNameIdentifierParserRuleCall_1_0()); } ruleIdentifier { after(grammarAccess.getEnumDeclarationAccess().getNameIdentifierParserRuleCall_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__LiteralsAssignment_2_0_1_0 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_0_0()); } ruleEnumLiteral { after(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__EnumDeclaration__LiteralsAssignment_2_0_1_1_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0()); } ruleEnumLiteral { after(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__EnumLiteral__NameAssignment @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getEnumLiteralAccess().getNameQuotedOrUnquotedIdParserRuleCall_0()); } ruleQuotedOrUnquotedId { after(grammarAccess.getEnumLiteralAccess().getNameQuotedOrUnquotedIdParserRuleCall_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__ContainmentAssignment_0_0 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0()); } ( { before(grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0()); } 'contains' { after(grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0()); } ) { after(grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__ReferenceTypeAssignment_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeRelationCrossReference_1_0()); } ( { before(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeRelationQualifiedNameParserRuleCall_1_0_1()); } ruleQualifiedName { after(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeRelationQualifiedNameParserRuleCall_1_0_1()); } ) { after(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeRelationCrossReference_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__MultiplicityAssignment_2_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getReferenceDeclarationAccess().getMultiplicityMultiplicityParserRuleCall_2_1_0()); } ruleMultiplicity { after(grammarAccess.getReferenceDeclarationAccess().getMultiplicityMultiplicityParserRuleCall_2_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__NameAssignment_3 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getReferenceDeclarationAccess().getNameIdentifierParserRuleCall_3_0()); } ruleIdentifier { after(grammarAccess.getReferenceDeclarationAccess().getNameIdentifierParserRuleCall_3_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ReferenceDeclaration__OppositeAssignment_4_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationCrossReference_4_1_0()); } ( { before(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationQualifiedNameParserRuleCall_4_1_0_1()); } ruleQualifiedName { after(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationQualifiedNameParserRuleCall_4_1_0_1()); } ) { after(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationCrossReference_4_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__ErrorAssignment_0_0_0 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0()); } ( { before(grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0()); } 'error' { after(grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0()); } ) { after(grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__NameAssignment_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getNameIdentifierParserRuleCall_1_0()); } ruleIdentifier { after(grammarAccess.getPredicateDefinitionAccess().getNameIdentifierParserRuleCall_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__ParametersAssignment_3_0 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_0_0()); } ruleParameter { after(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__ParametersAssignment_3_1_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_1_1_0()); } ruleParameter { after(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_1_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__BodiesAssignment_5_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_1_0()); } ruleConjunction { after(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__PredicateDefinition__BodiesAssignment_5_2_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_2_1_0()); } ruleConjunction { after(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_2_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Parameter__ParameterTypeAssignment_0 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getParameterAccess().getParameterTypeRelationCrossReference_0_0()); } ( { before(grammarAccess.getParameterAccess().getParameterTypeRelationQualifiedNameParserRuleCall_0_0_1()); } ruleQualifiedName { after(grammarAccess.getParameterAccess().getParameterTypeRelationQualifiedNameParserRuleCall_0_0_1()); } ) { after(grammarAccess.getParameterAccess().getParameterTypeRelationCrossReference_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Parameter__NameAssignment_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getParameterAccess().getNameIdentifierParserRuleCall_1_0()); } ruleIdentifier { after(grammarAccess.getParameterAccess().getNameIdentifierParserRuleCall_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Conjunction__LiteralsAssignment_0 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_0_0()); } ruleLiteral { after(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Conjunction__LiteralsAssignment_1_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_1_1_0()); } ruleLiteral { after(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_1_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__NegativeLiteral__AtomAssignment_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getNegativeLiteralAccess().getAtomAtomParserRuleCall_1_0()); } ruleAtom { after(grammarAccess.getNegativeLiteralAccess().getAtomAtomParserRuleCall_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Atom__RelationAssignment_0 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAtomAccess().getRelationRelationCrossReference_0_0()); } ( { before(grammarAccess.getAtomAccess().getRelationRelationQualifiedNameParserRuleCall_0_0_1()); } ruleQualifiedName { after(grammarAccess.getAtomAccess().getRelationRelationQualifiedNameParserRuleCall_0_0_1()); } ) { after(grammarAccess.getAtomAccess().getRelationRelationCrossReference_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Atom__TransitiveClosureAssignment_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0()); } ( { before(grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0()); } '+' { after(grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0()); } ) { after(grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Atom__ArgumentsAssignment_3_0 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAtomAccess().getArgumentsArgumentParserRuleCall_3_0_0()); } ruleArgument { after(grammarAccess.getAtomAccess().getArgumentsArgumentParserRuleCall_3_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Atom__ArgumentsAssignment_3_1_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAtomAccess().getArgumentsArgumentParserRuleCall_3_1_1_0()); } ruleArgument { after(grammarAccess.getAtomAccess().getArgumentsArgumentParserRuleCall_3_1_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Argument__VariableOrNodeAssignment @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getArgumentAccess().getVariableOrNodeVariableOrNodeCrossReference_0()); } ( { before(grammarAccess.getArgumentAccess().getVariableOrNodeVariableOrNodeQualifiedNameParserRuleCall_0_1()); } ruleQualifiedName { after(grammarAccess.getArgumentAccess().getVariableOrNodeVariableOrNodeQualifiedNameParserRuleCall_0_1()); } ) { after(grammarAccess.getArgumentAccess().getVariableOrNodeVariableOrNodeCrossReference_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__RelationAssignment_0_0_0 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_0_0_0()); } ( { before(grammarAccess.getAssertionAccess().getRelationRelationQualifiedNameParserRuleCall_0_0_0_0_1()); } ruleQualifiedName { after(grammarAccess.getAssertionAccess().getRelationRelationQualifiedNameParserRuleCall_0_0_0_0_1()); } ) { after(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_0_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__ArgumentsAssignment_0_0_2_0 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_0_0()); } ( { before(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_0_2_0_0_1()); } ruleQualifiedName { after(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_0_2_0_0_1()); } ) { after(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__ArgumentsAssignment_0_0_2_1_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_1_1_0()); } ( { before(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_0_2_1_1_0_1()); } ruleQualifiedName { after(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_0_2_1_1_0_1()); } ) { after(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_1_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__ValueAssignment_0_0_5 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getValueLogicValueEnumRuleCall_0_0_5_0()); } ruleLogicValue { after(grammarAccess.getAssertionAccess().getValueLogicValueEnumRuleCall_0_0_5_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__ValueAssignment_0_1_0 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getValueShortLogicValueEnumRuleCall_0_1_0_0()); } ruleShortLogicValue { after(grammarAccess.getAssertionAccess().getValueShortLogicValueEnumRuleCall_0_1_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__RelationAssignment_0_1_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_1_1_0()); } ( { before(grammarAccess.getAssertionAccess().getRelationRelationQualifiedNameParserRuleCall_0_1_1_0_1()); } ruleQualifiedName { after(grammarAccess.getAssertionAccess().getRelationRelationQualifiedNameParserRuleCall_0_1_1_0_1()); } ) { after(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_1_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__ArgumentsAssignment_0_1_3_0 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_0_0()); } ( { before(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_1_3_0_0_1()); } ruleQualifiedName { after(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_1_3_0_0_1()); } ) { after(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__Assertion__ArgumentsAssignment_0_1_3_1_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_1_1_0()); } ( { before(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_1_3_1_1_0_1()); } ruleQualifiedName { after(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_1_3_1_1_0_1()); } ) { after(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_1_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ScopeDeclaration__TypeScopesAssignment_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_1_0()); } ruleTypeScope { after(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ScopeDeclaration__TypeScopesAssignment_2_1 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_2_1_0()); } ruleTypeScope { after(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_2_1_0()); } ) ; finally { restoreStackSize(stackSize); } rule__TypeScope__TargetTypeAssignment_0 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationCrossReference_0_0()); } ( { before(grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationIDTerminalRuleCall_0_0_1()); } RULE_ID { after(grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationIDTerminalRuleCall_0_0_1()); } ) { after(grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationCrossReference_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__TypeScope__IncrementAssignment_1_0 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0()); } ( { before(grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0()); } '+=' { after(grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0()); } ) { after(grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__TypeScope__MultiplicityAssignment_2 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getTypeScopeAccess().getMultiplicityDefiniteMultiplicityParserRuleCall_2_0()); } ruleDefiniteMultiplicity { after(grammarAccess.getTypeScopeAccess().getMultiplicityDefiniteMultiplicityParserRuleCall_2_0()); } ) ; finally { restoreStackSize(stackSize); } rule__RangeMultiplicity__LowerBoundAssignment_0 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getRangeMultiplicityAccess().getLowerBoundINTTerminalRuleCall_0_0()); } RULE_INT { after(grammarAccess.getRangeMultiplicityAccess().getLowerBoundINTTerminalRuleCall_0_0()); } ) ; finally { restoreStackSize(stackSize); } rule__RangeMultiplicity__UpperBoundAssignment_2 @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getRangeMultiplicityAccess().getUpperBoundUpperBoundParserRuleCall_2_0()); } ruleUpperBound { after(grammarAccess.getRangeMultiplicityAccess().getUpperBoundUpperBoundParserRuleCall_2_0()); } ) ; finally { restoreStackSize(stackSize); } rule__ExactMultiplicity__ExactValueAssignment @init { int stackSize = keepStackSize(); } : ( { before(grammarAccess.getExactMultiplicityAccess().getExactValueINTTerminalRuleCall_0()); } RULE_INT { after(grammarAccess.getExactMultiplicityAccess().getExactValueINTTerminalRuleCall_0()); } ) ; finally { restoreStackSize(stackSize); } RULE_STRING : '"' ('\\' .|~(('\\'|'"')))* '"'; RULE_QUOTED_ID : '\'' ('\\' .|~(('\\'|'\'')))* '\''; RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*; RULE_INT : ('0'..'9')+; RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/'; RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?; RULE_WS : (' '|'\t'|'\r'|'\n')+; RULE_ANY_OTHER : .;