/**
 * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf), Loetz GmbH&Co.KG (Heidelberg)
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *         Florian Pirchner - Initial implementation
 */
package org.eclipse.osbp.dsl.common.xtext.ui.contentassist.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
import org.eclipse.osbp.dsl.common.xtext.services.CommonGrammarGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
@SuppressWarnings("all")
interface InternalCommonGrammarParserSignatures {
     void entryRuleTypedPackage() throws RecognitionException;
     void ruleTypedPackage() throws RecognitionException;
     void entryRuleType() throws RecognitionException;
     void ruleType() throws RecognitionException;
     void entryRuleClass() throws RecognitionException;
     void ruleClass() throws RecognitionException;
     void entryRuleImport() throws RecognitionException;
     void ruleImport() throws RecognitionException;
     void entryRuleDataType() throws RecognitionException;
     void ruleDataType() throws RecognitionException;
     void entryRuleDataTypeConstraint() throws RecognitionException;
     void ruleDataTypeConstraint() throws RecognitionException;
     void entryRuleDateConstraint() throws RecognitionException;
     void ruleDateConstraint() throws RecognitionException;
     void entryRuleBlobTypeConstraint() throws RecognitionException;
     void ruleBlobTypeConstraint() throws RecognitionException;
     void entryRuleDtCAssertFalse() throws RecognitionException;
     void ruleDtCAssertFalse() throws RecognitionException;
     void entryRuleDtCAssertTrue() throws RecognitionException;
     void ruleDtCAssertTrue() throws RecognitionException;
     void entryRuleDtCDecimalMax() throws RecognitionException;
     void ruleDtCDecimalMax() throws RecognitionException;
     void entryRuleDtCDecimalMin() throws RecognitionException;
     void ruleDtCDecimalMin() throws RecognitionException;
     void entryRuleDtCDigits() throws RecognitionException;
     void ruleDtCDigits() throws RecognitionException;
     void entryRuleDtCFuture() throws RecognitionException;
     void ruleDtCFuture() throws RecognitionException;
     void entryRuleDtCPast() throws RecognitionException;
     void ruleDtCPast() throws RecognitionException;
     void entryRuleDtCNumericMax() throws RecognitionException;
     void ruleDtCNumericMax() throws RecognitionException;
     void entryRuleDtCNumericMin() throws RecognitionException;
     void ruleDtCNumericMin() throws RecognitionException;
     void entryRuleDtCNotNull() throws RecognitionException;
     void ruleDtCNotNull() throws RecognitionException;
     void entryRuleDtCNull() throws RecognitionException;
     void ruleDtCNull() throws RecognitionException;
     void entryRuleDtCRegEx() throws RecognitionException;
     void ruleDtCRegEx() throws RecognitionException;
     void entryRuleDtCSize() throws RecognitionException;
     void ruleDtCSize() throws RecognitionException;
     void entryRuleScalarType() throws RecognitionException;
     void ruleScalarType() throws RecognitionException;
     void entryRuleEnum() throws RecognitionException;
     void ruleEnum() throws RecognitionException;
     void entryRuleEnumLiteral() throws RecognitionException;
     void ruleEnumLiteral() throws RecognitionException;
     void entryRuleAnnotationDef() throws RecognitionException;
     void ruleAnnotationDef() throws RecognitionException;
     void entryRuleResultFilter() throws RecognitionException;
     void ruleResultFilter() throws RecognitionException;
     void entryRuleAttributeMatchingConstraint() throws RecognitionException;
     void ruleAttributeMatchingConstraint() throws RecognitionException;
     void entryRuleKeyAndValue() throws RecognitionException;
     void ruleKeyAndValue() throws RecognitionException;
     void entryRuleLQualifiedNameWithWildCard() throws RecognitionException;
     void ruleLQualifiedNameWithWildCard() throws RecognitionException;
     void entryRuleValidIDWithKeywords() throws RecognitionException;
     void ruleValidIDWithKeywords() throws RecognitionException;
     void entryRuleLInt() throws RecognitionException;
     void ruleLInt() throws RecognitionException;
     void entryRuleLDecimal() throws RecognitionException;
     void ruleLDecimal() throws RecognitionException;
     void entryRuleXAnnotation() throws RecognitionException;
     void ruleXAnnotation() throws RecognitionException;
     void entryRuleXAnnotationElementValuePair() throws RecognitionException;
     void ruleXAnnotationElementValuePair() throws RecognitionException;
     void entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException;
     void ruleXAnnotationElementValueOrCommaList() throws RecognitionException;
     void entryRuleXAnnotationElementValue() throws RecognitionException;
     void ruleXAnnotationElementValue() throws RecognitionException;
     void entryRuleXAnnotationOrExpression() throws RecognitionException;
     void ruleXAnnotationOrExpression() throws RecognitionException;
     void entryRuleXExpression() throws RecognitionException;
     void ruleXExpression() throws RecognitionException;
     void entryRuleXAssignment() throws RecognitionException;
     void ruleXAssignment() throws RecognitionException;
     void entryRuleOpSingleAssign() throws RecognitionException;
     void ruleOpSingleAssign() throws RecognitionException;
     void entryRuleOpMultiAssign() throws RecognitionException;
     void ruleOpMultiAssign() throws RecognitionException;
     void entryRuleXOrExpression() throws RecognitionException;
     void ruleXOrExpression() throws RecognitionException;
     void entryRuleOpOr() throws RecognitionException;
     void ruleOpOr() throws RecognitionException;
     void entryRuleXAndExpression() throws RecognitionException;
     void ruleXAndExpression() throws RecognitionException;
     void entryRuleOpAnd() throws RecognitionException;
     void ruleOpAnd() throws RecognitionException;
     void entryRuleXEqualityExpression() throws RecognitionException;
     void ruleXEqualityExpression() throws RecognitionException;
     void entryRuleOpEquality() throws RecognitionException;
     void ruleOpEquality() throws RecognitionException;
     void entryRuleXRelationalExpression() throws RecognitionException;
     void ruleXRelationalExpression() throws RecognitionException;
     void entryRuleOpCompare() throws RecognitionException;
     void ruleOpCompare() throws RecognitionException;
     void entryRuleXOtherOperatorExpression() throws RecognitionException;
     void ruleXOtherOperatorExpression() throws RecognitionException;
     void entryRuleOpOther() throws RecognitionException;
     void ruleOpOther() throws RecognitionException;
     void entryRuleXAdditiveExpression() throws RecognitionException;
     void ruleXAdditiveExpression() throws RecognitionException;
     void entryRuleOpAdd() throws RecognitionException;
     void ruleOpAdd() throws RecognitionException;
     void entryRuleXMultiplicativeExpression() throws RecognitionException;
     void ruleXMultiplicativeExpression() throws RecognitionException;
     void entryRuleOpMulti() throws RecognitionException;
     void ruleOpMulti() throws RecognitionException;
     void entryRuleXUnaryOperation() throws RecognitionException;
     void ruleXUnaryOperation() throws RecognitionException;
     void entryRuleOpUnary() throws RecognitionException;
     void ruleOpUnary() throws RecognitionException;
     void entryRuleXCastedExpression() throws RecognitionException;
     void ruleXCastedExpression() throws RecognitionException;
     void entryRuleXPostfixOperation() throws RecognitionException;
     void ruleXPostfixOperation() throws RecognitionException;
     void entryRuleOpPostfix() throws RecognitionException;
     void ruleOpPostfix() throws RecognitionException;
     void entryRuleXMemberFeatureCall() throws RecognitionException;
     void ruleXMemberFeatureCall() throws RecognitionException;
     void entryRuleXPrimaryExpression() throws RecognitionException;
     void ruleXPrimaryExpression() throws RecognitionException;
     void entryRuleXLiteral() throws RecognitionException;
     void ruleXLiteral() throws RecognitionException;
     void entryRuleXCollectionLiteral() throws RecognitionException;
     void ruleXCollectionLiteral() throws RecognitionException;
     void entryRuleXSetLiteral() throws RecognitionException;
     void ruleXSetLiteral() throws RecognitionException;
     void entryRuleXListLiteral() throws RecognitionException;
     void ruleXListLiteral() throws RecognitionException;
     void entryRuleXClosure() throws RecognitionException;
     void ruleXClosure() throws RecognitionException;
     void entryRuleXExpressionInClosure() throws RecognitionException;
     void ruleXExpressionInClosure() throws RecognitionException;
     void entryRuleXShortClosure() throws RecognitionException;
     void ruleXShortClosure() throws RecognitionException;
     void entryRuleXParenthesizedExpression() throws RecognitionException;
     void ruleXParenthesizedExpression() throws RecognitionException;
     void entryRuleXIfExpression() throws RecognitionException;
     void ruleXIfExpression() throws RecognitionException;
     void entryRuleXSwitchExpression() throws RecognitionException;
     void ruleXSwitchExpression() throws RecognitionException;
     void entryRuleXCasePart() throws RecognitionException;
     void ruleXCasePart() throws RecognitionException;
     void entryRuleXForLoopExpression() throws RecognitionException;
     void ruleXForLoopExpression() throws RecognitionException;
     void entryRuleXBasicForLoopExpression() throws RecognitionException;
     void ruleXBasicForLoopExpression() throws RecognitionException;
     void entryRuleXWhileExpression() throws RecognitionException;
     void ruleXWhileExpression() throws RecognitionException;
     void entryRuleXDoWhileExpression() throws RecognitionException;
     void ruleXDoWhileExpression() throws RecognitionException;
     void entryRuleXBlockExpression() throws RecognitionException;
     void ruleXBlockExpression() throws RecognitionException;
     void entryRuleXExpressionOrVarDeclaration() throws RecognitionException;
     void ruleXExpressionOrVarDeclaration() throws RecognitionException;
     void entryRuleXVariableDeclaration() throws RecognitionException;
     void ruleXVariableDeclaration() throws RecognitionException;
     void entryRuleJvmFormalParameter() throws RecognitionException;
     void ruleJvmFormalParameter() throws RecognitionException;
     void entryRuleFullJvmFormalParameter() throws RecognitionException;
     void ruleFullJvmFormalParameter() throws RecognitionException;
     void entryRuleXFeatureCall() throws RecognitionException;
     void ruleXFeatureCall() throws RecognitionException;
     void entryRuleFeatureCallID() throws RecognitionException;
     void ruleFeatureCallID() throws RecognitionException;
     void entryRuleIdOrSuper() throws RecognitionException;
     void ruleIdOrSuper() throws RecognitionException;
     void entryRuleXConstructorCall() throws RecognitionException;
     void ruleXConstructorCall() throws RecognitionException;
     void entryRuleXBooleanLiteral() throws RecognitionException;
     void ruleXBooleanLiteral() throws RecognitionException;
     void entryRuleXNullLiteral() throws RecognitionException;
     void ruleXNullLiteral() throws RecognitionException;
     void entryRuleXNumberLiteral() throws RecognitionException;
     void ruleXNumberLiteral() throws RecognitionException;
     void entryRuleXStringLiteral() throws RecognitionException;
     void ruleXStringLiteral() throws RecognitionException;
     void entryRuleXTypeLiteral() throws RecognitionException;
     void ruleXTypeLiteral() throws RecognitionException;
     void entryRuleXThrowExpression() throws RecognitionException;
     void ruleXThrowExpression() throws RecognitionException;
     void entryRuleXReturnExpression() throws RecognitionException;
     void ruleXReturnExpression() throws RecognitionException;
     void entryRuleXTryCatchFinallyExpression() throws RecognitionException;
     void ruleXTryCatchFinallyExpression() throws RecognitionException;
     void entryRuleXSynchronizedExpression() throws RecognitionException;
     void ruleXSynchronizedExpression() throws RecognitionException;
     void entryRuleXCatchClause() throws RecognitionException;
     void ruleXCatchClause() throws RecognitionException;
     void entryRuleQualifiedName() throws RecognitionException;
     void ruleQualifiedName() throws RecognitionException;
     void entryRuleNumber() throws RecognitionException;
     void ruleNumber() throws RecognitionException;
     void entryRuleJvmTypeReference() throws RecognitionException;
     void ruleJvmTypeReference() throws RecognitionException;
     void entryRuleArrayBrackets() throws RecognitionException;
     void ruleArrayBrackets() throws RecognitionException;
     void entryRuleXFunctionTypeRef() throws RecognitionException;
     void ruleXFunctionTypeRef() throws RecognitionException;
     void entryRuleJvmParameterizedTypeReference() throws RecognitionException;
     void ruleJvmParameterizedTypeReference() throws RecognitionException;
     void entryRuleJvmArgumentTypeReference() throws RecognitionException;
     void ruleJvmArgumentTypeReference() throws RecognitionException;
     void entryRuleJvmWildcardTypeReference() throws RecognitionException;
     void ruleJvmWildcardTypeReference() throws RecognitionException;
     void entryRuleJvmUpperBound() throws RecognitionException;
     void ruleJvmUpperBound() throws RecognitionException;
     void entryRuleJvmUpperBoundAnded() throws RecognitionException;
     void ruleJvmUpperBoundAnded() throws RecognitionException;
     void entryRuleJvmLowerBound() throws RecognitionException;
     void ruleJvmLowerBound() throws RecognitionException;
     void entryRuleJvmLowerBoundAnded() throws RecognitionException;
     void ruleJvmLowerBoundAnded() throws RecognitionException;
     void entryRuleQualifiedNameWithWildcard() throws RecognitionException;
     void ruleQualifiedNameWithWildcard() throws RecognitionException;
     void entryRuleValidID() throws RecognitionException;
     void ruleValidID() throws RecognitionException;
     void entryRuleXImportDeclaration() throws RecognitionException;
     void ruleXImportDeclaration() throws RecognitionException;
     void entryRuleQualifiedNameInStaticImport() throws RecognitionException;
     void ruleQualifiedNameInStaticImport() throws RecognitionException;
     void ruleConstraintSeverity() throws RecognitionException;
     void ruleDateType() throws RecognitionException;
     void ruleLVisibility() throws RecognitionException;
     void ruleLComparatorType() throws RecognitionException;
     void ruleLowerBound() throws RecognitionException;
     void ruleUpperBound() throws RecognitionException;
     void rule__Type__Alternatives() throws RecognitionException;
     void rule__DataType__Alternatives_2() throws RecognitionException;
     void rule__DataTypeConstraint__Alternatives() throws RecognitionException;
     void rule__DateConstraint__Alternatives() throws RecognitionException;
     void rule__BlobTypeConstraint__Alternatives() throws RecognitionException;
     void rule__ScalarType__Alternatives() throws RecognitionException;
     void rule__AttributeMatchingConstraint__Alternatives_2() throws RecognitionException;
     void rule__ValidIDWithKeywords__Alternatives() throws RecognitionException;
     void rule__LInt__Alternatives_0() throws RecognitionException;
     void rule__XAnnotation__Alternatives_3_1() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Alternatives() throws RecognitionException;
     void rule__XAnnotationElementValue__Alternatives() throws RecognitionException;
     void rule__XAnnotationOrExpression__Alternatives() throws RecognitionException;
     void rule__XAssignment__Alternatives() throws RecognitionException;
     void rule__OpMultiAssign__Alternatives() throws RecognitionException;
     void rule__OpEquality__Alternatives() throws RecognitionException;
     void rule__XRelationalExpression__Alternatives_1() throws RecognitionException;
     void rule__OpCompare__Alternatives() throws RecognitionException;
     void rule__OpOther__Alternatives() throws RecognitionException;
     void rule__OpOther__Alternatives_5_1() throws RecognitionException;
     void rule__OpOther__Alternatives_6_1() throws RecognitionException;
     void rule__OpAdd__Alternatives() throws RecognitionException;
     void rule__OpMulti__Alternatives() throws RecognitionException;
     void rule__XUnaryOperation__Alternatives() throws RecognitionException;
     void rule__OpUnary__Alternatives() throws RecognitionException;
     void rule__OpPostfix__Alternatives() throws RecognitionException;
     void rule__XMemberFeatureCall__Alternatives_1() throws RecognitionException;
     void rule__XMemberFeatureCall__Alternatives_1_0_0_0_1() throws RecognitionException;
     void rule__XMemberFeatureCall__Alternatives_1_1_0_0_1() throws RecognitionException;
     void rule__XMemberFeatureCall__Alternatives_1_1_3_1() throws RecognitionException;
     void rule__XPrimaryExpression__Alternatives() throws RecognitionException;
     void rule__XLiteral__Alternatives() throws RecognitionException;
     void rule__XCollectionLiteral__Alternatives() throws RecognitionException;
     void rule__XSwitchExpression__Alternatives_2() throws RecognitionException;
     void rule__XCasePart__Alternatives_3() throws RecognitionException;
     void rule__XExpressionOrVarDeclaration__Alternatives() throws RecognitionException;
     void rule__XVariableDeclaration__Alternatives_1() throws RecognitionException;
     void rule__XVariableDeclaration__Alternatives_2() throws RecognitionException;
     void rule__XFeatureCall__Alternatives_3_1() throws RecognitionException;
     void rule__FeatureCallID__Alternatives() throws RecognitionException;
     void rule__IdOrSuper__Alternatives() throws RecognitionException;
     void rule__XConstructorCall__Alternatives_4_1() throws RecognitionException;
     void rule__XBooleanLiteral__Alternatives_1() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Alternatives_3() throws RecognitionException;
     void rule__Number__Alternatives() throws RecognitionException;
     void rule__Number__Alternatives_1_0() throws RecognitionException;
     void rule__Number__Alternatives_1_1_1() throws RecognitionException;
     void rule__JvmTypeReference__Alternatives() throws RecognitionException;
     void rule__JvmArgumentTypeReference__Alternatives() throws RecognitionException;
     void rule__JvmWildcardTypeReference__Alternatives_2() throws RecognitionException;
     void rule__XImportDeclaration__Alternatives_1() throws RecognitionException;
     void rule__XImportDeclaration__Alternatives_1_0_3() throws RecognitionException;
     void rule__ConstraintSeverity__Alternatives() throws RecognitionException;
     void rule__DateType__Alternatives() throws RecognitionException;
     void rule__LVisibility__Alternatives() throws RecognitionException;
     void rule__LComparatorType__Alternatives() throws RecognitionException;
     void rule__LowerBound__Alternatives() throws RecognitionException;
     void rule__UpperBound__Alternatives() throws RecognitionException;
     void rule__TypedPackage__Group__0() throws RecognitionException;
     void rule__TypedPackage__Group__0__Impl() throws RecognitionException;
     void rule__TypedPackage__Group__1() throws RecognitionException;
     void rule__TypedPackage__Group__1__Impl() throws RecognitionException;
     void rule__TypedPackage__Group__2() throws RecognitionException;
     void rule__TypedPackage__Group__2__Impl() throws RecognitionException;
     void rule__TypedPackage__Group__3() throws RecognitionException;
     void rule__TypedPackage__Group__3__Impl() throws RecognitionException;
     void rule__TypedPackage__Group_3__0() throws RecognitionException;
     void rule__TypedPackage__Group_3__0__Impl() throws RecognitionException;
     void rule__TypedPackage__Group_3__1() throws RecognitionException;
     void rule__TypedPackage__Group_3__1__Impl() throws RecognitionException;
     void rule__TypedPackage__Group_3__2() throws RecognitionException;
     void rule__TypedPackage__Group_3__2__Impl() throws RecognitionException;
     void rule__TypedPackage__Group_3__3() throws RecognitionException;
     void rule__TypedPackage__Group_3__3__Impl() throws RecognitionException;
     void rule__Class__Group__0() throws RecognitionException;
     void rule__Class__Group__0__Impl() throws RecognitionException;
     void rule__Class__Group__1() throws RecognitionException;
     void rule__Class__Group__1__Impl() throws RecognitionException;
     void rule__Class__Group__2() throws RecognitionException;
     void rule__Class__Group__2__Impl() throws RecognitionException;
     void rule__Class__Group__3() throws RecognitionException;
     void rule__Class__Group__3__Impl() throws RecognitionException;
     void rule__Import__Group__0() throws RecognitionException;
     void rule__Import__Group__0__Impl() throws RecognitionException;
     void rule__Import__Group__1() throws RecognitionException;
     void rule__Import__Group__1__Impl() throws RecognitionException;
     void rule__Import__Group__2() throws RecognitionException;
     void rule__Import__Group__2__Impl() throws RecognitionException;
     void rule__DataType__Group__0() throws RecognitionException;
     void rule__DataType__Group__0__Impl() throws RecognitionException;
     void rule__DataType__Group__1() throws RecognitionException;
     void rule__DataType__Group__1__Impl() throws RecognitionException;
     void rule__DataType__Group__2() throws RecognitionException;
     void rule__DataType__Group__2__Impl() throws RecognitionException;
     void rule__DataType__Group__3() throws RecognitionException;
     void rule__DataType__Group__3__Impl() throws RecognitionException;
     void rule__DataType__Group_2_0__0() throws RecognitionException;
     void rule__DataType__Group_2_0__0__Impl() throws RecognitionException;
     void rule__DataType__Group_2_0__1() throws RecognitionException;
     void rule__DataType__Group_2_0__1__Impl() throws RecognitionException;
     void rule__DataType__Group_2_0__2() throws RecognitionException;
     void rule__DataType__Group_2_0__2__Impl() throws RecognitionException;
     void rule__DataType__Group_2_0__3() throws RecognitionException;
     void rule__DataType__Group_2_0__3__Impl() throws RecognitionException;
     void rule__DataType__Group_2_0__4() throws RecognitionException;
     void rule__DataType__Group_2_0__4__Impl() throws RecognitionException;
     void rule__DataType__Group_2_0_4__0() throws RecognitionException;
     void rule__DataType__Group_2_0_4__0__Impl() throws RecognitionException;
     void rule__DataType__Group_2_0_4__1() throws RecognitionException;
     void rule__DataType__Group_2_0_4__1__Impl() throws RecognitionException;
     void rule__DataType__Group_2_0_4__2() throws RecognitionException;
     void rule__DataType__Group_2_0_4__2__Impl() throws RecognitionException;
     void rule__DataType__Group_2_0_4__3() throws RecognitionException;
     void rule__DataType__Group_2_0_4__3__Impl() throws RecognitionException;
     void rule__DataType__Group_2_0_4__4() throws RecognitionException;
     void rule__DataType__Group_2_0_4__4__Impl() throws RecognitionException;
     void rule__DataType__Group_2_0_4_3__0() throws RecognitionException;
     void rule__DataType__Group_2_0_4_3__0__Impl() throws RecognitionException;
     void rule__DataType__Group_2_0_4_3__1() throws RecognitionException;
     void rule__DataType__Group_2_0_4_3__1__Impl() throws RecognitionException;
     void rule__DataType__Group_2_1__0() throws RecognitionException;
     void rule__DataType__Group_2_1__0__Impl() throws RecognitionException;
     void rule__DataType__Group_2_1__1() throws RecognitionException;
     void rule__DataType__Group_2_1__1__Impl() throws RecognitionException;
     void rule__DataType__Group_2_1__2() throws RecognitionException;
     void rule__DataType__Group_2_1__2__Impl() throws RecognitionException;
     void rule__DataType__Group_2_1__3() throws RecognitionException;
     void rule__DataType__Group_2_1__3__Impl() throws RecognitionException;
     void rule__DataType__Group_2_1_3__0() throws RecognitionException;
     void rule__DataType__Group_2_1_3__0__Impl() throws RecognitionException;
     void rule__DataType__Group_2_1_3__1() throws RecognitionException;
     void rule__DataType__Group_2_1_3__1__Impl() throws RecognitionException;
     void rule__DataType__Group_2_1_3__2() throws RecognitionException;
     void rule__DataType__Group_2_1_3__2__Impl() throws RecognitionException;
     void rule__DataType__Group_2_1_3__3() throws RecognitionException;
     void rule__DataType__Group_2_1_3__3__Impl() throws RecognitionException;
     void rule__DataType__Group_2_1_3__4() throws RecognitionException;
     void rule__DataType__Group_2_1_3__4__Impl() throws RecognitionException;
     void rule__DataType__Group_2_1_3_3__0() throws RecognitionException;
     void rule__DataType__Group_2_1_3_3__0__Impl() throws RecognitionException;
     void rule__DataType__Group_2_1_3_3__1() throws RecognitionException;
     void rule__DataType__Group_2_1_3_3__1__Impl() throws RecognitionException;
     void rule__DataType__Group_2_2__0() throws RecognitionException;
     void rule__DataType__Group_2_2__0__Impl() throws RecognitionException;
     void rule__DataType__Group_2_2__1() throws RecognitionException;
     void rule__DataType__Group_2_2__1__Impl() throws RecognitionException;
     void rule__DataType__Group_2_2__2() throws RecognitionException;
     void rule__DataType__Group_2_2__2__Impl() throws RecognitionException;
     void rule__DataType__Group_2_2_2__0() throws RecognitionException;
     void rule__DataType__Group_2_2_2__0__Impl() throws RecognitionException;
     void rule__DataType__Group_2_2_2__1() throws RecognitionException;
     void rule__DataType__Group_2_2_2__1__Impl() throws RecognitionException;
     void rule__DataType__Group_2_2_2__2() throws RecognitionException;
     void rule__DataType__Group_2_2_2__2__Impl() throws RecognitionException;
     void rule__DataType__Group_2_2_2__3() throws RecognitionException;
     void rule__DataType__Group_2_2_2__3__Impl() throws RecognitionException;
     void rule__DataType__Group_2_2_2__4() throws RecognitionException;
     void rule__DataType__Group_2_2_2__4__Impl() throws RecognitionException;
     void rule__DataType__Group_2_2_2_3__0() throws RecognitionException;
     void rule__DataType__Group_2_2_2_3__0__Impl() throws RecognitionException;
     void rule__DataType__Group_2_2_2_3__1() throws RecognitionException;
     void rule__DataType__Group_2_2_2_3__1__Impl() throws RecognitionException;
     void rule__DtCAssertFalse__Group__0() throws RecognitionException;
     void rule__DtCAssertFalse__Group__0__Impl() throws RecognitionException;
     void rule__DtCAssertFalse__Group__1() throws RecognitionException;
     void rule__DtCAssertFalse__Group__1__Impl() throws RecognitionException;
     void rule__DtCAssertFalse__Group__2() throws RecognitionException;
     void rule__DtCAssertFalse__Group__2__Impl() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_0__0() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_0__0__Impl() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_0__1() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_0__1__Impl() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_0_1__0() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_0_1__0__Impl() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_0_1__1() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_0_1__1__Impl() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_0_1__2() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_0_1__2__Impl() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_1__0() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_1__0__Impl() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_1__1() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_1__1__Impl() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_1__2() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_1__2__Impl() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_2__0() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_2__0__Impl() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_2__1() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_2__1__Impl() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_2_0__0() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_2_0__0__Impl() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_2_0__1() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_2_0__1__Impl() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_2_0__2() throws RecognitionException;
     void rule__DtCAssertFalse__Group_2_2_0__2__Impl() throws RecognitionException;
     void rule__DtCAssertTrue__Group__0() throws RecognitionException;
     void rule__DtCAssertTrue__Group__0__Impl() throws RecognitionException;
     void rule__DtCAssertTrue__Group__1() throws RecognitionException;
     void rule__DtCAssertTrue__Group__1__Impl() throws RecognitionException;
     void rule__DtCAssertTrue__Group__2() throws RecognitionException;
     void rule__DtCAssertTrue__Group__2__Impl() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_0__0() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_0__0__Impl() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_0__1() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_0__1__Impl() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_0_1__0() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_0_1__0__Impl() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_0_1__1() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_0_1__1__Impl() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_0_1__2() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_0_1__2__Impl() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_1__0() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_1__0__Impl() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_1__1() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_1__1__Impl() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_1__2() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_1__2__Impl() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_2__0() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_2__0__Impl() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_2__1() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_2__1__Impl() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_2_0__0() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_2_0__0__Impl() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_2_0__1() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_2_0__1__Impl() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_2_0__2() throws RecognitionException;
     void rule__DtCAssertTrue__Group_2_2_0__2__Impl() throws RecognitionException;
     void rule__DtCDecimalMax__Group__0() throws RecognitionException;
     void rule__DtCDecimalMax__Group__0__Impl() throws RecognitionException;
     void rule__DtCDecimalMax__Group__1() throws RecognitionException;
     void rule__DtCDecimalMax__Group__1__Impl() throws RecognitionException;
     void rule__DtCDecimalMax__Group__2() throws RecognitionException;
     void rule__DtCDecimalMax__Group__2__Impl() throws RecognitionException;
     void rule__DtCDecimalMax__Group__3() throws RecognitionException;
     void rule__DtCDecimalMax__Group__3__Impl() throws RecognitionException;
     void rule__DtCDecimalMax__Group__4() throws RecognitionException;
     void rule__DtCDecimalMax__Group__4__Impl() throws RecognitionException;
     void rule__DtCDecimalMax__Group__5() throws RecognitionException;
     void rule__DtCDecimalMax__Group__5__Impl() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_0__0() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_0__0__Impl() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_0__1() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_0__1__Impl() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_0_1__0() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_0_1__0__Impl() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_0_1__1() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_0_1__1__Impl() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_0_1__2() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_0_1__2__Impl() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_1__0() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_1__0__Impl() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_1__1() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_1__1__Impl() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_1__2() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_1__2__Impl() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_2__0() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_2__0__Impl() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_2__1() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_2__1__Impl() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_2_0__0() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_2_0__0__Impl() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_2_0__1() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_2_0__1__Impl() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_2_0__2() throws RecognitionException;
     void rule__DtCDecimalMax__Group_4_2_0__2__Impl() throws RecognitionException;
     void rule__DtCDecimalMin__Group__0() throws RecognitionException;
     void rule__DtCDecimalMin__Group__0__Impl() throws RecognitionException;
     void rule__DtCDecimalMin__Group__1() throws RecognitionException;
     void rule__DtCDecimalMin__Group__1__Impl() throws RecognitionException;
     void rule__DtCDecimalMin__Group__2() throws RecognitionException;
     void rule__DtCDecimalMin__Group__2__Impl() throws RecognitionException;
     void rule__DtCDecimalMin__Group__3() throws RecognitionException;
     void rule__DtCDecimalMin__Group__3__Impl() throws RecognitionException;
     void rule__DtCDecimalMin__Group__4() throws RecognitionException;
     void rule__DtCDecimalMin__Group__4__Impl() throws RecognitionException;
     void rule__DtCDecimalMin__Group__5() throws RecognitionException;
     void rule__DtCDecimalMin__Group__5__Impl() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_0__0() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_0__0__Impl() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_0__1() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_0__1__Impl() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_0_1__0() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_0_1__0__Impl() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_0_1__1() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_0_1__1__Impl() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_0_1__2() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_0_1__2__Impl() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_1__0() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_1__0__Impl() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_1__1() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_1__1__Impl() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_1__2() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_1__2__Impl() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_2__0() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_2__0__Impl() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_2__1() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_2__1__Impl() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_2_0__0() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_2_0__0__Impl() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_2_0__1() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_2_0__1__Impl() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_2_0__2() throws RecognitionException;
     void rule__DtCDecimalMin__Group_4_2_0__2__Impl() throws RecognitionException;
     void rule__DtCDigits__Group__0() throws RecognitionException;
     void rule__DtCDigits__Group__0__Impl() throws RecognitionException;
     void rule__DtCDigits__Group__1() throws RecognitionException;
     void rule__DtCDigits__Group__1__Impl() throws RecognitionException;
     void rule__DtCDigits__Group__2() throws RecognitionException;
     void rule__DtCDigits__Group__2__Impl() throws RecognitionException;
     void rule__DtCDigits__Group__3() throws RecognitionException;
     void rule__DtCDigits__Group__3__Impl() throws RecognitionException;
     void rule__DtCDigits__Group__4() throws RecognitionException;
     void rule__DtCDigits__Group__4__Impl() throws RecognitionException;
     void rule__DtCDigits__Group__5() throws RecognitionException;
     void rule__DtCDigits__Group__5__Impl() throws RecognitionException;
     void rule__DtCDigits__Group__6() throws RecognitionException;
     void rule__DtCDigits__Group__6__Impl() throws RecognitionException;
     void rule__DtCDigits__Group__7() throws RecognitionException;
     void rule__DtCDigits__Group__7__Impl() throws RecognitionException;
     void rule__DtCDigits__Group_6_0__0() throws RecognitionException;
     void rule__DtCDigits__Group_6_0__0__Impl() throws RecognitionException;
     void rule__DtCDigits__Group_6_0__1() throws RecognitionException;
     void rule__DtCDigits__Group_6_0__1__Impl() throws RecognitionException;
     void rule__DtCDigits__Group_6_0_1__0() throws RecognitionException;
     void rule__DtCDigits__Group_6_0_1__0__Impl() throws RecognitionException;
     void rule__DtCDigits__Group_6_0_1__1() throws RecognitionException;
     void rule__DtCDigits__Group_6_0_1__1__Impl() throws RecognitionException;
     void rule__DtCDigits__Group_6_0_1__2() throws RecognitionException;
     void rule__DtCDigits__Group_6_0_1__2__Impl() throws RecognitionException;
     void rule__DtCDigits__Group_6_1__0() throws RecognitionException;
     void rule__DtCDigits__Group_6_1__0__Impl() throws RecognitionException;
     void rule__DtCDigits__Group_6_1__1() throws RecognitionException;
     void rule__DtCDigits__Group_6_1__1__Impl() throws RecognitionException;
     void rule__DtCDigits__Group_6_1__2() throws RecognitionException;
     void rule__DtCDigits__Group_6_1__2__Impl() throws RecognitionException;
     void rule__DtCDigits__Group_6_2__0() throws RecognitionException;
     void rule__DtCDigits__Group_6_2__0__Impl() throws RecognitionException;
     void rule__DtCDigits__Group_6_2__1() throws RecognitionException;
     void rule__DtCDigits__Group_6_2__1__Impl() throws RecognitionException;
     void rule__DtCDigits__Group_6_2_0__0() throws RecognitionException;
     void rule__DtCDigits__Group_6_2_0__0__Impl() throws RecognitionException;
     void rule__DtCDigits__Group_6_2_0__1() throws RecognitionException;
     void rule__DtCDigits__Group_6_2_0__1__Impl() throws RecognitionException;
     void rule__DtCDigits__Group_6_2_0__2() throws RecognitionException;
     void rule__DtCDigits__Group_6_2_0__2__Impl() throws RecognitionException;
     void rule__DtCFuture__Group__0() throws RecognitionException;
     void rule__DtCFuture__Group__0__Impl() throws RecognitionException;
     void rule__DtCFuture__Group__1() throws RecognitionException;
     void rule__DtCFuture__Group__1__Impl() throws RecognitionException;
     void rule__DtCFuture__Group__2() throws RecognitionException;
     void rule__DtCFuture__Group__2__Impl() throws RecognitionException;
     void rule__DtCFuture__Group_2_0__0() throws RecognitionException;
     void rule__DtCFuture__Group_2_0__0__Impl() throws RecognitionException;
     void rule__DtCFuture__Group_2_0__1() throws RecognitionException;
     void rule__DtCFuture__Group_2_0__1__Impl() throws RecognitionException;
     void rule__DtCFuture__Group_2_0_1__0() throws RecognitionException;
     void rule__DtCFuture__Group_2_0_1__0__Impl() throws RecognitionException;
     void rule__DtCFuture__Group_2_0_1__1() throws RecognitionException;
     void rule__DtCFuture__Group_2_0_1__1__Impl() throws RecognitionException;
     void rule__DtCFuture__Group_2_0_1__2() throws RecognitionException;
     void rule__DtCFuture__Group_2_0_1__2__Impl() throws RecognitionException;
     void rule__DtCFuture__Group_2_1__0() throws RecognitionException;
     void rule__DtCFuture__Group_2_1__0__Impl() throws RecognitionException;
     void rule__DtCFuture__Group_2_1__1() throws RecognitionException;
     void rule__DtCFuture__Group_2_1__1__Impl() throws RecognitionException;
     void rule__DtCFuture__Group_2_1__2() throws RecognitionException;
     void rule__DtCFuture__Group_2_1__2__Impl() throws RecognitionException;
     void rule__DtCFuture__Group_2_2__0() throws RecognitionException;
     void rule__DtCFuture__Group_2_2__0__Impl() throws RecognitionException;
     void rule__DtCFuture__Group_2_2__1() throws RecognitionException;
     void rule__DtCFuture__Group_2_2__1__Impl() throws RecognitionException;
     void rule__DtCFuture__Group_2_2_0__0() throws RecognitionException;
     void rule__DtCFuture__Group_2_2_0__0__Impl() throws RecognitionException;
     void rule__DtCFuture__Group_2_2_0__1() throws RecognitionException;
     void rule__DtCFuture__Group_2_2_0__1__Impl() throws RecognitionException;
     void rule__DtCFuture__Group_2_2_0__2() throws RecognitionException;
     void rule__DtCFuture__Group_2_2_0__2__Impl() throws RecognitionException;
     void rule__DtCPast__Group__0() throws RecognitionException;
     void rule__DtCPast__Group__0__Impl() throws RecognitionException;
     void rule__DtCPast__Group__1() throws RecognitionException;
     void rule__DtCPast__Group__1__Impl() throws RecognitionException;
     void rule__DtCPast__Group__2() throws RecognitionException;
     void rule__DtCPast__Group__2__Impl() throws RecognitionException;
     void rule__DtCPast__Group_2_0__0() throws RecognitionException;
     void rule__DtCPast__Group_2_0__0__Impl() throws RecognitionException;
     void rule__DtCPast__Group_2_0__1() throws RecognitionException;
     void rule__DtCPast__Group_2_0__1__Impl() throws RecognitionException;
     void rule__DtCPast__Group_2_0_1__0() throws RecognitionException;
     void rule__DtCPast__Group_2_0_1__0__Impl() throws RecognitionException;
     void rule__DtCPast__Group_2_0_1__1() throws RecognitionException;
     void rule__DtCPast__Group_2_0_1__1__Impl() throws RecognitionException;
     void rule__DtCPast__Group_2_0_1__2() throws RecognitionException;
     void rule__DtCPast__Group_2_0_1__2__Impl() throws RecognitionException;
     void rule__DtCPast__Group_2_1__0() throws RecognitionException;
     void rule__DtCPast__Group_2_1__0__Impl() throws RecognitionException;
     void rule__DtCPast__Group_2_1__1() throws RecognitionException;
     void rule__DtCPast__Group_2_1__1__Impl() throws RecognitionException;
     void rule__DtCPast__Group_2_1__2() throws RecognitionException;
     void rule__DtCPast__Group_2_1__2__Impl() throws RecognitionException;
     void rule__DtCPast__Group_2_2__0() throws RecognitionException;
     void rule__DtCPast__Group_2_2__0__Impl() throws RecognitionException;
     void rule__DtCPast__Group_2_2__1() throws RecognitionException;
     void rule__DtCPast__Group_2_2__1__Impl() throws RecognitionException;
     void rule__DtCPast__Group_2_2_0__0() throws RecognitionException;
     void rule__DtCPast__Group_2_2_0__0__Impl() throws RecognitionException;
     void rule__DtCPast__Group_2_2_0__1() throws RecognitionException;
     void rule__DtCPast__Group_2_2_0__1__Impl() throws RecognitionException;
     void rule__DtCPast__Group_2_2_0__2() throws RecognitionException;
     void rule__DtCPast__Group_2_2_0__2__Impl() throws RecognitionException;
     void rule__DtCNumericMax__Group__0() throws RecognitionException;
     void rule__DtCNumericMax__Group__0__Impl() throws RecognitionException;
     void rule__DtCNumericMax__Group__1() throws RecognitionException;
     void rule__DtCNumericMax__Group__1__Impl() throws RecognitionException;
     void rule__DtCNumericMax__Group__2() throws RecognitionException;
     void rule__DtCNumericMax__Group__2__Impl() throws RecognitionException;
     void rule__DtCNumericMax__Group__3() throws RecognitionException;
     void rule__DtCNumericMax__Group__3__Impl() throws RecognitionException;
     void rule__DtCNumericMax__Group__4() throws RecognitionException;
     void rule__DtCNumericMax__Group__4__Impl() throws RecognitionException;
     void rule__DtCNumericMax__Group__5() throws RecognitionException;
     void rule__DtCNumericMax__Group__5__Impl() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_0__0() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_0__0__Impl() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_0__1() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_0__1__Impl() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_0_1__0() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_0_1__0__Impl() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_0_1__1() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_0_1__1__Impl() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_0_1__2() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_0_1__2__Impl() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_1__0() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_1__0__Impl() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_1__1() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_1__1__Impl() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_1__2() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_1__2__Impl() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_2__0() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_2__0__Impl() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_2__1() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_2__1__Impl() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_2_0__0() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_2_0__0__Impl() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_2_0__1() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_2_0__1__Impl() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_2_0__2() throws RecognitionException;
     void rule__DtCNumericMax__Group_4_2_0__2__Impl() throws RecognitionException;
     void rule__DtCNumericMin__Group__0() throws RecognitionException;
     void rule__DtCNumericMin__Group__0__Impl() throws RecognitionException;
     void rule__DtCNumericMin__Group__1() throws RecognitionException;
     void rule__DtCNumericMin__Group__1__Impl() throws RecognitionException;
     void rule__DtCNumericMin__Group__2() throws RecognitionException;
     void rule__DtCNumericMin__Group__2__Impl() throws RecognitionException;
     void rule__DtCNumericMin__Group__3() throws RecognitionException;
     void rule__DtCNumericMin__Group__3__Impl() throws RecognitionException;
     void rule__DtCNumericMin__Group__4() throws RecognitionException;
     void rule__DtCNumericMin__Group__4__Impl() throws RecognitionException;
     void rule__DtCNumericMin__Group__5() throws RecognitionException;
     void rule__DtCNumericMin__Group__5__Impl() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_0__0() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_0__0__Impl() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_0__1() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_0__1__Impl() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_0_1__0() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_0_1__0__Impl() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_0_1__1() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_0_1__1__Impl() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_0_1__2() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_0_1__2__Impl() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_1__0() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_1__0__Impl() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_1__1() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_1__1__Impl() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_1__2() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_1__2__Impl() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_2__0() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_2__0__Impl() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_2__1() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_2__1__Impl() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_2_0__0() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_2_0__0__Impl() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_2_0__1() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_2_0__1__Impl() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_2_0__2() throws RecognitionException;
     void rule__DtCNumericMin__Group_4_2_0__2__Impl() throws RecognitionException;
     void rule__DtCNotNull__Group__0() throws RecognitionException;
     void rule__DtCNotNull__Group__0__Impl() throws RecognitionException;
     void rule__DtCNotNull__Group__1() throws RecognitionException;
     void rule__DtCNotNull__Group__1__Impl() throws RecognitionException;
     void rule__DtCNotNull__Group__2() throws RecognitionException;
     void rule__DtCNotNull__Group__2__Impl() throws RecognitionException;
     void rule__DtCNotNull__Group_2_0__0() throws RecognitionException;
     void rule__DtCNotNull__Group_2_0__0__Impl() throws RecognitionException;
     void rule__DtCNotNull__Group_2_0__1() throws RecognitionException;
     void rule__DtCNotNull__Group_2_0__1__Impl() throws RecognitionException;
     void rule__DtCNotNull__Group_2_0_1__0() throws RecognitionException;
     void rule__DtCNotNull__Group_2_0_1__0__Impl() throws RecognitionException;
     void rule__DtCNotNull__Group_2_0_1__1() throws RecognitionException;
     void rule__DtCNotNull__Group_2_0_1__1__Impl() throws RecognitionException;
     void rule__DtCNotNull__Group_2_0_1__2() throws RecognitionException;
     void rule__DtCNotNull__Group_2_0_1__2__Impl() throws RecognitionException;
     void rule__DtCNotNull__Group_2_1__0() throws RecognitionException;
     void rule__DtCNotNull__Group_2_1__0__Impl() throws RecognitionException;
     void rule__DtCNotNull__Group_2_1__1() throws RecognitionException;
     void rule__DtCNotNull__Group_2_1__1__Impl() throws RecognitionException;
     void rule__DtCNotNull__Group_2_1__2() throws RecognitionException;
     void rule__DtCNotNull__Group_2_1__2__Impl() throws RecognitionException;
     void rule__DtCNotNull__Group_2_2__0() throws RecognitionException;
     void rule__DtCNotNull__Group_2_2__0__Impl() throws RecognitionException;
     void rule__DtCNotNull__Group_2_2__1() throws RecognitionException;
     void rule__DtCNotNull__Group_2_2__1__Impl() throws RecognitionException;
     void rule__DtCNotNull__Group_2_2_0__0() throws RecognitionException;
     void rule__DtCNotNull__Group_2_2_0__0__Impl() throws RecognitionException;
     void rule__DtCNotNull__Group_2_2_0__1() throws RecognitionException;
     void rule__DtCNotNull__Group_2_2_0__1__Impl() throws RecognitionException;
     void rule__DtCNotNull__Group_2_2_0__2() throws RecognitionException;
     void rule__DtCNotNull__Group_2_2_0__2__Impl() throws RecognitionException;
     void rule__DtCNull__Group__0() throws RecognitionException;
     void rule__DtCNull__Group__0__Impl() throws RecognitionException;
     void rule__DtCNull__Group__1() throws RecognitionException;
     void rule__DtCNull__Group__1__Impl() throws RecognitionException;
     void rule__DtCNull__Group__2() throws RecognitionException;
     void rule__DtCNull__Group__2__Impl() throws RecognitionException;
     void rule__DtCNull__Group_2_0__0() throws RecognitionException;
     void rule__DtCNull__Group_2_0__0__Impl() throws RecognitionException;
     void rule__DtCNull__Group_2_0__1() throws RecognitionException;
     void rule__DtCNull__Group_2_0__1__Impl() throws RecognitionException;
     void rule__DtCNull__Group_2_0_1__0() throws RecognitionException;
     void rule__DtCNull__Group_2_0_1__0__Impl() throws RecognitionException;
     void rule__DtCNull__Group_2_0_1__1() throws RecognitionException;
     void rule__DtCNull__Group_2_0_1__1__Impl() throws RecognitionException;
     void rule__DtCNull__Group_2_0_1__2() throws RecognitionException;
     void rule__DtCNull__Group_2_0_1__2__Impl() throws RecognitionException;
     void rule__DtCNull__Group_2_1__0() throws RecognitionException;
     void rule__DtCNull__Group_2_1__0__Impl() throws RecognitionException;
     void rule__DtCNull__Group_2_1__1() throws RecognitionException;
     void rule__DtCNull__Group_2_1__1__Impl() throws RecognitionException;
     void rule__DtCNull__Group_2_1__2() throws RecognitionException;
     void rule__DtCNull__Group_2_1__2__Impl() throws RecognitionException;
     void rule__DtCNull__Group_2_2__0() throws RecognitionException;
     void rule__DtCNull__Group_2_2__0__Impl() throws RecognitionException;
     void rule__DtCNull__Group_2_2__1() throws RecognitionException;
     void rule__DtCNull__Group_2_2__1__Impl() throws RecognitionException;
     void rule__DtCNull__Group_2_2_0__0() throws RecognitionException;
     void rule__DtCNull__Group_2_2_0__0__Impl() throws RecognitionException;
     void rule__DtCNull__Group_2_2_0__1() throws RecognitionException;
     void rule__DtCNull__Group_2_2_0__1__Impl() throws RecognitionException;
     void rule__DtCNull__Group_2_2_0__2() throws RecognitionException;
     void rule__DtCNull__Group_2_2_0__2__Impl() throws RecognitionException;
     void rule__DtCRegEx__Group__0() throws RecognitionException;
     void rule__DtCRegEx__Group__0__Impl() throws RecognitionException;
     void rule__DtCRegEx__Group__1() throws RecognitionException;
     void rule__DtCRegEx__Group__1__Impl() throws RecognitionException;
     void rule__DtCRegEx__Group__2() throws RecognitionException;
     void rule__DtCRegEx__Group__2__Impl() throws RecognitionException;
     void rule__DtCRegEx__Group__3() throws RecognitionException;
     void rule__DtCRegEx__Group__3__Impl() throws RecognitionException;
     void rule__DtCRegEx__Group__4() throws RecognitionException;
     void rule__DtCRegEx__Group__4__Impl() throws RecognitionException;
     void rule__DtCRegEx__Group__5() throws RecognitionException;
     void rule__DtCRegEx__Group__5__Impl() throws RecognitionException;
     void rule__DtCRegEx__Group_4_0__0() throws RecognitionException;
     void rule__DtCRegEx__Group_4_0__0__Impl() throws RecognitionException;
     void rule__DtCRegEx__Group_4_0__1() throws RecognitionException;
     void rule__DtCRegEx__Group_4_0__1__Impl() throws RecognitionException;
     void rule__DtCRegEx__Group_4_0_1__0() throws RecognitionException;
     void rule__DtCRegEx__Group_4_0_1__0__Impl() throws RecognitionException;
     void rule__DtCRegEx__Group_4_0_1__1() throws RecognitionException;
     void rule__DtCRegEx__Group_4_0_1__1__Impl() throws RecognitionException;
     void rule__DtCRegEx__Group_4_0_1__2() throws RecognitionException;
     void rule__DtCRegEx__Group_4_0_1__2__Impl() throws RecognitionException;
     void rule__DtCRegEx__Group_4_1__0() throws RecognitionException;
     void rule__DtCRegEx__Group_4_1__0__Impl() throws RecognitionException;
     void rule__DtCRegEx__Group_4_1__1() throws RecognitionException;
     void rule__DtCRegEx__Group_4_1__1__Impl() throws RecognitionException;
     void rule__DtCRegEx__Group_4_1__2() throws RecognitionException;
     void rule__DtCRegEx__Group_4_1__2__Impl() throws RecognitionException;
     void rule__DtCRegEx__Group_4_2__0() throws RecognitionException;
     void rule__DtCRegEx__Group_4_2__0__Impl() throws RecognitionException;
     void rule__DtCRegEx__Group_4_2__1() throws RecognitionException;
     void rule__DtCRegEx__Group_4_2__1__Impl() throws RecognitionException;
     void rule__DtCRegEx__Group_4_2_0__0() throws RecognitionException;
     void rule__DtCRegEx__Group_4_2_0__0__Impl() throws RecognitionException;
     void rule__DtCRegEx__Group_4_2_0__1() throws RecognitionException;
     void rule__DtCRegEx__Group_4_2_0__1__Impl() throws RecognitionException;
     void rule__DtCRegEx__Group_4_2_0__2() throws RecognitionException;
     void rule__DtCRegEx__Group_4_2_0__2__Impl() throws RecognitionException;
     void rule__DtCSize__Group__0() throws RecognitionException;
     void rule__DtCSize__Group__0__Impl() throws RecognitionException;
     void rule__DtCSize__Group__1() throws RecognitionException;
     void rule__DtCSize__Group__1__Impl() throws RecognitionException;
     void rule__DtCSize__Group__2() throws RecognitionException;
     void rule__DtCSize__Group__2__Impl() throws RecognitionException;
     void rule__DtCSize__Group__3() throws RecognitionException;
     void rule__DtCSize__Group__3__Impl() throws RecognitionException;
     void rule__DtCSize__Group__4() throws RecognitionException;
     void rule__DtCSize__Group__4__Impl() throws RecognitionException;
     void rule__DtCSize__Group__5() throws RecognitionException;
     void rule__DtCSize__Group__5__Impl() throws RecognitionException;
     void rule__DtCSize__Group__6() throws RecognitionException;
     void rule__DtCSize__Group__6__Impl() throws RecognitionException;
     void rule__DtCSize__Group__7() throws RecognitionException;
     void rule__DtCSize__Group__7__Impl() throws RecognitionException;
     void rule__DtCSize__Group_6_0__0() throws RecognitionException;
     void rule__DtCSize__Group_6_0__0__Impl() throws RecognitionException;
     void rule__DtCSize__Group_6_0__1() throws RecognitionException;
     void rule__DtCSize__Group_6_0__1__Impl() throws RecognitionException;
     void rule__DtCSize__Group_6_0_1__0() throws RecognitionException;
     void rule__DtCSize__Group_6_0_1__0__Impl() throws RecognitionException;
     void rule__DtCSize__Group_6_0_1__1() throws RecognitionException;
     void rule__DtCSize__Group_6_0_1__1__Impl() throws RecognitionException;
     void rule__DtCSize__Group_6_0_1__2() throws RecognitionException;
     void rule__DtCSize__Group_6_0_1__2__Impl() throws RecognitionException;
     void rule__DtCSize__Group_6_1__0() throws RecognitionException;
     void rule__DtCSize__Group_6_1__0__Impl() throws RecognitionException;
     void rule__DtCSize__Group_6_1__1() throws RecognitionException;
     void rule__DtCSize__Group_6_1__1__Impl() throws RecognitionException;
     void rule__DtCSize__Group_6_1__2() throws RecognitionException;
     void rule__DtCSize__Group_6_1__2__Impl() throws RecognitionException;
     void rule__DtCSize__Group_6_2__0() throws RecognitionException;
     void rule__DtCSize__Group_6_2__0__Impl() throws RecognitionException;
     void rule__DtCSize__Group_6_2__1() throws RecognitionException;
     void rule__DtCSize__Group_6_2__1__Impl() throws RecognitionException;
     void rule__DtCSize__Group_6_2_0__0() throws RecognitionException;
     void rule__DtCSize__Group_6_2_0__0__Impl() throws RecognitionException;
     void rule__DtCSize__Group_6_2_0__1() throws RecognitionException;
     void rule__DtCSize__Group_6_2_0__1__Impl() throws RecognitionException;
     void rule__DtCSize__Group_6_2_0__2() throws RecognitionException;
     void rule__DtCSize__Group_6_2_0__2__Impl() throws RecognitionException;
     void rule__Enum__Group__0() throws RecognitionException;
     void rule__Enum__Group__0__Impl() throws RecognitionException;
     void rule__Enum__Group__1() throws RecognitionException;
     void rule__Enum__Group__1__Impl() throws RecognitionException;
     void rule__Enum__Group__2() throws RecognitionException;
     void rule__Enum__Group__2__Impl() throws RecognitionException;
     void rule__Enum__Group__3() throws RecognitionException;
     void rule__Enum__Group__3__Impl() throws RecognitionException;
     void rule__Enum__Group__4() throws RecognitionException;
     void rule__Enum__Group__4__Impl() throws RecognitionException;
     void rule__Enum__Group__5() throws RecognitionException;
     void rule__Enum__Group__5__Impl() throws RecognitionException;
     void rule__Enum__Group_4__0() throws RecognitionException;
     void rule__Enum__Group_4__0__Impl() throws RecognitionException;
     void rule__Enum__Group_4__1() throws RecognitionException;
     void rule__Enum__Group_4__1__Impl() throws RecognitionException;
     void rule__EnumLiteral__Group__0() throws RecognitionException;
     void rule__EnumLiteral__Group__0__Impl() throws RecognitionException;
     void rule__EnumLiteral__Group__1() throws RecognitionException;
     void rule__EnumLiteral__Group__1__Impl() throws RecognitionException;
     void rule__EnumLiteral__Group_1_0__0() throws RecognitionException;
     void rule__EnumLiteral__Group_1_0__0__Impl() throws RecognitionException;
     void rule__EnumLiteral__Group_1_0__1() throws RecognitionException;
     void rule__EnumLiteral__Group_1_0__1__Impl() throws RecognitionException;
     void rule__EnumLiteral__Group_1_1__0() throws RecognitionException;
     void rule__EnumLiteral__Group_1_1__0__Impl() throws RecognitionException;
     void rule__EnumLiteral__Group_1_1__1() throws RecognitionException;
     void rule__EnumLiteral__Group_1_1__1__Impl() throws RecognitionException;
     void rule__EnumLiteral__Group_1_1__2() throws RecognitionException;
     void rule__EnumLiteral__Group_1_1__2__Impl() throws RecognitionException;
     void rule__EnumLiteral__Group_1_1_2__0() throws RecognitionException;
     void rule__EnumLiteral__Group_1_1_2__0__Impl() throws RecognitionException;
     void rule__EnumLiteral__Group_1_1_2__1() throws RecognitionException;
     void rule__EnumLiteral__Group_1_1_2__1__Impl() throws RecognitionException;
     void rule__AnnotationDef__Group__0() throws RecognitionException;
     void rule__AnnotationDef__Group__0__Impl() throws RecognitionException;
     void rule__AttributeMatchingConstraint__Group__0() throws RecognitionException;
     void rule__AttributeMatchingConstraint__Group__0__Impl() throws RecognitionException;
     void rule__AttributeMatchingConstraint__Group__1() throws RecognitionException;
     void rule__AttributeMatchingConstraint__Group__1__Impl() throws RecognitionException;
     void rule__AttributeMatchingConstraint__Group__2() throws RecognitionException;
     void rule__AttributeMatchingConstraint__Group__2__Impl() throws RecognitionException;
     void rule__AttributeMatchingConstraint__Group__3() throws RecognitionException;
     void rule__AttributeMatchingConstraint__Group__3__Impl() throws RecognitionException;
     void rule__KeyAndValue__Group__0() throws RecognitionException;
     void rule__KeyAndValue__Group__0__Impl() throws RecognitionException;
     void rule__KeyAndValue__Group__1() throws RecognitionException;
     void rule__KeyAndValue__Group__1__Impl() throws RecognitionException;
     void rule__KeyAndValue__Group__2() throws RecognitionException;
     void rule__KeyAndValue__Group__2__Impl() throws RecognitionException;
     void rule__KeyAndValue__Group__3() throws RecognitionException;
     void rule__KeyAndValue__Group__3__Impl() throws RecognitionException;
     void rule__KeyAndValue__Group__4() throws RecognitionException;
     void rule__KeyAndValue__Group__4__Impl() throws RecognitionException;
     void rule__KeyAndValue__Group__5() throws RecognitionException;
     void rule__KeyAndValue__Group__5__Impl() throws RecognitionException;
     void rule__LQualifiedNameWithWildCard__Group__0() throws RecognitionException;
     void rule__LQualifiedNameWithWildCard__Group__0__Impl() throws RecognitionException;
     void rule__LQualifiedNameWithWildCard__Group__1() throws RecognitionException;
     void rule__LQualifiedNameWithWildCard__Group__1__Impl() throws RecognitionException;
     void rule__LQualifiedNameWithWildCard__Group_1__0() throws RecognitionException;
     void rule__LQualifiedNameWithWildCard__Group_1__0__Impl() throws RecognitionException;
     void rule__LQualifiedNameWithWildCard__Group_1__1() throws RecognitionException;
     void rule__LQualifiedNameWithWildCard__Group_1__1__Impl() throws RecognitionException;
     void rule__ValidIDWithKeywords__Group_5__0() throws RecognitionException;
     void rule__ValidIDWithKeywords__Group_5__0__Impl() throws RecognitionException;
     void rule__ValidIDWithKeywords__Group_5__1() throws RecognitionException;
     void rule__ValidIDWithKeywords__Group_5__1__Impl() throws RecognitionException;
     void rule__LInt__Group__0() throws RecognitionException;
     void rule__LInt__Group__0__Impl() throws RecognitionException;
     void rule__LInt__Group__1() throws RecognitionException;
     void rule__LInt__Group__1__Impl() throws RecognitionException;
     void rule__LDecimal__Group__0() throws RecognitionException;
     void rule__LDecimal__Group__0__Impl() throws RecognitionException;
     void rule__LDecimal__Group__1() throws RecognitionException;
     void rule__LDecimal__Group__1__Impl() throws RecognitionException;
     void rule__LDecimal__Group_1__0() throws RecognitionException;
     void rule__LDecimal__Group_1__0__Impl() throws RecognitionException;
     void rule__LDecimal__Group_1__1() throws RecognitionException;
     void rule__LDecimal__Group_1__1__Impl() throws RecognitionException;
     void rule__XAnnotation__Group__0() throws RecognitionException;
     void rule__XAnnotation__Group__0__Impl() throws RecognitionException;
     void rule__XAnnotation__Group__1() throws RecognitionException;
     void rule__XAnnotation__Group__1__Impl() throws RecognitionException;
     void rule__XAnnotation__Group__2() throws RecognitionException;
     void rule__XAnnotation__Group__2__Impl() throws RecognitionException;
     void rule__XAnnotation__Group__3() throws RecognitionException;
     void rule__XAnnotation__Group__3__Impl() throws RecognitionException;
     void rule__XAnnotation__Group_3__0() throws RecognitionException;
     void rule__XAnnotation__Group_3__0__Impl() throws RecognitionException;
     void rule__XAnnotation__Group_3__1() throws RecognitionException;
     void rule__XAnnotation__Group_3__1__Impl() throws RecognitionException;
     void rule__XAnnotation__Group_3__2() throws RecognitionException;
     void rule__XAnnotation__Group_3__2__Impl() throws RecognitionException;
     void rule__XAnnotation__Group_3_1_0__0() throws RecognitionException;
     void rule__XAnnotation__Group_3_1_0__0__Impl() throws RecognitionException;
     void rule__XAnnotation__Group_3_1_0__1() throws RecognitionException;
     void rule__XAnnotation__Group_3_1_0__1__Impl() throws RecognitionException;
     void rule__XAnnotation__Group_3_1_0_1__0() throws RecognitionException;
     void rule__XAnnotation__Group_3_1_0_1__0__Impl() throws RecognitionException;
     void rule__XAnnotation__Group_3_1_0_1__1() throws RecognitionException;
     void rule__XAnnotation__Group_3_1_0_1__1__Impl() throws RecognitionException;
     void rule__XAnnotationElementValuePair__Group__0() throws RecognitionException;
     void rule__XAnnotationElementValuePair__Group__0__Impl() throws RecognitionException;
     void rule__XAnnotationElementValuePair__Group__1() throws RecognitionException;
     void rule__XAnnotationElementValuePair__Group__1__Impl() throws RecognitionException;
     void rule__XAnnotationElementValuePair__Group_0__0() throws RecognitionException;
     void rule__XAnnotationElementValuePair__Group_0__0__Impl() throws RecognitionException;
     void rule__XAnnotationElementValuePair__Group_0_0__0() throws RecognitionException;
     void rule__XAnnotationElementValuePair__Group_0_0__0__Impl() throws RecognitionException;
     void rule__XAnnotationElementValuePair__Group_0_0__1() throws RecognitionException;
     void rule__XAnnotationElementValuePair__Group_0_0__1__Impl() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0__0() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0__1() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0__2() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0_0__0() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0_1__0() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0_1__1() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_1__0() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_1__1() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_1_1__0() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_1_1__1() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0__0() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0__0__Impl() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0__1() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0__1__Impl() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0__2() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0__2__Impl() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0_0__0() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0_0__0__Impl() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0_0_0__0() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0_0_0__0__Impl() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0_0_0__1() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0_0_0__1__Impl() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0_0_0__2() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0_0_0__2__Impl() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0_1__0() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0_1__0__Impl() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0_1__1() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0_1__1__Impl() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0_1_1__0() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0_1_1__0__Impl() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0_1_1__1() throws RecognitionException;
     void rule__XAnnotationElementValue__Group_0_1_1__1__Impl() throws RecognitionException;
     void rule__XAssignment__Group_0__0() throws RecognitionException;
     void rule__XAssignment__Group_0__0__Impl() throws RecognitionException;
     void rule__XAssignment__Group_0__1() throws RecognitionException;
     void rule__XAssignment__Group_0__1__Impl() throws RecognitionException;
     void rule__XAssignment__Group_0__2() throws RecognitionException;
     void rule__XAssignment__Group_0__2__Impl() throws RecognitionException;
     void rule__XAssignment__Group_0__3() throws RecognitionException;
     void rule__XAssignment__Group_0__3__Impl() throws RecognitionException;
     void rule__XAssignment__Group_1__0() throws RecognitionException;
     void rule__XAssignment__Group_1__0__Impl() throws RecognitionException;
     void rule__XAssignment__Group_1__1() throws RecognitionException;
     void rule__XAssignment__Group_1__1__Impl() throws RecognitionException;
     void rule__XAssignment__Group_1_1__0() throws RecognitionException;
     void rule__XAssignment__Group_1_1__0__Impl() throws RecognitionException;
     void rule__XAssignment__Group_1_1__1() throws RecognitionException;
     void rule__XAssignment__Group_1_1__1__Impl() throws RecognitionException;
     void rule__XAssignment__Group_1_1_0__0() throws RecognitionException;
     void rule__XAssignment__Group_1_1_0__0__Impl() throws RecognitionException;
     void rule__XAssignment__Group_1_1_0_0__0() throws RecognitionException;
     void rule__XAssignment__Group_1_1_0_0__0__Impl() throws RecognitionException;
     void rule__XAssignment__Group_1_1_0_0__1() throws RecognitionException;
     void rule__XAssignment__Group_1_1_0_0__1__Impl() throws RecognitionException;
     void rule__OpMultiAssign__Group_5__0() throws RecognitionException;
     void rule__OpMultiAssign__Group_5__0__Impl() throws RecognitionException;
     void rule__OpMultiAssign__Group_5__1() throws RecognitionException;
     void rule__OpMultiAssign__Group_5__1__Impl() throws RecognitionException;
     void rule__OpMultiAssign__Group_5__2() throws RecognitionException;
     void rule__OpMultiAssign__Group_5__2__Impl() throws RecognitionException;
     void rule__OpMultiAssign__Group_6__0() throws RecognitionException;
     void rule__OpMultiAssign__Group_6__0__Impl() throws RecognitionException;
     void rule__OpMultiAssign__Group_6__1() throws RecognitionException;
     void rule__OpMultiAssign__Group_6__1__Impl() throws RecognitionException;
     void rule__OpMultiAssign__Group_6__2() throws RecognitionException;
     void rule__OpMultiAssign__Group_6__2__Impl() throws RecognitionException;
     void rule__XOrExpression__Group__0() throws RecognitionException;
     void rule__XOrExpression__Group__0__Impl() throws RecognitionException;
     void rule__XOrExpression__Group__1() throws RecognitionException;
     void rule__XOrExpression__Group__1__Impl() throws RecognitionException;
     void rule__XOrExpression__Group_1__0() throws RecognitionException;
     void rule__XOrExpression__Group_1__0__Impl() throws RecognitionException;
     void rule__XOrExpression__Group_1__1() throws RecognitionException;
     void rule__XOrExpression__Group_1__1__Impl() throws RecognitionException;
     void rule__XOrExpression__Group_1_0__0() throws RecognitionException;
     void rule__XOrExpression__Group_1_0__0__Impl() throws RecognitionException;
     void rule__XOrExpression__Group_1_0_0__0() throws RecognitionException;
     void rule__XOrExpression__Group_1_0_0__0__Impl() throws RecognitionException;
     void rule__XOrExpression__Group_1_0_0__1() throws RecognitionException;
     void rule__XOrExpression__Group_1_0_0__1__Impl() throws RecognitionException;
     void rule__XAndExpression__Group__0() throws RecognitionException;
     void rule__XAndExpression__Group__0__Impl() throws RecognitionException;
     void rule__XAndExpression__Group__1() throws RecognitionException;
     void rule__XAndExpression__Group__1__Impl() throws RecognitionException;
     void rule__XAndExpression__Group_1__0() throws RecognitionException;
     void rule__XAndExpression__Group_1__0__Impl() throws RecognitionException;
     void rule__XAndExpression__Group_1__1() throws RecognitionException;
     void rule__XAndExpression__Group_1__1__Impl() throws RecognitionException;
     void rule__XAndExpression__Group_1_0__0() throws RecognitionException;
     void rule__XAndExpression__Group_1_0__0__Impl() throws RecognitionException;
     void rule__XAndExpression__Group_1_0_0__0() throws RecognitionException;
     void rule__XAndExpression__Group_1_0_0__0__Impl() throws RecognitionException;
     void rule__XAndExpression__Group_1_0_0__1() throws RecognitionException;
     void rule__XAndExpression__Group_1_0_0__1__Impl() throws RecognitionException;
     void rule__XEqualityExpression__Group__0() throws RecognitionException;
     void rule__XEqualityExpression__Group__0__Impl() throws RecognitionException;
     void rule__XEqualityExpression__Group__1() throws RecognitionException;
     void rule__XEqualityExpression__Group__1__Impl() throws RecognitionException;
     void rule__XEqualityExpression__Group_1__0() throws RecognitionException;
     void rule__XEqualityExpression__Group_1__0__Impl() throws RecognitionException;
     void rule__XEqualityExpression__Group_1__1() throws RecognitionException;
     void rule__XEqualityExpression__Group_1__1__Impl() throws RecognitionException;
     void rule__XEqualityExpression__Group_1_0__0() throws RecognitionException;
     void rule__XEqualityExpression__Group_1_0__0__Impl() throws RecognitionException;
     void rule__XEqualityExpression__Group_1_0_0__0() throws RecognitionException;
     void rule__XEqualityExpression__Group_1_0_0__0__Impl() throws RecognitionException;
     void rule__XEqualityExpression__Group_1_0_0__1() throws RecognitionException;
     void rule__XEqualityExpression__Group_1_0_0__1__Impl() throws RecognitionException;
     void rule__XRelationalExpression__Group__0() throws RecognitionException;
     void rule__XRelationalExpression__Group__0__Impl() throws RecognitionException;
     void rule__XRelationalExpression__Group__1() throws RecognitionException;
     void rule__XRelationalExpression__Group__1__Impl() throws RecognitionException;
     void rule__XRelationalExpression__Group_1_0__0() throws RecognitionException;
     void rule__XRelationalExpression__Group_1_0__0__Impl() throws RecognitionException;
     void rule__XRelationalExpression__Group_1_0__1() throws RecognitionException;
     void rule__XRelationalExpression__Group_1_0__1__Impl() throws RecognitionException;
     void rule__XRelationalExpression__Group_1_0_0__0() throws RecognitionException;
     void rule__XRelationalExpression__Group_1_0_0__0__Impl() throws RecognitionException;
     void rule__XRelationalExpression__Group_1_0_0_0__0() throws RecognitionException;
     void rule__XRelationalExpression__Group_1_0_0_0__0__Impl() throws RecognitionException;
     void rule__XRelationalExpression__Group_1_0_0_0__1() throws RecognitionException;
     void rule__XRelationalExpression__Group_1_0_0_0__1__Impl() throws RecognitionException;
     void rule__XRelationalExpression__Group_1_1__0() throws RecognitionException;
     void rule__XRelationalExpression__Group_1_1__0__Impl() throws RecognitionException;
     void rule__XRelationalExpression__Group_1_1__1() throws RecognitionException;
     void rule__XRelationalExpression__Group_1_1__1__Impl() throws RecognitionException;
     void rule__XRelationalExpression__Group_1_1_0__0() throws RecognitionException;
     void rule__XRelationalExpression__Group_1_1_0__0__Impl() throws RecognitionException;
     void rule__XRelationalExpression__Group_1_1_0_0__0() throws RecognitionException;
     void rule__XRelationalExpression__Group_1_1_0_0__0__Impl() throws RecognitionException;
     void rule__XRelationalExpression__Group_1_1_0_0__1() throws RecognitionException;
     void rule__XRelationalExpression__Group_1_1_0_0__1__Impl() throws RecognitionException;
     void rule__OpCompare__Group_1__0() throws RecognitionException;
     void rule__OpCompare__Group_1__0__Impl() throws RecognitionException;
     void rule__OpCompare__Group_1__1() throws RecognitionException;
     void rule__OpCompare__Group_1__1__Impl() throws RecognitionException;
     void rule__XOtherOperatorExpression__Group__0() throws RecognitionException;
     void rule__XOtherOperatorExpression__Group__0__Impl() throws RecognitionException;
     void rule__XOtherOperatorExpression__Group__1() throws RecognitionException;
     void rule__XOtherOperatorExpression__Group__1__Impl() throws RecognitionException;
     void rule__XOtherOperatorExpression__Group_1__0() throws RecognitionException;
     void rule__XOtherOperatorExpression__Group_1__0__Impl() throws RecognitionException;
     void rule__XOtherOperatorExpression__Group_1__1() throws RecognitionException;
     void rule__XOtherOperatorExpression__Group_1__1__Impl() throws RecognitionException;
     void rule__XOtherOperatorExpression__Group_1_0__0() throws RecognitionException;
     void rule__XOtherOperatorExpression__Group_1_0__0__Impl() throws RecognitionException;
     void rule__XOtherOperatorExpression__Group_1_0_0__0() throws RecognitionException;
     void rule__XOtherOperatorExpression__Group_1_0_0__0__Impl() throws RecognitionException;
     void rule__XOtherOperatorExpression__Group_1_0_0__1() throws RecognitionException;
     void rule__XOtherOperatorExpression__Group_1_0_0__1__Impl() throws RecognitionException;
     void rule__OpOther__Group_2__0() throws RecognitionException;
     void rule__OpOther__Group_2__0__Impl() throws RecognitionException;
     void rule__OpOther__Group_2__1() throws RecognitionException;
     void rule__OpOther__Group_2__1__Impl() throws RecognitionException;
     void rule__OpOther__Group_5__0() throws RecognitionException;
     void rule__OpOther__Group_5__0__Impl() throws RecognitionException;
     void rule__OpOther__Group_5__1() throws RecognitionException;
     void rule__OpOther__Group_5__1__Impl() throws RecognitionException;
     void rule__OpOther__Group_5_1_0__0() throws RecognitionException;
     void rule__OpOther__Group_5_1_0__0__Impl() throws RecognitionException;
     void rule__OpOther__Group_5_1_0_0__0() throws RecognitionException;
     void rule__OpOther__Group_5_1_0_0__0__Impl() throws RecognitionException;
     void rule__OpOther__Group_5_1_0_0__1() throws RecognitionException;
     void rule__OpOther__Group_5_1_0_0__1__Impl() throws RecognitionException;
     void rule__OpOther__Group_6__0() throws RecognitionException;
     void rule__OpOther__Group_6__0__Impl() throws RecognitionException;
     void rule__OpOther__Group_6__1() throws RecognitionException;
     void rule__OpOther__Group_6__1__Impl() throws RecognitionException;
     void rule__OpOther__Group_6_1_0__0() throws RecognitionException;
     void rule__OpOther__Group_6_1_0__0__Impl() throws RecognitionException;
     void rule__OpOther__Group_6_1_0_0__0() throws RecognitionException;
     void rule__OpOther__Group_6_1_0_0__0__Impl() throws RecognitionException;
     void rule__OpOther__Group_6_1_0_0__1() throws RecognitionException;
     void rule__OpOther__Group_6_1_0_0__1__Impl() throws RecognitionException;
     void rule__XAdditiveExpression__Group__0() throws RecognitionException;
     void rule__XAdditiveExpression__Group__0__Impl() throws RecognitionException;
     void rule__XAdditiveExpression__Group__1() throws RecognitionException;
     void rule__XAdditiveExpression__Group__1__Impl() throws RecognitionException;
     void rule__XAdditiveExpression__Group_1__0() throws RecognitionException;
     void rule__XAdditiveExpression__Group_1__0__Impl() throws RecognitionException;
     void rule__XAdditiveExpression__Group_1__1() throws RecognitionException;
     void rule__XAdditiveExpression__Group_1__1__Impl() throws RecognitionException;
     void rule__XAdditiveExpression__Group_1_0__0() throws RecognitionException;
     void rule__XAdditiveExpression__Group_1_0__0__Impl() throws RecognitionException;
     void rule__XAdditiveExpression__Group_1_0_0__0() throws RecognitionException;
     void rule__XAdditiveExpression__Group_1_0_0__0__Impl() throws RecognitionException;
     void rule__XAdditiveExpression__Group_1_0_0__1() throws RecognitionException;
     void rule__XAdditiveExpression__Group_1_0_0__1__Impl() throws RecognitionException;
     void rule__XMultiplicativeExpression__Group__0() throws RecognitionException;
     void rule__XMultiplicativeExpression__Group__0__Impl() throws RecognitionException;
     void rule__XMultiplicativeExpression__Group__1() throws RecognitionException;
     void rule__XMultiplicativeExpression__Group__1__Impl() throws RecognitionException;
     void rule__XMultiplicativeExpression__Group_1__0() throws RecognitionException;
     void rule__XMultiplicativeExpression__Group_1__0__Impl() throws RecognitionException;
     void rule__XMultiplicativeExpression__Group_1__1() throws RecognitionException;
     void rule__XMultiplicativeExpression__Group_1__1__Impl() throws RecognitionException;
     void rule__XMultiplicativeExpression__Group_1_0__0() throws RecognitionException;
     void rule__XMultiplicativeExpression__Group_1_0__0__Impl() throws RecognitionException;
     void rule__XMultiplicativeExpression__Group_1_0_0__0() throws RecognitionException;
     void rule__XMultiplicativeExpression__Group_1_0_0__0__Impl() throws RecognitionException;
     void rule__XMultiplicativeExpression__Group_1_0_0__1() throws RecognitionException;
     void rule__XMultiplicativeExpression__Group_1_0_0__1__Impl() throws RecognitionException;
     void rule__XUnaryOperation__Group_0__0() throws RecognitionException;
     void rule__XUnaryOperation__Group_0__0__Impl() throws RecognitionException;
     void rule__XUnaryOperation__Group_0__1() throws RecognitionException;
     void rule__XUnaryOperation__Group_0__1__Impl() throws RecognitionException;
     void rule__XUnaryOperation__Group_0__2() throws RecognitionException;
     void rule__XUnaryOperation__Group_0__2__Impl() throws RecognitionException;
     void rule__XCastedExpression__Group__0() throws RecognitionException;
     void rule__XCastedExpression__Group__0__Impl() throws RecognitionException;
     void rule__XCastedExpression__Group__1() throws RecognitionException;
     void rule__XCastedExpression__Group__1__Impl() throws RecognitionException;
     void rule__XCastedExpression__Group_1__0() throws RecognitionException;
     void rule__XCastedExpression__Group_1__0__Impl() throws RecognitionException;
     void rule__XCastedExpression__Group_1__1() throws RecognitionException;
     void rule__XCastedExpression__Group_1__1__Impl() throws RecognitionException;
     void rule__XCastedExpression__Group_1_0__0() throws RecognitionException;
     void rule__XCastedExpression__Group_1_0__0__Impl() throws RecognitionException;
     void rule__XCastedExpression__Group_1_0_0__0() throws RecognitionException;
     void rule__XCastedExpression__Group_1_0_0__0__Impl() throws RecognitionException;
     void rule__XCastedExpression__Group_1_0_0__1() throws RecognitionException;
     void rule__XCastedExpression__Group_1_0_0__1__Impl() throws RecognitionException;
     void rule__XPostfixOperation__Group__0() throws RecognitionException;
     void rule__XPostfixOperation__Group__0__Impl() throws RecognitionException;
     void rule__XPostfixOperation__Group__1() throws RecognitionException;
     void rule__XPostfixOperation__Group__1__Impl() throws RecognitionException;
     void rule__XPostfixOperation__Group_1__0() throws RecognitionException;
     void rule__XPostfixOperation__Group_1__0__Impl() throws RecognitionException;
     void rule__XPostfixOperation__Group_1_0__0() throws RecognitionException;
     void rule__XPostfixOperation__Group_1_0__0__Impl() throws RecognitionException;
     void rule__XPostfixOperation__Group_1_0__1() throws RecognitionException;
     void rule__XPostfixOperation__Group_1_0__1__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group__0() throws RecognitionException;
     void rule__XMemberFeatureCall__Group__0__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group__1() throws RecognitionException;
     void rule__XMemberFeatureCall__Group__1__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_0__0() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_0__0__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_0__1() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_0__1__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_0_0__0() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_0_0__0__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_0_0_0__0() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_0_0_0__1() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_0_0_0__2() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_0_0_0__3() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1__0() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1__0__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1__1() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1__1__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1__2() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1__2__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1__3() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1__3__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1__4() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1__4__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_0__0() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_0__0__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_0_0__0() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_0_0__1() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_1__0() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_1__0__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_1__1() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_1__1__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_1__2() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_1__2__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_1__3() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_1__3__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_1_2__0() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_1_2__1() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_3__0() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_3__0__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_3__1() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_3__1__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_3__2() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_3__2__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_3_1_1__0() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_3_1_1__1() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1() throws RecognitionException;
     void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl() throws RecognitionException;
     void rule__XSetLiteral__Group__0() throws RecognitionException;
     void rule__XSetLiteral__Group__0__Impl() throws RecognitionException;
     void rule__XSetLiteral__Group__1() throws RecognitionException;
     void rule__XSetLiteral__Group__1__Impl() throws RecognitionException;
     void rule__XSetLiteral__Group__2() throws RecognitionException;
     void rule__XSetLiteral__Group__2__Impl() throws RecognitionException;
     void rule__XSetLiteral__Group__3() throws RecognitionException;
     void rule__XSetLiteral__Group__3__Impl() throws RecognitionException;
     void rule__XSetLiteral__Group__4() throws RecognitionException;
     void rule__XSetLiteral__Group__4__Impl() throws RecognitionException;
     void rule__XSetLiteral__Group_3__0() throws RecognitionException;
     void rule__XSetLiteral__Group_3__0__Impl() throws RecognitionException;
     void rule__XSetLiteral__Group_3__1() throws RecognitionException;
     void rule__XSetLiteral__Group_3__1__Impl() throws RecognitionException;
     void rule__XSetLiteral__Group_3_1__0() throws RecognitionException;
     void rule__XSetLiteral__Group_3_1__0__Impl() throws RecognitionException;
     void rule__XSetLiteral__Group_3_1__1() throws RecognitionException;
     void rule__XSetLiteral__Group_3_1__1__Impl() throws RecognitionException;
     void rule__XListLiteral__Group__0() throws RecognitionException;
     void rule__XListLiteral__Group__0__Impl() throws RecognitionException;
     void rule__XListLiteral__Group__1() throws RecognitionException;
     void rule__XListLiteral__Group__1__Impl() throws RecognitionException;
     void rule__XListLiteral__Group__2() throws RecognitionException;
     void rule__XListLiteral__Group__2__Impl() throws RecognitionException;
     void rule__XListLiteral__Group__3() throws RecognitionException;
     void rule__XListLiteral__Group__3__Impl() throws RecognitionException;
     void rule__XListLiteral__Group__4() throws RecognitionException;
     void rule__XListLiteral__Group__4__Impl() throws RecognitionException;
     void rule__XListLiteral__Group_3__0() throws RecognitionException;
     void rule__XListLiteral__Group_3__0__Impl() throws RecognitionException;
     void rule__XListLiteral__Group_3__1() throws RecognitionException;
     void rule__XListLiteral__Group_3__1__Impl() throws RecognitionException;
     void rule__XListLiteral__Group_3_1__0() throws RecognitionException;
     void rule__XListLiteral__Group_3_1__0__Impl() throws RecognitionException;
     void rule__XListLiteral__Group_3_1__1() throws RecognitionException;
     void rule__XListLiteral__Group_3_1__1__Impl() throws RecognitionException;
     void rule__XClosure__Group__0() throws RecognitionException;
     void rule__XClosure__Group__0__Impl() throws RecognitionException;
     void rule__XClosure__Group__1() throws RecognitionException;
     void rule__XClosure__Group__1__Impl() throws RecognitionException;
     void rule__XClosure__Group__2() throws RecognitionException;
     void rule__XClosure__Group__2__Impl() throws RecognitionException;
     void rule__XClosure__Group__3() throws RecognitionException;
     void rule__XClosure__Group__3__Impl() throws RecognitionException;
     void rule__XClosure__Group_0__0() throws RecognitionException;
     void rule__XClosure__Group_0__0__Impl() throws RecognitionException;
     void rule__XClosure__Group_0_0__0() throws RecognitionException;
     void rule__XClosure__Group_0_0__0__Impl() throws RecognitionException;
     void rule__XClosure__Group_0_0__1() throws RecognitionException;
     void rule__XClosure__Group_0_0__1__Impl() throws RecognitionException;
     void rule__XClosure__Group_1__0() throws RecognitionException;
     void rule__XClosure__Group_1__0__Impl() throws RecognitionException;
     void rule__XClosure__Group_1_0__0() throws RecognitionException;
     void rule__XClosure__Group_1_0__0__Impl() throws RecognitionException;
     void rule__XClosure__Group_1_0__1() throws RecognitionException;
     void rule__XClosure__Group_1_0__1__Impl() throws RecognitionException;
     void rule__XClosure__Group_1_0_0__0() throws RecognitionException;
     void rule__XClosure__Group_1_0_0__0__Impl() throws RecognitionException;
     void rule__XClosure__Group_1_0_0__1() throws RecognitionException;
     void rule__XClosure__Group_1_0_0__1__Impl() throws RecognitionException;
     void rule__XClosure__Group_1_0_0_1__0() throws RecognitionException;
     void rule__XClosure__Group_1_0_0_1__0__Impl() throws RecognitionException;
     void rule__XClosure__Group_1_0_0_1__1() throws RecognitionException;
     void rule__XClosure__Group_1_0_0_1__1__Impl() throws RecognitionException;
     void rule__XExpressionInClosure__Group__0() throws RecognitionException;
     void rule__XExpressionInClosure__Group__0__Impl() throws RecognitionException;
     void rule__XExpressionInClosure__Group__1() throws RecognitionException;
     void rule__XExpressionInClosure__Group__1__Impl() throws RecognitionException;
     void rule__XExpressionInClosure__Group_1__0() throws RecognitionException;
     void rule__XExpressionInClosure__Group_1__0__Impl() throws RecognitionException;
     void rule__XExpressionInClosure__Group_1__1() throws RecognitionException;
     void rule__XExpressionInClosure__Group_1__1__Impl() throws RecognitionException;
     void rule__XShortClosure__Group__0() throws RecognitionException;
     void rule__XShortClosure__Group__0__Impl() throws RecognitionException;
     void rule__XShortClosure__Group__1() throws RecognitionException;
     void rule__XShortClosure__Group__1__Impl() throws RecognitionException;
     void rule__XShortClosure__Group_0__0() throws RecognitionException;
     void rule__XShortClosure__Group_0__0__Impl() throws RecognitionException;
     void rule__XShortClosure__Group_0_0__0() throws RecognitionException;
     void rule__XShortClosure__Group_0_0__0__Impl() throws RecognitionException;
     void rule__XShortClosure__Group_0_0__1() throws RecognitionException;
     void rule__XShortClosure__Group_0_0__1__Impl() throws RecognitionException;
     void rule__XShortClosure__Group_0_0__2() throws RecognitionException;
     void rule__XShortClosure__Group_0_0__2__Impl() throws RecognitionException;
     void rule__XShortClosure__Group_0_0_1__0() throws RecognitionException;
     void rule__XShortClosure__Group_0_0_1__0__Impl() throws RecognitionException;
     void rule__XShortClosure__Group_0_0_1__1() throws RecognitionException;
     void rule__XShortClosure__Group_0_0_1__1__Impl() throws RecognitionException;
     void rule__XShortClosure__Group_0_0_1_1__0() throws RecognitionException;
     void rule__XShortClosure__Group_0_0_1_1__0__Impl() throws RecognitionException;
     void rule__XShortClosure__Group_0_0_1_1__1() throws RecognitionException;
     void rule__XShortClosure__Group_0_0_1_1__1__Impl() throws RecognitionException;
     void rule__XParenthesizedExpression__Group__0() throws RecognitionException;
     void rule__XParenthesizedExpression__Group__0__Impl() throws RecognitionException;
     void rule__XParenthesizedExpression__Group__1() throws RecognitionException;
     void rule__XParenthesizedExpression__Group__1__Impl() throws RecognitionException;
     void rule__XParenthesizedExpression__Group__2() throws RecognitionException;
     void rule__XParenthesizedExpression__Group__2__Impl() throws RecognitionException;
     void rule__XIfExpression__Group__0() throws RecognitionException;
     void rule__XIfExpression__Group__0__Impl() throws RecognitionException;
     void rule__XIfExpression__Group__1() throws RecognitionException;
     void rule__XIfExpression__Group__1__Impl() throws RecognitionException;
     void rule__XIfExpression__Group__2() throws RecognitionException;
     void rule__XIfExpression__Group__2__Impl() throws RecognitionException;
     void rule__XIfExpression__Group__3() throws RecognitionException;
     void rule__XIfExpression__Group__3__Impl() throws RecognitionException;
     void rule__XIfExpression__Group__4() throws RecognitionException;
     void rule__XIfExpression__Group__4__Impl() throws RecognitionException;
     void rule__XIfExpression__Group__5() throws RecognitionException;
     void rule__XIfExpression__Group__5__Impl() throws RecognitionException;
     void rule__XIfExpression__Group__6() throws RecognitionException;
     void rule__XIfExpression__Group__6__Impl() throws RecognitionException;
     void rule__XIfExpression__Group_6__0() throws RecognitionException;
     void rule__XIfExpression__Group_6__0__Impl() throws RecognitionException;
     void rule__XIfExpression__Group_6__1() throws RecognitionException;
     void rule__XIfExpression__Group_6__1__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group__0() throws RecognitionException;
     void rule__XSwitchExpression__Group__0__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group__1() throws RecognitionException;
     void rule__XSwitchExpression__Group__1__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group__2() throws RecognitionException;
     void rule__XSwitchExpression__Group__2__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group__3() throws RecognitionException;
     void rule__XSwitchExpression__Group__3__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group__4() throws RecognitionException;
     void rule__XSwitchExpression__Group__4__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group__5() throws RecognitionException;
     void rule__XSwitchExpression__Group__5__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group__6() throws RecognitionException;
     void rule__XSwitchExpression__Group__6__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_0__0() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_0__0__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_0__1() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_0__1__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_0__2() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_0__2__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_0_0__0() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_0_0__0__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_0_0_0__0() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_0_0_0__0__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_0_0_0__1() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_0_0_0__1__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_0_0_0__2() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_0_0_0__2__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_1__0() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_1__0__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_1__1() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_1__1__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_1_0__0() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_1_0__0__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_1_0_0__0() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_1_0_0__0__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_1_0_0__1() throws RecognitionException;
     void rule__XSwitchExpression__Group_2_1_0_0__1__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group_5__0() throws RecognitionException;
     void rule__XSwitchExpression__Group_5__0__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group_5__1() throws RecognitionException;
     void rule__XSwitchExpression__Group_5__1__Impl() throws RecognitionException;
     void rule__XSwitchExpression__Group_5__2() throws RecognitionException;
     void rule__XSwitchExpression__Group_5__2__Impl() throws RecognitionException;
     void rule__XCasePart__Group__0() throws RecognitionException;
     void rule__XCasePart__Group__0__Impl() throws RecognitionException;
     void rule__XCasePart__Group__1() throws RecognitionException;
     void rule__XCasePart__Group__1__Impl() throws RecognitionException;
     void rule__XCasePart__Group__2() throws RecognitionException;
     void rule__XCasePart__Group__2__Impl() throws RecognitionException;
     void rule__XCasePart__Group__3() throws RecognitionException;
     void rule__XCasePart__Group__3__Impl() throws RecognitionException;
     void rule__XCasePart__Group_2__0() throws RecognitionException;
     void rule__XCasePart__Group_2__0__Impl() throws RecognitionException;
     void rule__XCasePart__Group_2__1() throws RecognitionException;
     void rule__XCasePart__Group_2__1__Impl() throws RecognitionException;
     void rule__XCasePart__Group_3_0__0() throws RecognitionException;
     void rule__XCasePart__Group_3_0__0__Impl() throws RecognitionException;
     void rule__XCasePart__Group_3_0__1() throws RecognitionException;
     void rule__XCasePart__Group_3_0__1__Impl() throws RecognitionException;
     void rule__XForLoopExpression__Group__0() throws RecognitionException;
     void rule__XForLoopExpression__Group__0__Impl() throws RecognitionException;
     void rule__XForLoopExpression__Group__1() throws RecognitionException;
     void rule__XForLoopExpression__Group__1__Impl() throws RecognitionException;
     void rule__XForLoopExpression__Group__2() throws RecognitionException;
     void rule__XForLoopExpression__Group__2__Impl() throws RecognitionException;
     void rule__XForLoopExpression__Group__3() throws RecognitionException;
     void rule__XForLoopExpression__Group__3__Impl() throws RecognitionException;
     void rule__XForLoopExpression__Group_0__0() throws RecognitionException;
     void rule__XForLoopExpression__Group_0__0__Impl() throws RecognitionException;
     void rule__XForLoopExpression__Group_0_0__0() throws RecognitionException;
     void rule__XForLoopExpression__Group_0_0__0__Impl() throws RecognitionException;
     void rule__XForLoopExpression__Group_0_0__1() throws RecognitionException;
     void rule__XForLoopExpression__Group_0_0__1__Impl() throws RecognitionException;
     void rule__XForLoopExpression__Group_0_0__2() throws RecognitionException;
     void rule__XForLoopExpression__Group_0_0__2__Impl() throws RecognitionException;
     void rule__XForLoopExpression__Group_0_0__3() throws RecognitionException;
     void rule__XForLoopExpression__Group_0_0__3__Impl() throws RecognitionException;
     void rule__XForLoopExpression__Group_0_0__4() throws RecognitionException;
     void rule__XForLoopExpression__Group_0_0__4__Impl() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group__0() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group__0__Impl() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group__1() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group__1__Impl() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group__2() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group__2__Impl() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group__3() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group__3__Impl() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group__4() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group__4__Impl() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group__5() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group__5__Impl() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group__6() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group__6__Impl() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group__7() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group__7__Impl() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group__8() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group__8__Impl() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group__9() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group__9__Impl() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group_3__0() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group_3__0__Impl() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group_3__1() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group_3__1__Impl() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group_3_1__0() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group_3_1__0__Impl() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group_3_1__1() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group_3_1__1__Impl() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group_7__0() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group_7__0__Impl() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group_7__1() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group_7__1__Impl() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group_7_1__0() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group_7_1__0__Impl() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group_7_1__1() throws RecognitionException;
     void rule__XBasicForLoopExpression__Group_7_1__1__Impl() throws RecognitionException;
     void rule__XWhileExpression__Group__0() throws RecognitionException;
     void rule__XWhileExpression__Group__0__Impl() throws RecognitionException;
     void rule__XWhileExpression__Group__1() throws RecognitionException;
     void rule__XWhileExpression__Group__1__Impl() throws RecognitionException;
     void rule__XWhileExpression__Group__2() throws RecognitionException;
     void rule__XWhileExpression__Group__2__Impl() throws RecognitionException;
     void rule__XWhileExpression__Group__3() throws RecognitionException;
     void rule__XWhileExpression__Group__3__Impl() throws RecognitionException;
     void rule__XWhileExpression__Group__4() throws RecognitionException;
     void rule__XWhileExpression__Group__4__Impl() throws RecognitionException;
     void rule__XWhileExpression__Group__5() throws RecognitionException;
     void rule__XWhileExpression__Group__5__Impl() throws RecognitionException;
     void rule__XDoWhileExpression__Group__0() throws RecognitionException;
     void rule__XDoWhileExpression__Group__0__Impl() throws RecognitionException;
     void rule__XDoWhileExpression__Group__1() throws RecognitionException;
     void rule__XDoWhileExpression__Group__1__Impl() throws RecognitionException;
     void rule__XDoWhileExpression__Group__2() throws RecognitionException;
     void rule__XDoWhileExpression__Group__2__Impl() throws RecognitionException;
     void rule__XDoWhileExpression__Group__3() throws RecognitionException;
     void rule__XDoWhileExpression__Group__3__Impl() throws RecognitionException;
     void rule__XDoWhileExpression__Group__4() throws RecognitionException;
     void rule__XDoWhileExpression__Group__4__Impl() throws RecognitionException;
     void rule__XDoWhileExpression__Group__5() throws RecognitionException;
     void rule__XDoWhileExpression__Group__5__Impl() throws RecognitionException;
     void rule__XDoWhileExpression__Group__6() throws RecognitionException;
     void rule__XDoWhileExpression__Group__6__Impl() throws RecognitionException;
     void rule__XBlockExpression__Group__0() throws RecognitionException;
     void rule__XBlockExpression__Group__0__Impl() throws RecognitionException;
     void rule__XBlockExpression__Group__1() throws RecognitionException;
     void rule__XBlockExpression__Group__1__Impl() throws RecognitionException;
     void rule__XBlockExpression__Group__2() throws RecognitionException;
     void rule__XBlockExpression__Group__2__Impl() throws RecognitionException;
     void rule__XBlockExpression__Group__3() throws RecognitionException;
     void rule__XBlockExpression__Group__3__Impl() throws RecognitionException;
     void rule__XBlockExpression__Group_2__0() throws RecognitionException;
     void rule__XBlockExpression__Group_2__0__Impl() throws RecognitionException;
     void rule__XBlockExpression__Group_2__1() throws RecognitionException;
     void rule__XBlockExpression__Group_2__1__Impl() throws RecognitionException;
     void rule__XVariableDeclaration__Group__0() throws RecognitionException;
     void rule__XVariableDeclaration__Group__0__Impl() throws RecognitionException;
     void rule__XVariableDeclaration__Group__1() throws RecognitionException;
     void rule__XVariableDeclaration__Group__1__Impl() throws RecognitionException;
     void rule__XVariableDeclaration__Group__2() throws RecognitionException;
     void rule__XVariableDeclaration__Group__2__Impl() throws RecognitionException;
     void rule__XVariableDeclaration__Group__3() throws RecognitionException;
     void rule__XVariableDeclaration__Group__3__Impl() throws RecognitionException;
     void rule__XVariableDeclaration__Group_2_0__0() throws RecognitionException;
     void rule__XVariableDeclaration__Group_2_0__0__Impl() throws RecognitionException;
     void rule__XVariableDeclaration__Group_2_0_0__0() throws RecognitionException;
     void rule__XVariableDeclaration__Group_2_0_0__0__Impl() throws RecognitionException;
     void rule__XVariableDeclaration__Group_2_0_0__1() throws RecognitionException;
     void rule__XVariableDeclaration__Group_2_0_0__1__Impl() throws RecognitionException;
     void rule__XVariableDeclaration__Group_3__0() throws RecognitionException;
     void rule__XVariableDeclaration__Group_3__0__Impl() throws RecognitionException;
     void rule__XVariableDeclaration__Group_3__1() throws RecognitionException;
     void rule__XVariableDeclaration__Group_3__1__Impl() throws RecognitionException;
     void rule__JvmFormalParameter__Group__0() throws RecognitionException;
     void rule__JvmFormalParameter__Group__0__Impl() throws RecognitionException;
     void rule__JvmFormalParameter__Group__1() throws RecognitionException;
     void rule__JvmFormalParameter__Group__1__Impl() throws RecognitionException;
     void rule__FullJvmFormalParameter__Group__0() throws RecognitionException;
     void rule__FullJvmFormalParameter__Group__0__Impl() throws RecognitionException;
     void rule__FullJvmFormalParameter__Group__1() throws RecognitionException;
     void rule__FullJvmFormalParameter__Group__1__Impl() throws RecognitionException;
     void rule__XFeatureCall__Group__0() throws RecognitionException;
     void rule__XFeatureCall__Group__0__Impl() throws RecognitionException;
     void rule__XFeatureCall__Group__1() throws RecognitionException;
     void rule__XFeatureCall__Group__1__Impl() throws RecognitionException;
     void rule__XFeatureCall__Group__2() throws RecognitionException;
     void rule__XFeatureCall__Group__2__Impl() throws RecognitionException;
     void rule__XFeatureCall__Group__3() throws RecognitionException;
     void rule__XFeatureCall__Group__3__Impl() throws RecognitionException;
     void rule__XFeatureCall__Group__4() throws RecognitionException;
     void rule__XFeatureCall__Group__4__Impl() throws RecognitionException;
     void rule__XFeatureCall__Group_1__0() throws RecognitionException;
     void rule__XFeatureCall__Group_1__0__Impl() throws RecognitionException;
     void rule__XFeatureCall__Group_1__1() throws RecognitionException;
     void rule__XFeatureCall__Group_1__1__Impl() throws RecognitionException;
     void rule__XFeatureCall__Group_1__2() throws RecognitionException;
     void rule__XFeatureCall__Group_1__2__Impl() throws RecognitionException;
     void rule__XFeatureCall__Group_1__3() throws RecognitionException;
     void rule__XFeatureCall__Group_1__3__Impl() throws RecognitionException;
     void rule__XFeatureCall__Group_1_2__0() throws RecognitionException;
     void rule__XFeatureCall__Group_1_2__0__Impl() throws RecognitionException;
     void rule__XFeatureCall__Group_1_2__1() throws RecognitionException;
     void rule__XFeatureCall__Group_1_2__1__Impl() throws RecognitionException;
     void rule__XFeatureCall__Group_3__0() throws RecognitionException;
     void rule__XFeatureCall__Group_3__0__Impl() throws RecognitionException;
     void rule__XFeatureCall__Group_3__1() throws RecognitionException;
     void rule__XFeatureCall__Group_3__1__Impl() throws RecognitionException;
     void rule__XFeatureCall__Group_3__2() throws RecognitionException;
     void rule__XFeatureCall__Group_3__2__Impl() throws RecognitionException;
     void rule__XFeatureCall__Group_3_1_1__0() throws RecognitionException;
     void rule__XFeatureCall__Group_3_1_1__0__Impl() throws RecognitionException;
     void rule__XFeatureCall__Group_3_1_1__1() throws RecognitionException;
     void rule__XFeatureCall__Group_3_1_1__1__Impl() throws RecognitionException;
     void rule__XFeatureCall__Group_3_1_1_1__0() throws RecognitionException;
     void rule__XFeatureCall__Group_3_1_1_1__0__Impl() throws RecognitionException;
     void rule__XFeatureCall__Group_3_1_1_1__1() throws RecognitionException;
     void rule__XFeatureCall__Group_3_1_1_1__1__Impl() throws RecognitionException;
     void rule__XConstructorCall__Group__0() throws RecognitionException;
     void rule__XConstructorCall__Group__0__Impl() throws RecognitionException;
     void rule__XConstructorCall__Group__1() throws RecognitionException;
     void rule__XConstructorCall__Group__1__Impl() throws RecognitionException;
     void rule__XConstructorCall__Group__2() throws RecognitionException;
     void rule__XConstructorCall__Group__2__Impl() throws RecognitionException;
     void rule__XConstructorCall__Group__3() throws RecognitionException;
     void rule__XConstructorCall__Group__3__Impl() throws RecognitionException;
     void rule__XConstructorCall__Group__4() throws RecognitionException;
     void rule__XConstructorCall__Group__4__Impl() throws RecognitionException;
     void rule__XConstructorCall__Group__5() throws RecognitionException;
     void rule__XConstructorCall__Group__5__Impl() throws RecognitionException;
     void rule__XConstructorCall__Group_3__0() throws RecognitionException;
     void rule__XConstructorCall__Group_3__0__Impl() throws RecognitionException;
     void rule__XConstructorCall__Group_3__1() throws RecognitionException;
     void rule__XConstructorCall__Group_3__1__Impl() throws RecognitionException;
     void rule__XConstructorCall__Group_3__2() throws RecognitionException;
     void rule__XConstructorCall__Group_3__2__Impl() throws RecognitionException;
     void rule__XConstructorCall__Group_3__3() throws RecognitionException;
     void rule__XConstructorCall__Group_3__3__Impl() throws RecognitionException;
     void rule__XConstructorCall__Group_3_2__0() throws RecognitionException;
     void rule__XConstructorCall__Group_3_2__0__Impl() throws RecognitionException;
     void rule__XConstructorCall__Group_3_2__1() throws RecognitionException;
     void rule__XConstructorCall__Group_3_2__1__Impl() throws RecognitionException;
     void rule__XConstructorCall__Group_4__0() throws RecognitionException;
     void rule__XConstructorCall__Group_4__0__Impl() throws RecognitionException;
     void rule__XConstructorCall__Group_4__1() throws RecognitionException;
     void rule__XConstructorCall__Group_4__1__Impl() throws RecognitionException;
     void rule__XConstructorCall__Group_4__2() throws RecognitionException;
     void rule__XConstructorCall__Group_4__2__Impl() throws RecognitionException;
     void rule__XConstructorCall__Group_4_1_1__0() throws RecognitionException;
     void rule__XConstructorCall__Group_4_1_1__0__Impl() throws RecognitionException;
     void rule__XConstructorCall__Group_4_1_1__1() throws RecognitionException;
     void rule__XConstructorCall__Group_4_1_1__1__Impl() throws RecognitionException;
     void rule__XConstructorCall__Group_4_1_1_1__0() throws RecognitionException;
     void rule__XConstructorCall__Group_4_1_1_1__0__Impl() throws RecognitionException;
     void rule__XConstructorCall__Group_4_1_1_1__1() throws RecognitionException;
     void rule__XConstructorCall__Group_4_1_1_1__1__Impl() throws RecognitionException;
     void rule__XBooleanLiteral__Group__0() throws RecognitionException;
     void rule__XBooleanLiteral__Group__0__Impl() throws RecognitionException;
     void rule__XBooleanLiteral__Group__1() throws RecognitionException;
     void rule__XBooleanLiteral__Group__1__Impl() throws RecognitionException;
     void rule__XNullLiteral__Group__0() throws RecognitionException;
     void rule__XNullLiteral__Group__0__Impl() throws RecognitionException;
     void rule__XNullLiteral__Group__1() throws RecognitionException;
     void rule__XNullLiteral__Group__1__Impl() throws RecognitionException;
     void rule__XNumberLiteral__Group__0() throws RecognitionException;
     void rule__XNumberLiteral__Group__0__Impl() throws RecognitionException;
     void rule__XNumberLiteral__Group__1() throws RecognitionException;
     void rule__XNumberLiteral__Group__1__Impl() throws RecognitionException;
     void rule__XStringLiteral__Group__0() throws RecognitionException;
     void rule__XStringLiteral__Group__0__Impl() throws RecognitionException;
     void rule__XStringLiteral__Group__1() throws RecognitionException;
     void rule__XStringLiteral__Group__1__Impl() throws RecognitionException;
     void rule__XTypeLiteral__Group__0() throws RecognitionException;
     void rule__XTypeLiteral__Group__0__Impl() throws RecognitionException;
     void rule__XTypeLiteral__Group__1() throws RecognitionException;
     void rule__XTypeLiteral__Group__1__Impl() throws RecognitionException;
     void rule__XTypeLiteral__Group__2() throws RecognitionException;
     void rule__XTypeLiteral__Group__2__Impl() throws RecognitionException;
     void rule__XTypeLiteral__Group__3() throws RecognitionException;
     void rule__XTypeLiteral__Group__3__Impl() throws RecognitionException;
     void rule__XTypeLiteral__Group__4() throws RecognitionException;
     void rule__XTypeLiteral__Group__4__Impl() throws RecognitionException;
     void rule__XTypeLiteral__Group__5() throws RecognitionException;
     void rule__XTypeLiteral__Group__5__Impl() throws RecognitionException;
     void rule__XThrowExpression__Group__0() throws RecognitionException;
     void rule__XThrowExpression__Group__0__Impl() throws RecognitionException;
     void rule__XThrowExpression__Group__1() throws RecognitionException;
     void rule__XThrowExpression__Group__1__Impl() throws RecognitionException;
     void rule__XThrowExpression__Group__2() throws RecognitionException;
     void rule__XThrowExpression__Group__2__Impl() throws RecognitionException;
     void rule__XReturnExpression__Group__0() throws RecognitionException;
     void rule__XReturnExpression__Group__0__Impl() throws RecognitionException;
     void rule__XReturnExpression__Group__1() throws RecognitionException;
     void rule__XReturnExpression__Group__1__Impl() throws RecognitionException;
     void rule__XReturnExpression__Group__2() throws RecognitionException;
     void rule__XReturnExpression__Group__2__Impl() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Group__0() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Group__0__Impl() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Group__1() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Group__1__Impl() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Group__2() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Group__2__Impl() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Group__3() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Group__3__Impl() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Group_3_0__0() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Group_3_0__0__Impl() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Group_3_0__1() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Group_3_0__1__Impl() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Group_3_0_1__0() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Group_3_0_1__1() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Group_3_1__0() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Group_3_1__0__Impl() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Group_3_1__1() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__Group_3_1__1__Impl() throws RecognitionException;
     void rule__XSynchronizedExpression__Group__0() throws RecognitionException;
     void rule__XSynchronizedExpression__Group__0__Impl() throws RecognitionException;
     void rule__XSynchronizedExpression__Group__1() throws RecognitionException;
     void rule__XSynchronizedExpression__Group__1__Impl() throws RecognitionException;
     void rule__XSynchronizedExpression__Group__2() throws RecognitionException;
     void rule__XSynchronizedExpression__Group__2__Impl() throws RecognitionException;
     void rule__XSynchronizedExpression__Group__3() throws RecognitionException;
     void rule__XSynchronizedExpression__Group__3__Impl() throws RecognitionException;
     void rule__XSynchronizedExpression__Group_0__0() throws RecognitionException;
     void rule__XSynchronizedExpression__Group_0__0__Impl() throws RecognitionException;
     void rule__XSynchronizedExpression__Group_0_0__0() throws RecognitionException;
     void rule__XSynchronizedExpression__Group_0_0__0__Impl() throws RecognitionException;
     void rule__XSynchronizedExpression__Group_0_0__1() throws RecognitionException;
     void rule__XSynchronizedExpression__Group_0_0__1__Impl() throws RecognitionException;
     void rule__XSynchronizedExpression__Group_0_0__2() throws RecognitionException;
     void rule__XSynchronizedExpression__Group_0_0__2__Impl() throws RecognitionException;
     void rule__XCatchClause__Group__0() throws RecognitionException;
     void rule__XCatchClause__Group__0__Impl() throws RecognitionException;
     void rule__XCatchClause__Group__1() throws RecognitionException;
     void rule__XCatchClause__Group__1__Impl() throws RecognitionException;
     void rule__XCatchClause__Group__2() throws RecognitionException;
     void rule__XCatchClause__Group__2__Impl() throws RecognitionException;
     void rule__XCatchClause__Group__3() throws RecognitionException;
     void rule__XCatchClause__Group__3__Impl() throws RecognitionException;
     void rule__XCatchClause__Group__4() throws RecognitionException;
     void rule__XCatchClause__Group__4__Impl() throws RecognitionException;
     void rule__QualifiedName__Group__0() throws RecognitionException;
     void rule__QualifiedName__Group__0__Impl() throws RecognitionException;
     void rule__QualifiedName__Group__1() throws RecognitionException;
     void rule__QualifiedName__Group__1__Impl() throws RecognitionException;
     void rule__QualifiedName__Group_1__0() throws RecognitionException;
     void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException;
     void rule__QualifiedName__Group_1__1() throws RecognitionException;
     void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException;
     void rule__Number__Group_1__0() throws RecognitionException;
     void rule__Number__Group_1__0__Impl() throws RecognitionException;
     void rule__Number__Group_1__1() throws RecognitionException;
     void rule__Number__Group_1__1__Impl() throws RecognitionException;
     void rule__Number__Group_1_1__0() throws RecognitionException;
     void rule__Number__Group_1_1__0__Impl() throws RecognitionException;
     void rule__Number__Group_1_1__1() throws RecognitionException;
     void rule__Number__Group_1_1__1__Impl() throws RecognitionException;
     void rule__JvmTypeReference__Group_0__0() throws RecognitionException;
     void rule__JvmTypeReference__Group_0__0__Impl() throws RecognitionException;
     void rule__JvmTypeReference__Group_0__1() throws RecognitionException;
     void rule__JvmTypeReference__Group_0__1__Impl() throws RecognitionException;
     void rule__JvmTypeReference__Group_0_1__0() throws RecognitionException;
     void rule__JvmTypeReference__Group_0_1__0__Impl() throws RecognitionException;
     void rule__JvmTypeReference__Group_0_1_0__0() throws RecognitionException;
     void rule__JvmTypeReference__Group_0_1_0__0__Impl() throws RecognitionException;
     void rule__JvmTypeReference__Group_0_1_0__1() throws RecognitionException;
     void rule__JvmTypeReference__Group_0_1_0__1__Impl() throws RecognitionException;
     void rule__ArrayBrackets__Group__0() throws RecognitionException;
     void rule__ArrayBrackets__Group__0__Impl() throws RecognitionException;
     void rule__ArrayBrackets__Group__1() throws RecognitionException;
     void rule__ArrayBrackets__Group__1__Impl() throws RecognitionException;
     void rule__XFunctionTypeRef__Group__0() throws RecognitionException;
     void rule__XFunctionTypeRef__Group__0__Impl() throws RecognitionException;
     void rule__XFunctionTypeRef__Group__1() throws RecognitionException;
     void rule__XFunctionTypeRef__Group__1__Impl() throws RecognitionException;
     void rule__XFunctionTypeRef__Group__2() throws RecognitionException;
     void rule__XFunctionTypeRef__Group__2__Impl() throws RecognitionException;
     void rule__XFunctionTypeRef__Group_0__0() throws RecognitionException;
     void rule__XFunctionTypeRef__Group_0__0__Impl() throws RecognitionException;
     void rule__XFunctionTypeRef__Group_0__1() throws RecognitionException;
     void rule__XFunctionTypeRef__Group_0__1__Impl() throws RecognitionException;
     void rule__XFunctionTypeRef__Group_0__2() throws RecognitionException;
     void rule__XFunctionTypeRef__Group_0__2__Impl() throws RecognitionException;
     void rule__XFunctionTypeRef__Group_0_1__0() throws RecognitionException;
     void rule__XFunctionTypeRef__Group_0_1__0__Impl() throws RecognitionException;
     void rule__XFunctionTypeRef__Group_0_1__1() throws RecognitionException;
     void rule__XFunctionTypeRef__Group_0_1__1__Impl() throws RecognitionException;
     void rule__XFunctionTypeRef__Group_0_1_1__0() throws RecognitionException;
     void rule__XFunctionTypeRef__Group_0_1_1__0__Impl() throws RecognitionException;
     void rule__XFunctionTypeRef__Group_0_1_1__1() throws RecognitionException;
     void rule__XFunctionTypeRef__Group_0_1_1__1__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group__0() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group__0__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group__1() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group__1__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1__0() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1__0__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1__1() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1__1__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1__2() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1__2__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1__3() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1__3__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1__4() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1__4__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_2__0() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_2__0__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_2__1() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_2__1__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4__0() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4__0__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4__1() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4__1__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4__2() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4__2__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4_0__0() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4_0_0__0() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4_0_0__1() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4_2__0() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4_2__1() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4_2__2() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4_2__3() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4_2_2__0() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4_2_2__1() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl() throws RecognitionException;
     void rule__JvmWildcardTypeReference__Group__0() throws RecognitionException;
     void rule__JvmWildcardTypeReference__Group__0__Impl() throws RecognitionException;
     void rule__JvmWildcardTypeReference__Group__1() throws RecognitionException;
     void rule__JvmWildcardTypeReference__Group__1__Impl() throws RecognitionException;
     void rule__JvmWildcardTypeReference__Group__2() throws RecognitionException;
     void rule__JvmWildcardTypeReference__Group__2__Impl() throws RecognitionException;
     void rule__JvmWildcardTypeReference__Group_2_0__0() throws RecognitionException;
     void rule__JvmWildcardTypeReference__Group_2_0__0__Impl() throws RecognitionException;
     void rule__JvmWildcardTypeReference__Group_2_0__1() throws RecognitionException;
     void rule__JvmWildcardTypeReference__Group_2_0__1__Impl() throws RecognitionException;
     void rule__JvmWildcardTypeReference__Group_2_1__0() throws RecognitionException;
     void rule__JvmWildcardTypeReference__Group_2_1__0__Impl() throws RecognitionException;
     void rule__JvmWildcardTypeReference__Group_2_1__1() throws RecognitionException;
     void rule__JvmWildcardTypeReference__Group_2_1__1__Impl() throws RecognitionException;
     void rule__JvmUpperBound__Group__0() throws RecognitionException;
     void rule__JvmUpperBound__Group__0__Impl() throws RecognitionException;
     void rule__JvmUpperBound__Group__1() throws RecognitionException;
     void rule__JvmUpperBound__Group__1__Impl() throws RecognitionException;
     void rule__JvmUpperBoundAnded__Group__0() throws RecognitionException;
     void rule__JvmUpperBoundAnded__Group__0__Impl() throws RecognitionException;
     void rule__JvmUpperBoundAnded__Group__1() throws RecognitionException;
     void rule__JvmUpperBoundAnded__Group__1__Impl() throws RecognitionException;
     void rule__JvmLowerBound__Group__0() throws RecognitionException;
     void rule__JvmLowerBound__Group__0__Impl() throws RecognitionException;
     void rule__JvmLowerBound__Group__1() throws RecognitionException;
     void rule__JvmLowerBound__Group__1__Impl() throws RecognitionException;
     void rule__JvmLowerBoundAnded__Group__0() throws RecognitionException;
     void rule__JvmLowerBoundAnded__Group__0__Impl() throws RecognitionException;
     void rule__JvmLowerBoundAnded__Group__1() throws RecognitionException;
     void rule__JvmLowerBoundAnded__Group__1__Impl() throws RecognitionException;
     void rule__QualifiedNameWithWildcard__Group__0() throws RecognitionException;
     void rule__QualifiedNameWithWildcard__Group__0__Impl() throws RecognitionException;
     void rule__QualifiedNameWithWildcard__Group__1() throws RecognitionException;
     void rule__QualifiedNameWithWildcard__Group__1__Impl() throws RecognitionException;
     void rule__QualifiedNameWithWildcard__Group__2() throws RecognitionException;
     void rule__QualifiedNameWithWildcard__Group__2__Impl() throws RecognitionException;
     void rule__XImportDeclaration__Group__0() throws RecognitionException;
     void rule__XImportDeclaration__Group__0__Impl() throws RecognitionException;
     void rule__XImportDeclaration__Group__1() throws RecognitionException;
     void rule__XImportDeclaration__Group__1__Impl() throws RecognitionException;
     void rule__XImportDeclaration__Group__2() throws RecognitionException;
     void rule__XImportDeclaration__Group__2__Impl() throws RecognitionException;
     void rule__XImportDeclaration__Group_1_0__0() throws RecognitionException;
     void rule__XImportDeclaration__Group_1_0__0__Impl() throws RecognitionException;
     void rule__XImportDeclaration__Group_1_0__1() throws RecognitionException;
     void rule__XImportDeclaration__Group_1_0__1__Impl() throws RecognitionException;
     void rule__XImportDeclaration__Group_1_0__2() throws RecognitionException;
     void rule__XImportDeclaration__Group_1_0__2__Impl() throws RecognitionException;
     void rule__XImportDeclaration__Group_1_0__3() throws RecognitionException;
     void rule__XImportDeclaration__Group_1_0__3__Impl() throws RecognitionException;
     void rule__QualifiedNameInStaticImport__Group__0() throws RecognitionException;
     void rule__QualifiedNameInStaticImport__Group__0__Impl() throws RecognitionException;
     void rule__QualifiedNameInStaticImport__Group__1() throws RecognitionException;
     void rule__QualifiedNameInStaticImport__Group__1__Impl() throws RecognitionException;
     void rule__DtCAssertFalse__UnorderedGroup_2() throws RecognitionException;
     void rule__DtCAssertFalse__UnorderedGroup_2__Impl() throws RecognitionException;
     void rule__DtCAssertFalse__UnorderedGroup_2__0() throws RecognitionException;
     void rule__DtCAssertFalse__UnorderedGroup_2__1() throws RecognitionException;
     void rule__DtCAssertFalse__UnorderedGroup_2__2() throws RecognitionException;
     void rule__DtCAssertTrue__UnorderedGroup_2() throws RecognitionException;
     void rule__DtCAssertTrue__UnorderedGroup_2__Impl() throws RecognitionException;
     void rule__DtCAssertTrue__UnorderedGroup_2__0() throws RecognitionException;
     void rule__DtCAssertTrue__UnorderedGroup_2__1() throws RecognitionException;
     void rule__DtCAssertTrue__UnorderedGroup_2__2() throws RecognitionException;
     void rule__DtCDecimalMax__UnorderedGroup_4() throws RecognitionException;
     void rule__DtCDecimalMax__UnorderedGroup_4__Impl() throws RecognitionException;
     void rule__DtCDecimalMax__UnorderedGroup_4__0() throws RecognitionException;
     void rule__DtCDecimalMax__UnorderedGroup_4__1() throws RecognitionException;
     void rule__DtCDecimalMax__UnorderedGroup_4__2() throws RecognitionException;
     void rule__DtCDecimalMin__UnorderedGroup_4() throws RecognitionException;
     void rule__DtCDecimalMin__UnorderedGroup_4__Impl() throws RecognitionException;
     void rule__DtCDecimalMin__UnorderedGroup_4__0() throws RecognitionException;
     void rule__DtCDecimalMin__UnorderedGroup_4__1() throws RecognitionException;
     void rule__DtCDecimalMin__UnorderedGroup_4__2() throws RecognitionException;
     void rule__DtCDigits__UnorderedGroup_6() throws RecognitionException;
     void rule__DtCDigits__UnorderedGroup_6__Impl() throws RecognitionException;
     void rule__DtCDigits__UnorderedGroup_6__0() throws RecognitionException;
     void rule__DtCDigits__UnorderedGroup_6__1() throws RecognitionException;
     void rule__DtCDigits__UnorderedGroup_6__2() throws RecognitionException;
     void rule__DtCFuture__UnorderedGroup_2() throws RecognitionException;
     void rule__DtCFuture__UnorderedGroup_2__Impl() throws RecognitionException;
     void rule__DtCFuture__UnorderedGroup_2__0() throws RecognitionException;
     void rule__DtCFuture__UnorderedGroup_2__1() throws RecognitionException;
     void rule__DtCFuture__UnorderedGroup_2__2() throws RecognitionException;
     void rule__DtCPast__UnorderedGroup_2() throws RecognitionException;
     void rule__DtCPast__UnorderedGroup_2__Impl() throws RecognitionException;
     void rule__DtCPast__UnorderedGroup_2__0() throws RecognitionException;
     void rule__DtCPast__UnorderedGroup_2__1() throws RecognitionException;
     void rule__DtCPast__UnorderedGroup_2__2() throws RecognitionException;
     void rule__DtCNumericMax__UnorderedGroup_4() throws RecognitionException;
     void rule__DtCNumericMax__UnorderedGroup_4__Impl() throws RecognitionException;
     void rule__DtCNumericMax__UnorderedGroup_4__0() throws RecognitionException;
     void rule__DtCNumericMax__UnorderedGroup_4__1() throws RecognitionException;
     void rule__DtCNumericMax__UnorderedGroup_4__2() throws RecognitionException;
     void rule__DtCNumericMin__UnorderedGroup_4() throws RecognitionException;
     void rule__DtCNumericMin__UnorderedGroup_4__Impl() throws RecognitionException;
     void rule__DtCNumericMin__UnorderedGroup_4__0() throws RecognitionException;
     void rule__DtCNumericMin__UnorderedGroup_4__1() throws RecognitionException;
     void rule__DtCNumericMin__UnorderedGroup_4__2() throws RecognitionException;
     void rule__DtCNotNull__UnorderedGroup_2() throws RecognitionException;
     void rule__DtCNotNull__UnorderedGroup_2__Impl() throws RecognitionException;
     void rule__DtCNotNull__UnorderedGroup_2__0() throws RecognitionException;
     void rule__DtCNotNull__UnorderedGroup_2__1() throws RecognitionException;
     void rule__DtCNotNull__UnorderedGroup_2__2() throws RecognitionException;
     void rule__DtCNull__UnorderedGroup_2() throws RecognitionException;
     void rule__DtCNull__UnorderedGroup_2__Impl() throws RecognitionException;
     void rule__DtCNull__UnorderedGroup_2__0() throws RecognitionException;
     void rule__DtCNull__UnorderedGroup_2__1() throws RecognitionException;
     void rule__DtCNull__UnorderedGroup_2__2() throws RecognitionException;
     void rule__DtCRegEx__UnorderedGroup_4() throws RecognitionException;
     void rule__DtCRegEx__UnorderedGroup_4__Impl() throws RecognitionException;
     void rule__DtCRegEx__UnorderedGroup_4__0() throws RecognitionException;
     void rule__DtCRegEx__UnorderedGroup_4__1() throws RecognitionException;
     void rule__DtCRegEx__UnorderedGroup_4__2() throws RecognitionException;
     void rule__DtCSize__UnorderedGroup_6() throws RecognitionException;
     void rule__DtCSize__UnorderedGroup_6__Impl() throws RecognitionException;
     void rule__DtCSize__UnorderedGroup_6__0() throws RecognitionException;
     void rule__DtCSize__UnorderedGroup_6__1() throws RecognitionException;
     void rule__DtCSize__UnorderedGroup_6__2() throws RecognitionException;
     void rule__EnumLiteral__UnorderedGroup_1() throws RecognitionException;
     void rule__EnumLiteral__UnorderedGroup_1__Impl() throws RecognitionException;
     void rule__EnumLiteral__UnorderedGroup_1__0() throws RecognitionException;
     void rule__EnumLiteral__UnorderedGroup_1__1() throws RecognitionException;
     void rule__TypedPackage__NameAssignment_2() throws RecognitionException;
     void rule__TypedPackage__ImportsAssignment_3_1() throws RecognitionException;
     void rule__TypedPackage__TypesAssignment_3_2() throws RecognitionException;
     void rule__Class__AnnotationsAssignment_1() throws RecognitionException;
     void rule__Import__ImportedNamespaceAssignment_1() throws RecognitionException;
     void rule__DataType__NameAssignment_1() throws RecognitionException;
     void rule__DataType__JvmTypeReferenceAssignment_2_0_1() throws RecognitionException;
     void rule__DataType__AsPrimitiveAssignment_2_0_2() throws RecognitionException;
     void rule__DataType__ConstraintsAssignment_2_0_3() throws RecognitionException;
     void rule__DataType__PropertiesAssignment_2_0_4_2() throws RecognitionException;
     void rule__DataType__PropertiesAssignment_2_0_4_3_1() throws RecognitionException;
     void rule__DataType__DateAssignment_2_1_0() throws RecognitionException;
     void rule__DataType__DateTypeAssignment_2_1_1() throws RecognitionException;
     void rule__DataType__ConstraintsAssignment_2_1_2() throws RecognitionException;
     void rule__DataType__PropertiesAssignment_2_1_3_2() throws RecognitionException;
     void rule__DataType__PropertiesAssignment_2_1_3_3_1() throws RecognitionException;
     void rule__DataType__AsBlobAssignment_2_2_0() throws RecognitionException;
     void rule__DataType__ConstraintsAssignment_2_2_1() throws RecognitionException;
     void rule__DataType__PropertiesAssignment_2_2_2_2() throws RecognitionException;
     void rule__DataType__PropertiesAssignment_2_2_2_3_1() throws RecognitionException;
     void rule__DtCAssertFalse__MsgCodeAssignment_2_0_1_2() throws RecognitionException;
     void rule__DtCAssertFalse__MsgI18nKeyAssignment_2_1_2() throws RecognitionException;
     void rule__DtCAssertFalse__SeverityAssignment_2_2_0_2() throws RecognitionException;
     void rule__DtCAssertTrue__MsgCodeAssignment_2_0_1_2() throws RecognitionException;
     void rule__DtCAssertTrue__MsgI18nKeyAssignment_2_1_2() throws RecognitionException;
     void rule__DtCAssertTrue__SeverityAssignment_2_2_0_2() throws RecognitionException;
     void rule__DtCDecimalMax__MaxAssignment_3() throws RecognitionException;
     void rule__DtCDecimalMax__MsgCodeAssignment_4_0_1_2() throws RecognitionException;
     void rule__DtCDecimalMax__MsgI18nKeyAssignment_4_1_2() throws RecognitionException;
     void rule__DtCDecimalMax__SeverityAssignment_4_2_0_2() throws RecognitionException;
     void rule__DtCDecimalMin__MinAssignment_3() throws RecognitionException;
     void rule__DtCDecimalMin__MsgCodeAssignment_4_0_1_2() throws RecognitionException;
     void rule__DtCDecimalMin__MsgI18nKeyAssignment_4_1_2() throws RecognitionException;
     void rule__DtCDecimalMin__SeverityAssignment_4_2_0_2() throws RecognitionException;
     void rule__DtCDigits__IntDigitsAssignment_3() throws RecognitionException;
     void rule__DtCDigits__FractionDigitsAssignment_5() throws RecognitionException;
     void rule__DtCDigits__MsgCodeAssignment_6_0_1_2() throws RecognitionException;
     void rule__DtCDigits__MsgI18nKeyAssignment_6_1_2() throws RecognitionException;
     void rule__DtCDigits__SeverityAssignment_6_2_0_2() throws RecognitionException;
     void rule__DtCFuture__MsgCodeAssignment_2_0_1_2() throws RecognitionException;
     void rule__DtCFuture__MsgI18nKeyAssignment_2_1_2() throws RecognitionException;
     void rule__DtCFuture__SeverityAssignment_2_2_0_2() throws RecognitionException;
     void rule__DtCPast__MsgCodeAssignment_2_0_1_2() throws RecognitionException;
     void rule__DtCPast__MsgI18nKeyAssignment_2_1_2() throws RecognitionException;
     void rule__DtCPast__SeverityAssignment_2_2_0_2() throws RecognitionException;
     void rule__DtCNumericMax__MaxAssignment_3() throws RecognitionException;
     void rule__DtCNumericMax__MsgCodeAssignment_4_0_1_2() throws RecognitionException;
     void rule__DtCNumericMax__MsgI18nKeyAssignment_4_1_2() throws RecognitionException;
     void rule__DtCNumericMax__SeverityAssignment_4_2_0_2() throws RecognitionException;
     void rule__DtCNumericMin__MinAssignment_3() throws RecognitionException;
     void rule__DtCNumericMin__MsgCodeAssignment_4_0_1_2() throws RecognitionException;
     void rule__DtCNumericMin__MsgI18nKeyAssignment_4_1_2() throws RecognitionException;
     void rule__DtCNumericMin__SeverityAssignment_4_2_0_2() throws RecognitionException;
     void rule__DtCNotNull__MsgCodeAssignment_2_0_1_2() throws RecognitionException;
     void rule__DtCNotNull__MsgI18nKeyAssignment_2_1_2() throws RecognitionException;
     void rule__DtCNotNull__SeverityAssignment_2_2_0_2() throws RecognitionException;
     void rule__DtCNull__MsgCodeAssignment_2_0_1_2() throws RecognitionException;
     void rule__DtCNull__MsgI18nKeyAssignment_2_1_2() throws RecognitionException;
     void rule__DtCNull__SeverityAssignment_2_2_0_2() throws RecognitionException;
     void rule__DtCRegEx__PatternAssignment_3() throws RecognitionException;
     void rule__DtCRegEx__MsgCodeAssignment_4_0_1_2() throws RecognitionException;
     void rule__DtCRegEx__MsgI18nKeyAssignment_4_1_2() throws RecognitionException;
     void rule__DtCRegEx__SeverityAssignment_4_2_0_2() throws RecognitionException;
     void rule__DtCSize__MinAssignment_3() throws RecognitionException;
     void rule__DtCSize__MaxAssignment_5() throws RecognitionException;
     void rule__DtCSize__MsgCodeAssignment_6_0_1_2() throws RecognitionException;
     void rule__DtCSize__MsgI18nKeyAssignment_6_1_2() throws RecognitionException;
     void rule__DtCSize__SeverityAssignment_6_2_0_2() throws RecognitionException;
     void rule__Enum__NameAssignment_1() throws RecognitionException;
     void rule__Enum__LiteralsAssignment_3() throws RecognitionException;
     void rule__Enum__LiteralsAssignment_4_1() throws RecognitionException;
     void rule__EnumLiteral__NameAssignment_0() throws RecognitionException;
     void rule__EnumLiteral__DefaultAssignment_1_0_1() throws RecognitionException;
     void rule__EnumLiteral__NullAssignment_1_1_0() throws RecognitionException;
     void rule__EnumLiteral__ValueAssignment_1_1_2_1() throws RecognitionException;
     void rule__AnnotationDef__AnnotationAssignment_0() throws RecognitionException;
     void rule__AttributeMatchingConstraint__AttributeAssignment_0() throws RecognitionException;
     void rule__AttributeMatchingConstraint__ComparatorTypeAssignment_1() throws RecognitionException;
     void rule__AttributeMatchingConstraint__MatchingValueAssignment_2_0() throws RecognitionException;
     void rule__AttributeMatchingConstraint__MatchingLiteralAssignment_2_1() throws RecognitionException;
     void rule__KeyAndValue__KeyAssignment_2() throws RecognitionException;
     void rule__KeyAndValue__ValueAssignment_5() throws RecognitionException;
     void rule__XAnnotation__AnnotationTypeAssignment_2() throws RecognitionException;
     void rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0() throws RecognitionException;
     void rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1() throws RecognitionException;
     void rule__XAnnotation__ValueAssignment_3_1_1() throws RecognitionException;
     void rule__XAnnotationElementValuePair__ElementAssignment_0_0_0() throws RecognitionException;
     void rule__XAnnotationElementValuePair__ValueAssignment_1() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1() throws RecognitionException;
     void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1() throws RecognitionException;
     void rule__XAnnotationElementValue__ElementsAssignment_0_1_0() throws RecognitionException;
     void rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1() throws RecognitionException;
     void rule__XAssignment__FeatureAssignment_0_1() throws RecognitionException;
     void rule__XAssignment__ValueAssignment_0_3() throws RecognitionException;
     void rule__XAssignment__FeatureAssignment_1_1_0_0_1() throws RecognitionException;
     void rule__XAssignment__RightOperandAssignment_1_1_1() throws RecognitionException;
     void rule__XOrExpression__FeatureAssignment_1_0_0_1() throws RecognitionException;
     void rule__XOrExpression__RightOperandAssignment_1_1() throws RecognitionException;
     void rule__XAndExpression__FeatureAssignment_1_0_0_1() throws RecognitionException;
     void rule__XAndExpression__RightOperandAssignment_1_1() throws RecognitionException;
     void rule__XEqualityExpression__FeatureAssignment_1_0_0_1() throws RecognitionException;
     void rule__XEqualityExpression__RightOperandAssignment_1_1() throws RecognitionException;
     void rule__XRelationalExpression__TypeAssignment_1_0_1() throws RecognitionException;
     void rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1() throws RecognitionException;
     void rule__XRelationalExpression__RightOperandAssignment_1_1_1() throws RecognitionException;
     void rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1() throws RecognitionException;
     void rule__XOtherOperatorExpression__RightOperandAssignment_1_1() throws RecognitionException;
     void rule__XAdditiveExpression__FeatureAssignment_1_0_0_1() throws RecognitionException;
     void rule__XAdditiveExpression__RightOperandAssignment_1_1() throws RecognitionException;
     void rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1() throws RecognitionException;
     void rule__XMultiplicativeExpression__RightOperandAssignment_1_1() throws RecognitionException;
     void rule__XUnaryOperation__FeatureAssignment_0_1() throws RecognitionException;
     void rule__XUnaryOperation__OperandAssignment_0_2() throws RecognitionException;
     void rule__XCastedExpression__TypeAssignment_1_1() throws RecognitionException;
     void rule__XPostfixOperation__FeatureAssignment_1_0_1() throws RecognitionException;
     void rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1() throws RecognitionException;
     void rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2() throws RecognitionException;
     void rule__XMemberFeatureCall__ValueAssignment_1_0_1() throws RecognitionException;
     void rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1() throws RecognitionException;
     void rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2() throws RecognitionException;
     void rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1() throws RecognitionException;
     void rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1() throws RecognitionException;
     void rule__XMemberFeatureCall__FeatureAssignment_1_1_2() throws RecognitionException;
     void rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0() throws RecognitionException;
     void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0() throws RecognitionException;
     void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0() throws RecognitionException;
     void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1() throws RecognitionException;
     void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4() throws RecognitionException;
     void rule__XSetLiteral__ElementsAssignment_3_0() throws RecognitionException;
     void rule__XSetLiteral__ElementsAssignment_3_1_1() throws RecognitionException;
     void rule__XListLiteral__ElementsAssignment_3_0() throws RecognitionException;
     void rule__XListLiteral__ElementsAssignment_3_1_1() throws RecognitionException;
     void rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0() throws RecognitionException;
     void rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1() throws RecognitionException;
     void rule__XClosure__ExplicitSyntaxAssignment_1_0_1() throws RecognitionException;
     void rule__XClosure__ExpressionAssignment_2() throws RecognitionException;
     void rule__XExpressionInClosure__ExpressionsAssignment_1_0() throws RecognitionException;
     void rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0() throws RecognitionException;
     void rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1() throws RecognitionException;
     void rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2() throws RecognitionException;
     void rule__XShortClosure__ExpressionAssignment_1() throws RecognitionException;
     void rule__XIfExpression__IfAssignment_3() throws RecognitionException;
     void rule__XIfExpression__ThenAssignment_5() throws RecognitionException;
     void rule__XIfExpression__ElseAssignment_6_1() throws RecognitionException;
     void rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1() throws RecognitionException;
     void rule__XSwitchExpression__SwitchAssignment_2_0_1() throws RecognitionException;
     void rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0() throws RecognitionException;
     void rule__XSwitchExpression__SwitchAssignment_2_1_1() throws RecognitionException;
     void rule__XSwitchExpression__CasesAssignment_4() throws RecognitionException;
     void rule__XSwitchExpression__DefaultAssignment_5_2() throws RecognitionException;
     void rule__XCasePart__TypeGuardAssignment_1() throws RecognitionException;
     void rule__XCasePart__CaseAssignment_2_1() throws RecognitionException;
     void rule__XCasePart__ThenAssignment_3_0_1() throws RecognitionException;
     void rule__XCasePart__FallThroughAssignment_3_1() throws RecognitionException;
     void rule__XForLoopExpression__DeclaredParamAssignment_0_0_3() throws RecognitionException;
     void rule__XForLoopExpression__ForExpressionAssignment_1() throws RecognitionException;
     void rule__XForLoopExpression__EachExpressionAssignment_3() throws RecognitionException;
     void rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0() throws RecognitionException;
     void rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1() throws RecognitionException;
     void rule__XBasicForLoopExpression__ExpressionAssignment_5() throws RecognitionException;
     void rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0() throws RecognitionException;
     void rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1() throws RecognitionException;
     void rule__XBasicForLoopExpression__EachExpressionAssignment_9() throws RecognitionException;
     void rule__XWhileExpression__PredicateAssignment_3() throws RecognitionException;
     void rule__XWhileExpression__BodyAssignment_5() throws RecognitionException;
     void rule__XDoWhileExpression__BodyAssignment_2() throws RecognitionException;
     void rule__XDoWhileExpression__PredicateAssignment_5() throws RecognitionException;
     void rule__XBlockExpression__ExpressionsAssignment_2_0() throws RecognitionException;
     void rule__XVariableDeclaration__WriteableAssignment_1_0() throws RecognitionException;
     void rule__XVariableDeclaration__TypeAssignment_2_0_0_0() throws RecognitionException;
     void rule__XVariableDeclaration__NameAssignment_2_0_0_1() throws RecognitionException;
     void rule__XVariableDeclaration__NameAssignment_2_1() throws RecognitionException;
     void rule__XVariableDeclaration__RightAssignment_3_1() throws RecognitionException;
     void rule__JvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException;
     void rule__JvmFormalParameter__NameAssignment_1() throws RecognitionException;
     void rule__FullJvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException;
     void rule__FullJvmFormalParameter__NameAssignment_1() throws RecognitionException;
     void rule__XFeatureCall__TypeArgumentsAssignment_1_1() throws RecognitionException;
     void rule__XFeatureCall__TypeArgumentsAssignment_1_2_1() throws RecognitionException;
     void rule__XFeatureCall__FeatureAssignment_2() throws RecognitionException;
     void rule__XFeatureCall__ExplicitOperationCallAssignment_3_0() throws RecognitionException;
     void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0() throws RecognitionException;
     void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0() throws RecognitionException;
     void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1() throws RecognitionException;
     void rule__XFeatureCall__FeatureCallArgumentsAssignment_4() throws RecognitionException;
     void rule__XConstructorCall__ConstructorAssignment_2() throws RecognitionException;
     void rule__XConstructorCall__TypeArgumentsAssignment_3_1() throws RecognitionException;
     void rule__XConstructorCall__TypeArgumentsAssignment_3_2_1() throws RecognitionException;
     void rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0() throws RecognitionException;
     void rule__XConstructorCall__ArgumentsAssignment_4_1_0() throws RecognitionException;
     void rule__XConstructorCall__ArgumentsAssignment_4_1_1_0() throws RecognitionException;
     void rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1() throws RecognitionException;
     void rule__XConstructorCall__ArgumentsAssignment_5() throws RecognitionException;
     void rule__XBooleanLiteral__IsTrueAssignment_1_1() throws RecognitionException;
     void rule__XNumberLiteral__ValueAssignment_1() throws RecognitionException;
     void rule__XStringLiteral__ValueAssignment_1() throws RecognitionException;
     void rule__XTypeLiteral__TypeAssignment_3() throws RecognitionException;
     void rule__XTypeLiteral__ArrayDimensionsAssignment_4() throws RecognitionException;
     void rule__XThrowExpression__ExpressionAssignment_2() throws RecognitionException;
     void rule__XReturnExpression__ExpressionAssignment_2() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__ExpressionAssignment_2() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1() throws RecognitionException;
     void rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1() throws RecognitionException;
     void rule__XSynchronizedExpression__ParamAssignment_1() throws RecognitionException;
     void rule__XSynchronizedExpression__ExpressionAssignment_3() throws RecognitionException;
     void rule__XCatchClause__DeclaredParamAssignment_2() throws RecognitionException;
     void rule__XCatchClause__ExpressionAssignment_4() throws RecognitionException;
     void rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0() throws RecognitionException;
     void rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1() throws RecognitionException;
     void rule__XFunctionTypeRef__ReturnTypeAssignment_2() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__TypeAssignment_0() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1() throws RecognitionException;
     void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1() throws RecognitionException;
     void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0() throws RecognitionException;
     void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1() throws RecognitionException;
     void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0() throws RecognitionException;
     void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1() throws RecognitionException;
     void rule__JvmUpperBound__TypeReferenceAssignment_1() throws RecognitionException;
     void rule__JvmUpperBoundAnded__TypeReferenceAssignment_1() throws RecognitionException;
     void rule__JvmLowerBound__TypeReferenceAssignment_1() throws RecognitionException;
     void rule__JvmLowerBoundAnded__TypeReferenceAssignment_1() throws RecognitionException;
     void rule__XImportDeclaration__StaticAssignment_1_0_0() throws RecognitionException;
     void rule__XImportDeclaration__ExtensionAssignment_1_0_1() throws RecognitionException;
     void rule__XImportDeclaration__ImportedTypeAssignment_1_0_2() throws RecognitionException;
     void rule__XImportDeclaration__WildcardAssignment_1_0_3_0() throws RecognitionException;
     void rule__XImportDeclaration__MemberNameAssignment_1_0_3_1() throws RecognitionException;
     void rule__XImportDeclaration__ImportedTypeAssignment_1_1() throws RecognitionException;
     void rule__XImportDeclaration__ImportedNamespaceAssignment_1_2() throws RecognitionException;
     void synpred38_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred39_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred40_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred65_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred66_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred79_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred87_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred88_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred101_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred105_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred106_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred112_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred157_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred160_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred163_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred166_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred169_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred172_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred175_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred178_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred181_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred184_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred187_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred190_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred193_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred197_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred214_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred216_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred217_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred218_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred219_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred220_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred221_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred222_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred223_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred224_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred225_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred227_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred228_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred236_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred243_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred246_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred259_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred260_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred264_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred265_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred266_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred271_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred272_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred273_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred274_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred276_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred280_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred282_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred283_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred290_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred291_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred292_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred293_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred294_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred295_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred296_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred297_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred298_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred299_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred300_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred301_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred302_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred303_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred304_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred305_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred306_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred307_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred308_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred309_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred310_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred311_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred312_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred313_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred314_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred315_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred316_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred317_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred318_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred319_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred320_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred321_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred322_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred323_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred324_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred325_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred326_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred327_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred328_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred329_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred330_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred331_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred332_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred333_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred334_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred335_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred336_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred337_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred338_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred339_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred340_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred341_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred342_InternalCommonGrammar_fragment() throws RecognitionException;   
     void synpred343_InternalCommonGrammar_fragment() throws RecognitionException;   
}

@SuppressWarnings("all")
abstract class InternalCommonGrammarParser1 extends AbstractInternalContentAssistParser implements InternalCommonGrammarParserSignatures {

        InternalCommonGrammarParser1(TokenStream input) {
            this(input, new RecognizerSharedState());
        }

        InternalCommonGrammarParser1(TokenStream input, RecognizerSharedState state) {
            super(input, state);
        }

    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'='", "'||'", "'&&'", "'cachable'", "'id'", "'uuid'", "'transient'", "'version'", "'refers'", "'settings'", "'lazy'", "'notnull'", "'dto'", "'date'", "'mapto'", "'ref'", "'cascade'", "'var'", "'+'", "'-'", "'+='", "'-='", "'*='", "'/='", "'%='", "'=='", "'!='", "'==='", "'!=='", "'>='", "'>'", "'<'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'*'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'.'", "'val'", "'extends'", "'static'", "'import'", "'extension'", "'super'", "'false'", "'info'", "'warn'", "'error'", "'time'", "'timestamp'", "'package'", "'private'", "'protected'", "'public'", "'<='", "'0'", "'?'", "'1'", "'{'", "'}'", "'class'", "';'", "'datatype'", "'jvmType'", "'properties'", "'('", "')'", "', '", "'isFalse'", "'['", "'msgCode'", "'msgI18nKey'", "']'", "'severity'", "'isTrue'", "'maxDecimal'", "'minDecimal'", "'digits'", "'isFuture'", "'isPast'", "'maxNumber'", "'minNumber'", "'isNotNull'", "'isNull'", "'regex'", "'minMaxSize'", "'enum'", "'key'", "'value'", "'derived'", "'collection'", "'@'", "','", "'#'", "'instanceof'", "'as'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'&'", "'as primitive'", "'dateType'", "'as blob'", "'asDefault'", "'forNull'", "'::'", "'?.'", "'|'", "'true'"
    };
    public static final int T__144=144;
    public static final int T__143=143;
    public static final int RULE_HEX=5;
    public static final int T__50=50;
    public static final int T__140=140;
    public static final int T__142=142;
    public static final int T__141=141;
    public static final int T__59=59;
    public static final int T__55=55;
    public static final int T__56=56;
    public static final int T__57=57;
    public static final int T__58=58;
    public static final int T__51=51;
    public static final int T__137=137;
    public static final int T__52=52;
    public static final int T__136=136;
    public static final int T__53=53;
    public static final int T__139=139;
    public static final int T__54=54;
    public static final int T__138=138;
    public static final int T__133=133;
    public static final int T__132=132;
    public static final int T__60=60;
    public static final int T__135=135;
    public static final int T__61=61;
    public static final int T__134=134;
    public static final int RULE_ID=4;
    public static final int T__131=131;
    public static final int T__130=130;
    public static final int RULE_INT=6;
    public static final int T__66=66;
    public static final int RULE_ML_COMMENT=9;
    public static final int T__67=67;
    public static final int T__129=129;
    public static final int T__68=68;
    public static final int T__69=69;
    public static final int T__62=62;
    public static final int T__126=126;
    public static final int T__63=63;
    public static final int T__125=125;
    public static final int T__64=64;
    public static final int T__128=128;
    public static final int T__65=65;
    public static final int T__127=127;
    public static final int T__37=37;
    public static final int T__38=38;
    public static final int T__39=39;
    public static final int T__33=33;
    public static final int T__34=34;
    public static final int T__35=35;
    public static final int T__36=36;
    public static final int T__30=30;
    public static final int T__31=31;
    public static final int T__32=32;
    public static final int T__48=48;
    public static final int T__49=49;
    public static final int T__44=44;
    public static final int T__45=45;
    public static final int T__46=46;
    public static final int T__47=47;
    public static final int T__40=40;
    public static final int T__41=41;
    public static final int T__42=42;
    public static final int T__43=43;
    public static final int T__91=91;
    public static final int T__100=100;
    public static final int T__92=92;
    public static final int T__93=93;
    public static final int T__102=102;
    public static final int T__94=94;
    public static final int T__101=101;
    public static final int T__90=90;
    public static final int T__19=19;
    public static final int T__15=15;
    public static final int T__16=16;
    public static final int T__17=17;
    public static final int T__18=18;
    public static final int T__99=99;
    public static final int T__13=13;
    public static final int T__14=14;
    public static final int T__95=95;
    public static final int T__96=96;
    public static final int T__97=97;
    public static final int T__98=98;
    public static final int RULE_DECIMAL=7;
    public static final int T__26=26;
    public static final int T__27=27;
    public static final int T__28=28;
    public static final int T__29=29;
    public static final int T__22=22;
    public static final int T__23=23;
    public static final int T__24=24;
    public static final int T__25=25;
    public static final int T__20=20;
    public static final int T__21=21;
    public static final int T__122=122;
    public static final int T__70=70;
    public static final int T__121=121;
    public static final int T__71=71;
    public static final int T__124=124;
    public static final int T__72=72;
    public static final int T__123=123;
    public static final int T__120=120;
    public static final int RULE_STRING=8;
    public static final int RULE_SL_COMMENT=10;
    public static final int T__77=77;
    public static final int T__119=119;
    public static final int T__78=78;
    public static final int T__118=118;
    public static final int T__79=79;
    public static final int T__73=73;
    public static final int T__115=115;
    public static final int EOF=-1;
    public static final int T__74=74;
    public static final int T__114=114;
    public static final int T__75=75;
    public static final int T__117=117;
    public static final int T__76=76;
    public static final int T__116=116;
    public static final int T__80=80;
    public static final int T__111=111;
    public static final int T__81=81;
    public static final int T__110=110;
    public static final int T__82=82;
    public static final int T__113=113;
    public static final int T__83=83;
    public static final int T__112=112;
    public static final int RULE_WS=11;
    public static final int RULE_ANY_OTHER=12;
    public static final int T__88=88;
    public static final int T__108=108;
    public static final int T__89=89;
    public static final int T__107=107;
    public static final int T__109=109;
    public static final int T__84=84;
    public static final int T__104=104;
    public static final int T__85=85;
    public static final int T__103=103;
    public static final int T__86=86;
    public static final int T__106=106;
    public static final int T__87=87;
    public static final int T__105=105;


    public String[] getTokenNames() { return InternalCommonGrammarParser.tokenNames; }
    public String getGrammarFileName() { return "../org.eclipse.osbp.dsl.common.xtext.ui/src-gen/org/eclipse/osbp/dsl/common/xtext/ui/contentassist/antlr/internal/InternalCommonGrammar.g"; }


     
     	protected CommonGrammarGrammarAccess grammarAccess;
     	
        public void setGrammarAccess(CommonGrammarGrammarAccess grammarAccess) {
        	this.grammarAccess = grammarAccess;
        }
        
        @Override
        protected Grammar getGrammar() {
        	return grammarAccess.getGrammar();
        }
        
        @Override
        protected String getValueForTokenName(String tokenName) {
        	return tokenName;
        }





    // Delegated rules

    public final boolean synpred157_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred157_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred280_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred280_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred314_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred314_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred169_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred169_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred223_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred223_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred302_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred302_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred236_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred236_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred327_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred327_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred190_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred190_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred292_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred292_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred224_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred224_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred315_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred315_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred259_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred259_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred301_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred301_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred313_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred313_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred222_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred222_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred291_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred291_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred338_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred338_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred326_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred326_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred339_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred339_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred221_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred221_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred246_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred246_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred300_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred300_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred294_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred294_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred325_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred325_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred166_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred166_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred317_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred317_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred323_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred323_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred293_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred293_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred220_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred220_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred316_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred316_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred324_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred324_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred310_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred310_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred272_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred272_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred306_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred306_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred79_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred79_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred322_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred322_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred297_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred297_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred335_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred335_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred193_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred193_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred66_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred66_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred319_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred319_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred295_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred295_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred38_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred38_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred243_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred243_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred227_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred227_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred304_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred304_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred320_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred320_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred266_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred266_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred282_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred282_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred290_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred290_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred312_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred312_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred187_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred187_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred337_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred337_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred299_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred299_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred274_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred274_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred105_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred105_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred329_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred329_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred217_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred217_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred225_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred225_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred264_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred264_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred276_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred276_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred87_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred87_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred219_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred219_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred330_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred330_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred343_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred343_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred160_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred160_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred172_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred172_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred197_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred197_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred341_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred341_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred342_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred342_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred184_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred184_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred308_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred308_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred332_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred332_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred340_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred340_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred333_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred333_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred175_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred175_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred101_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred101_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred309_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred309_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred331_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred331_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred112_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred112_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred260_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred260_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred181_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred181_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred39_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred39_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred318_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred318_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred228_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred228_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred296_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred296_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred216_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred216_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred271_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred271_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred305_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred305_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred214_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred214_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred307_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred307_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred321_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred321_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred334_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred334_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred283_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred283_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred163_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred163_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred328_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred328_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred40_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred40_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred65_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred65_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred265_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred265_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred311_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred311_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred303_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred303_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred273_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred273_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred218_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred218_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred88_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred88_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred178_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred178_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred298_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred298_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred336_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred336_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred106_InternalCommonGrammar() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred106_InternalCommonGrammar_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }


    protected DFA11 dfa11 = new DFA11(this);
    protected DFA12 dfa12 = new DFA12(this);
    protected DFA13 dfa13 = new DFA13(this);
    protected DFA20 dfa20 = new DFA20(this);
    protected DFA28 dfa28 = new DFA28(this);
    protected DFA31 dfa31 = new DFA31(this);
    protected DFA32 dfa32 = new DFA32(this);
    protected DFA35 dfa35 = new DFA35(this);
    protected DFA40 dfa40 = new DFA40(this);
    protected DFA43 dfa43 = new DFA43(this);
    protected DFA52 dfa52 = new DFA52(this);
    protected DFA133 dfa133 = new DFA133(this);
    protected DFA139 dfa139 = new DFA139(this);
    protected DFA146 dfa146 = new DFA146(this);
    protected DFA147 dfa147 = new DFA147(this);
    protected DFA155 dfa155 = new DFA155(this);
    protected DFA165 dfa165 = new DFA165(this);
    protected DFA178 dfa178 = new DFA178(this);
    protected DFA179 dfa179 = new DFA179(this);
    protected DFA183 dfa183 = new DFA183(this);
    protected DFA184 dfa184 = new DFA184(this);
    protected DFA185 dfa185 = new DFA185(this);
    protected DFA190 dfa190 = new DFA190(this);
    protected DFA199 dfa199 = new DFA199(this);
    protected DFA202 dfa202 = new DFA202(this);
    static final String DFA11_eotS =
        "\43\uffff";
    static final String DFA11_eofS =
        "\43\uffff";
    static final String DFA11_minS =
        "\1\4\1\0\41\uffff";
    static final String DFA11_maxS =
        "\1\u0090\1\0\41\uffff";
    static final String DFA11_acceptS =
        "\2\uffff\1\2\37\uffff\1\1";
    static final String DFA11_specialS =
        "\1\uffff\1\0\41\uffff}>";
    static final String[] DFA11_transitionS = {
            "\1\1\4\2\26\uffff\2\2\13\uffff\1\2\12\uffff\1\2\4\uffff\6\2\15\uffff\1\2\6\uffff\1\2\3\uffff\1\2\25\uffff\1\2\1\uffff\1\2\2\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\12\uffff\1\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA11_eot = DFA.unpackEncodedString(DFA11_eotS);
    static final short[] DFA11_eof = DFA.unpackEncodedString(DFA11_eofS);
    static final char[] DFA11_min = DFA.unpackEncodedStringToUnsignedChars(DFA11_minS);
    static final char[] DFA11_max = DFA.unpackEncodedStringToUnsignedChars(DFA11_maxS);
    static final short[] DFA11_accept = DFA.unpackEncodedString(DFA11_acceptS);
    static final short[] DFA11_special = DFA.unpackEncodedString(DFA11_specialS);
    static final short[][] DFA11_transition;

    static {
        int numStates = DFA11_transitionS.length;
        DFA11_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA11_transition[i] = DFA.unpackEncodedString(DFA11_transitionS[i]);
        }
    }

    class DFA11 extends DFA {

        public DFA11(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 11;
            this.eot = DFA11_eot;
            this.eof = DFA11_eof;
            this.min = DFA11_min;
            this.max = DFA11_max;
            this.accept = DFA11_accept;
            this.special = DFA11_special;
            this.transition = DFA11_transition;
        }
        public String getDescription() {
            return "3747:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA11_1 = input.LA(1);

                         
                        int index11_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred38_InternalCommonGrammar()) ) {s = 34;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index11_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 11, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA12_eotS =
        "\43\uffff";
    static final String DFA12_eofS =
        "\43\uffff";
    static final String DFA12_minS =
        "\1\4\1\0\41\uffff";
    static final String DFA12_maxS =
        "\1\u0090\1\0\41\uffff";
    static final String DFA12_acceptS =
        "\2\uffff\1\2\37\uffff\1\1";
    static final String DFA12_specialS =
        "\1\uffff\1\0\41\uffff}>";
    static final String[] DFA12_transitionS = {
            "\5\2\26\uffff\2\2\13\uffff\1\2\12\uffff\1\2\4\uffff\6\2\15\uffff\1\2\6\uffff\1\2\3\uffff\1\2\25\uffff\1\2\1\uffff\1\1\2\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\12\uffff\1\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
    static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
    static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
    static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
    static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
    static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
    static final short[][] DFA12_transition;

    static {
        int numStates = DFA12_transitionS.length;
        DFA12_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
        }
    }

    class DFA12 extends DFA {

        public DFA12(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 12;
            this.eot = DFA12_eot;
            this.eof = DFA12_eof;
            this.min = DFA12_min;
            this.max = DFA12_max;
            this.accept = DFA12_accept;
            this.special = DFA12_special;
            this.transition = DFA12_transition;
        }
        public String getDescription() {
            return "3769:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA12_1 = input.LA(1);

                         
                        int index12_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred39_InternalCommonGrammar()) ) {s = 34;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index12_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 12, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA13_eotS =
        "\43\uffff";
    static final String DFA13_eofS =
        "\43\uffff";
    static final String DFA13_minS =
        "\1\4\1\0\41\uffff";
    static final String DFA13_maxS =
        "\1\u0090\1\0\41\uffff";
    static final String DFA13_acceptS =
        "\2\uffff\1\2\37\uffff\1\1";
    static final String DFA13_specialS =
        "\1\uffff\1\0\41\uffff}>";
    static final String[] DFA13_transitionS = {
            "\5\2\26\uffff\2\2\13\uffff\1\2\12\uffff\1\2\4\uffff\6\2\15\uffff\1\2\6\uffff\1\2\3\uffff\1\2\25\uffff\1\2\1\uffff\1\1\2\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\12\uffff\1\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA13_eot = DFA.unpackEncodedString(DFA13_eotS);
    static final short[] DFA13_eof = DFA.unpackEncodedString(DFA13_eofS);
    static final char[] DFA13_min = DFA.unpackEncodedStringToUnsignedChars(DFA13_minS);
    static final char[] DFA13_max = DFA.unpackEncodedStringToUnsignedChars(DFA13_maxS);
    static final short[] DFA13_accept = DFA.unpackEncodedString(DFA13_acceptS);
    static final short[] DFA13_special = DFA.unpackEncodedString(DFA13_specialS);
    static final short[][] DFA13_transition;

    static {
        int numStates = DFA13_transitionS.length;
        DFA13_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA13_transition[i] = DFA.unpackEncodedString(DFA13_transitionS[i]);
        }
    }

    class DFA13 extends DFA {

        public DFA13(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 13;
            this.eot = DFA13_eot;
            this.eof = DFA13_eof;
            this.min = DFA13_min;
            this.max = DFA13_max;
            this.accept = DFA13_accept;
            this.special = DFA13_special;
            this.transition = DFA13_transition;
        }
        public String getDescription() {
            return "3791:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA13_1 = input.LA(1);

                         
                        int index13_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred40_InternalCommonGrammar()) ) {s = 34;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index13_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 13, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA20_eotS =
        "\13\uffff";
    static final String DFA20_eofS =
        "\13\uffff";
    static final String DFA20_minS =
        "\1\53\2\uffff\1\53\7\uffff";
    static final String DFA20_maxS =
        "\1\62\2\uffff\1\57\7\uffff";
    static final String DFA20_acceptS =
        "\1\uffff\1\1\1\2\1\uffff\1\4\1\5\1\7\1\10\1\11\1\6\1\3";
    static final String DFA20_specialS =
        "\13\uffff}>";
    static final String[] DFA20_transitionS = {
            "\1\3\1\6\1\1\1\2\1\4\1\5\1\7\1\10",
            "",
            "",
            "\1\11\3\uffff\1\12",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA20_eot = DFA.unpackEncodedString(DFA20_eotS);
    static final short[] DFA20_eof = DFA.unpackEncodedString(DFA20_eofS);
    static final char[] DFA20_min = DFA.unpackEncodedStringToUnsignedChars(DFA20_minS);
    static final char[] DFA20_max = DFA.unpackEncodedStringToUnsignedChars(DFA20_maxS);
    static final short[] DFA20_accept = DFA.unpackEncodedString(DFA20_acceptS);
    static final short[] DFA20_special = DFA.unpackEncodedString(DFA20_specialS);
    static final short[][] DFA20_transition;

    static {
        int numStates = DFA20_transitionS.length;
        DFA20_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA20_transition[i] = DFA.unpackEncodedString(DFA20_transitionS[i]);
        }
    }

    class DFA20 extends DFA {

        public DFA20(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 20;
            this.eot = DFA20_eot;
            this.eof = DFA20_eof;
            this.min = DFA20_min;
            this.max = DFA20_max;
            this.accept = DFA20_accept;
            this.special = DFA20_special;
            this.transition = DFA20_transition;
        }
        public String getDescription() {
            return "4023:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );";
        }
    }
    static final String DFA28_eotS =
        "\12\uffff";
    static final String DFA28_eofS =
        "\4\uffff\5\3\1\uffff";
    static final String DFA28_minS =
        "\1\72\2\4\1\uffff\5\4\1\uffff";
    static final String DFA28_maxS =
        "\1\u008e\2\100\1\uffff\5\u0090\1\uffff";
    static final String DFA28_acceptS =
        "\3\uffff\1\2\5\uffff\1\1";
    static final String DFA28_specialS =
        "\12\uffff}>";
    static final String[] DFA28_transitionS = {
            "\1\1\122\uffff\1\2\1\3",
            "\1\4\47\uffff\1\3\17\uffff\1\5\1\6\1\7\1\10\1\3",
            "\1\4\47\uffff\1\3\17\uffff\1\5\1\6\1\7\1\10\1\3",
            "",
            "\5\3\4\uffff\1\11\2\3\16\uffff\44\3\15\uffff\2\3\1\uffff\1\3\3\uffff\2\3\2\uffff\1\3\2\uffff\1\3\23\uffff\26\3\6\uffff\2\3\1\uffff\1\3",
            "\5\3\4\uffff\1\11\2\3\16\uffff\44\3\15\uffff\2\3\1\uffff\1\3\3\uffff\2\3\2\uffff\1\3\2\uffff\1\3\23\uffff\26\3\6\uffff\2\3\1\uffff\1\3",
            "\5\3\4\uffff\1\11\2\3\16\uffff\44\3\15\uffff\2\3\1\uffff\1\3\3\uffff\2\3\2\uffff\1\3\2\uffff\1\3\23\uffff\26\3\6\uffff\2\3\1\uffff\1\3",
            "\5\3\4\uffff\1\11\2\3\16\uffff\44\3\15\uffff\2\3\1\uffff\1\3\3\uffff\2\3\2\uffff\1\3\2\uffff\1\3\23\uffff\26\3\6\uffff\2\3\1\uffff\1\3",
            "\5\3\4\uffff\1\11\2\3\16\uffff\44\3\15\uffff\2\3\1\uffff\1\3\3\uffff\2\3\2\uffff\1\3\2\uffff\1\3\23\uffff\26\3\6\uffff\2\3\1\uffff\1\3",
            ""
    };

    static final short[] DFA28_eot = DFA.unpackEncodedString(DFA28_eotS);
    static final short[] DFA28_eof = DFA.unpackEncodedString(DFA28_eofS);
    static final char[] DFA28_min = DFA.unpackEncodedStringToUnsignedChars(DFA28_minS);
    static final char[] DFA28_max = DFA.unpackEncodedStringToUnsignedChars(DFA28_maxS);
    static final short[] DFA28_accept = DFA.unpackEncodedString(DFA28_acceptS);
    static final short[] DFA28_special = DFA.unpackEncodedString(DFA28_specialS);
    static final short[][] DFA28_transition;

    static {
        int numStates = DFA28_transitionS.length;
        DFA28_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA28_transition[i] = DFA.unpackEncodedString(DFA28_transitionS[i]);
        }
    }

    class DFA28 extends DFA {

        public DFA28(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 28;
            this.eot = DFA28_eot;
            this.eof = DFA28_eof;
            this.min = DFA28_min;
            this.max = DFA28_max;
            this.accept = DFA28_accept;
            this.special = DFA28_special;
            this.transition = DFA28_transition;
        }
        public String getDescription() {
            return "4305:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );";
        }
    }
    static final String DFA31_eotS =
        "\43\uffff";
    static final String DFA31_eofS =
        "\43\uffff";
    static final String DFA31_minS =
        "\1\4\2\0\40\uffff";
    static final String DFA31_maxS =
        "\1\u0090\2\0\40\uffff";
    static final String DFA31_acceptS =
        "\3\uffff\1\1\1\uffff\1\2\35\uffff";
    static final String DFA31_specialS =
        "\1\uffff\1\0\1\1\40\uffff}>";
    static final String[] DFA31_transitionS = {
            "\1\1\4\5\26\uffff\2\5\13\uffff\1\5\3\uffff\1\3\6\uffff\1\5\4\uffff\6\5\15\uffff\1\5\6\uffff\1\2\3\uffff\1\5\27\uffff\1\5\2\uffff\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\11\uffff\1\3\1\5",
            "\1\uffff",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA31_eot = DFA.unpackEncodedString(DFA31_eotS);
    static final short[] DFA31_eof = DFA.unpackEncodedString(DFA31_eofS);
    static final char[] DFA31_min = DFA.unpackEncodedStringToUnsignedChars(DFA31_minS);
    static final char[] DFA31_max = DFA.unpackEncodedStringToUnsignedChars(DFA31_maxS);
    static final short[] DFA31_accept = DFA.unpackEncodedString(DFA31_acceptS);
    static final short[] DFA31_special = DFA.unpackEncodedString(DFA31_specialS);
    static final short[][] DFA31_transition;

    static {
        int numStates = DFA31_transitionS.length;
        DFA31_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA31_transition[i] = DFA.unpackEncodedString(DFA31_transitionS[i]);
        }
    }

    class DFA31 extends DFA {

        public DFA31(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 31;
            this.eot = DFA31_eot;
            this.eof = DFA31_eof;
            this.min = DFA31_min;
            this.max = DFA31_max;
            this.accept = DFA31_accept;
            this.special = DFA31_special;
            this.transition = DFA31_transition;
        }
        public String getDescription() {
            return "4381:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA31_1 = input.LA(1);

                         
                        int index31_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred79_InternalCommonGrammar()) ) {s = 3;}

                        else if ( (true) ) {s = 5;}

                         
                        input.seek(index31_1);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA31_2 = input.LA(1);

                         
                        int index31_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred79_InternalCommonGrammar()) ) {s = 3;}

                        else if ( (true) ) {s = 5;}

                         
                        input.seek(index31_2);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 31, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA32_eotS =
        "\40\uffff";
    static final String DFA32_eofS =
        "\40\uffff";
    static final String DFA32_minS =
        "\1\4\26\uffff\1\0\10\uffff";
    static final String DFA32_maxS =
        "\1\u0090\26\uffff\1\0\10\uffff";
    static final String DFA32_acceptS =
        "\1\uffff\1\1\1\2\1\3\1\4\1\5\6\uffff\1\6\11\uffff\1\7\1\uffff\1\12\1\13\1\14\1\15\1\16\1\17\1\10\1\11";
    static final String DFA32_specialS =
        "\27\uffff\1\0\10\uffff}>";
    static final String[] DFA32_transitionS = {
            "\1\5\4\14\43\uffff\1\5\17\uffff\5\5\1\14\15\uffff\1\2\6\uffff\1\35\3\uffff\1\14\27\uffff\1\14\2\uffff\1\26\1\uffff\1\3\3\uffff\1\27\1\30\1\31\1\1\2\14\1\32\1\33\1\34\1\uffff\1\4\12\uffff\1\14",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA32_eot = DFA.unpackEncodedString(DFA32_eotS);
    static final short[] DFA32_eof = DFA.unpackEncodedString(DFA32_eofS);
    static final char[] DFA32_min = DFA.unpackEncodedStringToUnsignedChars(DFA32_minS);
    static final char[] DFA32_max = DFA.unpackEncodedStringToUnsignedChars(DFA32_maxS);
    static final short[] DFA32_accept = DFA.unpackEncodedString(DFA32_acceptS);
    static final short[] DFA32_special = DFA.unpackEncodedString(DFA32_specialS);
    static final short[][] DFA32_transition;

    static {
        int numStates = DFA32_transitionS.length;
        DFA32_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA32_transition[i] = DFA.unpackEncodedString(DFA32_transitionS[i]);
        }
    }

    class DFA32 extends DFA {

        public DFA32(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 32;
            this.eot = DFA32_eot;
            this.eof = DFA32_eof;
            this.min = DFA32_min;
            this.max = DFA32_max;
            this.accept = DFA32_accept;
            this.special = DFA32_special;
            this.transition = DFA32_transition;
        }
        public String getDescription() {
            return "4403:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA32_23 = input.LA(1);

                         
                        int index32_23 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred87_InternalCommonGrammar()) ) {s = 30;}

                        else if ( (synpred88_InternalCommonGrammar()) ) {s = 31;}

                         
                        input.seek(index32_23);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 32, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA35_eotS =
        "\43\uffff";
    static final String DFA35_eofS =
        "\43\uffff";
    static final String DFA35_minS =
        "\1\4\1\0\41\uffff";
    static final String DFA35_maxS =
        "\1\u0090\1\0\41\uffff";
    static final String DFA35_acceptS =
        "\2\uffff\1\2\37\uffff\1\1";
    static final String DFA35_specialS =
        "\1\uffff\1\0\41\uffff}>";
    static final String[] DFA35_transitionS = {
            "\5\2\26\uffff\2\2\13\uffff\1\2\3\uffff\1\2\6\uffff\1\2\4\uffff\6\2\15\uffff\1\2\6\uffff\1\1\3\uffff\1\2\27\uffff\1\2\2\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\12\uffff\1\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA35_eot = DFA.unpackEncodedString(DFA35_eotS);
    static final short[] DFA35_eof = DFA.unpackEncodedString(DFA35_eofS);
    static final char[] DFA35_min = DFA.unpackEncodedStringToUnsignedChars(DFA35_minS);
    static final char[] DFA35_max = DFA.unpackEncodedStringToUnsignedChars(DFA35_maxS);
    static final short[] DFA35_accept = DFA.unpackEncodedString(DFA35_acceptS);
    static final short[] DFA35_special = DFA.unpackEncodedString(DFA35_specialS);
    static final short[][] DFA35_transition;

    static {
        int numStates = DFA35_transitionS.length;
        DFA35_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA35_transition[i] = DFA.unpackEncodedString(DFA35_transitionS[i]);
        }
    }

    class DFA35 extends DFA {

        public DFA35(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 35;
            this.eot = DFA35_eot;
            this.eof = DFA35_eof;
            this.min = DFA35_min;
            this.max = DFA35_max;
            this.accept = DFA35_accept;
            this.special = DFA35_special;
            this.transition = DFA35_transition;
        }
        public String getDescription() {
            return "4577:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA35_1 = input.LA(1);

                         
                        int index35_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred101_InternalCommonGrammar()) ) {s = 34;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index35_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 35, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA40_eotS =
        "\43\uffff";
    static final String DFA40_eofS =
        "\43\uffff";
    static final String DFA40_minS =
        "\1\4\2\0\40\uffff";
    static final String DFA40_maxS =
        "\1\u0090\2\0\40\uffff";
    static final String DFA40_acceptS =
        "\3\uffff\1\1\1\uffff\1\2\35\uffff";
    static final String DFA40_specialS =
        "\1\uffff\1\0\1\1\40\uffff}>";
    static final String[] DFA40_transitionS = {
            "\1\1\4\5\26\uffff\2\5\13\uffff\1\5\3\uffff\1\3\6\uffff\1\5\4\uffff\6\5\15\uffff\1\5\6\uffff\1\2\3\uffff\1\5\27\uffff\1\5\2\uffff\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\11\uffff\1\3\1\5",
            "\1\uffff",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA40_eot = DFA.unpackEncodedString(DFA40_eotS);
    static final short[] DFA40_eof = DFA.unpackEncodedString(DFA40_eofS);
    static final char[] DFA40_min = DFA.unpackEncodedStringToUnsignedChars(DFA40_minS);
    static final char[] DFA40_max = DFA.unpackEncodedStringToUnsignedChars(DFA40_maxS);
    static final short[] DFA40_accept = DFA.unpackEncodedString(DFA40_acceptS);
    static final short[] DFA40_special = DFA.unpackEncodedString(DFA40_specialS);
    static final short[][] DFA40_transition;

    static {
        int numStates = DFA40_transitionS.length;
        DFA40_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA40_transition[i] = DFA.unpackEncodedString(DFA40_transitionS[i]);
        }
    }

    class DFA40 extends DFA {

        public DFA40(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 40;
            this.eot = DFA40_eot;
            this.eof = DFA40_eof;
            this.min = DFA40_min;
            this.max = DFA40_max;
            this.accept = DFA40_accept;
            this.special = DFA40_special;
            this.transition = DFA40_transition;
        }
        public String getDescription() {
            return "4689:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA40_1 = input.LA(1);

                         
                        int index40_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred106_InternalCommonGrammar()) ) {s = 3;}

                        else if ( (true) ) {s = 5;}

                         
                        input.seek(index40_1);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA40_2 = input.LA(1);

                         
                        int index40_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred106_InternalCommonGrammar()) ) {s = 3;}

                        else if ( (true) ) {s = 5;}

                         
                        input.seek(index40_2);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 40, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA43_eotS =
        "\43\uffff";
    static final String DFA43_eofS =
        "\43\uffff";
    static final String DFA43_minS =
        "\1\4\2\0\40\uffff";
    static final String DFA43_maxS =
        "\1\u0090\2\0\40\uffff";
    static final String DFA43_acceptS =
        "\3\uffff\1\1\1\uffff\1\2\35\uffff";
    static final String DFA43_specialS =
        "\1\uffff\1\0\1\1\40\uffff}>";
    static final String[] DFA43_transitionS = {
            "\1\1\4\5\26\uffff\2\5\13\uffff\1\5\3\uffff\1\3\6\uffff\1\5\4\uffff\6\5\15\uffff\1\5\6\uffff\1\2\3\uffff\1\5\27\uffff\1\5\2\uffff\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\11\uffff\1\3\1\5",
            "\1\uffff",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA43_eot = DFA.unpackEncodedString(DFA43_eotS);
    static final short[] DFA43_eof = DFA.unpackEncodedString(DFA43_eofS);
    static final char[] DFA43_min = DFA.unpackEncodedStringToUnsignedChars(DFA43_minS);
    static final char[] DFA43_max = DFA.unpackEncodedStringToUnsignedChars(DFA43_maxS);
    static final short[] DFA43_accept = DFA.unpackEncodedString(DFA43_acceptS);
    static final short[] DFA43_special = DFA.unpackEncodedString(DFA43_specialS);
    static final short[][] DFA43_transition;

    static {
        int numStates = DFA43_transitionS.length;
        DFA43_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA43_transition[i] = DFA.unpackEncodedString(DFA43_transitionS[i]);
        }
    }

    class DFA43 extends DFA {

        public DFA43(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 43;
            this.eot = DFA43_eot;
            this.eof = DFA43_eof;
            this.min = DFA43_min;
            this.max = DFA43_max;
            this.accept = DFA43_accept;
            this.special = DFA43_special;
            this.transition = DFA43_transition;
        }
        public String getDescription() {
            return "4783:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA43_1 = input.LA(1);

                         
                        int index43_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred112_InternalCommonGrammar()) ) {s = 3;}

                        else if ( (true) ) {s = 5;}

                         
                        input.seek(index43_1);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA43_2 = input.LA(1);

                         
                        int index43_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred112_InternalCommonGrammar()) ) {s = 3;}

                        else if ( (true) ) {s = 5;}

                         
                        input.seek(index43_2);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 43, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA52_eotS =
        "\7\uffff";
    static final String DFA52_eofS =
        "\2\uffff\1\4\2\uffff\1\4\1\uffff";
    static final String DFA52_minS =
        "\1\4\1\uffff\1\72\1\4\1\uffff\1\72\1\uffff";
    static final String DFA52_maxS =
        "\1\75\1\uffff\1\122\1\63\1\uffff\1\122\1\uffff";
    static final String DFA52_acceptS =
        "\1\uffff\1\1\2\uffff\1\2\1\uffff\1\3";
    static final String DFA52_specialS =
        "\7\uffff}>";
    static final String[] DFA52_transitionS = {
            "\1\2\70\uffff\1\1",
            "",
            "\1\3\27\uffff\1\4",
            "\1\5\56\uffff\1\6",
            "",
            "\1\3\27\uffff\1\4",
            ""
    };

    static final short[] DFA52_eot = DFA.unpackEncodedString(DFA52_eotS);
    static final short[] DFA52_eof = DFA.unpackEncodedString(DFA52_eofS);
    static final char[] DFA52_min = DFA.unpackEncodedStringToUnsignedChars(DFA52_minS);
    static final char[] DFA52_max = DFA.unpackEncodedStringToUnsignedChars(DFA52_maxS);
    static final short[] DFA52_accept = DFA.unpackEncodedString(DFA52_acceptS);
    static final short[] DFA52_special = DFA.unpackEncodedString(DFA52_specialS);
    static final short[][] DFA52_transition;

    static {
        int numStates = DFA52_transitionS.length;
        DFA52_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA52_transition[i] = DFA.unpackEncodedString(DFA52_transitionS[i]);
        }
    }

    class DFA52 extends DFA {

        public DFA52(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 52;
            this.eot = DFA52_eot;
            this.eof = DFA52_eof;
            this.min = DFA52_min;
            this.max = DFA52_max;
            this.accept = DFA52_accept;
            this.special = DFA52_special;
            this.transition = DFA52_transition;
        }
        public String getDescription() {
            return "4983:1: rule__XImportDeclaration__Alternatives_1 : ( ( ( rule__XImportDeclaration__Group_1_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 ) ) );";
        }
    }
    static final String DFA133_eotS =
        "\12\uffff";
    static final String DFA133_eofS =
        "\1\10\11\uffff";
    static final String DFA133_minS =
        "\1\4\7\0\2\uffff";
    static final String DFA133_maxS =
        "\1\u0090\7\0\2\uffff";
    static final String DFA133_acceptS =
        "\10\uffff\1\2\1\1";
    static final String DFA133_specialS =
        "\1\uffff\1\4\1\3\1\0\1\6\1\5\1\2\1\1\2\uffff}>";
    static final String[] DFA133_transitionS = {
            "\5\10\5\uffff\2\10\16\uffff\3\10\1\1\1\2\1\3\1\4\1\5\5\10\1\7\1\6\25\10\15\uffff\2\10\1\uffff\1\10\3\uffff\2\10\2\uffff\1\10\2\uffff\1\10\23\uffff\26\10\6\uffff\2\10\1\uffff\1\10",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "",
            ""
    };

    static final short[] DFA133_eot = DFA.unpackEncodedString(DFA133_eotS);
    static final short[] DFA133_eof = DFA.unpackEncodedString(DFA133_eofS);
    static final char[] DFA133_min = DFA.unpackEncodedStringToUnsignedChars(DFA133_minS);
    static final char[] DFA133_max = DFA.unpackEncodedStringToUnsignedChars(DFA133_maxS);
    static final short[] DFA133_accept = DFA.unpackEncodedString(DFA133_acceptS);
    static final short[] DFA133_special = DFA.unpackEncodedString(DFA133_specialS);
    static final short[][] DFA133_transition;

    static {
        int numStates = DFA133_transitionS.length;
        DFA133_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA133_transition[i] = DFA.unpackEncodedString(DFA133_transitionS[i]);
        }
    }

    class DFA133 extends DFA {

        public DFA133(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 133;
            this.eot = DFA133_eot;
            this.eof = DFA133_eof;
            this.min = DFA133_min;
            this.max = DFA133_max;
            this.accept = DFA133_accept;
            this.special = DFA133_special;
            this.transition = DFA133_transition;
        }
        public String getDescription() {
            return "17164:1: ( rule__XAssignment__Group_1_1__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA133_3 = input.LA(1);

                         
                        int index133_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred214_InternalCommonGrammar()) ) {s = 9;}

                        else if ( (true) ) {s = 8;}

                         
                        input.seek(index133_3);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA133_7 = input.LA(1);

                         
                        int index133_7 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred214_InternalCommonGrammar()) ) {s = 9;}

                        else if ( (true) ) {s = 8;}

                         
                        input.seek(index133_7);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA133_6 = input.LA(1);

                         
                        int index133_6 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred214_InternalCommonGrammar()) ) {s = 9;}

                        else if ( (true) ) {s = 8;}

                         
                        input.seek(index133_6);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA133_2 = input.LA(1);

                         
                        int index133_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred214_InternalCommonGrammar()) ) {s = 9;}

                        else if ( (true) ) {s = 8;}

                         
                        input.seek(index133_2);
                        if ( s>=0 ) return s;
                        break;
                    case 4 : 
                        int LA133_1 = input.LA(1);

                         
                        int index133_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred214_InternalCommonGrammar()) ) {s = 9;}

                        else if ( (true) ) {s = 8;}

                         
                        input.seek(index133_1);
                        if ( s>=0 ) return s;
                        break;
                    case 5 : 
                        int LA133_5 = input.LA(1);

                         
                        int index133_5 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred214_InternalCommonGrammar()) ) {s = 9;}

                        else if ( (true) ) {s = 8;}

                         
                        input.seek(index133_5);
                        if ( s>=0 ) return s;
                        break;
                    case 6 : 
                        int LA133_4 = input.LA(1);

                         
                        int index133_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred214_InternalCommonGrammar()) ) {s = 9;}

                        else if ( (true) ) {s = 8;}

                         
                        input.seek(index133_4);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 133, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA139_eotS =
        "\13\uffff";
    static final String DFA139_eofS =
        "\1\1\12\uffff";
    static final String DFA139_minS =
        "\1\4\1\uffff\10\0\1\uffff";
    static final String DFA139_maxS =
        "\1\u0090\1\uffff\10\0\1\uffff";
    static final String DFA139_acceptS =
        "\1\uffff\1\2\10\uffff\1\1";
    static final String DFA139_specialS =
        "\2\uffff\1\4\1\3\1\0\1\6\1\2\1\5\1\1\1\7\1\uffff}>";
    static final String[] DFA139_transitionS = {
            "\5\1\5\uffff\2\1\16\uffff\15\1\1\3\1\2\1\4\1\5\1\6\1\7\1\10\1\11\17\1\15\uffff\2\1\1\uffff\1\1\3\uffff\2\1\2\uffff\1\1\2\uffff\1\1\23\uffff\26\1\6\uffff\2\1\1\uffff\1\1",
            "",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            ""
    };

    static final short[] DFA139_eot = DFA.unpackEncodedString(DFA139_eotS);
    static final short[] DFA139_eof = DFA.unpackEncodedString(DFA139_eofS);
    static final char[] DFA139_min = DFA.unpackEncodedStringToUnsignedChars(DFA139_minS);
    static final char[] DFA139_max = DFA.unpackEncodedStringToUnsignedChars(DFA139_maxS);
    static final short[] DFA139_accept = DFA.unpackEncodedString(DFA139_acceptS);
    static final short[] DFA139_special = DFA.unpackEncodedString(DFA139_specialS);
    static final short[][] DFA139_transition;

    static {
        int numStates = DFA139_transitionS.length;
        DFA139_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA139_transition[i] = DFA.unpackEncodedString(DFA139_transitionS[i]);
        }
    }

    class DFA139 extends DFA {

        public DFA139(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 139;
            this.eot = DFA139_eot;
            this.eof = DFA139_eof;
            this.min = DFA139_min;
            this.max = DFA139_max;
            this.accept = DFA139_accept;
            this.special = DFA139_special;
            this.transition = DFA139_transition;
        }
        public String getDescription() {
            return "()* loopback of 18656:1: ( rule__XOtherOperatorExpression__Group_1__0 )*";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA139_4 = input.LA(1);

                         
                        int index139_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred220_InternalCommonGrammar()) ) {s = 10;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index139_4);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA139_8 = input.LA(1);

                         
                        int index139_8 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred220_InternalCommonGrammar()) ) {s = 10;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index139_8);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA139_6 = input.LA(1);

                         
                        int index139_6 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred220_InternalCommonGrammar()) ) {s = 10;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index139_6);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA139_3 = input.LA(1);

                         
                        int index139_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred220_InternalCommonGrammar()) ) {s = 10;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index139_3);
                        if ( s>=0 ) return s;
                        break;
                    case 4 : 
                        int LA139_2 = input.LA(1);

                         
                        int index139_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred220_InternalCommonGrammar()) ) {s = 10;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index139_2);
                        if ( s>=0 ) return s;
                        break;
                    case 5 : 
                        int LA139_7 = input.LA(1);

                         
                        int index139_7 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred220_InternalCommonGrammar()) ) {s = 10;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index139_7);
                        if ( s>=0 ) return s;
                        break;
                    case 6 : 
                        int LA139_5 = input.LA(1);

                         
                        int index139_5 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred220_InternalCommonGrammar()) ) {s = 10;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index139_5);
                        if ( s>=0 ) return s;
                        break;
                    case 7 : 
                        int LA139_9 = input.LA(1);

                         
                        int index139_9 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred220_InternalCommonGrammar()) ) {s = 10;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index139_9);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 139, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA146_eotS =
        "\116\uffff";
    static final String DFA146_eofS =
        "\1\2\115\uffff";
    static final String DFA146_minS =
        "\1\4\1\0\114\uffff";
    static final String DFA146_maxS =
        "\1\u0090\1\0\114\uffff";
    static final String DFA146_acceptS =
        "\2\uffff\1\2\112\uffff\1\1";
    static final String DFA146_specialS =
        "\1\uffff\1\0\114\uffff}>";
    static final String[] DFA146_transitionS = {
            "\5\2\5\uffff\2\2\16\uffff\44\2\15\uffff\2\2\1\uffff\1\2\3\uffff\1\1\1\2\2\uffff\1\2\2\uffff\1\2\23\uffff\26\2\6\uffff\2\2\1\uffff\1\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA146_eot = DFA.unpackEncodedString(DFA146_eotS);
    static final short[] DFA146_eof = DFA.unpackEncodedString(DFA146_eofS);
    static final char[] DFA146_min = DFA.unpackEncodedStringToUnsignedChars(DFA146_minS);
    static final char[] DFA146_max = DFA.unpackEncodedStringToUnsignedChars(DFA146_maxS);
    static final short[] DFA146_accept = DFA.unpackEncodedString(DFA146_acceptS);
    static final short[] DFA146_special = DFA.unpackEncodedString(DFA146_specialS);
    static final short[][] DFA146_transition;

    static {
        int numStates = DFA146_transitionS.length;
        DFA146_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA146_transition[i] = DFA.unpackEncodedString(DFA146_transitionS[i]);
        }
    }

    class DFA146 extends DFA {

        public DFA146(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 146;
            this.eot = DFA146_eot;
            this.eof = DFA146_eof;
            this.min = DFA146_min;
            this.max = DFA146_max;
            this.accept = DFA146_accept;
            this.special = DFA146_special;
            this.transition = DFA146_transition;
        }
        public String getDescription() {
            return "20483:1: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA146_1 = input.LA(1);

                         
                        int index146_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred227_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index146_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 146, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA147_eotS =
        "\116\uffff";
    static final String DFA147_eofS =
        "\1\2\115\uffff";
    static final String DFA147_minS =
        "\1\4\1\0\114\uffff";
    static final String DFA147_maxS =
        "\1\u0090\1\0\114\uffff";
    static final String DFA147_acceptS =
        "\2\uffff\1\2\112\uffff\1\1";
    static final String DFA147_specialS =
        "\1\uffff\1\0\114\uffff}>";
    static final String[] DFA147_transitionS = {
            "\5\2\5\uffff\2\2\16\uffff\44\2\15\uffff\2\2\1\uffff\1\2\3\uffff\2\2\2\uffff\1\1\2\uffff\1\2\23\uffff\26\2\6\uffff\2\2\1\uffff\1\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA147_eot = DFA.unpackEncodedString(DFA147_eotS);
    static final short[] DFA147_eof = DFA.unpackEncodedString(DFA147_eofS);
    static final char[] DFA147_min = DFA.unpackEncodedStringToUnsignedChars(DFA147_minS);
    static final char[] DFA147_max = DFA.unpackEncodedStringToUnsignedChars(DFA147_maxS);
    static final short[] DFA147_accept = DFA.unpackEncodedString(DFA147_acceptS);
    static final short[] DFA147_special = DFA.unpackEncodedString(DFA147_specialS);
    static final short[][] DFA147_transition;

    static {
        int numStates = DFA147_transitionS.length;
        DFA147_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA147_transition[i] = DFA.unpackEncodedString(DFA147_transitionS[i]);
        }
    }

    class DFA147 extends DFA {

        public DFA147(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 147;
            this.eot = DFA147_eot;
            this.eof = DFA147_eof;
            this.min = DFA147_min;
            this.max = DFA147_max;
            this.accept = DFA147_accept;
            this.special = DFA147_special;
            this.transition = DFA147_transition;
        }
        public String getDescription() {
            return "20511:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA147_1 = input.LA(1);

                         
                        int index147_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred228_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index147_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 147, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA155_eotS =
        "\46\uffff";
    static final String DFA155_eofS =
        "\46\uffff";
    static final String DFA155_minS =
        "\1\4\2\0\43\uffff";
    static final String DFA155_maxS =
        "\1\u0090\2\0\43\uffff";
    static final String DFA155_acceptS =
        "\3\uffff\1\1\1\uffff\1\2\40\uffff";
    static final String DFA155_specialS =
        "\1\uffff\1\0\1\1\43\uffff}>";
    static final String[] DFA155_transitionS = {
            "\1\1\4\5\25\uffff\3\5\13\uffff\1\5\3\uffff\1\3\6\uffff\1\5\3\uffff\7\5\15\uffff\1\5\6\uffff\1\2\3\uffff\1\5\2\uffff\1\5\24\uffff\1\5\2\uffff\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\11\uffff\1\3\1\5",
            "\1\uffff",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA155_eot = DFA.unpackEncodedString(DFA155_eotS);
    static final short[] DFA155_eof = DFA.unpackEncodedString(DFA155_eofS);
    static final char[] DFA155_min = DFA.unpackEncodedStringToUnsignedChars(DFA155_minS);
    static final char[] DFA155_max = DFA.unpackEncodedStringToUnsignedChars(DFA155_maxS);
    static final short[] DFA155_accept = DFA.unpackEncodedString(DFA155_acceptS);
    static final short[] DFA155_special = DFA.unpackEncodedString(DFA155_specialS);
    static final short[][] DFA155_transition;

    static {
        int numStates = DFA155_transitionS.length;
        DFA155_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA155_transition[i] = DFA.unpackEncodedString(DFA155_transitionS[i]);
        }
    }

    class DFA155 extends DFA {

        public DFA155(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 155;
            this.eot = DFA155_eot;
            this.eof = DFA155_eof;
            this.min = DFA155_min;
            this.max = DFA155_max;
            this.accept = DFA155_accept;
            this.special = DFA155_special;
            this.transition = DFA155_transition;
        }
        public String getDescription() {
            return "21652:1: ( rule__XClosure__Group_1__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA155_1 = input.LA(1);

                         
                        int index155_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred236_InternalCommonGrammar()) ) {s = 3;}

                        else if ( (true) ) {s = 5;}

                         
                        input.seek(index155_1);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA155_2 = input.LA(1);

                         
                        int index155_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred236_InternalCommonGrammar()) ) {s = 3;}

                        else if ( (true) ) {s = 5;}

                         
                        input.seek(index155_2);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 155, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA165_eotS =
        "\42\uffff";
    static final String DFA165_eofS =
        "\42\uffff";
    static final String DFA165_minS =
        "\1\4\2\0\37\uffff";
    static final String DFA165_maxS =
        "\1\u0090\2\0\37\uffff";
    static final String DFA165_acceptS =
        "\3\uffff\1\1\1\2\35\uffff";
    static final String DFA165_specialS =
        "\1\uffff\1\0\1\1\37\uffff}>";
    static final String[] DFA165_transitionS = {
            "\1\1\4\4\26\uffff\2\4\13\uffff\1\4\3\uffff\1\3\6\uffff\1\4\4\uffff\6\4\15\uffff\1\4\6\uffff\1\2\3\uffff\1\4\27\uffff\1\4\2\uffff\1\4\1\uffff\1\4\3\uffff\11\4\1\uffff\1\4\12\uffff\1\4",
            "\1\uffff",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA165_eot = DFA.unpackEncodedString(DFA165_eotS);
    static final short[] DFA165_eof = DFA.unpackEncodedString(DFA165_eofS);
    static final char[] DFA165_min = DFA.unpackEncodedStringToUnsignedChars(DFA165_minS);
    static final char[] DFA165_max = DFA.unpackEncodedStringToUnsignedChars(DFA165_maxS);
    static final short[] DFA165_accept = DFA.unpackEncodedString(DFA165_acceptS);
    static final short[] DFA165_special = DFA.unpackEncodedString(DFA165_specialS);
    static final short[][] DFA165_transition;

    static {
        int numStates = DFA165_transitionS.length;
        DFA165_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA165_transition[i] = DFA.unpackEncodedString(DFA165_transitionS[i]);
        }
    }

    class DFA165 extends DFA {

        public DFA165(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 165;
            this.eot = DFA165_eot;
            this.eof = DFA165_eof;
            this.min = DFA165_min;
            this.max = DFA165_max;
            this.accept = DFA165_accept;
            this.special = DFA165_special;
            this.transition = DFA165_transition;
        }
        public String getDescription() {
            return "23320:1: ( rule__XSwitchExpression__Group_2_1_0__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA165_1 = input.LA(1);

                         
                        int index165_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred246_InternalCommonGrammar()) ) {s = 3;}

                        else if ( (true) ) {s = 4;}

                         
                        input.seek(index165_1);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA165_2 = input.LA(1);

                         
                        int index165_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred246_InternalCommonGrammar()) ) {s = 3;}

                        else if ( (true) ) {s = 4;}

                         
                        input.seek(index165_2);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 165, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA178_eotS =
        "\116\uffff";
    static final String DFA178_eofS =
        "\1\2\115\uffff";
    static final String DFA178_minS =
        "\1\4\1\0\114\uffff";
    static final String DFA178_maxS =
        "\1\u0090\1\0\114\uffff";
    static final String DFA178_acceptS =
        "\2\uffff\1\2\112\uffff\1\1";
    static final String DFA178_specialS =
        "\1\uffff\1\0\114\uffff}>";
    static final String[] DFA178_transitionS = {
            "\5\2\5\uffff\2\2\16\uffff\44\2\15\uffff\2\2\1\uffff\1\2\3\uffff\1\1\1\2\2\uffff\1\2\2\uffff\1\2\23\uffff\26\2\6\uffff\2\2\1\uffff\1\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA178_eot = DFA.unpackEncodedString(DFA178_eotS);
    static final short[] DFA178_eof = DFA.unpackEncodedString(DFA178_eofS);
    static final char[] DFA178_min = DFA.unpackEncodedStringToUnsignedChars(DFA178_minS);
    static final char[] DFA178_max = DFA.unpackEncodedStringToUnsignedChars(DFA178_maxS);
    static final short[] DFA178_accept = DFA.unpackEncodedString(DFA178_acceptS);
    static final short[] DFA178_special = DFA.unpackEncodedString(DFA178_specialS);
    static final short[][] DFA178_transition;

    static {
        int numStates = DFA178_transitionS.length;
        DFA178_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA178_transition[i] = DFA.unpackEncodedString(DFA178_transitionS[i]);
        }
    }

    class DFA178 extends DFA {

        public DFA178(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 178;
            this.eot = DFA178_eot;
            this.eof = DFA178_eof;
            this.min = DFA178_min;
            this.max = DFA178_max;
            this.accept = DFA178_accept;
            this.special = DFA178_special;
            this.transition = DFA178_transition;
        }
        public String getDescription() {
            return "25808:1: ( rule__XFeatureCall__Group_3__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA178_1 = input.LA(1);

                         
                        int index178_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred259_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index178_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 178, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA179_eotS =
        "\116\uffff";
    static final String DFA179_eofS =
        "\1\2\115\uffff";
    static final String DFA179_minS =
        "\1\4\1\0\114\uffff";
    static final String DFA179_maxS =
        "\1\u0090\1\0\114\uffff";
    static final String DFA179_acceptS =
        "\2\uffff\1\2\112\uffff\1\1";
    static final String DFA179_specialS =
        "\1\uffff\1\0\114\uffff}>";
    static final String[] DFA179_transitionS = {
            "\5\2\5\uffff\2\2\16\uffff\44\2\15\uffff\2\2\1\uffff\1\2\3\uffff\2\2\2\uffff\1\1\2\uffff\1\2\23\uffff\26\2\6\uffff\2\2\1\uffff\1\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA179_eot = DFA.unpackEncodedString(DFA179_eotS);
    static final short[] DFA179_eof = DFA.unpackEncodedString(DFA179_eofS);
    static final char[] DFA179_min = DFA.unpackEncodedStringToUnsignedChars(DFA179_minS);
    static final char[] DFA179_max = DFA.unpackEncodedStringToUnsignedChars(DFA179_maxS);
    static final short[] DFA179_accept = DFA.unpackEncodedString(DFA179_acceptS);
    static final short[] DFA179_special = DFA.unpackEncodedString(DFA179_specialS);
    static final short[][] DFA179_transition;

    static {
        int numStates = DFA179_transitionS.length;
        DFA179_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA179_transition[i] = DFA.unpackEncodedString(DFA179_transitionS[i]);
        }
    }

    class DFA179 extends DFA {

        public DFA179(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 179;
            this.eot = DFA179_eot;
            this.eof = DFA179_eof;
            this.min = DFA179_min;
            this.max = DFA179_max;
            this.accept = DFA179_accept;
            this.special = DFA179_special;
            this.transition = DFA179_transition;
        }
        public String getDescription() {
            return "25836:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA179_1 = input.LA(1);

                         
                        int index179_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred260_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index179_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 179, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA183_eotS =
        "\116\uffff";
    static final String DFA183_eofS =
        "\1\2\115\uffff";
    static final String DFA183_minS =
        "\1\4\1\0\114\uffff";
    static final String DFA183_maxS =
        "\1\u0090\1\0\114\uffff";
    static final String DFA183_acceptS =
        "\2\uffff\1\2\112\uffff\1\1";
    static final String DFA183_specialS =
        "\1\uffff\1\0\114\uffff}>";
    static final String[] DFA183_transitionS = {
            "\5\2\5\uffff\2\2\16\uffff\16\2\1\1\25\2\15\uffff\2\2\1\uffff\1\2\3\uffff\2\2\2\uffff\1\2\2\uffff\1\2\23\uffff\26\2\6\uffff\2\2\1\uffff\1\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA183_eot = DFA.unpackEncodedString(DFA183_eotS);
    static final short[] DFA183_eof = DFA.unpackEncodedString(DFA183_eofS);
    static final char[] DFA183_min = DFA.unpackEncodedStringToUnsignedChars(DFA183_minS);
    static final char[] DFA183_max = DFA.unpackEncodedStringToUnsignedChars(DFA183_maxS);
    static final short[] DFA183_accept = DFA.unpackEncodedString(DFA183_acceptS);
    static final short[] DFA183_special = DFA.unpackEncodedString(DFA183_specialS);
    static final short[][] DFA183_transition;

    static {
        int numStates = DFA183_transitionS.length;
        DFA183_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA183_transition[i] = DFA.unpackEncodedString(DFA183_transitionS[i]);
        }
    }

    class DFA183 extends DFA {

        public DFA183(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 183;
            this.eot = DFA183_eot;
            this.eof = DFA183_eof;
            this.min = DFA183_min;
            this.max = DFA183_max;
            this.accept = DFA183_accept;
            this.special = DFA183_special;
            this.transition = DFA183_transition;
        }
        public String getDescription() {
            return "26374:1: ( rule__XConstructorCall__Group_3__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA183_1 = input.LA(1);

                         
                        int index183_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred264_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index183_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 183, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA184_eotS =
        "\116\uffff";
    static final String DFA184_eofS =
        "\1\2\115\uffff";
    static final String DFA184_minS =
        "\1\4\1\0\114\uffff";
    static final String DFA184_maxS =
        "\1\u0090\1\0\114\uffff";
    static final String DFA184_acceptS =
        "\2\uffff\1\2\112\uffff\1\1";
    static final String DFA184_specialS =
        "\1\uffff\1\0\114\uffff}>";
    static final String[] DFA184_transitionS = {
            "\5\2\5\uffff\2\2\16\uffff\44\2\15\uffff\2\2\1\uffff\1\2\3\uffff\1\1\1\2\2\uffff\1\2\2\uffff\1\2\23\uffff\26\2\6\uffff\2\2\1\uffff\1\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA184_eot = DFA.unpackEncodedString(DFA184_eotS);
    static final short[] DFA184_eof = DFA.unpackEncodedString(DFA184_eofS);
    static final char[] DFA184_min = DFA.unpackEncodedStringToUnsignedChars(DFA184_minS);
    static final char[] DFA184_max = DFA.unpackEncodedStringToUnsignedChars(DFA184_maxS);
    static final short[] DFA184_accept = DFA.unpackEncodedString(DFA184_acceptS);
    static final short[] DFA184_special = DFA.unpackEncodedString(DFA184_specialS);
    static final short[][] DFA184_transition;

    static {
        int numStates = DFA184_transitionS.length;
        DFA184_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA184_transition[i] = DFA.unpackEncodedString(DFA184_transitionS[i]);
        }
    }

    class DFA184 extends DFA {

        public DFA184(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 184;
            this.eot = DFA184_eot;
            this.eof = DFA184_eof;
            this.min = DFA184_min;
            this.max = DFA184_max;
            this.accept = DFA184_accept;
            this.special = DFA184_special;
            this.transition = DFA184_transition;
        }
        public String getDescription() {
            return "26403:1: ( rule__XConstructorCall__Group_4__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA184_1 = input.LA(1);

                         
                        int index184_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred265_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index184_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 184, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA185_eotS =
        "\116\uffff";
    static final String DFA185_eofS =
        "\1\2\115\uffff";
    static final String DFA185_minS =
        "\1\4\1\0\114\uffff";
    static final String DFA185_maxS =
        "\1\u0090\1\0\114\uffff";
    static final String DFA185_acceptS =
        "\2\uffff\1\2\112\uffff\1\1";
    static final String DFA185_specialS =
        "\1\uffff\1\0\114\uffff}>";
    static final String[] DFA185_transitionS = {
            "\5\2\5\uffff\2\2\16\uffff\44\2\15\uffff\2\2\1\uffff\1\2\3\uffff\2\2\2\uffff\1\1\2\uffff\1\2\23\uffff\26\2\6\uffff\2\2\1\uffff\1\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA185_eot = DFA.unpackEncodedString(DFA185_eotS);
    static final short[] DFA185_eof = DFA.unpackEncodedString(DFA185_eofS);
    static final char[] DFA185_min = DFA.unpackEncodedStringToUnsignedChars(DFA185_minS);
    static final char[] DFA185_max = DFA.unpackEncodedStringToUnsignedChars(DFA185_maxS);
    static final short[] DFA185_accept = DFA.unpackEncodedString(DFA185_acceptS);
    static final short[] DFA185_special = DFA.unpackEncodedString(DFA185_specialS);
    static final short[][] DFA185_transition;

    static {
        int numStates = DFA185_transitionS.length;
        DFA185_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA185_transition[i] = DFA.unpackEncodedString(DFA185_transitionS[i]);
        }
    }

    class DFA185 extends DFA {

        public DFA185(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 185;
            this.eot = DFA185_eot;
            this.eof = DFA185_eof;
            this.min = DFA185_min;
            this.max = DFA185_max;
            this.accept = DFA185_accept;
            this.special = DFA185_special;
            this.transition = DFA185_transition;
        }
        public String getDescription() {
            return "26431:1: ( rule__XConstructorCall__ArgumentsAssignment_5 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA185_1 = input.LA(1);

                         
                        int index185_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred266_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index185_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 185, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA190_eotS =
        "\116\uffff";
    static final String DFA190_eofS =
        "\1\41\115\uffff";
    static final String DFA190_minS =
        "\1\4\40\0\55\uffff";
    static final String DFA190_maxS =
        "\1\u0090\40\0\55\uffff";
    static final String DFA190_acceptS =
        "\41\uffff\1\2\53\uffff\1\1";
    static final String DFA190_specialS =
        "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37\55\uffff}>";
    static final String[] DFA190_transitionS = {
            "\1\1\1\23\1\24\1\25\1\27\5\uffff\2\41\16\uffff\1\41\1\10\1\7\13\41\1\15\12\41\1\6\4\41\1\2\1\3\1\4\1\5\1\16\1\21\15\uffff\1\12\1\41\1\uffff\1\41\3\uffff\1\40\1\41\2\uffff\1\20\2\uffff\1\41\23\uffff\1\41\1\17\2\41\1\31\1\41\1\13\3\41\1\32\1\33\1\34\1\11\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41\6\uffff\2\41\1\uffff\1\22",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA190_eot = DFA.unpackEncodedString(DFA190_eotS);
    static final short[] DFA190_eof = DFA.unpackEncodedString(DFA190_eofS);
    static final char[] DFA190_min = DFA.unpackEncodedStringToUnsignedChars(DFA190_minS);
    static final char[] DFA190_max = DFA.unpackEncodedStringToUnsignedChars(DFA190_maxS);
    static final short[] DFA190_accept = DFA.unpackEncodedString(DFA190_acceptS);
    static final short[] DFA190_special = DFA.unpackEncodedString(DFA190_specialS);
    static final short[][] DFA190_transition;

    static {
        int numStates = DFA190_transitionS.length;
        DFA190_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA190_transition[i] = DFA.unpackEncodedString(DFA190_transitionS[i]);
        }
    }

    class DFA190 extends DFA {

        public DFA190(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 190;
            this.eot = DFA190_eot;
            this.eof = DFA190_eof;
            this.min = DFA190_min;
            this.max = DFA190_max;
            this.accept = DFA190_accept;
            this.special = DFA190_special;
            this.transition = DFA190_transition;
        }
        public String getDescription() {
            return "27484:1: ( rule__XReturnExpression__ExpressionAssignment_2 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA190_1 = input.LA(1);

                         
                        int index190_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_1);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA190_2 = input.LA(1);

                         
                        int index190_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_2);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA190_3 = input.LA(1);

                         
                        int index190_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_3);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA190_4 = input.LA(1);

                         
                        int index190_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_4);
                        if ( s>=0 ) return s;
                        break;
                    case 4 : 
                        int LA190_5 = input.LA(1);

                         
                        int index190_5 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_5);
                        if ( s>=0 ) return s;
                        break;
                    case 5 : 
                        int LA190_6 = input.LA(1);

                         
                        int index190_6 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_6);
                        if ( s>=0 ) return s;
                        break;
                    case 6 : 
                        int LA190_7 = input.LA(1);

                         
                        int index190_7 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_7);
                        if ( s>=0 ) return s;
                        break;
                    case 7 : 
                        int LA190_8 = input.LA(1);

                         
                        int index190_8 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_8);
                        if ( s>=0 ) return s;
                        break;
                    case 8 : 
                        int LA190_9 = input.LA(1);

                         
                        int index190_9 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_9);
                        if ( s>=0 ) return s;
                        break;
                    case 9 : 
                        int LA190_10 = input.LA(1);

                         
                        int index190_10 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_10);
                        if ( s>=0 ) return s;
                        break;
                    case 10 : 
                        int LA190_11 = input.LA(1);

                         
                        int index190_11 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_11);
                        if ( s>=0 ) return s;
                        break;
                    case 11 : 
                        int LA190_12 = input.LA(1);

                         
                        int index190_12 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_12);
                        if ( s>=0 ) return s;
                        break;
                    case 12 : 
                        int LA190_13 = input.LA(1);

                         
                        int index190_13 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_13);
                        if ( s>=0 ) return s;
                        break;
                    case 13 : 
                        int LA190_14 = input.LA(1);

                         
                        int index190_14 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_14);
                        if ( s>=0 ) return s;
                        break;
                    case 14 : 
                        int LA190_15 = input.LA(1);

                         
                        int index190_15 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_15);
                        if ( s>=0 ) return s;
                        break;
                    case 15 : 
                        int LA190_16 = input.LA(1);

                         
                        int index190_16 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_16);
                        if ( s>=0 ) return s;
                        break;
                    case 16 : 
                        int LA190_17 = input.LA(1);

                         
                        int index190_17 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_17);
                        if ( s>=0 ) return s;
                        break;
                    case 17 : 
                        int LA190_18 = input.LA(1);

                         
                        int index190_18 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_18);
                        if ( s>=0 ) return s;
                        break;
                    case 18 : 
                        int LA190_19 = input.LA(1);

                         
                        int index190_19 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_19);
                        if ( s>=0 ) return s;
                        break;
                    case 19 : 
                        int LA190_20 = input.LA(1);

                         
                        int index190_20 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_20);
                        if ( s>=0 ) return s;
                        break;
                    case 20 : 
                        int LA190_21 = input.LA(1);

                         
                        int index190_21 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_21);
                        if ( s>=0 ) return s;
                        break;
                    case 21 : 
                        int LA190_22 = input.LA(1);

                         
                        int index190_22 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_22);
                        if ( s>=0 ) return s;
                        break;
                    case 22 : 
                        int LA190_23 = input.LA(1);

                         
                        int index190_23 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_23);
                        if ( s>=0 ) return s;
                        break;
                    case 23 : 
                        int LA190_24 = input.LA(1);

                         
                        int index190_24 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_24);
                        if ( s>=0 ) return s;
                        break;
                    case 24 : 
                        int LA190_25 = input.LA(1);

                         
                        int index190_25 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_25);
                        if ( s>=0 ) return s;
                        break;
                    case 25 : 
                        int LA190_26 = input.LA(1);

                         
                        int index190_26 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_26);
                        if ( s>=0 ) return s;
                        break;
                    case 26 : 
                        int LA190_27 = input.LA(1);

                         
                        int index190_27 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_27);
                        if ( s>=0 ) return s;
                        break;
                    case 27 : 
                        int LA190_28 = input.LA(1);

                         
                        int index190_28 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_28);
                        if ( s>=0 ) return s;
                        break;
                    case 28 : 
                        int LA190_29 = input.LA(1);

                         
                        int index190_29 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_29);
                        if ( s>=0 ) return s;
                        break;
                    case 29 : 
                        int LA190_30 = input.LA(1);

                         
                        int index190_30 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_30);
                        if ( s>=0 ) return s;
                        break;
                    case 30 : 
                        int LA190_31 = input.LA(1);

                         
                        int index190_31 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_31);
                        if ( s>=0 ) return s;
                        break;
                    case 31 : 
                        int LA190_32 = input.LA(1);

                         
                        int index190_32 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred271_InternalCommonGrammar()) ) {s = 77;}

                        else if ( (true) ) {s = 33;}

                         
                        input.seek(index190_32);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 190, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA199_eotS =
        "\140\uffff";
    static final String DFA199_eofS =
        "\1\2\137\uffff";
    static final String DFA199_minS =
        "\1\4\1\0\136\uffff";
    static final String DFA199_maxS =
        "\1\u0090\1\0\136\uffff";
    static final String DFA199_acceptS =
        "\2\uffff\1\2\134\uffff\1\1";
    static final String DFA199_specialS =
        "\1\uffff\1\0\136\uffff}>";
    static final String[] DFA199_transitionS = {
            "\5\2\5\uffff\2\2\16\uffff\16\2\1\1\25\2\15\uffff\5\2\1\uffff\3\2\1\uffff\2\2\2\uffff\1\2\1\uffff\4\2\2\uffff\7\2\4\uffff\31\2\4\uffff\2\2\1\uffff\1\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA199_eot = DFA.unpackEncodedString(DFA199_eotS);
    static final short[] DFA199_eof = DFA.unpackEncodedString(DFA199_eofS);
    static final char[] DFA199_min = DFA.unpackEncodedStringToUnsignedChars(DFA199_minS);
    static final char[] DFA199_max = DFA.unpackEncodedStringToUnsignedChars(DFA199_maxS);
    static final short[] DFA199_accept = DFA.unpackEncodedString(DFA199_acceptS);
    static final short[] DFA199_special = DFA.unpackEncodedString(DFA199_specialS);
    static final short[][] DFA199_transition;

    static {
        int numStates = DFA199_transitionS.length;
        DFA199_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA199_transition[i] = DFA.unpackEncodedString(DFA199_transitionS[i]);
        }
    }

    class DFA199 extends DFA {

        public DFA199(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 199;
            this.eot = DFA199_eot;
            this.eof = DFA199_eof;
            this.min = DFA199_min;
            this.max = DFA199_max;
            this.accept = DFA199_accept;
            this.special = DFA199_special;
            this.transition = DFA199_transition;
        }
        public String getDescription() {
            return "29063:1: ( rule__JvmParameterizedTypeReference__Group_1__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA199_1 = input.LA(1);

                         
                        int index199_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred280_InternalCommonGrammar()) ) {s = 95;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index199_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 199, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA202_eotS =
        "\140\uffff";
    static final String DFA202_eofS =
        "\1\2\137\uffff";
    static final String DFA202_minS =
        "\1\4\1\0\136\uffff";
    static final String DFA202_maxS =
        "\1\u0090\1\0\136\uffff";
    static final String DFA202_acceptS =
        "\2\uffff\1\2\134\uffff\1\1";
    static final String DFA202_specialS =
        "\1\uffff\1\0\136\uffff}>";
    static final String[] DFA202_transitionS = {
            "\5\2\5\uffff\2\2\16\uffff\16\2\1\1\25\2\15\uffff\5\2\1\uffff\3\2\1\uffff\2\2\2\uffff\1\2\1\uffff\4\2\2\uffff\7\2\4\uffff\31\2\4\uffff\2\2\1\uffff\1\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA202_eot = DFA.unpackEncodedString(DFA202_eotS);
    static final short[] DFA202_eof = DFA.unpackEncodedString(DFA202_eofS);
    static final char[] DFA202_min = DFA.unpackEncodedStringToUnsignedChars(DFA202_minS);
    static final char[] DFA202_max = DFA.unpackEncodedStringToUnsignedChars(DFA202_maxS);
    static final short[] DFA202_accept = DFA.unpackEncodedString(DFA202_acceptS);
    static final short[] DFA202_special = DFA.unpackEncodedString(DFA202_specialS);
    static final short[][] DFA202_transition;

    static {
        int numStates = DFA202_transitionS.length;
        DFA202_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA202_transition[i] = DFA.unpackEncodedString(DFA202_transitionS[i]);
        }
    }

    class DFA202 extends DFA {

        public DFA202(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 202;
            this.eot = DFA202_eot;
            this.eof = DFA202_eof;
            this.min = DFA202_min;
            this.max = DFA202_max;
            this.accept = DFA202_accept;
            this.special = DFA202_special;
            this.transition = DFA202_transition;
        }
        public String getDescription() {
            return "29374:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA202_1 = input.LA(1);

                         
                        int index202_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred283_InternalCommonGrammar()) ) {s = 95;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index202_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 202, _s, input);
            error(nvae);
            throw nvae;
        }
    }
 

    
    protected static class FollowSets000 {
        public static final BitSet FOLLOW_ruleTypedPackage_in_entryRuleTypedPackage67 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleTypedPackage74 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__TypedPackage__Group__0_in_ruleTypedPackage100 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleType_in_entryRuleType127 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleType134 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Type__Alternatives_in_ruleType160 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleClass_in_entryRuleClass187 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleClass194 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Class__Group__0_in_ruleClass220 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleImport_in_entryRuleImport247 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleImport254 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Import__Group__0_in_ruleImport280 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDataType_in_entryRuleDataType307 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleDataType314 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group__0_in_ruleDataType340 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDataTypeConstraint_in_entryRuleDataTypeConstraint369 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleDataTypeConstraint376 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataTypeConstraint__Alternatives_in_ruleDataTypeConstraint402 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDateConstraint_in_entryRuleDateConstraint429 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleDateConstraint436 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DateConstraint__Alternatives_in_ruleDateConstraint462 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleBlobTypeConstraint_in_entryRuleBlobTypeConstraint489 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleBlobTypeConstraint496 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__BlobTypeConstraint__Alternatives_in_ruleBlobTypeConstraint522 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCAssertFalse_in_entryRuleDtCAssertFalse549 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleDtCAssertFalse556 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group__0_in_ruleDtCAssertFalse582 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCAssertTrue_in_entryRuleDtCAssertTrue609 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleDtCAssertTrue616 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group__0_in_ruleDtCAssertTrue642 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCDecimalMax_in_entryRuleDtCDecimalMax669 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleDtCDecimalMax676 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group__0_in_ruleDtCDecimalMax702 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCDecimalMin_in_entryRuleDtCDecimalMin729 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleDtCDecimalMin736 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group__0_in_ruleDtCDecimalMin762 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCDigits_in_entryRuleDtCDigits789 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleDtCDigits796 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group__0_in_ruleDtCDigits822 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCFuture_in_entryRuleDtCFuture849 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleDtCFuture856 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group__0_in_ruleDtCFuture882 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCPast_in_entryRuleDtCPast909 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleDtCPast916 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__Group__0_in_ruleDtCPast942 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCNumericMax_in_entryRuleDtCNumericMax969 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleDtCNumericMax976 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group__0_in_ruleDtCNumericMax1002 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCNumericMin_in_entryRuleDtCNumericMin1029 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleDtCNumericMin1036 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group__0_in_ruleDtCNumericMin1062 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCNotNull_in_entryRuleDtCNotNull1089 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleDtCNotNull1096 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group__0_in_ruleDtCNotNull1122 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCNull_in_entryRuleDtCNull1149 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleDtCNull1156 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__Group__0_in_ruleDtCNull1182 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCRegEx_in_entryRuleDtCRegEx1209 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleDtCRegEx1216 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group__0_in_ruleDtCRegEx1242 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCSize_in_entryRuleDtCSize1269 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleDtCSize1276 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group__0_in_ruleDtCSize1302 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleScalarType_in_entryRuleScalarType1329 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleScalarType1336 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__ScalarType__Alternatives_in_ruleScalarType1362 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleEnum_in_entryRuleEnum1391 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleEnum1398 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum__Group__0_in_ruleEnum1424 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleEnumLiteral_in_entryRuleEnumLiteral1451 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleEnumLiteral1458 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__EnumLiteral__Group__0_in_ruleEnumLiteral1484 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleAnnotationDef_in_entryRuleAnnotationDef1511 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleAnnotationDef1518 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__AnnotationDef__Group__0_in_ruleAnnotationDef1544 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleResultFilter_in_entryRuleResultFilter1573 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleResultFilter1580 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleAttributeMatchingConstraint_in_ruleResultFilter1606 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleAttributeMatchingConstraint_in_entryRuleAttributeMatchingConstraint1632 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleAttributeMatchingConstraint1639 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__AttributeMatchingConstraint__Group__0_in_ruleAttributeMatchingConstraint1665 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleKeyAndValue_in_entryRuleKeyAndValue1692 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleKeyAndValue1699 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__KeyAndValue__Group__0_in_ruleKeyAndValue1725 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleLQualifiedNameWithWildCard_in_entryRuleLQualifiedNameWithWildCard1752 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleLQualifiedNameWithWildCard1759 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__LQualifiedNameWithWildCard__Group__0_in_ruleLQualifiedNameWithWildCard1785 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleValidIDWithKeywords_in_entryRuleValidIDWithKeywords1816 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleValidIDWithKeywords1823 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__ValidIDWithKeywords__Alternatives_in_ruleValidIDWithKeywords1849 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleLInt_in_entryRuleLInt1880 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleLInt1887 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__LInt__Group__0_in_ruleLInt1913 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleLDecimal_in_entryRuleLDecimal1940 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleLDecimal1947 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__LDecimal__Group__0_in_ruleLDecimal1973 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAnnotation_in_entryRuleXAnnotation2000 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXAnnotation2007 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group__0_in_ruleXAnnotation2033 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAnnotationElementValuePair_in_entryRuleXAnnotationElementValuePair2060 = new BitSet(new long[]{0x0000000000000000L});
    }

    protected static class FollowSets001 {
        public static final BitSet FOLLOW_EOF_in_entryRuleXAnnotationElementValuePair2067 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__Group__0_in_ruleXAnnotationElementValuePair2093 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAnnotationElementValueOrCommaList_in_entryRuleXAnnotationElementValueOrCommaList2120 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXAnnotationElementValueOrCommaList2127 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Alternatives_in_ruleXAnnotationElementValueOrCommaList2153 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAnnotationElementValue_in_entryRuleXAnnotationElementValue2180 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXAnnotationElementValue2187 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Alternatives_in_ruleXAnnotationElementValue2213 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAnnotationOrExpression_in_entryRuleXAnnotationOrExpression2240 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXAnnotationOrExpression2247 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationOrExpression__Alternatives_in_ruleXAnnotationOrExpression2273 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXExpression_in_entryRuleXExpression2300 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXExpression2307 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAssignment_in_ruleXExpression2333 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAssignment_in_entryRuleXAssignment2359 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXAssignment2366 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Alternatives_in_ruleXAssignment2392 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpSingleAssign_in_entryRuleOpSingleAssign2419 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpSingleAssign2426 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_ruleOpSingleAssign2453 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpMultiAssign_in_entryRuleOpMultiAssign2481 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpMultiAssign2488 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Alternatives_in_ruleOpMultiAssign2514 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXOrExpression_in_entryRuleXOrExpression2541 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXOrExpression2548 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group__0_in_ruleXOrExpression2574 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpOr_in_entryRuleOpOr2601 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpOr2608 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_14_in_ruleOpOr2635 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAndExpression_in_entryRuleXAndExpression2663 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXAndExpression2670 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group__0_in_ruleXAndExpression2696 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpAnd_in_entryRuleOpAnd2723 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpAnd2730 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_15_in_ruleOpAnd2757 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXEqualityExpression_in_entryRuleXEqualityExpression2785 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXEqualityExpression2792 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group__0_in_ruleXEqualityExpression2818 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpEquality_in_entryRuleOpEquality2845 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpEquality2852 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpEquality__Alternatives_in_ruleOpEquality2878 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXRelationalExpression_in_entryRuleXRelationalExpression2905 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXRelationalExpression2912 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group__0_in_ruleXRelationalExpression2938 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpCompare_in_entryRuleOpCompare2965 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpCompare2972 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpCompare__Alternatives_in_ruleOpCompare2998 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXOtherOperatorExpression_in_entryRuleXOtherOperatorExpression3025 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXOtherOperatorExpression3032 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group__0_in_ruleXOtherOperatorExpression3058 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpOther_in_entryRuleOpOther3085 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpOther3092 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Alternatives_in_ruleOpOther3118 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAdditiveExpression_in_entryRuleXAdditiveExpression3145 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXAdditiveExpression3152 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAdditiveExpression__Group__0_in_ruleXAdditiveExpression3178 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpAdd_in_entryRuleOpAdd3205 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpAdd3212 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpAdd__Alternatives_in_ruleOpAdd3238 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXMultiplicativeExpression_in_entryRuleXMultiplicativeExpression3265 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXMultiplicativeExpression3272 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group__0_in_ruleXMultiplicativeExpression3298 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpMulti_in_entryRuleOpMulti3325 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpMulti3332 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpMulti__Alternatives_in_ruleOpMulti3358 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXUnaryOperation_in_entryRuleXUnaryOperation3385 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXUnaryOperation3392 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XUnaryOperation__Alternatives_in_ruleXUnaryOperation3418 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpUnary_in_entryRuleOpUnary3445 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpUnary3452 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpUnary__Alternatives_in_ruleOpUnary3478 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXCastedExpression_in_entryRuleXCastedExpression3505 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXCastedExpression3512 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCastedExpression__Group__0_in_ruleXCastedExpression3538 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXPostfixOperation_in_entryRuleXPostfixOperation3565 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXPostfixOperation3572 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XPostfixOperation__Group__0_in_ruleXPostfixOperation3598 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpPostfix_in_entryRuleOpPostfix3625 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpPostfix3632 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpPostfix__Alternatives_in_ruleOpPostfix3658 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXMemberFeatureCall_in_entryRuleXMemberFeatureCall3685 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXMemberFeatureCall3692 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group__0_in_ruleXMemberFeatureCall3718 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXPrimaryExpression_in_entryRuleXPrimaryExpression3745 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXPrimaryExpression3752 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XPrimaryExpression__Alternatives_in_ruleXPrimaryExpression3778 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXLiteral_in_entryRuleXLiteral3805 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXLiteral3812 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XLiteral__Alternatives_in_ruleXLiteral3838 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXCollectionLiteral_in_entryRuleXCollectionLiteral3865 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXCollectionLiteral3872 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCollectionLiteral__Alternatives_in_ruleXCollectionLiteral3898 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXSetLiteral_in_entryRuleXSetLiteral3925 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXSetLiteral3932 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSetLiteral__Group__0_in_ruleXSetLiteral3958 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXListLiteral_in_entryRuleXListLiteral3985 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXListLiteral3992 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XListLiteral__Group__0_in_ruleXListLiteral4018 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXClosure_in_entryRuleXClosure4045 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXClosure4052 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets002 {
        public static final BitSet FOLLOW_rule__XClosure__Group__0_in_ruleXClosure4078 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXExpressionInClosure_in_entryRuleXExpressionInClosure4105 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXExpressionInClosure4112 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XExpressionInClosure__Group__0_in_ruleXExpressionInClosure4138 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXShortClosure_in_entryRuleXShortClosure4165 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXShortClosure4172 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XShortClosure__Group__0_in_ruleXShortClosure4198 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXParenthesizedExpression_in_entryRuleXParenthesizedExpression4225 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXParenthesizedExpression4232 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XParenthesizedExpression__Group__0_in_ruleXParenthesizedExpression4258 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXIfExpression_in_entryRuleXIfExpression4285 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXIfExpression4292 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XIfExpression__Group__0_in_ruleXIfExpression4318 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXSwitchExpression_in_entryRuleXSwitchExpression4345 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXSwitchExpression4352 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group__0_in_ruleXSwitchExpression4378 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXCasePart_in_entryRuleXCasePart4405 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXCasePart4412 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCasePart__Group__0_in_ruleXCasePart4438 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXForLoopExpression_in_entryRuleXForLoopExpression4465 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXForLoopExpression4472 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group__0_in_ruleXForLoopExpression4498 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXBasicForLoopExpression_in_entryRuleXBasicForLoopExpression4525 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXBasicForLoopExpression4532 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__0_in_ruleXBasicForLoopExpression4558 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXWhileExpression_in_entryRuleXWhileExpression4585 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXWhileExpression4592 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XWhileExpression__Group__0_in_ruleXWhileExpression4618 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXDoWhileExpression_in_entryRuleXDoWhileExpression4645 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXDoWhileExpression4652 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__0_in_ruleXDoWhileExpression4678 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXBlockExpression_in_entryRuleXBlockExpression4705 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXBlockExpression4712 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBlockExpression__Group__0_in_ruleXBlockExpression4738 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXExpressionOrVarDeclaration_in_entryRuleXExpressionOrVarDeclaration4765 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXExpressionOrVarDeclaration4772 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XExpressionOrVarDeclaration__Alternatives_in_ruleXExpressionOrVarDeclaration4798 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXVariableDeclaration_in_entryRuleXVariableDeclaration4825 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXVariableDeclaration4832 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XVariableDeclaration__Group__0_in_ruleXVariableDeclaration4858 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmFormalParameter_in_entryRuleJvmFormalParameter4885 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleJvmFormalParameter4892 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmFormalParameter__Group__0_in_ruleJvmFormalParameter4918 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleFullJvmFormalParameter_in_entryRuleFullJvmFormalParameter4945 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleFullJvmFormalParameter4952 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__FullJvmFormalParameter__Group__0_in_ruleFullJvmFormalParameter4978 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXFeatureCall_in_entryRuleXFeatureCall5005 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXFeatureCall5012 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XFeatureCall__Group__0_in_ruleXFeatureCall5038 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleFeatureCallID_in_entryRuleFeatureCallID5065 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleFeatureCallID5072 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__FeatureCallID__Alternatives_in_ruleFeatureCallID5098 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleIdOrSuper_in_entryRuleIdOrSuper5125 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleIdOrSuper5132 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__IdOrSuper__Alternatives_in_ruleIdOrSuper5158 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXConstructorCall_in_entryRuleXConstructorCall5185 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXConstructorCall5192 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XConstructorCall__Group__0_in_ruleXConstructorCall5218 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXBooleanLiteral_in_entryRuleXBooleanLiteral5245 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXBooleanLiteral5252 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBooleanLiteral__Group__0_in_ruleXBooleanLiteral5278 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXNullLiteral_in_entryRuleXNullLiteral5305 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXNullLiteral5312 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XNullLiteral__Group__0_in_ruleXNullLiteral5338 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXNumberLiteral_in_entryRuleXNumberLiteral5365 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXNumberLiteral5372 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XNumberLiteral__Group__0_in_ruleXNumberLiteral5398 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXStringLiteral_in_entryRuleXStringLiteral5425 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXStringLiteral5432 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XStringLiteral__Group__0_in_ruleXStringLiteral5458 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXTypeLiteral_in_entryRuleXTypeLiteral5485 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXTypeLiteral5492 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XTypeLiteral__Group__0_in_ruleXTypeLiteral5518 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXThrowExpression_in_entryRuleXThrowExpression5545 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXThrowExpression5552 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XThrowExpression__Group__0_in_ruleXThrowExpression5578 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXReturnExpression_in_entryRuleXReturnExpression5605 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXReturnExpression5612 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XReturnExpression__Group__0_in_ruleXReturnExpression5638 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXTryCatchFinallyExpression_in_entryRuleXTryCatchFinallyExpression5665 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXTryCatchFinallyExpression5672 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group__0_in_ruleXTryCatchFinallyExpression5698 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXSynchronizedExpression_in_entryRuleXSynchronizedExpression5725 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXSynchronizedExpression5732 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSynchronizedExpression__Group__0_in_ruleXSynchronizedExpression5758 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXCatchClause_in_entryRuleXCatchClause5785 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXCatchClause5792 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCatchClause__Group__0_in_ruleXCatchClause5818 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName5845 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedName5852 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__QualifiedName__Group__0_in_ruleQualifiedName5878 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleNumber_in_entryRuleNumber5910 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleNumber5917 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Number__Alternatives_in_ruleNumber5947 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmTypeReference_in_entryRuleJvmTypeReference5976 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleJvmTypeReference5983 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmTypeReference__Alternatives_in_ruleJvmTypeReference6009 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleArrayBrackets_in_entryRuleArrayBrackets6036 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleArrayBrackets6043 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__ArrayBrackets__Group__0_in_ruleArrayBrackets6069 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets003 {
        public static final BitSet FOLLOW_ruleXFunctionTypeRef_in_entryRuleXFunctionTypeRef6096 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXFunctionTypeRef6103 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group__0_in_ruleXFunctionTypeRef6129 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmParameterizedTypeReference_in_entryRuleJvmParameterizedTypeReference6156 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleJvmParameterizedTypeReference6163 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__Group__0_in_ruleJvmParameterizedTypeReference6189 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmArgumentTypeReference_in_entryRuleJvmArgumentTypeReference6216 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleJvmArgumentTypeReference6223 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmArgumentTypeReference__Alternatives_in_ruleJvmArgumentTypeReference6249 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmWildcardTypeReference_in_entryRuleJvmWildcardTypeReference6276 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleJvmWildcardTypeReference6283 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmWildcardTypeReference__Group__0_in_ruleJvmWildcardTypeReference6309 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmUpperBound_in_entryRuleJvmUpperBound6336 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleJvmUpperBound6343 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmUpperBound__Group__0_in_ruleJvmUpperBound6369 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmUpperBoundAnded_in_entryRuleJvmUpperBoundAnded6396 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleJvmUpperBoundAnded6403 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmUpperBoundAnded__Group__0_in_ruleJvmUpperBoundAnded6429 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmLowerBound_in_entryRuleJvmLowerBound6456 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleJvmLowerBound6463 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmLowerBound__Group__0_in_ruleJvmLowerBound6489 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmLowerBoundAnded_in_entryRuleJvmLowerBoundAnded6516 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleJvmLowerBoundAnded6523 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmLowerBoundAnded__Group__0_in_ruleJvmLowerBoundAnded6549 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleQualifiedNameWithWildcard_in_entryRuleQualifiedNameWithWildcard6578 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedNameWithWildcard6585 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__QualifiedNameWithWildcard__Group__0_in_ruleQualifiedNameWithWildcard6611 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleValidID_in_entryRuleValidID6638 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleValidID6645 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_ruleValidID6671 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXImportDeclaration_in_entryRuleXImportDeclaration6699 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXImportDeclaration6706 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XImportDeclaration__Group__0_in_ruleXImportDeclaration6732 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleQualifiedNameInStaticImport_in_entryRuleQualifiedNameInStaticImport6759 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedNameInStaticImport6766 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__QualifiedNameInStaticImport__Group__0_in_ruleQualifiedNameInStaticImport6794 = new BitSet(new long[]{0x0000000000000012L});
        public static final BitSet FOLLOW_rule__QualifiedNameInStaticImport__Group__0_in_ruleQualifiedNameInStaticImport6806 = new BitSet(new long[]{0x0000000000000012L});
        public static final BitSet FOLLOW_rule__ConstraintSeverity__Alternatives_in_ruleConstraintSeverity6846 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DateType__Alternatives_in_ruleDateType6882 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__LVisibility__Alternatives_in_ruleLVisibility6918 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__LComparatorType__Alternatives_in_ruleLComparatorType6954 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__LowerBound__Alternatives_in_ruleLowerBound6990 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__UpperBound__Alternatives_in_ruleUpperBound7026 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleScalarType_in_rule__Type__Alternatives7061 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleClass_in_rule__Type__Alternatives7078 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0__0_in_rule__DataType__Alternatives_27110 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1__0_in_rule__DataType__Alternatives_27128 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_2__0_in_rule__DataType__Alternatives_27146 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCAssertFalse_in_rule__DataTypeConstraint__Alternatives7180 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCAssertTrue_in_rule__DataTypeConstraint__Alternatives7197 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCDecimalMax_in_rule__DataTypeConstraint__Alternatives7214 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCDecimalMin_in_rule__DataTypeConstraint__Alternatives7231 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCDigits_in_rule__DataTypeConstraint__Alternatives7248 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCNumericMax_in_rule__DataTypeConstraint__Alternatives7265 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCNumericMin_in_rule__DataTypeConstraint__Alternatives7282 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCNotNull_in_rule__DataTypeConstraint__Alternatives7299 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCNull_in_rule__DataTypeConstraint__Alternatives7316 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCRegEx_in_rule__DataTypeConstraint__Alternatives7333 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCSize_in_rule__DataTypeConstraint__Alternatives7350 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCFuture_in_rule__DateConstraint__Alternatives7382 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCPast_in_rule__DateConstraint__Alternatives7399 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCNotNull_in_rule__DateConstraint__Alternatives7416 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCNull_in_rule__DateConstraint__Alternatives7433 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCNotNull_in_rule__BlobTypeConstraint__Alternatives7465 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDtCNull_in_rule__BlobTypeConstraint__Alternatives7482 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleDataType_in_rule__ScalarType__Alternatives7514 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleEnum_in_rule__ScalarType__Alternatives7531 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__AttributeMatchingConstraint__MatchingValueAssignment_2_0_in_rule__AttributeMatchingConstraint__Alternatives_27563 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__AttributeMatchingConstraint__MatchingLiteralAssignment_2_1_in_rule__AttributeMatchingConstraint__Alternatives_27581 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_16_in_rule__ValidIDWithKeywords__Alternatives7615 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_17_in_rule__ValidIDWithKeywords__Alternatives7635 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_18_in_rule__ValidIDWithKeywords__Alternatives7655 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_19_in_rule__ValidIDWithKeywords__Alternatives7675 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_20_in_rule__ValidIDWithKeywords__Alternatives7695 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__ValidIDWithKeywords__Group_5__0_in_rule__ValidIDWithKeywords__Alternatives7714 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_21_in_rule__ValidIDWithKeywords__Alternatives7733 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_22_in_rule__ValidIDWithKeywords__Alternatives7753 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_23_in_rule__ValidIDWithKeywords__Alternatives7773 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_24_in_rule__ValidIDWithKeywords__Alternatives7793 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_25_in_rule__ValidIDWithKeywords__Alternatives7813 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_26_in_rule__ValidIDWithKeywords__Alternatives7833 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_27_in_rule__ValidIDWithKeywords__Alternatives7853 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_28_in_rule__ValidIDWithKeywords__Alternatives7873 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__ValidIDWithKeywords__Alternatives7893 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_30_in_rule__ValidIDWithKeywords__Alternatives7913 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__ValidIDWithKeywords__Alternatives7932 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_31_in_rule__LInt__Alternatives_07965 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_32_in_rule__LInt__Alternatives_07985 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3_1_0__0_in_rule__XAnnotation__Alternatives_3_18019 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__ValueAssignment_3_1_1_in_rule__XAnnotation__Alternatives_3_18037 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0__0_in_rule__XAnnotationElementValueOrCommaList__Alternatives8070 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1__0_in_rule__XAnnotationElementValueOrCommaList__Alternatives8088 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0__0_in_rule__XAnnotationElementValue__Alternatives8121 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAnnotationOrExpression_in_rule__XAnnotationElementValue__Alternatives8139 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAnnotation_in_rule__XAnnotationOrExpression__Alternatives8171 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXExpression_in_rule__XAnnotationOrExpression__Alternatives8188 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_0__0_in_rule__XAssignment__Alternatives8220 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1__0_in_rule__XAssignment__Alternatives8238 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_33_in_rule__OpMultiAssign__Alternatives8272 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_34_in_rule__OpMultiAssign__Alternatives8292 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets004 {
        public static final BitSet FOLLOW_35_in_rule__OpMultiAssign__Alternatives8312 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_36_in_rule__OpMultiAssign__Alternatives8332 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_37_in_rule__OpMultiAssign__Alternatives8352 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_5__0_in_rule__OpMultiAssign__Alternatives8371 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_6__0_in_rule__OpMultiAssign__Alternatives8389 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_38_in_rule__OpEquality__Alternatives8423 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_39_in_rule__OpEquality__Alternatives8443 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_40_in_rule__OpEquality__Alternatives8463 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_41_in_rule__OpEquality__Alternatives8483 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0__0_in_rule__XRelationalExpression__Alternatives_18517 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1__0_in_rule__XRelationalExpression__Alternatives_18535 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_42_in_rule__OpCompare__Alternatives8569 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpCompare__Group_1__0_in_rule__OpCompare__Alternatives8588 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__OpCompare__Alternatives8607 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_44_in_rule__OpCompare__Alternatives8627 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_45_in_rule__OpOther__Alternatives8662 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_46_in_rule__OpOther__Alternatives8682 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_2__0_in_rule__OpOther__Alternatives8701 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_47_in_rule__OpOther__Alternatives8720 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_48_in_rule__OpOther__Alternatives8740 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_5__0_in_rule__OpOther__Alternatives8759 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_6__0_in_rule__OpOther__Alternatives8777 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__OpOther__Alternatives8796 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_50_in_rule__OpOther__Alternatives8816 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_5_1_0__0_in_rule__OpOther__Alternatives_5_18850 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__OpOther__Alternatives_5_18869 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_6_1_0__0_in_rule__OpOther__Alternatives_6_18903 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_44_in_rule__OpOther__Alternatives_6_18922 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_48_in_rule__OpOther__Alternatives_6_18942 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_31_in_rule__OpAdd__Alternatives8977 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_32_in_rule__OpAdd__Alternatives8997 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__OpMulti__Alternatives9032 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_52_in_rule__OpMulti__Alternatives9052 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_53_in_rule__OpMulti__Alternatives9072 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_54_in_rule__OpMulti__Alternatives9092 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XUnaryOperation__Group_0__0_in_rule__XUnaryOperation__Alternatives9126 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXCastedExpression_in_rule__XUnaryOperation__Alternatives9144 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_55_in_rule__OpUnary__Alternatives9177 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_32_in_rule__OpUnary__Alternatives9197 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_31_in_rule__OpUnary__Alternatives9217 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_56_in_rule__OpPostfix__Alternatives9252 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_57_in_rule__OpPostfix__Alternatives9272 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0__0_in_rule__XMemberFeatureCall__Alternatives_19306 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__0_in_rule__XMemberFeatureCall__Alternatives_19324 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_58_in_rule__XMemberFeatureCall__Alternatives_1_0_0_0_19358 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1_in_rule__XMemberFeatureCall__Alternatives_1_0_0_0_19377 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_58_in_rule__XMemberFeatureCall__Alternatives_1_1_0_0_19411 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1_in_rule__XMemberFeatureCall__Alternatives_1_1_0_0_19430 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2_in_rule__XMemberFeatureCall__Alternatives_1_1_0_0_19448 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0_in_rule__XMemberFeatureCall__Alternatives_1_1_3_19481 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1__0_in_rule__XMemberFeatureCall__Alternatives_1_1_3_19499 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXConstructorCall_in_rule__XPrimaryExpression__Alternatives9532 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXBlockExpression_in_rule__XPrimaryExpression__Alternatives9549 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXSwitchExpression_in_rule__XPrimaryExpression__Alternatives9566 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXSynchronizedExpression_in_rule__XPrimaryExpression__Alternatives9584 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXFeatureCall_in_rule__XPrimaryExpression__Alternatives9602 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXLiteral_in_rule__XPrimaryExpression__Alternatives9619 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXIfExpression_in_rule__XPrimaryExpression__Alternatives9636 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXForLoopExpression_in_rule__XPrimaryExpression__Alternatives9654 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXBasicForLoopExpression_in_rule__XPrimaryExpression__Alternatives9672 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXWhileExpression_in_rule__XPrimaryExpression__Alternatives9689 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXDoWhileExpression_in_rule__XPrimaryExpression__Alternatives9706 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXThrowExpression_in_rule__XPrimaryExpression__Alternatives9723 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXReturnExpression_in_rule__XPrimaryExpression__Alternatives9740 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXTryCatchFinallyExpression_in_rule__XPrimaryExpression__Alternatives9757 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXParenthesizedExpression_in_rule__XPrimaryExpression__Alternatives9774 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXCollectionLiteral_in_rule__XLiteral__Alternatives9806 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXClosure_in_rule__XLiteral__Alternatives9824 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXBooleanLiteral_in_rule__XLiteral__Alternatives9842 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXNumberLiteral_in_rule__XLiteral__Alternatives9859 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXNullLiteral_in_rule__XLiteral__Alternatives9876 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXStringLiteral_in_rule__XLiteral__Alternatives9893 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXTypeLiteral_in_rule__XLiteral__Alternatives9910 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXSetLiteral_in_rule__XCollectionLiteral__Alternatives9942 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXListLiteral_in_rule__XCollectionLiteral__Alternatives9959 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0__0_in_rule__XSwitchExpression__Alternatives_29991 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1__0_in_rule__XSwitchExpression__Alternatives_210009 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCasePart__Group_3_0__0_in_rule__XCasePart__Alternatives_310042 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCasePart__FallThroughAssignment_3_1_in_rule__XCasePart__Alternatives_310060 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXVariableDeclaration_in_rule__XExpressionOrVarDeclaration__Alternatives10093 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXExpression_in_rule__XExpressionOrVarDeclaration__Alternatives10110 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XVariableDeclaration__WriteableAssignment_1_0_in_rule__XVariableDeclaration__Alternatives_110142 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_59_in_rule__XVariableDeclaration__Alternatives_110161 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XVariableDeclaration__Group_2_0__0_in_rule__XVariableDeclaration__Alternatives_210195 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XVariableDeclaration__NameAssignment_2_1_in_rule__XVariableDeclaration__Alternatives_210213 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0_in_rule__XFeatureCall__Alternatives_3_110246 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XFeatureCall__Group_3_1_1__0_in_rule__XFeatureCall__Alternatives_3_110264 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleValidID_in_rule__FeatureCallID__Alternatives10297 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_60_in_rule__FeatureCallID__Alternatives10315 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_61_in_rule__FeatureCallID__Alternatives10335 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_62_in_rule__FeatureCallID__Alternatives10355 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_63_in_rule__FeatureCallID__Alternatives10375 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleFeatureCallID_in_rule__IdOrSuper__Alternatives10409 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_64_in_rule__IdOrSuper__Alternatives10427 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XConstructorCall__ArgumentsAssignment_4_1_0_in_rule__XConstructorCall__Alternatives_4_110461 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XConstructorCall__Group_4_1_1__0_in_rule__XConstructorCall__Alternatives_4_110479 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_65_in_rule__XBooleanLiteral__Alternatives_110513 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBooleanLiteral__IsTrueAssignment_1_1_in_rule__XBooleanLiteral__Alternatives_110532 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group_3_0__0_in_rule__XTryCatchFinallyExpression__Alternatives_310565 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group_3_1__0_in_rule__XTryCatchFinallyExpression__Alternatives_310583 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets005 {
        public static final BitSet FOLLOW_RULE_HEX_in_rule__Number__Alternatives10616 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Number__Group_1__0_in_rule__Number__Alternatives10633 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_INT_in_rule__Number__Alternatives_1_010666 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_DECIMAL_in_rule__Number__Alternatives_1_010683 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_INT_in_rule__Number__Alternatives_1_1_110715 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_DECIMAL_in_rule__Number__Alternatives_1_1_110732 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmTypeReference__Group_0__0_in_rule__JvmTypeReference__Alternatives10764 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXFunctionTypeRef_in_rule__JvmTypeReference__Alternatives10782 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__JvmArgumentTypeReference__Alternatives10814 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmWildcardTypeReference_in_rule__JvmArgumentTypeReference__Alternatives10831 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmWildcardTypeReference__Group_2_0__0_in_rule__JvmWildcardTypeReference__Alternatives_210863 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmWildcardTypeReference__Group_2_1__0_in_rule__JvmWildcardTypeReference__Alternatives_210881 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XImportDeclaration__Group_1_0__0_in_rule__XImportDeclaration__Alternatives_110914 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XImportDeclaration__ImportedTypeAssignment_1_1_in_rule__XImportDeclaration__Alternatives_110932 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XImportDeclaration__ImportedNamespaceAssignment_1_2_in_rule__XImportDeclaration__Alternatives_110950 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XImportDeclaration__WildcardAssignment_1_0_3_0_in_rule__XImportDeclaration__Alternatives_1_0_310983 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XImportDeclaration__MemberNameAssignment_1_0_3_1_in_rule__XImportDeclaration__Alternatives_1_0_311001 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_66_in_rule__ConstraintSeverity__Alternatives11035 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_67_in_rule__ConstraintSeverity__Alternatives11056 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_68_in_rule__ConstraintSeverity__Alternatives11077 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_26_in_rule__DateType__Alternatives11113 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_69_in_rule__DateType__Alternatives11134 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_70_in_rule__DateType__Alternatives11155 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_71_in_rule__LVisibility__Alternatives11191 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_72_in_rule__LVisibility__Alternatives11212 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_73_in_rule__LVisibility__Alternatives11233 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_74_in_rule__LVisibility__Alternatives11254 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_38_in_rule__LComparatorType__Alternatives11290 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__LComparatorType__Alternatives11311 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_44_in_rule__LComparatorType__Alternatives11332 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_42_in_rule__LComparatorType__Alternatives11353 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_75_in_rule__LComparatorType__Alternatives11374 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__LComparatorType__Alternatives11395 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__LowerBound__Alternatives11431 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_76_in_rule__LowerBound__Alternatives11452 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_77_in_rule__LowerBound__Alternatives11473 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_31_in_rule__LowerBound__Alternatives11494 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_78_in_rule__LowerBound__Alternatives11515 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__UpperBound__Alternatives11551 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_78_in_rule__UpperBound__Alternatives11572 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__TypedPackage__Group__0__Impl_in_rule__TypedPackage__Group__011605 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
        public static final BitSet FOLLOW_rule__TypedPackage__Group__1_in_rule__TypedPackage__Group__011608 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__TypedPackage__Group__1__Impl_in_rule__TypedPackage__Group__111666 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__TypedPackage__Group__2_in_rule__TypedPackage__Group__111669 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_71_in_rule__TypedPackage__Group__1__Impl11697 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__TypedPackage__Group__2__Impl_in_rule__TypedPackage__Group__211728 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
        public static final BitSet FOLLOW_rule__TypedPackage__Group__3_in_rule__TypedPackage__Group__211731 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__TypedPackage__NameAssignment_2_in_rule__TypedPackage__Group__2__Impl11758 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__TypedPackage__Group__3__Impl_in_rule__TypedPackage__Group__311788 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__TypedPackage__Group_3__0_in_rule__TypedPackage__Group__3__Impl11815 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__TypedPackage__Group_3__0__Impl_in_rule__TypedPackage__Group_3__011854 = new BitSet(new long[]{0x4000000000000000L,0x00010800000B0000L});
        public static final BitSet FOLLOW_rule__TypedPackage__Group_3__1_in_rule__TypedPackage__Group_3__011857 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_79_in_rule__TypedPackage__Group_3__0__Impl11885 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__TypedPackage__Group_3__1__Impl_in_rule__TypedPackage__Group_3__111916 = new BitSet(new long[]{0x4000000000000000L,0x00010800000B0000L});
        public static final BitSet FOLLOW_rule__TypedPackage__Group_3__2_in_rule__TypedPackage__Group_3__111919 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__TypedPackage__ImportsAssignment_3_1_in_rule__TypedPackage__Group_3__1__Impl11946 = new BitSet(new long[]{0x4000000000000002L});
        public static final BitSet FOLLOW_rule__TypedPackage__Group_3__2__Impl_in_rule__TypedPackage__Group_3__211977 = new BitSet(new long[]{0x4000000000000000L,0x00010800000B0000L});
        public static final BitSet FOLLOW_rule__TypedPackage__Group_3__3_in_rule__TypedPackage__Group_3__211980 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__TypedPackage__TypesAssignment_3_2_in_rule__TypedPackage__Group_3__2__Impl12007 = new BitSet(new long[]{0x0000000000000002L,0x00010800000A0000L});
        public static final BitSet FOLLOW_rule__TypedPackage__Group_3__3__Impl_in_rule__TypedPackage__Group_3__312038 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_80_in_rule__TypedPackage__Group_3__3__Impl12066 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Class__Group__0__Impl_in_rule__Class__Group__012105 = new BitSet(new long[]{0x0000000000000000L,0x00010800000A0000L});
        public static final BitSet FOLLOW_rule__Class__Group__1_in_rule__Class__Group__012108 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Class__Group__1__Impl_in_rule__Class__Group__112166 = new BitSet(new long[]{0x0000000000000000L,0x00010800000A0000L});
        public static final BitSet FOLLOW_rule__Class__Group__2_in_rule__Class__Group__112169 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Class__AnnotationsAssignment_1_in_rule__Class__Group__1__Impl12196 = new BitSet(new long[]{0x0000000000000002L,0x0001000000000000L});
        public static final BitSet FOLLOW_rule__Class__Group__2__Impl_in_rule__Class__Group__212227 = new BitSet(new long[]{0x0000000000000000L,0x00010800000A0000L});
        public static final BitSet FOLLOW_rule__Class__Group__3_in_rule__Class__Group__212230 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Class__Group__3__Impl_in_rule__Class__Group__312288 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_81_in_rule__Class__Group__3__Impl12316 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Import__Group__0__Impl_in_rule__Import__Group__012355 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__Import__Group__1_in_rule__Import__Group__012358 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_62_in_rule__Import__Group__0__Impl12386 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Import__Group__1__Impl_in_rule__Import__Group__112417 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
        public static final BitSet FOLLOW_rule__Import__Group__2_in_rule__Import__Group__112420 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Import__ImportedNamespaceAssignment_1_in_rule__Import__Group__1__Impl12447 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Import__Group__2__Impl_in_rule__Import__Group__212477 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_82_in_rule__Import__Group__2__Impl12506 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group__0__Impl_in_rule__DataType__Group__012545 = new BitSet(new long[]{0x000000007FFF0010L,0x0000400000000000L});
        public static final BitSet FOLLOW_rule__DataType__Group__1_in_rule__DataType__Group__012548 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_83_in_rule__DataType__Group__0__Impl12576 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group__1__Impl_in_rule__DataType__Group__112607 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L,0x0000000000000600L});
        public static final BitSet FOLLOW_rule__DataType__Group__2_in_rule__DataType__Group__112610 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__NameAssignment_1_in_rule__DataType__Group__1__Impl12637 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group__2__Impl_in_rule__DataType__Group__212667 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
        public static final BitSet FOLLOW_rule__DataType__Group__3_in_rule__DataType__Group__212670 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Alternatives_2_in_rule__DataType__Group__2__Impl12697 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group__3__Impl_in_rule__DataType__Group__312727 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_82_in_rule__DataType__Group__3__Impl12756 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0__0__Impl_in_rule__DataType__Group_2_0__012797 = new BitSet(new long[]{0x0001000000000010L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0__1_in_rule__DataType__Group_2_0__012800 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_84_in_rule__DataType__Group_2_0__0__Impl12828 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0__1__Impl_in_rule__DataType__Group_2_0__112859 = new BitSet(new long[]{0x0000000000000000L,0x000007E782200000L,0x0000000000000100L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0__2_in_rule__DataType__Group_2_0__112862 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__JvmTypeReferenceAssignment_2_0_1_in_rule__DataType__Group_2_0__1__Impl12889 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0__2__Impl_in_rule__DataType__Group_2_0__212919 = new BitSet(new long[]{0x0000000000000000L,0x000007E782200000L,0x0000000000000100L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0__3_in_rule__DataType__Group_2_0__212922 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__AsPrimitiveAssignment_2_0_2_in_rule__DataType__Group_2_0__2__Impl12949 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0__3__Impl_in_rule__DataType__Group_2_0__312980 = new BitSet(new long[]{0x0000000000000000L,0x000007E782200000L,0x0000000000000100L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0__4_in_rule__DataType__Group_2_0__312983 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets006 {
        public static final BitSet FOLLOW_rule__DataType__ConstraintsAssignment_2_0_3_in_rule__DataType__Group_2_0__3__Impl13010 = new BitSet(new long[]{0x0000000000000002L,0x000007E782000000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0__4__Impl_in_rule__DataType__Group_2_0__413041 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0_4__0_in_rule__DataType__Group_2_0__4__Impl13068 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0_4__0__Impl_in_rule__DataType__Group_2_0_4__013109 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0_4__1_in_rule__DataType__Group_2_0_4__013112 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_85_in_rule__DataType__Group_2_0_4__0__Impl13140 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0_4__1__Impl_in_rule__DataType__Group_2_0_4__113171 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0_4__2_in_rule__DataType__Group_2_0_4__113174 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_86_in_rule__DataType__Group_2_0_4__1__Impl13202 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0_4__2__Impl_in_rule__DataType__Group_2_0_4__213233 = new BitSet(new long[]{0x0000000000000000L,0x0000000001800000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0_4__3_in_rule__DataType__Group_2_0_4__213236 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__PropertiesAssignment_2_0_4_2_in_rule__DataType__Group_2_0_4__2__Impl13263 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0_4__3__Impl_in_rule__DataType__Group_2_0_4__313293 = new BitSet(new long[]{0x0000000000000000L,0x0000000001800000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0_4__4_in_rule__DataType__Group_2_0_4__313296 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0_4_3__0_in_rule__DataType__Group_2_0_4__3__Impl13323 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0_4__4__Impl_in_rule__DataType__Group_2_0_4__413354 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__DataType__Group_2_0_4__4__Impl13382 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0_4_3__0__Impl_in_rule__DataType__Group_2_0_4_3__013423 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0_4_3__1_in_rule__DataType__Group_2_0_4_3__013426 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_88_in_rule__DataType__Group_2_0_4_3__0__Impl13454 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_0_4_3__1__Impl_in_rule__DataType__Group_2_0_4_3__113485 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__PropertiesAssignment_2_0_4_3_1_in_rule__DataType__Group_2_0_4_3__1__Impl13512 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1__0__Impl_in_rule__DataType__Group_2_1__013546 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000060L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1__1_in_rule__DataType__Group_2_1__013549 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__DateAssignment_2_1_0_in_rule__DataType__Group_2_1__0__Impl13576 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1__1__Impl_in_rule__DataType__Group_2_1__113606 = new BitSet(new long[]{0x0000000000000000L,0x0000019800200000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1__2_in_rule__DataType__Group_2_1__113609 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__DateTypeAssignment_2_1_1_in_rule__DataType__Group_2_1__1__Impl13636 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1__2__Impl_in_rule__DataType__Group_2_1__213666 = new BitSet(new long[]{0x0000000000000000L,0x0000019800200000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1__3_in_rule__DataType__Group_2_1__213669 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__ConstraintsAssignment_2_1_2_in_rule__DataType__Group_2_1__2__Impl13696 = new BitSet(new long[]{0x0000000000000002L,0x0000019800000000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1__3__Impl_in_rule__DataType__Group_2_1__313727 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1_3__0_in_rule__DataType__Group_2_1__3__Impl13754 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1_3__0__Impl_in_rule__DataType__Group_2_1_3__013793 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1_3__1_in_rule__DataType__Group_2_1_3__013796 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_85_in_rule__DataType__Group_2_1_3__0__Impl13824 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1_3__1__Impl_in_rule__DataType__Group_2_1_3__113855 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1_3__2_in_rule__DataType__Group_2_1_3__113858 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_86_in_rule__DataType__Group_2_1_3__1__Impl13886 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1_3__2__Impl_in_rule__DataType__Group_2_1_3__213917 = new BitSet(new long[]{0x0000000000000000L,0x0000000001800000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1_3__3_in_rule__DataType__Group_2_1_3__213920 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__PropertiesAssignment_2_1_3_2_in_rule__DataType__Group_2_1_3__2__Impl13947 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1_3__3__Impl_in_rule__DataType__Group_2_1_3__313977 = new BitSet(new long[]{0x0000000000000000L,0x0000000001800000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1_3__4_in_rule__DataType__Group_2_1_3__313980 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1_3_3__0_in_rule__DataType__Group_2_1_3__3__Impl14007 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1_3__4__Impl_in_rule__DataType__Group_2_1_3__414038 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__DataType__Group_2_1_3__4__Impl14066 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1_3_3__0__Impl_in_rule__DataType__Group_2_1_3_3__014107 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1_3_3__1_in_rule__DataType__Group_2_1_3_3__014110 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_88_in_rule__DataType__Group_2_1_3_3__0__Impl14138 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_1_3_3__1__Impl_in_rule__DataType__Group_2_1_3_3__114169 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__PropertiesAssignment_2_1_3_3_1_in_rule__DataType__Group_2_1_3_3__1__Impl14196 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_2__0__Impl_in_rule__DataType__Group_2_2__014230 = new BitSet(new long[]{0x0000000000000000L,0x0000018000200000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_2__1_in_rule__DataType__Group_2_2__014233 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__AsBlobAssignment_2_2_0_in_rule__DataType__Group_2_2__0__Impl14260 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_2__1__Impl_in_rule__DataType__Group_2_2__114290 = new BitSet(new long[]{0x0000000000000000L,0x0000018000200000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_2__2_in_rule__DataType__Group_2_2__114293 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__ConstraintsAssignment_2_2_1_in_rule__DataType__Group_2_2__1__Impl14320 = new BitSet(new long[]{0x0000000000000002L,0x0000018000000000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_2__2__Impl_in_rule__DataType__Group_2_2__214351 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_2_2__0_in_rule__DataType__Group_2_2__2__Impl14378 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_2_2__0__Impl_in_rule__DataType__Group_2_2_2__014415 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_2_2__1_in_rule__DataType__Group_2_2_2__014418 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_85_in_rule__DataType__Group_2_2_2__0__Impl14446 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_2_2__1__Impl_in_rule__DataType__Group_2_2_2__114477 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_2_2__2_in_rule__DataType__Group_2_2_2__114480 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_86_in_rule__DataType__Group_2_2_2__1__Impl14508 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_2_2__2__Impl_in_rule__DataType__Group_2_2_2__214539 = new BitSet(new long[]{0x0000000000000000L,0x0000000001800000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_2_2__3_in_rule__DataType__Group_2_2_2__214542 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__PropertiesAssignment_2_2_2_2_in_rule__DataType__Group_2_2_2__2__Impl14569 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_2_2__3__Impl_in_rule__DataType__Group_2_2_2__314599 = new BitSet(new long[]{0x0000000000000000L,0x0000000001800000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_2_2__4_in_rule__DataType__Group_2_2_2__314602 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_2_2_3__0_in_rule__DataType__Group_2_2_2__3__Impl14629 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_2_2__4__Impl_in_rule__DataType__Group_2_2_2__414660 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__DataType__Group_2_2_2__4__Impl14688 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_2_2_3__0__Impl_in_rule__DataType__Group_2_2_2_3__014729 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_2_2_3__1_in_rule__DataType__Group_2_2_2_3__014732 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_88_in_rule__DataType__Group_2_2_2_3__0__Impl14760 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__Group_2_2_2_3__1__Impl_in_rule__DataType__Group_2_2_2_3__114791 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DataType__PropertiesAssignment_2_2_2_3_1_in_rule__DataType__Group_2_2_2_3__1__Impl14818 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group__0__Impl_in_rule__DtCAssertFalse__Group__014852 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group__1_in_rule__DtCAssertFalse__Group__014855 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group__1__Impl_in_rule__DtCAssertFalse__Group__114913 = new BitSet(new long[]{0x0000000000000000L,0x0000000074000000L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group__2_in_rule__DtCAssertFalse__Group__114916 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_89_in_rule__DtCAssertFalse__Group__1__Impl14944 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group__2__Impl_in_rule__DtCAssertFalse__Group__214975 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__UnorderedGroup_2_in_rule__DtCAssertFalse__Group__2__Impl15002 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_0__0__Impl_in_rule__DtCAssertFalse__Group_2_0__015039 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_0__1_in_rule__DtCAssertFalse__Group_2_0__015042 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_90_in_rule__DtCAssertFalse__Group_2_0__0__Impl15070 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_0__1__Impl_in_rule__DtCAssertFalse__Group_2_0__115101 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_0_1__0_in_rule__DtCAssertFalse__Group_2_0__1__Impl15128 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_0_1__0__Impl_in_rule__DtCAssertFalse__Group_2_0_1__015163 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_0_1__1_in_rule__DtCAssertFalse__Group_2_0_1__015166 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_91_in_rule__DtCAssertFalse__Group_2_0_1__0__Impl15194 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_0_1__1__Impl_in_rule__DtCAssertFalse__Group_2_0_1__115225 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_0_1__2_in_rule__DtCAssertFalse__Group_2_0_1__115228 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCAssertFalse__Group_2_0_1__1__Impl15256 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_0_1__2__Impl_in_rule__DtCAssertFalse__Group_2_0_1__215287 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__MsgCodeAssignment_2_0_1_2_in_rule__DtCAssertFalse__Group_2_0_1__2__Impl15314 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_1__0__Impl_in_rule__DtCAssertFalse__Group_2_1__015350 = new BitSet(new long[]{0x0000000000002000L});
    }

    protected static class FollowSets007 {
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_1__1_in_rule__DtCAssertFalse__Group_2_1__015353 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_92_in_rule__DtCAssertFalse__Group_2_1__0__Impl15381 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_1__1__Impl_in_rule__DtCAssertFalse__Group_2_1__115412 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_1__2_in_rule__DtCAssertFalse__Group_2_1__115415 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCAssertFalse__Group_2_1__1__Impl15443 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_1__2__Impl_in_rule__DtCAssertFalse__Group_2_1__215474 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__MsgI18nKeyAssignment_2_1_2_in_rule__DtCAssertFalse__Group_2_1__2__Impl15501 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_2__0__Impl_in_rule__DtCAssertFalse__Group_2_2__015537 = new BitSet(new long[]{0x0000000000000000L,0x0000000074000000L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_2__1_in_rule__DtCAssertFalse__Group_2_2__015540 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_2_0__0_in_rule__DtCAssertFalse__Group_2_2__0__Impl15567 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_2__1__Impl_in_rule__DtCAssertFalse__Group_2_2__115598 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_93_in_rule__DtCAssertFalse__Group_2_2__1__Impl15626 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_2_0__0__Impl_in_rule__DtCAssertFalse__Group_2_2_0__015661 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_2_0__1_in_rule__DtCAssertFalse__Group_2_2_0__015664 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_94_in_rule__DtCAssertFalse__Group_2_2_0__0__Impl15692 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_2_0__1__Impl_in_rule__DtCAssertFalse__Group_2_2_0__115723 = new BitSet(new long[]{0x0000000000000000L,0x000000000000001CL});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_2_0__2_in_rule__DtCAssertFalse__Group_2_2_0__115726 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCAssertFalse__Group_2_2_0__1__Impl15754 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__Group_2_2_0__2__Impl_in_rule__DtCAssertFalse__Group_2_2_0__215785 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertFalse__SeverityAssignment_2_2_0_2_in_rule__DtCAssertFalse__Group_2_2_0__2__Impl15812 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group__0__Impl_in_rule__DtCAssertTrue__Group__015848 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group__1_in_rule__DtCAssertTrue__Group__015851 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group__1__Impl_in_rule__DtCAssertTrue__Group__115909 = new BitSet(new long[]{0x0000000000000000L,0x0000000074000000L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group__2_in_rule__DtCAssertTrue__Group__115912 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_95_in_rule__DtCAssertTrue__Group__1__Impl15940 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group__2__Impl_in_rule__DtCAssertTrue__Group__215971 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__UnorderedGroup_2_in_rule__DtCAssertTrue__Group__2__Impl15998 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_0__0__Impl_in_rule__DtCAssertTrue__Group_2_0__016035 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_0__1_in_rule__DtCAssertTrue__Group_2_0__016038 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_90_in_rule__DtCAssertTrue__Group_2_0__0__Impl16066 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_0__1__Impl_in_rule__DtCAssertTrue__Group_2_0__116097 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_0_1__0_in_rule__DtCAssertTrue__Group_2_0__1__Impl16124 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_0_1__0__Impl_in_rule__DtCAssertTrue__Group_2_0_1__016159 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_0_1__1_in_rule__DtCAssertTrue__Group_2_0_1__016162 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_91_in_rule__DtCAssertTrue__Group_2_0_1__0__Impl16190 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_0_1__1__Impl_in_rule__DtCAssertTrue__Group_2_0_1__116221 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_0_1__2_in_rule__DtCAssertTrue__Group_2_0_1__116224 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCAssertTrue__Group_2_0_1__1__Impl16252 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_0_1__2__Impl_in_rule__DtCAssertTrue__Group_2_0_1__216283 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__MsgCodeAssignment_2_0_1_2_in_rule__DtCAssertTrue__Group_2_0_1__2__Impl16310 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_1__0__Impl_in_rule__DtCAssertTrue__Group_2_1__016346 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_1__1_in_rule__DtCAssertTrue__Group_2_1__016349 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_92_in_rule__DtCAssertTrue__Group_2_1__0__Impl16377 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_1__1__Impl_in_rule__DtCAssertTrue__Group_2_1__116408 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_1__2_in_rule__DtCAssertTrue__Group_2_1__116411 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCAssertTrue__Group_2_1__1__Impl16439 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_1__2__Impl_in_rule__DtCAssertTrue__Group_2_1__216470 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__MsgI18nKeyAssignment_2_1_2_in_rule__DtCAssertTrue__Group_2_1__2__Impl16497 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_2__0__Impl_in_rule__DtCAssertTrue__Group_2_2__016533 = new BitSet(new long[]{0x0000000000000000L,0x0000000074000000L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_2__1_in_rule__DtCAssertTrue__Group_2_2__016536 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_2_0__0_in_rule__DtCAssertTrue__Group_2_2__0__Impl16563 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_2__1__Impl_in_rule__DtCAssertTrue__Group_2_2__116594 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_93_in_rule__DtCAssertTrue__Group_2_2__1__Impl16622 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_2_0__0__Impl_in_rule__DtCAssertTrue__Group_2_2_0__016657 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_2_0__1_in_rule__DtCAssertTrue__Group_2_2_0__016660 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_94_in_rule__DtCAssertTrue__Group_2_2_0__0__Impl16688 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_2_0__1__Impl_in_rule__DtCAssertTrue__Group_2_2_0__116719 = new BitSet(new long[]{0x0000000000000000L,0x000000000000001CL});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_2_0__2_in_rule__DtCAssertTrue__Group_2_2_0__116722 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCAssertTrue__Group_2_2_0__1__Impl16750 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__Group_2_2_0__2__Impl_in_rule__DtCAssertTrue__Group_2_2_0__216781 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCAssertTrue__SeverityAssignment_2_2_0_2_in_rule__DtCAssertTrue__Group_2_2_0__2__Impl16808 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group__0__Impl_in_rule__DtCDecimalMax__Group__016844 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group__1_in_rule__DtCDecimalMax__Group__016847 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group__1__Impl_in_rule__DtCDecimalMax__Group__116905 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group__2_in_rule__DtCDecimalMax__Group__116908 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_96_in_rule__DtCDecimalMax__Group__1__Impl16936 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group__2__Impl_in_rule__DtCDecimalMax__Group__216967 = new BitSet(new long[]{0x0000000180000040L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group__3_in_rule__DtCDecimalMax__Group__216970 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_86_in_rule__DtCDecimalMax__Group__2__Impl16998 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group__3__Impl_in_rule__DtCDecimalMax__Group__317029 = new BitSet(new long[]{0x0000000000000000L,0x0000000074800000L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group__4_in_rule__DtCDecimalMax__Group__317032 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__MaxAssignment_3_in_rule__DtCDecimalMax__Group__3__Impl17059 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group__4__Impl_in_rule__DtCDecimalMax__Group__417089 = new BitSet(new long[]{0x0000000000000000L,0x0000000074800000L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group__5_in_rule__DtCDecimalMax__Group__417092 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__UnorderedGroup_4_in_rule__DtCDecimalMax__Group__4__Impl17119 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group__5__Impl_in_rule__DtCDecimalMax__Group__517150 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__DtCDecimalMax__Group__5__Impl17178 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_0__0__Impl_in_rule__DtCDecimalMax__Group_4_0__017221 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_0__1_in_rule__DtCDecimalMax__Group_4_0__017224 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_90_in_rule__DtCDecimalMax__Group_4_0__0__Impl17252 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_0__1__Impl_in_rule__DtCDecimalMax__Group_4_0__117283 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_0_1__0_in_rule__DtCDecimalMax__Group_4_0__1__Impl17310 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_0_1__0__Impl_in_rule__DtCDecimalMax__Group_4_0_1__017345 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_0_1__1_in_rule__DtCDecimalMax__Group_4_0_1__017348 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_91_in_rule__DtCDecimalMax__Group_4_0_1__0__Impl17376 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_0_1__1__Impl_in_rule__DtCDecimalMax__Group_4_0_1__117407 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_0_1__2_in_rule__DtCDecimalMax__Group_4_0_1__117410 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCDecimalMax__Group_4_0_1__1__Impl17438 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_0_1__2__Impl_in_rule__DtCDecimalMax__Group_4_0_1__217469 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__MsgCodeAssignment_4_0_1_2_in_rule__DtCDecimalMax__Group_4_0_1__2__Impl17496 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_1__0__Impl_in_rule__DtCDecimalMax__Group_4_1__017532 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_1__1_in_rule__DtCDecimalMax__Group_4_1__017535 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_92_in_rule__DtCDecimalMax__Group_4_1__0__Impl17563 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_1__1__Impl_in_rule__DtCDecimalMax__Group_4_1__117594 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_1__2_in_rule__DtCDecimalMax__Group_4_1__117597 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCDecimalMax__Group_4_1__1__Impl17625 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_1__2__Impl_in_rule__DtCDecimalMax__Group_4_1__217656 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__MsgI18nKeyAssignment_4_1_2_in_rule__DtCDecimalMax__Group_4_1__2__Impl17683 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_2__0__Impl_in_rule__DtCDecimalMax__Group_4_2__017719 = new BitSet(new long[]{0x0000000000000000L,0x0000000074000000L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_2__1_in_rule__DtCDecimalMax__Group_4_2__017722 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets008 {
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_2_0__0_in_rule__DtCDecimalMax__Group_4_2__0__Impl17749 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_2__1__Impl_in_rule__DtCDecimalMax__Group_4_2__117780 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_93_in_rule__DtCDecimalMax__Group_4_2__1__Impl17808 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_2_0__0__Impl_in_rule__DtCDecimalMax__Group_4_2_0__017843 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_2_0__1_in_rule__DtCDecimalMax__Group_4_2_0__017846 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_94_in_rule__DtCDecimalMax__Group_4_2_0__0__Impl17874 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_2_0__1__Impl_in_rule__DtCDecimalMax__Group_4_2_0__117905 = new BitSet(new long[]{0x0000000000000000L,0x000000000000001CL});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_2_0__2_in_rule__DtCDecimalMax__Group_4_2_0__117908 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCDecimalMax__Group_4_2_0__1__Impl17936 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__Group_4_2_0__2__Impl_in_rule__DtCDecimalMax__Group_4_2_0__217967 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMax__SeverityAssignment_4_2_0_2_in_rule__DtCDecimalMax__Group_4_2_0__2__Impl17994 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group__0__Impl_in_rule__DtCDecimalMin__Group__018030 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group__1_in_rule__DtCDecimalMin__Group__018033 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group__1__Impl_in_rule__DtCDecimalMin__Group__118091 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group__2_in_rule__DtCDecimalMin__Group__118094 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_97_in_rule__DtCDecimalMin__Group__1__Impl18122 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group__2__Impl_in_rule__DtCDecimalMin__Group__218153 = new BitSet(new long[]{0x0000000180000040L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group__3_in_rule__DtCDecimalMin__Group__218156 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_86_in_rule__DtCDecimalMin__Group__2__Impl18184 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group__3__Impl_in_rule__DtCDecimalMin__Group__318215 = new BitSet(new long[]{0x0000000000000000L,0x0000000074800000L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group__4_in_rule__DtCDecimalMin__Group__318218 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__MinAssignment_3_in_rule__DtCDecimalMin__Group__3__Impl18245 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group__4__Impl_in_rule__DtCDecimalMin__Group__418275 = new BitSet(new long[]{0x0000000000000000L,0x0000000074800000L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group__5_in_rule__DtCDecimalMin__Group__418278 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__UnorderedGroup_4_in_rule__DtCDecimalMin__Group__4__Impl18305 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group__5__Impl_in_rule__DtCDecimalMin__Group__518336 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__DtCDecimalMin__Group__5__Impl18364 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_0__0__Impl_in_rule__DtCDecimalMin__Group_4_0__018407 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_0__1_in_rule__DtCDecimalMin__Group_4_0__018410 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_90_in_rule__DtCDecimalMin__Group_4_0__0__Impl18438 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_0__1__Impl_in_rule__DtCDecimalMin__Group_4_0__118469 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_0_1__0_in_rule__DtCDecimalMin__Group_4_0__1__Impl18496 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_0_1__0__Impl_in_rule__DtCDecimalMin__Group_4_0_1__018531 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_0_1__1_in_rule__DtCDecimalMin__Group_4_0_1__018534 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_91_in_rule__DtCDecimalMin__Group_4_0_1__0__Impl18562 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_0_1__1__Impl_in_rule__DtCDecimalMin__Group_4_0_1__118593 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_0_1__2_in_rule__DtCDecimalMin__Group_4_0_1__118596 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCDecimalMin__Group_4_0_1__1__Impl18624 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_0_1__2__Impl_in_rule__DtCDecimalMin__Group_4_0_1__218655 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__MsgCodeAssignment_4_0_1_2_in_rule__DtCDecimalMin__Group_4_0_1__2__Impl18682 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_1__0__Impl_in_rule__DtCDecimalMin__Group_4_1__018718 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_1__1_in_rule__DtCDecimalMin__Group_4_1__018721 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_92_in_rule__DtCDecimalMin__Group_4_1__0__Impl18749 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_1__1__Impl_in_rule__DtCDecimalMin__Group_4_1__118780 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_1__2_in_rule__DtCDecimalMin__Group_4_1__118783 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCDecimalMin__Group_4_1__1__Impl18811 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_1__2__Impl_in_rule__DtCDecimalMin__Group_4_1__218842 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__MsgI18nKeyAssignment_4_1_2_in_rule__DtCDecimalMin__Group_4_1__2__Impl18869 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_2__0__Impl_in_rule__DtCDecimalMin__Group_4_2__018905 = new BitSet(new long[]{0x0000000000000000L,0x0000000074000000L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_2__1_in_rule__DtCDecimalMin__Group_4_2__018908 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_2_0__0_in_rule__DtCDecimalMin__Group_4_2__0__Impl18935 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_2__1__Impl_in_rule__DtCDecimalMin__Group_4_2__118966 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_93_in_rule__DtCDecimalMin__Group_4_2__1__Impl18994 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_2_0__0__Impl_in_rule__DtCDecimalMin__Group_4_2_0__019029 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_2_0__1_in_rule__DtCDecimalMin__Group_4_2_0__019032 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_94_in_rule__DtCDecimalMin__Group_4_2_0__0__Impl19060 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_2_0__1__Impl_in_rule__DtCDecimalMin__Group_4_2_0__119091 = new BitSet(new long[]{0x0000000000000000L,0x000000000000001CL});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_2_0__2_in_rule__DtCDecimalMin__Group_4_2_0__119094 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCDecimalMin__Group_4_2_0__1__Impl19122 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__Group_4_2_0__2__Impl_in_rule__DtCDecimalMin__Group_4_2_0__219153 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDecimalMin__SeverityAssignment_4_2_0_2_in_rule__DtCDecimalMin__Group_4_2_0__2__Impl19180 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group__0__Impl_in_rule__DtCDigits__Group__019216 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group__1_in_rule__DtCDigits__Group__019219 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group__1__Impl_in_rule__DtCDigits__Group__119277 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group__2_in_rule__DtCDigits__Group__119280 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_98_in_rule__DtCDigits__Group__1__Impl19308 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group__2__Impl_in_rule__DtCDigits__Group__219339 = new BitSet(new long[]{0x0000000000000040L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group__3_in_rule__DtCDigits__Group__219342 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_86_in_rule__DtCDigits__Group__2__Impl19370 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group__3__Impl_in_rule__DtCDigits__Group__319401 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group__4_in_rule__DtCDigits__Group__319404 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__IntDigitsAssignment_3_in_rule__DtCDigits__Group__3__Impl19431 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group__4__Impl_in_rule__DtCDigits__Group__419461 = new BitSet(new long[]{0x0000000000000040L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group__5_in_rule__DtCDigits__Group__419464 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_88_in_rule__DtCDigits__Group__4__Impl19492 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group__5__Impl_in_rule__DtCDigits__Group__519523 = new BitSet(new long[]{0x0000000000000000L,0x0000000074800000L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group__6_in_rule__DtCDigits__Group__519526 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__FractionDigitsAssignment_5_in_rule__DtCDigits__Group__5__Impl19553 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group__6__Impl_in_rule__DtCDigits__Group__619583 = new BitSet(new long[]{0x0000000000000000L,0x0000000074800000L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group__7_in_rule__DtCDigits__Group__619586 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__UnorderedGroup_6_in_rule__DtCDigits__Group__6__Impl19613 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group__7__Impl_in_rule__DtCDigits__Group__719644 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__DtCDigits__Group__7__Impl19672 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_0__0__Impl_in_rule__DtCDigits__Group_6_0__019719 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_0__1_in_rule__DtCDigits__Group_6_0__019722 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_90_in_rule__DtCDigits__Group_6_0__0__Impl19750 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_0__1__Impl_in_rule__DtCDigits__Group_6_0__119781 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_0_1__0_in_rule__DtCDigits__Group_6_0__1__Impl19808 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_0_1__0__Impl_in_rule__DtCDigits__Group_6_0_1__019843 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_0_1__1_in_rule__DtCDigits__Group_6_0_1__019846 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_91_in_rule__DtCDigits__Group_6_0_1__0__Impl19874 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_0_1__1__Impl_in_rule__DtCDigits__Group_6_0_1__119905 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_0_1__2_in_rule__DtCDigits__Group_6_0_1__119908 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCDigits__Group_6_0_1__1__Impl19936 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_0_1__2__Impl_in_rule__DtCDigits__Group_6_0_1__219967 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__MsgCodeAssignment_6_0_1_2_in_rule__DtCDigits__Group_6_0_1__2__Impl19994 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_1__0__Impl_in_rule__DtCDigits__Group_6_1__020030 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_1__1_in_rule__DtCDigits__Group_6_1__020033 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_92_in_rule__DtCDigits__Group_6_1__0__Impl20061 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_1__1__Impl_in_rule__DtCDigits__Group_6_1__120092 = new BitSet(new long[]{0x0000000000000010L});
    }

    protected static class FollowSets009 {
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_1__2_in_rule__DtCDigits__Group_6_1__120095 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCDigits__Group_6_1__1__Impl20123 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_1__2__Impl_in_rule__DtCDigits__Group_6_1__220154 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__MsgI18nKeyAssignment_6_1_2_in_rule__DtCDigits__Group_6_1__2__Impl20181 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_2__0__Impl_in_rule__DtCDigits__Group_6_2__020217 = new BitSet(new long[]{0x0000000000000000L,0x0000000074000000L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_2__1_in_rule__DtCDigits__Group_6_2__020220 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_2_0__0_in_rule__DtCDigits__Group_6_2__0__Impl20247 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_2__1__Impl_in_rule__DtCDigits__Group_6_2__120278 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_93_in_rule__DtCDigits__Group_6_2__1__Impl20306 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_2_0__0__Impl_in_rule__DtCDigits__Group_6_2_0__020341 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_2_0__1_in_rule__DtCDigits__Group_6_2_0__020344 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_94_in_rule__DtCDigits__Group_6_2_0__0__Impl20372 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_2_0__1__Impl_in_rule__DtCDigits__Group_6_2_0__120403 = new BitSet(new long[]{0x0000000000000000L,0x000000000000001CL});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_2_0__2_in_rule__DtCDigits__Group_6_2_0__120406 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCDigits__Group_6_2_0__1__Impl20434 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__Group_6_2_0__2__Impl_in_rule__DtCDigits__Group_6_2_0__220465 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCDigits__SeverityAssignment_6_2_0_2_in_rule__DtCDigits__Group_6_2_0__2__Impl20492 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group__0__Impl_in_rule__DtCFuture__Group__020528 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group__1_in_rule__DtCFuture__Group__020531 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group__1__Impl_in_rule__DtCFuture__Group__120589 = new BitSet(new long[]{0x0000000000000000L,0x0000000074000000L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group__2_in_rule__DtCFuture__Group__120592 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_99_in_rule__DtCFuture__Group__1__Impl20620 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group__2__Impl_in_rule__DtCFuture__Group__220651 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__UnorderedGroup_2_in_rule__DtCFuture__Group__2__Impl20678 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_0__0__Impl_in_rule__DtCFuture__Group_2_0__020715 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_0__1_in_rule__DtCFuture__Group_2_0__020718 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_90_in_rule__DtCFuture__Group_2_0__0__Impl20746 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_0__1__Impl_in_rule__DtCFuture__Group_2_0__120777 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_0_1__0_in_rule__DtCFuture__Group_2_0__1__Impl20804 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_0_1__0__Impl_in_rule__DtCFuture__Group_2_0_1__020839 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_0_1__1_in_rule__DtCFuture__Group_2_0_1__020842 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_91_in_rule__DtCFuture__Group_2_0_1__0__Impl20870 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_0_1__1__Impl_in_rule__DtCFuture__Group_2_0_1__120901 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_0_1__2_in_rule__DtCFuture__Group_2_0_1__120904 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCFuture__Group_2_0_1__1__Impl20932 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_0_1__2__Impl_in_rule__DtCFuture__Group_2_0_1__220963 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__MsgCodeAssignment_2_0_1_2_in_rule__DtCFuture__Group_2_0_1__2__Impl20990 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_1__0__Impl_in_rule__DtCFuture__Group_2_1__021026 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_1__1_in_rule__DtCFuture__Group_2_1__021029 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_92_in_rule__DtCFuture__Group_2_1__0__Impl21057 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_1__1__Impl_in_rule__DtCFuture__Group_2_1__121088 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_1__2_in_rule__DtCFuture__Group_2_1__121091 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCFuture__Group_2_1__1__Impl21119 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_1__2__Impl_in_rule__DtCFuture__Group_2_1__221150 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__MsgI18nKeyAssignment_2_1_2_in_rule__DtCFuture__Group_2_1__2__Impl21177 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_2__0__Impl_in_rule__DtCFuture__Group_2_2__021213 = new BitSet(new long[]{0x0000000000000000L,0x0000000074000000L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_2__1_in_rule__DtCFuture__Group_2_2__021216 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_2_0__0_in_rule__DtCFuture__Group_2_2__0__Impl21243 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_2__1__Impl_in_rule__DtCFuture__Group_2_2__121274 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_93_in_rule__DtCFuture__Group_2_2__1__Impl21302 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_2_0__0__Impl_in_rule__DtCFuture__Group_2_2_0__021337 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_2_0__1_in_rule__DtCFuture__Group_2_2_0__021340 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_94_in_rule__DtCFuture__Group_2_2_0__0__Impl21368 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_2_0__1__Impl_in_rule__DtCFuture__Group_2_2_0__121399 = new BitSet(new long[]{0x0000000000000000L,0x000000000000001CL});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_2_0__2_in_rule__DtCFuture__Group_2_2_0__121402 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCFuture__Group_2_2_0__1__Impl21430 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__Group_2_2_0__2__Impl_in_rule__DtCFuture__Group_2_2_0__221461 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCFuture__SeverityAssignment_2_2_0_2_in_rule__DtCFuture__Group_2_2_0__2__Impl21488 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__Group__0__Impl_in_rule__DtCPast__Group__021524 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
        public static final BitSet FOLLOW_rule__DtCPast__Group__1_in_rule__DtCPast__Group__021527 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__Group__1__Impl_in_rule__DtCPast__Group__121585 = new BitSet(new long[]{0x0000000000000000L,0x0000000074000000L});
        public static final BitSet FOLLOW_rule__DtCPast__Group__2_in_rule__DtCPast__Group__121588 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_100_in_rule__DtCPast__Group__1__Impl21616 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__Group__2__Impl_in_rule__DtCPast__Group__221647 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__UnorderedGroup_2_in_rule__DtCPast__Group__2__Impl21674 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_0__0__Impl_in_rule__DtCPast__Group_2_0__021711 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_0__1_in_rule__DtCPast__Group_2_0__021714 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_90_in_rule__DtCPast__Group_2_0__0__Impl21742 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_0__1__Impl_in_rule__DtCPast__Group_2_0__121773 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_0_1__0_in_rule__DtCPast__Group_2_0__1__Impl21800 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_0_1__0__Impl_in_rule__DtCPast__Group_2_0_1__021835 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_0_1__1_in_rule__DtCPast__Group_2_0_1__021838 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_91_in_rule__DtCPast__Group_2_0_1__0__Impl21866 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_0_1__1__Impl_in_rule__DtCPast__Group_2_0_1__121897 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_0_1__2_in_rule__DtCPast__Group_2_0_1__121900 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCPast__Group_2_0_1__1__Impl21928 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_0_1__2__Impl_in_rule__DtCPast__Group_2_0_1__221959 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__MsgCodeAssignment_2_0_1_2_in_rule__DtCPast__Group_2_0_1__2__Impl21986 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_1__0__Impl_in_rule__DtCPast__Group_2_1__022022 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_1__1_in_rule__DtCPast__Group_2_1__022025 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_92_in_rule__DtCPast__Group_2_1__0__Impl22053 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_1__1__Impl_in_rule__DtCPast__Group_2_1__122084 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_1__2_in_rule__DtCPast__Group_2_1__122087 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCPast__Group_2_1__1__Impl22115 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_1__2__Impl_in_rule__DtCPast__Group_2_1__222146 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__MsgI18nKeyAssignment_2_1_2_in_rule__DtCPast__Group_2_1__2__Impl22173 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_2__0__Impl_in_rule__DtCPast__Group_2_2__022209 = new BitSet(new long[]{0x0000000000000000L,0x0000000074000000L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_2__1_in_rule__DtCPast__Group_2_2__022212 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_2_0__0_in_rule__DtCPast__Group_2_2__0__Impl22239 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_2__1__Impl_in_rule__DtCPast__Group_2_2__122270 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_93_in_rule__DtCPast__Group_2_2__1__Impl22298 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_2_0__0__Impl_in_rule__DtCPast__Group_2_2_0__022333 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_2_0__1_in_rule__DtCPast__Group_2_2_0__022336 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_94_in_rule__DtCPast__Group_2_2_0__0__Impl22364 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_2_0__1__Impl_in_rule__DtCPast__Group_2_2_0__122395 = new BitSet(new long[]{0x0000000000000000L,0x000000000000001CL});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_2_0__2_in_rule__DtCPast__Group_2_2_0__122398 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCPast__Group_2_2_0__1__Impl22426 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__Group_2_2_0__2__Impl_in_rule__DtCPast__Group_2_2_0__222457 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCPast__SeverityAssignment_2_2_0_2_in_rule__DtCPast__Group_2_2_0__2__Impl22484 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group__0__Impl_in_rule__DtCNumericMax__Group__022520 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
    }

    protected static class FollowSets010 {
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group__1_in_rule__DtCNumericMax__Group__022523 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group__1__Impl_in_rule__DtCNumericMax__Group__122581 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group__2_in_rule__DtCNumericMax__Group__122584 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_101_in_rule__DtCNumericMax__Group__1__Impl22612 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group__2__Impl_in_rule__DtCNumericMax__Group__222643 = new BitSet(new long[]{0x0000000180000040L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group__3_in_rule__DtCNumericMax__Group__222646 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_86_in_rule__DtCNumericMax__Group__2__Impl22674 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group__3__Impl_in_rule__DtCNumericMax__Group__322705 = new BitSet(new long[]{0x0000000000000000L,0x0000000074800000L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group__4_in_rule__DtCNumericMax__Group__322708 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__MaxAssignment_3_in_rule__DtCNumericMax__Group__3__Impl22735 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group__4__Impl_in_rule__DtCNumericMax__Group__422765 = new BitSet(new long[]{0x0000000000000000L,0x0000000074800000L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group__5_in_rule__DtCNumericMax__Group__422768 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__UnorderedGroup_4_in_rule__DtCNumericMax__Group__4__Impl22795 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group__5__Impl_in_rule__DtCNumericMax__Group__522826 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__DtCNumericMax__Group__5__Impl22854 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_0__0__Impl_in_rule__DtCNumericMax__Group_4_0__022897 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_0__1_in_rule__DtCNumericMax__Group_4_0__022900 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_90_in_rule__DtCNumericMax__Group_4_0__0__Impl22928 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_0__1__Impl_in_rule__DtCNumericMax__Group_4_0__122959 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_0_1__0_in_rule__DtCNumericMax__Group_4_0__1__Impl22986 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_0_1__0__Impl_in_rule__DtCNumericMax__Group_4_0_1__023021 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_0_1__1_in_rule__DtCNumericMax__Group_4_0_1__023024 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_91_in_rule__DtCNumericMax__Group_4_0_1__0__Impl23052 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_0_1__1__Impl_in_rule__DtCNumericMax__Group_4_0_1__123083 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_0_1__2_in_rule__DtCNumericMax__Group_4_0_1__123086 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCNumericMax__Group_4_0_1__1__Impl23114 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_0_1__2__Impl_in_rule__DtCNumericMax__Group_4_0_1__223145 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__MsgCodeAssignment_4_0_1_2_in_rule__DtCNumericMax__Group_4_0_1__2__Impl23172 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_1__0__Impl_in_rule__DtCNumericMax__Group_4_1__023208 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_1__1_in_rule__DtCNumericMax__Group_4_1__023211 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_92_in_rule__DtCNumericMax__Group_4_1__0__Impl23239 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_1__1__Impl_in_rule__DtCNumericMax__Group_4_1__123270 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_1__2_in_rule__DtCNumericMax__Group_4_1__123273 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCNumericMax__Group_4_1__1__Impl23301 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_1__2__Impl_in_rule__DtCNumericMax__Group_4_1__223332 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__MsgI18nKeyAssignment_4_1_2_in_rule__DtCNumericMax__Group_4_1__2__Impl23359 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_2__0__Impl_in_rule__DtCNumericMax__Group_4_2__023395 = new BitSet(new long[]{0x0000000000000000L,0x0000000074000000L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_2__1_in_rule__DtCNumericMax__Group_4_2__023398 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_2_0__0_in_rule__DtCNumericMax__Group_4_2__0__Impl23425 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_2__1__Impl_in_rule__DtCNumericMax__Group_4_2__123456 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_93_in_rule__DtCNumericMax__Group_4_2__1__Impl23484 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_2_0__0__Impl_in_rule__DtCNumericMax__Group_4_2_0__023519 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_2_0__1_in_rule__DtCNumericMax__Group_4_2_0__023522 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_94_in_rule__DtCNumericMax__Group_4_2_0__0__Impl23550 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_2_0__1__Impl_in_rule__DtCNumericMax__Group_4_2_0__123581 = new BitSet(new long[]{0x0000000000000000L,0x000000000000001CL});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_2_0__2_in_rule__DtCNumericMax__Group_4_2_0__123584 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCNumericMax__Group_4_2_0__1__Impl23612 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__Group_4_2_0__2__Impl_in_rule__DtCNumericMax__Group_4_2_0__223643 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMax__SeverityAssignment_4_2_0_2_in_rule__DtCNumericMax__Group_4_2_0__2__Impl23670 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group__0__Impl_in_rule__DtCNumericMin__Group__023706 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group__1_in_rule__DtCNumericMin__Group__023709 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group__1__Impl_in_rule__DtCNumericMin__Group__123767 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group__2_in_rule__DtCNumericMin__Group__123770 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_102_in_rule__DtCNumericMin__Group__1__Impl23798 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group__2__Impl_in_rule__DtCNumericMin__Group__223829 = new BitSet(new long[]{0x0000000180000040L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group__3_in_rule__DtCNumericMin__Group__223832 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_86_in_rule__DtCNumericMin__Group__2__Impl23860 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group__3__Impl_in_rule__DtCNumericMin__Group__323891 = new BitSet(new long[]{0x0000000000000000L,0x0000000074800000L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group__4_in_rule__DtCNumericMin__Group__323894 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__MinAssignment_3_in_rule__DtCNumericMin__Group__3__Impl23921 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group__4__Impl_in_rule__DtCNumericMin__Group__423951 = new BitSet(new long[]{0x0000000000000000L,0x0000000074800000L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group__5_in_rule__DtCNumericMin__Group__423954 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__UnorderedGroup_4_in_rule__DtCNumericMin__Group__4__Impl23981 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group__5__Impl_in_rule__DtCNumericMin__Group__524012 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__DtCNumericMin__Group__5__Impl24040 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_0__0__Impl_in_rule__DtCNumericMin__Group_4_0__024083 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_0__1_in_rule__DtCNumericMin__Group_4_0__024086 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_90_in_rule__DtCNumericMin__Group_4_0__0__Impl24114 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_0__1__Impl_in_rule__DtCNumericMin__Group_4_0__124145 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_0_1__0_in_rule__DtCNumericMin__Group_4_0__1__Impl24172 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_0_1__0__Impl_in_rule__DtCNumericMin__Group_4_0_1__024207 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_0_1__1_in_rule__DtCNumericMin__Group_4_0_1__024210 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_91_in_rule__DtCNumericMin__Group_4_0_1__0__Impl24238 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_0_1__1__Impl_in_rule__DtCNumericMin__Group_4_0_1__124269 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_0_1__2_in_rule__DtCNumericMin__Group_4_0_1__124272 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCNumericMin__Group_4_0_1__1__Impl24300 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_0_1__2__Impl_in_rule__DtCNumericMin__Group_4_0_1__224331 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__MsgCodeAssignment_4_0_1_2_in_rule__DtCNumericMin__Group_4_0_1__2__Impl24358 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_1__0__Impl_in_rule__DtCNumericMin__Group_4_1__024394 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_1__1_in_rule__DtCNumericMin__Group_4_1__024397 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_92_in_rule__DtCNumericMin__Group_4_1__0__Impl24425 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_1__1__Impl_in_rule__DtCNumericMin__Group_4_1__124456 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_1__2_in_rule__DtCNumericMin__Group_4_1__124459 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCNumericMin__Group_4_1__1__Impl24487 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_1__2__Impl_in_rule__DtCNumericMin__Group_4_1__224518 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__MsgI18nKeyAssignment_4_1_2_in_rule__DtCNumericMin__Group_4_1__2__Impl24545 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_2__0__Impl_in_rule__DtCNumericMin__Group_4_2__024581 = new BitSet(new long[]{0x0000000000000000L,0x0000000074000000L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_2__1_in_rule__DtCNumericMin__Group_4_2__024584 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_2_0__0_in_rule__DtCNumericMin__Group_4_2__0__Impl24611 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_2__1__Impl_in_rule__DtCNumericMin__Group_4_2__124642 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_93_in_rule__DtCNumericMin__Group_4_2__1__Impl24670 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_2_0__0__Impl_in_rule__DtCNumericMin__Group_4_2_0__024705 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_2_0__1_in_rule__DtCNumericMin__Group_4_2_0__024708 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_94_in_rule__DtCNumericMin__Group_4_2_0__0__Impl24736 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_2_0__1__Impl_in_rule__DtCNumericMin__Group_4_2_0__124767 = new BitSet(new long[]{0x0000000000000000L,0x000000000000001CL});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_2_0__2_in_rule__DtCNumericMin__Group_4_2_0__124770 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCNumericMin__Group_4_2_0__1__Impl24798 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__Group_4_2_0__2__Impl_in_rule__DtCNumericMin__Group_4_2_0__224829 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNumericMin__SeverityAssignment_4_2_0_2_in_rule__DtCNumericMin__Group_4_2_0__2__Impl24856 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group__0__Impl_in_rule__DtCNotNull__Group__024892 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
    }

    protected static class FollowSets011 {
        public static final BitSet FOLLOW_rule__DtCNotNull__Group__1_in_rule__DtCNotNull__Group__024895 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group__1__Impl_in_rule__DtCNotNull__Group__124953 = new BitSet(new long[]{0x0000000000000000L,0x0000000074000000L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group__2_in_rule__DtCNotNull__Group__124956 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_103_in_rule__DtCNotNull__Group__1__Impl24984 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group__2__Impl_in_rule__DtCNotNull__Group__225015 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__UnorderedGroup_2_in_rule__DtCNotNull__Group__2__Impl25042 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_0__0__Impl_in_rule__DtCNotNull__Group_2_0__025079 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_0__1_in_rule__DtCNotNull__Group_2_0__025082 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_90_in_rule__DtCNotNull__Group_2_0__0__Impl25110 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_0__1__Impl_in_rule__DtCNotNull__Group_2_0__125141 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_0_1__0_in_rule__DtCNotNull__Group_2_0__1__Impl25168 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_0_1__0__Impl_in_rule__DtCNotNull__Group_2_0_1__025203 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_0_1__1_in_rule__DtCNotNull__Group_2_0_1__025206 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_91_in_rule__DtCNotNull__Group_2_0_1__0__Impl25234 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_0_1__1__Impl_in_rule__DtCNotNull__Group_2_0_1__125265 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_0_1__2_in_rule__DtCNotNull__Group_2_0_1__125268 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCNotNull__Group_2_0_1__1__Impl25296 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_0_1__2__Impl_in_rule__DtCNotNull__Group_2_0_1__225327 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__MsgCodeAssignment_2_0_1_2_in_rule__DtCNotNull__Group_2_0_1__2__Impl25354 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_1__0__Impl_in_rule__DtCNotNull__Group_2_1__025390 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_1__1_in_rule__DtCNotNull__Group_2_1__025393 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_92_in_rule__DtCNotNull__Group_2_1__0__Impl25421 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_1__1__Impl_in_rule__DtCNotNull__Group_2_1__125452 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_1__2_in_rule__DtCNotNull__Group_2_1__125455 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCNotNull__Group_2_1__1__Impl25483 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_1__2__Impl_in_rule__DtCNotNull__Group_2_1__225514 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__MsgI18nKeyAssignment_2_1_2_in_rule__DtCNotNull__Group_2_1__2__Impl25541 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_2__0__Impl_in_rule__DtCNotNull__Group_2_2__025577 = new BitSet(new long[]{0x0000000000000000L,0x0000000074000000L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_2__1_in_rule__DtCNotNull__Group_2_2__025580 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_2_0__0_in_rule__DtCNotNull__Group_2_2__0__Impl25607 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_2__1__Impl_in_rule__DtCNotNull__Group_2_2__125638 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_93_in_rule__DtCNotNull__Group_2_2__1__Impl25666 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_2_0__0__Impl_in_rule__DtCNotNull__Group_2_2_0__025701 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_2_0__1_in_rule__DtCNotNull__Group_2_2_0__025704 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_94_in_rule__DtCNotNull__Group_2_2_0__0__Impl25732 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_2_0__1__Impl_in_rule__DtCNotNull__Group_2_2_0__125763 = new BitSet(new long[]{0x0000000000000000L,0x000000000000001CL});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_2_0__2_in_rule__DtCNotNull__Group_2_2_0__125766 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCNotNull__Group_2_2_0__1__Impl25794 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__Group_2_2_0__2__Impl_in_rule__DtCNotNull__Group_2_2_0__225825 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNotNull__SeverityAssignment_2_2_0_2_in_rule__DtCNotNull__Group_2_2_0__2__Impl25852 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__Group__0__Impl_in_rule__DtCNull__Group__025888 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
        public static final BitSet FOLLOW_rule__DtCNull__Group__1_in_rule__DtCNull__Group__025891 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__Group__1__Impl_in_rule__DtCNull__Group__125949 = new BitSet(new long[]{0x0000000000000000L,0x0000000074000000L});
        public static final BitSet FOLLOW_rule__DtCNull__Group__2_in_rule__DtCNull__Group__125952 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_104_in_rule__DtCNull__Group__1__Impl25980 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__Group__2__Impl_in_rule__DtCNull__Group__226011 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__UnorderedGroup_2_in_rule__DtCNull__Group__2__Impl26038 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_0__0__Impl_in_rule__DtCNull__Group_2_0__026075 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_0__1_in_rule__DtCNull__Group_2_0__026078 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_90_in_rule__DtCNull__Group_2_0__0__Impl26106 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_0__1__Impl_in_rule__DtCNull__Group_2_0__126137 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_0_1__0_in_rule__DtCNull__Group_2_0__1__Impl26164 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_0_1__0__Impl_in_rule__DtCNull__Group_2_0_1__026199 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_0_1__1_in_rule__DtCNull__Group_2_0_1__026202 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_91_in_rule__DtCNull__Group_2_0_1__0__Impl26230 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_0_1__1__Impl_in_rule__DtCNull__Group_2_0_1__126261 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_0_1__2_in_rule__DtCNull__Group_2_0_1__126264 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCNull__Group_2_0_1__1__Impl26292 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_0_1__2__Impl_in_rule__DtCNull__Group_2_0_1__226323 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__MsgCodeAssignment_2_0_1_2_in_rule__DtCNull__Group_2_0_1__2__Impl26350 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_1__0__Impl_in_rule__DtCNull__Group_2_1__026386 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_1__1_in_rule__DtCNull__Group_2_1__026389 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_92_in_rule__DtCNull__Group_2_1__0__Impl26417 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_1__1__Impl_in_rule__DtCNull__Group_2_1__126448 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_1__2_in_rule__DtCNull__Group_2_1__126451 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCNull__Group_2_1__1__Impl26479 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_1__2__Impl_in_rule__DtCNull__Group_2_1__226510 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__MsgI18nKeyAssignment_2_1_2_in_rule__DtCNull__Group_2_1__2__Impl26537 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_2__0__Impl_in_rule__DtCNull__Group_2_2__026573 = new BitSet(new long[]{0x0000000000000000L,0x0000000074000000L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_2__1_in_rule__DtCNull__Group_2_2__026576 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_2_0__0_in_rule__DtCNull__Group_2_2__0__Impl26603 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_2__1__Impl_in_rule__DtCNull__Group_2_2__126634 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_93_in_rule__DtCNull__Group_2_2__1__Impl26662 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_2_0__0__Impl_in_rule__DtCNull__Group_2_2_0__026697 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_2_0__1_in_rule__DtCNull__Group_2_2_0__026700 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_94_in_rule__DtCNull__Group_2_2_0__0__Impl26728 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_2_0__1__Impl_in_rule__DtCNull__Group_2_2_0__126759 = new BitSet(new long[]{0x0000000000000000L,0x000000000000001CL});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_2_0__2_in_rule__DtCNull__Group_2_2_0__126762 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCNull__Group_2_2_0__1__Impl26790 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__Group_2_2_0__2__Impl_in_rule__DtCNull__Group_2_2_0__226821 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCNull__SeverityAssignment_2_2_0_2_in_rule__DtCNull__Group_2_2_0__2__Impl26848 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group__0__Impl_in_rule__DtCRegEx__Group__026884 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group__1_in_rule__DtCRegEx__Group__026887 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group__1__Impl_in_rule__DtCRegEx__Group__126945 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group__2_in_rule__DtCRegEx__Group__126948 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_105_in_rule__DtCRegEx__Group__1__Impl26976 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group__2__Impl_in_rule__DtCRegEx__Group__227007 = new BitSet(new long[]{0x0000000000000100L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group__3_in_rule__DtCRegEx__Group__227010 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_86_in_rule__DtCRegEx__Group__2__Impl27038 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group__3__Impl_in_rule__DtCRegEx__Group__327069 = new BitSet(new long[]{0x0000000000000000L,0x0000000074800000L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group__4_in_rule__DtCRegEx__Group__327072 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__PatternAssignment_3_in_rule__DtCRegEx__Group__3__Impl27099 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group__4__Impl_in_rule__DtCRegEx__Group__427129 = new BitSet(new long[]{0x0000000000000000L,0x0000000074800000L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group__5_in_rule__DtCRegEx__Group__427132 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__UnorderedGroup_4_in_rule__DtCRegEx__Group__4__Impl27159 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group__5__Impl_in_rule__DtCRegEx__Group__527190 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__DtCRegEx__Group__5__Impl27218 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_0__0__Impl_in_rule__DtCRegEx__Group_4_0__027261 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_0__1_in_rule__DtCRegEx__Group_4_0__027264 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_90_in_rule__DtCRegEx__Group_4_0__0__Impl27292 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets012 {
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_0__1__Impl_in_rule__DtCRegEx__Group_4_0__127323 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_0_1__0_in_rule__DtCRegEx__Group_4_0__1__Impl27350 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_0_1__0__Impl_in_rule__DtCRegEx__Group_4_0_1__027385 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_0_1__1_in_rule__DtCRegEx__Group_4_0_1__027388 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_91_in_rule__DtCRegEx__Group_4_0_1__0__Impl27416 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_0_1__1__Impl_in_rule__DtCRegEx__Group_4_0_1__127447 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_0_1__2_in_rule__DtCRegEx__Group_4_0_1__127450 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCRegEx__Group_4_0_1__1__Impl27478 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_0_1__2__Impl_in_rule__DtCRegEx__Group_4_0_1__227509 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__MsgCodeAssignment_4_0_1_2_in_rule__DtCRegEx__Group_4_0_1__2__Impl27536 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_1__0__Impl_in_rule__DtCRegEx__Group_4_1__027572 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_1__1_in_rule__DtCRegEx__Group_4_1__027575 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_92_in_rule__DtCRegEx__Group_4_1__0__Impl27603 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_1__1__Impl_in_rule__DtCRegEx__Group_4_1__127634 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_1__2_in_rule__DtCRegEx__Group_4_1__127637 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCRegEx__Group_4_1__1__Impl27665 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_1__2__Impl_in_rule__DtCRegEx__Group_4_1__227696 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__MsgI18nKeyAssignment_4_1_2_in_rule__DtCRegEx__Group_4_1__2__Impl27723 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_2__0__Impl_in_rule__DtCRegEx__Group_4_2__027759 = new BitSet(new long[]{0x0000000000000000L,0x0000000074000000L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_2__1_in_rule__DtCRegEx__Group_4_2__027762 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_2_0__0_in_rule__DtCRegEx__Group_4_2__0__Impl27789 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_2__1__Impl_in_rule__DtCRegEx__Group_4_2__127820 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_93_in_rule__DtCRegEx__Group_4_2__1__Impl27848 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_2_0__0__Impl_in_rule__DtCRegEx__Group_4_2_0__027883 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_2_0__1_in_rule__DtCRegEx__Group_4_2_0__027886 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_94_in_rule__DtCRegEx__Group_4_2_0__0__Impl27914 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_2_0__1__Impl_in_rule__DtCRegEx__Group_4_2_0__127945 = new BitSet(new long[]{0x0000000000000000L,0x000000000000001CL});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_2_0__2_in_rule__DtCRegEx__Group_4_2_0__127948 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCRegEx__Group_4_2_0__1__Impl27976 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__Group_4_2_0__2__Impl_in_rule__DtCRegEx__Group_4_2_0__228007 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCRegEx__SeverityAssignment_4_2_0_2_in_rule__DtCRegEx__Group_4_2_0__2__Impl28034 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group__0__Impl_in_rule__DtCSize__Group__028070 = new BitSet(new long[]{0x0000000000000000L,0x000007E782000000L});
        public static final BitSet FOLLOW_rule__DtCSize__Group__1_in_rule__DtCSize__Group__028073 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group__1__Impl_in_rule__DtCSize__Group__128131 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__DtCSize__Group__2_in_rule__DtCSize__Group__128134 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_106_in_rule__DtCSize__Group__1__Impl28162 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group__2__Impl_in_rule__DtCSize__Group__228193 = new BitSet(new long[]{0x0000000000000040L});
        public static final BitSet FOLLOW_rule__DtCSize__Group__3_in_rule__DtCSize__Group__228196 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_86_in_rule__DtCSize__Group__2__Impl28224 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group__3__Impl_in_rule__DtCSize__Group__328255 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
        public static final BitSet FOLLOW_rule__DtCSize__Group__4_in_rule__DtCSize__Group__328258 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__MinAssignment_3_in_rule__DtCSize__Group__3__Impl28285 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group__4__Impl_in_rule__DtCSize__Group__428315 = new BitSet(new long[]{0x0000000000000040L});
        public static final BitSet FOLLOW_rule__DtCSize__Group__5_in_rule__DtCSize__Group__428318 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_88_in_rule__DtCSize__Group__4__Impl28346 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group__5__Impl_in_rule__DtCSize__Group__528377 = new BitSet(new long[]{0x0000000000000000L,0x0000000074800000L});
        public static final BitSet FOLLOW_rule__DtCSize__Group__6_in_rule__DtCSize__Group__528380 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__MaxAssignment_5_in_rule__DtCSize__Group__5__Impl28407 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group__6__Impl_in_rule__DtCSize__Group__628437 = new BitSet(new long[]{0x0000000000000000L,0x0000000074800000L});
        public static final BitSet FOLLOW_rule__DtCSize__Group__7_in_rule__DtCSize__Group__628440 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__UnorderedGroup_6_in_rule__DtCSize__Group__6__Impl28467 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group__7__Impl_in_rule__DtCSize__Group__728498 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__DtCSize__Group__7__Impl28526 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_0__0__Impl_in_rule__DtCSize__Group_6_0__028573 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_0__1_in_rule__DtCSize__Group_6_0__028576 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_90_in_rule__DtCSize__Group_6_0__0__Impl28604 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_0__1__Impl_in_rule__DtCSize__Group_6_0__128635 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_0_1__0_in_rule__DtCSize__Group_6_0__1__Impl28662 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_0_1__0__Impl_in_rule__DtCSize__Group_6_0_1__028697 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_0_1__1_in_rule__DtCSize__Group_6_0_1__028700 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_91_in_rule__DtCSize__Group_6_0_1__0__Impl28728 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_0_1__1__Impl_in_rule__DtCSize__Group_6_0_1__128759 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_0_1__2_in_rule__DtCSize__Group_6_0_1__128762 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCSize__Group_6_0_1__1__Impl28790 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_0_1__2__Impl_in_rule__DtCSize__Group_6_0_1__228821 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__MsgCodeAssignment_6_0_1_2_in_rule__DtCSize__Group_6_0_1__2__Impl28848 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_1__0__Impl_in_rule__DtCSize__Group_6_1__028884 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_1__1_in_rule__DtCSize__Group_6_1__028887 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_92_in_rule__DtCSize__Group_6_1__0__Impl28915 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_1__1__Impl_in_rule__DtCSize__Group_6_1__128946 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_1__2_in_rule__DtCSize__Group_6_1__128949 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCSize__Group_6_1__1__Impl28977 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_1__2__Impl_in_rule__DtCSize__Group_6_1__229008 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__MsgI18nKeyAssignment_6_1_2_in_rule__DtCSize__Group_6_1__2__Impl29035 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_2__0__Impl_in_rule__DtCSize__Group_6_2__029071 = new BitSet(new long[]{0x0000000000000000L,0x0000000074000000L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_2__1_in_rule__DtCSize__Group_6_2__029074 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_2_0__0_in_rule__DtCSize__Group_6_2__0__Impl29101 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_2__1__Impl_in_rule__DtCSize__Group_6_2__129132 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_93_in_rule__DtCSize__Group_6_2__1__Impl29160 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_2_0__0__Impl_in_rule__DtCSize__Group_6_2_0__029195 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_2_0__1_in_rule__DtCSize__Group_6_2_0__029198 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_94_in_rule__DtCSize__Group_6_2_0__0__Impl29226 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_2_0__1__Impl_in_rule__DtCSize__Group_6_2_0__129257 = new BitSet(new long[]{0x0000000000000000L,0x000000000000001CL});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_2_0__2_in_rule__DtCSize__Group_6_2_0__129260 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__DtCSize__Group_6_2_0__1__Impl29288 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__Group_6_2_0__2__Impl_in_rule__DtCSize__Group_6_2_0__229319 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__DtCSize__SeverityAssignment_6_2_0_2_in_rule__DtCSize__Group_6_2_0__2__Impl29346 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum__Group__0__Impl_in_rule__Enum__Group__029382 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__Enum__Group__1_in_rule__Enum__Group__029385 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_107_in_rule__Enum__Group__0__Impl29413 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum__Group__1__Impl_in_rule__Enum__Group__129444 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
        public static final BitSet FOLLOW_rule__Enum__Group__2_in_rule__Enum__Group__129447 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum__NameAssignment_1_in_rule__Enum__Group__1__Impl29474 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum__Group__2__Impl_in_rule__Enum__Group__229504 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__Enum__Group__3_in_rule__Enum__Group__229507 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_79_in_rule__Enum__Group__2__Impl29535 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum__Group__3__Impl_in_rule__Enum__Group__329566 = new BitSet(new long[]{0x0000000000000000L,0x0000000001010000L});
        public static final BitSet FOLLOW_rule__Enum__Group__4_in_rule__Enum__Group__329569 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum__LiteralsAssignment_3_in_rule__Enum__Group__3__Impl29596 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum__Group__4__Impl_in_rule__Enum__Group__429626 = new BitSet(new long[]{0x0000000000000000L,0x0000000001010000L});
    }

    protected static class FollowSets013 {
        public static final BitSet FOLLOW_rule__Enum__Group__5_in_rule__Enum__Group__429629 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum__Group_4__0_in_rule__Enum__Group__4__Impl29656 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
        public static final BitSet FOLLOW_rule__Enum__Group__5__Impl_in_rule__Enum__Group__529687 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_80_in_rule__Enum__Group__5__Impl29715 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum__Group_4__0__Impl_in_rule__Enum__Group_4__029758 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__Enum__Group_4__1_in_rule__Enum__Group_4__029761 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_88_in_rule__Enum__Group_4__0__Impl29789 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum__Group_4__1__Impl_in_rule__Enum__Group_4__129820 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum__LiteralsAssignment_4_1_in_rule__Enum__Group_4__1__Impl29847 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__EnumLiteral__Group__0__Impl_in_rule__EnumLiteral__Group__029881 = new BitSet(new long[]{0x0000000000000000L,0x0000000000C00000L,0x0000000000001000L});
        public static final BitSet FOLLOW_rule__EnumLiteral__Group__1_in_rule__EnumLiteral__Group__029884 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__EnumLiteral__NameAssignment_0_in_rule__EnumLiteral__Group__0__Impl29911 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__EnumLiteral__Group__1__Impl_in_rule__EnumLiteral__Group__129941 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__EnumLiteral__UnorderedGroup_1_in_rule__EnumLiteral__Group__1__Impl29968 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__EnumLiteral__Group_1_0__0__Impl_in_rule__EnumLiteral__Group_1_0__030003 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000800L});
        public static final BitSet FOLLOW_rule__EnumLiteral__Group_1_0__1_in_rule__EnumLiteral__Group_1_0__030006 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_86_in_rule__EnumLiteral__Group_1_0__0__Impl30034 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__EnumLiteral__Group_1_0__1__Impl_in_rule__EnumLiteral__Group_1_0__130065 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__EnumLiteral__DefaultAssignment_1_0_1_in_rule__EnumLiteral__Group_1_0__1__Impl30092 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__EnumLiteral__Group_1_1__0__Impl_in_rule__EnumLiteral__Group_1_1__030127 = new BitSet(new long[]{0x0000000000000000L,0x0000000000C00000L,0x0000000000001000L});
        public static final BitSet FOLLOW_rule__EnumLiteral__Group_1_1__1_in_rule__EnumLiteral__Group_1_1__030130 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__EnumLiteral__NullAssignment_1_1_0_in_rule__EnumLiteral__Group_1_1__0__Impl30157 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__EnumLiteral__Group_1_1__1__Impl_in_rule__EnumLiteral__Group_1_1__130188 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__EnumLiteral__Group_1_1__2_in_rule__EnumLiteral__Group_1_1__130191 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__EnumLiteral__Group_1_1__1__Impl30219 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__EnumLiteral__Group_1_1__2__Impl_in_rule__EnumLiteral__Group_1_1__230250 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__EnumLiteral__Group_1_1_2__0_in_rule__EnumLiteral__Group_1_1__2__Impl30277 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__EnumLiteral__Group_1_1_2__0__Impl_in_rule__EnumLiteral__Group_1_1_2__030314 = new BitSet(new long[]{0x0000000000000040L});
        public static final BitSet FOLLOW_rule__EnumLiteral__Group_1_1_2__1_in_rule__EnumLiteral__Group_1_1_2__030317 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__EnumLiteral__Group_1_1_2__0__Impl30345 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__EnumLiteral__Group_1_1_2__1__Impl_in_rule__EnumLiteral__Group_1_1_2__130376 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__EnumLiteral__ValueAssignment_1_1_2_1_in_rule__EnumLiteral__Group_1_1_2__1__Impl30403 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__AnnotationDef__Group__0__Impl_in_rule__AnnotationDef__Group__030437 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__AnnotationDef__AnnotationAssignment_0_in_rule__AnnotationDef__Group__0__Impl30464 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__AttributeMatchingConstraint__Group__0__Impl_in_rule__AttributeMatchingConstraint__Group__030497 = new BitSet(new long[]{0x00021C4000000000L,0x0000000000000800L});
        public static final BitSet FOLLOW_rule__AttributeMatchingConstraint__Group__1_in_rule__AttributeMatchingConstraint__Group__030500 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__AttributeMatchingConstraint__AttributeAssignment_0_in_rule__AttributeMatchingConstraint__Group__0__Impl30527 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__AttributeMatchingConstraint__Group__1__Impl_in_rule__AttributeMatchingConstraint__Group__130557 = new BitSet(new long[]{0x0000000000000110L});
        public static final BitSet FOLLOW_rule__AttributeMatchingConstraint__Group__2_in_rule__AttributeMatchingConstraint__Group__130560 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__AttributeMatchingConstraint__ComparatorTypeAssignment_1_in_rule__AttributeMatchingConstraint__Group__1__Impl30587 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__AttributeMatchingConstraint__Group__2__Impl_in_rule__AttributeMatchingConstraint__Group__230617 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
        public static final BitSet FOLLOW_rule__AttributeMatchingConstraint__Group__3_in_rule__AttributeMatchingConstraint__Group__230620 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__AttributeMatchingConstraint__Alternatives_2_in_rule__AttributeMatchingConstraint__Group__2__Impl30647 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__AttributeMatchingConstraint__Group__3__Impl_in_rule__AttributeMatchingConstraint__Group__330677 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_82_in_rule__AttributeMatchingConstraint__Group__3__Impl30706 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__KeyAndValue__Group__0__Impl_in_rule__KeyAndValue__Group__030747 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__KeyAndValue__Group__1_in_rule__KeyAndValue__Group__030750 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_108_in_rule__KeyAndValue__Group__0__Impl30778 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__KeyAndValue__Group__1__Impl_in_rule__KeyAndValue__Group__130809 = new BitSet(new long[]{0x0000000000000100L});
        public static final BitSet FOLLOW_rule__KeyAndValue__Group__2_in_rule__KeyAndValue__Group__130812 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__KeyAndValue__Group__1__Impl30840 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__KeyAndValue__Group__2__Impl_in_rule__KeyAndValue__Group__230871 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L});
        public static final BitSet FOLLOW_rule__KeyAndValue__Group__3_in_rule__KeyAndValue__Group__230874 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__KeyAndValue__KeyAssignment_2_in_rule__KeyAndValue__Group__2__Impl30901 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__KeyAndValue__Group__3__Impl_in_rule__KeyAndValue__Group__330931 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__KeyAndValue__Group__4_in_rule__KeyAndValue__Group__330934 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_109_in_rule__KeyAndValue__Group__3__Impl30962 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__KeyAndValue__Group__4__Impl_in_rule__KeyAndValue__Group__430993 = new BitSet(new long[]{0x0000000000000100L});
        public static final BitSet FOLLOW_rule__KeyAndValue__Group__5_in_rule__KeyAndValue__Group__430996 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__KeyAndValue__Group__4__Impl31024 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__KeyAndValue__Group__5__Impl_in_rule__KeyAndValue__Group__531055 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__KeyAndValue__ValueAssignment_5_in_rule__KeyAndValue__Group__5__Impl31082 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__LQualifiedNameWithWildCard__Group__0__Impl_in_rule__LQualifiedNameWithWildCard__Group__031124 = new BitSet(new long[]{0x0400000000000000L});
        public static final BitSet FOLLOW_rule__LQualifiedNameWithWildCard__Group__1_in_rule__LQualifiedNameWithWildCard__Group__031127 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleQualifiedName_in_rule__LQualifiedNameWithWildCard__Group__0__Impl31154 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__LQualifiedNameWithWildCard__Group__1__Impl_in_rule__LQualifiedNameWithWildCard__Group__131183 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__LQualifiedNameWithWildCard__Group_1__0_in_rule__LQualifiedNameWithWildCard__Group__1__Impl31210 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__LQualifiedNameWithWildCard__Group_1__0__Impl_in_rule__LQualifiedNameWithWildCard__Group_1__031245 = new BitSet(new long[]{0x0008000000000000L});
        public static final BitSet FOLLOW_rule__LQualifiedNameWithWildCard__Group_1__1_in_rule__LQualifiedNameWithWildCard__Group_1__031248 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_58_in_rule__LQualifiedNameWithWildCard__Group_1__0__Impl31276 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__LQualifiedNameWithWildCard__Group_1__1__Impl_in_rule__LQualifiedNameWithWildCard__Group_1__131307 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__LQualifiedNameWithWildCard__Group_1__1__Impl31335 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__ValidIDWithKeywords__Group_5__0__Impl_in_rule__ValidIDWithKeywords__Group_5__031372 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
        public static final BitSet FOLLOW_rule__ValidIDWithKeywords__Group_5__1_in_rule__ValidIDWithKeywords__Group_5__031375 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_110_in_rule__ValidIDWithKeywords__Group_5__0__Impl31403 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__ValidIDWithKeywords__Group_5__1__Impl_in_rule__ValidIDWithKeywords__Group_5__131434 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_111_in_rule__ValidIDWithKeywords__Group_5__1__Impl31462 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__LInt__Group__0__Impl_in_rule__LInt__Group__031501 = new BitSet(new long[]{0x0000000180000040L});
        public static final BitSet FOLLOW_rule__LInt__Group__1_in_rule__LInt__Group__031504 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__LInt__Alternatives_0_in_rule__LInt__Group__0__Impl31531 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__LInt__Group__1__Impl_in_rule__LInt__Group__131562 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_INT_in_rule__LInt__Group__1__Impl31589 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__LDecimal__Group__0__Impl_in_rule__LDecimal__Group__031622 = new BitSet(new long[]{0x0400000000000000L});
        public static final BitSet FOLLOW_rule__LDecimal__Group__1_in_rule__LDecimal__Group__031625 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleLInt_in_rule__LDecimal__Group__0__Impl31652 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__LDecimal__Group__1__Impl_in_rule__LDecimal__Group__131681 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__LDecimal__Group_1__0_in_rule__LDecimal__Group__1__Impl31708 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__LDecimal__Group_1__0__Impl_in_rule__LDecimal__Group_1__031743 = new BitSet(new long[]{0x0000000000000040L});
        public static final BitSet FOLLOW_rule__LDecimal__Group_1__1_in_rule__LDecimal__Group_1__031746 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_58_in_rule__LDecimal__Group_1__0__Impl31774 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__LDecimal__Group_1__1__Impl_in_rule__LDecimal__Group_1__131805 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_INT_in_rule__LDecimal__Group_1__1__Impl31832 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group__0__Impl_in_rule__XAnnotation__Group__031865 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group__1_in_rule__XAnnotation__Group__031868 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group__1__Impl_in_rule__XAnnotation__Group__131926 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group__2_in_rule__XAnnotation__Group__131929 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_112_in_rule__XAnnotation__Group__1__Impl31957 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group__2__Impl_in_rule__XAnnotation__Group__231988 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group__3_in_rule__XAnnotation__Group__231991 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__AnnotationTypeAssignment_2_in_rule__XAnnotation__Group__2__Impl32018 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets014 {
        public static final BitSet FOLLOW_rule__XAnnotation__Group__3__Impl_in_rule__XAnnotation__Group__332048 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3__0_in_rule__XAnnotation__Group__3__Impl32075 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3__0__Impl_in_rule__XAnnotation__Group_3__032114 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004C08003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3__1_in_rule__XAnnotation__Group_3__032117 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_86_in_rule__XAnnotation__Group_3__0__Impl32146 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3__1__Impl_in_rule__XAnnotation__Group_3__132178 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004C08003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3__2_in_rule__XAnnotation__Group_3__132181 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Alternatives_3_1_in_rule__XAnnotation__Group_3__1__Impl32208 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3__2__Impl_in_rule__XAnnotation__Group_3__232239 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__XAnnotation__Group_3__2__Impl32267 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3_1_0__0__Impl_in_rule__XAnnotation__Group_3_1_0__032304 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3_1_0__1_in_rule__XAnnotation__Group_3_1_0__032307 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0_in_rule__XAnnotation__Group_3_1_0__0__Impl32334 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3_1_0__1__Impl_in_rule__XAnnotation__Group_3_1_0__132364 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3_1_0_1__0_in_rule__XAnnotation__Group_3_1_0__1__Impl32391 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3_1_0_1__0__Impl_in_rule__XAnnotation__Group_3_1_0_1__032426 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3_1_0_1__1_in_rule__XAnnotation__Group_3_1_0_1__032429 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_113_in_rule__XAnnotation__Group_3_1_0_1__0__Impl32457 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3_1_0_1__1__Impl_in_rule__XAnnotation__Group_3_1_0_1__132488 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1_in_rule__XAnnotation__Group_3_1_0_1__1__Impl32515 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__Group__0__Impl_in_rule__XAnnotationElementValuePair__Group__032549 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__Group__1_in_rule__XAnnotationElementValuePair__Group__032552 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__Group_0__0_in_rule__XAnnotationElementValuePair__Group__0__Impl32579 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__Group__1__Impl_in_rule__XAnnotationElementValuePair__Group__132609 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__ValueAssignment_1_in_rule__XAnnotationElementValuePair__Group__1__Impl32636 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__Group_0__0__Impl_in_rule__XAnnotationElementValuePair__Group_0__032670 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__Group_0_0__0_in_rule__XAnnotationElementValuePair__Group_0__0__Impl32697 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__Group_0_0__0__Impl_in_rule__XAnnotationElementValuePair__Group_0_0__032729 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__Group_0_0__1_in_rule__XAnnotationElementValuePair__Group_0_0__032732 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__ElementAssignment_0_0_0_in_rule__XAnnotationElementValuePair__Group_0_0__0__Impl32759 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__Group_0_0__1__Impl_in_rule__XAnnotationElementValuePair__Group_0_0__132789 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__XAnnotationElementValuePair__Group_0_0__1__Impl32817 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_0__032852 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000024408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0__1_in_rule__XAnnotationElementValueOrCommaList__Group_0__032855 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_0__0_in_rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl32882 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_0__132912 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000024408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0__2_in_rule__XAnnotationElementValueOrCommaList__Group_0__132915 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_1__0_in_rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl32942 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_0__232973 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_93_in_rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl33001 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_0_0__033038 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0_in_rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl33065 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_0_0_0__033097 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1_in_rule__XAnnotationElementValueOrCommaList__Group_0_0_0__033100 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_0_0_0__133158 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2_in_rule__XAnnotationElementValueOrCommaList__Group_0_0_0__133161 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_114_in_rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl33189 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_0_0_0__233220 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_90_in_rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl33248 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_0_1__033285 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_1__1_in_rule__XAnnotationElementValueOrCommaList__Group_0_1__033288 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0_in_rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl33315 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_0_1__133345 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0_in_rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl33372 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_0_1_1__033407 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1_in_rule__XAnnotationElementValueOrCommaList__Group_0_1_1__033410 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_113_in_rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl33438 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_0_1_1__133469 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1_in_rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl33496 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_1__033530 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1__1_in_rule__XAnnotationElementValueOrCommaList__Group_1__033533 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAnnotationOrExpression_in_rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl33560 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_1__133589 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1_1__0_in_rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl33616 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_1_1__033651 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1_1__1_in_rule__XAnnotationElementValueOrCommaList__Group_1_1__033654 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_1_1__133712 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0_in_rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl33741 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0_in_rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl33753 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_1_1_1__033790 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1_in_rule__XAnnotationElementValueOrCommaList__Group_1_1_1__033793 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_113_in_rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl33821 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_1_1_1__133852 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1_in_rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl33879 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0__0__Impl_in_rule__XAnnotationElementValue__Group_0__033913 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000024408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0__1_in_rule__XAnnotationElementValue__Group_0__033916 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_0__0_in_rule__XAnnotationElementValue__Group_0__0__Impl33943 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0__1__Impl_in_rule__XAnnotationElementValue__Group_0__133973 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000024408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0__2_in_rule__XAnnotationElementValue__Group_0__133976 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_1__0_in_rule__XAnnotationElementValue__Group_0__1__Impl34003 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0__2__Impl_in_rule__XAnnotationElementValue__Group_0__234034 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_93_in_rule__XAnnotationElementValue__Group_0__2__Impl34062 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_0__0__Impl_in_rule__XAnnotationElementValue__Group_0_0__034099 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_0_0__0_in_rule__XAnnotationElementValue__Group_0_0__0__Impl34126 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_0_0__0__Impl_in_rule__XAnnotationElementValue__Group_0_0_0__034158 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_0_0__1_in_rule__XAnnotationElementValue__Group_0_0_0__034161 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_0_0__1__Impl_in_rule__XAnnotationElementValue__Group_0_0_0__134219 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_0_0__2_in_rule__XAnnotationElementValue__Group_0_0_0__134222 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_114_in_rule__XAnnotationElementValue__Group_0_0_0__1__Impl34250 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_0_0__2__Impl_in_rule__XAnnotationElementValue__Group_0_0_0__234281 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_90_in_rule__XAnnotationElementValue__Group_0_0_0__2__Impl34309 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_1__0__Impl_in_rule__XAnnotationElementValue__Group_0_1__034346 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_1__1_in_rule__XAnnotationElementValue__Group_0_1__034349 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__ElementsAssignment_0_1_0_in_rule__XAnnotationElementValue__Group_0_1__0__Impl34376 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_1__1__Impl_in_rule__XAnnotationElementValue__Group_0_1__134406 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_1_1__0_in_rule__XAnnotationElementValue__Group_0_1__1__Impl34433 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_1_1__0__Impl_in_rule__XAnnotationElementValue__Group_0_1_1__034468 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_1_1__1_in_rule__XAnnotationElementValue__Group_0_1_1__034471 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_113_in_rule__XAnnotationElementValue__Group_0_1_1__0__Impl34499 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_1_1__1__Impl_in_rule__XAnnotationElementValue__Group_0_1_1__134530 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets015 {
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1_in_rule__XAnnotationElementValue__Group_0_1_1__1__Impl34557 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_0__0__Impl_in_rule__XAssignment__Group_0__034591 = new BitSet(new long[]{0xF000000000000010L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_0__1_in_rule__XAssignment__Group_0__034594 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_0__1__Impl_in_rule__XAssignment__Group_0__134652 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_0__2_in_rule__XAssignment__Group_0__134655 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__FeatureAssignment_0_1_in_rule__XAssignment__Group_0__1__Impl34682 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_0__2__Impl_in_rule__XAssignment__Group_0__234712 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XAssignment__Group_0__3_in_rule__XAssignment__Group_0__234715 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpSingleAssign_in_rule__XAssignment__Group_0__2__Impl34742 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_0__3__Impl_in_rule__XAssignment__Group_0__334771 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__ValueAssignment_0_3_in_rule__XAssignment__Group_0__3__Impl34798 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1__0__Impl_in_rule__XAssignment__Group_1__034836 = new BitSet(new long[]{0x0000183E00000000L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1__1_in_rule__XAssignment__Group_1__034839 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXOrExpression_in_rule__XAssignment__Group_1__0__Impl34866 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1__1__Impl_in_rule__XAssignment__Group_1__134895 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1_1__0_in_rule__XAssignment__Group_1__1__Impl34922 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1_1__0__Impl_in_rule__XAssignment__Group_1_1__034957 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1_1__1_in_rule__XAssignment__Group_1_1__034960 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1_1_0__0_in_rule__XAssignment__Group_1_1__0__Impl34987 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1_1__1__Impl_in_rule__XAssignment__Group_1_1__135017 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__RightOperandAssignment_1_1_1_in_rule__XAssignment__Group_1_1__1__Impl35044 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1_1_0__0__Impl_in_rule__XAssignment__Group_1_1_0__035078 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1_1_0_0__0_in_rule__XAssignment__Group_1_1_0__0__Impl35105 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1_1_0_0__0__Impl_in_rule__XAssignment__Group_1_1_0_0__035137 = new BitSet(new long[]{0x0000183E00000000L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1_1_0_0__1_in_rule__XAssignment__Group_1_1_0_0__035140 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1_1_0_0__1__Impl_in_rule__XAssignment__Group_1_1_0_0__135198 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__FeatureAssignment_1_1_0_0_1_in_rule__XAssignment__Group_1_1_0_0__1__Impl35225 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_5__0__Impl_in_rule__OpMultiAssign__Group_5__035259 = new BitSet(new long[]{0x0000100000000000L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_5__1_in_rule__OpMultiAssign__Group_5__035262 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_44_in_rule__OpMultiAssign__Group_5__0__Impl35290 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_5__1__Impl_in_rule__OpMultiAssign__Group_5__135321 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_5__2_in_rule__OpMultiAssign__Group_5__135324 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_44_in_rule__OpMultiAssign__Group_5__1__Impl35352 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_5__2__Impl_in_rule__OpMultiAssign__Group_5__235383 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__OpMultiAssign__Group_5__2__Impl35411 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_6__0__Impl_in_rule__OpMultiAssign__Group_6__035448 = new BitSet(new long[]{0x00000C0000000000L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_6__1_in_rule__OpMultiAssign__Group_6__035451 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__OpMultiAssign__Group_6__0__Impl35479 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_6__1__Impl_in_rule__OpMultiAssign__Group_6__135510 = new BitSet(new long[]{0x00000C0000000000L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_6__2_in_rule__OpMultiAssign__Group_6__135513 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__OpMultiAssign__Group_6__1__Impl35542 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_6__2__Impl_in_rule__OpMultiAssign__Group_6__235575 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_42_in_rule__OpMultiAssign__Group_6__2__Impl35603 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group__0__Impl_in_rule__XOrExpression__Group__035640 = new BitSet(new long[]{0x0000000000004000L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group__1_in_rule__XOrExpression__Group__035643 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAndExpression_in_rule__XOrExpression__Group__0__Impl35670 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group__1__Impl_in_rule__XOrExpression__Group__135699 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group_1__0_in_rule__XOrExpression__Group__1__Impl35726 = new BitSet(new long[]{0x0000000000004002L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group_1__0__Impl_in_rule__XOrExpression__Group_1__035761 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XOrExpression__Group_1__1_in_rule__XOrExpression__Group_1__035764 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group_1_0__0_in_rule__XOrExpression__Group_1__0__Impl35791 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group_1__1__Impl_in_rule__XOrExpression__Group_1__135821 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__RightOperandAssignment_1_1_in_rule__XOrExpression__Group_1__1__Impl35848 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group_1_0__0__Impl_in_rule__XOrExpression__Group_1_0__035882 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group_1_0_0__0_in_rule__XOrExpression__Group_1_0__0__Impl35909 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group_1_0_0__0__Impl_in_rule__XOrExpression__Group_1_0_0__035941 = new BitSet(new long[]{0x0000000000004000L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group_1_0_0__1_in_rule__XOrExpression__Group_1_0_0__035944 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group_1_0_0__1__Impl_in_rule__XOrExpression__Group_1_0_0__136002 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__FeatureAssignment_1_0_0_1_in_rule__XOrExpression__Group_1_0_0__1__Impl36029 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group__0__Impl_in_rule__XAndExpression__Group__036063 = new BitSet(new long[]{0x0000000000008000L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group__1_in_rule__XAndExpression__Group__036066 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXEqualityExpression_in_rule__XAndExpression__Group__0__Impl36093 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group__1__Impl_in_rule__XAndExpression__Group__136122 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group_1__0_in_rule__XAndExpression__Group__1__Impl36149 = new BitSet(new long[]{0x0000000000008002L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group_1__0__Impl_in_rule__XAndExpression__Group_1__036184 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XAndExpression__Group_1__1_in_rule__XAndExpression__Group_1__036187 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group_1_0__0_in_rule__XAndExpression__Group_1__0__Impl36214 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group_1__1__Impl_in_rule__XAndExpression__Group_1__136244 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__RightOperandAssignment_1_1_in_rule__XAndExpression__Group_1__1__Impl36271 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group_1_0__0__Impl_in_rule__XAndExpression__Group_1_0__036305 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group_1_0_0__0_in_rule__XAndExpression__Group_1_0__0__Impl36332 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group_1_0_0__0__Impl_in_rule__XAndExpression__Group_1_0_0__036364 = new BitSet(new long[]{0x0000000000008000L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group_1_0_0__1_in_rule__XAndExpression__Group_1_0_0__036367 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group_1_0_0__1__Impl_in_rule__XAndExpression__Group_1_0_0__136425 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__FeatureAssignment_1_0_0_1_in_rule__XAndExpression__Group_1_0_0__1__Impl36452 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group__0__Impl_in_rule__XEqualityExpression__Group__036486 = new BitSet(new long[]{0x000003C000000000L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group__1_in_rule__XEqualityExpression__Group__036489 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXRelationalExpression_in_rule__XEqualityExpression__Group__0__Impl36516 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group__1__Impl_in_rule__XEqualityExpression__Group__136545 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1__0_in_rule__XEqualityExpression__Group__1__Impl36572 = new BitSet(new long[]{0x000003C000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1__0__Impl_in_rule__XEqualityExpression__Group_1__036607 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1__1_in_rule__XEqualityExpression__Group_1__036610 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1_0__0_in_rule__XEqualityExpression__Group_1__0__Impl36637 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1__1__Impl_in_rule__XEqualityExpression__Group_1__136667 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__RightOperandAssignment_1_1_in_rule__XEqualityExpression__Group_1__1__Impl36694 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1_0__0__Impl_in_rule__XEqualityExpression__Group_1_0__036728 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1_0_0__0_in_rule__XEqualityExpression__Group_1_0__0__Impl36755 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1_0_0__0__Impl_in_rule__XEqualityExpression__Group_1_0_0__036787 = new BitSet(new long[]{0x000003C000000000L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1_0_0__1_in_rule__XEqualityExpression__Group_1_0_0__036790 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1_0_0__1__Impl_in_rule__XEqualityExpression__Group_1_0_0__136848 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__FeatureAssignment_1_0_0_1_in_rule__XEqualityExpression__Group_1_0_0__1__Impl36875 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group__0__Impl_in_rule__XRelationalExpression__Group__036909 = new BitSet(new long[]{0x00001C0000000000L,0x0008000000000000L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group__1_in_rule__XRelationalExpression__Group__036912 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXOtherOperatorExpression_in_rule__XRelationalExpression__Group__0__Impl36939 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group__1__Impl_in_rule__XRelationalExpression__Group__136968 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Alternatives_1_in_rule__XRelationalExpression__Group__1__Impl36995 = new BitSet(new long[]{0x00001C0000000002L,0x0008000000000000L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0__0__Impl_in_rule__XRelationalExpression__Group_1_0__037030 = new BitSet(new long[]{0x0001000000000010L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0__1_in_rule__XRelationalExpression__Group_1_0__037033 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0_0__0_in_rule__XRelationalExpression__Group_1_0__0__Impl37060 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0__1__Impl_in_rule__XRelationalExpression__Group_1_0__137090 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets016 {
        public static final BitSet FOLLOW_rule__XRelationalExpression__TypeAssignment_1_0_1_in_rule__XRelationalExpression__Group_1_0__1__Impl37117 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0_0__0__Impl_in_rule__XRelationalExpression__Group_1_0_0__037151 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0_0_0__0_in_rule__XRelationalExpression__Group_1_0_0__0__Impl37178 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0_0_0__0__Impl_in_rule__XRelationalExpression__Group_1_0_0_0__037210 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0_0_0__1_in_rule__XRelationalExpression__Group_1_0_0_0__037213 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0_0_0__1__Impl_in_rule__XRelationalExpression__Group_1_0_0_0__137271 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_115_in_rule__XRelationalExpression__Group_1_0_0_0__1__Impl37299 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1__0__Impl_in_rule__XRelationalExpression__Group_1_1__037334 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1__1_in_rule__XRelationalExpression__Group_1_1__037337 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1_0__0_in_rule__XRelationalExpression__Group_1_1__0__Impl37364 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1__1__Impl_in_rule__XRelationalExpression__Group_1_1__137394 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__RightOperandAssignment_1_1_1_in_rule__XRelationalExpression__Group_1_1__1__Impl37421 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1_0__0__Impl_in_rule__XRelationalExpression__Group_1_1_0__037455 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1_0_0__0_in_rule__XRelationalExpression__Group_1_1_0__0__Impl37482 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1_0_0__0__Impl_in_rule__XRelationalExpression__Group_1_1_0_0__037514 = new BitSet(new long[]{0x00001C0000000000L,0x0008000000000000L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1_0_0__1_in_rule__XRelationalExpression__Group_1_1_0_0__037517 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1_0_0__1__Impl_in_rule__XRelationalExpression__Group_1_1_0_0__137575 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1_in_rule__XRelationalExpression__Group_1_1_0_0__1__Impl37602 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpCompare__Group_1__0__Impl_in_rule__OpCompare__Group_1__037636 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__OpCompare__Group_1__1_in_rule__OpCompare__Group_1__037639 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_44_in_rule__OpCompare__Group_1__0__Impl37667 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpCompare__Group_1__1__Impl_in_rule__OpCompare__Group_1__137698 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__OpCompare__Group_1__1__Impl37726 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group__0__Impl_in_rule__XOtherOperatorExpression__Group__037761 = new BitSet(new long[]{0x0007F80000000000L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group__1_in_rule__XOtherOperatorExpression__Group__037764 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAdditiveExpression_in_rule__XOtherOperatorExpression__Group__0__Impl37791 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group__1__Impl_in_rule__XOtherOperatorExpression__Group__137820 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1__0_in_rule__XOtherOperatorExpression__Group__1__Impl37847 = new BitSet(new long[]{0x0007F80000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1__0__Impl_in_rule__XOtherOperatorExpression__Group_1__037882 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1__1_in_rule__XOtherOperatorExpression__Group_1__037885 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1_0__0_in_rule__XOtherOperatorExpression__Group_1__0__Impl37912 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1__1__Impl_in_rule__XOtherOperatorExpression__Group_1__137942 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__RightOperandAssignment_1_1_in_rule__XOtherOperatorExpression__Group_1__1__Impl37969 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1_0__0__Impl_in_rule__XOtherOperatorExpression__Group_1_0__038003 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1_0_0__0_in_rule__XOtherOperatorExpression__Group_1_0__0__Impl38030 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1_0_0__0__Impl_in_rule__XOtherOperatorExpression__Group_1_0_0__038062 = new BitSet(new long[]{0x0007F80000000000L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1_0_0__1_in_rule__XOtherOperatorExpression__Group_1_0_0__038065 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1_0_0__1__Impl_in_rule__XOtherOperatorExpression__Group_1_0_0__138123 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1_in_rule__XOtherOperatorExpression__Group_1_0_0__1__Impl38150 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_2__0__Impl_in_rule__OpOther__Group_2__038184 = new BitSet(new long[]{0x0000800000000000L});
        public static final BitSet FOLLOW_rule__OpOther__Group_2__1_in_rule__OpOther__Group_2__038187 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__OpOther__Group_2__0__Impl38215 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_2__1__Impl_in_rule__OpOther__Group_2__138246 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_47_in_rule__OpOther__Group_2__1__Impl38274 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_5__0__Impl_in_rule__OpOther__Group_5__038309 = new BitSet(new long[]{0x0000080000000000L});
        public static final BitSet FOLLOW_rule__OpOther__Group_5__1_in_rule__OpOther__Group_5__038312 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__OpOther__Group_5__0__Impl38340 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_5__1__Impl_in_rule__OpOther__Group_5__138371 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Alternatives_5_1_in_rule__OpOther__Group_5__1__Impl38398 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_5_1_0__0__Impl_in_rule__OpOther__Group_5_1_0__038432 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_5_1_0_0__0_in_rule__OpOther__Group_5_1_0__0__Impl38459 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_5_1_0_0__0__Impl_in_rule__OpOther__Group_5_1_0_0__038491 = new BitSet(new long[]{0x0000080000000000L});
        public static final BitSet FOLLOW_rule__OpOther__Group_5_1_0_0__1_in_rule__OpOther__Group_5_1_0_0__038494 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__OpOther__Group_5_1_0_0__0__Impl38522 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_5_1_0_0__1__Impl_in_rule__OpOther__Group_5_1_0_0__138553 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__OpOther__Group_5_1_0_0__1__Impl38581 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_6__0__Impl_in_rule__OpOther__Group_6__038616 = new BitSet(new long[]{0x0001100000000000L});
        public static final BitSet FOLLOW_rule__OpOther__Group_6__1_in_rule__OpOther__Group_6__038619 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_44_in_rule__OpOther__Group_6__0__Impl38647 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_6__1__Impl_in_rule__OpOther__Group_6__138678 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Alternatives_6_1_in_rule__OpOther__Group_6__1__Impl38705 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_6_1_0__0__Impl_in_rule__OpOther__Group_6_1_0__038739 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_6_1_0_0__0_in_rule__OpOther__Group_6_1_0__0__Impl38766 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_6_1_0_0__0__Impl_in_rule__OpOther__Group_6_1_0_0__038798 = new BitSet(new long[]{0x0000100000000000L});
        public static final BitSet FOLLOW_rule__OpOther__Group_6_1_0_0__1_in_rule__OpOther__Group_6_1_0_0__038801 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_44_in_rule__OpOther__Group_6_1_0_0__0__Impl38829 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_6_1_0_0__1__Impl_in_rule__OpOther__Group_6_1_0_0__138860 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_44_in_rule__OpOther__Group_6_1_0_0__1__Impl38888 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAdditiveExpression__Group__0__Impl_in_rule__XAdditiveExpression__Group__038923 = new BitSet(new long[]{0x0000000180000000L});
        public static final BitSet FOLLOW_rule__XAdditiveExpression__Group__1_in_rule__XAdditiveExpression__Group__038926 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXMultiplicativeExpression_in_rule__XAdditiveExpression__Group__0__Impl38953 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAdditiveExpression__Group__1__Impl_in_rule__XAdditiveExpression__Group__138982 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1__0_in_rule__XAdditiveExpression__Group__1__Impl39009 = new BitSet(new long[]{0x0000000180000002L});
        public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1__0__Impl_in_rule__XAdditiveExpression__Group_1__039044 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1__1_in_rule__XAdditiveExpression__Group_1__039047 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1_0__0_in_rule__XAdditiveExpression__Group_1__0__Impl39074 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1__1__Impl_in_rule__XAdditiveExpression__Group_1__139104 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAdditiveExpression__RightOperandAssignment_1_1_in_rule__XAdditiveExpression__Group_1__1__Impl39131 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1_0__0__Impl_in_rule__XAdditiveExpression__Group_1_0__039165 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1_0_0__0_in_rule__XAdditiveExpression__Group_1_0__0__Impl39192 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1_0_0__0__Impl_in_rule__XAdditiveExpression__Group_1_0_0__039224 = new BitSet(new long[]{0x0000000180000000L});
        public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1_0_0__1_in_rule__XAdditiveExpression__Group_1_0_0__039227 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1_0_0__1__Impl_in_rule__XAdditiveExpression__Group_1_0_0__139285 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAdditiveExpression__FeatureAssignment_1_0_0_1_in_rule__XAdditiveExpression__Group_1_0_0__1__Impl39312 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group__0__Impl_in_rule__XMultiplicativeExpression__Group__039346 = new BitSet(new long[]{0x0078000000000000L});
        public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group__1_in_rule__XMultiplicativeExpression__Group__039349 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXUnaryOperation_in_rule__XMultiplicativeExpression__Group__0__Impl39376 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group__1__Impl_in_rule__XMultiplicativeExpression__Group__139405 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1__0_in_rule__XMultiplicativeExpression__Group__1__Impl39432 = new BitSet(new long[]{0x0078000000000002L});
        public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1__0__Impl_in_rule__XMultiplicativeExpression__Group_1__039467 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1__1_in_rule__XMultiplicativeExpression__Group_1__039470 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1_0__0_in_rule__XMultiplicativeExpression__Group_1__0__Impl39497 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1__1__Impl_in_rule__XMultiplicativeExpression__Group_1__139527 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMultiplicativeExpression__RightOperandAssignment_1_1_in_rule__XMultiplicativeExpression__Group_1__1__Impl39554 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1_0__0__Impl_in_rule__XMultiplicativeExpression__Group_1_0__039588 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1_0_0__0_in_rule__XMultiplicativeExpression__Group_1_0__0__Impl39615 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1_0_0__0__Impl_in_rule__XMultiplicativeExpression__Group_1_0_0__039647 = new BitSet(new long[]{0x0078000000000000L});
        public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1_0_0__1_in_rule__XMultiplicativeExpression__Group_1_0_0__039650 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1_0_0__1__Impl_in_rule__XMultiplicativeExpression__Group_1_0_0__139708 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1_in_rule__XMultiplicativeExpression__Group_1_0_0__1__Impl39735 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets017 {
        public static final BitSet FOLLOW_rule__XUnaryOperation__Group_0__0__Impl_in_rule__XUnaryOperation__Group_0__039769 = new BitSet(new long[]{0x0080000180000000L});
        public static final BitSet FOLLOW_rule__XUnaryOperation__Group_0__1_in_rule__XUnaryOperation__Group_0__039772 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XUnaryOperation__Group_0__1__Impl_in_rule__XUnaryOperation__Group_0__139830 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XUnaryOperation__Group_0__2_in_rule__XUnaryOperation__Group_0__139833 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XUnaryOperation__FeatureAssignment_0_1_in_rule__XUnaryOperation__Group_0__1__Impl39860 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XUnaryOperation__Group_0__2__Impl_in_rule__XUnaryOperation__Group_0__239890 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XUnaryOperation__OperandAssignment_0_2_in_rule__XUnaryOperation__Group_0__2__Impl39917 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCastedExpression__Group__0__Impl_in_rule__XCastedExpression__Group__039953 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
        public static final BitSet FOLLOW_rule__XCastedExpression__Group__1_in_rule__XCastedExpression__Group__039956 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXPostfixOperation_in_rule__XCastedExpression__Group__0__Impl39983 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCastedExpression__Group__1__Impl_in_rule__XCastedExpression__Group__140012 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCastedExpression__Group_1__0_in_rule__XCastedExpression__Group__1__Impl40039 = new BitSet(new long[]{0x0000000000000002L,0x0010000000000000L});
        public static final BitSet FOLLOW_rule__XCastedExpression__Group_1__0__Impl_in_rule__XCastedExpression__Group_1__040074 = new BitSet(new long[]{0x0001000000000010L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__XCastedExpression__Group_1__1_in_rule__XCastedExpression__Group_1__040077 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCastedExpression__Group_1_0__0_in_rule__XCastedExpression__Group_1__0__Impl40104 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCastedExpression__Group_1__1__Impl_in_rule__XCastedExpression__Group_1__140134 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCastedExpression__TypeAssignment_1_1_in_rule__XCastedExpression__Group_1__1__Impl40161 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCastedExpression__Group_1_0__0__Impl_in_rule__XCastedExpression__Group_1_0__040195 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCastedExpression__Group_1_0_0__0_in_rule__XCastedExpression__Group_1_0__0__Impl40222 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCastedExpression__Group_1_0_0__0__Impl_in_rule__XCastedExpression__Group_1_0_0__040254 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
        public static final BitSet FOLLOW_rule__XCastedExpression__Group_1_0_0__1_in_rule__XCastedExpression__Group_1_0_0__040257 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCastedExpression__Group_1_0_0__1__Impl_in_rule__XCastedExpression__Group_1_0_0__140315 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_116_in_rule__XCastedExpression__Group_1_0_0__1__Impl40343 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XPostfixOperation__Group__0__Impl_in_rule__XPostfixOperation__Group__040378 = new BitSet(new long[]{0x0300000000000000L});
        public static final BitSet FOLLOW_rule__XPostfixOperation__Group__1_in_rule__XPostfixOperation__Group__040381 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXMemberFeatureCall_in_rule__XPostfixOperation__Group__0__Impl40408 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XPostfixOperation__Group__1__Impl_in_rule__XPostfixOperation__Group__140437 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XPostfixOperation__Group_1__0_in_rule__XPostfixOperation__Group__1__Impl40464 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XPostfixOperation__Group_1__0__Impl_in_rule__XPostfixOperation__Group_1__040499 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XPostfixOperation__Group_1_0__0_in_rule__XPostfixOperation__Group_1__0__Impl40526 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XPostfixOperation__Group_1_0__0__Impl_in_rule__XPostfixOperation__Group_1_0__040558 = new BitSet(new long[]{0x0300000000000000L});
        public static final BitSet FOLLOW_rule__XPostfixOperation__Group_1_0__1_in_rule__XPostfixOperation__Group_1_0__040561 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XPostfixOperation__Group_1_0__1__Impl_in_rule__XPostfixOperation__Group_1_0__140619 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XPostfixOperation__FeatureAssignment_1_0_1_in_rule__XPostfixOperation__Group_1_0__1__Impl40646 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group__0__Impl_in_rule__XMemberFeatureCall__Group__040680 = new BitSet(new long[]{0x0400000000000000L,0x0000000000000000L,0x0000000000006000L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group__1_in_rule__XMemberFeatureCall__Group__040683 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXPrimaryExpression_in_rule__XMemberFeatureCall__Group__0__Impl40710 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group__1__Impl_in_rule__XMemberFeatureCall__Group__140739 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Alternatives_1_in_rule__XMemberFeatureCall__Group__1__Impl40766 = new BitSet(new long[]{0x0400000000000002L,0x0000000000000000L,0x0000000000006000L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0__0__Impl_in_rule__XMemberFeatureCall__Group_1_0__040801 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0__1_in_rule__XMemberFeatureCall__Group_1_0__040804 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0_0__0_in_rule__XMemberFeatureCall__Group_1_0__0__Impl40831 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0__1__Impl_in_rule__XMemberFeatureCall__Group_1_0__140861 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__ValueAssignment_1_0_1_in_rule__XMemberFeatureCall__Group_1_0__1__Impl40888 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0_0__0__Impl_in_rule__XMemberFeatureCall__Group_1_0_0__040922 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__0_in_rule__XMemberFeatureCall__Group_1_0_0__0__Impl40949 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl_in_rule__XMemberFeatureCall__Group_1_0_0_0__040981 = new BitSet(new long[]{0x0400000000000000L,0x0000000000000000L,0x0000000000002000L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__1_in_rule__XMemberFeatureCall__Group_1_0_0_0__040984 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl_in_rule__XMemberFeatureCall__Group_1_0_0_0__141042 = new BitSet(new long[]{0xF000000000000010L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__2_in_rule__XMemberFeatureCall__Group_1_0_0_0__141045 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Alternatives_1_0_0_0_1_in_rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl41072 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl_in_rule__XMemberFeatureCall__Group_1_0_0_0__241102 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__3_in_rule__XMemberFeatureCall__Group_1_0_0_0__241105 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2_in_rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl41132 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl_in_rule__XMemberFeatureCall__Group_1_0_0_0__341162 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpSingleAssign_in_rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl41189 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__0__Impl_in_rule__XMemberFeatureCall__Group_1_1__041226 = new BitSet(new long[]{0xF000100000000010L,0x0000000000000001L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__1_in_rule__XMemberFeatureCall__Group_1_1__041229 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_0__0_in_rule__XMemberFeatureCall__Group_1_1__0__Impl41256 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__1__Impl_in_rule__XMemberFeatureCall__Group_1_1__141286 = new BitSet(new long[]{0xF000100000000010L,0x0000000000000001L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__2_in_rule__XMemberFeatureCall__Group_1_1__141289 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__0_in_rule__XMemberFeatureCall__Group_1_1__1__Impl41316 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__2__Impl_in_rule__XMemberFeatureCall__Group_1_1__241347 = new BitSet(new long[]{0x0000000000000000L,0x0000000004400000L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__3_in_rule__XMemberFeatureCall__Group_1_1__241350 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__FeatureAssignment_1_1_2_in_rule__XMemberFeatureCall__Group_1_1__2__Impl41377 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__3__Impl_in_rule__XMemberFeatureCall__Group_1_1__341407 = new BitSet(new long[]{0x0000000000000000L,0x0000000004400000L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__4_in_rule__XMemberFeatureCall__Group_1_1__341410 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3__0_in_rule__XMemberFeatureCall__Group_1_1__3__Impl41437 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__4__Impl_in_rule__XMemberFeatureCall__Group_1_1__441468 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4_in_rule__XMemberFeatureCall__Group_1_1__4__Impl41495 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_0__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_0__041536 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_0_0__0_in_rule__XMemberFeatureCall__Group_1_1_0__0__Impl41563 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_0_0__041595 = new BitSet(new long[]{0x0400000000000000L,0x0000000000000000L,0x0000000000006000L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_0_0__1_in_rule__XMemberFeatureCall__Group_1_1_0_0__041598 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl_in_rule__XMemberFeatureCall__Group_1_1_0_0__141656 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Alternatives_1_1_0_0_1_in_rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl41683 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_1__041717 = new BitSet(new long[]{0x0001000000000010L,0x0000000000402000L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__1_in_rule__XMemberFeatureCall__Group_1_1_1__041720 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_44_in_rule__XMemberFeatureCall__Group_1_1_1__0__Impl41748 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__1__Impl_in_rule__XMemberFeatureCall__Group_1_1_1__141779 = new BitSet(new long[]{0x0000080000000000L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__2_in_rule__XMemberFeatureCall__Group_1_1_1__141782 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1_in_rule__XMemberFeatureCall__Group_1_1_1__1__Impl41809 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__2__Impl_in_rule__XMemberFeatureCall__Group_1_1_1__241839 = new BitSet(new long[]{0x0000080000000000L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__3_in_rule__XMemberFeatureCall__Group_1_1_1__241842 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1_2__0_in_rule__XMemberFeatureCall__Group_1_1_1__2__Impl41869 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__3__Impl_in_rule__XMemberFeatureCall__Group_1_1_1__341900 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__XMemberFeatureCall__Group_1_1_1__3__Impl41928 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_1_2__041967 = new BitSet(new long[]{0x0001000000000010L,0x0000000000402000L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1_2__1_in_rule__XMemberFeatureCall__Group_1_1_1_2__041970 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_113_in_rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl41998 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl_in_rule__XMemberFeatureCall__Group_1_1_1_2__142029 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1_in_rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl42056 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_3__042090 = new BitSet(new long[]{0xF0811001800001F0L,0xF8A5000004C08003L,0x000000000001802FL});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3__1_in_rule__XMemberFeatureCall__Group_1_1_3__042093 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0_in_rule__XMemberFeatureCall__Group_1_1_3__0__Impl42120 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3__1__Impl_in_rule__XMemberFeatureCall__Group_1_1_3__142150 = new BitSet(new long[]{0xF0811001800001F0L,0xF8A5000004C08003L,0x000000000001802FL});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3__2_in_rule__XMemberFeatureCall__Group_1_1_3__142153 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Alternatives_1_1_3_1_in_rule__XMemberFeatureCall__Group_1_1_3__1__Impl42180 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3__2__Impl_in_rule__XMemberFeatureCall__Group_1_1_3__242211 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__XMemberFeatureCall__Group_1_1_3__2__Impl42239 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets018 {
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_3_1_1__042276 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1__1_in_rule__XMemberFeatureCall__Group_1_1_3_1_1__042279 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0_in_rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl42306 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl_in_rule__XMemberFeatureCall__Group_1_1_3_1_1__142336 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0_in_rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl42363 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__042398 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1_in_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__042401 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_113_in_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl42429 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl_in_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__142460 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1_in_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl42487 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSetLiteral__Group__0__Impl_in_rule__XSetLiteral__Group__042521 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
        public static final BitSet FOLLOW_rule__XSetLiteral__Group__1_in_rule__XSetLiteral__Group__042524 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSetLiteral__Group__1__Impl_in_rule__XSetLiteral__Group__142582 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
        public static final BitSet FOLLOW_rule__XSetLiteral__Group__2_in_rule__XSetLiteral__Group__142585 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_114_in_rule__XSetLiteral__Group__1__Impl42613 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSetLiteral__Group__2__Impl_in_rule__XSetLiteral__Group__242644 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004418003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XSetLiteral__Group__3_in_rule__XSetLiteral__Group__242647 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_79_in_rule__XSetLiteral__Group__2__Impl42675 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSetLiteral__Group__3__Impl_in_rule__XSetLiteral__Group__342706 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004418003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XSetLiteral__Group__4_in_rule__XSetLiteral__Group__342709 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSetLiteral__Group_3__0_in_rule__XSetLiteral__Group__3__Impl42736 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSetLiteral__Group__4__Impl_in_rule__XSetLiteral__Group__442767 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_80_in_rule__XSetLiteral__Group__4__Impl42795 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSetLiteral__Group_3__0__Impl_in_rule__XSetLiteral__Group_3__042836 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XSetLiteral__Group_3__1_in_rule__XSetLiteral__Group_3__042839 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSetLiteral__ElementsAssignment_3_0_in_rule__XSetLiteral__Group_3__0__Impl42866 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSetLiteral__Group_3__1__Impl_in_rule__XSetLiteral__Group_3__142896 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSetLiteral__Group_3_1__0_in_rule__XSetLiteral__Group_3__1__Impl42923 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XSetLiteral__Group_3_1__0__Impl_in_rule__XSetLiteral__Group_3_1__042958 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XSetLiteral__Group_3_1__1_in_rule__XSetLiteral__Group_3_1__042961 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_113_in_rule__XSetLiteral__Group_3_1__0__Impl42989 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSetLiteral__Group_3_1__1__Impl_in_rule__XSetLiteral__Group_3_1__143020 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSetLiteral__ElementsAssignment_3_1_1_in_rule__XSetLiteral__Group_3_1__1__Impl43047 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XListLiteral__Group__0__Impl_in_rule__XListLiteral__Group__043081 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
        public static final BitSet FOLLOW_rule__XListLiteral__Group__1_in_rule__XListLiteral__Group__043084 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XListLiteral__Group__1__Impl_in_rule__XListLiteral__Group__143142 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
        public static final BitSet FOLLOW_rule__XListLiteral__Group__2_in_rule__XListLiteral__Group__143145 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_114_in_rule__XListLiteral__Group__1__Impl43173 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XListLiteral__Group__2__Impl_in_rule__XListLiteral__Group__243204 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000024408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XListLiteral__Group__3_in_rule__XListLiteral__Group__243207 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_90_in_rule__XListLiteral__Group__2__Impl43235 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XListLiteral__Group__3__Impl_in_rule__XListLiteral__Group__343266 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000024408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XListLiteral__Group__4_in_rule__XListLiteral__Group__343269 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XListLiteral__Group_3__0_in_rule__XListLiteral__Group__3__Impl43296 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XListLiteral__Group__4__Impl_in_rule__XListLiteral__Group__443327 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_93_in_rule__XListLiteral__Group__4__Impl43355 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XListLiteral__Group_3__0__Impl_in_rule__XListLiteral__Group_3__043396 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XListLiteral__Group_3__1_in_rule__XListLiteral__Group_3__043399 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XListLiteral__ElementsAssignment_3_0_in_rule__XListLiteral__Group_3__0__Impl43426 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XListLiteral__Group_3__1__Impl_in_rule__XListLiteral__Group_3__143456 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XListLiteral__Group_3_1__0_in_rule__XListLiteral__Group_3__1__Impl43483 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XListLiteral__Group_3_1__0__Impl_in_rule__XListLiteral__Group_3_1__043518 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XListLiteral__Group_3_1__1_in_rule__XListLiteral__Group_3_1__043521 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_113_in_rule__XListLiteral__Group_3_1__0__Impl43549 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XListLiteral__Group_3_1__1__Impl_in_rule__XListLiteral__Group_3_1__143580 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XListLiteral__ElementsAssignment_3_1_1_in_rule__XListLiteral__Group_3_1__1__Impl43607 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__Group__0__Impl_in_rule__XClosure__Group__043641 = new BitSet(new long[]{0xF8811001C00001F0L,0xF8A5000004408003L,0x000000000001802FL});
        public static final BitSet FOLLOW_rule__XClosure__Group__1_in_rule__XClosure__Group__043644 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__Group_0__0_in_rule__XClosure__Group__0__Impl43671 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__Group__1__Impl_in_rule__XClosure__Group__143701 = new BitSet(new long[]{0xF8811001C00001F0L,0xF8A5000004408003L,0x000000000001802FL});
        public static final BitSet FOLLOW_rule__XClosure__Group__2_in_rule__XClosure__Group__143704 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__Group_1__0_in_rule__XClosure__Group__1__Impl43731 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__Group__2__Impl_in_rule__XClosure__Group__243762 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
        public static final BitSet FOLLOW_rule__XClosure__Group__3_in_rule__XClosure__Group__243765 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__ExpressionAssignment_2_in_rule__XClosure__Group__2__Impl43792 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__Group__3__Impl_in_rule__XClosure__Group__343822 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_93_in_rule__XClosure__Group__3__Impl43850 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__Group_0__0__Impl_in_rule__XClosure__Group_0__043889 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__Group_0_0__0_in_rule__XClosure__Group_0__0__Impl43916 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__Group_0_0__0__Impl_in_rule__XClosure__Group_0_0__043948 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
        public static final BitSet FOLLOW_rule__XClosure__Group_0_0__1_in_rule__XClosure__Group_0_0__043951 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__Group_0_0__1__Impl_in_rule__XClosure__Group_0_0__144009 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_90_in_rule__XClosure__Group_0_0__1__Impl44037 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__Group_1__0__Impl_in_rule__XClosure__Group_1__044072 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__Group_1_0__0_in_rule__XClosure__Group_1__0__Impl44099 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__Group_1_0__0__Impl_in_rule__XClosure__Group_1_0__044131 = new BitSet(new long[]{0x0001000000000010L,0x0000000000400000L,0x0000000000008000L});
        public static final BitSet FOLLOW_rule__XClosure__Group_1_0__1_in_rule__XClosure__Group_1_0__044134 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__Group_1_0_0__0_in_rule__XClosure__Group_1_0__0__Impl44161 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__Group_1_0__1__Impl_in_rule__XClosure__Group_1_0__144192 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__ExplicitSyntaxAssignment_1_0_1_in_rule__XClosure__Group_1_0__1__Impl44219 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__Group_1_0_0__0__Impl_in_rule__XClosure__Group_1_0_0__044253 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XClosure__Group_1_0_0__1_in_rule__XClosure__Group_1_0_0__044256 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0_in_rule__XClosure__Group_1_0_0__0__Impl44283 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__Group_1_0_0__1__Impl_in_rule__XClosure__Group_1_0_0__144313 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__Group_1_0_0_1__0_in_rule__XClosure__Group_1_0_0__1__Impl44340 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XClosure__Group_1_0_0_1__0__Impl_in_rule__XClosure__Group_1_0_0_1__044375 = new BitSet(new long[]{0x0001000000000010L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__XClosure__Group_1_0_0_1__1_in_rule__XClosure__Group_1_0_0_1__044378 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_113_in_rule__XClosure__Group_1_0_0_1__0__Impl44406 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__Group_1_0_0_1__1__Impl_in_rule__XClosure__Group_1_0_0_1__144437 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1_in_rule__XClosure__Group_1_0_0_1__1__Impl44464 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XExpressionInClosure__Group__0__Impl_in_rule__XExpressionInClosure__Group__044498 = new BitSet(new long[]{0xF8811001C00001F0L,0xF8A5000004408003L,0x000000000001802FL});
        public static final BitSet FOLLOW_rule__XExpressionInClosure__Group__1_in_rule__XExpressionInClosure__Group__044501 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XExpressionInClosure__Group__1__Impl_in_rule__XExpressionInClosure__Group__144559 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XExpressionInClosure__Group_1__0_in_rule__XExpressionInClosure__Group__1__Impl44586 = new BitSet(new long[]{0xF8801001C00001F2L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XExpressionInClosure__Group_1__0__Impl_in_rule__XExpressionInClosure__Group_1__044621 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
        public static final BitSet FOLLOW_rule__XExpressionInClosure__Group_1__1_in_rule__XExpressionInClosure__Group_1__044624 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XExpressionInClosure__ExpressionsAssignment_1_0_in_rule__XExpressionInClosure__Group_1__0__Impl44651 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XExpressionInClosure__Group_1__1__Impl_in_rule__XExpressionInClosure__Group_1__144681 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_82_in_rule__XExpressionInClosure__Group_1__1__Impl44710 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XShortClosure__Group__0__Impl_in_rule__XShortClosure__Group__044747 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
    }

    protected static class FollowSets019 {
        public static final BitSet FOLLOW_rule__XShortClosure__Group__1_in_rule__XShortClosure__Group__044750 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XShortClosure__Group_0__0_in_rule__XShortClosure__Group__0__Impl44777 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XShortClosure__Group__1__Impl_in_rule__XShortClosure__Group__144807 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XShortClosure__ExpressionAssignment_1_in_rule__XShortClosure__Group__1__Impl44834 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XShortClosure__Group_0__0__Impl_in_rule__XShortClosure__Group_0__044868 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0__0_in_rule__XShortClosure__Group_0__0__Impl44895 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0__0__Impl_in_rule__XShortClosure__Group_0_0__044927 = new BitSet(new long[]{0x0001000000000010L,0x0000000000400000L,0x0000000000008000L});
        public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0__1_in_rule__XShortClosure__Group_0_0__044930 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0__1__Impl_in_rule__XShortClosure__Group_0_0__144988 = new BitSet(new long[]{0x0001000000000010L,0x0000000000400000L,0x0000000000008000L});
        public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0__2_in_rule__XShortClosure__Group_0_0__144991 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0_1__0_in_rule__XShortClosure__Group_0_0__1__Impl45018 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0__2__Impl_in_rule__XShortClosure__Group_0_0__245049 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2_in_rule__XShortClosure__Group_0_0__2__Impl45076 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0_1__0__Impl_in_rule__XShortClosure__Group_0_0_1__045112 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0_1__1_in_rule__XShortClosure__Group_0_0_1__045115 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0_in_rule__XShortClosure__Group_0_0_1__0__Impl45142 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0_1__1__Impl_in_rule__XShortClosure__Group_0_0_1__145172 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0_1_1__0_in_rule__XShortClosure__Group_0_0_1__1__Impl45199 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0_1_1__0__Impl_in_rule__XShortClosure__Group_0_0_1_1__045234 = new BitSet(new long[]{0x0001000000000010L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0_1_1__1_in_rule__XShortClosure__Group_0_0_1_1__045237 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_113_in_rule__XShortClosure__Group_0_0_1_1__0__Impl45265 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0_1_1__1__Impl_in_rule__XShortClosure__Group_0_0_1_1__145296 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1_in_rule__XShortClosure__Group_0_0_1_1__1__Impl45323 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XParenthesizedExpression__Group__0__Impl_in_rule__XParenthesizedExpression__Group__045357 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XParenthesizedExpression__Group__1_in_rule__XParenthesizedExpression__Group__045360 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_86_in_rule__XParenthesizedExpression__Group__0__Impl45388 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XParenthesizedExpression__Group__1__Impl_in_rule__XParenthesizedExpression__Group__145419 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
        public static final BitSet FOLLOW_rule__XParenthesizedExpression__Group__2_in_rule__XParenthesizedExpression__Group__145422 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXExpression_in_rule__XParenthesizedExpression__Group__1__Impl45449 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XParenthesizedExpression__Group__2__Impl_in_rule__XParenthesizedExpression__Group__245478 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__XParenthesizedExpression__Group__2__Impl45506 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XIfExpression__Group__0__Impl_in_rule__XIfExpression__Group__045543 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000000L});
        public static final BitSet FOLLOW_rule__XIfExpression__Group__1_in_rule__XIfExpression__Group__045546 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XIfExpression__Group__1__Impl_in_rule__XIfExpression__Group__145604 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__XIfExpression__Group__2_in_rule__XIfExpression__Group__145607 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_117_in_rule__XIfExpression__Group__1__Impl45635 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XIfExpression__Group__2__Impl_in_rule__XIfExpression__Group__245666 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XIfExpression__Group__3_in_rule__XIfExpression__Group__245669 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_86_in_rule__XIfExpression__Group__2__Impl45697 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XIfExpression__Group__3__Impl_in_rule__XIfExpression__Group__345728 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
        public static final BitSet FOLLOW_rule__XIfExpression__Group__4_in_rule__XIfExpression__Group__345731 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XIfExpression__IfAssignment_3_in_rule__XIfExpression__Group__3__Impl45758 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XIfExpression__Group__4__Impl_in_rule__XIfExpression__Group__445788 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XIfExpression__Group__5_in_rule__XIfExpression__Group__445791 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__XIfExpression__Group__4__Impl45819 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XIfExpression__Group__5__Impl_in_rule__XIfExpression__Group__545850 = new BitSet(new long[]{0x0000000000000000L,0x0040000000000000L});
        public static final BitSet FOLLOW_rule__XIfExpression__Group__6_in_rule__XIfExpression__Group__545853 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XIfExpression__ThenAssignment_5_in_rule__XIfExpression__Group__5__Impl45880 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XIfExpression__Group__6__Impl_in_rule__XIfExpression__Group__645910 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XIfExpression__Group_6__0_in_rule__XIfExpression__Group__6__Impl45937 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XIfExpression__Group_6__0__Impl_in_rule__XIfExpression__Group_6__045982 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XIfExpression__Group_6__1_in_rule__XIfExpression__Group_6__045985 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_118_in_rule__XIfExpression__Group_6__0__Impl46014 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XIfExpression__Group_6__1__Impl_in_rule__XIfExpression__Group_6__146046 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XIfExpression__ElseAssignment_6_1_in_rule__XIfExpression__Group_6__1__Impl46073 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group__0__Impl_in_rule__XSwitchExpression__Group__046107 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group__1_in_rule__XSwitchExpression__Group__046110 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group__1__Impl_in_rule__XSwitchExpression__Group__146168 = new BitSet(new long[]{0xF0811001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group__2_in_rule__XSwitchExpression__Group__146171 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_119_in_rule__XSwitchExpression__Group__1__Impl46199 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group__2__Impl_in_rule__XSwitchExpression__Group__246230 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group__3_in_rule__XSwitchExpression__Group__246233 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Alternatives_2_in_rule__XSwitchExpression__Group__2__Impl46260 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group__3__Impl_in_rule__XSwitchExpression__Group__346290 = new BitSet(new long[]{0x0001000000000010L,0x0702000000410000L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group__4_in_rule__XSwitchExpression__Group__346293 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_79_in_rule__XSwitchExpression__Group__3__Impl46321 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group__4__Impl_in_rule__XSwitchExpression__Group__446352 = new BitSet(new long[]{0x0001000000000010L,0x0702000000410000L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group__5_in_rule__XSwitchExpression__Group__446355 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__CasesAssignment_4_in_rule__XSwitchExpression__Group__4__Impl46382 = new BitSet(new long[]{0x0001000000000012L,0x0502000000400000L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group__5__Impl_in_rule__XSwitchExpression__Group__546413 = new BitSet(new long[]{0x0001000000000010L,0x0702000000410000L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group__6_in_rule__XSwitchExpression__Group__546416 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_5__0_in_rule__XSwitchExpression__Group__5__Impl46443 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group__6__Impl_in_rule__XSwitchExpression__Group__646474 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_80_in_rule__XSwitchExpression__Group__6__Impl46502 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0__0__Impl_in_rule__XSwitchExpression__Group_2_0__046547 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0__1_in_rule__XSwitchExpression__Group_2_0__046550 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0_0__0_in_rule__XSwitchExpression__Group_2_0__0__Impl46577 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0__1__Impl_in_rule__XSwitchExpression__Group_2_0__146607 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0__2_in_rule__XSwitchExpression__Group_2_0__146610 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__SwitchAssignment_2_0_1_in_rule__XSwitchExpression__Group_2_0__1__Impl46637 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0__2__Impl_in_rule__XSwitchExpression__Group_2_0__246667 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__XSwitchExpression__Group_2_0__2__Impl46695 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0_0__0__Impl_in_rule__XSwitchExpression__Group_2_0_0__046732 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0_0_0__0_in_rule__XSwitchExpression__Group_2_0_0__0__Impl46759 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0_0_0__0__Impl_in_rule__XSwitchExpression__Group_2_0_0_0__046791 = new BitSet(new long[]{0x0001000000000010L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0_0_0__1_in_rule__XSwitchExpression__Group_2_0_0_0__046794 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_86_in_rule__XSwitchExpression__Group_2_0_0_0__0__Impl46822 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0_0_0__1__Impl_in_rule__XSwitchExpression__Group_2_0_0_0__146853 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0_0_0__2_in_rule__XSwitchExpression__Group_2_0_0_0__146856 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1_in_rule__XSwitchExpression__Group_2_0_0_0__1__Impl46883 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0_0_0__2__Impl_in_rule__XSwitchExpression__Group_2_0_0_0__246913 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_120_in_rule__XSwitchExpression__Group_2_0_0_0__2__Impl46941 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1__0__Impl_in_rule__XSwitchExpression__Group_2_1__046978 = new BitSet(new long[]{0xF0811001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1__1_in_rule__XSwitchExpression__Group_2_1__046981 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1_0__0_in_rule__XSwitchExpression__Group_2_1__0__Impl47008 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1__1__Impl_in_rule__XSwitchExpression__Group_2_1__147039 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__SwitchAssignment_2_1_1_in_rule__XSwitchExpression__Group_2_1__1__Impl47066 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1_0__0__Impl_in_rule__XSwitchExpression__Group_2_1_0__047100 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1_0_0__0_in_rule__XSwitchExpression__Group_2_1_0__0__Impl47127 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1_0_0__0__Impl_in_rule__XSwitchExpression__Group_2_1_0_0__047159 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
    }

    protected static class FollowSets020 {
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1_0_0__1_in_rule__XSwitchExpression__Group_2_1_0_0__047162 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0_in_rule__XSwitchExpression__Group_2_1_0_0__0__Impl47189 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1_0_0__1__Impl_in_rule__XSwitchExpression__Group_2_1_0_0__147219 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_120_in_rule__XSwitchExpression__Group_2_1_0_0__1__Impl47247 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_5__0__Impl_in_rule__XSwitchExpression__Group_5__047282 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_5__1_in_rule__XSwitchExpression__Group_5__047285 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_121_in_rule__XSwitchExpression__Group_5__0__Impl47313 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_5__1__Impl_in_rule__XSwitchExpression__Group_5__147344 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_5__2_in_rule__XSwitchExpression__Group_5__147347 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_120_in_rule__XSwitchExpression__Group_5__1__Impl47375 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_5__2__Impl_in_rule__XSwitchExpression__Group_5__247406 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__DefaultAssignment_5_2_in_rule__XSwitchExpression__Group_5__2__Impl47433 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCasePart__Group__0__Impl_in_rule__XCasePart__Group__047469 = new BitSet(new long[]{0x0001000000000010L,0x0502000000400000L});
        public static final BitSet FOLLOW_rule__XCasePart__Group__1_in_rule__XCasePart__Group__047472 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCasePart__Group__1__Impl_in_rule__XCasePart__Group__147530 = new BitSet(new long[]{0x0001000000000010L,0x0502000000400000L});
        public static final BitSet FOLLOW_rule__XCasePart__Group__2_in_rule__XCasePart__Group__147533 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCasePart__TypeGuardAssignment_1_in_rule__XCasePart__Group__1__Impl47560 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCasePart__Group__2__Impl_in_rule__XCasePart__Group__247591 = new BitSet(new long[]{0x0001000000000010L,0x0502000000400000L});
        public static final BitSet FOLLOW_rule__XCasePart__Group__3_in_rule__XCasePart__Group__247594 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCasePart__Group_2__0_in_rule__XCasePart__Group__2__Impl47621 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCasePart__Group__3__Impl_in_rule__XCasePart__Group__347652 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCasePart__Alternatives_3_in_rule__XCasePart__Group__3__Impl47679 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCasePart__Group_2__0__Impl_in_rule__XCasePart__Group_2__047717 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XCasePart__Group_2__1_in_rule__XCasePart__Group_2__047720 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_122_in_rule__XCasePart__Group_2__0__Impl47748 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCasePart__Group_2__1__Impl_in_rule__XCasePart__Group_2__147779 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCasePart__CaseAssignment_2_1_in_rule__XCasePart__Group_2__1__Impl47806 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCasePart__Group_3_0__0__Impl_in_rule__XCasePart__Group_3_0__047840 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XCasePart__Group_3_0__1_in_rule__XCasePart__Group_3_0__047843 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_120_in_rule__XCasePart__Group_3_0__0__Impl47871 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCasePart__Group_3_0__1__Impl_in_rule__XCasePart__Group_3_0__147902 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCasePart__ThenAssignment_3_0_1_in_rule__XCasePart__Group_3_0__1__Impl47929 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group__0__Impl_in_rule__XForLoopExpression__Group__047963 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group__1_in_rule__XForLoopExpression__Group__047966 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group_0__0_in_rule__XForLoopExpression__Group__0__Impl47993 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group__1__Impl_in_rule__XForLoopExpression__Group__148023 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group__2_in_rule__XForLoopExpression__Group__148026 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__ForExpressionAssignment_1_in_rule__XForLoopExpression__Group__1__Impl48053 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group__2__Impl_in_rule__XForLoopExpression__Group__248083 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group__3_in_rule__XForLoopExpression__Group__248086 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__XForLoopExpression__Group__2__Impl48114 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group__3__Impl_in_rule__XForLoopExpression__Group__348145 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__EachExpressionAssignment_3_in_rule__XForLoopExpression__Group__3__Impl48172 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group_0__0__Impl_in_rule__XForLoopExpression__Group_0__048210 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group_0_0__0_in_rule__XForLoopExpression__Group_0__0__Impl48237 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group_0_0__0__Impl_in_rule__XForLoopExpression__Group_0_0__048269 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group_0_0__1_in_rule__XForLoopExpression__Group_0_0__048272 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group_0_0__1__Impl_in_rule__XForLoopExpression__Group_0_0__148330 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group_0_0__2_in_rule__XForLoopExpression__Group_0_0__148333 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_123_in_rule__XForLoopExpression__Group_0_0__1__Impl48361 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group_0_0__2__Impl_in_rule__XForLoopExpression__Group_0_0__248392 = new BitSet(new long[]{0x0001000000000010L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group_0_0__3_in_rule__XForLoopExpression__Group_0_0__248395 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_86_in_rule__XForLoopExpression__Group_0_0__2__Impl48423 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group_0_0__3__Impl_in_rule__XForLoopExpression__Group_0_0__348454 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group_0_0__4_in_rule__XForLoopExpression__Group_0_0__348457 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__DeclaredParamAssignment_0_0_3_in_rule__XForLoopExpression__Group_0_0__3__Impl48484 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group_0_0__4__Impl_in_rule__XForLoopExpression__Group_0_0__448514 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_120_in_rule__XForLoopExpression__Group_0_0__4__Impl48542 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__0__Impl_in_rule__XBasicForLoopExpression__Group__048583 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__1_in_rule__XBasicForLoopExpression__Group__048586 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__1__Impl_in_rule__XBasicForLoopExpression__Group__148644 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__2_in_rule__XBasicForLoopExpression__Group__148647 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_123_in_rule__XBasicForLoopExpression__Group__1__Impl48675 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__2__Impl_in_rule__XBasicForLoopExpression__Group__248706 = new BitSet(new long[]{0xF8801001C00001F0L,0xF8A5000004448003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__3_in_rule__XBasicForLoopExpression__Group__248709 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_86_in_rule__XBasicForLoopExpression__Group__2__Impl48737 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__3__Impl_in_rule__XBasicForLoopExpression__Group__348768 = new BitSet(new long[]{0xF8801001C00001F0L,0xF8A5000004448003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__4_in_rule__XBasicForLoopExpression__Group__348771 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group_3__0_in_rule__XBasicForLoopExpression__Group__3__Impl48798 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__4__Impl_in_rule__XBasicForLoopExpression__Group__448829 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004448003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__5_in_rule__XBasicForLoopExpression__Group__448832 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_82_in_rule__XBasicForLoopExpression__Group__4__Impl48860 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__5__Impl_in_rule__XBasicForLoopExpression__Group__548891 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004448003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__6_in_rule__XBasicForLoopExpression__Group__548894 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__ExpressionAssignment_5_in_rule__XBasicForLoopExpression__Group__5__Impl48921 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__6__Impl_in_rule__XBasicForLoopExpression__Group__648952 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004C08003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__7_in_rule__XBasicForLoopExpression__Group__648955 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_82_in_rule__XBasicForLoopExpression__Group__6__Impl48983 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__7__Impl_in_rule__XBasicForLoopExpression__Group__749014 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004C08003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__8_in_rule__XBasicForLoopExpression__Group__749017 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group_7__0_in_rule__XBasicForLoopExpression__Group__7__Impl49044 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__8__Impl_in_rule__XBasicForLoopExpression__Group__849075 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__9_in_rule__XBasicForLoopExpression__Group__849078 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__XBasicForLoopExpression__Group__8__Impl49106 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__9__Impl_in_rule__XBasicForLoopExpression__Group__949137 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__EachExpressionAssignment_9_in_rule__XBasicForLoopExpression__Group__9__Impl49164 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group_3__0__Impl_in_rule__XBasicForLoopExpression__Group_3__049214 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group_3__1_in_rule__XBasicForLoopExpression__Group_3__049217 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0_in_rule__XBasicForLoopExpression__Group_3__0__Impl49244 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group_3__1__Impl_in_rule__XBasicForLoopExpression__Group_3__149274 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group_3_1__0_in_rule__XBasicForLoopExpression__Group_3__1__Impl49301 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group_3_1__0__Impl_in_rule__XBasicForLoopExpression__Group_3_1__049336 = new BitSet(new long[]{0xF8801001C00001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group_3_1__1_in_rule__XBasicForLoopExpression__Group_3_1__049339 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_113_in_rule__XBasicForLoopExpression__Group_3_1__0__Impl49367 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group_3_1__1__Impl_in_rule__XBasicForLoopExpression__Group_3_1__149398 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1_in_rule__XBasicForLoopExpression__Group_3_1__1__Impl49425 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group_7__0__Impl_in_rule__XBasicForLoopExpression__Group_7__049459 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group_7__1_in_rule__XBasicForLoopExpression__Group_7__049462 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0_in_rule__XBasicForLoopExpression__Group_7__0__Impl49489 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group_7__1__Impl_in_rule__XBasicForLoopExpression__Group_7__149519 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets021 {
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group_7_1__0_in_rule__XBasicForLoopExpression__Group_7__1__Impl49546 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000000L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group_7_1__0__Impl_in_rule__XBasicForLoopExpression__Group_7_1__049581 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group_7_1__1_in_rule__XBasicForLoopExpression__Group_7_1__049584 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_113_in_rule__XBasicForLoopExpression__Group_7_1__0__Impl49612 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group_7_1__1__Impl_in_rule__XBasicForLoopExpression__Group_7_1__149643 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1_in_rule__XBasicForLoopExpression__Group_7_1__1__Impl49670 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XWhileExpression__Group__0__Impl_in_rule__XWhileExpression__Group__049704 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
        public static final BitSet FOLLOW_rule__XWhileExpression__Group__1_in_rule__XWhileExpression__Group__049707 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XWhileExpression__Group__1__Impl_in_rule__XWhileExpression__Group__149765 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__XWhileExpression__Group__2_in_rule__XWhileExpression__Group__149768 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_124_in_rule__XWhileExpression__Group__1__Impl49796 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XWhileExpression__Group__2__Impl_in_rule__XWhileExpression__Group__249827 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XWhileExpression__Group__3_in_rule__XWhileExpression__Group__249830 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_86_in_rule__XWhileExpression__Group__2__Impl49858 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XWhileExpression__Group__3__Impl_in_rule__XWhileExpression__Group__349889 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
        public static final BitSet FOLLOW_rule__XWhileExpression__Group__4_in_rule__XWhileExpression__Group__349892 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XWhileExpression__PredicateAssignment_3_in_rule__XWhileExpression__Group__3__Impl49919 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XWhileExpression__Group__4__Impl_in_rule__XWhileExpression__Group__449949 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XWhileExpression__Group__5_in_rule__XWhileExpression__Group__449952 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__XWhileExpression__Group__4__Impl49980 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XWhileExpression__Group__5__Impl_in_rule__XWhileExpression__Group__550011 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XWhileExpression__BodyAssignment_5_in_rule__XWhileExpression__Group__5__Impl50038 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__0__Impl_in_rule__XDoWhileExpression__Group__050080 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
        public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__1_in_rule__XDoWhileExpression__Group__050083 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__1__Impl_in_rule__XDoWhileExpression__Group__150141 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__2_in_rule__XDoWhileExpression__Group__150144 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_125_in_rule__XDoWhileExpression__Group__1__Impl50172 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__2__Impl_in_rule__XDoWhileExpression__Group__250203 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
        public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__3_in_rule__XDoWhileExpression__Group__250206 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XDoWhileExpression__BodyAssignment_2_in_rule__XDoWhileExpression__Group__2__Impl50233 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__3__Impl_in_rule__XDoWhileExpression__Group__350263 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
        public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__4_in_rule__XDoWhileExpression__Group__350266 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_124_in_rule__XDoWhileExpression__Group__3__Impl50294 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__4__Impl_in_rule__XDoWhileExpression__Group__450325 = new BitSet(new long[]{0xF0801001800001F0L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__5_in_rule__XDoWhileExpression__Group__450328 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_86_in_rule__XDoWhileExpression__Group__4__Impl50356 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__5__Impl_in_rule__XDoWhileExpression__Group__550387 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
        public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__6_in_rule__XDoWhileExpression__Group__550390 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XDoWhileExpression__PredicateAssignment_5_in_rule__XDoWhileExpression__Group__5__Impl50417 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__6__Impl_in_rule__XDoWhileExpression__Group__650447 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__XDoWhileExpression__Group__6__Impl50475 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBlockExpression__Group__0__Impl_in_rule__XBlockExpression__Group__050520 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
        public static final BitSet FOLLOW_rule__XBlockExpression__Group__1_in_rule__XBlockExpression__Group__050523 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBlockExpression__Group__1__Impl_in_rule__XBlockExpression__Group__150581 = new BitSet(new long[]{0xF8801001C00001F0L,0xF8A5000004418003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XBlockExpression__Group__2_in_rule__XBlockExpression__Group__150584 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_79_in_rule__XBlockExpression__Group__1__Impl50612 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBlockExpression__Group__2__Impl_in_rule__XBlockExpression__Group__250643 = new BitSet(new long[]{0xF8801001C00001F0L,0xF8A5000004418003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XBlockExpression__Group__3_in_rule__XBlockExpression__Group__250646 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBlockExpression__Group_2__0_in_rule__XBlockExpression__Group__2__Impl50673 = new BitSet(new long[]{0xF8801001C00001F2L,0xF8A5000004408003L,0x000000000001002FL});
        public static final BitSet FOLLOW_rule__XBlockExpression__Group__3__Impl_in_rule__XBlockExpression__Group__350704 = new BitSet(new long[]{0x0000000000000002L});
