/**
 *                                                                            
 *  Copyright (c) 2011, 2017 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
 *                                                                            
 *  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:                                                      
 * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
 * 
 */
package org.eclipse.osbp.xtext.statemachine.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.xtext.statemachine.services.StatemachineDSLGrammarAccess;



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 InternalStatemachineDSLParserSignatures {
     void entryRuleStatemachineModel() throws RecognitionException;
     void ruleStatemachineModel() throws RecognitionException;
     void entryRuleStatemachinePackage() throws RecognitionException;
     void ruleStatemachinePackage() throws RecognitionException;
     void entryRuleStatemachine() throws RecognitionException;
     void ruleStatemachine() throws RecognitionException;
     void entryRuleStatemachineEvent() throws RecognitionException;
     void ruleStatemachineEvent() throws RecognitionException;
     void entryRuleStatemachineState() throws RecognitionException;
     void ruleStatemachineState() throws RecognitionException;
     void entryRuleStatemachineTrigger() throws RecognitionException;
     void ruleStatemachineTrigger() throws RecognitionException;
     void entryRuleStatemachineAction() throws RecognitionException;
     void ruleStatemachineAction() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralBlinkRate() throws RecognitionException;
     void ruleStatemachineActionPeripheralBlinkRate() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralClear() throws RecognitionException;
     void ruleStatemachineActionPeripheralClear() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralCreateWindow() throws RecognitionException;
     void ruleStatemachineActionPeripheralCreateWindow() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralCursorType() throws RecognitionException;
     void ruleStatemachineActionPeripheralCursorType() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralDestroyWindow() throws RecognitionException;
     void ruleStatemachineActionPeripheralDestroyWindow() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralDeviceBrightness() throws RecognitionException;
     void ruleStatemachineActionPeripheralDeviceBrightness() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralDisplayBitmap() throws RecognitionException;
     void ruleStatemachineActionPeripheralDisplayBitmap() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralDisplayText() throws RecognitionException;
     void ruleStatemachineActionPeripheralDisplayText() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralDisplayTextAt() throws RecognitionException;
     void ruleStatemachineActionPeripheralDisplayTextAt() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralInterCharacterWait() throws RecognitionException;
     void ruleStatemachineActionPeripheralInterCharacterWait() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralMarqueeFormat() throws RecognitionException;
     void ruleStatemachineActionPeripheralMarqueeFormat() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralMarqueeRepeatWait() throws RecognitionException;
     void ruleStatemachineActionPeripheralMarqueeRepeatWait() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralMarqueeType() throws RecognitionException;
     void ruleStatemachineActionPeripheralMarqueeType() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralMarqueeUnitWait() throws RecognitionException;
     void ruleStatemachineActionPeripheralMarqueeUnitWait() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralScroll() throws RecognitionException;
     void ruleStatemachineActionPeripheralScroll() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralOpenDrawer() throws RecognitionException;
     void ruleStatemachineActionPeripheralOpenDrawer() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralPrintBarcode() throws RecognitionException;
     void ruleStatemachineActionPeripheralPrintBarcode() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralPrintBitmap() throws RecognitionException;
     void ruleStatemachineActionPeripheralPrintBitmap() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralPrintCut() throws RecognitionException;
     void ruleStatemachineActionPeripheralPrintCut() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralPrintNormal() throws RecognitionException;
     void ruleStatemachineActionPeripheralPrintNormal() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralPrintRegisterBitmap() throws RecognitionException;
     void ruleStatemachineActionPeripheralPrintRegisterBitmap() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralPTOpen() throws RecognitionException;
     void ruleStatemachineActionPeripheralPTOpen() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralPTClose() throws RecognitionException;
     void ruleStatemachineActionPeripheralPTClose() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralPTAcknowledge() throws RecognitionException;
     void ruleStatemachineActionPeripheralPTAcknowledge() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralPTReversal() throws RecognitionException;
     void ruleStatemachineActionPeripheralPTReversal() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralPTRegistration() throws RecognitionException;
     void ruleStatemachineActionPeripheralPTRegistration() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralPTAuthorization() throws RecognitionException;
     void ruleStatemachineActionPeripheralPTAuthorization() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralPTResponse() throws RecognitionException;
     void ruleStatemachineActionPeripheralPTResponse() throws RecognitionException;
     void entryRuleStatemachineActionPeripheralPrintReport() throws RecognitionException;
     void ruleStatemachineActionPeripheralPrintReport() throws RecognitionException;
     void entryRuleStatemachineActionFieldSource() throws RecognitionException;
     void ruleStatemachineActionFieldSource() throws RecognitionException;
     void entryRuleStatemachineOperation() throws RecognitionException;
     void ruleStatemachineOperation() throws RecognitionException;
     void entryRuleStatemachineGuard() throws RecognitionException;
     void ruleStatemachineGuard() throws RecognitionException;
     void entryRuleStatemachineFunction() throws RecognitionException;
     void ruleStatemachineFunction() throws RecognitionException;
     void entryRuleStatemachineStorage() throws RecognitionException;
     void ruleStatemachineStorage() throws RecognitionException;
     void entryRuleStatemachineStorageRetrieve() throws RecognitionException;
     void ruleStatemachineStorageRetrieve() throws RecognitionException;
     void entryRuleStatemachineActionConditionalTransition() throws RecognitionException;
     void ruleStatemachineActionConditionalTransition() throws RecognitionException;
     void entryRuleStatemachineActionFieldSourceString() throws RecognitionException;
     void ruleStatemachineActionFieldSourceString() throws RecognitionException;
     void entryRuleStatemachineActionFieldSourceNumber() throws RecognitionException;
     void ruleStatemachineActionFieldSourceNumber() throws RecognitionException;
     void entryRuleStatemachineActionFieldSourceEvaluate() throws RecognitionException;
     void ruleStatemachineActionFieldSourceEvaluate() throws RecognitionException;
     void entryRuleStatemachineActionFieldSourceEvent() throws RecognitionException;
     void ruleStatemachineActionFieldSourceEvent() throws RecognitionException;
     void entryRuleStatemachineActionFieldSourceTranslate() throws RecognitionException;
     void ruleStatemachineActionFieldSourceTranslate() throws RecognitionException;
     void entryRuleStatemachineActionFieldSourceDtoAttribute() throws RecognitionException;
     void ruleStatemachineActionFieldSourceDtoAttribute() throws RecognitionException;
     void entryRuleStatemachineActionFieldSourceMore() throws RecognitionException;
     void ruleStatemachineActionFieldSourceMore() throws RecognitionException;
     void entryRuleStatemachineActionFieldSourceStringMore() throws RecognitionException;
     void ruleStatemachineActionFieldSourceStringMore() throws RecognitionException;
     void entryRuleStatemachineActionFieldSourceNumberMore() throws RecognitionException;
     void ruleStatemachineActionFieldSourceNumberMore() throws RecognitionException;
     void entryRuleStatemachineActionFieldSourceEvaluateMore() throws RecognitionException;
     void ruleStatemachineActionFieldSourceEvaluateMore() throws RecognitionException;
     void entryRuleStatemachineActionFieldSourceTranslateMore() throws RecognitionException;
     void ruleStatemachineActionFieldSourceTranslateMore() throws RecognitionException;
     void entryRuleStatemachineActionFieldGetMore() throws RecognitionException;
     void ruleStatemachineActionFieldGetMore() throws RecognitionException;
     void entryRuleStatemachineOperationMore() throws RecognitionException;
     void ruleStatemachineOperationMore() throws RecognitionException;
     void entryRuleStatemachineStorageRetrieveMore() throws RecognitionException;
     void ruleStatemachineStorageRetrieveMore() throws RecognitionException;
     void entryRuleStatemachineActionFieldSourceDtoAttributeMore() throws RecognitionException;
     void ruleStatemachineActionFieldSourceDtoAttributeMore() throws RecognitionException;
     void entryRuleStatemachineActionFieldConcatenation() throws RecognitionException;
     void ruleStatemachineActionFieldConcatenation() throws RecognitionException;
     void entryRuleStatemachineOperationParameter() throws RecognitionException;
     void ruleStatemachineOperationParameter() throws RecognitionException;
     void entryRuleStatemachineOperationParameterMore() throws RecognitionException;
     void ruleStatemachineOperationParameterMore() throws RecognitionException;
     void entryRuleStatemachineActionFieldSet() throws RecognitionException;
     void ruleStatemachineActionFieldSet() throws RecognitionException;
     void entryRuleStatemachineActionFieldClear() throws RecognitionException;
     void ruleStatemachineActionFieldClear() throws RecognitionException;
     void entryRuleStatemachineActionFieldGet() throws RecognitionException;
     void ruleStatemachineActionFieldGet() throws RecognitionException;
     void entryRuleStatemachineActionFieldRemove() throws RecognitionException;
     void ruleStatemachineActionFieldRemove() throws RecognitionException;
     void entryRuleStatemachineActionItemVisible() throws RecognitionException;
     void ruleStatemachineActionItemVisible() throws RecognitionException;
     void entryRuleStatemachineActionItemInvisible() throws RecognitionException;
     void ruleStatemachineActionItemInvisible() throws RecognitionException;
     void entryRuleStatemachineActionButtonCaption() throws RecognitionException;
     void ruleStatemachineActionButtonCaption() throws RecognitionException;
     void entryRuleStatemachineActionButtonImage() throws RecognitionException;
     void ruleStatemachineActionButtonImage() throws RecognitionException;
     void entryRuleStatemachineActionDTOFind() throws RecognitionException;
     void ruleStatemachineActionDTOFind() throws RecognitionException;
     void entryRuleStatemachineActionScheduler() throws RecognitionException;
     void ruleStatemachineActionScheduler() throws RecognitionException;
     void entryRuleStatemachineControl() throws RecognitionException;
     void ruleStatemachineControl() throws RecognitionException;
     void entryRuleStatemachineControlButton() throws RecognitionException;
     void ruleStatemachineControlButton() throws RecognitionException;
     void entryRuleStatemachineControlField() throws RecognitionException;
     void ruleStatemachineControlField() throws RecognitionException;
     void entryRuleStatemachineControlDTO() throws RecognitionException;
     void ruleStatemachineControlDTO() throws RecognitionException;
     void entryRuleStatemachineControlScheduler() throws RecognitionException;
     void ruleStatemachineControlScheduler() throws RecognitionException;
     void entryRuleStatemachinePeripheralDeviceLineDisplay() throws RecognitionException;
     void ruleStatemachinePeripheralDeviceLineDisplay() throws RecognitionException;
     void entryRuleStatemachinePeripheralDevicePOSPrinter() throws RecognitionException;
     void ruleStatemachinePeripheralDevicePOSPrinter() throws RecognitionException;
     void entryRuleStatemachinePeripheralDeviceCashDrawer() throws RecognitionException;
     void ruleStatemachinePeripheralDeviceCashDrawer() throws RecognitionException;
     void entryRuleStatemachinePeripheralDevicePT() throws RecognitionException;
     void ruleStatemachinePeripheralDevicePT() throws RecognitionException;
     void entryRuleStatemachineControlPeripheral() throws RecognitionException;
     void ruleStatemachineControlPeripheral() throws RecognitionException;
     void entryRuleStatemachineControlButtonAttribute() throws RecognitionException;
     void ruleStatemachineControlButtonAttribute() throws RecognitionException;
     void entryRuleStatemachineControlButtonAttributeEvent() throws RecognitionException;
     void ruleStatemachineControlButtonAttributeEvent() throws RecognitionException;
     void entryRuleStatemachineControlButtonAttributeEventKeyboard() throws RecognitionException;
     void ruleStatemachineControlButtonAttributeEventKeyboard() throws RecognitionException;
     void entryRuleStatemachineControlButtonAttributeEventIdentity() throws RecognitionException;
     void ruleStatemachineControlButtonAttributeEventIdentity() throws RecognitionException;
     void entryRuleStatemachineControlButtonAttributeEventEvent() throws RecognitionException;
     void ruleStatemachineControlButtonAttributeEventEvent() throws RecognitionException;
     void entryRuleStatemachineControlFieldAttribute() throws RecognitionException;
     void ruleStatemachineControlFieldAttribute() throws RecognitionException;
     void entryRuleStatemachineControlFieldLayout() throws RecognitionException;
     void ruleStatemachineControlFieldLayout() throws RecognitionException;
     void entryRuleStatemachineControlDTOAttribute() throws RecognitionException;
     void ruleStatemachineControlDTOAttribute() throws RecognitionException;
     void entryRuleStatemachineControlSchedulerAttribute() throws RecognitionException;
     void ruleStatemachineControlSchedulerAttribute() throws RecognitionException;
     void entryRuleStatemachineDTOType() throws RecognitionException;
     void ruleStatemachineDTOType() throws RecognitionException;
     void entryRuleStatemachineFieldType() throws RecognitionException;
     void ruleStatemachineFieldType() throws RecognitionException;
     void entryRuleStatemachineImport() throws RecognitionException;
     void ruleStatemachineImport() throws RecognitionException;
     void entryRuleStatemachineQualifiedNameWithWildCard() throws RecognitionException;
     void ruleStatemachineQualifiedNameWithWildCard() throws RecognitionException;
     void entryRuleQualifiedName() throws RecognitionException;
     void ruleQualifiedName() throws RecognitionException;
     void entryRuleValidID() throws RecognitionException;
     void ruleValidID() throws RecognitionException;
     void entryRuleTRANSLATABLESTRING() throws RecognitionException;
     void ruleTRANSLATABLESTRING() throws RecognitionException;
     void entryRuleTRANSLATABLEID() throws RecognitionException;
     void ruleTRANSLATABLEID() throws RecognitionException;
     void entryRuleSignedNumber() throws RecognitionException;
     void ruleSignedNumber() throws RecognitionException;
     void entryRuleUnsignedNumber() throws RecognitionException;
     void ruleUnsignedNumber() 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 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 entryRuleXImportDeclaration() throws RecognitionException;
     void ruleXImportDeclaration() throws RecognitionException;
     void entryRuleQualifiedNameInStaticImport() throws RecognitionException;
     void ruleQualifiedNameInStaticImport() throws RecognitionException;
     void ruleStatemachineInternalType() throws RecognitionException;
     void ruleStatemachineControlButtonEventType() throws RecognitionException;
     void ruleStatemachineEvaluationType() throws RecognitionException;
     void ruleStatemachineUserMessageType() throws RecognitionException;
     void ruleStatemachineLineDisplayCursorType() throws RecognitionException;
     void ruleStatemachineLineDisplayMarqueeType() throws RecognitionException;
     void ruleStatemachineLineDisplayMarqueeFormat() throws RecognitionException;
     void ruleStatemachineLineDisplayTextType() throws RecognitionException;
     void ruleStatemachineLineDisplayScrollTextType() throws RecognitionException;
     void ruleStatemachinePOSPrinterBarcodeType() throws RecognitionException;
     void rule__StatemachineAction__Alternatives() throws RecognitionException;
     void rule__StatemachineActionFieldSource__Alternatives() throws RecognitionException;
     void rule__StatemachineActionFieldSourceMore__Alternatives() throws RecognitionException;
     void rule__StatemachineControl__Alternatives() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEvent__Alternatives() 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__StatemachineInternalType__Alternatives() throws RecognitionException;
     void rule__StatemachineControlButtonEventType__Alternatives() throws RecognitionException;
     void rule__StatemachineEvaluationType__Alternatives() throws RecognitionException;
     void rule__StatemachineUserMessageType__Alternatives() throws RecognitionException;
     void rule__StatemachineLineDisplayCursorType__Alternatives() throws RecognitionException;
     void rule__StatemachineLineDisplayMarqueeType__Alternatives() throws RecognitionException;
     void rule__StatemachineLineDisplayMarqueeFormat__Alternatives() throws RecognitionException;
     void rule__StatemachineLineDisplayTextType__Alternatives() throws RecognitionException;
     void rule__StatemachineLineDisplayScrollTextType__Alternatives() throws RecognitionException;
     void rule__StatemachinePOSPrinterBarcodeType__Alternatives() throws RecognitionException;
     void rule__StatemachinePackage__Group__0() throws RecognitionException;
     void rule__StatemachinePackage__Group__0__Impl() throws RecognitionException;
     void rule__StatemachinePackage__Group__1() throws RecognitionException;
     void rule__StatemachinePackage__Group__1__Impl() throws RecognitionException;
     void rule__StatemachinePackage__Group__2() throws RecognitionException;
     void rule__StatemachinePackage__Group__2__Impl() throws RecognitionException;
     void rule__StatemachinePackage__Group__3() throws RecognitionException;
     void rule__StatemachinePackage__Group__3__Impl() throws RecognitionException;
     void rule__StatemachinePackage__Group_3__0() throws RecognitionException;
     void rule__StatemachinePackage__Group_3__0__Impl() throws RecognitionException;
     void rule__StatemachinePackage__Group_3__1() throws RecognitionException;
     void rule__StatemachinePackage__Group_3__1__Impl() throws RecognitionException;
     void rule__StatemachinePackage__Group_3__2() throws RecognitionException;
     void rule__StatemachinePackage__Group_3__2__Impl() throws RecognitionException;
     void rule__StatemachinePackage__Group_3__3() throws RecognitionException;
     void rule__StatemachinePackage__Group_3__3__Impl() throws RecognitionException;
     void rule__Statemachine__Group__0() throws RecognitionException;
     void rule__Statemachine__Group__0__Impl() throws RecognitionException;
     void rule__Statemachine__Group__1() throws RecognitionException;
     void rule__Statemachine__Group__1__Impl() throws RecognitionException;
     void rule__Statemachine__Group__2() throws RecognitionException;
     void rule__Statemachine__Group__2__Impl() throws RecognitionException;
     void rule__Statemachine__Group__3() throws RecognitionException;
     void rule__Statemachine__Group__3__Impl() throws RecognitionException;
     void rule__Statemachine__Group__4() throws RecognitionException;
     void rule__Statemachine__Group__4__Impl() throws RecognitionException;
     void rule__Statemachine__Group__5() throws RecognitionException;
     void rule__Statemachine__Group__5__Impl() throws RecognitionException;
     void rule__Statemachine__Group__6() throws RecognitionException;
     void rule__Statemachine__Group__6__Impl() throws RecognitionException;
     void rule__Statemachine__Group__7() throws RecognitionException;
     void rule__Statemachine__Group__7__Impl() throws RecognitionException;
     void rule__Statemachine__Group__8() throws RecognitionException;
     void rule__Statemachine__Group__8__Impl() throws RecognitionException;
     void rule__Statemachine__Group__9() throws RecognitionException;
     void rule__Statemachine__Group__9__Impl() throws RecognitionException;
     void rule__Statemachine__Group__10() throws RecognitionException;
     void rule__Statemachine__Group__10__Impl() throws RecognitionException;
     void rule__Statemachine__Group_2__0() throws RecognitionException;
     void rule__Statemachine__Group_2__0__Impl() throws RecognitionException;
     void rule__Statemachine__Group_2__1() throws RecognitionException;
     void rule__Statemachine__Group_2__1__Impl() throws RecognitionException;
     void rule__Statemachine__Group_3__0() throws RecognitionException;
     void rule__Statemachine__Group_3__0__Impl() throws RecognitionException;
     void rule__Statemachine__Group_3__1() throws RecognitionException;
     void rule__Statemachine__Group_3__1__Impl() throws RecognitionException;
     void rule__Statemachine__Group_8__0() throws RecognitionException;
     void rule__Statemachine__Group_8__0__Impl() throws RecognitionException;
     void rule__Statemachine__Group_8__1() throws RecognitionException;
     void rule__Statemachine__Group_8__1__Impl() throws RecognitionException;
     void rule__Statemachine__Group_8_1__0() throws RecognitionException;
     void rule__Statemachine__Group_8_1__0__Impl() throws RecognitionException;
     void rule__Statemachine__Group_8_1__1() throws RecognitionException;
     void rule__Statemachine__Group_8_1__1__Impl() throws RecognitionException;
     void rule__Statemachine__Group_8_1__2() throws RecognitionException;
     void rule__Statemachine__Group_8_1__2__Impl() throws RecognitionException;
     void rule__Statemachine__Group_9__0() throws RecognitionException;
     void rule__Statemachine__Group_9__0__Impl() throws RecognitionException;
     void rule__Statemachine__Group_9__1() throws RecognitionException;
     void rule__Statemachine__Group_9__1__Impl() throws RecognitionException;
     void rule__Statemachine__Group_9__2() throws RecognitionException;
     void rule__Statemachine__Group_9__2__Impl() throws RecognitionException;
     void rule__Statemachine__Group_9__3() throws RecognitionException;
     void rule__Statemachine__Group_9__3__Impl() throws RecognitionException;
     void rule__Statemachine__Group_10__0() throws RecognitionException;
     void rule__Statemachine__Group_10__0__Impl() throws RecognitionException;
     void rule__Statemachine__Group_10__1() throws RecognitionException;
     void rule__Statemachine__Group_10__1__Impl() throws RecognitionException;
     void rule__Statemachine__Group_10__2() throws RecognitionException;
     void rule__Statemachine__Group_10__2__Impl() throws RecognitionException;
     void rule__Statemachine__Group_10__3() throws RecognitionException;
     void rule__Statemachine__Group_10__3__Impl() throws RecognitionException;
     void rule__StatemachineEvent__Group__0() throws RecognitionException;
     void rule__StatemachineEvent__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineEvent__Group__1() throws RecognitionException;
     void rule__StatemachineEvent__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineState__Group__0() throws RecognitionException;
     void rule__StatemachineState__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineState__Group__1() throws RecognitionException;
     void rule__StatemachineState__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineState__Group__2() throws RecognitionException;
     void rule__StatemachineState__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineState__Group__3() throws RecognitionException;
     void rule__StatemachineState__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineState__Group__4() throws RecognitionException;
     void rule__StatemachineState__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineState__Group_3_0__0() throws RecognitionException;
     void rule__StatemachineState__Group_3_0__0__Impl() throws RecognitionException;
     void rule__StatemachineState__Group_3_0__1() throws RecognitionException;
     void rule__StatemachineState__Group_3_0__1__Impl() throws RecognitionException;
     void rule__StatemachineState__Group_3_0__2() throws RecognitionException;
     void rule__StatemachineState__Group_3_0__2__Impl() throws RecognitionException;
     void rule__StatemachineState__Group_3_0__3() throws RecognitionException;
     void rule__StatemachineState__Group_3_0__3__Impl() throws RecognitionException;
     void rule__StatemachineState__Group_3_1__0() throws RecognitionException;
     void rule__StatemachineState__Group_3_1__0__Impl() throws RecognitionException;
     void rule__StatemachineState__Group_3_1__1() throws RecognitionException;
     void rule__StatemachineState__Group_3_1__1__Impl() throws RecognitionException;
     void rule__StatemachineState__Group_3_2__0() throws RecognitionException;
     void rule__StatemachineState__Group_3_2__0__Impl() throws RecognitionException;
     void rule__StatemachineState__Group_3_2__1() throws RecognitionException;
     void rule__StatemachineState__Group_3_2__1__Impl() throws RecognitionException;
     void rule__StatemachineState__Group_3_2__2() throws RecognitionException;
     void rule__StatemachineState__Group_3_2__2__Impl() throws RecognitionException;
     void rule__StatemachineState__Group_3_2__3() throws RecognitionException;
     void rule__StatemachineState__Group_3_2__3__Impl() throws RecognitionException;
     void rule__StatemachineState__Group_3_2_3__0() throws RecognitionException;
     void rule__StatemachineState__Group_3_2_3__0__Impl() throws RecognitionException;
     void rule__StatemachineState__Group_3_2_3__1() throws RecognitionException;
     void rule__StatemachineState__Group_3_2_3__1__Impl() throws RecognitionException;
     void rule__StatemachineTrigger__Group__0() throws RecognitionException;
     void rule__StatemachineTrigger__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineTrigger__Group__1() throws RecognitionException;
     void rule__StatemachineTrigger__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineTrigger__Group__2() throws RecognitionException;
     void rule__StatemachineTrigger__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineTrigger__Group__3() throws RecognitionException;
     void rule__StatemachineTrigger__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineTrigger__Group__4() throws RecognitionException;
     void rule__StatemachineTrigger__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineTrigger__Group__5() throws RecognitionException;
     void rule__StatemachineTrigger__Group__5__Impl() throws RecognitionException;
     void rule__StatemachineTrigger__Group__6() throws RecognitionException;
     void rule__StatemachineTrigger__Group__6__Impl() throws RecognitionException;
     void rule__StatemachineTrigger__Group__7() throws RecognitionException;
     void rule__StatemachineTrigger__Group__7__Impl() throws RecognitionException;
     void rule__StatemachineTrigger__Group__8() throws RecognitionException;
     void rule__StatemachineTrigger__Group__8__Impl() throws RecognitionException;
     void rule__StatemachineTrigger__Group_3__0() throws RecognitionException;
     void rule__StatemachineTrigger__Group_3__0__Impl() throws RecognitionException;
     void rule__StatemachineTrigger__Group_3__1() throws RecognitionException;
     void rule__StatemachineTrigger__Group_3__1__Impl() throws RecognitionException;
     void rule__StatemachineTrigger__Group_3__2() throws RecognitionException;
     void rule__StatemachineTrigger__Group_3__2__Impl() throws RecognitionException;
     void rule__StatemachineTrigger__Group_3__3() throws RecognitionException;
     void rule__StatemachineTrigger__Group_3__3__Impl() throws RecognitionException;
     void rule__StatemachineTrigger__Group_5__0() throws RecognitionException;
     void rule__StatemachineTrigger__Group_5__0__Impl() throws RecognitionException;
     void rule__StatemachineTrigger__Group_5__1() throws RecognitionException;
     void rule__StatemachineTrigger__Group_5__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralBlinkRate__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralBlinkRate__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralBlinkRate__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralBlinkRate__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralBlinkRate__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralBlinkRate__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralBlinkRate__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralBlinkRate__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralClear__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralClear__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralClear__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralClear__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__4() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__5() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__5__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__6() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__6__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__7() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__7__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__8() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__8__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__9() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__9__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__10() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__10__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__11() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__11__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__12() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__12__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__13() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__13__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__14() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__Group__14__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralCursorType__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralCursorType__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralCursorType__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralCursorType__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralCursorType__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralCursorType__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralCursorType__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralCursorType__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDestroyWindow__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralDestroyWindow__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDestroyWindow__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralDestroyWindow__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDeviceBrightness__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralDeviceBrightness__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDeviceBrightness__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralDeviceBrightness__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDeviceBrightness__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralDeviceBrightness__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDeviceBrightness__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralDeviceBrightness__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayBitmap__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayBitmap__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayBitmap__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayBitmap__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayBitmap__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayBitmap__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayBitmap__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayBitmap__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayBitmap__Group__4() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayBitmap__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayText__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayText__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayText__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayText__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayText__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayText__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayText__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayText__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayText__Group__4() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayText__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayText__Group__5() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayText__Group__5__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayText__Group_3__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayText__Group_3__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayText__Group_3__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayText__Group_3__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group__4() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group__5() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group__5__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group__6() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group__6__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group__7() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group__7__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group__8() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group__8__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group__9() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group__9__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group_7__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group_7__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group_7__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__Group_7__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralInterCharacterWait__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralInterCharacterWait__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralInterCharacterWait__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralInterCharacterWait__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralInterCharacterWait__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralInterCharacterWait__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralInterCharacterWait__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralInterCharacterWait__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeFormat__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeFormat__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeFormat__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeFormat__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeFormat__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeFormat__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeFormat__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeFormat__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeType__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeType__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeType__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeType__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeType__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeType__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeType__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeType__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeUnitWait__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeUnitWait__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeUnitWait__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeUnitWait__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeUnitWait__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeUnitWait__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeUnitWait__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeUnitWait__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralScroll__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralScroll__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralScroll__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralScroll__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralScroll__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralScroll__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralScroll__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralScroll__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralScroll__Group__4() throws RecognitionException;
     void rule__StatemachineActionPeripheralScroll__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralOpenDrawer__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralOpenDrawer__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralOpenDrawer__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralOpenDrawer__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBarcode__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBarcode__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBarcode__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBarcode__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBarcode__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBarcode__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBarcode__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBarcode__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBarcode__Group__4() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBarcode__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBarcode__Group__5() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBarcode__Group__5__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBarcode__Group__6() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBarcode__Group__6__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBitmap__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBitmap__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBitmap__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBitmap__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBitmap__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBitmap__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBitmap__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBitmap__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBitmap__Group__4() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBitmap__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintCut__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintCut__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintCut__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintCut__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintCut__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintCut__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintCut__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintCut__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintCut__Group__4() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintCut__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintNormal__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintNormal__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintNormal__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintNormal__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintNormal__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintNormal__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintNormal__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintNormal__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintNormal__Group__4() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintNormal__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__4() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__5() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__5__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__6() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__6__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTOpen__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTOpen__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTOpen__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTOpen__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTOpen__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTOpen__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTOpen__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTOpen__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTOpen__Group__4() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTOpen__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTOpen__Group__5() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTOpen__Group__5__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTOpen__Group__6() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTOpen__Group__6__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTClose__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTClose__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTClose__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTClose__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTClose__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTClose__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTAcknowledge__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTAcknowledge__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTAcknowledge__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTAcknowledge__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTAcknowledge__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTAcknowledge__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTReversal__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTReversal__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTReversal__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTReversal__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTReversal__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTReversal__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTReversal__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTReversal__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTReversal__Group__4() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTReversal__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTReversal__Group__5() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTReversal__Group__5__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTReversal__Group__6() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTReversal__Group__6__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTRegistration__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTRegistration__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTRegistration__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTRegistration__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTRegistration__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTRegistration__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTRegistration__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTRegistration__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTRegistration__Group__4() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTRegistration__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTRegistration__Group__5() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTRegistration__Group__5__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTRegistration__Group__6() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTRegistration__Group__6__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTAuthorization__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTAuthorization__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTAuthorization__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTAuthorization__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTAuthorization__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTAuthorization__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTAuthorization__Group__3() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTAuthorization__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTAuthorization__Group__4() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTAuthorization__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTResponse__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTResponse__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTResponse__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTResponse__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTResponse__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTResponse__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintReport__Group__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintReport__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintReport__Group__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintReport__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintReport__Group__2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintReport__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintReport__Group_2__0() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintReport__Group_2__0__Impl() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintReport__Group_2__1() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintReport__Group_2__1__Impl() throws RecognitionException;
     void rule__StatemachineOperation__Group__0() throws RecognitionException;
     void rule__StatemachineOperation__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineOperation__Group__1() throws RecognitionException;
     void rule__StatemachineOperation__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineOperation__Group__2() throws RecognitionException;
     void rule__StatemachineOperation__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineOperation__Group__3() throws RecognitionException;
     void rule__StatemachineOperation__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineOperation__Group__4() throws RecognitionException;
     void rule__StatemachineOperation__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineOperation__Group__5() throws RecognitionException;
     void rule__StatemachineOperation__Group__5__Impl() throws RecognitionException;
     void rule__StatemachineGuard__Group__0() throws RecognitionException;
     void rule__StatemachineGuard__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineGuard__Group__1() throws RecognitionException;
     void rule__StatemachineGuard__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineGuard__Group__2() throws RecognitionException;
     void rule__StatemachineGuard__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineGuard__Group_2__0() throws RecognitionException;
     void rule__StatemachineGuard__Group_2__0__Impl() throws RecognitionException;
     void rule__StatemachineGuard__Group_2__1() throws RecognitionException;
     void rule__StatemachineGuard__Group_2__1__Impl() throws RecognitionException;
     void rule__StatemachineGuard__Group_2__2() throws RecognitionException;
     void rule__StatemachineGuard__Group_2__2__Impl() throws RecognitionException;
     void rule__StatemachineGuard__Group_2__3() throws RecognitionException;
     void rule__StatemachineGuard__Group_2__3__Impl() throws RecognitionException;
     void rule__StatemachineGuard__Group_2__4() throws RecognitionException;
     void rule__StatemachineGuard__Group_2__4__Impl() throws RecognitionException;
     void rule__StatemachineGuard__Group_2__5() throws RecognitionException;
     void rule__StatemachineGuard__Group_2__5__Impl() throws RecognitionException;
     void rule__StatemachineGuard__Group_2__6() throws RecognitionException;
     void rule__StatemachineGuard__Group_2__6__Impl() throws RecognitionException;
     void rule__StatemachineFunction__Group__0() throws RecognitionException;
     void rule__StatemachineFunction__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineFunction__Group__1() throws RecognitionException;
     void rule__StatemachineFunction__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineFunction__Group__2() throws RecognitionException;
     void rule__StatemachineFunction__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineFunction__Group__3() throws RecognitionException;
     void rule__StatemachineFunction__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineFunction__Group__4() throws RecognitionException;
     void rule__StatemachineFunction__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineFunction__Group__5() throws RecognitionException;
     void rule__StatemachineFunction__Group__5__Impl() throws RecognitionException;
     void rule__StatemachineStorage__Group__0() throws RecognitionException;
     void rule__StatemachineStorage__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineStorage__Group__1() throws RecognitionException;
     void rule__StatemachineStorage__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineStorage__Group__2() throws RecognitionException;
     void rule__StatemachineStorage__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineStorage__Group__3() throws RecognitionException;
     void rule__StatemachineStorage__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineStorage__Group__4() throws RecognitionException;
     void rule__StatemachineStorage__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineStorage__Group__5() throws RecognitionException;
     void rule__StatemachineStorage__Group__5__Impl() throws RecognitionException;
     void rule__StatemachineStorageRetrieve__Group__0() throws RecognitionException;
     void rule__StatemachineStorageRetrieve__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineStorageRetrieve__Group__1() throws RecognitionException;
     void rule__StatemachineStorageRetrieve__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineStorageRetrieve__Group__2() throws RecognitionException;
     void rule__StatemachineStorageRetrieve__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineStorageRetrieve__Group__3() throws RecognitionException;
     void rule__StatemachineStorageRetrieve__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineStorageRetrieve__Group__4() throws RecognitionException;
     void rule__StatemachineStorageRetrieve__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineActionConditionalTransition__Group__0() throws RecognitionException;
     void rule__StatemachineActionConditionalTransition__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionConditionalTransition__Group__1() throws RecognitionException;
     void rule__StatemachineActionConditionalTransition__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionConditionalTransition__Group__2() throws RecognitionException;
     void rule__StatemachineActionConditionalTransition__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionConditionalTransition__Group__3() throws RecognitionException;
     void rule__StatemachineActionConditionalTransition__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionConditionalTransition__Group__4() throws RecognitionException;
     void rule__StatemachineActionConditionalTransition__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineActionConditionalTransition__Group__5() throws RecognitionException;
     void rule__StatemachineActionConditionalTransition__Group__5__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceEvent__Group__0() throws RecognitionException;
     void rule__StatemachineActionFieldSourceEvent__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceEvent__Group__1() throws RecognitionException;
     void rule__StatemachineActionFieldSourceEvent__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceTranslate__Group__0() throws RecognitionException;
     void rule__StatemachineActionFieldSourceTranslate__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceTranslate__Group__1() throws RecognitionException;
     void rule__StatemachineActionFieldSourceTranslate__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttribute__Group__0() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttribute__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttribute__Group__1() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttribute__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttribute__Group__2() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttribute__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttribute__Group__3() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttribute__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceStringMore__Group__0() throws RecognitionException;
     void rule__StatemachineActionFieldSourceStringMore__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceStringMore__Group__1() throws RecognitionException;
     void rule__StatemachineActionFieldSourceStringMore__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceStringMore__Group__2() throws RecognitionException;
     void rule__StatemachineActionFieldSourceStringMore__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceNumberMore__Group__0() throws RecognitionException;
     void rule__StatemachineActionFieldSourceNumberMore__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceNumberMore__Group__1() throws RecognitionException;
     void rule__StatemachineActionFieldSourceNumberMore__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceNumberMore__Group__2() throws RecognitionException;
     void rule__StatemachineActionFieldSourceNumberMore__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceEvaluateMore__Group__0() throws RecognitionException;
     void rule__StatemachineActionFieldSourceEvaluateMore__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceEvaluateMore__Group__1() throws RecognitionException;
     void rule__StatemachineActionFieldSourceEvaluateMore__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceEvaluateMore__Group__2() throws RecognitionException;
     void rule__StatemachineActionFieldSourceEvaluateMore__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceTranslateMore__Group__0() throws RecognitionException;
     void rule__StatemachineActionFieldSourceTranslateMore__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceTranslateMore__Group__1() throws RecognitionException;
     void rule__StatemachineActionFieldSourceTranslateMore__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceTranslateMore__Group__2() throws RecognitionException;
     void rule__StatemachineActionFieldSourceTranslateMore__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceTranslateMore__Group__3() throws RecognitionException;
     void rule__StatemachineActionFieldSourceTranslateMore__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldGetMore__Group__0() throws RecognitionException;
     void rule__StatemachineActionFieldGetMore__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldGetMore__Group__1() throws RecognitionException;
     void rule__StatemachineActionFieldGetMore__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldGetMore__Group__2() throws RecognitionException;
     void rule__StatemachineActionFieldGetMore__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldGetMore__Group__3() throws RecognitionException;
     void rule__StatemachineActionFieldGetMore__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineOperationMore__Group__0() throws RecognitionException;
     void rule__StatemachineOperationMore__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineOperationMore__Group__1() throws RecognitionException;
     void rule__StatemachineOperationMore__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineOperationMore__Group__2() throws RecognitionException;
     void rule__StatemachineOperationMore__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineOperationMore__Group__3() throws RecognitionException;
     void rule__StatemachineOperationMore__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineStorageRetrieveMore__Group__0() throws RecognitionException;
     void rule__StatemachineStorageRetrieveMore__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineStorageRetrieveMore__Group__1() throws RecognitionException;
     void rule__StatemachineStorageRetrieveMore__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineStorageRetrieveMore__Group__2() throws RecognitionException;
     void rule__StatemachineStorageRetrieveMore__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineStorageRetrieveMore__Group__3() throws RecognitionException;
     void rule__StatemachineStorageRetrieveMore__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineStorageRetrieveMore__Group__4() throws RecognitionException;
     void rule__StatemachineStorageRetrieveMore__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineStorageRetrieveMore__Group__5() throws RecognitionException;
     void rule__StatemachineStorageRetrieveMore__Group__5__Impl() throws RecognitionException;
     void rule__StatemachineStorageRetrieveMore__Group__6() throws RecognitionException;
     void rule__StatemachineStorageRetrieveMore__Group__6__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttributeMore__Group__0() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttributeMore__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttributeMore__Group__1() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttributeMore__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttributeMore__Group__2() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttributeMore__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttributeMore__Group__3() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttributeMore__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttributeMore__Group__4() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttributeMore__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttributeMore__Group__5() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttributeMore__Group__5__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldConcatenation__Group__0() throws RecognitionException;
     void rule__StatemachineActionFieldConcatenation__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldConcatenation__Group__1() throws RecognitionException;
     void rule__StatemachineActionFieldConcatenation__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineOperationParameterMore__Group__0() throws RecognitionException;
     void rule__StatemachineOperationParameterMore__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineOperationParameterMore__Group__1() throws RecognitionException;
     void rule__StatemachineOperationParameterMore__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineOperationParameterMore__Group__2() throws RecognitionException;
     void rule__StatemachineOperationParameterMore__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSet__Group__0() throws RecognitionException;
     void rule__StatemachineActionFieldSet__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSet__Group__1() throws RecognitionException;
     void rule__StatemachineActionFieldSet__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSet__Group__2() throws RecognitionException;
     void rule__StatemachineActionFieldSet__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldSet__Group__3() throws RecognitionException;
     void rule__StatemachineActionFieldSet__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldClear__Group__0() throws RecognitionException;
     void rule__StatemachineActionFieldClear__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldClear__Group__1() throws RecognitionException;
     void rule__StatemachineActionFieldClear__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldGet__Group__0() throws RecognitionException;
     void rule__StatemachineActionFieldGet__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldGet__Group__1() throws RecognitionException;
     void rule__StatemachineActionFieldGet__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldRemove__Group__0() throws RecognitionException;
     void rule__StatemachineActionFieldRemove__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionFieldRemove__Group__1() throws RecognitionException;
     void rule__StatemachineActionFieldRemove__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionItemVisible__Group__0() throws RecognitionException;
     void rule__StatemachineActionItemVisible__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionItemVisible__Group__1() throws RecognitionException;
     void rule__StatemachineActionItemVisible__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionItemInvisible__Group__0() throws RecognitionException;
     void rule__StatemachineActionItemInvisible__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionItemInvisible__Group__1() throws RecognitionException;
     void rule__StatemachineActionItemInvisible__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionButtonCaption__Group__0() throws RecognitionException;
     void rule__StatemachineActionButtonCaption__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionButtonCaption__Group__1() throws RecognitionException;
     void rule__StatemachineActionButtonCaption__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionButtonCaption__Group__2() throws RecognitionException;
     void rule__StatemachineActionButtonCaption__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionButtonCaption__Group__3() throws RecognitionException;
     void rule__StatemachineActionButtonCaption__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionButtonImage__Group__0() throws RecognitionException;
     void rule__StatemachineActionButtonImage__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionButtonImage__Group__1() throws RecognitionException;
     void rule__StatemachineActionButtonImage__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionButtonImage__Group__2() throws RecognitionException;
     void rule__StatemachineActionButtonImage__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionButtonImage__Group__3() throws RecognitionException;
     void rule__StatemachineActionButtonImage__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionDTOFind__Group__0() throws RecognitionException;
     void rule__StatemachineActionDTOFind__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionDTOFind__Group__1() throws RecognitionException;
     void rule__StatemachineActionDTOFind__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineActionDTOFind__Group__2() throws RecognitionException;
     void rule__StatemachineActionDTOFind__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineActionDTOFind__Group__3() throws RecognitionException;
     void rule__StatemachineActionDTOFind__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineActionDTOFind__Group__4() throws RecognitionException;
     void rule__StatemachineActionDTOFind__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineActionDTOFind__Group__5() throws RecognitionException;
     void rule__StatemachineActionDTOFind__Group__5__Impl() throws RecognitionException;
     void rule__StatemachineActionScheduler__Group__0() throws RecognitionException;
     void rule__StatemachineActionScheduler__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineActionScheduler__Group__1() throws RecognitionException;
     void rule__StatemachineActionScheduler__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineControlButton__Group__0() throws RecognitionException;
     void rule__StatemachineControlButton__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineControlButton__Group__1() throws RecognitionException;
     void rule__StatemachineControlButton__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineControlButton__Group__2() throws RecognitionException;
     void rule__StatemachineControlButton__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineControlButton__Group__3() throws RecognitionException;
     void rule__StatemachineControlButton__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineControlButton__Group__4() throws RecognitionException;
     void rule__StatemachineControlButton__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineControlButton__Group__5() throws RecognitionException;
     void rule__StatemachineControlButton__Group__5__Impl() throws RecognitionException;
     void rule__StatemachineControlButton__Group__6() throws RecognitionException;
     void rule__StatemachineControlButton__Group__6__Impl() throws RecognitionException;
     void rule__StatemachineControlField__Group__0() throws RecognitionException;
     void rule__StatemachineControlField__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineControlField__Group__1() throws RecognitionException;
     void rule__StatemachineControlField__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineControlField__Group__2() throws RecognitionException;
     void rule__StatemachineControlField__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineControlField__Group__3() throws RecognitionException;
     void rule__StatemachineControlField__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineControlField__Group__4() throws RecognitionException;
     void rule__StatemachineControlField__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineControlDTO__Group__0() throws RecognitionException;
     void rule__StatemachineControlDTO__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineControlDTO__Group__1() throws RecognitionException;
     void rule__StatemachineControlDTO__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineControlDTO__Group__2() throws RecognitionException;
     void rule__StatemachineControlDTO__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineControlDTO__Group__3() throws RecognitionException;
     void rule__StatemachineControlDTO__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineControlDTO__Group__4() throws RecognitionException;
     void rule__StatemachineControlDTO__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineControlScheduler__Group__0() throws RecognitionException;
     void rule__StatemachineControlScheduler__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineControlScheduler__Group__1() throws RecognitionException;
     void rule__StatemachineControlScheduler__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineControlScheduler__Group__2() throws RecognitionException;
     void rule__StatemachineControlScheduler__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineControlScheduler__Group__3() throws RecognitionException;
     void rule__StatemachineControlScheduler__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineControlScheduler__Group__4() throws RecognitionException;
     void rule__StatemachineControlScheduler__Group__4__Impl() throws RecognitionException;
     void rule__StatemachinePeripheralDeviceLineDisplay__Group__0() throws RecognitionException;
     void rule__StatemachinePeripheralDeviceLineDisplay__Group__0__Impl() throws RecognitionException;
     void rule__StatemachinePeripheralDeviceLineDisplay__Group__1() throws RecognitionException;
     void rule__StatemachinePeripheralDeviceLineDisplay__Group__1__Impl() throws RecognitionException;
     void rule__StatemachinePeripheralDevicePOSPrinter__Group__0() throws RecognitionException;
     void rule__StatemachinePeripheralDevicePOSPrinter__Group__0__Impl() throws RecognitionException;
     void rule__StatemachinePeripheralDevicePOSPrinter__Group__1() throws RecognitionException;
     void rule__StatemachinePeripheralDevicePOSPrinter__Group__1__Impl() throws RecognitionException;
     void rule__StatemachinePeripheralDeviceCashDrawer__Group__0() throws RecognitionException;
     void rule__StatemachinePeripheralDeviceCashDrawer__Group__0__Impl() throws RecognitionException;
     void rule__StatemachinePeripheralDeviceCashDrawer__Group__1() throws RecognitionException;
     void rule__StatemachinePeripheralDeviceCashDrawer__Group__1__Impl() throws RecognitionException;
     void rule__StatemachinePeripheralDevicePT__Group__0() throws RecognitionException;
     void rule__StatemachinePeripheralDevicePT__Group__0__Impl() throws RecognitionException;
     void rule__StatemachinePeripheralDevicePT__Group__1() throws RecognitionException;
     void rule__StatemachinePeripheralDevicePT__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineControlPeripheral__Group__0() throws RecognitionException;
     void rule__StatemachineControlPeripheral__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineControlPeripheral__Group__1() throws RecognitionException;
     void rule__StatemachineControlPeripheral__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineControlPeripheral__Group__2() throws RecognitionException;
     void rule__StatemachineControlPeripheral__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineControlPeripheral__Group__3() throws RecognitionException;
     void rule__StatemachineControlPeripheral__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineControlPeripheral__Group__4() throws RecognitionException;
     void rule__StatemachineControlPeripheral__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineControlPeripheral__Group__5() throws RecognitionException;
     void rule__StatemachineControlPeripheral__Group__5__Impl() throws RecognitionException;
     void rule__StatemachineControlPeripheral__Group__6() throws RecognitionException;
     void rule__StatemachineControlPeripheral__Group__6__Impl() throws RecognitionException;
     void rule__StatemachineControlPeripheral__Group__7() throws RecognitionException;
     void rule__StatemachineControlPeripheral__Group__7__Impl() throws RecognitionException;
     void rule__StatemachineControlButtonAttribute__Group__0() throws RecognitionException;
     void rule__StatemachineControlButtonAttribute__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineControlButtonAttribute__Group__1() throws RecognitionException;
     void rule__StatemachineControlButtonAttribute__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineControlButtonAttribute__Group__2() throws RecognitionException;
     void rule__StatemachineControlButtonAttribute__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineControlButtonAttribute__Group__3() throws RecognitionException;
     void rule__StatemachineControlButtonAttribute__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineControlButtonAttribute__Group_2__0() throws RecognitionException;
     void rule__StatemachineControlButtonAttribute__Group_2__0__Impl() throws RecognitionException;
     void rule__StatemachineControlButtonAttribute__Group_2__1() throws RecognitionException;
     void rule__StatemachineControlButtonAttribute__Group_2__1__Impl() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventKeyboard__Group__0() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventKeyboard__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventKeyboard__Group__1() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventKeyboard__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventKeyboard__Group__2() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventKeyboard__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventIdentity__Group__0() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventIdentity__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventIdentity__Group__1() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventIdentity__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventIdentity__Group__2() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventIdentity__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventEvent__Group__0() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventEvent__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventEvent__Group__1() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventEvent__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventEvent__Group__2() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventEvent__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineControlFieldAttribute__Group__0() throws RecognitionException;
     void rule__StatemachineControlFieldAttribute__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineControlFieldAttribute__Group__1() throws RecognitionException;
     void rule__StatemachineControlFieldAttribute__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineControlFieldAttribute__Group__2() throws RecognitionException;
     void rule__StatemachineControlFieldAttribute__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineControlFieldAttribute__Group__3() throws RecognitionException;
     void rule__StatemachineControlFieldAttribute__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineControlFieldLayout__Group__0() throws RecognitionException;
     void rule__StatemachineControlFieldLayout__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineControlFieldLayout__Group__1() throws RecognitionException;
     void rule__StatemachineControlFieldLayout__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineControlDTOAttribute__Group__0() throws RecognitionException;
     void rule__StatemachineControlDTOAttribute__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineControlDTOAttribute__Group__1() throws RecognitionException;
     void rule__StatemachineControlDTOAttribute__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineControlDTOAttribute__Group__2() throws RecognitionException;
     void rule__StatemachineControlDTOAttribute__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineControlDTOAttribute__Group__3() throws RecognitionException;
     void rule__StatemachineControlDTOAttribute__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineControlDTOAttribute__Group__4() throws RecognitionException;
     void rule__StatemachineControlDTOAttribute__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineControlDTOAttribute__Group_4__0() throws RecognitionException;
     void rule__StatemachineControlDTOAttribute__Group_4__0__Impl() throws RecognitionException;
     void rule__StatemachineControlDTOAttribute__Group_4__1() throws RecognitionException;
     void rule__StatemachineControlDTOAttribute__Group_4__1__Impl() throws RecognitionException;
     void rule__StatemachineControlSchedulerAttribute__Group__0() throws RecognitionException;
     void rule__StatemachineControlSchedulerAttribute__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineControlSchedulerAttribute__Group__1() throws RecognitionException;
     void rule__StatemachineControlSchedulerAttribute__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineControlSchedulerAttribute__Group__2() throws RecognitionException;
     void rule__StatemachineControlSchedulerAttribute__Group__2__Impl() throws RecognitionException;
     void rule__StatemachineControlSchedulerAttribute__Group__3() throws RecognitionException;
     void rule__StatemachineControlSchedulerAttribute__Group__3__Impl() throws RecognitionException;
     void rule__StatemachineControlSchedulerAttribute__Group__4() throws RecognitionException;
     void rule__StatemachineControlSchedulerAttribute__Group__4__Impl() throws RecognitionException;
     void rule__StatemachineControlSchedulerAttribute__Group__5() throws RecognitionException;
     void rule__StatemachineControlSchedulerAttribute__Group__5__Impl() throws RecognitionException;
     void rule__StatemachineImport__Group__0() throws RecognitionException;
     void rule__StatemachineImport__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineImport__Group__1() throws RecognitionException;
     void rule__StatemachineImport__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineQualifiedNameWithWildCard__Group__0() throws RecognitionException;
     void rule__StatemachineQualifiedNameWithWildCard__Group__0__Impl() throws RecognitionException;
     void rule__StatemachineQualifiedNameWithWildCard__Group__1() throws RecognitionException;
     void rule__StatemachineQualifiedNameWithWildCard__Group__1__Impl() throws RecognitionException;
     void rule__StatemachineQualifiedNameWithWildCard__Group_1__0() throws RecognitionException;
     void rule__StatemachineQualifiedNameWithWildCard__Group_1__0__Impl() throws RecognitionException;
     void rule__StatemachineQualifiedNameWithWildCard__Group_1__1() throws RecognitionException;
     void rule__StatemachineQualifiedNameWithWildCard__Group_1__1__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__SignedNumber__Group__0() throws RecognitionException;
     void rule__SignedNumber__Group__0__Impl() throws RecognitionException;
     void rule__SignedNumber__Group__1() throws RecognitionException;
     void rule__SignedNumber__Group__1__Impl() throws RecognitionException;
     void rule__UnsignedNumber__Group__0() throws RecognitionException;
     void rule__UnsignedNumber__Group__0__Impl() throws RecognitionException;
     void rule__UnsignedNumber__Group__1() throws RecognitionException;
     void rule__UnsignedNumber__Group__1__Impl() throws RecognitionException;
     void rule__UnsignedNumber__Group_1__0() throws RecognitionException;
     void rule__UnsignedNumber__Group_1__0__Impl() throws RecognitionException;
     void rule__UnsignedNumber__Group_1__1() throws RecognitionException;
     void rule__UnsignedNumber__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__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__StatemachineState__UnorderedGroup_3() throws RecognitionException;
     void rule__StatemachineState__UnorderedGroup_3__Impl() throws RecognitionException;
     void rule__StatemachineState__UnorderedGroup_3__0() throws RecognitionException;
     void rule__StatemachineState__UnorderedGroup_3__1() throws RecognitionException;
     void rule__StatemachineState__UnorderedGroup_3__2() throws RecognitionException;
     void rule__StatemachineControlField__UnorderedGroup_3() throws RecognitionException;
     void rule__StatemachineControlField__UnorderedGroup_3__Impl() throws RecognitionException;
     void rule__StatemachineControlField__UnorderedGroup_3__0() throws RecognitionException;
     void rule__StatemachineControlField__UnorderedGroup_3__1() throws RecognitionException;
     void rule__StatemachineModel__PackagesAssignment() throws RecognitionException;
     void rule__StatemachinePackage__NameAssignment_2() throws RecognitionException;
     void rule__StatemachinePackage__ImportsAssignment_3_1() throws RecognitionException;
     void rule__StatemachinePackage__StatemachinesAssignment_3_2() throws RecognitionException;
     void rule__Statemachine__NameAssignment_1() throws RecognitionException;
     void rule__Statemachine__DescriptionAssignment_2_0() throws RecognitionException;
     void rule__Statemachine__DescriptionValueAssignment_2_1() throws RecognitionException;
     void rule__Statemachine__FunctionGroupAssignment_3_1() throws RecognitionException;
     void rule__Statemachine__InitialStateAssignment_5() throws RecognitionException;
     void rule__Statemachine__InitialEventAssignment_7() throws RecognitionException;
     void rule__Statemachine__EventsAssignment_8_1_1() throws RecognitionException;
     void rule__Statemachine__ControlsAssignment_9_2() throws RecognitionException;
     void rule__Statemachine__StatesAssignment_10_2() throws RecognitionException;
     void rule__StatemachineEvent__NameAssignment_1() throws RecognitionException;
     void rule__StatemachineState__NameAssignment_1() throws RecognitionException;
     void rule__StatemachineState__TriggersAssignment_3_0_2() throws RecognitionException;
     void rule__StatemachineState__IdentityAssignment_3_1_1() throws RecognitionException;
     void rule__StatemachineState__KeystrokeAssignment_3_2_2() throws RecognitionException;
     void rule__StatemachineState__HasKeyOperationAssignment_3_2_3_0() throws RecognitionException;
     void rule__StatemachineState__KeyOperationAssignment_3_2_3_1() throws RecognitionException;
     void rule__StatemachineTrigger__TriggersAssignment_2() throws RecognitionException;
     void rule__StatemachineTrigger__GuardsAssignment_3_2() throws RecognitionException;
     void rule__StatemachineTrigger__HasTransitionAssignment_5_0() throws RecognitionException;
     void rule__StatemachineTrigger__TransitionAssignment_5_1() throws RecognitionException;
     void rule__StatemachineTrigger__ActionsAssignment_7() throws RecognitionException;
     void rule__StatemachineActionPeripheralBlinkRate__BlinkRateAssignment_1() throws RecognitionException;
     void rule__StatemachineActionPeripheralBlinkRate__DeviceAssignment_3() throws RecognitionException;
     void rule__StatemachineActionPeripheralClear__DeviceAssignment_1() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__ViewportRowAssignment_2() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__ViewportColumnAssignment_4() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__ViewportHeightAssignment_6() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__ViewportWidthAssignment_8() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__WindowHeightAssignment_10() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__WindowWidthAssignment_12() throws RecognitionException;
     void rule__StatemachineActionPeripheralCreateWindow__DeviceAssignment_14() throws RecognitionException;
     void rule__StatemachineActionPeripheralCursorType__CursorTypeAssignment_1() throws RecognitionException;
     void rule__StatemachineActionPeripheralCursorType__DeviceAssignment_3() throws RecognitionException;
     void rule__StatemachineActionPeripheralDestroyWindow__DeviceAssignment_1() throws RecognitionException;
     void rule__StatemachineActionPeripheralDeviceBrightness__BrightnessAssignment_1() throws RecognitionException;
     void rule__StatemachineActionPeripheralDeviceBrightness__DeviceAssignment_3() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayBitmap__BitmapIdAssignment_2() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayBitmap__DeviceAssignment_4() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayText__TextAssignment_2() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayText__HasTypeAssignment_3_0() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayText__TextTypeAssignment_3_1() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayText__DeviceAssignment_5() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__TextAssignment_2() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__RowAssignment_4() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__ColumnAssignment_6() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__HasTypeAssignment_7_0() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__TextTypeAssignment_7_1() throws RecognitionException;
     void rule__StatemachineActionPeripheralDisplayTextAt__DeviceAssignment_9() throws RecognitionException;
     void rule__StatemachineActionPeripheralInterCharacterWait__WaitAssignment_1() throws RecognitionException;
     void rule__StatemachineActionPeripheralInterCharacterWait__DeviceAssignment_3() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeFormat__FormatAssignment_1() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeFormat__DeviceAssignment_3() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeRepeatWait__WaitAssignment_1() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeRepeatWait__DeviceAssignment_3() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeType__MarqueeTypeAssignment_1() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeType__DeviceAssignment_3() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeUnitWait__WaitAssignment_1() throws RecognitionException;
     void rule__StatemachineActionPeripheralMarqueeUnitWait__DeviceAssignment_3() throws RecognitionException;
     void rule__StatemachineActionPeripheralScroll__DirectionAssignment_1() throws RecognitionException;
     void rule__StatemachineActionPeripheralScroll__UnitsAssignment_2() throws RecognitionException;
     void rule__StatemachineActionPeripheralScroll__DeviceAssignment_4() throws RecognitionException;
     void rule__StatemachineActionPeripheralOpenDrawer__DeviceAssignment_1() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBarcode__DataAssignment_2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBarcode__BarcodeTypeAssignment_4() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBarcode__DeviceAssignment_6() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBitmap__BitmapIdAssignment_2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintBitmap__DeviceAssignment_4() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintCut__TextAssignment_2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintCut__DeviceAssignment_4() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintNormal__TextAssignment_2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintNormal__DeviceAssignment_4() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintRegisterBitmap__BitmapIdAssignment_2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintRegisterBitmap__NameAssignment_4() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintRegisterBitmap__DeviceAssignment_6() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTOpen__HostAssignment_2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTOpen__PortAssignment_4() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTOpen__DeviceAssignment_6() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTClose__DeviceAssignment_2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTAcknowledge__DeviceAssignment_2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTReversal__PasswordAssignment_2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTReversal__ReceiptAssignment_4() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTReversal__DeviceAssignment_6() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTRegistration__PasswordAssignment_2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTRegistration__ConfigurationAssignment_4() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTRegistration__DeviceAssignment_6() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTAuthorization__AmountAssignment_2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTAuthorization__DeviceAssignment_4() throws RecognitionException;
     void rule__StatemachineActionPeripheralPTResponse__DeviceAssignment_2() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintReport__ReportAssignment_1() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintReport__HasFilterAssignment_2_0() throws RecognitionException;
     void rule__StatemachineActionPeripheralPrintReport__KeyAssignment_2_1() throws RecognitionException;
     void rule__StatemachineOperation__OperationAssignment_1() throws RecognitionException;
     void rule__StatemachineOperation__FirstAssignment_3() throws RecognitionException;
     void rule__StatemachineOperation__MoreAssignment_4() throws RecognitionException;
     void rule__StatemachineGuard__GuardAssignment_1() throws RecognitionException;
     void rule__StatemachineGuard__HasOnFailAssignment_2_0() throws RecognitionException;
     void rule__StatemachineGuard__OnFailCaptionAssignment_2_2() throws RecognitionException;
     void rule__StatemachineGuard__OnFailDescriptionAssignment_2_4() throws RecognitionException;
     void rule__StatemachineGuard__OnFailTypeAssignment_2_6() throws RecognitionException;
     void rule__StatemachineFunction__FunctionAssignment_1() throws RecognitionException;
     void rule__StatemachineFunction__FirstAssignment_3() throws RecognitionException;
     void rule__StatemachineFunction__MoreAssignment_4() throws RecognitionException;
     void rule__StatemachineStorage__ContentAssignment_1() throws RecognitionException;
     void rule__StatemachineStorage__KeyAssignment_3() throws RecognitionException;
     void rule__StatemachineStorage__AttributeAssignment_5() throws RecognitionException;
     void rule__StatemachineStorageRetrieve__KeyAssignment_2() throws RecognitionException;
     void rule__StatemachineStorageRetrieve__AttributeAssignment_4() throws RecognitionException;
     void rule__StatemachineActionConditionalTransition__TransitionAssignment_1() throws RecognitionException;
     void rule__StatemachineActionConditionalTransition__GuardAssignment_2() throws RecognitionException;
     void rule__StatemachineActionConditionalTransition__ActionsAssignment_4() throws RecognitionException;
     void rule__StatemachineActionFieldSourceString__TextAssignment() throws RecognitionException;
     void rule__StatemachineActionFieldSourceNumber__ValueAssignment() throws RecognitionException;
     void rule__StatemachineActionFieldSourceEvaluate__EvaluationtypeAssignment() throws RecognitionException;
     void rule__StatemachineActionFieldSourceTranslate__TextAssignment_1() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttribute__DtoAssignment_1() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttribute__AttributeAssignment_3() throws RecognitionException;
     void rule__StatemachineActionFieldSourceStringMore__TextAssignment_2() throws RecognitionException;
     void rule__StatemachineActionFieldSourceNumberMore__ValueAssignment_2() throws RecognitionException;
     void rule__StatemachineActionFieldSourceEvaluateMore__EvaluationtypeAssignment_2() throws RecognitionException;
     void rule__StatemachineActionFieldSourceTranslateMore__TextAssignment_3() throws RecognitionException;
     void rule__StatemachineActionFieldGetMore__AttributeAssignment_3() throws RecognitionException;
     void rule__StatemachineOperationMore__OperationAssignment_3() throws RecognitionException;
     void rule__StatemachineStorageRetrieveMore__KeyAssignment_4() throws RecognitionException;
     void rule__StatemachineStorageRetrieveMore__AttributeAssignment_6() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttributeMore__DtoAssignment_3() throws RecognitionException;
     void rule__StatemachineActionFieldSourceDtoAttributeMore__AttributeAssignment_5() throws RecognitionException;
     void rule__StatemachineActionFieldConcatenation__FirstAssignment_0() throws RecognitionException;
     void rule__StatemachineActionFieldConcatenation__MoreAssignment_1() throws RecognitionException;
     void rule__StatemachineOperationParameter__SourceAssignment() throws RecognitionException;
     void rule__StatemachineOperationParameterMore__SourceAssignment_2() throws RecognitionException;
     void rule__StatemachineActionFieldSet__SourceAssignment_1() throws RecognitionException;
     void rule__StatemachineActionFieldSet__AttributeAssignment_3() throws RecognitionException;
     void rule__StatemachineActionFieldClear__AttributeAssignment_1() throws RecognitionException;
     void rule__StatemachineActionFieldGet__AttributeAssignment_1() throws RecognitionException;
     void rule__StatemachineActionFieldRemove__AttributeAssignment_1() throws RecognitionException;
     void rule__StatemachineActionItemVisible__AttributeAssignment_1() throws RecognitionException;
     void rule__StatemachineActionItemInvisible__AttributeAssignment_1() throws RecognitionException;
     void rule__StatemachineActionButtonCaption__CaptionAssignment_1() throws RecognitionException;
     void rule__StatemachineActionButtonCaption__AttributeAssignment_3() throws RecognitionException;
     void rule__StatemachineActionButtonImage__ImageAssignment_1() throws RecognitionException;
     void rule__StatemachineActionButtonImage__AttributeAssignment_3() throws RecognitionException;
     void rule__StatemachineActionDTOFind__SearchAssignment_1() throws RecognitionException;
     void rule__StatemachineActionDTOFind__DtoAssignment_3() throws RecognitionException;
     void rule__StatemachineActionDTOFind__AttributeAssignment_5() throws RecognitionException;
     void rule__StatemachineActionScheduler__SchedulerAssignment_1() throws RecognitionException;
     void rule__StatemachineControlButton__NameAssignment_1() throws RecognitionException;
     void rule__StatemachineControlButton__EventTypeAssignment_3() throws RecognitionException;
     void rule__StatemachineControlButton__ButtonsAssignment_5() throws RecognitionException;
     void rule__StatemachineControlField__NameAssignment_1() throws RecognitionException;
     void rule__StatemachineControlField__FieldsAssignment_3_0() throws RecognitionException;
     void rule__StatemachineControlField__LayoutsAssignment_3_1() throws RecognitionException;
     void rule__StatemachineControlDTO__NameAssignment_1() throws RecognitionException;
     void rule__StatemachineControlDTO__DtosAssignment_3() throws RecognitionException;
     void rule__StatemachineControlScheduler__NameAssignment_1() throws RecognitionException;
     void rule__StatemachineControlScheduler__SchedulersAssignment_3() throws RecognitionException;
     void rule__StatemachinePeripheralDeviceLineDisplay__NameAssignment_1() throws RecognitionException;
     void rule__StatemachinePeripheralDevicePOSPrinter__NameAssignment_1() throws RecognitionException;
     void rule__StatemachinePeripheralDeviceCashDrawer__NameAssignment_1() throws RecognitionException;
     void rule__StatemachinePeripheralDevicePT__NameAssignment_1() throws RecognitionException;
     void rule__StatemachineControlPeripheral__NameAssignment_1() throws RecognitionException;
     void rule__StatemachineControlPeripheral__LineDisplaysAssignment_3() throws RecognitionException;
     void rule__StatemachineControlPeripheral__PosPrintersAssignment_4() throws RecognitionException;
     void rule__StatemachineControlPeripheral__CashDrawersAssignment_5() throws RecognitionException;
     void rule__StatemachineControlPeripheral__PaymentTerminalsAssignment_6() throws RecognitionException;
     void rule__StatemachineControlButtonAttribute__NameAssignment_1() throws RecognitionException;
     void rule__StatemachineControlButtonAttribute__HasImageAssignment_2_0() throws RecognitionException;
     void rule__StatemachineControlButtonAttribute__ImageAssignment_2_1() throws RecognitionException;
     void rule__StatemachineControlButtonAttribute__EventAssignment_3() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventKeyboard__KeystrokeAssignment_2() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventIdentity__IdentityAssignment_2() throws RecognitionException;
     void rule__StatemachineControlButtonAttributeEventEvent__EventAssignment_2() throws RecognitionException;
     void rule__StatemachineControlFieldAttribute__NameAssignment_1() throws RecognitionException;
     void rule__StatemachineControlFieldAttribute__AttributeTypeAssignment_3() throws RecognitionException;
     void rule__StatemachineControlFieldLayout__NameAssignment_1() throws RecognitionException;
     void rule__StatemachineControlDTOAttribute__NameAssignment_1() throws RecognitionException;
     void rule__StatemachineControlDTOAttribute__AttributeTypeAssignment_3() throws RecognitionException;
     void rule__StatemachineControlDTOAttribute__HasEventAssignment_4_0() throws RecognitionException;
     void rule__StatemachineControlDTOAttribute__EventAssignment_4_1() throws RecognitionException;
     void rule__StatemachineControlSchedulerAttribute__NameAssignment_1() throws RecognitionException;
     void rule__StatemachineControlSchedulerAttribute__DelayAssignment_3() throws RecognitionException;
     void rule__StatemachineControlSchedulerAttribute__EventAssignment_5() throws RecognitionException;
     void rule__StatemachineDTOType__AttributeTypeAssignment() throws RecognitionException;
     void rule__StatemachineFieldType__AttributeTypeAssignment() throws RecognitionException;
     void rule__StatemachineImport__ImportedNamespaceAssignment_1() 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 synpred64_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred65_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred66_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred91_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred92_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred105_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred113_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred114_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred127_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred131_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred132_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred138_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred264_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred276_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred278_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred279_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred280_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred281_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred282_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred283_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred284_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred285_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred286_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred287_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred289_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred290_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred298_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred305_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred308_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred321_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred322_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred326_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred327_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred328_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred333_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred334_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred335_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred337_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred341_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred343_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred344_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred351_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred352_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred353_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred354_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred355_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred356_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred357_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred358_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred359_InternalStatemachineDSL_fragment() throws RecognitionException;   
     void synpred360_InternalStatemachineDSL_fragment() throws RecognitionException;   
}

@SuppressWarnings("all")
abstract class InternalStatemachineDSLParser1 extends AbstractInternalContentAssistParser implements InternalStatemachineDSLParserSignatures {

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

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

    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'='", "'||'", "'&&'", "'+='", "'-='", "'*='", "'/='", "'%='", "'=='", "'!='", "'==='", "'!=='", "'>='", "'>'", "'<'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'*'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'.'", "'val'", "'extends'", "'static'", "'import'", "'extension'", "'super'", "'false'", "'Boolean'", "'Integer'", "'Long'", "'Double'", "'String'", "'Date'", "'SuggestText'", "'keyboard'", "'trigger'", "'identity'", "'getIPAddress'", "'getNow'", "'getUserAgentInfo'", "'isTouchDevice'", "'isHttps'", "'getBrowserLocale'", "'getUserName'", "'getUserPassword'", "'getUserEmail'", "'getUserPosition'", "'getUserPrintService'", "'getSceenWidth'", "'getScreenHeight'", "'getTrigger'", "'humanized'", "'warning'", "'error'", "'tray'", "'assistive'", "'none'", "'fixed'", "'block'", "'halfblock'", "'underline'", "'reverse'", "'other'", "'blink'", "'up'", "'down'", "'left'", "'right'", "'init'", "'walk'", "'place'", "'normal'", "'blinkreverse'", "'upca'", "'upcb'", "'jan8'", "'ean8'", "'jan13'", "'ean13'", "'tf'", "'itf'", "'codeabar'", "'code39'", "'code93'", "'code128'", "'upca_s'", "'upce_s'", "'upcd1'", "'upcd2'", "'upcd3'", "'upcd4'", "'upcd5'", "'ean8_s'", "'ean13_s'", "'ean128'", "'orca'", "'ocrb'", "'code128_parsed'", "'gs1databar'", "'gs1databar_e'", "'gs1databar_s'", "'gs1databar_e_s'", "'pdf417'", "'maxicode'", "'datamatrix'", "'qrcode'", "'uqrcode'", "'aztec'", "'updf417'", "'package'", "'{'", "'}'", "'statemachine'", "'initialState'", "'initialEvent'", "'functiongroup'", "'events'", "'controls'", "'states'", "'event'", "'state'", "'triggers'", "'keystroke'", "'@'", "'actions'", "'guards'", "'blinkRate'", "'clearDevice'", "'createWindow'", "'row'", "'column'", "'height'", "'width'", "'windowHeight'", "'windowWidth'", "'cursorType'", "'destroyWindow'", "'deviceBrightness'", "'displayBitmap'", "'id'", "'displayText'", "'text'", "'displayTextAt'", "'interCharacterWait'", "'marqueeFormat'", "'marqueeRepeatWait'", "'marqueeType'", "'marqueeUnitWait'", "'scroll'", "'openDrawer'", "'printBarcode'", "'data'", "'barcodeType'", "'printBitmap'", "'printCut'", "'printNormal'", "'registerBitmap'", "'name'", "'paymentOpen'", "'host'", "'port'", "'paymentClose'", "'paymentAcknowledge'", "'paymentReversal'", "'withPassword'", "'ofReceipt'", "'paymentRegistration'", "'configuration'", "'paymentAuthorization'", "'ofAmount'", "'paymentResponse'", "'from'", "'printReport'", "'operation'", "'('", "')'", "'guard'", "'caption'", "'description'", "'type'", "'function'", "'store'", "'with'", "'retrieve'", "'transition'", "'translate'", "'dto'", "'get'", "','", "'set'", "'clear'", "'remove'", "'visible'", "'invisible'", "'image'", "'search'", "'in'", "'schedule'", "'keypad'", "'fields'", "'dataProvider'", "'scheduler'", "'lineDisplay'", "'posPrinter'", "'cashDrawer'", "'payment'", "'peripheral'", "'button'", "'key'", "'field'", "'layout'", "'delay'", "'send'", "']'", "'#'", "'['", "'instanceof'", "'as'", "';'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'described by'", "'and'", "'onFail'", "'::'", "'?.'", "'|'", "'var'", "'true'"
    };
    public static final int T__144=144;
    public static final int T__265=265;
    public static final int T__143=143;
    public static final int T__264=264;
    public static final int T__146=146;
    public static final int T__267=267;
    public static final int T__50=50;
    public static final int T__145=145;
    public static final int T__266=266;
    public static final int T__140=140;
    public static final int T__261=261;
    public static final int T__260=260;
    public static final int T__142=142;
    public static final int T__263=263;
    public static final int T__141=141;
    public static final int T__262=262;
    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__258=258;
    public static final int T__52=52;
    public static final int T__136=136;
    public static final int T__257=257;
    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__259=259;
    public static final int T__133=133;
    public static final int T__254=254;
    public static final int T__132=132;
    public static final int T__253=253;
    public static final int T__60=60;
    public static final int T__135=135;
    public static final int T__256=256;
    public static final int T__61=61;
    public static final int T__134=134;
    public static final int T__255=255;
    public static final int T__250=250;
    public static final int RULE_ID=4;
    public static final int T__131=131;
    public static final int T__252=252;
    public static final int T__130=130;
    public static final int T__251=251;
    public static final int RULE_INT=7;
    public static final int T__66=66;
    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__247=247;
    public static final int T__63=63;
    public static final int T__125=125;
    public static final int T__246=246;
    public static final int T__64=64;
    public static final int T__128=128;
    public static final int T__249=249;
    public static final int T__65=65;
    public static final int T__127=127;
    public static final int T__248=248;
    public static final int T__166=166;
    public static final int T__165=165;
    public static final int T__168=168;
    public static final int T__167=167;
    public static final int T__162=162;
    public static final int T__161=161;
    public static final int T__164=164;
    public static final int T__163=163;
    public static final int T__160=160;
    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__159=159;
    public static final int T__30=30;
    public static final int T__158=158;
    public static final int T__31=31;
    public static final int T__32=32;
    public static final int T__155=155;
    public static final int T__154=154;
    public static final int T__157=157;
    public static final int T__156=156;
    public static final int T__151=151;
    public static final int T__150=150;
    public static final int T__153=153;
    public static final int T__152=152;
    public static final int T__270=270;
    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__148=148;
    public static final int T__269=269;
    public static final int T__41=41;
    public static final int T__147=147;
    public static final int T__268=268;
    public static final int T__42=42;
    public static final int T__43=43;
    public static final int T__149=149;
    public static final int T__100=100;
    public static final int T__221=221;
    public static final int T__220=220;
    public static final int T__102=102;
    public static final int T__223=223;
    public static final int T__101=101;
    public static final int T__222=222;
    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__218=218;
    public static final int T__217=217;
    public static final int T__13=13;
    public static final int T__14=14;
    public static final int T__219=219;
    public static final int T__214=214;
    public static final int T__213=213;
    public static final int T__216=216;
    public static final int T__215=215;
    public static final int T__210=210;
    public static final int T__212=212;
    public static final int T__211=211;
    public static final int RULE_DECIMAL=8;
    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__207=207;
    public static final int T__23=23;
    public static final int T__206=206;
    public static final int T__24=24;
    public static final int T__209=209;
    public static final int T__25=25;
    public static final int T__208=208;
    public static final int T__203=203;
    public static final int T__202=202;
    public static final int T__20=20;
    public static final int T__205=205;
    public static final int T__21=21;
    public static final int T__204=204;
    public static final int T__122=122;
    public static final int T__243=243;
    public static final int T__121=121;
    public static final int T__242=242;
    public static final int T__124=124;
    public static final int T__245=245;
    public static final int T__123=123;
    public static final int T__244=244;
    public static final int T__120=120;
    public static final int T__241=241;
    public static final int T__240=240;
    public static final int RULE_SL_COMMENT=10;
    public static final int T__119=119;
    public static final int T__118=118;
    public static final int T__239=239;
    public static final int T__115=115;
    public static final int T__236=236;
    public static final int EOF=-1;
    public static final int T__114=114;
    public static final int T__235=235;
    public static final int T__117=117;
    public static final int T__238=238;
    public static final int T__116=116;
    public static final int T__237=237;
    public static final int T__111=111;
    public static final int T__232=232;
    public static final int T__110=110;
    public static final int T__231=231;
    public static final int T__113=113;
    public static final int T__234=234;
    public static final int T__112=112;
    public static final int T__233=233;
    public static final int T__230=230;
    public static final int T__108=108;
    public static final int T__229=229;
    public static final int T__107=107;
    public static final int T__228=228;
    public static final int T__109=109;
    public static final int T__104=104;
    public static final int T__225=225;
    public static final int T__103=103;
    public static final int T__224=224;
    public static final int T__106=106;
    public static final int T__227=227;
    public static final int T__105=105;
    public static final int T__226=226;
    public static final int RULE_HEX=6;
    public static final int RULE_ML_COMMENT=9;
    public static final int T__201=201;
    public static final int T__200=200;
    public static final int T__91=91;
    public static final int T__188=188;
    public static final int T__92=92;
    public static final int T__187=187;
    public static final int T__93=93;
    public static final int T__94=94;
    public static final int T__189=189;
    public static final int T__184=184;
    public static final int T__183=183;
    public static final int T__186=186;
    public static final int T__90=90;
    public static final int T__185=185;
    public static final int T__180=180;
    public static final int T__182=182;
    public static final int T__181=181;
    public static final int T__99=99;
    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 T__177=177;
    public static final int T__176=176;
    public static final int T__179=179;
    public static final int T__178=178;
    public static final int T__173=173;
    public static final int T__172=172;
    public static final int T__175=175;
    public static final int T__174=174;
    public static final int T__171=171;
    public static final int T__170=170;
    public static final int T__169=169;
    public static final int T__70=70;
    public static final int T__71=71;
    public static final int T__72=72;
    public static final int RULE_STRING=5;
    public static final int T__77=77;
    public static final int T__78=78;
    public static final int T__79=79;
    public static final int T__73=73;
    public static final int T__74=74;
    public static final int T__75=75;
    public static final int T__76=76;
    public static final int T__80=80;
    public static final int T__199=199;
    public static final int T__81=81;
    public static final int T__198=198;
    public static final int T__82=82;
    public static final int T__83=83;
    public static final int T__195=195;
    public static final int T__194=194;
    public static final int RULE_WS=11;
    public static final int T__197=197;
    public static final int T__196=196;
    public static final int T__191=191;
    public static final int T__190=190;
    public static final int T__193=193;
    public static final int T__192=192;
    public static final int RULE_ANY_OTHER=12;
    public static final int T__88=88;
    public static final int T__89=89;
    public static final int T__84=84;
    public static final int T__85=85;
    public static final int T__86=86;
    public static final int T__87=87;


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


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





    // Delegated rules

    public final boolean synpred298_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred298_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred308_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred337_InternalStatemachineDSL_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 synpred91_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred91_InternalStatemachineDSL_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 synpred284_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred284_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred343_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred328_InternalStatemachineDSL_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 synpred278_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred278_InternalStatemachineDSL_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 synpred281_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred281_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred65_InternalStatemachineDSL_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 synpred352_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred352_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred305_InternalStatemachineDSL_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 synpred132_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred132_InternalStatemachineDSL_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 synpred357_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred357_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred290_InternalStatemachineDSL_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 synpred289_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred289_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred334_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred341_InternalStatemachineDSL_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 synpred114_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred114_InternalStatemachineDSL_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 synpred127_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred127_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred326_InternalStatemachineDSL_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 synpred354_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred354_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred264_InternalStatemachineDSL_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 synpred359_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred359_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred282_InternalStatemachineDSL_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 synpred287_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred287_InternalStatemachineDSL_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 synpred351_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred351_InternalStatemachineDSL_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 synpred131_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred131_InternalStatemachineDSL_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 synpred279_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred279_InternalStatemachineDSL_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 synpred356_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred356_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred333_InternalStatemachineDSL_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 synpred113_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred113_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred321_InternalStatemachineDSL_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 synpred344_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred344_InternalStatemachineDSL_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 synpred285_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred285_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred280_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred66_InternalStatemachineDSL_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 synpred353_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred353_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred322_InternalStatemachineDSL_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 synpred358_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred358_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred283_InternalStatemachineDSL_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 synpred286_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred286_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred276_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred335_InternalStatemachineDSL_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 synpred138_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred138_InternalStatemachineDSL_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 synpred92_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred92_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred105_InternalStatemachineDSL_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_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred327_InternalStatemachineDSL_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 synpred355_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred355_InternalStatemachineDSL_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 synpred360_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred360_InternalStatemachineDSL_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 synpred64_InternalStatemachineDSL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred64_InternalStatemachineDSL_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 DFA5 dfa5 = new DFA5(this);
    protected DFA8 dfa8 = new DFA8(this);
    protected DFA9 dfa9 = new DFA9(this);
    protected DFA10 dfa10 = new DFA10(this);
    protected DFA17 dfa17 = new DFA17(this);
    protected DFA25 dfa25 = new DFA25(this);
    protected DFA28 dfa28 = new DFA28(this);
    protected DFA29 dfa29 = new DFA29(this);
    protected DFA32 dfa32 = new DFA32(this);
    protected DFA37 dfa37 = new DFA37(this);
    protected DFA40 dfa40 = new DFA40(this);
    protected DFA49 dfa49 = new DFA49(this);
    protected DFA108 dfa108 = new DFA108(this);
    protected DFA114 dfa114 = new DFA114(this);
    protected DFA121 dfa121 = new DFA121(this);
    protected DFA122 dfa122 = new DFA122(this);
    protected DFA130 dfa130 = new DFA130(this);
    protected DFA140 dfa140 = new DFA140(this);
    protected DFA153 dfa153 = new DFA153(this);
    protected DFA154 dfa154 = new DFA154(this);
    protected DFA158 dfa158 = new DFA158(this);
    protected DFA159 dfa159 = new DFA159(this);
    protected DFA160 dfa160 = new DFA160(this);
    protected DFA165 dfa165 = new DFA165(this);
    protected DFA173 dfa173 = new DFA173(this);
    protected DFA176 dfa176 = new DFA176(this);
    protected DFA188 dfa188 = new DFA188(this);
    static final String DFA5_eotS =
        "\12\uffff";
    static final String DFA5_eofS =
        "\12\uffff";
    static final String DFA5_minS =
        "\1\42\1\5\10\uffff";
    static final String DFA5_maxS =
        "\1\42\1\u00d3\10\uffff";
    static final String DFA5_acceptS =
        "\2\uffff\1\5\1\1\1\10\1\7\1\2\1\3\1\4\1\6";
    static final String DFA5_specialS =
        "\12\uffff}>";
    static final String[] DFA5_transitionS = {
            "\1\1",
            "\1\3\1\uffff\1\6\33\uffff\1\6\31\uffff\16\7\172\uffff\1\11"+
            "\11\uffff\1\5\1\uffff\1\10\1\4\1\2",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA5_eot = DFA.unpackEncodedString(DFA5_eotS);
    static final short[] DFA5_eof = DFA.unpackEncodedString(DFA5_eofS);
    static final char[] DFA5_min = DFA.unpackEncodedStringToUnsignedChars(DFA5_minS);
    static final char[] DFA5_max = DFA.unpackEncodedStringToUnsignedChars(DFA5_maxS);
    static final short[] DFA5_accept = DFA.unpackEncodedString(DFA5_acceptS);
    static final short[] DFA5_special = DFA.unpackEncodedString(DFA5_specialS);
    static final short[][] DFA5_transition;

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

    class DFA5 extends DFA {

        public DFA5(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 5;
            this.eot = DFA5_eot;
            this.eof = DFA5_eof;
            this.min = DFA5_min;
            this.max = DFA5_max;
            this.accept = DFA5_accept;
            this.special = DFA5_special;
            this.transition = DFA5_transition;
        }
        public String getDescription() {
            return "5584:1: rule__StatemachineActionFieldSourceMore__Alternatives : ( ( ruleStatemachineActionFieldSourceStringMore ) | ( ruleStatemachineActionFieldSourceNumberMore ) | ( ruleStatemachineActionFieldSourceEvaluateMore ) | ( ruleStatemachineActionFieldSourceTranslateMore ) | ( ruleStatemachineActionFieldGetMore ) | ( ruleStatemachineOperationMore ) | ( ruleStatemachineStorageRetrieveMore ) | ( ruleStatemachineActionFieldSourceDtoAttributeMore ) );";
        }
    }
    static final String DFA8_eotS =
        "\43\uffff";
    static final String DFA8_eofS =
        "\43\uffff";
    static final String DFA8_minS =
        "\1\4\1\0\41\uffff";
    static final String DFA8_maxS =
        "\1\u010e\1\0\41\uffff";
    static final String DFA8_acceptS =
        "\2\uffff\1\2\37\uffff\1\1";
    static final String DFA8_specialS =
        "\1\uffff\1\0\41\uffff}>";
    static final String[] DFA8_transitionS = {
            "\1\1\4\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\123"+
            "\uffff\1\2\14\uffff\1\2\62\uffff\1\2\47\uffff\2\2\3\uffff\1"+
            "\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\12\uffff\1\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA8_eot = DFA.unpackEncodedString(DFA8_eotS);
    static final short[] DFA8_eof = DFA.unpackEncodedString(DFA8_eofS);
    static final char[] DFA8_min = DFA.unpackEncodedStringToUnsignedChars(DFA8_minS);
    static final char[] DFA8_max = DFA.unpackEncodedStringToUnsignedChars(DFA8_maxS);
    static final short[] DFA8_accept = DFA.unpackEncodedString(DFA8_acceptS);
    static final short[] DFA8_special = DFA.unpackEncodedString(DFA8_specialS);
    static final short[][] DFA8_transition;

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

    class DFA8 extends DFA {

        public DFA8(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 8;
            this.eot = DFA8_eot;
            this.eof = DFA8_eof;
            this.min = DFA8_min;
            this.max = DFA8_max;
            this.accept = DFA8_accept;
            this.special = DFA8_special;
            this.transition = DFA8_transition;
        }
        public String getDescription() {
            return "5711: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 LA8_1 = input.LA(1);

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

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

                         
                        input.seek(index8_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 8, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA9_eotS =
        "\43\uffff";
    static final String DFA9_eofS =
        "\43\uffff";
    static final String DFA9_minS =
        "\1\4\1\0\41\uffff";
    static final String DFA9_maxS =
        "\1\u010e\1\0\41\uffff";
    static final String DFA9_acceptS =
        "\2\uffff\1\2\37\uffff\1\1";
    static final String DFA9_specialS =
        "\1\uffff\1\0\41\uffff}>";
    static final String[] DFA9_transitionS = {
            "\5\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\123\uffff"+
            "\1\2\14\uffff\1\2\62\uffff\1\2\47\uffff\1\1\1\2\3\uffff\1\2"+
            "\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\12\uffff\1\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA9_eot = DFA.unpackEncodedString(DFA9_eotS);
    static final short[] DFA9_eof = DFA.unpackEncodedString(DFA9_eofS);
    static final char[] DFA9_min = DFA.unpackEncodedStringToUnsignedChars(DFA9_minS);
    static final char[] DFA9_max = DFA.unpackEncodedStringToUnsignedChars(DFA9_maxS);
    static final short[] DFA9_accept = DFA.unpackEncodedString(DFA9_acceptS);
    static final short[] DFA9_special = DFA.unpackEncodedString(DFA9_specialS);
    static final short[][] DFA9_transition;

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

    class DFA9 extends DFA {

        public DFA9(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 9;
            this.eot = DFA9_eot;
            this.eof = DFA9_eof;
            this.min = DFA9_min;
            this.max = DFA9_max;
            this.accept = DFA9_accept;
            this.special = DFA9_special;
            this.transition = DFA9_transition;
        }
        public String getDescription() {
            return "5733: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 LA9_1 = input.LA(1);

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

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

                         
                        input.seek(index9_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 9, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA10_eotS =
        "\43\uffff";
    static final String DFA10_eofS =
        "\43\uffff";
    static final String DFA10_minS =
        "\1\4\1\0\41\uffff";
    static final String DFA10_maxS =
        "\1\u010e\1\0\41\uffff";
    static final String DFA10_acceptS =
        "\2\uffff\1\2\37\uffff\1\1";
    static final String DFA10_specialS =
        "\1\uffff\1\0\41\uffff}>";
    static final String[] DFA10_transitionS = {
            "\5\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\123\uffff"+
            "\1\2\14\uffff\1\2\62\uffff\1\2\47\uffff\1\1\1\2\3\uffff\1\2"+
            "\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\12\uffff\1\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA10_eot = DFA.unpackEncodedString(DFA10_eotS);
    static final short[] DFA10_eof = DFA.unpackEncodedString(DFA10_eofS);
    static final char[] DFA10_min = DFA.unpackEncodedStringToUnsignedChars(DFA10_minS);
    static final char[] DFA10_max = DFA.unpackEncodedStringToUnsignedChars(DFA10_maxS);
    static final short[] DFA10_accept = DFA.unpackEncodedString(DFA10_acceptS);
    static final short[] DFA10_special = DFA.unpackEncodedString(DFA10_specialS);
    static final short[][] DFA10_transition;

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

    class DFA10 extends DFA {

        public DFA10(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 10;
            this.eot = DFA10_eot;
            this.eof = DFA10_eof;
            this.min = DFA10_min;
            this.max = DFA10_max;
            this.accept = DFA10_accept;
            this.special = DFA10_special;
            this.transition = DFA10_transition;
        }
        public String getDescription() {
            return "5755: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 LA10_1 = input.LA(1);

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

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

                         
                        input.seek(index10_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 10, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA17_eotS =
        "\13\uffff";
    static final String DFA17_eofS =
        "\13\uffff";
    static final String DFA17_minS =
        "\1\32\2\uffff\1\32\7\uffff";
    static final String DFA17_maxS =
        "\1\41\2\uffff\1\36\7\uffff";
    static final String DFA17_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 DFA17_specialS =
        "\13\uffff}>";
    static final String[] DFA17_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[] DFA17_eot = DFA.unpackEncodedString(DFA17_eotS);
    static final short[] DFA17_eof = DFA.unpackEncodedString(DFA17_eofS);
    static final char[] DFA17_min = DFA.unpackEncodedStringToUnsignedChars(DFA17_minS);
    static final char[] DFA17_max = DFA.unpackEncodedStringToUnsignedChars(DFA17_maxS);
    static final short[] DFA17_accept = DFA.unpackEncodedString(DFA17_acceptS);
    static final short[] DFA17_special = DFA.unpackEncodedString(DFA17_specialS);
    static final short[][] DFA17_transition;

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

    class DFA17 extends DFA {

        public DFA17(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 17;
            this.eot = DFA17_eot;
            this.eof = DFA17_eof;
            this.min = DFA17_min;
            this.max = DFA17_max;
            this.accept = DFA17_accept;
            this.special = DFA17_special;
            this.transition = DFA17_transition;
        }
        public String getDescription() {
            return "5987:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );";
        }
    }
    static final String DFA25_eotS =
        "\12\uffff";
    static final String DFA25_eofS =
        "\4\uffff\5\3\1\uffff";
    static final String DFA25_minS =
        "\1\53\2\4\1\uffff\5\4\1\uffff";
    static final String DFA25_maxS =
        "\1\u010b\2\61\1\uffff\5\u010e\1\uffff";
    static final String DFA25_acceptS =
        "\3\uffff\1\2\5\uffff\1\1";
    static final String DFA25_specialS =
        "\12\uffff}>";
    static final String[] DFA25_transitionS = {
            "\1\1\u00de\uffff\1\2\1\3",
            "\1\4\26\uffff\1\3\21\uffff\1\5\1\6\1\7\1\10\1\3",
            "\1\4\26\uffff\1\3\21\uffff\1\5\1\6\1\7\1\10\1\3",
            "",
            "\5\3\4\uffff\1\11\45\3\123\uffff\2\3\76\uffff\2\3\14\uffff"+
            "\1\3\30\uffff\30\3\5\uffff\2\3\1\uffff\2\3",
            "\5\3\4\uffff\1\11\45\3\123\uffff\2\3\76\uffff\2\3\14\uffff"+
            "\1\3\30\uffff\30\3\5\uffff\2\3\1\uffff\2\3",
            "\5\3\4\uffff\1\11\45\3\123\uffff\2\3\76\uffff\2\3\14\uffff"+
            "\1\3\30\uffff\30\3\5\uffff\2\3\1\uffff\2\3",
            "\5\3\4\uffff\1\11\45\3\123\uffff\2\3\76\uffff\2\3\14\uffff"+
            "\1\3\30\uffff\30\3\5\uffff\2\3\1\uffff\2\3",
            "\5\3\4\uffff\1\11\45\3\123\uffff\2\3\76\uffff\2\3\14\uffff"+
            "\1\3\30\uffff\30\3\5\uffff\2\3\1\uffff\2\3",
            ""
    };

    static final short[] DFA25_eot = DFA.unpackEncodedString(DFA25_eotS);
    static final short[] DFA25_eof = DFA.unpackEncodedString(DFA25_eofS);
    static final char[] DFA25_min = DFA.unpackEncodedStringToUnsignedChars(DFA25_minS);
    static final char[] DFA25_max = DFA.unpackEncodedStringToUnsignedChars(DFA25_maxS);
    static final short[] DFA25_accept = DFA.unpackEncodedString(DFA25_acceptS);
    static final short[] DFA25_special = DFA.unpackEncodedString(DFA25_specialS);
    static final short[][] DFA25_transition;

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

    class DFA25 extends DFA {

        public DFA25(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 25;
            this.eot = DFA25_eot;
            this.eof = DFA25_eof;
            this.min = DFA25_min;
            this.max = DFA25_max;
            this.accept = DFA25_accept;
            this.special = DFA25_special;
            this.transition = DFA25_transition;
        }
        public String getDescription() {
            return "6269:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );";
        }
    }
    static final String DFA28_eotS =
        "\43\uffff";
    static final String DFA28_eofS =
        "\43\uffff";
    static final String DFA28_minS =
        "\1\4\2\0\40\uffff";
    static final String DFA28_maxS =
        "\1\u010e\2\0\40\uffff";
    static final String DFA28_acceptS =
        "\3\uffff\1\1\1\uffff\1\2\35\uffff";
    static final String DFA28_specialS =
        "\1\uffff\1\0\1\1\40\uffff}>";
    static final String[] DFA28_transitionS = {
            "\1\1\4\5\22\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\4"+
            "\uffff\6\5\123\uffff\1\5\77\uffff\1\2\47\uffff\2\5\3\uffff\1"+
            "\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\10\uffff\1\3\1\uffff"+
            "\1\5",
            "\1\uffff",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    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 "6345: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 LA28_1 = input.LA(1);

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

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

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

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

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

                         
                        input.seek(index28_2);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 28, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA29_eotS =
        "\40\uffff";
    static final String DFA29_eofS =
        "\40\uffff";
    static final String DFA29_minS =
        "\1\4\26\uffff\1\0\10\uffff";
    static final String DFA29_maxS =
        "\1\u010e\26\uffff\1\0\10\uffff";
    static final String DFA29_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 DFA29_specialS =
        "\27\uffff\1\0\10\uffff}>";
    static final String[] DFA29_transitionS = {
            "\1\5\4\14\22\uffff\1\5\21\uffff\5\5\1\14\123\uffff\1\2\77\uffff"+
            "\1\35\47\uffff\2\14\3\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[] DFA29_eot = DFA.unpackEncodedString(DFA29_eotS);
    static final short[] DFA29_eof = DFA.unpackEncodedString(DFA29_eofS);
    static final char[] DFA29_min = DFA.unpackEncodedStringToUnsignedChars(DFA29_minS);
    static final char[] DFA29_max = DFA.unpackEncodedStringToUnsignedChars(DFA29_maxS);
    static final short[] DFA29_accept = DFA.unpackEncodedString(DFA29_acceptS);
    static final short[] DFA29_special = DFA.unpackEncodedString(DFA29_specialS);
    static final short[][] DFA29_transition;

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

    class DFA29 extends DFA {

        public DFA29(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 29;
            this.eot = DFA29_eot;
            this.eof = DFA29_eof;
            this.min = DFA29_min;
            this.max = DFA29_max;
            this.accept = DFA29_accept;
            this.special = DFA29_special;
            this.transition = DFA29_transition;
        }
        public String getDescription() {
            return "6367: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 LA29_23 = input.LA(1);

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

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

                         
                        input.seek(index29_23);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 29, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA32_eotS =
        "\43\uffff";
    static final String DFA32_eofS =
        "\43\uffff";
    static final String DFA32_minS =
        "\1\4\1\0\41\uffff";
    static final String DFA32_maxS =
        "\1\u010e\1\0\41\uffff";
    static final String DFA32_acceptS =
        "\2\uffff\1\2\37\uffff\1\1";
    static final String DFA32_specialS =
        "\1\uffff\1\0\41\uffff}>";
    static final String[] DFA32_transitionS = {
            "\5\2\22\uffff\1\2\3\uffff\1\2\2\uffff\2\2\4\uffff\1\2\4\uffff"+
            "\6\2\123\uffff\1\2\77\uffff\1\1\47\uffff\2\2\3\uffff\1\2\1\uffff"+
            "\1\2\3\uffff\11\2\1\uffff\1\2\12\uffff\1\2",
            "\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 "6541: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 LA32_1 = input.LA(1);

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

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

                         
                        input.seek(index32_1);
                        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 DFA37_eotS =
        "\43\uffff";
    static final String DFA37_eofS =
        "\43\uffff";
    static final String DFA37_minS =
        "\1\4\2\0\40\uffff";
    static final String DFA37_maxS =
        "\1\u010e\2\0\40\uffff";
    static final String DFA37_acceptS =
        "\3\uffff\1\1\1\uffff\1\2\35\uffff";
    static final String DFA37_specialS =
        "\1\uffff\1\0\1\1\40\uffff}>";
    static final String[] DFA37_transitionS = {
            "\1\1\4\5\22\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\4"+
            "\uffff\6\5\123\uffff\1\5\77\uffff\1\2\47\uffff\2\5\3\uffff\1"+
            "\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\10\uffff\1\3\1\uffff"+
            "\1\5",
            "\1\uffff",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA37_eot = DFA.unpackEncodedString(DFA37_eotS);
    static final short[] DFA37_eof = DFA.unpackEncodedString(DFA37_eofS);
    static final char[] DFA37_min = DFA.unpackEncodedStringToUnsignedChars(DFA37_minS);
    static final char[] DFA37_max = DFA.unpackEncodedStringToUnsignedChars(DFA37_maxS);
    static final short[] DFA37_accept = DFA.unpackEncodedString(DFA37_acceptS);
    static final short[] DFA37_special = DFA.unpackEncodedString(DFA37_specialS);
    static final short[][] DFA37_transition;

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

    class DFA37 extends DFA {

        public DFA37(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 37;
            this.eot = DFA37_eot;
            this.eof = DFA37_eof;
            this.min = DFA37_min;
            this.max = DFA37_max;
            this.accept = DFA37_accept;
            this.special = DFA37_special;
            this.transition = DFA37_transition;
        }
        public String getDescription() {
            return "6653: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 LA37_1 = input.LA(1);

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

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

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

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

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

                         
                        input.seek(index37_2);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 37, _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\u010e\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\22\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\4"+
            "\uffff\6\5\123\uffff\1\5\77\uffff\1\2\47\uffff\2\5\3\uffff\1"+
            "\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\10\uffff\1\3\1\uffff"+
            "\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 "6747: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 LA40_1 = input.LA(1);

                         
                        int index40_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred138_InternalStatemachineDSL()) ) {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 ( (synpred138_InternalStatemachineDSL()) ) {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 DFA49_eotS =
        "\7\uffff";
    static final String DFA49_eofS =
        "\2\uffff\1\4\3\uffff\1\4";
    static final String DFA49_minS =
        "\1\4\1\uffff\1\53\1\4\2\uffff\1\53";
    static final String DFA49_maxS =
        "\1\56\1\uffff\1\u00f2\1\44\2\uffff\1\u00f2";
    static final String DFA49_acceptS =
        "\1\uffff\1\1\2\uffff\1\2\1\3\1\uffff";
    static final String DFA49_specialS =
        "\7\uffff}>";
    static final String[] DFA49_transitionS = {
            "\1\2\51\uffff\1\1",
            "",
            "\1\3\u00c6\uffff\1\4",
            "\1\6\37\uffff\1\5",
            "",
            "",
            "\1\3\u00c6\uffff\1\4"
    };

    static final short[] DFA49_eot = DFA.unpackEncodedString(DFA49_eotS);
    static final short[] DFA49_eof = DFA.unpackEncodedString(DFA49_eofS);
    static final char[] DFA49_min = DFA.unpackEncodedStringToUnsignedChars(DFA49_minS);
    static final char[] DFA49_max = DFA.unpackEncodedStringToUnsignedChars(DFA49_maxS);
    static final short[] DFA49_accept = DFA.unpackEncodedString(DFA49_acceptS);
    static final short[] DFA49_special = DFA.unpackEncodedString(DFA49_specialS);
    static final short[][] DFA49_transition;

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

    class DFA49 extends DFA {

        public DFA49(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 49;
            this.eot = DFA49_eot;
            this.eof = DFA49_eof;
            this.min = DFA49_min;
            this.max = DFA49_max;
            this.accept = DFA49_accept;
            this.special = DFA49_special;
            this.transition = DFA49_transition;
        }
        public String getDescription() {
            return "6947:1: rule__XImportDeclaration__Alternatives_1 : ( ( ( rule__XImportDeclaration__Group_1_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 ) ) );";
        }
    }
    static final String DFA108_eotS =
        "\12\uffff";
    static final String DFA108_eofS =
        "\1\10\11\uffff";
    static final String DFA108_minS =
        "\1\4\7\0\2\uffff";
    static final String DFA108_maxS =
        "\1\u010e\7\0\2\uffff";
    static final String DFA108_acceptS =
        "\10\uffff\1\2\1\1";
    static final String DFA108_specialS =
        "\1\uffff\1\2\1\0\1\5\1\4\1\3\1\6\1\1\2\uffff}>";
    static final String[] DFA108_transitionS = {
            "\5\10\5\uffff\2\10\1\1\1\2\1\3\1\4\1\5\5\10\1\7\1\6\27\10\123"+
            "\uffff\2\10\76\uffff\2\10\14\uffff\1\10\30\uffff\30\10\5\uffff"+
            "\2\10\1\uffff\2\10",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "",
            ""
    };

    static final short[] DFA108_eot = DFA.unpackEncodedString(DFA108_eotS);
    static final short[] DFA108_eof = DFA.unpackEncodedString(DFA108_eofS);
    static final char[] DFA108_min = DFA.unpackEncodedStringToUnsignedChars(DFA108_minS);
    static final char[] DFA108_max = DFA.unpackEncodedStringToUnsignedChars(DFA108_maxS);
    static final short[] DFA108_accept = DFA.unpackEncodedString(DFA108_acceptS);
    static final short[] DFA108_special = DFA.unpackEncodedString(DFA108_specialS);
    static final short[][] DFA108_transition;

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

    class DFA108 extends DFA {

        public DFA108(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 108;
            this.eot = DFA108_eot;
            this.eof = DFA108_eof;
            this.min = DFA108_min;
            this.max = DFA108_max;
            this.accept = DFA108_accept;
            this.special = DFA108_special;
            this.transition = DFA108_transition;
        }
        public String getDescription() {
            return "22820: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 LA108_2 = input.LA(1);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                         
                        input.seek(index108_6);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 108, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA114_eotS =
        "\13\uffff";
    static final String DFA114_eofS =
        "\1\1\12\uffff";
    static final String DFA114_minS =
        "\1\4\1\uffff\10\0\1\uffff";
    static final String DFA114_maxS =
        "\1\u010e\1\uffff\10\0\1\uffff";
    static final String DFA114_acceptS =
        "\1\uffff\1\2\10\uffff\1\1";
    static final String DFA114_specialS =
        "\2\uffff\1\6\1\5\1\0\1\3\1\2\1\7\1\1\1\4\1\uffff}>";
    static final String[] DFA114_transitionS = {
            "\5\1\5\uffff\14\1\1\3\1\2\1\4\1\5\1\6\1\7\1\10\1\11\21\1\123"+
            "\uffff\2\1\76\uffff\2\1\14\uffff\1\1\30\uffff\30\1\5\uffff\2"+
            "\1\1\uffff\2\1",
            "",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            ""
    };

    static final short[] DFA114_eot = DFA.unpackEncodedString(DFA114_eotS);
    static final short[] DFA114_eof = DFA.unpackEncodedString(DFA114_eofS);
    static final char[] DFA114_min = DFA.unpackEncodedStringToUnsignedChars(DFA114_minS);
    static final char[] DFA114_max = DFA.unpackEncodedStringToUnsignedChars(DFA114_maxS);
    static final short[] DFA114_accept = DFA.unpackEncodedString(DFA114_acceptS);
    static final short[] DFA114_special = DFA.unpackEncodedString(DFA114_specialS);
    static final short[][] DFA114_transition;

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

    class DFA114 extends DFA {

        public DFA114(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 114;
            this.eot = DFA114_eot;
            this.eof = DFA114_eof;
            this.min = DFA114_min;
            this.max = DFA114_max;
            this.accept = DFA114_accept;
            this.special = DFA114_special;
            this.transition = DFA114_transition;
        }
        public String getDescription() {
            return "()* loopback of 24312: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 LA114_4 = input.LA(1);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                         
                        input.seek(index114_7);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 114, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA121_eotS =
        "\116\uffff";
    static final String DFA121_eofS =
        "\1\2\115\uffff";
    static final String DFA121_minS =
        "\1\4\1\0\114\uffff";
    static final String DFA121_maxS =
        "\1\u010e\1\0\114\uffff";
    static final String DFA121_acceptS =
        "\2\uffff\1\2\112\uffff\1\1";
    static final String DFA121_specialS =
        "\1\uffff\1\0\114\uffff}>";
    static final String[] DFA121_transitionS = {
            "\5\2\5\uffff\45\2\123\uffff\2\2\76\uffff\1\1\1\2\14\uffff\1"+
            "\2\30\uffff\30\2\5\uffff\2\2\1\uffff\2\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA121_eot = DFA.unpackEncodedString(DFA121_eotS);
    static final short[] DFA121_eof = DFA.unpackEncodedString(DFA121_eofS);
    static final char[] DFA121_min = DFA.unpackEncodedStringToUnsignedChars(DFA121_minS);
    static final char[] DFA121_max = DFA.unpackEncodedStringToUnsignedChars(DFA121_maxS);
    static final short[] DFA121_accept = DFA.unpackEncodedString(DFA121_acceptS);
    static final short[] DFA121_special = DFA.unpackEncodedString(DFA121_specialS);
    static final short[][] DFA121_transition;

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

    class DFA121 extends DFA {

        public DFA121(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 121;
            this.eot = DFA121_eot;
            this.eof = DFA121_eof;
            this.min = DFA121_min;
            this.max = DFA121_max;
            this.accept = DFA121_accept;
            this.special = DFA121_special;
            this.transition = DFA121_transition;
        }
        public String getDescription() {
            return "26139: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 LA121_1 = input.LA(1);

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

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

                         
                        input.seek(index121_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 121, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA122_eotS =
        "\116\uffff";
    static final String DFA122_eofS =
        "\1\2\115\uffff";
    static final String DFA122_minS =
        "\1\4\1\0\114\uffff";
    static final String DFA122_maxS =
        "\1\u010e\1\0\114\uffff";
    static final String DFA122_acceptS =
        "\2\uffff\1\2\112\uffff\1\1";
    static final String DFA122_specialS =
        "\1\uffff\1\0\114\uffff}>";
    static final String[] DFA122_transitionS = {
            "\5\2\5\uffff\45\2\123\uffff\2\2\76\uffff\2\2\14\uffff\1\2\30"+
            "\uffff\2\2\1\1\25\2\5\uffff\2\2\1\uffff\2\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA122_eot = DFA.unpackEncodedString(DFA122_eotS);
    static final short[] DFA122_eof = DFA.unpackEncodedString(DFA122_eofS);
    static final char[] DFA122_min = DFA.unpackEncodedStringToUnsignedChars(DFA122_minS);
    static final char[] DFA122_max = DFA.unpackEncodedStringToUnsignedChars(DFA122_maxS);
    static final short[] DFA122_accept = DFA.unpackEncodedString(DFA122_acceptS);
    static final short[] DFA122_special = DFA.unpackEncodedString(DFA122_specialS);
    static final short[][] DFA122_transition;

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

    class DFA122 extends DFA {

        public DFA122(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 122;
            this.eot = DFA122_eot;
            this.eof = DFA122_eof;
            this.min = DFA122_min;
            this.max = DFA122_max;
            this.accept = DFA122_accept;
            this.special = DFA122_special;
            this.transition = DFA122_transition;
        }
        public String getDescription() {
            return "26167: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 LA122_1 = input.LA(1);

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

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

                         
                        input.seek(index122_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 122, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA130_eotS =
        "\46\uffff";
    static final String DFA130_eofS =
        "\46\uffff";
    static final String DFA130_minS =
        "\1\4\2\0\43\uffff";
    static final String DFA130_maxS =
        "\1\u010e\2\0\43\uffff";
    static final String DFA130_acceptS =
        "\3\uffff\1\1\1\uffff\1\2\40\uffff";
    static final String DFA130_specialS =
        "\1\uffff\1\0\1\1\43\uffff}>";
    static final String[] DFA130_transitionS = {
            "\1\1\4\5\22\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\3"+
            "\uffff\7\5\123\uffff\1\5\77\uffff\1\2\46\uffff\3\5\3\uffff\1"+
            "\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\10\uffff\1\3\2\5",
            "\1\uffff",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA130_eot = DFA.unpackEncodedString(DFA130_eotS);
    static final short[] DFA130_eof = DFA.unpackEncodedString(DFA130_eofS);
    static final char[] DFA130_min = DFA.unpackEncodedStringToUnsignedChars(DFA130_minS);
    static final char[] DFA130_max = DFA.unpackEncodedStringToUnsignedChars(DFA130_maxS);
    static final short[] DFA130_accept = DFA.unpackEncodedString(DFA130_acceptS);
    static final short[] DFA130_special = DFA.unpackEncodedString(DFA130_specialS);
    static final short[][] DFA130_transition;

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

    class DFA130 extends DFA {

        public DFA130(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 130;
            this.eot = DFA130_eot;
            this.eof = DFA130_eof;
            this.min = DFA130_min;
            this.max = DFA130_max;
            this.accept = DFA130_accept;
            this.special = DFA130_special;
            this.transition = DFA130_transition;
        }
        public String getDescription() {
            return "27308: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 LA130_1 = input.LA(1);

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

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

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

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

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

                         
                        input.seek(index130_2);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 130, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA140_eotS =
        "\42\uffff";
    static final String DFA140_eofS =
        "\42\uffff";
    static final String DFA140_minS =
        "\1\4\2\0\37\uffff";
    static final String DFA140_maxS =
        "\1\u010e\2\0\37\uffff";
    static final String DFA140_acceptS =
        "\3\uffff\1\1\1\2\35\uffff";
    static final String DFA140_specialS =
        "\1\uffff\1\0\1\1\37\uffff}>";
    static final String[] DFA140_transitionS = {
            "\1\1\4\4\22\uffff\1\4\3\uffff\1\3\2\uffff\2\4\4\uffff\1\4\4"+
            "\uffff\6\4\123\uffff\1\4\77\uffff\1\2\47\uffff\2\4\3\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[] DFA140_eot = DFA.unpackEncodedString(DFA140_eotS);
    static final short[] DFA140_eof = DFA.unpackEncodedString(DFA140_eofS);
    static final char[] DFA140_min = DFA.unpackEncodedStringToUnsignedChars(DFA140_minS);
    static final char[] DFA140_max = DFA.unpackEncodedStringToUnsignedChars(DFA140_maxS);
    static final short[] DFA140_accept = DFA.unpackEncodedString(DFA140_acceptS);
    static final short[] DFA140_special = DFA.unpackEncodedString(DFA140_specialS);
    static final short[][] DFA140_transition;

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

    class DFA140 extends DFA {

        public DFA140(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 140;
            this.eot = DFA140_eot;
            this.eof = DFA140_eof;
            this.min = DFA140_min;
            this.max = DFA140_max;
            this.accept = DFA140_accept;
            this.special = DFA140_special;
            this.transition = DFA140_transition;
        }
        public String getDescription() {
            return "28976: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 LA140_1 = input.LA(1);

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

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

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

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

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

                         
                        input.seek(index140_2);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 140, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA153_eotS =
        "\116\uffff";
    static final String DFA153_eofS =
        "\1\2\115\uffff";
    static final String DFA153_minS =
        "\1\4\1\0\114\uffff";
    static final String DFA153_maxS =
        "\1\u010e\1\0\114\uffff";
    static final String DFA153_acceptS =
        "\2\uffff\1\2\112\uffff\1\1";
    static final String DFA153_specialS =
        "\1\uffff\1\0\114\uffff}>";
    static final String[] DFA153_transitionS = {
            "\5\2\5\uffff\45\2\123\uffff\2\2\76\uffff\1\1\1\2\14\uffff\1"+
            "\2\30\uffff\30\2\5\uffff\2\2\1\uffff\2\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA153_eot = DFA.unpackEncodedString(DFA153_eotS);
    static final short[] DFA153_eof = DFA.unpackEncodedString(DFA153_eofS);
    static final char[] DFA153_min = DFA.unpackEncodedStringToUnsignedChars(DFA153_minS);
    static final char[] DFA153_max = DFA.unpackEncodedStringToUnsignedChars(DFA153_maxS);
    static final short[] DFA153_accept = DFA.unpackEncodedString(DFA153_acceptS);
    static final short[] DFA153_special = DFA.unpackEncodedString(DFA153_specialS);
    static final short[][] DFA153_transition;

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

    class DFA153 extends DFA {

        public DFA153(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 153;
            this.eot = DFA153_eot;
            this.eof = DFA153_eof;
            this.min = DFA153_min;
            this.max = DFA153_max;
            this.accept = DFA153_accept;
            this.special = DFA153_special;
            this.transition = DFA153_transition;
        }
        public String getDescription() {
            return "31464: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 LA153_1 = input.LA(1);

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

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

                         
                        input.seek(index153_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 153, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA154_eotS =
        "\116\uffff";
    static final String DFA154_eofS =
        "\1\2\115\uffff";
    static final String DFA154_minS =
        "\1\4\1\0\114\uffff";
    static final String DFA154_maxS =
        "\1\u010e\1\0\114\uffff";
    static final String DFA154_acceptS =
        "\2\uffff\1\2\112\uffff\1\1";
    static final String DFA154_specialS =
        "\1\uffff\1\0\114\uffff}>";
    static final String[] DFA154_transitionS = {
            "\5\2\5\uffff\45\2\123\uffff\2\2\76\uffff\2\2\14\uffff\1\2\30"+
            "\uffff\2\2\1\1\25\2\5\uffff\2\2\1\uffff\2\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA154_eot = DFA.unpackEncodedString(DFA154_eotS);
    static final short[] DFA154_eof = DFA.unpackEncodedString(DFA154_eofS);
    static final char[] DFA154_min = DFA.unpackEncodedStringToUnsignedChars(DFA154_minS);
    static final char[] DFA154_max = DFA.unpackEncodedStringToUnsignedChars(DFA154_maxS);
    static final short[] DFA154_accept = DFA.unpackEncodedString(DFA154_acceptS);
    static final short[] DFA154_special = DFA.unpackEncodedString(DFA154_specialS);
    static final short[][] DFA154_transition;

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

    class DFA154 extends DFA {

        public DFA154(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 154;
            this.eot = DFA154_eot;
            this.eof = DFA154_eof;
            this.min = DFA154_min;
            this.max = DFA154_max;
            this.accept = DFA154_accept;
            this.special = DFA154_special;
            this.transition = DFA154_transition;
        }
        public String getDescription() {
            return "31492: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 LA154_1 = input.LA(1);

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

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

                         
                        input.seek(index154_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 154, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA158_eotS =
        "\116\uffff";
    static final String DFA158_eofS =
        "\1\2\115\uffff";
    static final String DFA158_minS =
        "\1\4\1\0\114\uffff";
    static final String DFA158_maxS =
        "\1\u010e\1\0\114\uffff";
    static final String DFA158_acceptS =
        "\2\uffff\1\2\112\uffff\1\1";
    static final String DFA158_specialS =
        "\1\uffff\1\0\114\uffff}>";
    static final String[] DFA158_transitionS = {
            "\5\2\5\uffff\15\2\1\1\27\2\123\uffff\2\2\76\uffff\2\2\14\uffff"+
            "\1\2\30\uffff\30\2\5\uffff\2\2\1\uffff\2\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA158_eot = DFA.unpackEncodedString(DFA158_eotS);
    static final short[] DFA158_eof = DFA.unpackEncodedString(DFA158_eofS);
    static final char[] DFA158_min = DFA.unpackEncodedStringToUnsignedChars(DFA158_minS);
    static final char[] DFA158_max = DFA.unpackEncodedStringToUnsignedChars(DFA158_maxS);
    static final short[] DFA158_accept = DFA.unpackEncodedString(DFA158_acceptS);
    static final short[] DFA158_special = DFA.unpackEncodedString(DFA158_specialS);
    static final short[][] DFA158_transition;

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

    class DFA158 extends DFA {

        public DFA158(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 158;
            this.eot = DFA158_eot;
            this.eof = DFA158_eof;
            this.min = DFA158_min;
            this.max = DFA158_max;
            this.accept = DFA158_accept;
            this.special = DFA158_special;
            this.transition = DFA158_transition;
        }
        public String getDescription() {
            return "32030: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 LA158_1 = input.LA(1);

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

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

                         
                        input.seek(index158_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 158, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA159_eotS =
        "\116\uffff";
    static final String DFA159_eofS =
        "\1\2\115\uffff";
    static final String DFA159_minS =
        "\1\4\1\0\114\uffff";
    static final String DFA159_maxS =
        "\1\u010e\1\0\114\uffff";
    static final String DFA159_acceptS =
        "\2\uffff\1\2\112\uffff\1\1";
    static final String DFA159_specialS =
        "\1\uffff\1\0\114\uffff}>";
    static final String[] DFA159_transitionS = {
            "\5\2\5\uffff\45\2\123\uffff\2\2\76\uffff\1\1\1\2\14\uffff\1"+
            "\2\30\uffff\30\2\5\uffff\2\2\1\uffff\2\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA159_eot = DFA.unpackEncodedString(DFA159_eotS);
    static final short[] DFA159_eof = DFA.unpackEncodedString(DFA159_eofS);
    static final char[] DFA159_min = DFA.unpackEncodedStringToUnsignedChars(DFA159_minS);
    static final char[] DFA159_max = DFA.unpackEncodedStringToUnsignedChars(DFA159_maxS);
    static final short[] DFA159_accept = DFA.unpackEncodedString(DFA159_acceptS);
    static final short[] DFA159_special = DFA.unpackEncodedString(DFA159_specialS);
    static final short[][] DFA159_transition;

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

    class DFA159 extends DFA {

        public DFA159(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 159;
            this.eot = DFA159_eot;
            this.eof = DFA159_eof;
            this.min = DFA159_min;
            this.max = DFA159_max;
            this.accept = DFA159_accept;
            this.special = DFA159_special;
            this.transition = DFA159_transition;
        }
        public String getDescription() {
            return "32059: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 LA159_1 = input.LA(1);

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

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

                         
                        input.seek(index159_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 159, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA160_eotS =
        "\116\uffff";
    static final String DFA160_eofS =
        "\1\2\115\uffff";
    static final String DFA160_minS =
        "\1\4\1\0\114\uffff";
    static final String DFA160_maxS =
        "\1\u010e\1\0\114\uffff";
    static final String DFA160_acceptS =
        "\2\uffff\1\2\112\uffff\1\1";
    static final String DFA160_specialS =
        "\1\uffff\1\0\114\uffff}>";
    static final String[] DFA160_transitionS = {
            "\5\2\5\uffff\45\2\123\uffff\2\2\76\uffff\2\2\14\uffff\1\2\30"+
            "\uffff\2\2\1\1\25\2\5\uffff\2\2\1\uffff\2\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA160_eot = DFA.unpackEncodedString(DFA160_eotS);
    static final short[] DFA160_eof = DFA.unpackEncodedString(DFA160_eofS);
    static final char[] DFA160_min = DFA.unpackEncodedStringToUnsignedChars(DFA160_minS);
    static final char[] DFA160_max = DFA.unpackEncodedStringToUnsignedChars(DFA160_maxS);
    static final short[] DFA160_accept = DFA.unpackEncodedString(DFA160_acceptS);
    static final short[] DFA160_special = DFA.unpackEncodedString(DFA160_specialS);
    static final short[][] DFA160_transition;

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

    class DFA160 extends DFA {

        public DFA160(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 160;
            this.eot = DFA160_eot;
            this.eof = DFA160_eof;
            this.min = DFA160_min;
            this.max = DFA160_max;
            this.accept = DFA160_accept;
            this.special = DFA160_special;
            this.transition = DFA160_transition;
        }
        public String getDescription() {
            return "32087: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 LA160_1 = input.LA(1);

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

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

                         
                        input.seek(index160_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 160, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA165_eotS =
        "\116\uffff";
    static final String DFA165_eofS =
        "\1\41\115\uffff";
    static final String DFA165_minS =
        "\1\4\40\0\55\uffff";
    static final String DFA165_maxS =
        "\1\u010e\40\0\55\uffff";
    static final String DFA165_acceptS =
        "\41\uffff\1\2\53\uffff\1\1";
    static final String DFA165_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[] DFA165_transitionS = {
            "\1\1\1\27\1\23\1\24\1\25\5\uffff\15\41\1\15\6\41\1\10\1\7\4"+
            "\41\1\6\4\41\1\2\1\3\1\4\1\5\1\16\1\21\123\uffff\1\12\1\41\76"+
            "\uffff\1\40\1\41\14\uffff\1\41\30\uffff\1\41\1\17\1\20\3\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\5\uffff\2\41\1\uffff\1\41\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[] 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 "33140: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 LA165_1 = input.LA(1);

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

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

                         
                        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 ( (synpred333_InternalStatemachineDSL()) ) {s = 77;}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                         
                        input.seek(index165_32);
                        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 DFA173_eotS =
        "\117\uffff";
    static final String DFA173_eofS =
        "\1\2\116\uffff";
    static final String DFA173_minS =
        "\1\4\1\0\115\uffff";
    static final String DFA173_maxS =
        "\1\u010e\1\0\115\uffff";
    static final String DFA173_acceptS =
        "\2\uffff\1\2\113\uffff\1\1";
    static final String DFA173_specialS =
        "\1\uffff\1\0\115\uffff}>";
    static final String[] DFA173_transitionS = {
            "\5\2\5\uffff\15\2\1\1\27\2\123\uffff\2\2\76\uffff\2\2\14\uffff"+
            "\1\2\30\uffff\30\2\1\uffff\1\2\3\uffff\2\2\1\uffff\2\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA173_eot = DFA.unpackEncodedString(DFA173_eotS);
    static final short[] DFA173_eof = DFA.unpackEncodedString(DFA173_eofS);
    static final char[] DFA173_min = DFA.unpackEncodedStringToUnsignedChars(DFA173_minS);
    static final char[] DFA173_max = DFA.unpackEncodedStringToUnsignedChars(DFA173_maxS);
    static final short[] DFA173_accept = DFA.unpackEncodedString(DFA173_acceptS);
    static final short[] DFA173_special = DFA.unpackEncodedString(DFA173_specialS);
    static final short[][] DFA173_transition;

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

    class DFA173 extends DFA {

        public DFA173(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 173;
            this.eot = DFA173_eot;
            this.eof = DFA173_eof;
            this.min = DFA173_min;
            this.max = DFA173_max;
            this.accept = DFA173_accept;
            this.special = DFA173_special;
            this.transition = DFA173_transition;
        }
        public String getDescription() {
            return "34595: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 LA173_1 = input.LA(1);

                         
                        int index173_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred341_InternalStatemachineDSL()) ) {s = 78;}

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

                         
                        input.seek(index173_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 173, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA176_eotS =
        "\117\uffff";
    static final String DFA176_eofS =
        "\1\2\116\uffff";
    static final String DFA176_minS =
        "\1\4\1\0\115\uffff";
    static final String DFA176_maxS =
        "\1\u010e\1\0\115\uffff";
    static final String DFA176_acceptS =
        "\2\uffff\1\2\113\uffff\1\1";
    static final String DFA176_specialS =
        "\1\uffff\1\0\115\uffff}>";
    static final String[] DFA176_transitionS = {
            "\5\2\5\uffff\15\2\1\1\27\2\123\uffff\2\2\76\uffff\2\2\14\uffff"+
            "\1\2\30\uffff\30\2\1\uffff\1\2\3\uffff\2\2\1\uffff\2\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA176_eot = DFA.unpackEncodedString(DFA176_eotS);
    static final short[] DFA176_eof = DFA.unpackEncodedString(DFA176_eofS);
    static final char[] DFA176_min = DFA.unpackEncodedStringToUnsignedChars(DFA176_minS);
    static final char[] DFA176_max = DFA.unpackEncodedStringToUnsignedChars(DFA176_maxS);
    static final short[] DFA176_accept = DFA.unpackEncodedString(DFA176_acceptS);
    static final short[] DFA176_special = DFA.unpackEncodedString(DFA176_specialS);
    static final short[][] DFA176_transition;

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

    class DFA176 extends DFA {

        public DFA176(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 176;
            this.eot = DFA176_eot;
            this.eof = DFA176_eof;
            this.min = DFA176_min;
            this.max = DFA176_max;
            this.accept = DFA176_accept;
            this.special = DFA176_special;
            this.transition = DFA176_transition;
        }
        public String getDescription() {
            return "34906: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 LA176_1 = input.LA(1);

                         
                        int index176_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred344_InternalStatemachineDSL()) ) {s = 78;}

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

                         
                        input.seek(index176_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 176, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA188_eotS =
        "\15\uffff";
    static final String DFA188_eofS =
        "\1\2\14\uffff";
    static final String DFA188_minS =
        "\1\u0087\1\4\1\uffff\1\u00cb\1\63\7\0\1\uffff";
    static final String DFA188_maxS =
        "\1\u00ea\1\4\1\uffff\1\u00cb\1\71\7\0\1\uffff";
    static final String DFA188_acceptS =
        "\2\uffff\1\2\11\uffff\1\1";
    static final String DFA188_specialS =
        "\5\uffff\1\2\1\4\1\0\1\1\1\3\1\5\1\6\1\uffff}>";
    static final String[] DFA188_transitionS = {
            "\1\2\141\uffff\1\1\1\2",
            "\1\3",
            "",
            "\1\4",
            "\1\5\1\6\1\7\1\10\1\11\1\12\1\13",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            ""
    };

    static final short[] DFA188_eot = DFA.unpackEncodedString(DFA188_eotS);
    static final short[] DFA188_eof = DFA.unpackEncodedString(DFA188_eofS);
    static final char[] DFA188_min = DFA.unpackEncodedStringToUnsignedChars(DFA188_minS);
    static final char[] DFA188_max = DFA.unpackEncodedStringToUnsignedChars(DFA188_maxS);
    static final short[] DFA188_accept = DFA.unpackEncodedString(DFA188_acceptS);
    static final short[] DFA188_special = DFA.unpackEncodedString(DFA188_specialS);
    static final short[][] DFA188_transition;

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

    class DFA188 extends DFA {

        public DFA188(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 188;
            this.eot = DFA188_eot;
            this.eof = DFA188_eof;
            this.min = DFA188_min;
            this.max = DFA188_max;
            this.accept = DFA188_accept;
            this.special = DFA188_special;
            this.transition = DFA188_transition;
        }
        public String getDescription() {
            return "()* loopback of 36226:7: ( ( rule__StatemachineControlField__FieldsAssignment_3_0 )=> rule__StatemachineControlField__FieldsAssignment_3_0 )*";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA188_7 = input.LA(1);

                         
                        int index188_7 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred357_InternalStatemachineDSL()) ) {s = 12;}

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

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

                         
                        int index188_8 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred357_InternalStatemachineDSL()) ) {s = 12;}

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

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

                         
                        int index188_5 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred357_InternalStatemachineDSL()) ) {s = 12;}

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

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

                         
                        int index188_9 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred357_InternalStatemachineDSL()) ) {s = 12;}

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

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

                         
                        int index188_6 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred357_InternalStatemachineDSL()) ) {s = 12;}

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

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

                         
                        int index188_10 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred357_InternalStatemachineDSL()) ) {s = 12;}

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

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

                         
                        int index188_11 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred357_InternalStatemachineDSL()) ) {s = 12;}

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

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

    
    protected static class FollowSets000 {
        public static final BitSet FOLLOW_ruleStatemachineModel_in_entryRuleStatemachineModel67 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineModel74 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineModel__PackagesAssignment_in_ruleStatemachineModel100 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000020L});
        public static final BitSet FOLLOW_ruleStatemachinePackage_in_entryRuleStatemachinePackage128 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachinePackage135 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePackage__Group__0_in_ruleStatemachinePackage161 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachine_in_entryRuleStatemachine188 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachine195 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__0_in_ruleStatemachine221 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineEvent_in_entryRuleStatemachineEvent248 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineEvent255 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineEvent__Group__0_in_ruleStatemachineEvent281 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineState_in_entryRuleStatemachineState308 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineState315 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group__0_in_ruleStatemachineState341 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineTrigger_in_entryRuleStatemachineTrigger368 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineTrigger375 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group__0_in_ruleStatemachineTrigger401 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineAction_in_entryRuleStatemachineAction428 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineAction435 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineAction__Alternatives_in_ruleStatemachineAction461 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralBlinkRate_in_entryRuleStatemachineActionPeripheralBlinkRate488 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralBlinkRate495 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralBlinkRate__Group__0_in_ruleStatemachineActionPeripheralBlinkRate521 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralClear_in_entryRuleStatemachineActionPeripheralClear548 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralClear555 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralClear__Group__0_in_ruleStatemachineActionPeripheralClear581 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralCreateWindow_in_entryRuleStatemachineActionPeripheralCreateWindow608 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralCreateWindow615 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__0_in_ruleStatemachineActionPeripheralCreateWindow641 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralCursorType_in_entryRuleStatemachineActionPeripheralCursorType668 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralCursorType675 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCursorType__Group__0_in_ruleStatemachineActionPeripheralCursorType701 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralDestroyWindow_in_entryRuleStatemachineActionPeripheralDestroyWindow728 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralDestroyWindow735 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDestroyWindow__Group__0_in_ruleStatemachineActionPeripheralDestroyWindow761 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralDeviceBrightness_in_entryRuleStatemachineActionPeripheralDeviceBrightness788 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralDeviceBrightness795 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDeviceBrightness__Group__0_in_ruleStatemachineActionPeripheralDeviceBrightness821 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralDisplayBitmap_in_entryRuleStatemachineActionPeripheralDisplayBitmap848 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralDisplayBitmap855 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayBitmap__Group__0_in_ruleStatemachineActionPeripheralDisplayBitmap881 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralDisplayText_in_entryRuleStatemachineActionPeripheralDisplayText908 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralDisplayText915 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayText__Group__0_in_ruleStatemachineActionPeripheralDisplayText941 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralDisplayTextAt_in_entryRuleStatemachineActionPeripheralDisplayTextAt968 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralDisplayTextAt975 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group__0_in_ruleStatemachineActionPeripheralDisplayTextAt1001 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralInterCharacterWait_in_entryRuleStatemachineActionPeripheralInterCharacterWait1028 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralInterCharacterWait1035 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralInterCharacterWait__Group__0_in_ruleStatemachineActionPeripheralInterCharacterWait1061 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralMarqueeFormat_in_entryRuleStatemachineActionPeripheralMarqueeFormat1088 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralMarqueeFormat1095 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeFormat__Group__0_in_ruleStatemachineActionPeripheralMarqueeFormat1121 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralMarqueeRepeatWait_in_entryRuleStatemachineActionPeripheralMarqueeRepeatWait1148 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralMarqueeRepeatWait1155 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__0_in_ruleStatemachineActionPeripheralMarqueeRepeatWait1181 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralMarqueeType_in_entryRuleStatemachineActionPeripheralMarqueeType1208 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralMarqueeType1215 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeType__Group__0_in_ruleStatemachineActionPeripheralMarqueeType1241 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralMarqueeUnitWait_in_entryRuleStatemachineActionPeripheralMarqueeUnitWait1268 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralMarqueeUnitWait1275 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeUnitWait__Group__0_in_ruleStatemachineActionPeripheralMarqueeUnitWait1301 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralScroll_in_entryRuleStatemachineActionPeripheralScroll1328 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralScroll1335 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralScroll__Group__0_in_ruleStatemachineActionPeripheralScroll1361 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralOpenDrawer_in_entryRuleStatemachineActionPeripheralOpenDrawer1388 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralOpenDrawer1395 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralOpenDrawer__Group__0_in_ruleStatemachineActionPeripheralOpenDrawer1421 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPrintBarcode_in_entryRuleStatemachineActionPeripheralPrintBarcode1448 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralPrintBarcode1455 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBarcode__Group__0_in_ruleStatemachineActionPeripheralPrintBarcode1481 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPrintBitmap_in_entryRuleStatemachineActionPeripheralPrintBitmap1508 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralPrintBitmap1515 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBitmap__Group__0_in_ruleStatemachineActionPeripheralPrintBitmap1541 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPrintCut_in_entryRuleStatemachineActionPeripheralPrintCut1568 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralPrintCut1575 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintCut__Group__0_in_ruleStatemachineActionPeripheralPrintCut1601 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPrintNormal_in_entryRuleStatemachineActionPeripheralPrintNormal1628 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralPrintNormal1635 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintNormal__Group__0_in_ruleStatemachineActionPeripheralPrintNormal1661 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPrintRegisterBitmap_in_entryRuleStatemachineActionPeripheralPrintRegisterBitmap1688 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralPrintRegisterBitmap1695 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__0_in_ruleStatemachineActionPeripheralPrintRegisterBitmap1721 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPTOpen_in_entryRuleStatemachineActionPeripheralPTOpen1748 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralPTOpen1755 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTOpen__Group__0_in_ruleStatemachineActionPeripheralPTOpen1781 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPTClose_in_entryRuleStatemachineActionPeripheralPTClose1808 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralPTClose1815 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTClose__Group__0_in_ruleStatemachineActionPeripheralPTClose1841 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPTAcknowledge_in_entryRuleStatemachineActionPeripheralPTAcknowledge1868 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralPTAcknowledge1875 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTAcknowledge__Group__0_in_ruleStatemachineActionPeripheralPTAcknowledge1901 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPTReversal_in_entryRuleStatemachineActionPeripheralPTReversal1928 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralPTReversal1935 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTReversal__Group__0_in_ruleStatemachineActionPeripheralPTReversal1961 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPTRegistration_in_entryRuleStatemachineActionPeripheralPTRegistration1988 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralPTRegistration1995 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTRegistration__Group__0_in_ruleStatemachineActionPeripheralPTRegistration2021 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPTAuthorization_in_entryRuleStatemachineActionPeripheralPTAuthorization2048 = new BitSet(new long[]{0x0000000000000000L});
    }

    protected static class FollowSets001 {
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralPTAuthorization2055 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTAuthorization__Group__0_in_ruleStatemachineActionPeripheralPTAuthorization2081 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPTResponse_in_entryRuleStatemachineActionPeripheralPTResponse2108 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralPTResponse2115 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTResponse__Group__0_in_ruleStatemachineActionPeripheralPTResponse2141 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPrintReport_in_entryRuleStatemachineActionPeripheralPrintReport2168 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionPeripheralPrintReport2175 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintReport__Group__0_in_ruleStatemachineActionPeripheralPrintReport2201 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSource_in_entryRuleStatemachineActionFieldSource2228 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionFieldSource2235 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSource__Alternatives_in_ruleStatemachineActionFieldSource2261 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineOperation_in_entryRuleStatemachineOperation2288 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineOperation2295 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperation__Group__0_in_ruleStatemachineOperation2321 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineGuard_in_entryRuleStatemachineGuard2348 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineGuard2355 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__Group__0_in_ruleStatemachineGuard2381 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineFunction_in_entryRuleStatemachineFunction2408 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineFunction2415 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineFunction__Group__0_in_ruleStatemachineFunction2441 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineStorage_in_entryRuleStatemachineStorage2468 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineStorage2475 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorage__Group__0_in_ruleStatemachineStorage2501 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineStorageRetrieve_in_entryRuleStatemachineStorageRetrieve2528 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineStorageRetrieve2535 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieve__Group__0_in_ruleStatemachineStorageRetrieve2561 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionConditionalTransition_in_entryRuleStatemachineActionConditionalTransition2588 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionConditionalTransition2595 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionConditionalTransition__Group__0_in_ruleStatemachineActionConditionalTransition2621 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceString_in_entryRuleStatemachineActionFieldSourceString2648 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionFieldSourceString2655 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceString__TextAssignment_in_ruleStatemachineActionFieldSourceString2681 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceNumber_in_entryRuleStatemachineActionFieldSourceNumber2708 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionFieldSourceNumber2715 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceNumber__ValueAssignment_in_ruleStatemachineActionFieldSourceNumber2741 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceEvaluate_in_entryRuleStatemachineActionFieldSourceEvaluate2768 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionFieldSourceEvaluate2775 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceEvaluate__EvaluationtypeAssignment_in_ruleStatemachineActionFieldSourceEvaluate2801 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceEvent_in_entryRuleStatemachineActionFieldSourceEvent2828 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionFieldSourceEvent2835 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceEvent__Group__0_in_ruleStatemachineActionFieldSourceEvent2861 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceTranslate_in_entryRuleStatemachineActionFieldSourceTranslate2888 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionFieldSourceTranslate2895 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceTranslate__Group__0_in_ruleStatemachineActionFieldSourceTranslate2921 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceDtoAttribute_in_entryRuleStatemachineActionFieldSourceDtoAttribute2948 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionFieldSourceDtoAttribute2955 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttribute__Group__0_in_ruleStatemachineActionFieldSourceDtoAttribute2981 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceMore_in_entryRuleStatemachineActionFieldSourceMore3008 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionFieldSourceMore3015 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceMore__Alternatives_in_ruleStatemachineActionFieldSourceMore3041 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceStringMore_in_entryRuleStatemachineActionFieldSourceStringMore3068 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionFieldSourceStringMore3075 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceStringMore__Group__0_in_ruleStatemachineActionFieldSourceStringMore3101 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceNumberMore_in_entryRuleStatemachineActionFieldSourceNumberMore3128 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionFieldSourceNumberMore3135 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceNumberMore__Group__0_in_ruleStatemachineActionFieldSourceNumberMore3161 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceEvaluateMore_in_entryRuleStatemachineActionFieldSourceEvaluateMore3188 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionFieldSourceEvaluateMore3195 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceEvaluateMore__Group__0_in_ruleStatemachineActionFieldSourceEvaluateMore3221 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceTranslateMore_in_entryRuleStatemachineActionFieldSourceTranslateMore3248 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionFieldSourceTranslateMore3255 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceTranslateMore__Group__0_in_ruleStatemachineActionFieldSourceTranslateMore3281 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldGetMore_in_entryRuleStatemachineActionFieldGetMore3308 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionFieldGetMore3315 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldGetMore__Group__0_in_ruleStatemachineActionFieldGetMore3341 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineOperationMore_in_entryRuleStatemachineOperationMore3368 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineOperationMore3375 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperationMore__Group__0_in_ruleStatemachineOperationMore3401 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineStorageRetrieveMore_in_entryRuleStatemachineStorageRetrieveMore3428 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineStorageRetrieveMore3435 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieveMore__Group__0_in_ruleStatemachineStorageRetrieveMore3461 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceDtoAttributeMore_in_entryRuleStatemachineActionFieldSourceDtoAttributeMore3488 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionFieldSourceDtoAttributeMore3495 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__0_in_ruleStatemachineActionFieldSourceDtoAttributeMore3521 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldConcatenation_in_entryRuleStatemachineActionFieldConcatenation3548 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionFieldConcatenation3555 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldConcatenation__Group__0_in_ruleStatemachineActionFieldConcatenation3581 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineOperationParameter_in_entryRuleStatemachineOperationParameter3608 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineOperationParameter3615 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperationParameter__SourceAssignment_in_ruleStatemachineOperationParameter3641 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineOperationParameterMore_in_entryRuleStatemachineOperationParameterMore3668 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineOperationParameterMore3675 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperationParameterMore__Group__0_in_ruleStatemachineOperationParameterMore3701 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSet_in_entryRuleStatemachineActionFieldSet3728 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionFieldSet3735 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSet__Group__0_in_ruleStatemachineActionFieldSet3761 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldClear_in_entryRuleStatemachineActionFieldClear3788 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionFieldClear3795 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldClear__Group__0_in_ruleStatemachineActionFieldClear3821 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldGet_in_entryRuleStatemachineActionFieldGet3848 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionFieldGet3855 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldGet__Group__0_in_ruleStatemachineActionFieldGet3881 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldRemove_in_entryRuleStatemachineActionFieldRemove3908 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionFieldRemove3915 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldRemove__Group__0_in_ruleStatemachineActionFieldRemove3941 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionItemVisible_in_entryRuleStatemachineActionItemVisible3970 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionItemVisible3977 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionItemVisible__Group__0_in_ruleStatemachineActionItemVisible4003 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionItemInvisible_in_entryRuleStatemachineActionItemInvisible4030 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionItemInvisible4037 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets002 {
        public static final BitSet FOLLOW_rule__StatemachineActionItemInvisible__Group__0_in_ruleStatemachineActionItemInvisible4063 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionButtonCaption_in_entryRuleStatemachineActionButtonCaption4090 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionButtonCaption4097 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionButtonCaption__Group__0_in_ruleStatemachineActionButtonCaption4123 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionButtonImage_in_entryRuleStatemachineActionButtonImage4150 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionButtonImage4157 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionButtonImage__Group__0_in_ruleStatemachineActionButtonImage4183 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionDTOFind_in_entryRuleStatemachineActionDTOFind4210 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionDTOFind4217 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionDTOFind__Group__0_in_ruleStatemachineActionDTOFind4243 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionScheduler_in_entryRuleStatemachineActionScheduler4270 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineActionScheduler4277 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionScheduler__Group__0_in_ruleStatemachineActionScheduler4303 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControl_in_entryRuleStatemachineControl4330 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineControl4337 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControl__Alternatives_in_ruleStatemachineControl4363 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlButton_in_entryRuleStatemachineControlButton4390 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineControlButton4397 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButton__Group__0_in_ruleStatemachineControlButton4423 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlField_in_entryRuleStatemachineControlField4450 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineControlField4457 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlField__Group__0_in_ruleStatemachineControlField4483 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlDTO_in_entryRuleStatemachineControlDTO4510 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineControlDTO4517 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTO__Group__0_in_ruleStatemachineControlDTO4543 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlScheduler_in_entryRuleStatemachineControlScheduler4570 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineControlScheduler4577 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlScheduler__Group__0_in_ruleStatemachineControlScheduler4603 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachinePeripheralDeviceLineDisplay_in_entryRuleStatemachinePeripheralDeviceLineDisplay4630 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachinePeripheralDeviceLineDisplay4637 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePeripheralDeviceLineDisplay__Group__0_in_ruleStatemachinePeripheralDeviceLineDisplay4663 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachinePeripheralDevicePOSPrinter_in_entryRuleStatemachinePeripheralDevicePOSPrinter4690 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachinePeripheralDevicePOSPrinter4697 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePeripheralDevicePOSPrinter__Group__0_in_ruleStatemachinePeripheralDevicePOSPrinter4723 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachinePeripheralDeviceCashDrawer_in_entryRuleStatemachinePeripheralDeviceCashDrawer4750 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachinePeripheralDeviceCashDrawer4757 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePeripheralDeviceCashDrawer__Group__0_in_ruleStatemachinePeripheralDeviceCashDrawer4783 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachinePeripheralDevicePT_in_entryRuleStatemachinePeripheralDevicePT4810 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachinePeripheralDevicePT4817 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePeripheralDevicePT__Group__0_in_ruleStatemachinePeripheralDevicePT4843 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlPeripheral_in_entryRuleStatemachineControlPeripheral4870 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineControlPeripheral4877 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__Group__0_in_ruleStatemachineControlPeripheral4903 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlButtonAttribute_in_entryRuleStatemachineControlButtonAttribute4930 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineControlButtonAttribute4937 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttribute__Group__0_in_ruleStatemachineControlButtonAttribute4963 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlButtonAttributeEvent_in_entryRuleStatemachineControlButtonAttributeEvent4990 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineControlButtonAttributeEvent4997 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEvent__Alternatives_in_ruleStatemachineControlButtonAttributeEvent5023 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlButtonAttributeEventKeyboard_in_entryRuleStatemachineControlButtonAttributeEventKeyboard5050 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineControlButtonAttributeEventKeyboard5057 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventKeyboard__Group__0_in_ruleStatemachineControlButtonAttributeEventKeyboard5083 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlButtonAttributeEventIdentity_in_entryRuleStatemachineControlButtonAttributeEventIdentity5110 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineControlButtonAttributeEventIdentity5117 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventIdentity__Group__0_in_ruleStatemachineControlButtonAttributeEventIdentity5143 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlButtonAttributeEventEvent_in_entryRuleStatemachineControlButtonAttributeEventEvent5170 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineControlButtonAttributeEventEvent5177 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventEvent__Group__0_in_ruleStatemachineControlButtonAttributeEventEvent5203 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlFieldAttribute_in_entryRuleStatemachineControlFieldAttribute5230 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineControlFieldAttribute5237 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlFieldAttribute__Group__0_in_ruleStatemachineControlFieldAttribute5263 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlFieldLayout_in_entryRuleStatemachineControlFieldLayout5290 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineControlFieldLayout5297 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlFieldLayout__Group__0_in_ruleStatemachineControlFieldLayout5323 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlDTOAttribute_in_entryRuleStatemachineControlDTOAttribute5350 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineControlDTOAttribute5357 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTOAttribute__Group__0_in_ruleStatemachineControlDTOAttribute5383 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlSchedulerAttribute_in_entryRuleStatemachineControlSchedulerAttribute5410 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineControlSchedulerAttribute5417 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlSchedulerAttribute__Group__0_in_ruleStatemachineControlSchedulerAttribute5443 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineDTOType_in_entryRuleStatemachineDTOType5470 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineDTOType5477 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineDTOType__AttributeTypeAssignment_in_ruleStatemachineDTOType5503 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineFieldType_in_entryRuleStatemachineFieldType5530 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineFieldType5537 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineFieldType__AttributeTypeAssignment_in_ruleStatemachineFieldType5563 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineImport_in_entryRuleStatemachineImport5590 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineImport5597 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineImport__Group__0_in_ruleStatemachineImport5623 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineQualifiedNameWithWildCard_in_entryRuleStatemachineQualifiedNameWithWildCard5650 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleStatemachineQualifiedNameWithWildCard5657 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineQualifiedNameWithWildCard__Group__0_in_ruleStatemachineQualifiedNameWithWildCard5683 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName5710 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedName5717 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__QualifiedName__Group__0_in_ruleQualifiedName5743 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleValidID_in_entryRuleValidID5770 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleValidID5777 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_ruleValidID5803 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleTRANSLATABLESTRING_in_entryRuleTRANSLATABLESTRING5829 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleTRANSLATABLESTRING5836 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_STRING_in_ruleTRANSLATABLESTRING5862 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleTRANSLATABLEID_in_entryRuleTRANSLATABLEID5888 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleTRANSLATABLEID5895 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_ruleTRANSLATABLEID5921 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleSignedNumber_in_entryRuleSignedNumber5947 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleSignedNumber5954 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__SignedNumber__Group__0_in_ruleSignedNumber5980 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleUnsignedNumber_in_entryRuleUnsignedNumber6007 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleUnsignedNumber6014 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__UnsignedNumber__Group__0_in_ruleUnsignedNumber6040 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets003 {
        public static final BitSet FOLLOW_ruleXAnnotation_in_entryRuleXAnnotation6067 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXAnnotation6074 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group__0_in_ruleXAnnotation6100 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAnnotationElementValuePair_in_entryRuleXAnnotationElementValuePair6127 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXAnnotationElementValuePair6134 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__Group__0_in_ruleXAnnotationElementValuePair6160 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAnnotationElementValueOrCommaList_in_entryRuleXAnnotationElementValueOrCommaList6187 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXAnnotationElementValueOrCommaList6194 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Alternatives_in_ruleXAnnotationElementValueOrCommaList6220 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAnnotationElementValue_in_entryRuleXAnnotationElementValue6247 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXAnnotationElementValue6254 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Alternatives_in_ruleXAnnotationElementValue6280 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAnnotationOrExpression_in_entryRuleXAnnotationOrExpression6307 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXAnnotationOrExpression6314 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationOrExpression__Alternatives_in_ruleXAnnotationOrExpression6340 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXExpression_in_entryRuleXExpression6367 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXExpression6374 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAssignment_in_ruleXExpression6400 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAssignment_in_entryRuleXAssignment6426 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXAssignment6433 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Alternatives_in_ruleXAssignment6459 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpSingleAssign_in_entryRuleOpSingleAssign6486 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpSingleAssign6493 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_ruleOpSingleAssign6520 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpMultiAssign_in_entryRuleOpMultiAssign6548 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpMultiAssign6555 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Alternatives_in_ruleOpMultiAssign6581 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXOrExpression_in_entryRuleXOrExpression6608 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXOrExpression6615 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group__0_in_ruleXOrExpression6641 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpOr_in_entryRuleOpOr6668 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpOr6675 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_14_in_ruleOpOr6702 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAndExpression_in_entryRuleXAndExpression6730 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXAndExpression6737 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group__0_in_ruleXAndExpression6763 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpAnd_in_entryRuleOpAnd6790 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpAnd6797 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_15_in_ruleOpAnd6824 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXEqualityExpression_in_entryRuleXEqualityExpression6852 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXEqualityExpression6859 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group__0_in_ruleXEqualityExpression6885 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpEquality_in_entryRuleOpEquality6912 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpEquality6919 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpEquality__Alternatives_in_ruleOpEquality6945 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXRelationalExpression_in_entryRuleXRelationalExpression6972 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXRelationalExpression6979 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group__0_in_ruleXRelationalExpression7005 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpCompare_in_entryRuleOpCompare7032 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpCompare7039 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpCompare__Alternatives_in_ruleOpCompare7065 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXOtherOperatorExpression_in_entryRuleXOtherOperatorExpression7092 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXOtherOperatorExpression7099 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group__0_in_ruleXOtherOperatorExpression7125 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpOther_in_entryRuleOpOther7152 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpOther7159 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Alternatives_in_ruleOpOther7185 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAdditiveExpression_in_entryRuleXAdditiveExpression7212 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXAdditiveExpression7219 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAdditiveExpression__Group__0_in_ruleXAdditiveExpression7245 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpAdd_in_entryRuleOpAdd7272 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpAdd7279 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpAdd__Alternatives_in_ruleOpAdd7305 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXMultiplicativeExpression_in_entryRuleXMultiplicativeExpression7332 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXMultiplicativeExpression7339 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group__0_in_ruleXMultiplicativeExpression7365 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpMulti_in_entryRuleOpMulti7392 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpMulti7399 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpMulti__Alternatives_in_ruleOpMulti7425 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXUnaryOperation_in_entryRuleXUnaryOperation7452 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXUnaryOperation7459 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XUnaryOperation__Alternatives_in_ruleXUnaryOperation7485 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpUnary_in_entryRuleOpUnary7512 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpUnary7519 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpUnary__Alternatives_in_ruleOpUnary7545 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXCastedExpression_in_entryRuleXCastedExpression7572 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXCastedExpression7579 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCastedExpression__Group__0_in_ruleXCastedExpression7605 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXPostfixOperation_in_entryRuleXPostfixOperation7632 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXPostfixOperation7639 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XPostfixOperation__Group__0_in_ruleXPostfixOperation7665 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpPostfix_in_entryRuleOpPostfix7692 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleOpPostfix7699 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpPostfix__Alternatives_in_ruleOpPostfix7725 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXMemberFeatureCall_in_entryRuleXMemberFeatureCall7752 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXMemberFeatureCall7759 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group__0_in_ruleXMemberFeatureCall7785 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXPrimaryExpression_in_entryRuleXPrimaryExpression7812 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXPrimaryExpression7819 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XPrimaryExpression__Alternatives_in_ruleXPrimaryExpression7845 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXLiteral_in_entryRuleXLiteral7872 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXLiteral7879 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XLiteral__Alternatives_in_ruleXLiteral7905 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXCollectionLiteral_in_entryRuleXCollectionLiteral7932 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXCollectionLiteral7939 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCollectionLiteral__Alternatives_in_ruleXCollectionLiteral7965 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXSetLiteral_in_entryRuleXSetLiteral7992 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXSetLiteral7999 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSetLiteral__Group__0_in_ruleXSetLiteral8025 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXListLiteral_in_entryRuleXListLiteral8052 = new BitSet(new long[]{0x0000000000000000L});
    }

    protected static class FollowSets004 {
        public static final BitSet FOLLOW_EOF_in_entryRuleXListLiteral8059 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XListLiteral__Group__0_in_ruleXListLiteral8085 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXClosure_in_entryRuleXClosure8112 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXClosure8119 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XClosure__Group__0_in_ruleXClosure8145 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXExpressionInClosure_in_entryRuleXExpressionInClosure8172 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXExpressionInClosure8179 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XExpressionInClosure__Group__0_in_ruleXExpressionInClosure8205 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXShortClosure_in_entryRuleXShortClosure8232 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXShortClosure8239 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XShortClosure__Group__0_in_ruleXShortClosure8265 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXParenthesizedExpression_in_entryRuleXParenthesizedExpression8292 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXParenthesizedExpression8299 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XParenthesizedExpression__Group__0_in_ruleXParenthesizedExpression8325 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXIfExpression_in_entryRuleXIfExpression8352 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXIfExpression8359 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XIfExpression__Group__0_in_ruleXIfExpression8385 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXSwitchExpression_in_entryRuleXSwitchExpression8412 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXSwitchExpression8419 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group__0_in_ruleXSwitchExpression8445 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXCasePart_in_entryRuleXCasePart8472 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXCasePart8479 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCasePart__Group__0_in_ruleXCasePart8505 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXForLoopExpression_in_entryRuleXForLoopExpression8532 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXForLoopExpression8539 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XForLoopExpression__Group__0_in_ruleXForLoopExpression8565 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXBasicForLoopExpression_in_entryRuleXBasicForLoopExpression8592 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXBasicForLoopExpression8599 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBasicForLoopExpression__Group__0_in_ruleXBasicForLoopExpression8625 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXWhileExpression_in_entryRuleXWhileExpression8652 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXWhileExpression8659 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XWhileExpression__Group__0_in_ruleXWhileExpression8685 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXDoWhileExpression_in_entryRuleXDoWhileExpression8712 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXDoWhileExpression8719 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__0_in_ruleXDoWhileExpression8745 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXBlockExpression_in_entryRuleXBlockExpression8772 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXBlockExpression8779 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBlockExpression__Group__0_in_ruleXBlockExpression8805 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXExpressionOrVarDeclaration_in_entryRuleXExpressionOrVarDeclaration8832 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXExpressionOrVarDeclaration8839 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XExpressionOrVarDeclaration__Alternatives_in_ruleXExpressionOrVarDeclaration8865 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXVariableDeclaration_in_entryRuleXVariableDeclaration8892 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXVariableDeclaration8899 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XVariableDeclaration__Group__0_in_ruleXVariableDeclaration8925 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmFormalParameter_in_entryRuleJvmFormalParameter8952 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleJvmFormalParameter8959 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmFormalParameter__Group__0_in_ruleJvmFormalParameter8985 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleFullJvmFormalParameter_in_entryRuleFullJvmFormalParameter9012 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleFullJvmFormalParameter9019 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__FullJvmFormalParameter__Group__0_in_ruleFullJvmFormalParameter9045 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXFeatureCall_in_entryRuleXFeatureCall9072 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXFeatureCall9079 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XFeatureCall__Group__0_in_ruleXFeatureCall9105 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleFeatureCallID_in_entryRuleFeatureCallID9132 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleFeatureCallID9139 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__FeatureCallID__Alternatives_in_ruleFeatureCallID9165 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleIdOrSuper_in_entryRuleIdOrSuper9192 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleIdOrSuper9199 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__IdOrSuper__Alternatives_in_ruleIdOrSuper9225 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXConstructorCall_in_entryRuleXConstructorCall9252 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXConstructorCall9259 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XConstructorCall__Group__0_in_ruleXConstructorCall9285 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXBooleanLiteral_in_entryRuleXBooleanLiteral9312 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXBooleanLiteral9319 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBooleanLiteral__Group__0_in_ruleXBooleanLiteral9345 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXNullLiteral_in_entryRuleXNullLiteral9372 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXNullLiteral9379 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XNullLiteral__Group__0_in_ruleXNullLiteral9405 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXNumberLiteral_in_entryRuleXNumberLiteral9432 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXNumberLiteral9439 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XNumberLiteral__Group__0_in_ruleXNumberLiteral9465 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXStringLiteral_in_entryRuleXStringLiteral9492 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXStringLiteral9499 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XStringLiteral__Group__0_in_ruleXStringLiteral9525 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXTypeLiteral_in_entryRuleXTypeLiteral9552 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXTypeLiteral9559 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XTypeLiteral__Group__0_in_ruleXTypeLiteral9585 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXThrowExpression_in_entryRuleXThrowExpression9612 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXThrowExpression9619 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XThrowExpression__Group__0_in_ruleXThrowExpression9645 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXReturnExpression_in_entryRuleXReturnExpression9672 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXReturnExpression9679 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XReturnExpression__Group__0_in_ruleXReturnExpression9705 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXTryCatchFinallyExpression_in_entryRuleXTryCatchFinallyExpression9732 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXTryCatchFinallyExpression9739 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group__0_in_ruleXTryCatchFinallyExpression9765 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXSynchronizedExpression_in_entryRuleXSynchronizedExpression9792 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXSynchronizedExpression9799 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSynchronizedExpression__Group__0_in_ruleXSynchronizedExpression9825 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXCatchClause_in_entryRuleXCatchClause9852 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXCatchClause9859 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCatchClause__Group__0_in_ruleXCatchClause9885 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleNumber_in_entryRuleNumber9917 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleNumber9924 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Number__Alternatives_in_ruleNumber9954 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmTypeReference_in_entryRuleJvmTypeReference9983 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleJvmTypeReference9990 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmTypeReference__Alternatives_in_ruleJvmTypeReference10016 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleArrayBrackets_in_entryRuleArrayBrackets10043 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleArrayBrackets10050 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets005 {
        public static final BitSet FOLLOW_rule__ArrayBrackets__Group__0_in_ruleArrayBrackets10076 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXFunctionTypeRef_in_entryRuleXFunctionTypeRef10103 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXFunctionTypeRef10110 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group__0_in_ruleXFunctionTypeRef10136 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmParameterizedTypeReference_in_entryRuleJvmParameterizedTypeReference10163 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleJvmParameterizedTypeReference10170 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__Group__0_in_ruleJvmParameterizedTypeReference10196 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmArgumentTypeReference_in_entryRuleJvmArgumentTypeReference10223 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleJvmArgumentTypeReference10230 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmArgumentTypeReference__Alternatives_in_ruleJvmArgumentTypeReference10256 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmWildcardTypeReference_in_entryRuleJvmWildcardTypeReference10283 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleJvmWildcardTypeReference10290 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmWildcardTypeReference__Group__0_in_ruleJvmWildcardTypeReference10316 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmUpperBound_in_entryRuleJvmUpperBound10343 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleJvmUpperBound10350 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmUpperBound__Group__0_in_ruleJvmUpperBound10376 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmUpperBoundAnded_in_entryRuleJvmUpperBoundAnded10403 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleJvmUpperBoundAnded10410 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmUpperBoundAnded__Group__0_in_ruleJvmUpperBoundAnded10436 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmLowerBound_in_entryRuleJvmLowerBound10463 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleJvmLowerBound10470 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmLowerBound__Group__0_in_ruleJvmLowerBound10496 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmLowerBoundAnded_in_entryRuleJvmLowerBoundAnded10523 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleJvmLowerBoundAnded10530 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmLowerBoundAnded__Group__0_in_ruleJvmLowerBoundAnded10556 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleQualifiedNameWithWildcard_in_entryRuleQualifiedNameWithWildcard10585 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedNameWithWildcard10592 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__QualifiedNameWithWildcard__Group__0_in_ruleQualifiedNameWithWildcard10618 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXImportDeclaration_in_entryRuleXImportDeclaration10647 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleXImportDeclaration10654 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XImportDeclaration__Group__0_in_ruleXImportDeclaration10680 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleQualifiedNameInStaticImport_in_entryRuleQualifiedNameInStaticImport10707 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedNameInStaticImport10714 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__QualifiedNameInStaticImport__Group__0_in_ruleQualifiedNameInStaticImport10742 = new BitSet(new long[]{0x0000000000000012L});
        public static final BitSet FOLLOW_rule__QualifiedNameInStaticImport__Group__0_in_ruleQualifiedNameInStaticImport10754 = new BitSet(new long[]{0x0000000000000012L});
        public static final BitSet FOLLOW_rule__StatemachineInternalType__Alternatives_in_ruleStatemachineInternalType10794 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonEventType__Alternatives_in_ruleStatemachineControlButtonEventType10830 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineEvaluationType__Alternatives_in_ruleStatemachineEvaluationType10866 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineUserMessageType__Alternatives_in_ruleStatemachineUserMessageType10902 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineLineDisplayCursorType__Alternatives_in_ruleStatemachineLineDisplayCursorType10938 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineLineDisplayMarqueeType__Alternatives_in_ruleStatemachineLineDisplayMarqueeType10974 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineLineDisplayMarqueeFormat__Alternatives_in_ruleStatemachineLineDisplayMarqueeFormat11010 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineLineDisplayTextType__Alternatives_in_ruleStatemachineLineDisplayTextType11046 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineLineDisplayScrollTextType__Alternatives_in_ruleStatemachineLineDisplayScrollTextType11082 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePOSPrinterBarcodeType__Alternatives_in_ruleStatemachinePOSPrinterBarcodeType11118 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralBlinkRate_in_rule__StatemachineAction__Alternatives11153 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralClear_in_rule__StatemachineAction__Alternatives11170 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralCreateWindow_in_rule__StatemachineAction__Alternatives11187 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralCursorType_in_rule__StatemachineAction__Alternatives11204 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralDestroyWindow_in_rule__StatemachineAction__Alternatives11221 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralDeviceBrightness_in_rule__StatemachineAction__Alternatives11238 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralDisplayBitmap_in_rule__StatemachineAction__Alternatives11255 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralDisplayText_in_rule__StatemachineAction__Alternatives11272 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralDisplayTextAt_in_rule__StatemachineAction__Alternatives11289 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralInterCharacterWait_in_rule__StatemachineAction__Alternatives11306 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralMarqueeFormat_in_rule__StatemachineAction__Alternatives11323 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralMarqueeRepeatWait_in_rule__StatemachineAction__Alternatives11340 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralMarqueeType_in_rule__StatemachineAction__Alternatives11357 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralMarqueeUnitWait_in_rule__StatemachineAction__Alternatives11374 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralScroll_in_rule__StatemachineAction__Alternatives11391 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralOpenDrawer_in_rule__StatemachineAction__Alternatives11408 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPrintBarcode_in_rule__StatemachineAction__Alternatives11425 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPrintBitmap_in_rule__StatemachineAction__Alternatives11442 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPrintCut_in_rule__StatemachineAction__Alternatives11459 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPrintNormal_in_rule__StatemachineAction__Alternatives11476 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPrintRegisterBitmap_in_rule__StatemachineAction__Alternatives11493 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPTOpen_in_rule__StatemachineAction__Alternatives11510 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPTClose_in_rule__StatemachineAction__Alternatives11527 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPTAcknowledge_in_rule__StatemachineAction__Alternatives11544 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPTReversal_in_rule__StatemachineAction__Alternatives11561 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPTRegistration_in_rule__StatemachineAction__Alternatives11578 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPTAuthorization_in_rule__StatemachineAction__Alternatives11595 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPrintReport_in_rule__StatemachineAction__Alternatives11612 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSet_in_rule__StatemachineAction__Alternatives11629 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldRemove_in_rule__StatemachineAction__Alternatives11646 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionItemVisible_in_rule__StatemachineAction__Alternatives11663 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionItemInvisible_in_rule__StatemachineAction__Alternatives11680 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldClear_in_rule__StatemachineAction__Alternatives11697 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionButtonCaption_in_rule__StatemachineAction__Alternatives11714 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionButtonImage_in_rule__StatemachineAction__Alternatives11731 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionDTOFind_in_rule__StatemachineAction__Alternatives11748 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineStorage_in_rule__StatemachineAction__Alternatives11765 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionScheduler_in_rule__StatemachineAction__Alternatives11782 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineOperation_in_rule__StatemachineAction__Alternatives11799 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionConditionalTransition_in_rule__StatemachineAction__Alternatives11816 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceString_in_rule__StatemachineActionFieldSource__Alternatives11848 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceNumber_in_rule__StatemachineActionFieldSource__Alternatives11865 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceEvaluate_in_rule__StatemachineActionFieldSource__Alternatives11882 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceTranslate_in_rule__StatemachineActionFieldSource__Alternatives11899 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldGet_in_rule__StatemachineActionFieldSource__Alternatives11916 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineFunction_in_rule__StatemachineActionFieldSource__Alternatives11933 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineStorageRetrieve_in_rule__StatemachineActionFieldSource__Alternatives11950 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceDtoAttribute_in_rule__StatemachineActionFieldSource__Alternatives11967 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceEvent_in_rule__StatemachineActionFieldSource__Alternatives11984 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionPeripheralPTResponse_in_rule__StatemachineActionFieldSource__Alternatives12001 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceStringMore_in_rule__StatemachineActionFieldSourceMore__Alternatives12033 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceNumberMore_in_rule__StatemachineActionFieldSourceMore__Alternatives12050 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceEvaluateMore_in_rule__StatemachineActionFieldSourceMore__Alternatives12067 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceTranslateMore_in_rule__StatemachineActionFieldSourceMore__Alternatives12084 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldGetMore_in_rule__StatemachineActionFieldSourceMore__Alternatives12101 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets006 {
        public static final BitSet FOLLOW_ruleStatemachineOperationMore_in_rule__StatemachineActionFieldSourceMore__Alternatives12118 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineStorageRetrieveMore_in_rule__StatemachineActionFieldSourceMore__Alternatives12135 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineActionFieldSourceDtoAttributeMore_in_rule__StatemachineActionFieldSourceMore__Alternatives12152 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlButton_in_rule__StatemachineControl__Alternatives12185 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlField_in_rule__StatemachineControl__Alternatives12202 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlDTO_in_rule__StatemachineControl__Alternatives12219 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlScheduler_in_rule__StatemachineControl__Alternatives12236 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlPeripheral_in_rule__StatemachineControl__Alternatives12253 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlButtonAttributeEventKeyboard_in_rule__StatemachineControlButtonAttributeEvent__Alternatives12285 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlButtonAttributeEventIdentity_in_rule__StatemachineControlButtonAttributeEvent__Alternatives12302 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleStatemachineControlButtonAttributeEventEvent_in_rule__StatemachineControlButtonAttributeEvent__Alternatives12319 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3_1_0__0_in_rule__XAnnotation__Alternatives_3_112351 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__ValueAssignment_3_1_1_in_rule__XAnnotation__Alternatives_3_112369 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0__0_in_rule__XAnnotationElementValueOrCommaList__Alternatives12402 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1__0_in_rule__XAnnotationElementValueOrCommaList__Alternatives12420 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0__0_in_rule__XAnnotationElementValue__Alternatives12453 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAnnotationOrExpression_in_rule__XAnnotationElementValue__Alternatives12471 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAnnotation_in_rule__XAnnotationOrExpression__Alternatives12503 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXExpression_in_rule__XAnnotationOrExpression__Alternatives12520 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_0__0_in_rule__XAssignment__Alternatives12552 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1__0_in_rule__XAssignment__Alternatives12570 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_16_in_rule__OpMultiAssign__Alternatives12604 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_17_in_rule__OpMultiAssign__Alternatives12624 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_18_in_rule__OpMultiAssign__Alternatives12644 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_19_in_rule__OpMultiAssign__Alternatives12664 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_20_in_rule__OpMultiAssign__Alternatives12684 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_5__0_in_rule__OpMultiAssign__Alternatives12703 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_6__0_in_rule__OpMultiAssign__Alternatives12721 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_21_in_rule__OpEquality__Alternatives12755 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_22_in_rule__OpEquality__Alternatives12775 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_23_in_rule__OpEquality__Alternatives12795 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_24_in_rule__OpEquality__Alternatives12815 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0__0_in_rule__XRelationalExpression__Alternatives_112849 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1__0_in_rule__XRelationalExpression__Alternatives_112867 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_25_in_rule__OpCompare__Alternatives12901 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpCompare__Group_1__0_in_rule__OpCompare__Alternatives12920 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_26_in_rule__OpCompare__Alternatives12939 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_27_in_rule__OpCompare__Alternatives12959 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_28_in_rule__OpOther__Alternatives12994 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__OpOther__Alternatives13014 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_2__0_in_rule__OpOther__Alternatives13033 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_30_in_rule__OpOther__Alternatives13052 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_31_in_rule__OpOther__Alternatives13072 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_5__0_in_rule__OpOther__Alternatives13091 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_6__0_in_rule__OpOther__Alternatives13109 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_32_in_rule__OpOther__Alternatives13128 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_33_in_rule__OpOther__Alternatives13148 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_5_1_0__0_in_rule__OpOther__Alternatives_5_113182 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_26_in_rule__OpOther__Alternatives_5_113201 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_6_1_0__0_in_rule__OpOther__Alternatives_6_113235 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_27_in_rule__OpOther__Alternatives_6_113254 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_31_in_rule__OpOther__Alternatives_6_113274 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_34_in_rule__OpAdd__Alternatives13309 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_35_in_rule__OpAdd__Alternatives13329 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_36_in_rule__OpMulti__Alternatives13364 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_37_in_rule__OpMulti__Alternatives13384 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_38_in_rule__OpMulti__Alternatives13404 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_39_in_rule__OpMulti__Alternatives13424 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XUnaryOperation__Group_0__0_in_rule__XUnaryOperation__Alternatives13458 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXCastedExpression_in_rule__XUnaryOperation__Alternatives13476 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_40_in_rule__OpUnary__Alternatives13509 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_35_in_rule__OpUnary__Alternatives13529 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_34_in_rule__OpUnary__Alternatives13549 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_41_in_rule__OpPostfix__Alternatives13584 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_42_in_rule__OpPostfix__Alternatives13604 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0__0_in_rule__XMemberFeatureCall__Alternatives_113638 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__0_in_rule__XMemberFeatureCall__Alternatives_113656 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__XMemberFeatureCall__Alternatives_1_0_0_0_113690 = 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_113709 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__XMemberFeatureCall__Alternatives_1_1_0_0_113743 = 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_113762 = 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_113780 = 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_113813 = 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_113831 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXConstructorCall_in_rule__XPrimaryExpression__Alternatives13864 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXBlockExpression_in_rule__XPrimaryExpression__Alternatives13881 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXSwitchExpression_in_rule__XPrimaryExpression__Alternatives13898 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXSynchronizedExpression_in_rule__XPrimaryExpression__Alternatives13916 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXFeatureCall_in_rule__XPrimaryExpression__Alternatives13934 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXLiteral_in_rule__XPrimaryExpression__Alternatives13951 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXIfExpression_in_rule__XPrimaryExpression__Alternatives13968 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXForLoopExpression_in_rule__XPrimaryExpression__Alternatives13986 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXBasicForLoopExpression_in_rule__XPrimaryExpression__Alternatives14004 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXWhileExpression_in_rule__XPrimaryExpression__Alternatives14021 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXDoWhileExpression_in_rule__XPrimaryExpression__Alternatives14038 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXThrowExpression_in_rule__XPrimaryExpression__Alternatives14055 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXReturnExpression_in_rule__XPrimaryExpression__Alternatives14072 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXTryCatchFinallyExpression_in_rule__XPrimaryExpression__Alternatives14089 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXParenthesizedExpression_in_rule__XPrimaryExpression__Alternatives14106 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXCollectionLiteral_in_rule__XLiteral__Alternatives14138 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXClosure_in_rule__XLiteral__Alternatives14156 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXBooleanLiteral_in_rule__XLiteral__Alternatives14174 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXNumberLiteral_in_rule__XLiteral__Alternatives14191 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXNullLiteral_in_rule__XLiteral__Alternatives14208 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXStringLiteral_in_rule__XLiteral__Alternatives14225 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXTypeLiteral_in_rule__XLiteral__Alternatives14242 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXSetLiteral_in_rule__XCollectionLiteral__Alternatives14274 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXListLiteral_in_rule__XCollectionLiteral__Alternatives14291 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0__0_in_rule__XSwitchExpression__Alternatives_214323 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1__0_in_rule__XSwitchExpression__Alternatives_214341 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets007 {
        public static final BitSet FOLLOW_rule__XCasePart__Group_3_0__0_in_rule__XCasePart__Alternatives_314374 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XCasePart__FallThroughAssignment_3_1_in_rule__XCasePart__Alternatives_314392 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXVariableDeclaration_in_rule__XExpressionOrVarDeclaration__Alternatives14425 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXExpression_in_rule__XExpressionOrVarDeclaration__Alternatives14442 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XVariableDeclaration__WriteableAssignment_1_0_in_rule__XVariableDeclaration__Alternatives_114474 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_44_in_rule__XVariableDeclaration__Alternatives_114493 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XVariableDeclaration__Group_2_0__0_in_rule__XVariableDeclaration__Alternatives_214527 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XVariableDeclaration__NameAssignment_2_1_in_rule__XVariableDeclaration__Alternatives_214545 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0_in_rule__XFeatureCall__Alternatives_3_114578 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XFeatureCall__Group_3_1_1__0_in_rule__XFeatureCall__Alternatives_3_114596 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleValidID_in_rule__FeatureCallID__Alternatives14629 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_45_in_rule__FeatureCallID__Alternatives14647 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_46_in_rule__FeatureCallID__Alternatives14667 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_47_in_rule__FeatureCallID__Alternatives14687 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_48_in_rule__FeatureCallID__Alternatives14707 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleFeatureCallID_in_rule__IdOrSuper__Alternatives14741 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__IdOrSuper__Alternatives14759 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XConstructorCall__ArgumentsAssignment_4_1_0_in_rule__XConstructorCall__Alternatives_4_114793 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XConstructorCall__Group_4_1_1__0_in_rule__XConstructorCall__Alternatives_4_114811 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_50_in_rule__XBooleanLiteral__Alternatives_114845 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XBooleanLiteral__IsTrueAssignment_1_1_in_rule__XBooleanLiteral__Alternatives_114864 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group_3_0__0_in_rule__XTryCatchFinallyExpression__Alternatives_314897 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group_3_1__0_in_rule__XTryCatchFinallyExpression__Alternatives_314915 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_HEX_in_rule__Number__Alternatives14948 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Number__Group_1__0_in_rule__Number__Alternatives14965 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_INT_in_rule__Number__Alternatives_1_014998 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_DECIMAL_in_rule__Number__Alternatives_1_015015 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_INT_in_rule__Number__Alternatives_1_1_115047 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_DECIMAL_in_rule__Number__Alternatives_1_1_115064 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmTypeReference__Group_0__0_in_rule__JvmTypeReference__Alternatives15096 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXFunctionTypeRef_in_rule__JvmTypeReference__Alternatives15114 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__JvmArgumentTypeReference__Alternatives15146 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleJvmWildcardTypeReference_in_rule__JvmArgumentTypeReference__Alternatives15163 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmWildcardTypeReference__Group_2_0__0_in_rule__JvmWildcardTypeReference__Alternatives_215195 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__JvmWildcardTypeReference__Group_2_1__0_in_rule__JvmWildcardTypeReference__Alternatives_215213 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XImportDeclaration__Group_1_0__0_in_rule__XImportDeclaration__Alternatives_115246 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XImportDeclaration__ImportedTypeAssignment_1_1_in_rule__XImportDeclaration__Alternatives_115264 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XImportDeclaration__ImportedNamespaceAssignment_1_2_in_rule__XImportDeclaration__Alternatives_115282 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XImportDeclaration__WildcardAssignment_1_0_3_0_in_rule__XImportDeclaration__Alternatives_1_0_315315 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XImportDeclaration__MemberNameAssignment_1_0_3_1_in_rule__XImportDeclaration__Alternatives_1_0_315333 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__StatemachineInternalType__Alternatives15367 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_52_in_rule__StatemachineInternalType__Alternatives15388 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_53_in_rule__StatemachineInternalType__Alternatives15409 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_54_in_rule__StatemachineInternalType__Alternatives15430 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_55_in_rule__StatemachineInternalType__Alternatives15451 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_56_in_rule__StatemachineInternalType__Alternatives15472 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_57_in_rule__StatemachineInternalType__Alternatives15493 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_58_in_rule__StatemachineControlButtonEventType__Alternatives15529 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_59_in_rule__StatemachineControlButtonEventType__Alternatives15550 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_60_in_rule__StatemachineControlButtonEventType__Alternatives15571 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_61_in_rule__StatemachineEvaluationType__Alternatives15607 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_62_in_rule__StatemachineEvaluationType__Alternatives15628 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_63_in_rule__StatemachineEvaluationType__Alternatives15649 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_64_in_rule__StatemachineEvaluationType__Alternatives15670 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_65_in_rule__StatemachineEvaluationType__Alternatives15691 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_66_in_rule__StatemachineEvaluationType__Alternatives15712 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_67_in_rule__StatemachineEvaluationType__Alternatives15733 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_68_in_rule__StatemachineEvaluationType__Alternatives15754 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_69_in_rule__StatemachineEvaluationType__Alternatives15775 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_70_in_rule__StatemachineEvaluationType__Alternatives15796 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_71_in_rule__StatemachineEvaluationType__Alternatives15817 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_72_in_rule__StatemachineEvaluationType__Alternatives15838 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_73_in_rule__StatemachineEvaluationType__Alternatives15859 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_74_in_rule__StatemachineEvaluationType__Alternatives15880 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_75_in_rule__StatemachineUserMessageType__Alternatives15916 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_76_in_rule__StatemachineUserMessageType__Alternatives15937 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_77_in_rule__StatemachineUserMessageType__Alternatives15958 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_78_in_rule__StatemachineUserMessageType__Alternatives15979 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_79_in_rule__StatemachineUserMessageType__Alternatives16000 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_80_in_rule__StatemachineLineDisplayCursorType__Alternatives16036 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_81_in_rule__StatemachineLineDisplayCursorType__Alternatives16057 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_82_in_rule__StatemachineLineDisplayCursorType__Alternatives16078 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_83_in_rule__StatemachineLineDisplayCursorType__Alternatives16099 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_84_in_rule__StatemachineLineDisplayCursorType__Alternatives16120 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_85_in_rule__StatemachineLineDisplayCursorType__Alternatives16141 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_86_in_rule__StatemachineLineDisplayCursorType__Alternatives16162 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__StatemachineLineDisplayCursorType__Alternatives16183 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_80_in_rule__StatemachineLineDisplayMarqueeType__Alternatives16219 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_88_in_rule__StatemachineLineDisplayMarqueeType__Alternatives16240 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_89_in_rule__StatemachineLineDisplayMarqueeType__Alternatives16261 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_90_in_rule__StatemachineLineDisplayMarqueeType__Alternatives16282 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_91_in_rule__StatemachineLineDisplayMarqueeType__Alternatives16303 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_92_in_rule__StatemachineLineDisplayMarqueeType__Alternatives16324 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_93_in_rule__StatemachineLineDisplayMarqueeFormat__Alternatives16360 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_94_in_rule__StatemachineLineDisplayMarqueeFormat__Alternatives16381 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_95_in_rule__StatemachineLineDisplayTextType__Alternatives16417 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_87_in_rule__StatemachineLineDisplayTextType__Alternatives16438 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_85_in_rule__StatemachineLineDisplayTextType__Alternatives16459 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_96_in_rule__StatemachineLineDisplayTextType__Alternatives16480 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_88_in_rule__StatemachineLineDisplayScrollTextType__Alternatives16516 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_89_in_rule__StatemachineLineDisplayScrollTextType__Alternatives16537 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_90_in_rule__StatemachineLineDisplayScrollTextType__Alternatives16558 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_91_in_rule__StatemachineLineDisplayScrollTextType__Alternatives16579 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_97_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives16615 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_98_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives16636 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_99_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives16657 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_100_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives16678 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_101_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives16699 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_102_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives16720 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_103_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives16741 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets008 {
        public static final BitSet FOLLOW_104_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives16762 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_105_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives16783 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_106_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives16804 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_107_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives16825 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_108_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives16846 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_109_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives16867 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_110_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives16888 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_111_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives16909 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_112_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives16930 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_113_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives16951 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_114_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives16972 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_115_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives16993 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_116_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives17014 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_117_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives17035 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_118_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives17056 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_119_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives17077 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_120_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives17098 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_121_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives17119 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_122_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives17140 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_123_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives17161 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_124_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives17182 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_125_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives17203 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_126_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives17224 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_127_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives17245 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_128_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives17266 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_129_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives17287 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_130_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives17308 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_131_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives17329 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_132_in_rule__StatemachinePOSPrinterBarcodeType__Alternatives17350 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePackage__Group__0__Impl_in_rule__StatemachinePackage__Group__017383 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000020L});
        public static final BitSet FOLLOW_rule__StatemachinePackage__Group__1_in_rule__StatemachinePackage__Group__017386 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePackage__Group__1__Impl_in_rule__StatemachinePackage__Group__117444 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachinePackage__Group__2_in_rule__StatemachinePackage__Group__117447 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_133_in_rule__StatemachinePackage__Group__1__Impl17475 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePackage__Group__2__Impl_in_rule__StatemachinePackage__Group__217506 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__StatemachinePackage__Group__3_in_rule__StatemachinePackage__Group__217509 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePackage__NameAssignment_2_in_rule__StatemachinePackage__Group__2__Impl17536 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePackage__Group__3__Impl_in_rule__StatemachinePackage__Group__317566 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePackage__Group_3__0_in_rule__StatemachinePackage__Group__3__Impl17593 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePackage__Group_3__0__Impl_in_rule__StatemachinePackage__Group_3__017632 = new BitSet(new long[]{0x0000800000000000L,0x0000000000000000L,0x0000000000000180L});
        public static final BitSet FOLLOW_rule__StatemachinePackage__Group_3__1_in_rule__StatemachinePackage__Group_3__017635 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_134_in_rule__StatemachinePackage__Group_3__0__Impl17663 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePackage__Group_3__1__Impl_in_rule__StatemachinePackage__Group_3__117694 = new BitSet(new long[]{0x0000800000000000L,0x0000000000000000L,0x0000000000000180L});
        public static final BitSet FOLLOW_rule__StatemachinePackage__Group_3__2_in_rule__StatemachinePackage__Group_3__117697 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePackage__ImportsAssignment_3_1_in_rule__StatemachinePackage__Group_3__1__Impl17724 = new BitSet(new long[]{0x0000800000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePackage__Group_3__2__Impl_in_rule__StatemachinePackage__Group_3__217755 = new BitSet(new long[]{0x0000800000000000L,0x0000000000000000L,0x0000000000000180L});
        public static final BitSet FOLLOW_rule__StatemachinePackage__Group_3__3_in_rule__StatemachinePackage__Group_3__217758 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePackage__StatemachinesAssignment_3_2_in_rule__StatemachinePackage__Group_3__2__Impl17785 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000100L});
        public static final BitSet FOLLOW_rule__StatemachinePackage__Group_3__3__Impl_in_rule__StatemachinePackage__Group_3__317816 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_135_in_rule__StatemachinePackage__Group_3__3__Impl17844 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__0__Impl_in_rule__Statemachine__Group__017883 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__1_in_rule__Statemachine__Group__017886 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_136_in_rule__Statemachine__Group__0__Impl17914 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__1__Impl_in_rule__Statemachine__Group__117945 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000A00L,0x0000000000000000L,0x0000000000000080L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__2_in_rule__Statemachine__Group__117948 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__NameAssignment_1_in_rule__Statemachine__Group__1__Impl17975 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__2__Impl_in_rule__Statemachine__Group__218005 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000A00L,0x0000000000000000L,0x0000000000000080L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__3_in_rule__Statemachine__Group__218008 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_2__0_in_rule__Statemachine__Group__2__Impl18035 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__3__Impl_in_rule__Statemachine__Group__318066 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000A00L,0x0000000000000000L,0x0000000000000080L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__4_in_rule__Statemachine__Group__318069 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_3__0_in_rule__Statemachine__Group__3__Impl18096 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__4__Impl_in_rule__Statemachine__Group__418127 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__5_in_rule__Statemachine__Group__418130 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_137_in_rule__Statemachine__Group__4__Impl18158 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__5__Impl_in_rule__Statemachine__Group__518189 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__6_in_rule__Statemachine__Group__518192 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__InitialStateAssignment_5_in_rule__Statemachine__Group__5__Impl18219 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__6__Impl_in_rule__Statemachine__Group__618249 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__7_in_rule__Statemachine__Group__618252 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_138_in_rule__Statemachine__Group__6__Impl18280 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__7__Impl_in_rule__Statemachine__Group__718311 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__8_in_rule__Statemachine__Group__718314 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__InitialEventAssignment_7_in_rule__Statemachine__Group__7__Impl18341 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__8__Impl_in_rule__Statemachine__Group__818371 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000002000L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__9_in_rule__Statemachine__Group__818374 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_8__0_in_rule__Statemachine__Group__8__Impl18401 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__9__Impl_in_rule__Statemachine__Group__918431 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__10_in_rule__Statemachine__Group__918434 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_9__0_in_rule__Statemachine__Group__9__Impl18461 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group__10__Impl_in_rule__Statemachine__Group__1018491 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_10__0_in_rule__Statemachine__Group__10__Impl18518 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_2__0__Impl_in_rule__Statemachine__Group_2__018570 = new BitSet(new long[]{0x0000000000000020L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_2__1_in_rule__Statemachine__Group_2__018573 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__DescriptionAssignment_2_0_in_rule__Statemachine__Group_2__0__Impl18600 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_2__1__Impl_in_rule__Statemachine__Group_2__118630 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__DescriptionValueAssignment_2_1_in_rule__Statemachine__Group_2__1__Impl18657 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_3__0__Impl_in_rule__Statemachine__Group_3__018691 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_3__1_in_rule__Statemachine__Group_3__018694 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_139_in_rule__Statemachine__Group_3__0__Impl18722 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_3__1__Impl_in_rule__Statemachine__Group_3__118753 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__FunctionGroupAssignment_3_1_in_rule__Statemachine__Group_3__1__Impl18780 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_8__0__Impl_in_rule__Statemachine__Group_8__018814 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_8__1_in_rule__Statemachine__Group_8__018817 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_140_in_rule__Statemachine__Group_8__0__Impl18845 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_8__1__Impl_in_rule__Statemachine__Group_8__118876 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_8_1__0_in_rule__Statemachine__Group_8__1__Impl18903 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_8_1__0__Impl_in_rule__Statemachine__Group_8_1__018937 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000008080L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_8_1__1_in_rule__Statemachine__Group_8_1__018940 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_134_in_rule__Statemachine__Group_8_1__0__Impl18968 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets009 {
        public static final BitSet FOLLOW_rule__Statemachine__Group_8_1__1__Impl_in_rule__Statemachine__Group_8_1__118999 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000008080L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_8_1__2_in_rule__Statemachine__Group_8_1__119002 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__EventsAssignment_8_1_1_in_rule__Statemachine__Group_8_1__1__Impl19029 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000008000L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_8_1__2__Impl_in_rule__Statemachine__Group_8_1__219060 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_135_in_rule__Statemachine__Group_8_1__2__Impl19088 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_9__0__Impl_in_rule__Statemachine__Group_9__019125 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_9__1_in_rule__Statemachine__Group_9__019128 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_141_in_rule__Statemachine__Group_9__0__Impl19156 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_9__1__Impl_in_rule__Statemachine__Group_9__119187 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L,0x00000043C0000000L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_9__2_in_rule__Statemachine__Group_9__119190 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_134_in_rule__Statemachine__Group_9__1__Impl19218 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_9__2__Impl_in_rule__Statemachine__Group_9__219249 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L,0x00000043C0000000L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_9__3_in_rule__Statemachine__Group_9__219252 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__ControlsAssignment_9_2_in_rule__Statemachine__Group_9__2__Impl19279 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x00000043C0000000L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_9__3__Impl_in_rule__Statemachine__Group_9__319310 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_135_in_rule__Statemachine__Group_9__3__Impl19338 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_10__0__Impl_in_rule__Statemachine__Group_10__019377 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_10__1_in_rule__Statemachine__Group_10__019380 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_142_in_rule__Statemachine__Group_10__0__Impl19408 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_10__1__Impl_in_rule__Statemachine__Group_10__119439 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000010080L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_10__2_in_rule__Statemachine__Group_10__119442 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_134_in_rule__Statemachine__Group_10__1__Impl19470 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_10__2__Impl_in_rule__Statemachine__Group_10__219501 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000010080L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_10__3_in_rule__Statemachine__Group_10__219504 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Statemachine__StatesAssignment_10_2_in_rule__Statemachine__Group_10__2__Impl19531 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000010000L});
        public static final BitSet FOLLOW_rule__Statemachine__Group_10__3__Impl_in_rule__Statemachine__Group_10__319562 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_135_in_rule__Statemachine__Group_10__3__Impl19590 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineEvent__Group__0__Impl_in_rule__StatemachineEvent__Group__019629 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineEvent__Group__1_in_rule__StatemachineEvent__Group__019632 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_143_in_rule__StatemachineEvent__Group__0__Impl19660 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineEvent__Group__1__Impl_in_rule__StatemachineEvent__Group__119691 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineEvent__NameAssignment_1_in_rule__StatemachineEvent__Group__1__Impl19718 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group__0__Impl_in_rule__StatemachineState__Group__019752 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group__1_in_rule__StatemachineState__Group__019755 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_144_in_rule__StatemachineState__Group__0__Impl19783 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group__1__Impl_in_rule__StatemachineState__Group__119814 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group__2_in_rule__StatemachineState__Group__119817 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__NameAssignment_1_in_rule__StatemachineState__Group__1__Impl19844 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group__2__Impl_in_rule__StatemachineState__Group__219874 = new BitSet(new long[]{0x1000000000000000L,0x0000000000000000L,0x0000000000060000L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group__3_in_rule__StatemachineState__Group__219877 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_134_in_rule__StatemachineState__Group__2__Impl19905 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group__3__Impl_in_rule__StatemachineState__Group__319936 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group__4_in_rule__StatemachineState__Group__319939 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__UnorderedGroup_3_in_rule__StatemachineState__Group__3__Impl19966 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group__4__Impl_in_rule__StatemachineState__Group__419996 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_135_in_rule__StatemachineState__Group__4__Impl20024 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_0__0__Impl_in_rule__StatemachineState__Group_3_0__020065 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_0__1_in_rule__StatemachineState__Group_3_0__020068 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_145_in_rule__StatemachineState__Group_3_0__0__Impl20096 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_0__1__Impl_in_rule__StatemachineState__Group_3_0__120127 = new BitSet(new long[]{0x0800000000000000L,0x0000000000000000L,0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_0__2_in_rule__StatemachineState__Group_3_0__120130 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_134_in_rule__StatemachineState__Group_3_0__1__Impl20158 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_0__2__Impl_in_rule__StatemachineState__Group_3_0__220189 = new BitSet(new long[]{0x0800000000000000L,0x0000000000000000L,0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_0__3_in_rule__StatemachineState__Group_3_0__220192 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__TriggersAssignment_3_0_2_in_rule__StatemachineState__Group_3_0__2__Impl20219 = new BitSet(new long[]{0x0800000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_0__3__Impl_in_rule__StatemachineState__Group_3_0__320250 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_135_in_rule__StatemachineState__Group_3_0__3__Impl20278 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_1__0__Impl_in_rule__StatemachineState__Group_3_1__020317 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000020L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_1__1_in_rule__StatemachineState__Group_3_1__020320 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_60_in_rule__StatemachineState__Group_3_1__0__Impl20348 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_1__1__Impl_in_rule__StatemachineState__Group_3_1__120379 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__IdentityAssignment_3_1_1_in_rule__StatemachineState__Group_3_1__1__Impl20406 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_2__0__Impl_in_rule__StatemachineState__Group_3_2__020440 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_2__1_in_rule__StatemachineState__Group_3_2__020443 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_146_in_rule__StatemachineState__Group_3_2__0__Impl20471 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_2__1__Impl_in_rule__StatemachineState__Group_3_2__120502 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_2__2_in_rule__StatemachineState__Group_3_2__120505 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineState__Group_3_2__1__Impl20533 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_2__2__Impl_in_rule__StatemachineState__Group_3_2__220564 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_2__3_in_rule__StatemachineState__Group_3_2__220567 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__KeystrokeAssignment_3_2_2_in_rule__StatemachineState__Group_3_2__2__Impl20594 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_2__3__Impl_in_rule__StatemachineState__Group_3_2__320624 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_2_3__0_in_rule__StatemachineState__Group_3_2__3__Impl20651 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_2_3__0__Impl_in_rule__StatemachineState__Group_3_2_3__020690 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000020L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_2_3__1_in_rule__StatemachineState__Group_3_2_3__020693 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__HasKeyOperationAssignment_3_2_3_0_in_rule__StatemachineState__Group_3_2_3__0__Impl20720 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__Group_3_2_3__1__Impl_in_rule__StatemachineState__Group_3_2_3__120750 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineState__KeyOperationAssignment_3_2_3_1_in_rule__StatemachineState__Group_3_2_3__1__Impl20777 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group__0__Impl_in_rule__StatemachineTrigger__Group__020811 = new BitSet(new long[]{0x0800000000000000L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group__1_in_rule__StatemachineTrigger__Group__020814 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group__1__Impl_in_rule__StatemachineTrigger__Group__120872 = new BitSet(new long[]{0x0000000000000010L,0x0000000000000000L,0x0000000000300000L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group__2_in_rule__StatemachineTrigger__Group__120875 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_59_in_rule__StatemachineTrigger__Group__1__Impl20903 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group__2__Impl_in_rule__StatemachineTrigger__Group__220934 = new BitSet(new long[]{0x0000000000000010L,0x0000000000000000L,0x0000000000300000L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group__3_in_rule__StatemachineTrigger__Group__220937 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__TriggersAssignment_2_in_rule__StatemachineTrigger__Group__2__Impl20964 = new BitSet(new long[]{0x0000000000000012L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group__3__Impl_in_rule__StatemachineTrigger__Group__320995 = new BitSet(new long[]{0x0000000000000010L,0x0000000000000000L,0x0000000000300000L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group__4_in_rule__StatemachineTrigger__Group__320998 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group_3__0_in_rule__StatemachineTrigger__Group__3__Impl21025 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group__4__Impl_in_rule__StatemachineTrigger__Group__421056 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L,0x0000000000010000L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group__5_in_rule__StatemachineTrigger__Group__421059 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_148_in_rule__StatemachineTrigger__Group__4__Impl21087 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group__5__Impl_in_rule__StatemachineTrigger__Group__521118 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L,0x0000000000010000L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group__6_in_rule__StatemachineTrigger__Group__521121 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group_5__0_in_rule__StatemachineTrigger__Group__5__Impl21148 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group__6__Impl_in_rule__StatemachineTrigger__Group__621179 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4E5E7FD781C00080L,0x000000002FE12231L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group__7_in_rule__StatemachineTrigger__Group__621182 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_134_in_rule__StatemachineTrigger__Group__6__Impl21210 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group__7__Impl_in_rule__StatemachineTrigger__Group__721241 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4E5E7FD781C00080L,0x000000002FE12231L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group__8_in_rule__StatemachineTrigger__Group__721244 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets010 {
        public static final BitSet FOLLOW_rule__StatemachineTrigger__ActionsAssignment_7_in_rule__StatemachineTrigger__Group__7__Impl21271 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x4E5E7FD781C00000L,0x000000002FE12231L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group__8__Impl_in_rule__StatemachineTrigger__Group__821302 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_135_in_rule__StatemachineTrigger__Group__8__Impl21330 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group_3__0__Impl_in_rule__StatemachineTrigger__Group_3__021379 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group_3__1_in_rule__StatemachineTrigger__Group_3__021382 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_149_in_rule__StatemachineTrigger__Group_3__0__Impl21410 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group_3__1__Impl_in_rule__StatemachineTrigger__Group_3__121441 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L,0x0000000000000100L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group_3__2_in_rule__StatemachineTrigger__Group_3__121444 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_134_in_rule__StatemachineTrigger__Group_3__1__Impl21472 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group_3__2__Impl_in_rule__StatemachineTrigger__Group_3__221503 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L,0x0000000000000100L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group_3__3_in_rule__StatemachineTrigger__Group_3__221506 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__GuardsAssignment_3_2_in_rule__StatemachineTrigger__Group_3__2__Impl21533 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group_3__3__Impl_in_rule__StatemachineTrigger__Group_3__321564 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_135_in_rule__StatemachineTrigger__Group_3__3__Impl21592 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group_5__0__Impl_in_rule__StatemachineTrigger__Group_5__021631 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group_5__1_in_rule__StatemachineTrigger__Group_5__021634 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__HasTransitionAssignment_5_0_in_rule__StatemachineTrigger__Group_5__0__Impl21661 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__Group_5__1__Impl_in_rule__StatemachineTrigger__Group_5__121691 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineTrigger__TransitionAssignment_5_1_in_rule__StatemachineTrigger__Group_5__1__Impl21718 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralBlinkRate__Group__0__Impl_in_rule__StatemachineActionPeripheralBlinkRate__Group__021752 = new BitSet(new long[]{0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralBlinkRate__Group__1_in_rule__StatemachineActionPeripheralBlinkRate__Group__021755 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_150_in_rule__StatemachineActionPeripheralBlinkRate__Group__0__Impl21783 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralBlinkRate__Group__1__Impl_in_rule__StatemachineActionPeripheralBlinkRate__Group__121814 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralBlinkRate__Group__2_in_rule__StatemachineActionPeripheralBlinkRate__Group__121817 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralBlinkRate__BlinkRateAssignment_1_in_rule__StatemachineActionPeripheralBlinkRate__Group__1__Impl21844 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralBlinkRate__Group__2__Impl_in_rule__StatemachineActionPeripheralBlinkRate__Group__221874 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralBlinkRate__Group__3_in_rule__StatemachineActionPeripheralBlinkRate__Group__221877 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralBlinkRate__Group__2__Impl21905 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralBlinkRate__Group__3__Impl_in_rule__StatemachineActionPeripheralBlinkRate__Group__321936 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralBlinkRate__DeviceAssignment_3_in_rule__StatemachineActionPeripheralBlinkRate__Group__3__Impl21963 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralClear__Group__0__Impl_in_rule__StatemachineActionPeripheralClear__Group__022001 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralClear__Group__1_in_rule__StatemachineActionPeripheralClear__Group__022004 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_151_in_rule__StatemachineActionPeripheralClear__Group__0__Impl22032 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralClear__Group__1__Impl_in_rule__StatemachineActionPeripheralClear__Group__122063 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralClear__DeviceAssignment_1_in_rule__StatemachineActionPeripheralClear__Group__1__Impl22090 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__0__Impl_in_rule__StatemachineActionPeripheralCreateWindow__Group__022124 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000002000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__1_in_rule__StatemachineActionPeripheralCreateWindow__Group__022127 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_152_in_rule__StatemachineActionPeripheralCreateWindow__Group__0__Impl22155 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__1__Impl_in_rule__StatemachineActionPeripheralCreateWindow__Group__122186 = new BitSet(new long[]{0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__2_in_rule__StatemachineActionPeripheralCreateWindow__Group__122189 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_153_in_rule__StatemachineActionPeripheralCreateWindow__Group__1__Impl22217 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__2__Impl_in_rule__StatemachineActionPeripheralCreateWindow__Group__222248 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__3_in_rule__StatemachineActionPeripheralCreateWindow__Group__222251 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__ViewportRowAssignment_2_in_rule__StatemachineActionPeripheralCreateWindow__Group__2__Impl22278 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__3__Impl_in_rule__StatemachineActionPeripheralCreateWindow__Group__322308 = new BitSet(new long[]{0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__4_in_rule__StatemachineActionPeripheralCreateWindow__Group__322311 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_154_in_rule__StatemachineActionPeripheralCreateWindow__Group__3__Impl22339 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__4__Impl_in_rule__StatemachineActionPeripheralCreateWindow__Group__422370 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__5_in_rule__StatemachineActionPeripheralCreateWindow__Group__422373 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__ViewportColumnAssignment_4_in_rule__StatemachineActionPeripheralCreateWindow__Group__4__Impl22400 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__5__Impl_in_rule__StatemachineActionPeripheralCreateWindow__Group__522430 = new BitSet(new long[]{0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__6_in_rule__StatemachineActionPeripheralCreateWindow__Group__522433 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_155_in_rule__StatemachineActionPeripheralCreateWindow__Group__5__Impl22461 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__6__Impl_in_rule__StatemachineActionPeripheralCreateWindow__Group__622492 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__7_in_rule__StatemachineActionPeripheralCreateWindow__Group__622495 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__ViewportHeightAssignment_6_in_rule__StatemachineActionPeripheralCreateWindow__Group__6__Impl22522 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__7__Impl_in_rule__StatemachineActionPeripheralCreateWindow__Group__722552 = new BitSet(new long[]{0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__8_in_rule__StatemachineActionPeripheralCreateWindow__Group__722555 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_156_in_rule__StatemachineActionPeripheralCreateWindow__Group__7__Impl22583 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__8__Impl_in_rule__StatemachineActionPeripheralCreateWindow__Group__822614 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000020000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__9_in_rule__StatemachineActionPeripheralCreateWindow__Group__822617 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__ViewportWidthAssignment_8_in_rule__StatemachineActionPeripheralCreateWindow__Group__8__Impl22644 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__9__Impl_in_rule__StatemachineActionPeripheralCreateWindow__Group__922674 = new BitSet(new long[]{0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__10_in_rule__StatemachineActionPeripheralCreateWindow__Group__922677 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_157_in_rule__StatemachineActionPeripheralCreateWindow__Group__9__Impl22705 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__10__Impl_in_rule__StatemachineActionPeripheralCreateWindow__Group__1022736 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000040000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__11_in_rule__StatemachineActionPeripheralCreateWindow__Group__1022739 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__WindowHeightAssignment_10_in_rule__StatemachineActionPeripheralCreateWindow__Group__10__Impl22766 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__11__Impl_in_rule__StatemachineActionPeripheralCreateWindow__Group__1122796 = new BitSet(new long[]{0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__12_in_rule__StatemachineActionPeripheralCreateWindow__Group__1122799 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_158_in_rule__StatemachineActionPeripheralCreateWindow__Group__11__Impl22827 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__12__Impl_in_rule__StatemachineActionPeripheralCreateWindow__Group__1222858 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__13_in_rule__StatemachineActionPeripheralCreateWindow__Group__1222861 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__WindowWidthAssignment_12_in_rule__StatemachineActionPeripheralCreateWindow__Group__12__Impl22888 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__13__Impl_in_rule__StatemachineActionPeripheralCreateWindow__Group__1322918 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__14_in_rule__StatemachineActionPeripheralCreateWindow__Group__1322921 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralCreateWindow__Group__13__Impl22949 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__Group__14__Impl_in_rule__StatemachineActionPeripheralCreateWindow__Group__1422980 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCreateWindow__DeviceAssignment_14_in_rule__StatemachineActionPeripheralCreateWindow__Group__14__Impl23007 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCursorType__Group__0__Impl_in_rule__StatemachineActionPeripheralCursorType__Group__023067 = new BitSet(new long[]{0x0000000000000000L,0x0000000000FF0000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCursorType__Group__1_in_rule__StatemachineActionPeripheralCursorType__Group__023070 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_159_in_rule__StatemachineActionPeripheralCursorType__Group__0__Impl23098 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCursorType__Group__1__Impl_in_rule__StatemachineActionPeripheralCursorType__Group__123129 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCursorType__Group__2_in_rule__StatemachineActionPeripheralCursorType__Group__123132 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCursorType__CursorTypeAssignment_1_in_rule__StatemachineActionPeripheralCursorType__Group__1__Impl23159 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCursorType__Group__2__Impl_in_rule__StatemachineActionPeripheralCursorType__Group__223189 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCursorType__Group__3_in_rule__StatemachineActionPeripheralCursorType__Group__223192 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralCursorType__Group__2__Impl23220 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCursorType__Group__3__Impl_in_rule__StatemachineActionPeripheralCursorType__Group__323251 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralCursorType__DeviceAssignment_3_in_rule__StatemachineActionPeripheralCursorType__Group__3__Impl23278 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDestroyWindow__Group__0__Impl_in_rule__StatemachineActionPeripheralDestroyWindow__Group__023316 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDestroyWindow__Group__1_in_rule__StatemachineActionPeripheralDestroyWindow__Group__023319 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_160_in_rule__StatemachineActionPeripheralDestroyWindow__Group__0__Impl23347 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDestroyWindow__Group__1__Impl_in_rule__StatemachineActionPeripheralDestroyWindow__Group__123378 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDestroyWindow__DeviceAssignment_1_in_rule__StatemachineActionPeripheralDestroyWindow__Group__1__Impl23405 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDeviceBrightness__Group__0__Impl_in_rule__StatemachineActionPeripheralDeviceBrightness__Group__023439 = new BitSet(new long[]{0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDeviceBrightness__Group__1_in_rule__StatemachineActionPeripheralDeviceBrightness__Group__023442 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_161_in_rule__StatemachineActionPeripheralDeviceBrightness__Group__0__Impl23470 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDeviceBrightness__Group__1__Impl_in_rule__StatemachineActionPeripheralDeviceBrightness__Group__123501 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDeviceBrightness__Group__2_in_rule__StatemachineActionPeripheralDeviceBrightness__Group__123504 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets011 {
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDeviceBrightness__BrightnessAssignment_1_in_rule__StatemachineActionPeripheralDeviceBrightness__Group__1__Impl23531 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDeviceBrightness__Group__2__Impl_in_rule__StatemachineActionPeripheralDeviceBrightness__Group__223561 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDeviceBrightness__Group__3_in_rule__StatemachineActionPeripheralDeviceBrightness__Group__223564 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralDeviceBrightness__Group__2__Impl23592 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDeviceBrightness__Group__3__Impl_in_rule__StatemachineActionPeripheralDeviceBrightness__Group__323623 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDeviceBrightness__DeviceAssignment_3_in_rule__StatemachineActionPeripheralDeviceBrightness__Group__3__Impl23650 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayBitmap__Group__0__Impl_in_rule__StatemachineActionPeripheralDisplayBitmap__Group__023688 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000800000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayBitmap__Group__1_in_rule__StatemachineActionPeripheralDisplayBitmap__Group__023691 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_162_in_rule__StatemachineActionPeripheralDisplayBitmap__Group__0__Impl23719 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayBitmap__Group__1__Impl_in_rule__StatemachineActionPeripheralDisplayBitmap__Group__123750 = new BitSet(new long[]{0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayBitmap__Group__2_in_rule__StatemachineActionPeripheralDisplayBitmap__Group__123753 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_163_in_rule__StatemachineActionPeripheralDisplayBitmap__Group__1__Impl23781 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayBitmap__Group__2__Impl_in_rule__StatemachineActionPeripheralDisplayBitmap__Group__223812 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayBitmap__Group__3_in_rule__StatemachineActionPeripheralDisplayBitmap__Group__223815 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayBitmap__BitmapIdAssignment_2_in_rule__StatemachineActionPeripheralDisplayBitmap__Group__2__Impl23842 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayBitmap__Group__3__Impl_in_rule__StatemachineActionPeripheralDisplayBitmap__Group__323872 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayBitmap__Group__4_in_rule__StatemachineActionPeripheralDisplayBitmap__Group__323875 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralDisplayBitmap__Group__3__Impl23903 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayBitmap__Group__4__Impl_in_rule__StatemachineActionPeripheralDisplayBitmap__Group__423934 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayBitmap__DeviceAssignment_4_in_rule__StatemachineActionPeripheralDisplayBitmap__Group__4__Impl23961 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayText__Group__0__Impl_in_rule__StatemachineActionPeripheralDisplayText__Group__024001 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayText__Group__1_in_rule__StatemachineActionPeripheralDisplayText__Group__024004 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_164_in_rule__StatemachineActionPeripheralDisplayText__Group__0__Impl24032 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayText__Group__1__Impl_in_rule__StatemachineActionPeripheralDisplayText__Group__124063 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000000E9004L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayText__Group__2_in_rule__StatemachineActionPeripheralDisplayText__Group__124066 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_165_in_rule__StatemachineActionPeripheralDisplayText__Group__1__Impl24094 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayText__Group__2__Impl_in_rule__StatemachineActionPeripheralDisplayText__Group__224125 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L,0x0000000000000800L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayText__Group__3_in_rule__StatemachineActionPeripheralDisplayText__Group__224128 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayText__TextAssignment_2_in_rule__StatemachineActionPeripheralDisplayText__Group__2__Impl24155 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayText__Group__3__Impl_in_rule__StatemachineActionPeripheralDisplayText__Group__324185 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L,0x0000000000000800L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayText__Group__4_in_rule__StatemachineActionPeripheralDisplayText__Group__324188 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayText__Group_3__0_in_rule__StatemachineActionPeripheralDisplayText__Group__3__Impl24215 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayText__Group__4__Impl_in_rule__StatemachineActionPeripheralDisplayText__Group__424246 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayText__Group__5_in_rule__StatemachineActionPeripheralDisplayText__Group__424249 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralDisplayText__Group__4__Impl24277 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayText__Group__5__Impl_in_rule__StatemachineActionPeripheralDisplayText__Group__524308 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayText__DeviceAssignment_5_in_rule__StatemachineActionPeripheralDisplayText__Group__5__Impl24335 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayText__Group_3__0__Impl_in_rule__StatemachineActionPeripheralDisplayText__Group_3__024377 = new BitSet(new long[]{0x0000000000000000L,0x0000000180A00000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayText__Group_3__1_in_rule__StatemachineActionPeripheralDisplayText__Group_3__024380 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayText__HasTypeAssignment_3_0_in_rule__StatemachineActionPeripheralDisplayText__Group_3__0__Impl24407 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayText__Group_3__1__Impl_in_rule__StatemachineActionPeripheralDisplayText__Group_3__124437 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayText__TextTypeAssignment_3_1_in_rule__StatemachineActionPeripheralDisplayText__Group_3__1__Impl24464 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group__0__Impl_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__024498 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group__1_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__024501 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_166_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__0__Impl24529 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group__1__Impl_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__124560 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000000E9004L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group__2_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__124563 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_165_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__1__Impl24591 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group__2__Impl_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__224622 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000002000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group__3_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__224625 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__TextAssignment_2_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__2__Impl24652 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group__3__Impl_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__324682 = new BitSet(new long[]{0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group__4_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__324685 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_153_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__3__Impl24713 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group__4__Impl_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__424744 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group__5_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__424747 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__RowAssignment_4_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__4__Impl24774 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group__5__Impl_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__524804 = new BitSet(new long[]{0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group__6_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__524807 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_154_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__5__Impl24835 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group__6__Impl_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__624866 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L,0x0000000000000800L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group__7_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__624869 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__ColumnAssignment_6_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__6__Impl24896 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group__7__Impl_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__724926 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L,0x0000000000000800L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group__8_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__724929 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group_7__0_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__7__Impl24956 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group__8__Impl_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__824987 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group__9_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__824990 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__8__Impl25018 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group__9__Impl_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__925049 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__DeviceAssignment_9_in_rule__StatemachineActionPeripheralDisplayTextAt__Group__9__Impl25076 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group_7__0__Impl_in_rule__StatemachineActionPeripheralDisplayTextAt__Group_7__025126 = new BitSet(new long[]{0x0000000000000000L,0x0000000180A00000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group_7__1_in_rule__StatemachineActionPeripheralDisplayTextAt__Group_7__025129 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__HasTypeAssignment_7_0_in_rule__StatemachineActionPeripheralDisplayTextAt__Group_7__0__Impl25156 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__Group_7__1__Impl_in_rule__StatemachineActionPeripheralDisplayTextAt__Group_7__125186 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralDisplayTextAt__TextTypeAssignment_7_1_in_rule__StatemachineActionPeripheralDisplayTextAt__Group_7__1__Impl25213 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralInterCharacterWait__Group__0__Impl_in_rule__StatemachineActionPeripheralInterCharacterWait__Group__025247 = new BitSet(new long[]{0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralInterCharacterWait__Group__1_in_rule__StatemachineActionPeripheralInterCharacterWait__Group__025250 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_167_in_rule__StatemachineActionPeripheralInterCharacterWait__Group__0__Impl25278 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralInterCharacterWait__Group__1__Impl_in_rule__StatemachineActionPeripheralInterCharacterWait__Group__125309 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralInterCharacterWait__Group__2_in_rule__StatemachineActionPeripheralInterCharacterWait__Group__125312 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralInterCharacterWait__WaitAssignment_1_in_rule__StatemachineActionPeripheralInterCharacterWait__Group__1__Impl25339 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralInterCharacterWait__Group__2__Impl_in_rule__StatemachineActionPeripheralInterCharacterWait__Group__225369 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralInterCharacterWait__Group__3_in_rule__StatemachineActionPeripheralInterCharacterWait__Group__225372 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralInterCharacterWait__Group__2__Impl25400 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralInterCharacterWait__Group__3__Impl_in_rule__StatemachineActionPeripheralInterCharacterWait__Group__325431 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralInterCharacterWait__DeviceAssignment_3_in_rule__StatemachineActionPeripheralInterCharacterWait__Group__3__Impl25458 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeFormat__Group__0__Impl_in_rule__StatemachineActionPeripheralMarqueeFormat__Group__025496 = new BitSet(new long[]{0x0000000000000000L,0x0000000060000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeFormat__Group__1_in_rule__StatemachineActionPeripheralMarqueeFormat__Group__025499 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_168_in_rule__StatemachineActionPeripheralMarqueeFormat__Group__0__Impl25527 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeFormat__Group__1__Impl_in_rule__StatemachineActionPeripheralMarqueeFormat__Group__125558 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeFormat__Group__2_in_rule__StatemachineActionPeripheralMarqueeFormat__Group__125561 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeFormat__FormatAssignment_1_in_rule__StatemachineActionPeripheralMarqueeFormat__Group__1__Impl25588 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeFormat__Group__2__Impl_in_rule__StatemachineActionPeripheralMarqueeFormat__Group__225618 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeFormat__Group__3_in_rule__StatemachineActionPeripheralMarqueeFormat__Group__225621 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralMarqueeFormat__Group__2__Impl25649 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeFormat__Group__3__Impl_in_rule__StatemachineActionPeripheralMarqueeFormat__Group__325680 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeFormat__DeviceAssignment_3_in_rule__StatemachineActionPeripheralMarqueeFormat__Group__3__Impl25707 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__0__Impl_in_rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__025745 = new BitSet(new long[]{0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__1_in_rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__025748 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets012 {
        public static final BitSet FOLLOW_169_in_rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__0__Impl25776 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__1__Impl_in_rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__125807 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__2_in_rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__125810 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeRepeatWait__WaitAssignment_1_in_rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__1__Impl25837 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__2__Impl_in_rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__225867 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__3_in_rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__225870 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__2__Impl25898 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__3__Impl_in_rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__325929 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeRepeatWait__DeviceAssignment_3_in_rule__StatemachineActionPeripheralMarqueeRepeatWait__Group__3__Impl25956 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeType__Group__0__Impl_in_rule__StatemachineActionPeripheralMarqueeType__Group__025994 = new BitSet(new long[]{0x0000000000000000L,0x000000001F010000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeType__Group__1_in_rule__StatemachineActionPeripheralMarqueeType__Group__025997 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_170_in_rule__StatemachineActionPeripheralMarqueeType__Group__0__Impl26025 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeType__Group__1__Impl_in_rule__StatemachineActionPeripheralMarqueeType__Group__126056 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeType__Group__2_in_rule__StatemachineActionPeripheralMarqueeType__Group__126059 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeType__MarqueeTypeAssignment_1_in_rule__StatemachineActionPeripheralMarqueeType__Group__1__Impl26086 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeType__Group__2__Impl_in_rule__StatemachineActionPeripheralMarqueeType__Group__226116 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeType__Group__3_in_rule__StatemachineActionPeripheralMarqueeType__Group__226119 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralMarqueeType__Group__2__Impl26147 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeType__Group__3__Impl_in_rule__StatemachineActionPeripheralMarqueeType__Group__326178 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeType__DeviceAssignment_3_in_rule__StatemachineActionPeripheralMarqueeType__Group__3__Impl26205 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeUnitWait__Group__0__Impl_in_rule__StatemachineActionPeripheralMarqueeUnitWait__Group__026243 = new BitSet(new long[]{0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeUnitWait__Group__1_in_rule__StatemachineActionPeripheralMarqueeUnitWait__Group__026246 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_171_in_rule__StatemachineActionPeripheralMarqueeUnitWait__Group__0__Impl26274 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeUnitWait__Group__1__Impl_in_rule__StatemachineActionPeripheralMarqueeUnitWait__Group__126305 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeUnitWait__Group__2_in_rule__StatemachineActionPeripheralMarqueeUnitWait__Group__126308 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeUnitWait__WaitAssignment_1_in_rule__StatemachineActionPeripheralMarqueeUnitWait__Group__1__Impl26335 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeUnitWait__Group__2__Impl_in_rule__StatemachineActionPeripheralMarqueeUnitWait__Group__226365 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeUnitWait__Group__3_in_rule__StatemachineActionPeripheralMarqueeUnitWait__Group__226368 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralMarqueeUnitWait__Group__2__Impl26396 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeUnitWait__Group__3__Impl_in_rule__StatemachineActionPeripheralMarqueeUnitWait__Group__326427 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralMarqueeUnitWait__DeviceAssignment_3_in_rule__StatemachineActionPeripheralMarqueeUnitWait__Group__3__Impl26454 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralScroll__Group__0__Impl_in_rule__StatemachineActionPeripheralScroll__Group__026492 = new BitSet(new long[]{0x0000000000000000L,0x000000000F000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralScroll__Group__1_in_rule__StatemachineActionPeripheralScroll__Group__026495 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_172_in_rule__StatemachineActionPeripheralScroll__Group__0__Impl26523 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralScroll__Group__1__Impl_in_rule__StatemachineActionPeripheralScroll__Group__126554 = new BitSet(new long[]{0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralScroll__Group__2_in_rule__StatemachineActionPeripheralScroll__Group__126557 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralScroll__DirectionAssignment_1_in_rule__StatemachineActionPeripheralScroll__Group__1__Impl26584 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralScroll__Group__2__Impl_in_rule__StatemachineActionPeripheralScroll__Group__226614 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralScroll__Group__3_in_rule__StatemachineActionPeripheralScroll__Group__226617 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralScroll__UnitsAssignment_2_in_rule__StatemachineActionPeripheralScroll__Group__2__Impl26644 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralScroll__Group__3__Impl_in_rule__StatemachineActionPeripheralScroll__Group__326674 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralScroll__Group__4_in_rule__StatemachineActionPeripheralScroll__Group__326677 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralScroll__Group__3__Impl26705 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralScroll__Group__4__Impl_in_rule__StatemachineActionPeripheralScroll__Group__426736 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralScroll__DeviceAssignment_4_in_rule__StatemachineActionPeripheralScroll__Group__4__Impl26763 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralOpenDrawer__Group__0__Impl_in_rule__StatemachineActionPeripheralOpenDrawer__Group__026803 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralOpenDrawer__Group__1_in_rule__StatemachineActionPeripheralOpenDrawer__Group__026806 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_173_in_rule__StatemachineActionPeripheralOpenDrawer__Group__0__Impl26834 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralOpenDrawer__Group__1__Impl_in_rule__StatemachineActionPeripheralOpenDrawer__Group__126865 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralOpenDrawer__DeviceAssignment_1_in_rule__StatemachineActionPeripheralOpenDrawer__Group__1__Impl26892 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBarcode__Group__0__Impl_in_rule__StatemachineActionPeripheralPrintBarcode__Group__026926 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBarcode__Group__1_in_rule__StatemachineActionPeripheralPrintBarcode__Group__026929 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_174_in_rule__StatemachineActionPeripheralPrintBarcode__Group__0__Impl26957 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBarcode__Group__1__Impl_in_rule__StatemachineActionPeripheralPrintBarcode__Group__126988 = new BitSet(new long[]{0x0000000000000020L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBarcode__Group__2_in_rule__StatemachineActionPeripheralPrintBarcode__Group__126991 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_175_in_rule__StatemachineActionPeripheralPrintBarcode__Group__1__Impl27019 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBarcode__Group__2__Impl_in_rule__StatemachineActionPeripheralPrintBarcode__Group__227050 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBarcode__Group__3_in_rule__StatemachineActionPeripheralPrintBarcode__Group__227053 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBarcode__DataAssignment_2_in_rule__StatemachineActionPeripheralPrintBarcode__Group__2__Impl27080 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBarcode__Group__3__Impl_in_rule__StatemachineActionPeripheralPrintBarcode__Group__327110 = new BitSet(new long[]{0x0000000000000000L,0xFFFFFFFE00000000L,0x000000000000001FL});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBarcode__Group__4_in_rule__StatemachineActionPeripheralPrintBarcode__Group__327113 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_176_in_rule__StatemachineActionPeripheralPrintBarcode__Group__3__Impl27141 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBarcode__Group__4__Impl_in_rule__StatemachineActionPeripheralPrintBarcode__Group__427172 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBarcode__Group__5_in_rule__StatemachineActionPeripheralPrintBarcode__Group__427175 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBarcode__BarcodeTypeAssignment_4_in_rule__StatemachineActionPeripheralPrintBarcode__Group__4__Impl27202 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBarcode__Group__5__Impl_in_rule__StatemachineActionPeripheralPrintBarcode__Group__527232 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBarcode__Group__6_in_rule__StatemachineActionPeripheralPrintBarcode__Group__527235 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralPrintBarcode__Group__5__Impl27263 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBarcode__Group__6__Impl_in_rule__StatemachineActionPeripheralPrintBarcode__Group__627294 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBarcode__DeviceAssignment_6_in_rule__StatemachineActionPeripheralPrintBarcode__Group__6__Impl27321 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBitmap__Group__0__Impl_in_rule__StatemachineActionPeripheralPrintBitmap__Group__027365 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000800000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBitmap__Group__1_in_rule__StatemachineActionPeripheralPrintBitmap__Group__027368 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_177_in_rule__StatemachineActionPeripheralPrintBitmap__Group__0__Impl27396 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBitmap__Group__1__Impl_in_rule__StatemachineActionPeripheralPrintBitmap__Group__127427 = new BitSet(new long[]{0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBitmap__Group__2_in_rule__StatemachineActionPeripheralPrintBitmap__Group__127430 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_163_in_rule__StatemachineActionPeripheralPrintBitmap__Group__1__Impl27458 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBitmap__Group__2__Impl_in_rule__StatemachineActionPeripheralPrintBitmap__Group__227489 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBitmap__Group__3_in_rule__StatemachineActionPeripheralPrintBitmap__Group__227492 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBitmap__BitmapIdAssignment_2_in_rule__StatemachineActionPeripheralPrintBitmap__Group__2__Impl27519 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBitmap__Group__3__Impl_in_rule__StatemachineActionPeripheralPrintBitmap__Group__327549 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBitmap__Group__4_in_rule__StatemachineActionPeripheralPrintBitmap__Group__327552 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralPrintBitmap__Group__3__Impl27580 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBitmap__Group__4__Impl_in_rule__StatemachineActionPeripheralPrintBitmap__Group__427611 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintBitmap__DeviceAssignment_4_in_rule__StatemachineActionPeripheralPrintBitmap__Group__4__Impl27638 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintCut__Group__0__Impl_in_rule__StatemachineActionPeripheralPrintCut__Group__027678 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintCut__Group__1_in_rule__StatemachineActionPeripheralPrintCut__Group__027681 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_178_in_rule__StatemachineActionPeripheralPrintCut__Group__0__Impl27709 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintCut__Group__1__Impl_in_rule__StatemachineActionPeripheralPrintCut__Group__127740 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000000E9004L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintCut__Group__2_in_rule__StatemachineActionPeripheralPrintCut__Group__127743 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_165_in_rule__StatemachineActionPeripheralPrintCut__Group__1__Impl27771 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintCut__Group__2__Impl_in_rule__StatemachineActionPeripheralPrintCut__Group__227802 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintCut__Group__3_in_rule__StatemachineActionPeripheralPrintCut__Group__227805 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintCut__TextAssignment_2_in_rule__StatemachineActionPeripheralPrintCut__Group__2__Impl27832 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintCut__Group__3__Impl_in_rule__StatemachineActionPeripheralPrintCut__Group__327862 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintCut__Group__4_in_rule__StatemachineActionPeripheralPrintCut__Group__327865 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralPrintCut__Group__3__Impl27893 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintCut__Group__4__Impl_in_rule__StatemachineActionPeripheralPrintCut__Group__427924 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintCut__DeviceAssignment_4_in_rule__StatemachineActionPeripheralPrintCut__Group__4__Impl27951 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintNormal__Group__0__Impl_in_rule__StatemachineActionPeripheralPrintNormal__Group__027991 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintNormal__Group__1_in_rule__StatemachineActionPeripheralPrintNormal__Group__027994 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets013 {
        public static final BitSet FOLLOW_179_in_rule__StatemachineActionPeripheralPrintNormal__Group__0__Impl28022 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintNormal__Group__1__Impl_in_rule__StatemachineActionPeripheralPrintNormal__Group__128053 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000000E9004L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintNormal__Group__2_in_rule__StatemachineActionPeripheralPrintNormal__Group__128056 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_165_in_rule__StatemachineActionPeripheralPrintNormal__Group__1__Impl28084 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintNormal__Group__2__Impl_in_rule__StatemachineActionPeripheralPrintNormal__Group__228115 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintNormal__Group__3_in_rule__StatemachineActionPeripheralPrintNormal__Group__228118 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintNormal__TextAssignment_2_in_rule__StatemachineActionPeripheralPrintNormal__Group__2__Impl28145 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintNormal__Group__3__Impl_in_rule__StatemachineActionPeripheralPrintNormal__Group__328175 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintNormal__Group__4_in_rule__StatemachineActionPeripheralPrintNormal__Group__328178 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralPrintNormal__Group__3__Impl28206 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintNormal__Group__4__Impl_in_rule__StatemachineActionPeripheralPrintNormal__Group__428237 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintNormal__DeviceAssignment_4_in_rule__StatemachineActionPeripheralPrintNormal__Group__4__Impl28264 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__0__Impl_in_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__028304 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000800000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__1_in_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__028307 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_180_in_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__0__Impl28335 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__1__Impl_in_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__128366 = new BitSet(new long[]{0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__2_in_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__128369 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_163_in_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__1__Impl28397 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__2__Impl_in_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__228428 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__3_in_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__228431 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintRegisterBitmap__BitmapIdAssignment_2_in_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__2__Impl28458 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__3__Impl_in_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__328488 = new BitSet(new long[]{0x0000000000000020L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__4_in_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__328491 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_181_in_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__3__Impl28519 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__4__Impl_in_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__428550 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__5_in_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__428553 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintRegisterBitmap__NameAssignment_4_in_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__4__Impl28580 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__5__Impl_in_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__528610 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__6_in_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__528613 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__5__Impl28641 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__6__Impl_in_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__628672 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintRegisterBitmap__DeviceAssignment_6_in_rule__StatemachineActionPeripheralPrintRegisterBitmap__Group__6__Impl28699 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTOpen__Group__0__Impl_in_rule__StatemachineActionPeripheralPTOpen__Group__028743 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTOpen__Group__1_in_rule__StatemachineActionPeripheralPTOpen__Group__028746 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_182_in_rule__StatemachineActionPeripheralPTOpen__Group__0__Impl28774 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTOpen__Group__1__Impl_in_rule__StatemachineActionPeripheralPTOpen__Group__128805 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000000E9004L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTOpen__Group__2_in_rule__StatemachineActionPeripheralPTOpen__Group__128808 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_183_in_rule__StatemachineActionPeripheralPTOpen__Group__1__Impl28836 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTOpen__Group__2__Impl_in_rule__StatemachineActionPeripheralPTOpen__Group__228867 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTOpen__Group__3_in_rule__StatemachineActionPeripheralPTOpen__Group__228870 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTOpen__HostAssignment_2_in_rule__StatemachineActionPeripheralPTOpen__Group__2__Impl28897 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTOpen__Group__3__Impl_in_rule__StatemachineActionPeripheralPTOpen__Group__328927 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000000E9004L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTOpen__Group__4_in_rule__StatemachineActionPeripheralPTOpen__Group__328930 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_184_in_rule__StatemachineActionPeripheralPTOpen__Group__3__Impl28958 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTOpen__Group__4__Impl_in_rule__StatemachineActionPeripheralPTOpen__Group__428989 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTOpen__Group__5_in_rule__StatemachineActionPeripheralPTOpen__Group__428992 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTOpen__PortAssignment_4_in_rule__StatemachineActionPeripheralPTOpen__Group__4__Impl29019 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTOpen__Group__5__Impl_in_rule__StatemachineActionPeripheralPTOpen__Group__529049 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTOpen__Group__6_in_rule__StatemachineActionPeripheralPTOpen__Group__529052 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralPTOpen__Group__5__Impl29080 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTOpen__Group__6__Impl_in_rule__StatemachineActionPeripheralPTOpen__Group__629111 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTOpen__DeviceAssignment_6_in_rule__StatemachineActionPeripheralPTOpen__Group__6__Impl29138 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTClose__Group__0__Impl_in_rule__StatemachineActionPeripheralPTClose__Group__029182 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTClose__Group__1_in_rule__StatemachineActionPeripheralPTClose__Group__029185 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_185_in_rule__StatemachineActionPeripheralPTClose__Group__0__Impl29213 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTClose__Group__1__Impl_in_rule__StatemachineActionPeripheralPTClose__Group__129244 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTClose__Group__2_in_rule__StatemachineActionPeripheralPTClose__Group__129247 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralPTClose__Group__1__Impl29275 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTClose__Group__2__Impl_in_rule__StatemachineActionPeripheralPTClose__Group__229306 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTClose__DeviceAssignment_2_in_rule__StatemachineActionPeripheralPTClose__Group__2__Impl29333 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTAcknowledge__Group__0__Impl_in_rule__StatemachineActionPeripheralPTAcknowledge__Group__029369 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTAcknowledge__Group__1_in_rule__StatemachineActionPeripheralPTAcknowledge__Group__029372 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_186_in_rule__StatemachineActionPeripheralPTAcknowledge__Group__0__Impl29400 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTAcknowledge__Group__1__Impl_in_rule__StatemachineActionPeripheralPTAcknowledge__Group__129431 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTAcknowledge__Group__2_in_rule__StatemachineActionPeripheralPTAcknowledge__Group__129434 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralPTAcknowledge__Group__1__Impl29462 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTAcknowledge__Group__2__Impl_in_rule__StatemachineActionPeripheralPTAcknowledge__Group__229493 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTAcknowledge__DeviceAssignment_2_in_rule__StatemachineActionPeripheralPTAcknowledge__Group__2__Impl29520 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTReversal__Group__0__Impl_in_rule__StatemachineActionPeripheralPTReversal__Group__029556 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x1000000000000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTReversal__Group__1_in_rule__StatemachineActionPeripheralPTReversal__Group__029559 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_187_in_rule__StatemachineActionPeripheralPTReversal__Group__0__Impl29587 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTReversal__Group__1__Impl_in_rule__StatemachineActionPeripheralPTReversal__Group__129618 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000000E9004L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTReversal__Group__2_in_rule__StatemachineActionPeripheralPTReversal__Group__129621 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_188_in_rule__StatemachineActionPeripheralPTReversal__Group__1__Impl29649 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTReversal__Group__2__Impl_in_rule__StatemachineActionPeripheralPTReversal__Group__229680 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x2000000000000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTReversal__Group__3_in_rule__StatemachineActionPeripheralPTReversal__Group__229683 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTReversal__PasswordAssignment_2_in_rule__StatemachineActionPeripheralPTReversal__Group__2__Impl29710 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTReversal__Group__3__Impl_in_rule__StatemachineActionPeripheralPTReversal__Group__329740 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000000E9004L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTReversal__Group__4_in_rule__StatemachineActionPeripheralPTReversal__Group__329743 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_189_in_rule__StatemachineActionPeripheralPTReversal__Group__3__Impl29771 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTReversal__Group__4__Impl_in_rule__StatemachineActionPeripheralPTReversal__Group__429802 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTReversal__Group__5_in_rule__StatemachineActionPeripheralPTReversal__Group__429805 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTReversal__ReceiptAssignment_4_in_rule__StatemachineActionPeripheralPTReversal__Group__4__Impl29832 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTReversal__Group__5__Impl_in_rule__StatemachineActionPeripheralPTReversal__Group__529862 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTReversal__Group__6_in_rule__StatemachineActionPeripheralPTReversal__Group__529865 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralPTReversal__Group__5__Impl29893 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTReversal__Group__6__Impl_in_rule__StatemachineActionPeripheralPTReversal__Group__629924 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTReversal__DeviceAssignment_6_in_rule__StatemachineActionPeripheralPTReversal__Group__6__Impl29951 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTRegistration__Group__0__Impl_in_rule__StatemachineActionPeripheralPTRegistration__Group__029995 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x1000000000000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTRegistration__Group__1_in_rule__StatemachineActionPeripheralPTRegistration__Group__029998 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_190_in_rule__StatemachineActionPeripheralPTRegistration__Group__0__Impl30026 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTRegistration__Group__1__Impl_in_rule__StatemachineActionPeripheralPTRegistration__Group__130057 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000000E9004L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTRegistration__Group__2_in_rule__StatemachineActionPeripheralPTRegistration__Group__130060 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_188_in_rule__StatemachineActionPeripheralPTRegistration__Group__1__Impl30088 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTRegistration__Group__2__Impl_in_rule__StatemachineActionPeripheralPTRegistration__Group__230119 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTRegistration__Group__3_in_rule__StatemachineActionPeripheralPTRegistration__Group__230122 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTRegistration__PasswordAssignment_2_in_rule__StatemachineActionPeripheralPTRegistration__Group__2__Impl30149 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTRegistration__Group__3__Impl_in_rule__StatemachineActionPeripheralPTRegistration__Group__330179 = new BitSet(new long[]{0x0000000000000020L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTRegistration__Group__4_in_rule__StatemachineActionPeripheralPTRegistration__Group__330182 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_191_in_rule__StatemachineActionPeripheralPTRegistration__Group__3__Impl30210 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets014 {
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTRegistration__Group__4__Impl_in_rule__StatemachineActionPeripheralPTRegistration__Group__430241 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTRegistration__Group__5_in_rule__StatemachineActionPeripheralPTRegistration__Group__430244 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTRegistration__ConfigurationAssignment_4_in_rule__StatemachineActionPeripheralPTRegistration__Group__4__Impl30271 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTRegistration__Group__5__Impl_in_rule__StatemachineActionPeripheralPTRegistration__Group__530301 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTRegistration__Group__6_in_rule__StatemachineActionPeripheralPTRegistration__Group__530304 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralPTRegistration__Group__5__Impl30332 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTRegistration__Group__6__Impl_in_rule__StatemachineActionPeripheralPTRegistration__Group__630363 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTRegistration__DeviceAssignment_6_in_rule__StatemachineActionPeripheralPTRegistration__Group__6__Impl30390 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTAuthorization__Group__0__Impl_in_rule__StatemachineActionPeripheralPTAuthorization__Group__030434 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTAuthorization__Group__1_in_rule__StatemachineActionPeripheralPTAuthorization__Group__030437 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_192_in_rule__StatemachineActionPeripheralPTAuthorization__Group__0__Impl30465 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTAuthorization__Group__1__Impl_in_rule__StatemachineActionPeripheralPTAuthorization__Group__130496 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000000E9004L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTAuthorization__Group__2_in_rule__StatemachineActionPeripheralPTAuthorization__Group__130499 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_193_in_rule__StatemachineActionPeripheralPTAuthorization__Group__1__Impl30527 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTAuthorization__Group__2__Impl_in_rule__StatemachineActionPeripheralPTAuthorization__Group__230558 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTAuthorization__Group__3_in_rule__StatemachineActionPeripheralPTAuthorization__Group__230561 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTAuthorization__AmountAssignment_2_in_rule__StatemachineActionPeripheralPTAuthorization__Group__2__Impl30588 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTAuthorization__Group__3__Impl_in_rule__StatemachineActionPeripheralPTAuthorization__Group__330618 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTAuthorization__Group__4_in_rule__StatemachineActionPeripheralPTAuthorization__Group__330621 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionPeripheralPTAuthorization__Group__3__Impl30649 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTAuthorization__Group__4__Impl_in_rule__StatemachineActionPeripheralPTAuthorization__Group__430680 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTAuthorization__DeviceAssignment_4_in_rule__StatemachineActionPeripheralPTAuthorization__Group__4__Impl30707 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTResponse__Group__0__Impl_in_rule__StatemachineActionPeripheralPTResponse__Group__030747 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000008L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTResponse__Group__1_in_rule__StatemachineActionPeripheralPTResponse__Group__030750 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_194_in_rule__StatemachineActionPeripheralPTResponse__Group__0__Impl30778 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTResponse__Group__1__Impl_in_rule__StatemachineActionPeripheralPTResponse__Group__130809 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTResponse__Group__2_in_rule__StatemachineActionPeripheralPTResponse__Group__130812 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_195_in_rule__StatemachineActionPeripheralPTResponse__Group__1__Impl30840 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTResponse__Group__2__Impl_in_rule__StatemachineActionPeripheralPTResponse__Group__230871 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPTResponse__DeviceAssignment_2_in_rule__StatemachineActionPeripheralPTResponse__Group__2__Impl30898 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintReport__Group__0__Impl_in_rule__StatemachineActionPeripheralPrintReport__Group__030934 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintReport__Group__1_in_rule__StatemachineActionPeripheralPrintReport__Group__030937 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_196_in_rule__StatemachineActionPeripheralPrintReport__Group__0__Impl30965 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintReport__Group__1__Impl_in_rule__StatemachineActionPeripheralPrintReport__Group__130996 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000008L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintReport__Group__2_in_rule__StatemachineActionPeripheralPrintReport__Group__130999 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintReport__ReportAssignment_1_in_rule__StatemachineActionPeripheralPrintReport__Group__1__Impl31026 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintReport__Group__2__Impl_in_rule__StatemachineActionPeripheralPrintReport__Group__231056 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintReport__Group_2__0_in_rule__StatemachineActionPeripheralPrintReport__Group__2__Impl31083 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintReport__Group_2__0__Impl_in_rule__StatemachineActionPeripheralPrintReport__Group_2__031120 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintReport__Group_2__1_in_rule__StatemachineActionPeripheralPrintReport__Group_2__031123 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintReport__HasFilterAssignment_2_0_in_rule__StatemachineActionPeripheralPrintReport__Group_2__0__Impl31150 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintReport__Group_2__1__Impl_in_rule__StatemachineActionPeripheralPrintReport__Group_2__131180 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionPeripheralPrintReport__KeyAssignment_2_1_in_rule__StatemachineActionPeripheralPrintReport__Group_2__1__Impl31207 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperation__Group__0__Impl_in_rule__StatemachineOperation__Group__031241 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineOperation__Group__1_in_rule__StatemachineOperation__Group__031244 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_197_in_rule__StatemachineOperation__Group__0__Impl31272 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperation__Group__1__Impl_in_rule__StatemachineOperation__Group__131303 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__StatemachineOperation__Group__2_in_rule__StatemachineOperation__Group__131306 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperation__OperationAssignment_1_in_rule__StatemachineOperation__Group__1__Impl31333 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperation__Group__2__Impl_in_rule__StatemachineOperation__Group__231363 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000001E9084L});
        public static final BitSet FOLLOW_rule__StatemachineOperation__Group__3_in_rule__StatemachineOperation__Group__231366 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_198_in_rule__StatemachineOperation__Group__2__Impl31394 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperation__Group__3__Impl_in_rule__StatemachineOperation__Group__331425 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000001E9084L});
        public static final BitSet FOLLOW_rule__StatemachineOperation__Group__4_in_rule__StatemachineOperation__Group__331428 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperation__FirstAssignment_3_in_rule__StatemachineOperation__Group__3__Impl31455 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperation__Group__4__Impl_in_rule__StatemachineOperation__Group__431486 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000001E9084L});
        public static final BitSet FOLLOW_rule__StatemachineOperation__Group__5_in_rule__StatemachineOperation__Group__431489 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperation__MoreAssignment_4_in_rule__StatemachineOperation__Group__4__Impl31516 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
        public static final BitSet FOLLOW_rule__StatemachineOperation__Group__5__Impl_in_rule__StatemachineOperation__Group__531547 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_199_in_rule__StatemachineOperation__Group__5__Impl31575 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__Group__0__Impl_in_rule__StatemachineGuard__Group__031618 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__Group__1_in_rule__StatemachineGuard__Group__031621 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_200_in_rule__StatemachineGuard__Group__0__Impl31649 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__Group__1__Impl_in_rule__StatemachineGuard__Group__131680 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__Group__2_in_rule__StatemachineGuard__Group__131683 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__GuardAssignment_1_in_rule__StatemachineGuard__Group__1__Impl31710 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__Group__2__Impl_in_rule__StatemachineGuard__Group__231740 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__Group_2__0_in_rule__StatemachineGuard__Group__2__Impl31767 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__Group_2__0__Impl_in_rule__StatemachineGuard__Group_2__031804 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__Group_2__1_in_rule__StatemachineGuard__Group_2__031807 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__HasOnFailAssignment_2_0_in_rule__StatemachineGuard__Group_2__0__Impl31834 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__Group_2__1__Impl_in_rule__StatemachineGuard__Group_2__131864 = new BitSet(new long[]{0x0000000000000020L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__Group_2__2_in_rule__StatemachineGuard__Group_2__131867 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_201_in_rule__StatemachineGuard__Group_2__1__Impl31895 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__Group_2__2__Impl_in_rule__StatemachineGuard__Group_2__231926 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__Group_2__3_in_rule__StatemachineGuard__Group_2__231929 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__OnFailCaptionAssignment_2_2_in_rule__StatemachineGuard__Group_2__2__Impl31956 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__Group_2__3__Impl_in_rule__StatemachineGuard__Group_2__331986 = new BitSet(new long[]{0x0000000000000020L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__Group_2__4_in_rule__StatemachineGuard__Group_2__331989 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_202_in_rule__StatemachineGuard__Group_2__3__Impl32017 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__Group_2__4__Impl_in_rule__StatemachineGuard__Group_2__432048 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000800L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__Group_2__5_in_rule__StatemachineGuard__Group_2__432051 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__OnFailDescriptionAssignment_2_4_in_rule__StatemachineGuard__Group_2__4__Impl32078 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__Group_2__5__Impl_in_rule__StatemachineGuard__Group_2__532108 = new BitSet(new long[]{0x0000000000000000L,0x000000000000F800L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__Group_2__6_in_rule__StatemachineGuard__Group_2__532111 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_203_in_rule__StatemachineGuard__Group_2__5__Impl32139 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__Group_2__6__Impl_in_rule__StatemachineGuard__Group_2__632170 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineGuard__OnFailTypeAssignment_2_6_in_rule__StatemachineGuard__Group_2__6__Impl32197 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineFunction__Group__0__Impl_in_rule__StatemachineFunction__Group__032241 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineFunction__Group__1_in_rule__StatemachineFunction__Group__032244 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_204_in_rule__StatemachineFunction__Group__0__Impl32272 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineFunction__Group__1__Impl_in_rule__StatemachineFunction__Group__132303 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__StatemachineFunction__Group__2_in_rule__StatemachineFunction__Group__132306 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineFunction__FunctionAssignment_1_in_rule__StatemachineFunction__Group__1__Impl32333 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineFunction__Group__2__Impl_in_rule__StatemachineFunction__Group__232363 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000001E9084L});
        public static final BitSet FOLLOW_rule__StatemachineFunction__Group__3_in_rule__StatemachineFunction__Group__232366 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_198_in_rule__StatemachineFunction__Group__2__Impl32394 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineFunction__Group__3__Impl_in_rule__StatemachineFunction__Group__332425 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000001E9084L});
        public static final BitSet FOLLOW_rule__StatemachineFunction__Group__4_in_rule__StatemachineFunction__Group__332428 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineFunction__FirstAssignment_3_in_rule__StatemachineFunction__Group__3__Impl32455 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets015 {
        public static final BitSet FOLLOW_rule__StatemachineFunction__Group__4__Impl_in_rule__StatemachineFunction__Group__432486 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000001E9084L});
        public static final BitSet FOLLOW_rule__StatemachineFunction__Group__5_in_rule__StatemachineFunction__Group__432489 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineFunction__MoreAssignment_4_in_rule__StatemachineFunction__Group__4__Impl32516 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
        public static final BitSet FOLLOW_rule__StatemachineFunction__Group__5__Impl_in_rule__StatemachineFunction__Group__532547 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_199_in_rule__StatemachineFunction__Group__5__Impl32575 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorage__Group__0__Impl_in_rule__StatemachineStorage__Group__032618 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000000E9004L});
        public static final BitSet FOLLOW_rule__StatemachineStorage__Group__1_in_rule__StatemachineStorage__Group__032621 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_205_in_rule__StatemachineStorage__Group__0__Impl32649 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorage__Group__1__Impl_in_rule__StatemachineStorage__Group__132680 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
        public static final BitSet FOLLOW_rule__StatemachineStorage__Group__2_in_rule__StatemachineStorage__Group__132683 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorage__ContentAssignment_1_in_rule__StatemachineStorage__Group__1__Impl32710 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorage__Group__2__Impl_in_rule__StatemachineStorage__Group__232740 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineStorage__Group__3_in_rule__StatemachineStorage__Group__232743 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_206_in_rule__StatemachineStorage__Group__2__Impl32771 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorage__Group__3__Impl_in_rule__StatemachineStorage__Group__332802 = new BitSet(new long[]{0x0000080000000000L});
        public static final BitSet FOLLOW_rule__StatemachineStorage__Group__4_in_rule__StatemachineStorage__Group__332805 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorage__KeyAssignment_3_in_rule__StatemachineStorage__Group__3__Impl32832 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorage__Group__4__Impl_in_rule__StatemachineStorage__Group__432862 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineStorage__Group__5_in_rule__StatemachineStorage__Group__432865 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__StatemachineStorage__Group__4__Impl32893 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorage__Group__5__Impl_in_rule__StatemachineStorage__Group__532924 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorage__AttributeAssignment_5_in_rule__StatemachineStorage__Group__5__Impl32951 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieve__Group__0__Impl_in_rule__StatemachineStorageRetrieve__Group__032993 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000008L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieve__Group__1_in_rule__StatemachineStorageRetrieve__Group__032996 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_207_in_rule__StatemachineStorageRetrieve__Group__0__Impl33024 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieve__Group__1__Impl_in_rule__StatemachineStorageRetrieve__Group__133055 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieve__Group__2_in_rule__StatemachineStorageRetrieve__Group__133058 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_195_in_rule__StatemachineStorageRetrieve__Group__1__Impl33086 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieve__Group__2__Impl_in_rule__StatemachineStorageRetrieve__Group__233117 = new BitSet(new long[]{0x0000080000000000L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieve__Group__3_in_rule__StatemachineStorageRetrieve__Group__233120 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieve__KeyAssignment_2_in_rule__StatemachineStorageRetrieve__Group__2__Impl33147 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieve__Group__3__Impl_in_rule__StatemachineStorageRetrieve__Group__333177 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieve__Group__4_in_rule__StatemachineStorageRetrieve__Group__333180 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__StatemachineStorageRetrieve__Group__3__Impl33208 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieve__Group__4__Impl_in_rule__StatemachineStorageRetrieve__Group__433239 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieve__AttributeAssignment_4_in_rule__StatemachineStorageRetrieve__Group__4__Impl33266 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionConditionalTransition__Group__0__Impl_in_rule__StatemachineActionConditionalTransition__Group__033306 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionConditionalTransition__Group__1_in_rule__StatemachineActionConditionalTransition__Group__033309 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_208_in_rule__StatemachineActionConditionalTransition__Group__0__Impl33337 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionConditionalTransition__Group__1__Impl_in_rule__StatemachineActionConditionalTransition__Group__133368 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
        public static final BitSet FOLLOW_rule__StatemachineActionConditionalTransition__Group__2_in_rule__StatemachineActionConditionalTransition__Group__133371 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionConditionalTransition__TransitionAssignment_1_in_rule__StatemachineActionConditionalTransition__Group__1__Impl33398 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionConditionalTransition__Group__2__Impl_in_rule__StatemachineActionConditionalTransition__Group__233428 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__StatemachineActionConditionalTransition__Group__3_in_rule__StatemachineActionConditionalTransition__Group__233431 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionConditionalTransition__GuardAssignment_2_in_rule__StatemachineActionConditionalTransition__Group__2__Impl33458 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionConditionalTransition__Group__3__Impl_in_rule__StatemachineActionConditionalTransition__Group__333488 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4E5E7FD781C00080L,0x000000002FE12231L});
        public static final BitSet FOLLOW_rule__StatemachineActionConditionalTransition__Group__4_in_rule__StatemachineActionConditionalTransition__Group__333491 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_134_in_rule__StatemachineActionConditionalTransition__Group__3__Impl33519 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionConditionalTransition__Group__4__Impl_in_rule__StatemachineActionConditionalTransition__Group__433550 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4E5E7FD781C00080L,0x000000002FE12231L});
        public static final BitSet FOLLOW_rule__StatemachineActionConditionalTransition__Group__5_in_rule__StatemachineActionConditionalTransition__Group__433553 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionConditionalTransition__ActionsAssignment_4_in_rule__StatemachineActionConditionalTransition__Group__4__Impl33580 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x4E5E7FD781C00000L,0x000000002FE12231L});
        public static final BitSet FOLLOW_rule__StatemachineActionConditionalTransition__Group__5__Impl_in_rule__StatemachineActionConditionalTransition__Group__533611 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_135_in_rule__StatemachineActionConditionalTransition__Group__5__Impl33639 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceEvent__Group__0__Impl_in_rule__StatemachineActionFieldSourceEvent__Group__033682 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000008000L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceEvent__Group__1_in_rule__StatemachineActionFieldSourceEvent__Group__033685 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceEvent__Group__1__Impl_in_rule__StatemachineActionFieldSourceEvent__Group__133743 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_143_in_rule__StatemachineActionFieldSourceEvent__Group__1__Impl33771 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceTranslate__Group__0__Impl_in_rule__StatemachineActionFieldSourceTranslate__Group__033806 = new BitSet(new long[]{0x0000000000000020L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceTranslate__Group__1_in_rule__StatemachineActionFieldSourceTranslate__Group__033809 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_209_in_rule__StatemachineActionFieldSourceTranslate__Group__0__Impl33837 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceTranslate__Group__1__Impl_in_rule__StatemachineActionFieldSourceTranslate__Group__133868 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceTranslate__TextAssignment_1_in_rule__StatemachineActionFieldSourceTranslate__Group__1__Impl33895 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttribute__Group__0__Impl_in_rule__StatemachineActionFieldSourceDtoAttribute__Group__033929 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttribute__Group__1_in_rule__StatemachineActionFieldSourceDtoAttribute__Group__033932 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_210_in_rule__StatemachineActionFieldSourceDtoAttribute__Group__0__Impl33960 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttribute__Group__1__Impl_in_rule__StatemachineActionFieldSourceDtoAttribute__Group__133991 = new BitSet(new long[]{0x0000080000000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttribute__Group__2_in_rule__StatemachineActionFieldSourceDtoAttribute__Group__133994 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttribute__DtoAssignment_1_in_rule__StatemachineActionFieldSourceDtoAttribute__Group__1__Impl34021 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttribute__Group__2__Impl_in_rule__StatemachineActionFieldSourceDtoAttribute__Group__234051 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttribute__Group__3_in_rule__StatemachineActionFieldSourceDtoAttribute__Group__234054 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__StatemachineActionFieldSourceDtoAttribute__Group__2__Impl34082 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttribute__Group__3__Impl_in_rule__StatemachineActionFieldSourceDtoAttribute__Group__334113 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttribute__AttributeAssignment_3_in_rule__StatemachineActionFieldSourceDtoAttribute__Group__3__Impl34140 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceStringMore__Group__0__Impl_in_rule__StatemachineActionFieldSourceStringMore__Group__034178 = new BitSet(new long[]{0x0000000400000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceStringMore__Group__1_in_rule__StatemachineActionFieldSourceStringMore__Group__034181 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceStringMore__Group__1__Impl_in_rule__StatemachineActionFieldSourceStringMore__Group__134239 = new BitSet(new long[]{0x0000000000000020L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceStringMore__Group__2_in_rule__StatemachineActionFieldSourceStringMore__Group__134242 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_34_in_rule__StatemachineActionFieldSourceStringMore__Group__1__Impl34270 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceStringMore__Group__2__Impl_in_rule__StatemachineActionFieldSourceStringMore__Group__234301 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceStringMore__TextAssignment_2_in_rule__StatemachineActionFieldSourceStringMore__Group__2__Impl34328 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceNumberMore__Group__0__Impl_in_rule__StatemachineActionFieldSourceNumberMore__Group__034364 = new BitSet(new long[]{0x0000000400000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceNumberMore__Group__1_in_rule__StatemachineActionFieldSourceNumberMore__Group__034367 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceNumberMore__Group__1__Impl_in_rule__StatemachineActionFieldSourceNumberMore__Group__134425 = new BitSet(new long[]{0x0000000800000080L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceNumberMore__Group__2_in_rule__StatemachineActionFieldSourceNumberMore__Group__134428 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_34_in_rule__StatemachineActionFieldSourceNumberMore__Group__1__Impl34456 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceNumberMore__Group__2__Impl_in_rule__StatemachineActionFieldSourceNumberMore__Group__234487 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceNumberMore__ValueAssignment_2_in_rule__StatemachineActionFieldSourceNumberMore__Group__2__Impl34514 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceEvaluateMore__Group__0__Impl_in_rule__StatemachineActionFieldSourceEvaluateMore__Group__034550 = new BitSet(new long[]{0x0000000400000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceEvaluateMore__Group__1_in_rule__StatemachineActionFieldSourceEvaluateMore__Group__034553 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceEvaluateMore__Group__1__Impl_in_rule__StatemachineActionFieldSourceEvaluateMore__Group__134611 = new BitSet(new long[]{0xE000000000000000L,0x00000000000007FFL});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceEvaluateMore__Group__2_in_rule__StatemachineActionFieldSourceEvaluateMore__Group__134614 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_34_in_rule__StatemachineActionFieldSourceEvaluateMore__Group__1__Impl34642 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceEvaluateMore__Group__2__Impl_in_rule__StatemachineActionFieldSourceEvaluateMore__Group__234673 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceEvaluateMore__EvaluationtypeAssignment_2_in_rule__StatemachineActionFieldSourceEvaluateMore__Group__2__Impl34700 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceTranslateMore__Group__0__Impl_in_rule__StatemachineActionFieldSourceTranslateMore__Group__034736 = new BitSet(new long[]{0x0000000400000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceTranslateMore__Group__1_in_rule__StatemachineActionFieldSourceTranslateMore__Group__034739 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceTranslateMore__Group__1__Impl_in_rule__StatemachineActionFieldSourceTranslateMore__Group__134797 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000020000L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceTranslateMore__Group__2_in_rule__StatemachineActionFieldSourceTranslateMore__Group__134800 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_34_in_rule__StatemachineActionFieldSourceTranslateMore__Group__1__Impl34828 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceTranslateMore__Group__2__Impl_in_rule__StatemachineActionFieldSourceTranslateMore__Group__234859 = new BitSet(new long[]{0x0000000000000020L});
    }

    protected static class FollowSets016 {
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceTranslateMore__Group__3_in_rule__StatemachineActionFieldSourceTranslateMore__Group__234862 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_209_in_rule__StatemachineActionFieldSourceTranslateMore__Group__2__Impl34890 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceTranslateMore__Group__3__Impl_in_rule__StatemachineActionFieldSourceTranslateMore__Group__334921 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceTranslateMore__TextAssignment_3_in_rule__StatemachineActionFieldSourceTranslateMore__Group__3__Impl34948 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldGetMore__Group__0__Impl_in_rule__StatemachineActionFieldGetMore__Group__034986 = new BitSet(new long[]{0x0000000400000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldGetMore__Group__1_in_rule__StatemachineActionFieldGetMore__Group__034989 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldGetMore__Group__1__Impl_in_rule__StatemachineActionFieldGetMore__Group__135047 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldGetMore__Group__2_in_rule__StatemachineActionFieldGetMore__Group__135050 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_34_in_rule__StatemachineActionFieldGetMore__Group__1__Impl35078 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldGetMore__Group__2__Impl_in_rule__StatemachineActionFieldGetMore__Group__235109 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldGetMore__Group__3_in_rule__StatemachineActionFieldGetMore__Group__235112 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_211_in_rule__StatemachineActionFieldGetMore__Group__2__Impl35140 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldGetMore__Group__3__Impl_in_rule__StatemachineActionFieldGetMore__Group__335171 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldGetMore__AttributeAssignment_3_in_rule__StatemachineActionFieldGetMore__Group__3__Impl35198 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperationMore__Group__0__Impl_in_rule__StatemachineOperationMore__Group__035236 = new BitSet(new long[]{0x0000000400000000L});
        public static final BitSet FOLLOW_rule__StatemachineOperationMore__Group__1_in_rule__StatemachineOperationMore__Group__035239 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperationMore__Group__1__Impl_in_rule__StatemachineOperationMore__Group__135297 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000020L});
        public static final BitSet FOLLOW_rule__StatemachineOperationMore__Group__2_in_rule__StatemachineOperationMore__Group__135300 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_34_in_rule__StatemachineOperationMore__Group__1__Impl35328 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperationMore__Group__2__Impl_in_rule__StatemachineOperationMore__Group__235359 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineOperationMore__Group__3_in_rule__StatemachineOperationMore__Group__235362 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_197_in_rule__StatemachineOperationMore__Group__2__Impl35390 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperationMore__Group__3__Impl_in_rule__StatemachineOperationMore__Group__335421 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperationMore__OperationAssignment_3_in_rule__StatemachineOperationMore__Group__3__Impl35448 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieveMore__Group__0__Impl_in_rule__StatemachineStorageRetrieveMore__Group__035486 = new BitSet(new long[]{0x0000000400000000L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieveMore__Group__1_in_rule__StatemachineStorageRetrieveMore__Group__035489 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieveMore__Group__1__Impl_in_rule__StatemachineStorageRetrieveMore__Group__135547 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000008000L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieveMore__Group__2_in_rule__StatemachineStorageRetrieveMore__Group__135550 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_34_in_rule__StatemachineStorageRetrieveMore__Group__1__Impl35578 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieveMore__Group__2__Impl_in_rule__StatemachineStorageRetrieveMore__Group__235609 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000008L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieveMore__Group__3_in_rule__StatemachineStorageRetrieveMore__Group__235612 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_207_in_rule__StatemachineStorageRetrieveMore__Group__2__Impl35640 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieveMore__Group__3__Impl_in_rule__StatemachineStorageRetrieveMore__Group__335671 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieveMore__Group__4_in_rule__StatemachineStorageRetrieveMore__Group__335674 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_195_in_rule__StatemachineStorageRetrieveMore__Group__3__Impl35702 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieveMore__Group__4__Impl_in_rule__StatemachineStorageRetrieveMore__Group__435733 = new BitSet(new long[]{0x0000080000000000L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieveMore__Group__5_in_rule__StatemachineStorageRetrieveMore__Group__435736 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieveMore__KeyAssignment_4_in_rule__StatemachineStorageRetrieveMore__Group__4__Impl35763 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieveMore__Group__5__Impl_in_rule__StatemachineStorageRetrieveMore__Group__535793 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieveMore__Group__6_in_rule__StatemachineStorageRetrieveMore__Group__535796 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__StatemachineStorageRetrieveMore__Group__5__Impl35824 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieveMore__Group__6__Impl_in_rule__StatemachineStorageRetrieveMore__Group__635855 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineStorageRetrieveMore__AttributeAssignment_6_in_rule__StatemachineStorageRetrieveMore__Group__6__Impl35882 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__0__Impl_in_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__035926 = new BitSet(new long[]{0x0000000400000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__1_in_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__035929 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__1__Impl_in_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__135987 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000040000L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__2_in_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__135990 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_34_in_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__1__Impl36018 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__2__Impl_in_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__236049 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__3_in_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__236052 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_210_in_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__2__Impl36080 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__3__Impl_in_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__336111 = new BitSet(new long[]{0x0000080000000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__4_in_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__336114 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttributeMore__DtoAssignment_3_in_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__3__Impl36141 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__4__Impl_in_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__436171 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__5_in_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__436174 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__4__Impl36202 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__5__Impl_in_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__536233 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSourceDtoAttributeMore__AttributeAssignment_5_in_rule__StatemachineActionFieldSourceDtoAttributeMore__Group__5__Impl36260 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldConcatenation__Group__0__Impl_in_rule__StatemachineActionFieldConcatenation__Group__036302 = new BitSet(new long[]{0x0000000400000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldConcatenation__Group__1_in_rule__StatemachineActionFieldConcatenation__Group__036305 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldConcatenation__FirstAssignment_0_in_rule__StatemachineActionFieldConcatenation__Group__0__Impl36332 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldConcatenation__Group__1__Impl_in_rule__StatemachineActionFieldConcatenation__Group__136362 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldConcatenation__MoreAssignment_1_in_rule__StatemachineActionFieldConcatenation__Group__1__Impl36389 = new BitSet(new long[]{0x0000000400000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperationParameterMore__Group__0__Impl_in_rule__StatemachineOperationParameterMore__Group__036424 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
        public static final BitSet FOLLOW_rule__StatemachineOperationParameterMore__Group__1_in_rule__StatemachineOperationParameterMore__Group__036427 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperationParameterMore__Group__1__Impl_in_rule__StatemachineOperationParameterMore__Group__136485 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000000E9004L});
        public static final BitSet FOLLOW_rule__StatemachineOperationParameterMore__Group__2_in_rule__StatemachineOperationParameterMore__Group__136488 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_212_in_rule__StatemachineOperationParameterMore__Group__1__Impl36516 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperationParameterMore__Group__2__Impl_in_rule__StatemachineOperationParameterMore__Group__236547 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineOperationParameterMore__SourceAssignment_2_in_rule__StatemachineOperationParameterMore__Group__2__Impl36574 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSet__Group__0__Impl_in_rule__StatemachineActionFieldSet__Group__036610 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000000E9004L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSet__Group__1_in_rule__StatemachineActionFieldSet__Group__036613 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_213_in_rule__StatemachineActionFieldSet__Group__0__Impl36641 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSet__Group__1__Impl_in_rule__StatemachineActionFieldSet__Group__136672 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSet__Group__2_in_rule__StatemachineActionFieldSet__Group__136675 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSet__SourceAssignment_1_in_rule__StatemachineActionFieldSet__Group__1__Impl36702 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSet__Group__2__Impl_in_rule__StatemachineActionFieldSet__Group__236732 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSet__Group__3_in_rule__StatemachineActionFieldSet__Group__236735 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionFieldSet__Group__2__Impl36763 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSet__Group__3__Impl_in_rule__StatemachineActionFieldSet__Group__336794 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldSet__AttributeAssignment_3_in_rule__StatemachineActionFieldSet__Group__3__Impl36821 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldClear__Group__0__Impl_in_rule__StatemachineActionFieldClear__Group__036859 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldClear__Group__1_in_rule__StatemachineActionFieldClear__Group__036862 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_214_in_rule__StatemachineActionFieldClear__Group__0__Impl36890 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldClear__Group__1__Impl_in_rule__StatemachineActionFieldClear__Group__136921 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldClear__AttributeAssignment_1_in_rule__StatemachineActionFieldClear__Group__1__Impl36948 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldGet__Group__0__Impl_in_rule__StatemachineActionFieldGet__Group__036982 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldGet__Group__1_in_rule__StatemachineActionFieldGet__Group__036985 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_211_in_rule__StatemachineActionFieldGet__Group__0__Impl37013 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldGet__Group__1__Impl_in_rule__StatemachineActionFieldGet__Group__137044 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldGet__AttributeAssignment_1_in_rule__StatemachineActionFieldGet__Group__1__Impl37071 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldRemove__Group__0__Impl_in_rule__StatemachineActionFieldRemove__Group__037105 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldRemove__Group__1_in_rule__StatemachineActionFieldRemove__Group__037108 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_215_in_rule__StatemachineActionFieldRemove__Group__0__Impl37136 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldRemove__Group__1__Impl_in_rule__StatemachineActionFieldRemove__Group__137167 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionFieldRemove__AttributeAssignment_1_in_rule__StatemachineActionFieldRemove__Group__1__Impl37194 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionItemVisible__Group__0__Impl_in_rule__StatemachineActionItemVisible__Group__037228 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionItemVisible__Group__1_in_rule__StatemachineActionItemVisible__Group__037231 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_216_in_rule__StatemachineActionItemVisible__Group__0__Impl37259 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets017 {
        public static final BitSet FOLLOW_rule__StatemachineActionItemVisible__Group__1__Impl_in_rule__StatemachineActionItemVisible__Group__137290 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionItemVisible__AttributeAssignment_1_in_rule__StatemachineActionItemVisible__Group__1__Impl37317 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionItemInvisible__Group__0__Impl_in_rule__StatemachineActionItemInvisible__Group__037351 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionItemInvisible__Group__1_in_rule__StatemachineActionItemInvisible__Group__037354 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_217_in_rule__StatemachineActionItemInvisible__Group__0__Impl37382 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionItemInvisible__Group__1__Impl_in_rule__StatemachineActionItemInvisible__Group__137413 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionItemInvisible__AttributeAssignment_1_in_rule__StatemachineActionItemInvisible__Group__1__Impl37440 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionButtonCaption__Group__0__Impl_in_rule__StatemachineActionButtonCaption__Group__037474 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000000E9004L});
        public static final BitSet FOLLOW_rule__StatemachineActionButtonCaption__Group__1_in_rule__StatemachineActionButtonCaption__Group__037477 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_201_in_rule__StatemachineActionButtonCaption__Group__0__Impl37505 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionButtonCaption__Group__1__Impl_in_rule__StatemachineActionButtonCaption__Group__137536 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionButtonCaption__Group__2_in_rule__StatemachineActionButtonCaption__Group__137539 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionButtonCaption__CaptionAssignment_1_in_rule__StatemachineActionButtonCaption__Group__1__Impl37566 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionButtonCaption__Group__2__Impl_in_rule__StatemachineActionButtonCaption__Group__237596 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionButtonCaption__Group__3_in_rule__StatemachineActionButtonCaption__Group__237599 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionButtonCaption__Group__2__Impl37627 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionButtonCaption__Group__3__Impl_in_rule__StatemachineActionButtonCaption__Group__337658 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionButtonCaption__AttributeAssignment_3_in_rule__StatemachineActionButtonCaption__Group__3__Impl37685 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionButtonImage__Group__0__Impl_in_rule__StatemachineActionButtonImage__Group__037723 = new BitSet(new long[]{0x0000000000000020L});
        public static final BitSet FOLLOW_rule__StatemachineActionButtonImage__Group__1_in_rule__StatemachineActionButtonImage__Group__037726 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_218_in_rule__StatemachineActionButtonImage__Group__0__Impl37754 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionButtonImage__Group__1__Impl_in_rule__StatemachineActionButtonImage__Group__137785 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__StatemachineActionButtonImage__Group__2_in_rule__StatemachineActionButtonImage__Group__137788 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionButtonImage__ImageAssignment_1_in_rule__StatemachineActionButtonImage__Group__1__Impl37815 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionButtonImage__Group__2__Impl_in_rule__StatemachineActionButtonImage__Group__237845 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionButtonImage__Group__3_in_rule__StatemachineActionButtonImage__Group__237848 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__StatemachineActionButtonImage__Group__2__Impl37876 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionButtonImage__Group__3__Impl_in_rule__StatemachineActionButtonImage__Group__337907 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionButtonImage__AttributeAssignment_3_in_rule__StatemachineActionButtonImage__Group__3__Impl37934 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionDTOFind__Group__0__Impl_in_rule__StatemachineActionDTOFind__Group__037972 = new BitSet(new long[]{0xE0000008000000A0L,0x00000000000007FFL,0x0000000000008000L,0x00000000000E9004L});
        public static final BitSet FOLLOW_rule__StatemachineActionDTOFind__Group__1_in_rule__StatemachineActionDTOFind__Group__037975 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_219_in_rule__StatemachineActionDTOFind__Group__0__Impl38003 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionDTOFind__Group__1__Impl_in_rule__StatemachineActionDTOFind__Group__138034 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionDTOFind__Group__2_in_rule__StatemachineActionDTOFind__Group__138037 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionDTOFind__SearchAssignment_1_in_rule__StatemachineActionDTOFind__Group__1__Impl38064 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionDTOFind__Group__2__Impl_in_rule__StatemachineActionDTOFind__Group__238094 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionDTOFind__Group__3_in_rule__StatemachineActionDTOFind__Group__238097 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_220_in_rule__StatemachineActionDTOFind__Group__2__Impl38125 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionDTOFind__Group__3__Impl_in_rule__StatemachineActionDTOFind__Group__338156 = new BitSet(new long[]{0x0000080000000000L});
        public static final BitSet FOLLOW_rule__StatemachineActionDTOFind__Group__4_in_rule__StatemachineActionDTOFind__Group__338159 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionDTOFind__DtoAssignment_3_in_rule__StatemachineActionDTOFind__Group__3__Impl38186 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionDTOFind__Group__4__Impl_in_rule__StatemachineActionDTOFind__Group__438216 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionDTOFind__Group__5_in_rule__StatemachineActionDTOFind__Group__438219 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__StatemachineActionDTOFind__Group__4__Impl38247 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionDTOFind__Group__5__Impl_in_rule__StatemachineActionDTOFind__Group__538278 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionDTOFind__AttributeAssignment_5_in_rule__StatemachineActionDTOFind__Group__5__Impl38305 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionScheduler__Group__0__Impl_in_rule__StatemachineActionScheduler__Group__038347 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineActionScheduler__Group__1_in_rule__StatemachineActionScheduler__Group__038350 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_221_in_rule__StatemachineActionScheduler__Group__0__Impl38378 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionScheduler__Group__1__Impl_in_rule__StatemachineActionScheduler__Group__138409 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineActionScheduler__SchedulerAssignment_1_in_rule__StatemachineActionScheduler__Group__1__Impl38436 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButton__Group__0__Impl_in_rule__StatemachineControlButton__Group__038470 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineControlButton__Group__1_in_rule__StatemachineControlButton__Group__038473 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_222_in_rule__StatemachineControlButton__Group__0__Impl38501 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButton__Group__1__Impl_in_rule__StatemachineControlButton__Group__138532 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000008000L});
        public static final BitSet FOLLOW_rule__StatemachineControlButton__Group__2_in_rule__StatemachineControlButton__Group__138535 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButton__NameAssignment_1_in_rule__StatemachineControlButton__Group__1__Impl38562 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButton__Group__2__Impl_in_rule__StatemachineControlButton__Group__238592 = new BitSet(new long[]{0x1C00000000000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlButton__Group__3_in_rule__StatemachineControlButton__Group__238595 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_143_in_rule__StatemachineControlButton__Group__2__Impl38623 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButton__Group__3__Impl_in_rule__StatemachineControlButton__Group__338654 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__StatemachineControlButton__Group__4_in_rule__StatemachineControlButton__Group__338657 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButton__EventTypeAssignment_3_in_rule__StatemachineControlButton__Group__3__Impl38684 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButton__Group__4__Impl_in_rule__StatemachineControlButton__Group__438714 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L,0x0000008000000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlButton__Group__5_in_rule__StatemachineControlButton__Group__438717 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_134_in_rule__StatemachineControlButton__Group__4__Impl38745 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButton__Group__5__Impl_in_rule__StatemachineControlButton__Group__538776 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L,0x0000008000000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlButton__Group__6_in_rule__StatemachineControlButton__Group__538779 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButton__ButtonsAssignment_5_in_rule__StatemachineControlButton__Group__5__Impl38806 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000008000000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlButton__Group__6__Impl_in_rule__StatemachineControlButton__Group__638837 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_135_in_rule__StatemachineControlButton__Group__6__Impl38865 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlField__Group__0__Impl_in_rule__StatemachineControlField__Group__038910 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineControlField__Group__1_in_rule__StatemachineControlField__Group__038913 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_223_in_rule__StatemachineControlField__Group__0__Impl38941 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlField__Group__1__Impl_in_rule__StatemachineControlField__Group__138972 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__StatemachineControlField__Group__2_in_rule__StatemachineControlField__Group__138975 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlField__NameAssignment_1_in_rule__StatemachineControlField__Group__1__Impl39002 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlField__Group__2__Impl_in_rule__StatemachineControlField__Group__239032 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000060000000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlField__Group__3_in_rule__StatemachineControlField__Group__239035 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_134_in_rule__StatemachineControlField__Group__2__Impl39063 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlField__Group__3__Impl_in_rule__StatemachineControlField__Group__339094 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineControlField__Group__4_in_rule__StatemachineControlField__Group__339097 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlField__UnorderedGroup_3_in_rule__StatemachineControlField__Group__3__Impl39124 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlField__Group__4__Impl_in_rule__StatemachineControlField__Group__439154 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_135_in_rule__StatemachineControlField__Group__4__Impl39182 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTO__Group__0__Impl_in_rule__StatemachineControlDTO__Group__039223 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTO__Group__1_in_rule__StatemachineControlDTO__Group__039226 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_224_in_rule__StatemachineControlDTO__Group__0__Impl39254 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTO__Group__1__Impl_in_rule__StatemachineControlDTO__Group__139285 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTO__Group__2_in_rule__StatemachineControlDTO__Group__139288 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTO__NameAssignment_1_in_rule__StatemachineControlDTO__Group__1__Impl39315 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTO__Group__2__Impl_in_rule__StatemachineControlDTO__Group__239345 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L,0x0000000000040000L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTO__Group__3_in_rule__StatemachineControlDTO__Group__239348 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_134_in_rule__StatemachineControlDTO__Group__2__Impl39376 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTO__Group__3__Impl_in_rule__StatemachineControlDTO__Group__339407 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L,0x0000000000040000L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTO__Group__4_in_rule__StatemachineControlDTO__Group__339410 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTO__DtosAssignment_3_in_rule__StatemachineControlDTO__Group__3__Impl39437 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000040000L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTO__Group__4__Impl_in_rule__StatemachineControlDTO__Group__439468 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_135_in_rule__StatemachineControlDTO__Group__4__Impl39496 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlScheduler__Group__0__Impl_in_rule__StatemachineControlScheduler__Group__039537 = new BitSet(new long[]{0x0000000000000010L});
    }

    protected static class FollowSets018 {
        public static final BitSet FOLLOW_rule__StatemachineControlScheduler__Group__1_in_rule__StatemachineControlScheduler__Group__039540 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_225_in_rule__StatemachineControlScheduler__Group__0__Impl39568 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlScheduler__Group__1__Impl_in_rule__StatemachineControlScheduler__Group__139599 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__StatemachineControlScheduler__Group__2_in_rule__StatemachineControlScheduler__Group__139602 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlScheduler__NameAssignment_1_in_rule__StatemachineControlScheduler__Group__1__Impl39629 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlScheduler__Group__2__Impl_in_rule__StatemachineControlScheduler__Group__239659 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L,0x0000000200000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlScheduler__Group__3_in_rule__StatemachineControlScheduler__Group__239662 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_134_in_rule__StatemachineControlScheduler__Group__2__Impl39690 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlScheduler__Group__3__Impl_in_rule__StatemachineControlScheduler__Group__339721 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L,0x0000000200000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlScheduler__Group__4_in_rule__StatemachineControlScheduler__Group__339724 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlScheduler__SchedulersAssignment_3_in_rule__StatemachineControlScheduler__Group__3__Impl39751 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000200000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlScheduler__Group__4__Impl_in_rule__StatemachineControlScheduler__Group__439782 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_135_in_rule__StatemachineControlScheduler__Group__4__Impl39810 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePeripheralDeviceLineDisplay__Group__0__Impl_in_rule__StatemachinePeripheralDeviceLineDisplay__Group__039851 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachinePeripheralDeviceLineDisplay__Group__1_in_rule__StatemachinePeripheralDeviceLineDisplay__Group__039854 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_226_in_rule__StatemachinePeripheralDeviceLineDisplay__Group__0__Impl39882 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePeripheralDeviceLineDisplay__Group__1__Impl_in_rule__StatemachinePeripheralDeviceLineDisplay__Group__139913 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePeripheralDeviceLineDisplay__NameAssignment_1_in_rule__StatemachinePeripheralDeviceLineDisplay__Group__1__Impl39940 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePeripheralDevicePOSPrinter__Group__0__Impl_in_rule__StatemachinePeripheralDevicePOSPrinter__Group__039974 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachinePeripheralDevicePOSPrinter__Group__1_in_rule__StatemachinePeripheralDevicePOSPrinter__Group__039977 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_227_in_rule__StatemachinePeripheralDevicePOSPrinter__Group__0__Impl40005 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePeripheralDevicePOSPrinter__Group__1__Impl_in_rule__StatemachinePeripheralDevicePOSPrinter__Group__140036 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePeripheralDevicePOSPrinter__NameAssignment_1_in_rule__StatemachinePeripheralDevicePOSPrinter__Group__1__Impl40063 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePeripheralDeviceCashDrawer__Group__0__Impl_in_rule__StatemachinePeripheralDeviceCashDrawer__Group__040097 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachinePeripheralDeviceCashDrawer__Group__1_in_rule__StatemachinePeripheralDeviceCashDrawer__Group__040100 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_228_in_rule__StatemachinePeripheralDeviceCashDrawer__Group__0__Impl40128 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePeripheralDeviceCashDrawer__Group__1__Impl_in_rule__StatemachinePeripheralDeviceCashDrawer__Group__140159 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePeripheralDeviceCashDrawer__NameAssignment_1_in_rule__StatemachinePeripheralDeviceCashDrawer__Group__1__Impl40186 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePeripheralDevicePT__Group__0__Impl_in_rule__StatemachinePeripheralDevicePT__Group__040220 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachinePeripheralDevicePT__Group__1_in_rule__StatemachinePeripheralDevicePT__Group__040223 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_229_in_rule__StatemachinePeripheralDevicePT__Group__0__Impl40251 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePeripheralDevicePT__Group__1__Impl_in_rule__StatemachinePeripheralDevicePT__Group__140282 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachinePeripheralDevicePT__NameAssignment_1_in_rule__StatemachinePeripheralDevicePT__Group__1__Impl40309 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__Group__0__Impl_in_rule__StatemachineControlPeripheral__Group__040343 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__Group__1_in_rule__StatemachineControlPeripheral__Group__040346 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_230_in_rule__StatemachineControlPeripheral__Group__0__Impl40374 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__Group__1__Impl_in_rule__StatemachineControlPeripheral__Group__140405 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__Group__2_in_rule__StatemachineControlPeripheral__Group__140408 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__NameAssignment_1_in_rule__StatemachineControlPeripheral__Group__1__Impl40435 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__Group__2__Impl_in_rule__StatemachineControlPeripheral__Group__240465 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L,0x0000003C00000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__Group__3_in_rule__StatemachineControlPeripheral__Group__240468 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_134_in_rule__StatemachineControlPeripheral__Group__2__Impl40496 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__Group__3__Impl_in_rule__StatemachineControlPeripheral__Group__340527 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L,0x0000003C00000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__Group__4_in_rule__StatemachineControlPeripheral__Group__340530 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__LineDisplaysAssignment_3_in_rule__StatemachineControlPeripheral__Group__3__Impl40557 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000400000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__Group__4__Impl_in_rule__StatemachineControlPeripheral__Group__440588 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L,0x0000003C00000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__Group__5_in_rule__StatemachineControlPeripheral__Group__440591 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__PosPrintersAssignment_4_in_rule__StatemachineControlPeripheral__Group__4__Impl40618 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000800000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__Group__5__Impl_in_rule__StatemachineControlPeripheral__Group__540649 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L,0x0000003C00000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__Group__6_in_rule__StatemachineControlPeripheral__Group__540652 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__CashDrawersAssignment_5_in_rule__StatemachineControlPeripheral__Group__5__Impl40679 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000001000000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__Group__6__Impl_in_rule__StatemachineControlPeripheral__Group__640710 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L,0x0000003C00000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__Group__7_in_rule__StatemachineControlPeripheral__Group__640713 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__PaymentTerminalsAssignment_6_in_rule__StatemachineControlPeripheral__Group__6__Impl40740 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000002000000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlPeripheral__Group__7__Impl_in_rule__StatemachineControlPeripheral__Group__740771 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_135_in_rule__StatemachineControlPeripheral__Group__7__Impl40799 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttribute__Group__0__Impl_in_rule__StatemachineControlButtonAttribute__Group__040846 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttribute__Group__1_in_rule__StatemachineControlButtonAttribute__Group__040849 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_231_in_rule__StatemachineControlButtonAttribute__Group__0__Impl40877 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttribute__Group__1__Impl_in_rule__StatemachineControlButtonAttribute__Group__140908 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000800008000L,0x0000010004000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttribute__Group__2_in_rule__StatemachineControlButtonAttribute__Group__140911 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttribute__NameAssignment_1_in_rule__StatemachineControlButtonAttribute__Group__1__Impl40938 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttribute__Group__2__Impl_in_rule__StatemachineControlButtonAttribute__Group__240968 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000800008000L,0x0000010004000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttribute__Group__3_in_rule__StatemachineControlButtonAttribute__Group__240971 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttribute__Group_2__0_in_rule__StatemachineControlButtonAttribute__Group__2__Impl40998 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttribute__Group__3__Impl_in_rule__StatemachineControlButtonAttribute__Group__341029 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttribute__EventAssignment_3_in_rule__StatemachineControlButtonAttribute__Group__3__Impl41056 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttribute__Group_2__0__Impl_in_rule__StatemachineControlButtonAttribute__Group_2__041094 = new BitSet(new long[]{0x0000000000000020L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttribute__Group_2__1_in_rule__StatemachineControlButtonAttribute__Group_2__041097 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttribute__HasImageAssignment_2_0_in_rule__StatemachineControlButtonAttribute__Group_2__0__Impl41124 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttribute__Group_2__1__Impl_in_rule__StatemachineControlButtonAttribute__Group_2__141154 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttribute__ImageAssignment_2_1_in_rule__StatemachineControlButtonAttribute__Group_2__1__Impl41181 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventKeyboard__Group__0__Impl_in_rule__StatemachineControlButtonAttributeEventKeyboard__Group__041215 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000010000000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventKeyboard__Group__1_in_rule__StatemachineControlButtonAttributeEventKeyboard__Group__041218 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventKeyboard__Group__1__Impl_in_rule__StatemachineControlButtonAttributeEventKeyboard__Group__141276 = new BitSet(new long[]{0x0000000000000020L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventKeyboard__Group__2_in_rule__StatemachineControlButtonAttributeEventKeyboard__Group__141279 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_232_in_rule__StatemachineControlButtonAttributeEventKeyboard__Group__1__Impl41307 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventKeyboard__Group__2__Impl_in_rule__StatemachineControlButtonAttributeEventKeyboard__Group__241338 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventKeyboard__KeystrokeAssignment_2_in_rule__StatemachineControlButtonAttributeEventKeyboard__Group__2__Impl41365 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventIdentity__Group__0__Impl_in_rule__StatemachineControlButtonAttributeEventIdentity__Group__041401 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000800000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventIdentity__Group__1_in_rule__StatemachineControlButtonAttributeEventIdentity__Group__041404 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventIdentity__Group__1__Impl_in_rule__StatemachineControlButtonAttributeEventIdentity__Group__141462 = new BitSet(new long[]{0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventIdentity__Group__2_in_rule__StatemachineControlButtonAttributeEventIdentity__Group__141465 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_163_in_rule__StatemachineControlButtonAttributeEventIdentity__Group__1__Impl41493 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventIdentity__Group__2__Impl_in_rule__StatemachineControlButtonAttributeEventIdentity__Group__241524 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventIdentity__IdentityAssignment_2_in_rule__StatemachineControlButtonAttributeEventIdentity__Group__2__Impl41551 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventEvent__Group__0__Impl_in_rule__StatemachineControlButtonAttributeEventEvent__Group__041587 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000800008000L,0x0000010004000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventEvent__Group__1_in_rule__StatemachineControlButtonAttributeEventEvent__Group__041590 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventEvent__Group__1__Impl_in_rule__StatemachineControlButtonAttributeEventEvent__Group__141648 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventEvent__Group__2_in_rule__StatemachineControlButtonAttributeEventEvent__Group__141651 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_143_in_rule__StatemachineControlButtonAttributeEventEvent__Group__1__Impl41679 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventEvent__Group__2__Impl_in_rule__StatemachineControlButtonAttributeEventEvent__Group__241710 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlButtonAttributeEventEvent__EventAssignment_2_in_rule__StatemachineControlButtonAttributeEventEvent__Group__2__Impl41737 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlFieldAttribute__Group__0__Impl_in_rule__StatemachineControlFieldAttribute__Group__041773 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineControlFieldAttribute__Group__1_in_rule__StatemachineControlFieldAttribute__Group__041776 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_233_in_rule__StatemachineControlFieldAttribute__Group__0__Impl41804 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlFieldAttribute__Group__1__Impl_in_rule__StatemachineControlFieldAttribute__Group__141835 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000800L});
        public static final BitSet FOLLOW_rule__StatemachineControlFieldAttribute__Group__2_in_rule__StatemachineControlFieldAttribute__Group__141838 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlFieldAttribute__NameAssignment_1_in_rule__StatemachineControlFieldAttribute__Group__1__Impl41865 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlFieldAttribute__Group__2__Impl_in_rule__StatemachineControlFieldAttribute__Group__241895 = new BitSet(new long[]{0x03F8000000000000L});
    }

    protected static class FollowSets019 {
        public static final BitSet FOLLOW_rule__StatemachineControlFieldAttribute__Group__3_in_rule__StatemachineControlFieldAttribute__Group__241898 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_203_in_rule__StatemachineControlFieldAttribute__Group__2__Impl41926 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlFieldAttribute__Group__3__Impl_in_rule__StatemachineControlFieldAttribute__Group__341957 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlFieldAttribute__AttributeTypeAssignment_3_in_rule__StatemachineControlFieldAttribute__Group__3__Impl41984 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlFieldLayout__Group__0__Impl_in_rule__StatemachineControlFieldLayout__Group__042022 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineControlFieldLayout__Group__1_in_rule__StatemachineControlFieldLayout__Group__042025 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_234_in_rule__StatemachineControlFieldLayout__Group__0__Impl42053 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlFieldLayout__Group__1__Impl_in_rule__StatemachineControlFieldLayout__Group__142084 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlFieldLayout__NameAssignment_1_in_rule__StatemachineControlFieldLayout__Group__1__Impl42111 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTOAttribute__Group__0__Impl_in_rule__StatemachineControlDTOAttribute__Group__042145 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTOAttribute__Group__1_in_rule__StatemachineControlDTOAttribute__Group__042148 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_210_in_rule__StatemachineControlDTOAttribute__Group__0__Impl42176 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTOAttribute__Group__1__Impl_in_rule__StatemachineControlDTOAttribute__Group__142207 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000800L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTOAttribute__Group__2_in_rule__StatemachineControlDTOAttribute__Group__142210 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTOAttribute__NameAssignment_1_in_rule__StatemachineControlDTOAttribute__Group__1__Impl42237 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTOAttribute__Group__2__Impl_in_rule__StatemachineControlDTOAttribute__Group__242267 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTOAttribute__Group__3_in_rule__StatemachineControlDTOAttribute__Group__242270 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_203_in_rule__StatemachineControlDTOAttribute__Group__2__Impl42298 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTOAttribute__Group__3__Impl_in_rule__StatemachineControlDTOAttribute__Group__342329 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000008000L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTOAttribute__Group__4_in_rule__StatemachineControlDTOAttribute__Group__342332 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTOAttribute__AttributeTypeAssignment_3_in_rule__StatemachineControlDTOAttribute__Group__3__Impl42359 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTOAttribute__Group__4__Impl_in_rule__StatemachineControlDTOAttribute__Group__442389 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTOAttribute__Group_4__0_in_rule__StatemachineControlDTOAttribute__Group__4__Impl42416 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTOAttribute__Group_4__0__Impl_in_rule__StatemachineControlDTOAttribute__Group_4__042457 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTOAttribute__Group_4__1_in_rule__StatemachineControlDTOAttribute__Group_4__042460 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTOAttribute__HasEventAssignment_4_0_in_rule__StatemachineControlDTOAttribute__Group_4__0__Impl42487 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTOAttribute__Group_4__1__Impl_in_rule__StatemachineControlDTOAttribute__Group_4__142517 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlDTOAttribute__EventAssignment_4_1_in_rule__StatemachineControlDTOAttribute__Group_4__1__Impl42544 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlSchedulerAttribute__Group__0__Impl_in_rule__StatemachineControlSchedulerAttribute__Group__042578 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineControlSchedulerAttribute__Group__1_in_rule__StatemachineControlSchedulerAttribute__Group__042581 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_225_in_rule__StatemachineControlSchedulerAttribute__Group__0__Impl42609 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlSchedulerAttribute__Group__1__Impl_in_rule__StatemachineControlSchedulerAttribute__Group__142640 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000080000000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlSchedulerAttribute__Group__2_in_rule__StatemachineControlSchedulerAttribute__Group__142643 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlSchedulerAttribute__NameAssignment_1_in_rule__StatemachineControlSchedulerAttribute__Group__1__Impl42670 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlSchedulerAttribute__Group__2__Impl_in_rule__StatemachineControlSchedulerAttribute__Group__242700 = new BitSet(new long[]{0x0000000000000080L});
        public static final BitSet FOLLOW_rule__StatemachineControlSchedulerAttribute__Group__3_in_rule__StatemachineControlSchedulerAttribute__Group__242703 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_235_in_rule__StatemachineControlSchedulerAttribute__Group__2__Impl42731 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlSchedulerAttribute__Group__3__Impl_in_rule__StatemachineControlSchedulerAttribute__Group__342762 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000100000000000L});
        public static final BitSet FOLLOW_rule__StatemachineControlSchedulerAttribute__Group__4_in_rule__StatemachineControlSchedulerAttribute__Group__342765 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlSchedulerAttribute__DelayAssignment_3_in_rule__StatemachineControlSchedulerAttribute__Group__3__Impl42792 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlSchedulerAttribute__Group__4__Impl_in_rule__StatemachineControlSchedulerAttribute__Group__442822 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineControlSchedulerAttribute__Group__5_in_rule__StatemachineControlSchedulerAttribute__Group__442825 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_236_in_rule__StatemachineControlSchedulerAttribute__Group__4__Impl42853 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlSchedulerAttribute__Group__5__Impl_in_rule__StatemachineControlSchedulerAttribute__Group__542884 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineControlSchedulerAttribute__EventAssignment_5_in_rule__StatemachineControlSchedulerAttribute__Group__5__Impl42911 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineImport__Group__0__Impl_in_rule__StatemachineImport__Group__042953 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__StatemachineImport__Group__1_in_rule__StatemachineImport__Group__042956 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_47_in_rule__StatemachineImport__Group__0__Impl42984 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineImport__Group__1__Impl_in_rule__StatemachineImport__Group__143015 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineImport__ImportedNamespaceAssignment_1_in_rule__StatemachineImport__Group__1__Impl43042 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineQualifiedNameWithWildCard__Group__0__Impl_in_rule__StatemachineQualifiedNameWithWildCard__Group__043076 = new BitSet(new long[]{0x0000080000000000L});
        public static final BitSet FOLLOW_rule__StatemachineQualifiedNameWithWildCard__Group__1_in_rule__StatemachineQualifiedNameWithWildCard__Group__043079 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleQualifiedName_in_rule__StatemachineQualifiedNameWithWildCard__Group__0__Impl43106 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineQualifiedNameWithWildCard__Group__1__Impl_in_rule__StatemachineQualifiedNameWithWildCard__Group__143135 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineQualifiedNameWithWildCard__Group_1__0_in_rule__StatemachineQualifiedNameWithWildCard__Group__1__Impl43162 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineQualifiedNameWithWildCard__Group_1__0__Impl_in_rule__StatemachineQualifiedNameWithWildCard__Group_1__043197 = new BitSet(new long[]{0x0000001000000000L});
        public static final BitSet FOLLOW_rule__StatemachineQualifiedNameWithWildCard__Group_1__1_in_rule__StatemachineQualifiedNameWithWildCard__Group_1__043200 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__StatemachineQualifiedNameWithWildCard__Group_1__0__Impl43228 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__StatemachineQualifiedNameWithWildCard__Group_1__1__Impl_in_rule__StatemachineQualifiedNameWithWildCard__Group_1__143259 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_36_in_rule__StatemachineQualifiedNameWithWildCard__Group_1__1__Impl43287 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__QualifiedName__Group__0__Impl_in_rule__QualifiedName__Group__043322 = new BitSet(new long[]{0x0000080000000000L});
        public static final BitSet FOLLOW_rule__QualifiedName__Group__1_in_rule__QualifiedName__Group__043325 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleValidID_in_rule__QualifiedName__Group__0__Impl43352 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__QualifiedName__Group__1__Impl_in_rule__QualifiedName__Group__143381 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__QualifiedName__Group_1__0_in_rule__QualifiedName__Group__1__Impl43408 = new BitSet(new long[]{0x0000080000000002L});
        public static final BitSet FOLLOW_rule__QualifiedName__Group_1__0__Impl_in_rule__QualifiedName__Group_1__043443 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__QualifiedName__Group_1__1_in_rule__QualifiedName__Group_1__043446 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__QualifiedName__Group_1__0__Impl43475 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__QualifiedName__Group_1__1__Impl_in_rule__QualifiedName__Group_1__143507 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleValidID_in_rule__QualifiedName__Group_1__1__Impl43534 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__SignedNumber__Group__0__Impl_in_rule__SignedNumber__Group__043567 = new BitSet(new long[]{0x0000000800000080L});
        public static final BitSet FOLLOW_rule__SignedNumber__Group__1_in_rule__SignedNumber__Group__043570 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_35_in_rule__SignedNumber__Group__0__Impl43599 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__SignedNumber__Group__1__Impl_in_rule__SignedNumber__Group__143632 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleUnsignedNumber_in_rule__SignedNumber__Group__1__Impl43659 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__UnsignedNumber__Group__0__Impl_in_rule__UnsignedNumber__Group__043692 = new BitSet(new long[]{0x0000080000000000L});
        public static final BitSet FOLLOW_rule__UnsignedNumber__Group__1_in_rule__UnsignedNumber__Group__043695 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_INT_in_rule__UnsignedNumber__Group__0__Impl43722 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__UnsignedNumber__Group__1__Impl_in_rule__UnsignedNumber__Group__143751 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__UnsignedNumber__Group_1__0_in_rule__UnsignedNumber__Group__1__Impl43778 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__UnsignedNumber__Group_1__0__Impl_in_rule__UnsignedNumber__Group_1__043813 = new BitSet(new long[]{0x0000000000000080L});
        public static final BitSet FOLLOW_rule__UnsignedNumber__Group_1__1_in_rule__UnsignedNumber__Group_1__043816 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__UnsignedNumber__Group_1__0__Impl43844 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__UnsignedNumber__Group_1__1__Impl_in_rule__UnsignedNumber__Group_1__143875 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_INT_in_rule__UnsignedNumber__Group_1__1__Impl43902 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group__0__Impl_in_rule__XAnnotation__Group__043935 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group__1_in_rule__XAnnotation__Group__043938 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group__1__Impl_in_rule__XAnnotation__Group__143996 = new BitSet(new long[]{0x0000000000000010L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group__2_in_rule__XAnnotation__Group__143999 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_147_in_rule__XAnnotation__Group__1__Impl44027 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group__2__Impl_in_rule__XAnnotation__Group__244058 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group__3_in_rule__XAnnotation__Group__244061 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__AnnotationTypeAssignment_2_in_rule__XAnnotation__Group__2__Impl44088 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group__3__Impl_in_rule__XAnnotation__Group__344118 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3__0_in_rule__XAnnotation__Group__3__Impl44145 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3__0__Impl_in_rule__XAnnotation__Group_3__044184 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000000000000000L,0x0000000000080040L,0xFE28C000000000C0L,0x000000000000400BL});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3__1_in_rule__XAnnotation__Group_3__044187 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_198_in_rule__XAnnotation__Group_3__0__Impl44216 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3__1__Impl_in_rule__XAnnotation__Group_3__144248 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000000000000000L,0x0000000000080040L,0xFE28C000000000C0L,0x000000000000400BL});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3__2_in_rule__XAnnotation__Group_3__144251 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets020 {
        public static final BitSet FOLLOW_rule__XAnnotation__Alternatives_3_1_in_rule__XAnnotation__Group_3__1__Impl44278 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3__2__Impl_in_rule__XAnnotation__Group_3__244309 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_199_in_rule__XAnnotation__Group_3__2__Impl44337 = 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__044374 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3_1_0__1_in_rule__XAnnotation__Group_3_1_0__044377 = 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__Impl44404 = 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__144434 = 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__Impl44461 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
        public static final BitSet FOLLOW_rule__XAnnotation__Group_3_1_0_1__0__Impl_in_rule__XAnnotation__Group_3_1_0_1__044496 = 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__044499 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_212_in_rule__XAnnotation__Group_3_1_0_1__0__Impl44527 = 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__144558 = 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__Impl44585 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__Group__0__Impl_in_rule__XAnnotationElementValuePair__Group__044619 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000000000000000L,0x0000000000080040L,0xFE28C00000000040L,0x000000000000400BL});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__Group__1_in_rule__XAnnotationElementValuePair__Group__044622 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__Group_0__0_in_rule__XAnnotationElementValuePair__Group__0__Impl44649 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__Group__1__Impl_in_rule__XAnnotationElementValuePair__Group__144679 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__ValueAssignment_1_in_rule__XAnnotationElementValuePair__Group__1__Impl44706 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__Group_0__0__Impl_in_rule__XAnnotationElementValuePair__Group_0__044740 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__Group_0_0__0_in_rule__XAnnotationElementValuePair__Group_0__0__Impl44767 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__Group_0_0__0__Impl_in_rule__XAnnotationElementValuePair__Group_0_0__044799 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__Group_0_0__1_in_rule__XAnnotationElementValuePair__Group_0_0__044802 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__ElementAssignment_0_0_0_in_rule__XAnnotationElementValuePair__Group_0_0__0__Impl44829 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValuePair__Group_0_0__1__Impl_in_rule__XAnnotationElementValuePair__Group_0_0__144859 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__XAnnotationElementValuePair__Group_0_0__1__Impl44887 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_0__044922 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000000000000000L,0x0000000000080040L,0xFE28E00000000040L,0x000000000000400BL});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0__1_in_rule__XAnnotationElementValueOrCommaList__Group_0__044925 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_0__0_in_rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl44952 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_0__144982 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000000000000000L,0x0000000000080040L,0xFE28E00000000040L,0x000000000000400BL});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0__2_in_rule__XAnnotationElementValueOrCommaList__Group_0__144985 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_1__0_in_rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl45012 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_0__245043 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_237_in_rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl45071 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_0_0__045108 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0_in_rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl45135 = 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__045167 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1_in_rule__XAnnotationElementValueOrCommaList__Group_0_0_0__045170 = 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__145228 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2_in_rule__XAnnotationElementValueOrCommaList__Group_0_0_0__145231 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_238_in_rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl45259 = 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__245290 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_239_in_rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl45318 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_0_1__045355 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_1__1_in_rule__XAnnotationElementValueOrCommaList__Group_0_1__045358 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0_in_rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl45385 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_0_1__145415 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0_in_rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl45442 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_0_1_1__045477 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000000000000000L,0x0000000000080040L,0xFE28C00000000040L,0x000000000000400BL});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1_in_rule__XAnnotationElementValueOrCommaList__Group_0_1_1__045480 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_212_in_rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl45508 = 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__145539 = 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__Impl45566 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_1__045600 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1__1_in_rule__XAnnotationElementValueOrCommaList__Group_1__045603 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAnnotationOrExpression_in_rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl45630 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_1__145659 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1_1__0_in_rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl45686 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_1_1__045721 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1_1__1_in_rule__XAnnotationElementValueOrCommaList__Group_1_1__045724 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_1_1__145782 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0_in_rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl45811 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0_in_rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl45823 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl_in_rule__XAnnotationElementValueOrCommaList__Group_1_1_1__045860 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000000000000000L,0x0000000000080040L,0xFE28C00000000040L,0x000000000000400BL});
        public static final BitSet FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1_in_rule__XAnnotationElementValueOrCommaList__Group_1_1_1__045863 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_212_in_rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl45891 = 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__145922 = 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__Impl45949 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0__0__Impl_in_rule__XAnnotationElementValue__Group_0__045983 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000000000000000L,0x0000000000080040L,0xFE28E00000000040L,0x000000000000400BL});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0__1_in_rule__XAnnotationElementValue__Group_0__045986 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_0__0_in_rule__XAnnotationElementValue__Group_0__0__Impl46013 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0__1__Impl_in_rule__XAnnotationElementValue__Group_0__146043 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000000000000000L,0x0000000000080040L,0xFE28E00000000040L,0x000000000000400BL});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0__2_in_rule__XAnnotationElementValue__Group_0__146046 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_1__0_in_rule__XAnnotationElementValue__Group_0__1__Impl46073 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0__2__Impl_in_rule__XAnnotationElementValue__Group_0__246104 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_237_in_rule__XAnnotationElementValue__Group_0__2__Impl46132 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_0__0__Impl_in_rule__XAnnotationElementValue__Group_0_0__046169 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_0_0__0_in_rule__XAnnotationElementValue__Group_0_0__0__Impl46196 = 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__046228 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_0_0__1_in_rule__XAnnotationElementValue__Group_0_0_0__046231 = 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__146289 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_0_0__2_in_rule__XAnnotationElementValue__Group_0_0_0__146292 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_238_in_rule__XAnnotationElementValue__Group_0_0_0__1__Impl46320 = 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__246351 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_239_in_rule__XAnnotationElementValue__Group_0_0_0__2__Impl46379 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_1__0__Impl_in_rule__XAnnotationElementValue__Group_0_1__046416 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_1__1_in_rule__XAnnotationElementValue__Group_0_1__046419 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__ElementsAssignment_0_1_0_in_rule__XAnnotationElementValue__Group_0_1__0__Impl46446 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_1__1__Impl_in_rule__XAnnotationElementValue__Group_0_1__146476 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_1_1__0_in_rule__XAnnotationElementValue__Group_0_1__1__Impl46503 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_1_1__0__Impl_in_rule__XAnnotationElementValue__Group_0_1_1__046538 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000000000000000L,0x0000000000080040L,0xFE28C00000000040L,0x000000000000400BL});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__Group_0_1_1__1_in_rule__XAnnotationElementValue__Group_0_1_1__046541 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_212_in_rule__XAnnotationElementValue__Group_0_1_1__0__Impl46569 = 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__146600 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1_in_rule__XAnnotationElementValue__Group_0_1_1__1__Impl46627 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_0__0__Impl_in_rule__XAssignment__Group_0__046661 = new BitSet(new long[]{0x0001E00000000010L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_0__1_in_rule__XAssignment__Group_0__046664 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_0__1__Impl_in_rule__XAssignment__Group_0__146722 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_0__2_in_rule__XAssignment__Group_0__146725 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__FeatureAssignment_0_1_in_rule__XAssignment__Group_0__1__Impl46752 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_0__2__Impl_in_rule__XAssignment__Group_0__246782 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000000000000000L,0x0000000000080040L,0xFE28C00000000040L,0x000000000000400BL});
    }

    protected static class FollowSets021 {
        public static final BitSet FOLLOW_rule__XAssignment__Group_0__3_in_rule__XAssignment__Group_0__246785 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleOpSingleAssign_in_rule__XAssignment__Group_0__2__Impl46812 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_0__3__Impl_in_rule__XAssignment__Group_0__346841 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__ValueAssignment_0_3_in_rule__XAssignment__Group_0__3__Impl46868 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1__0__Impl_in_rule__XAssignment__Group_1__046906 = new BitSet(new long[]{0x000000000C1F0000L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1__1_in_rule__XAssignment__Group_1__046909 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXOrExpression_in_rule__XAssignment__Group_1__0__Impl46936 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1__1__Impl_in_rule__XAssignment__Group_1__146965 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1_1__0_in_rule__XAssignment__Group_1__1__Impl46992 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1_1__0__Impl_in_rule__XAssignment__Group_1_1__047027 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000000000000000L,0x0000000000080040L,0xFE28C00000000040L,0x000000000000400BL});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1_1__1_in_rule__XAssignment__Group_1_1__047030 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1_1_0__0_in_rule__XAssignment__Group_1_1__0__Impl47057 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1_1__1__Impl_in_rule__XAssignment__Group_1_1__147087 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAssignment__RightOperandAssignment_1_1_1_in_rule__XAssignment__Group_1_1__1__Impl47114 = 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__047148 = 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__Impl47175 = 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__047207 = new BitSet(new long[]{0x000000000C1F0000L});
        public static final BitSet FOLLOW_rule__XAssignment__Group_1_1_0_0__1_in_rule__XAssignment__Group_1_1_0_0__047210 = 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__147268 = 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__Impl47295 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_5__0__Impl_in_rule__OpMultiAssign__Group_5__047329 = new BitSet(new long[]{0x0000000008000000L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_5__1_in_rule__OpMultiAssign__Group_5__047332 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_27_in_rule__OpMultiAssign__Group_5__0__Impl47360 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_5__1__Impl_in_rule__OpMultiAssign__Group_5__147391 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_5__2_in_rule__OpMultiAssign__Group_5__147394 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_27_in_rule__OpMultiAssign__Group_5__1__Impl47422 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_5__2__Impl_in_rule__OpMultiAssign__Group_5__247453 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__OpMultiAssign__Group_5__2__Impl47481 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_6__0__Impl_in_rule__OpMultiAssign__Group_6__047518 = new BitSet(new long[]{0x0000000006000000L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_6__1_in_rule__OpMultiAssign__Group_6__047521 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_26_in_rule__OpMultiAssign__Group_6__0__Impl47549 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_6__1__Impl_in_rule__OpMultiAssign__Group_6__147580 = new BitSet(new long[]{0x0000000006000000L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_6__2_in_rule__OpMultiAssign__Group_6__147583 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_26_in_rule__OpMultiAssign__Group_6__1__Impl47612 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpMultiAssign__Group_6__2__Impl_in_rule__OpMultiAssign__Group_6__247645 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_25_in_rule__OpMultiAssign__Group_6__2__Impl47673 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group__0__Impl_in_rule__XOrExpression__Group__047710 = new BitSet(new long[]{0x0000000000004000L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group__1_in_rule__XOrExpression__Group__047713 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAndExpression_in_rule__XOrExpression__Group__0__Impl47740 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group__1__Impl_in_rule__XOrExpression__Group__147769 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group_1__0_in_rule__XOrExpression__Group__1__Impl47796 = new BitSet(new long[]{0x0000000000004002L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group_1__0__Impl_in_rule__XOrExpression__Group_1__047831 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000000000000000L,0x0000000000080040L,0xFE28C00000000040L,0x000000000000400BL});
        public static final BitSet FOLLOW_rule__XOrExpression__Group_1__1_in_rule__XOrExpression__Group_1__047834 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group_1_0__0_in_rule__XOrExpression__Group_1__0__Impl47861 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group_1__1__Impl_in_rule__XOrExpression__Group_1__147891 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__RightOperandAssignment_1_1_in_rule__XOrExpression__Group_1__1__Impl47918 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group_1_0__0__Impl_in_rule__XOrExpression__Group_1_0__047952 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group_1_0_0__0_in_rule__XOrExpression__Group_1_0__0__Impl47979 = 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__048011 = new BitSet(new long[]{0x0000000000004000L});
        public static final BitSet FOLLOW_rule__XOrExpression__Group_1_0_0__1_in_rule__XOrExpression__Group_1_0_0__048014 = 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__148072 = 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__Impl48099 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group__0__Impl_in_rule__XAndExpression__Group__048133 = new BitSet(new long[]{0x0000000000008000L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group__1_in_rule__XAndExpression__Group__048136 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXEqualityExpression_in_rule__XAndExpression__Group__0__Impl48163 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group__1__Impl_in_rule__XAndExpression__Group__148192 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group_1__0_in_rule__XAndExpression__Group__1__Impl48219 = new BitSet(new long[]{0x0000000000008002L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group_1__0__Impl_in_rule__XAndExpression__Group_1__048254 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000000000000000L,0x0000000000080040L,0xFE28C00000000040L,0x000000000000400BL});
        public static final BitSet FOLLOW_rule__XAndExpression__Group_1__1_in_rule__XAndExpression__Group_1__048257 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group_1_0__0_in_rule__XAndExpression__Group_1__0__Impl48284 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group_1__1__Impl_in_rule__XAndExpression__Group_1__148314 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__RightOperandAssignment_1_1_in_rule__XAndExpression__Group_1__1__Impl48341 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group_1_0__0__Impl_in_rule__XAndExpression__Group_1_0__048375 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group_1_0_0__0_in_rule__XAndExpression__Group_1_0__0__Impl48402 = 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__048434 = new BitSet(new long[]{0x0000000000008000L});
        public static final BitSet FOLLOW_rule__XAndExpression__Group_1_0_0__1_in_rule__XAndExpression__Group_1_0_0__048437 = 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__148495 = 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__Impl48522 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group__0__Impl_in_rule__XEqualityExpression__Group__048556 = new BitSet(new long[]{0x0000000001E00000L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group__1_in_rule__XEqualityExpression__Group__048559 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXRelationalExpression_in_rule__XEqualityExpression__Group__0__Impl48586 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group__1__Impl_in_rule__XEqualityExpression__Group__148615 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1__0_in_rule__XEqualityExpression__Group__1__Impl48642 = new BitSet(new long[]{0x0000000001E00002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1__0__Impl_in_rule__XEqualityExpression__Group_1__048677 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000000000000000L,0x0000000000080040L,0xFE28C00000000040L,0x000000000000400BL});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1__1_in_rule__XEqualityExpression__Group_1__048680 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1_0__0_in_rule__XEqualityExpression__Group_1__0__Impl48707 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1__1__Impl_in_rule__XEqualityExpression__Group_1__148737 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__RightOperandAssignment_1_1_in_rule__XEqualityExpression__Group_1__1__Impl48764 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1_0__0__Impl_in_rule__XEqualityExpression__Group_1_0__048798 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1_0_0__0_in_rule__XEqualityExpression__Group_1_0__0__Impl48825 = 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__048857 = new BitSet(new long[]{0x0000000001E00000L});
        public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1_0_0__1_in_rule__XEqualityExpression__Group_1_0_0__048860 = 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__148918 = 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__Impl48945 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group__0__Impl_in_rule__XRelationalExpression__Group__048979 = new BitSet(new long[]{0x000000000E000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group__1_in_rule__XRelationalExpression__Group__048982 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXOtherOperatorExpression_in_rule__XRelationalExpression__Group__0__Impl49009 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group__1__Impl_in_rule__XRelationalExpression__Group__149038 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Alternatives_1_in_rule__XRelationalExpression__Group__1__Impl49065 = new BitSet(new long[]{0x000000000E000002L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0__0__Impl_in_rule__XRelationalExpression__Group_1_0__049100 = new BitSet(new long[]{0x0000000080000010L,0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0__1_in_rule__XRelationalExpression__Group_1_0__049103 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0_0__0_in_rule__XRelationalExpression__Group_1_0__0__Impl49130 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0__1__Impl_in_rule__XRelationalExpression__Group_1_0__149160 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__TypeAssignment_1_0_1_in_rule__XRelationalExpression__Group_1_0__1__Impl49187 = 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__049221 = 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__Impl49248 = 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__049280 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0_0_0__1_in_rule__XRelationalExpression__Group_1_0_0_0__049283 = 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__149341 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_240_in_rule__XRelationalExpression__Group_1_0_0_0__1__Impl49369 = new BitSet(new long[]{0x0000000000000002L});
    }

    protected static class FollowSets022 {
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1__0__Impl_in_rule__XRelationalExpression__Group_1_1__049404 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000000000000000L,0x0000000000080040L,0xFE28C00000000040L,0x000000000000400BL});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1__1_in_rule__XRelationalExpression__Group_1_1__049407 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1_0__0_in_rule__XRelationalExpression__Group_1_1__0__Impl49434 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1__1__Impl_in_rule__XRelationalExpression__Group_1_1__149464 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__RightOperandAssignment_1_1_1_in_rule__XRelationalExpression__Group_1_1__1__Impl49491 = 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__049525 = 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__Impl49552 = 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__049584 = new BitSet(new long[]{0x000000000E000000L,0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
        public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1_0_0__1_in_rule__XRelationalExpression__Group_1_1_0_0__049587 = 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__149645 = 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__Impl49672 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpCompare__Group_1__0__Impl_in_rule__OpCompare__Group_1__049706 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_rule__OpCompare__Group_1__1_in_rule__OpCompare__Group_1__049709 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_27_in_rule__OpCompare__Group_1__0__Impl49737 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpCompare__Group_1__1__Impl_in_rule__OpCompare__Group_1__149768 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_13_in_rule__OpCompare__Group_1__1__Impl49796 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group__0__Impl_in_rule__XOtherOperatorExpression__Group__049831 = new BitSet(new long[]{0x00000003FC000000L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group__1_in_rule__XOtherOperatorExpression__Group__049834 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleXAdditiveExpression_in_rule__XOtherOperatorExpression__Group__0__Impl49861 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group__1__Impl_in_rule__XOtherOperatorExpression__Group__149890 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1__0_in_rule__XOtherOperatorExpression__Group__1__Impl49917 = new BitSet(new long[]{0x00000003FC000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1__0__Impl_in_rule__XOtherOperatorExpression__Group_1__049952 = new BitSet(new long[]{0x0007E10C080001F0L,0x0000000000000000L,0x0000000000080040L,0xFE28C00000000040L,0x000000000000400BL});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1__1_in_rule__XOtherOperatorExpression__Group_1__049955 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1_0__0_in_rule__XOtherOperatorExpression__Group_1__0__Impl49982 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1__1__Impl_in_rule__XOtherOperatorExpression__Group_1__150012 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__RightOperandAssignment_1_1_in_rule__XOtherOperatorExpression__Group_1__1__Impl50039 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1_0__0__Impl_in_rule__XOtherOperatorExpression__Group_1_0__050073 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1_0_0__0_in_rule__XOtherOperatorExpression__Group_1_0__0__Impl50100 = 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__050132 = new BitSet(new long[]{0x00000003FC000000L});
        public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1_0_0__1_in_rule__XOtherOperatorExpression__Group_1_0_0__050135 = 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__150193 = 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__Impl50220 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_2__0__Impl_in_rule__OpOther__Group_2__050254 = new BitSet(new long[]{0x0000000040000000L});
        public static final BitSet FOLLOW_rule__OpOther__Group_2__1_in_rule__OpOther__Group_2__050257 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_26_in_rule__OpOther__Group_2__0__Impl50285 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_2__1__Impl_in_rule__OpOther__Group_2__150316 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_30_in_rule__OpOther__Group_2__1__Impl50344 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_5__0__Impl_in_rule__OpOther__Group_5__050379 = new BitSet(new long[]{0x0000000004000000L});
        public static final BitSet FOLLOW_rule__OpOther__Group_5__1_in_rule__OpOther__Group_5__050382 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_26_in_rule__OpOther__Group_5__0__Impl50410 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_5__1__Impl_in_rule__OpOther__Group_5__150441 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Alternatives_5_1_in_rule__OpOther__Group_5__1__Impl50468 = 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__050502 = 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__Impl50529 = 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__050561 = new BitSet(new long[]{0x0000000004000000L});
        public static final BitSet FOLLOW_rule__OpOther__Group_5_1_0_0__1_in_rule__OpOther__Group_5_1_0_0__050564 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_26_in_rule__OpOther__Group_5_1_0_0__0__Impl50592 = 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__150623 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_26_in_rule__OpOther__Group_5_1_0_0__1__Impl50651 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_6__0__Impl_in_rule__OpOther__Group_6__050686 = new BitSet(new long[]{0x0000000088000000L});
        public static final BitSet FOLLOW_rule__OpOther__Group_6__1_in_rule__OpOther__Group_6__050689 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_27_in_rule__OpOther__Group_6__0__Impl50717 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Group_6__1__Impl_in_rule__OpOther__Group_6__150748 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__OpOther__Alternatives_6_1_in_rule__OpOther__Group_6__1__Impl50775 = 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__050809 = 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__Impl50836 = 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__050868 = new BitSet(new long[]{0x0000000008000000L});
        public static final BitSet FOLLOW_rule__OpOther__Group_6_1_0_0__1_in_rule__OpOther__Group_6_1_0_0__050871 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_27_in_rule__OpOther__Group_6_1_0_0__0__Impl50899 = 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__150930 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_27_in_rule__OpOther__Group_6_1_0_0__1__Impl50958 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__XAdditiveExpression__Group__0__Impl_in_rule__XAdditiveExpression__Group__050993 = new BitSet(new long[]{0x0000000C00000000L});
        public static final BitSet FOLLOW_rule__XAdditiveExpression__Group__1_in_rule__XAdditiveExpression__Group__050996 = new BitSet(new long[]{0x0000000000000002L});
